summaryrefslogtreecommitdiff
path: root/x2p
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-01-18 02:37:01 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-01-18 02:37:01 +0000
commit9c8d0b29b7bd1493cc1d95591b17902820e5579c (patch)
treef8671d758a3a5d07d4fef72c609650aa9af8f7e1 /x2p
parentf4cb4c40de81ad9c5a8e775c2298ec5a52130124 (diff)
downloadperl-9c8d0b29b7bd1493cc1d95591b17902820e5579c.tar.gz
perl5.000 patch.0e: fix various non-broken things in the x2p/ directory
This patch fixes various non-broken things in the x2p/ directory. Mostly, I've supplied function prototypes to satisfy particularly picky compilers. I've also updated Makefile.SH to know that the byacc-generated a2p.c is now included with the distribution so that we no longer need to go looking for yacc/bison/byacc and deal with various library issues or command line options to support those various compiler compilers. I've included a2p.c generated by byacc-1.9. Larry, feel free to use your own from byacc-1.8 instead.
Diffstat (limited to 'x2p')
-rwxr-xr-xx2p/Makefile.SH45
-rw-r--r--x2p/a2p.c2670
-rw-r--r--x2p/a2p.h61
-rw-r--r--x2p/a2py.c1
-rw-r--r--x2p/handy.h146
-rw-r--r--x2p/hash.c7
-rw-r--r--x2p/hash.h17
-rw-r--r--x2p/str.c14
-rw-r--r--x2p/str.h28
-rw-r--r--x2p/util.c11
-rw-r--r--x2p/util.h32
-rw-r--r--x2p/walk.c21
12 files changed, 2984 insertions, 69 deletions
diff --git a/x2p/Makefile.SH b/x2p/Makefile.SH
index 5b8041c78b..52a44b5b59 100755
--- a/x2p/Makefile.SH
+++ b/x2p/Makefile.SH
@@ -17,6 +17,11 @@ case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
+: Configure sets byacc=byacc if byacc is not found. We reset it to ''
+case "$byacc" in
+'byacc') byacc='';;
+esac
+
echo "Extracting x2p/Makefile (with variable substitutions)"
rm -f Makefile
cat >Makefile <<!GROK!THIS!
@@ -25,7 +30,7 @@ cat >Makefile <<!GROK!THIS!
# $Log: Makefile.SH,v $
CC = $cc
-YACC = $yacc
+BYACC = $byacc
mansrc = $mansrc
manext = $manext
LDFLAGS = $ldflags
@@ -72,19 +77,45 @@ all: $(public) $(private) $(util)
a2p: $(obj) a2p.o
$(CC) $(LDFLAGS) $(obj) a2p.o $(libs) -o a2p
-a2p.c: a2p.y
- @ echo Expect many shift/reduce and reduce/reduce conflicts...
- $(YACC) a2p.y
- mv y.tab.c a2p.c
+!NO!SUBS!
+
+: Only print out the rules for running byacc if the user _has_ byacc.
+: Otherwise, comment them out. Users who really know what they are
+: doing can uncomment them and run yacc or bison or whatever.
+: Configure sets byacc=byacc if byacc is not found.
+case "$byacc" in
+'')
+ comment1='#'
+ comment2='' ;;
+*) comment1=''
+ comment2='#' ;;
+esac
+
+$spitshell >>Makefile <<!GROK!THIS!
+
+# I now supply a2p.c with the kits, so the following section is
+# commented out if you don't have byacc.
+
+${comment1}a2p.c: a2p.y
+${comment1} @ echo Expect many shift/reduce and reduce/reduce conflicts
+${comment1} \$(BYACC) a2p.y
+${comment1} mv y.tab.c a2p.c
+
+# This version is used if you do not have byacc.
+${comment2}a2p.c: a2p.y
+${comment2} touch a2p.c
+
+!GROK!THIS!
+cat >>Makefile <<'!NO!SUBS!'
a2p.o: a2p.c a2py.c a2p.h EXTERN.h util.h INTERN.h handy.h ../config.h str.h hash.h
$(CCCMD) $(LARGE) a2p.c
clean:
- rm -f a2p *.o a2p.c
+ rm -f a2p *.o
realclean: clean
- rm -f *.orig */*.orig core $(addedbyconf) a2p.c all malloc.c
+ rm -f *.orig core $(addedbyconf) all malloc.c
rm -f Makefile cflags find2perl s2p makefile makefile.old
# The following lint has practically everything turned on. Unfortunately,
diff --git a/x2p/a2p.c b/x2p/a2p.c
new file mode 100644
index 0000000000..35948e21e7
--- /dev/null
+++ b/x2p/a2p.c
@@ -0,0 +1,2670 @@
+#ifndef lint
+static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
+#endif
+#define YYBYACC 1
+#define YYMAJOR 1
+#define YYMINOR 9
+#define yyclearin (yychar=(-1))
+#define yyerrok (yyerrflag=0)
+#define YYRECOVERING (yyerrflag!=0)
+#define YYPREFIX "yy"
+#line 2 "a2p.y"
+/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
+ *
+ * Copyright (c) 1991, Larry Wall
+ *
+ * You may distribute under the terms of either the GNU General Public
+ * License or the Artistic License, as specified in the README file.
+ *
+ * $Log: a2p.y,v $
+ */
+
+#include "INTERN.h"
+#include "a2p.h"
+
+int root;
+int begins = Nullop;
+int ends = Nullop;
+
+#line 30 "y.tab.c"
+#define BEGIN 257
+#define END 258
+#define REGEX 259
+#define SEMINEW 260
+#define NEWLINE 261
+#define COMMENT 262
+#define FUN1 263
+#define FUNN 264
+#define GRGR 265
+#define PRINT 266
+#define PRINTF 267
+#define SPRINTF 268
+#define SPLIT 269
+#define IF 270
+#define ELSE 271
+#define WHILE 272
+#define FOR 273
+#define IN 274
+#define EXIT 275
+#define NEXT 276
+#define BREAK 277
+#define CONTINUE 278
+#define RET 279
+#define GETLINE 280
+#define DO 281
+#define SUB 282
+#define GSUB 283
+#define MATCH 284
+#define FUNCTION 285
+#define USERFUN 286
+#define DELETE 287
+#define ASGNOP 288
+#define OROR 289
+#define ANDAND 290
+#define NUMBER 291
+#define VAR 292
+#define SUBSTR 293
+#define INDEX 294
+#define MATCHOP 295
+#define RELOP 296
+#define OR 297
+#define STRING 298
+#define UMINUS 299
+#define NOT 300
+#define INCR 301
+#define DECR 302
+#define FIELD 303
+#define VFIELD 304
+#define YYERRCODE 256
+short yylhs[] = { -1,
+ 0, 3, 6, 6, 2, 2, 7, 7, 7, 7,
+ 7, 7, 9, 8, 8, 11, 11, 11, 11, 11,
+ 15, 15, 15, 15, 14, 14, 14, 14, 13, 13,
+ 13, 13, 12, 12, 12, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 17, 17, 17, 17, 10, 10, 10, 18, 18,
+ 18, 1, 1, 19, 19, 19, 19, 4, 4, 20,
+ 20, 21, 21, 21, 21, 5, 5, 22, 22, 22,
+ 22, 25, 25, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 26, 26, 26, 24,
+ 24, 24, 24, 24, 24, 24, 24,
+};
+short yylen[] = { 2,
+ 2, 6, 5, 2, 3, 0, 1, 5, 10, 4,
+ 1, 1, 1, 1, 3, 1, 1, 1, 1, 5,
+ 3, 4, 4, 2, 3, 3, 3, 3, 3, 3,
+ 1, 3, 1, 2, 3, 1, 1, 1, 3, 3,
+ 3, 3, 3, 3, 3, 5, 2, 2, 2, 2,
+ 2, 2, 3, 1, 2, 3, 4, 3, 4, 1,
+ 3, 4, 4, 4, 2, 8, 6, 8, 8, 6,
+ 6, 6, 6, 6, 6, 6, 6, 8, 8, 8,
+ 8, 1, 4, 1, 2, 1, 1, 0, 4, 4,
+ 3, 2, 0, 1, 1, 1, 1, 2, 0, 1,
+ 1, 2, 2, 2, 2, 2, 0, 3, 2, 2,
+ 1, 1, 0, 1, 4, 2, 4, 2, 1, 1,
+ 1, 2, 1, 1, 2, 5, 1, 1, 1, 6,
+ 9, 6, 7, 10, 9, 6, 5,
+};
+short yydefred[] = { 93,
+ 0, 0, 95, 96, 97, 94, 0, 92, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 37, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 84, 0, 99, 0, 11, 0, 93, 0, 0,
+ 0, 17, 18, 19, 0, 0, 99, 99, 0, 0,
+ 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24, 49,
+ 50, 0, 0, 0, 0, 0, 0, 4, 0, 99,
+ 0, 99, 99, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 48,
+ 0, 0, 61, 0, 0, 0, 0, 99, 99, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 100, 101, 0, 98, 53, 32, 28, 21,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 62, 63, 91, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 13, 64, 83, 0, 0, 99,
+ 0, 0, 0, 0, 0, 0, 120, 119, 123, 0,
+ 99, 0, 99, 10, 99, 0, 106, 0, 111, 0,
+ 0, 0, 22, 59, 93, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 99, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 99, 99, 99, 99, 99, 8, 0, 0, 70, 0,
+ 75, 0, 74, 0, 77, 0, 76, 0, 72, 73,
+ 0, 67, 0, 71, 128, 127, 129, 0, 0, 0,
+ 0, 0, 112, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 99, 0,
+ 0, 0, 99, 99, 99, 0, 0, 0, 99, 69,
+ 68, 79, 78, 81, 80, 0, 66, 0, 0, 0,
+ 0, 0, 0, 126, 0, 0, 0, 132, 136, 0,
+ 0, 0, 9, 99, 99, 0, 133, 0, 0, 99,
+ 131, 135, 0, 134,
+};
+short yydgoto[] = { 1,
+ 2, 7, 36, 73, 125, 37, 38, 39, 164, 52,
+ 53, 41, 42, 43, 44, 45, 46, 55, 8, 126,
+ 225, 187, 188, 189, 254, 248,
+};
+short yysindex[] = { 0,
+ 0, -48, 0, 0, 0, 0, 6619, 0, -121, -110,
+ 0, -4, 32, 4183, 38, 30, 51, 64, 68, -260,
+ 70, 0, -61, 82, 83, 0, 4448, 4448, 4448, -183,
+ -183, 0, 4448, 0, 4448, 0, -188, 0, 3, 22,
+ 6884, 0, 0, 0, 34, -213, 0, 0, 2061, 4183,
+ 4183, 0, -49, 5612, 85, 4448, 4448, 14, 4713, 6753,
+ 4448, 87, 4183, 4183, 4448, 4448, -77, -77, 0, 0,
+ 0, 18, -192, -36, 91, 92, 95, 0, -48, 0,
+ 4448, 0, 0, 4448, 6980, 4448, 4448, 4448, 34, -154,
+ 4448, 4448, 4448, 4448, 4448, 4448, -135, 4448, 0, 0,
+ -192, -192, 0, 5658, 106, 5612, 11, 0, 0, 5704,
+ 186, 4448, 113, 5751, 115, 5805, 5885, 4183, 114, 67,
+ 5931, 5978, 0, 0, 4572, 0, 0, 0, 0, 0,
+ -192, 6032, 1964, 1964, -49, 0, 3230, 186, 186, 186,
+ 0, 97, 97, -77, -77, -77, -77, -183, -49, 4665,
+ 4765, 0, 0, 0, 1964, 1964, -131, 186, 4448, 4448,
+ 4448, 4448, 7026, 121, 0, 0, 0, 4448, 4448, 0,
+ 4183, 4183, 124, 125, 132, 4448, 0, 0, 0, 4448,
+ 0, -117, 0, 0, 0, 6884, 0, -44, 0, 4837,
+ 4448, -114, 0, 0, 0, 0, 6884, 6884, 13, 3635,
+ 5295, 5367, 5506, 137, 6078, 0, 5560, 6243, -192, -59,
+ -59, 4448, 4448, 5241, 6884, 6884, 3701, 93, -192, -192,
+ 0, 0, 0, 0, 0, 0, 6884, -48, 0, 7084,
+ 0, 4448, 0, 4448, 0, 4448, 0, 4448, 0, 0,
+ -119, 0, 4448, 0, 0, 0, 0, 4448, 4448, -34,
+ -16, 6343, 0, 123, -89, 4183, 4930, -192, -192, -192,
+ -192, -192, 144, 6389, 6435, 6508, 6554, 6700, 0, 6819,
+ 6884, 6884, 0, 0, 0, 6930, 146, 94, 0, 0,
+ 0, 0, 0, 0, 0, -192, 0, 3701, 3701, 3701,
+ 5241, -53, 4448, 0, -192, 5030, -83, 0, 0, 148,
+ 5241, -13, 0, 0, 0, 149, 0, 3701, 3701, 0,
+ 0, 0, 3701, 0,
+};
+short yyrindex[] = { 0,
+ 0, 2015, 0, 0, 0, 0, 192, 0, 0, 0,
+ 0, 56, 0, 3424, 0, 2619, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2147, 0, 2195, 1676,
+ 3509, 0, 0, 0, 1782, 1340, 0, 0, 0, 152,
+ 0, 0, 0, 3829, 111, 0, 0, 381, 0, 0,
+ 0, 0, 152, 101, 0, 0, 564, 834, 0, 0,
+ 0, 436, 5102, 0, -47, 39, 42, 0, 2245, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1830, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5102, 5102, 0, 72, 0, 17, 0, 0, 0, 72,
+ 2718, 0, 74, 72, 74, 72, 72, 152, 0, 0,
+ 72, 72, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5102, 72, 0, 0, 1882, 0, 3464, 3057, 3097, 3145,
+ 0, 1468, 1734, 888, 942, 1016, 1286, 2564, 1395, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3185, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 538, 538, 0, 0, 0, 122, 0, 0, 0, 241,
+ 0, 0, 0, 0, 0, -41, 0, 0, 0, 0,
+ 0, 491, 0, 0, 0, 0, 3549, 3594, 0, 72,
+ 72, 72, 72, 74, 72, 0, 72, 72, 3866, 296,
+ 357, 0, 0, 136, -10, 169, 0, 0, 5102, 3970,
+ 0, 0, 0, 0, 0, 0, 3784, 2294, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -51, 0, 0, 0, 101, 0, 4038, 4135, 4235,
+ 4307, 4400, 74, 72, 72, 72, 72, 72, 0, 72,
+ 507, 553, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5102, 0, 0, 0, 0,
+ 155, 0, 0, 0, 4500, 0, 5195, 0, 0, 0,
+ 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,
+};
+short yygindex[] = { 0,
+ -18, 0, 0, 7251, -19, 0, 0, 0, 0, -31,
+ 33, 2875, -14, -12, 16, 7373, 76, 147, 0, 0,
+ 0, 231, -205, 0, -267, -9,
+};
+#define YYTABLESIZE 7645
+short yytable[] = { 114,
+ 82, 47, 246, 269, 127, 301, 273, 114, 253, 81,
+ 6, 16, 48, 81, 224, 17, 96, 114, 105, 79,
+ 75, 16, 76, 300, 274, 62, 81, 307, 81, 64,
+ 122, 119, 120, 306, 97, 49, 75, 82, 76, 40,
+ 82, 82, 82, 82, 82, 82, 81, 82, 122, 81,
+ 77, 154, 16, 229, 109, 60, 230, 16, 82, 82,
+ 82, 69, 82, 82, 247, 84, 77, 74, 123, 124,
+ 95, 50, 78, 112, 98, 93, 91, 56, 92, 16,
+ 94, 150, 151, 74, 81, 253, 165, 99, 100, 57,
+ 59, 58, 60, 82, 82, 253, 60, 60, 60, 60,
+ 60, 18, 60, 60, 19, 70, 71, 61, 23, 63,
+ 87, 190, 82, 60, 60, 60, 135, 60, 60, 32,
+ 33, 65, 66, 82, 82, 80, 118, 96, 109, 97,
+ 149, 128, 129, 95, 16, 130, 31, 141, 93, 210,
+ 211, 123, 124, 94, 148, 97, 153, 87, 60, 60,
+ 87, 87, 87, 87, 166, 87, 159, 87, 161, 167,
+ 199, 206, 121, 212, 213, 192, 193, 60, 87, 87,
+ 87, 214, 87, 87, 218, 83, 228, 239, 60, 60,
+ 121, 276, 277, 256, 280, 293, 294, 304, 305, 310,
+ 96, 1, 88, 88, 113, 113, 0, 107, 0, 257,
+ 0, 249, 0, 87, 87, 245, 0, 0, 97, 125,
+ 0, 3, 4, 5, 0, 221, 222, 223, 114, 114,
+ 114, 0, 87, 194, 278, 35, 0, 125, 27, 0,
+ 28, 16, 0, 87, 87, 82, 83, 16, 16, 82,
+ 83, 17, 17, 0, 250, 251, 0, 16, 16, 122,
+ 122, 122, 82, 83, 82, 83, 0, 82, 82, 82,
+ 82, 82, 82, 82, 82, 82, 296, 0, 82, 82,
+ 0, 0, 82, 83, 82, 82, 83, 0, 16, 16,
+ 82, 124, 82, 82, 82, 82, 82, 0, 82, 82,
+ 82, 82, 82, 82, 82, 82, 82, 0, 82, 124,
+ 82, 82, 82, 82, 82, 16, 16, 90, 292, 0,
+ 82, 83, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 23, 0, 60, 60, 302, 0, 18, 18, 60,
+ 19, 19, 32, 33, 0, 60, 116, 60, 60, 60,
+ 60, 60, 0, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 0, 60, 116, 60, 60, 60, 60, 60,
+ 16, 16, 31, 31, 0, 0, 0, 87, 87, 87,
+ 87, 87, 87, 87, 87, 87, 0, 0, 87, 87,
+ 55, 121, 121, 121, 87, 0, 0, 0, 0, 0,
+ 87, 0, 87, 87, 87, 87, 87, 118, 87, 87,
+ 87, 87, 87, 87, 87, 87, 87, 0, 87, 0,
+ 87, 87, 87, 87, 87, 118, 0, 55, 0, 0,
+ 55, 55, 55, 55, 55, 55, 0, 55, 125, 125,
+ 125, 0, 0, 0, 0, 85, 0, 0, 55, 55,
+ 0, 0, 55, 55, 11, 0, 0, 255, 12, 13,
+ 0, 0, 0, 14, 15, 0, 0, 16, 16, 0,
+ 0, 0, 0, 0, 0, 16, 0, 17, 18, 19,
+ 0, 21, 85, 55, 55, 33, 85, 85, 85, 85,
+ 85, 0, 85, 26, 0, 29, 30, 31, 32, 33,
+ 23, 0, 55, 85, 85, 33, 0, 33, 33, 0,
+ 124, 124, 124, 55, 55, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 297, 298,
+ 299, 0, 0, 0, 0, 0, 0, 23, 85, 85,
+ 23, 23, 23, 23, 23, 23, 0, 23, 311, 312,
+ 0, 0, 0, 314, 0, 0, 0, 115, 23, 23,
+ 23, 0, 23, 23, 0, 116, 116, 116, 85, 85,
+ 0, 0, 0, 52, 0, 115, 0, 0, 0, 16,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
+ 0, 0, 0, 23, 23, 0, 0, 0, 0, 0,
+ 0, 0, 0, 117, 0, 0, 88, 0, 0, 88,
+ 52, 0, 23, 33, 52, 52, 52, 52, 52, 0,
+ 52, 117, 0, 23, 23, 16, 118, 118, 118, 0,
+ 0, 52, 52, 33, 0, 33, 33, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 0, 0, 55, 55,
+ 0, 0, 0, 0, 55, 0, 52, 0, 0, 0,
+ 55, 88, 55, 55, 55, 55, 55, 0, 55, 55,
+ 55, 55, 55, 55, 55, 55, 55, 0, 55, 0,
+ 55, 55, 55, 55, 55, 0, 52, 52, 0, 0,
+ 0, 0, 85, 85, 33, 85, 85, 85, 33, 33,
+ 85, 0, 0, 33, 33, 0, 0, 0, 0, 85,
+ 0, 0, 0, 0, 0, 33, 0, 33, 33, 33,
+ 85, 33, 0, 85, 33, 33, 33, 33, 33, 33,
+ 33, 33, 0, 33, 0, 33, 33, 33, 33, 33,
+ 0, 0, 0, 0, 0, 0, 0, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 0, 0, 23, 23,
+ 0, 0, 0, 0, 23, 0, 115, 115, 115, 0,
+ 23, 0, 23, 23, 23, 23, 23, 0, 23, 23,
+ 0, 23, 23, 23, 23, 23, 23, 0, 23, 0,
+ 23, 23, 23, 23, 23, 16, 16, 88, 88, 88,
+ 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 117, 117, 117, 0, 0, 0, 0, 0,
+ 52, 52, 33, 52, 52, 52, 33, 33, 52, 0,
+ 0, 33, 33, 51, 0, 0, 0, 52, 0, 0,
+ 0, 16, 16, 33, 0, 33, 33, 33, 52, 33,
+ 0, 52, 33, 33, 33, 33, 33, 33, 33, 33,
+ 0, 33, 0, 33, 33, 33, 33, 33, 0, 0,
+ 51, 0, 0, 33, 51, 51, 51, 51, 51, 0,
+ 51, 0, 0, 0, 0, 0, 0, 41, 0, 0,
+ 0, 51, 51, 33, 0, 33, 33, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 41, 0, 51, 33, 41, 41,
+ 41, 41, 41, 0, 41, 0, 0, 0, 0, 0,
+ 0, 42, 0, 0, 0, 41, 41, 33, 0, 33,
+ 33, 0, 0, 0, 0, 0, 51, 51, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 42, 0,
+ 41, 33, 42, 42, 42, 42, 42, 0, 42, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,
+ 42, 33, 0, 33, 33, 0, 0, 0, 0, 0,
+ 41, 41, 0, 0, 0, 43, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 43, 0, 0, 33, 43, 43, 43, 43,
+ 43, 0, 43, 0, 42, 42, 0, 0, 0, 0,
+ 0, 0, 0, 43, 43, 33, 0, 33, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 51, 51, 33, 51, 51, 51, 33, 33, 51, 0,
+ 0, 33, 33, 0, 0, 0, 0, 51, 43, 0,
+ 0, 0, 0, 33, 0, 33, 33, 33, 51, 33,
+ 0, 51, 33, 33, 33, 33, 33, 33, 33, 33,
+ 0, 33, 0, 33, 33, 33, 33, 33, 43, 43,
+ 0, 0, 0, 0, 41, 41, 33, 41, 41, 41,
+ 33, 33, 41, 0, 0, 33, 33, 0, 0, 0,
+ 0, 41, 0, 0, 0, 0, 0, 33, 0, 33,
+ 33, 33, 41, 33, 0, 41, 33, 33, 33, 33,
+ 33, 33, 33, 33, 0, 33, 0, 33, 33, 33,
+ 33, 33, 0, 0, 0, 0, 0, 0, 42, 42,
+ 33, 42, 42, 42, 33, 33, 42, 0, 0, 33,
+ 33, 0, 0, 0, 0, 42, 0, 0, 0, 0,
+ 0, 33, 0, 33, 33, 33, 42, 33, 0, 42,
+ 33, 33, 33, 33, 33, 33, 33, 33, 0, 33,
+ 0, 33, 33, 33, 33, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 43, 43, 33, 43, 43, 43, 33, 33,
+ 43, 0, 0, 33, 33, 44, 0, 0, 0, 43,
+ 0, 0, 0, 0, 0, 33, 0, 33, 33, 33,
+ 43, 33, 0, 43, 33, 33, 33, 33, 33, 33,
+ 33, 33, 0, 33, 0, 33, 33, 33, 33, 33,
+ 0, 0, 44, 0, 0, 33, 44, 44, 44, 44,
+ 44, 0, 44, 0, 0, 0, 0, 0, 0, 36,
+ 0, 0, 0, 44, 44, 33, 0, 33, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 44, 36,
+ 36, 36, 36, 36, 36, 0, 36, 0, 0, 0,
+ 0, 0, 0, 0, 35, 0, 0, 36, 36, 36,
+ 0, 36, 36, 0, 0, 0, 0, 0, 44, 44,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 35, 36, 36, 35, 35, 35, 35, 35, 35,
+ 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 35, 35, 35, 0, 35, 0, 0, 0,
+ 0, 0, 36, 36, 0, 0, 0, 39, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 35, 35, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 33, 39, 0,
+ 39, 39, 39, 0, 0, 0, 0, 35, 35, 0,
+ 0, 0, 0, 0, 0, 39, 39, 33, 0, 33,
+ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 44, 44, 33, 44, 44, 44, 33, 33,
+ 44, 0, 0, 33, 33, 0, 0, 0, 0, 44,
+ 39, 0, 0, 0, 0, 33, 0, 33, 33, 33,
+ 44, 33, 0, 44, 33, 33, 33, 33, 33, 33,
+ 33, 33, 0, 33, 0, 33, 33, 33, 33, 33,
+ 39, 39, 0, 0, 0, 0, 36, 36, 36, 36,
+ 36, 36, 36, 36, 36, 0, 0, 36, 36, 0,
+ 0, 0, 0, 36, 0, 0, 0, 0, 0, 36,
+ 0, 36, 36, 36, 36, 36, 0, 0, 36, 36,
+ 36, 36, 36, 36, 36, 36, 0, 36, 0, 36,
+ 0, 0, 36, 36, 0, 0, 0, 0, 0, 0,
+ 0, 35, 35, 35, 35, 35, 35, 35, 35, 35,
+ 0, 0, 35, 35, 0, 0, 0, 0, 35, 0,
+ 0, 0, 0, 0, 35, 14, 35, 35, 35, 35,
+ 35, 0, 35, 0, 0, 35, 35, 35, 35, 35,
+ 35, 0, 35, 0, 35, 35, 35, 35, 35, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 14, 0, 0, 14, 0,
+ 14, 0, 0, 0, 39, 39, 33, 39, 39, 39,
+ 33, 33, 39, 40, 14, 33, 33, 0, 0, 0,
+ 0, 39, 0, 0, 0, 0, 0, 33, 0, 33,
+ 33, 33, 39, 33, 0, 39, 33, 33, 33, 33,
+ 33, 33, 33, 33, 0, 33, 0, 33, 33, 33,
+ 33, 33, 0, 33, 40, 0, 40, 40, 40, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 40, 40, 33, 0, 33, 33, 0, 14, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 33, 0, 0, 33, 40, 0, 0, 34,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 33, 33, 0, 33, 33, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 40, 40, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 34, 0, 0, 34, 33, 0, 0, 0, 0, 0,
+ 0, 15, 0, 0, 0, 0, 0, 34, 34, 33,
+ 0, 33, 33, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 33, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 34, 0, 15, 0, 15, 0, 0, 0,
+ 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
+ 15, 0, 0, 14, 14, 0, 0, 0, 0, 0,
+ 0, 0, 34, 34, 0, 14, 0, 14, 14, 14,
+ 14, 14, 0, 0, 0, 0, 14, 14, 14, 14,
+ 0, 0, 0, 14, 0, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 40, 40, 33, 40, 40, 40, 33, 33, 40, 0,
+ 0, 33, 33, 35, 15, 0, 27, 40, 28, 0,
+ 0, 0, 0, 33, 6, 33, 33, 33, 40, 33,
+ 0, 40, 33, 33, 33, 33, 33, 33, 33, 33,
+ 0, 33, 0, 33, 33, 33, 33, 33, 33, 33,
+ 33, 33, 33, 33, 33, 33, 33, 0, 0, 33,
+ 33, 0, 0, 0, 6, 0, 0, 6, 0, 6,
+ 0, 33, 0, 33, 33, 33, 33, 33, 0, 33,
+ 33, 33, 33, 33, 33, 33, 33, 33, 0, 33,
+ 0, 33, 33, 33, 33, 33, 34, 34, 33, 34,
+ 34, 34, 33, 33, 34, 0, 0, 33, 33, 0,
+ 35, 103, 0, 27, 0, 28, 0, 0, 0, 33,
+ 0, 33, 33, 33, 34, 33, 0, 34, 33, 33,
+ 33, 33, 33, 33, 33, 33, 0, 33, 0, 33,
+ 33, 33, 33, 33, 0, 0, 0, 6, 15, 15,
+ 15, 15, 15, 15, 15, 15, 12, 0, 0, 15,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 15, 15, 15, 15, 15, 0, 0,
+ 0, 0, 15, 15, 15, 15, 0, 0, 0, 15,
+ 0, 15, 15, 15, 15, 15, 12, 0, 0, 12,
+ 0, 12, 0, 0, 7, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 11, 0, 123, 124, 12, 13, 0, 0,
+ 0, 14, 15, 0, 7, 0, 0, 7, 0, 7,
+ 0, 0, 0, 16, 5, 17, 18, 19, 0, 21,
+ 0, 0, 0, 7, 22, 23, 24, 25, 0, 0,
+ 0, 26, 0, 29, 30, 31, 32, 33, 0, 12,
+ 0, 6, 6, 6, 0, 0, 0, 6, 6, 0,
+ 0, 0, 6, 6, 5, 0, 0, 5, 0, 5,
+ 0, 0, 0, 2, 6, 0, 6, 6, 6, 6,
+ 6, 0, 0, 0, 0, 6, 6, 6, 6, 0,
+ 0, 0, 6, 0, 6, 6, 6, 6, 6, 11,
+ 0, 0, 0, 12, 13, 0, 0, 0, 14, 15,
+ 0, 0, 0, 2, 0, 0, 2, 0, 2, 0,
+ 16, 0, 17, 18, 19, 0, 21, 0, 0, 0,
+ 0, 22, 23, 24, 25, 0, 0, 0, 26, 0,
+ 29, 30, 31, 32, 33, 0, 0, 5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 12, 12, 12, 12, 0, 12, 12,
+ 12, 0, 0, 0, 12, 12, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 12, 0, 12, 12,
+ 12, 12, 12, 0, 0, 0, 0, 12, 12, 12,
+ 12, 0, 0, 0, 12, 0, 12, 12, 12, 12,
+ 12, 7, 7, 7, 7, 7, 7, 7, 7, 0,
+ 0, 0, 7, 7, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 7, 0, 7, 7, 7, 7,
+ 7, 0, 0, 0, 0, 7, 7, 7, 7, 0,
+ 0, 0, 7, 0, 7, 7, 7, 7, 7, 0,
+ 0, 5, 5, 5, 0, 0, 0, 5, 5, 0,
+ 0, 0, 5, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 5, 0, 5, 5, 5, 5,
+ 5, 0, 0, 0, 0, 5, 5, 5, 5, 0,
+ 0, 0, 5, 0, 5, 5, 5, 5, 5, 0,
+ 2, 2, 2, 0, 0, 0, 2, 2, 0, 0,
+ 0, 2, 2, 58, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2, 0, 2, 2, 2, 2, 2,
+ 0, 0, 0, 0, 2, 2, 2, 2, 0, 0,
+ 0, 2, 0, 2, 2, 2, 2, 2, 0, 0,
+ 58, 0, 0, 58, 58, 58, 58, 58, 58, 0,
+ 58, 0, 0, 0, 0, 0, 0, 0, 54, 0,
+ 0, 58, 58, 58, 0, 58, 58, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 54, 58, 58, 54, 54,
+ 54, 54, 54, 54, 0, 54, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 58, 54, 54, 0, 0,
+ 54, 54, 0, 0, 0, 0, 58, 58, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 54, 54, 0, 0, 0, 0, 56, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 54, 54, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 0, 0, 0, 56, 56,
+ 0, 56, 0, 0, 56, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 56, 56, 56, 0, 56,
+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 56, 0, 0, 0, 0, 0, 0, 0, 0,
+ 58, 58, 58, 58, 58, 58, 58, 58, 58, 56,
+ 0, 58, 58, 0, 0, 0, 0, 58, 0, 0,
+ 56, 56, 0, 58, 0, 58, 58, 58, 58, 58,
+ 0, 58, 58, 58, 58, 0, 58, 58, 58, 58,
+ 0, 58, 0, 58, 58, 58, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 0, 0, 54, 54, 54, 0,
+ 0, 0, 54, 0, 0, 0, 0, 0, 54, 0,
+ 54, 54, 54, 54, 54, 0, 54, 54, 54, 54,
+ 0, 54, 54, 54, 54, 0, 54, 0, 54, 54,
+ 54, 0, 0, 104, 54, 106, 0, 0, 0, 0,
+ 110, 111, 0, 114, 116, 117, 0, 54, 54, 121,
+ 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 132, 0, 0, 0, 137,
+ 138, 139, 140, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 56, 0, 56, 56, 56,
+ 0, 0, 56, 0, 0, 0, 158, 0, 0, 0,
+ 0, 56, 54, 0, 0, 0, 0, 0, 0, 186,
+ 0, 0, 56, 0, 0, 56, 16, 16, 56, 56,
+ 56, 56, 56, 56, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 186, 186, 0, 0, 0, 197,
+ 198, 0, 0, 200, 201, 202, 203, 205, 0, 0,
+ 0, 0, 207, 208, 0, 54, 54, 0, 0, 0,
+ 215, 0, 0, 0, 216, 0, 25, 0, 0, 0,
+ 0, 0, 0, 0, 186, 227, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 252, 0,
+ 0, 186, 0, 25, 0, 0, 27, 25, 25, 0,
+ 25, 0, 0, 25, 264, 0, 265, 0, 266, 0,
+ 267, 0, 268, 0, 25, 25, 25, 270, 25, 16,
+ 0, 0, 271, 272, 0, 0, 0, 0, 0, 0,
+ 54, 186, 0, 27, 0, 0, 0, 27, 27, 0,
+ 27, 0, 0, 27, 26, 0, 0, 0, 0, 25,
+ 25, 0, 0, 0, 27, 27, 27, 0, 27, 16,
+ 0, 0, 186, 186, 186, 186, 0, 0, 25, 0,
+ 186, 0, 0, 0, 0, 186, 0, 0, 0, 25,
+ 25, 26, 186, 186, 57, 26, 26, 186, 26, 27,
+ 27, 26, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 26, 26, 0, 26, 16, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
+ 27, 57, 0, 0, 0, 57, 57, 0, 57, 0,
+ 0, 57, 0, 0, 0, 0, 0, 26, 26, 0,
+ 0, 0, 57, 57, 57, 0, 57, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 26, 26, 35,
+ 0, 0, 27, 0, 28, 0, 0, 57, 57, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
+ 0, 88, 0, 0, 0, 0, 57, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 57, 57, 0,
+ 0, 0, 0, 25, 25, 0, 25, 25, 25, 0,
+ 0, 25, 0, 0, 0, 0, 0, 0, 0, 0,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 25, 0, 0, 25, 16, 16, 25, 25, 25,
+ 25, 25, 25, 27, 27, 0, 27, 27, 27, 0,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
+ 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 27, 0, 0, 27, 16, 16, 27, 27, 27,
+ 27, 27, 27, 0, 0, 0, 0, 0, 0, 0,
+ 0, 26, 26, 0, 26, 26, 26, 0, 0, 26,
+ 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
+ 0, 0, 0, 88, 0, 0, 0, 0, 0, 26,
+ 0, 0, 26, 16, 16, 26, 26, 26, 26, 26,
+ 26, 57, 57, 0, 57, 57, 57, 0, 0, 57,
+ 0, 0, 0, 0, 0, 0, 0, 0, 57, 0,
+ 88, 0, 0, 29, 88, 88, 0, 88, 0, 57,
+ 88, 0, 57, 16, 16, 57, 57, 57, 57, 57,
+ 57, 88, 88, 88, 0, 88, 88, 0, 11, 0,
+ 0, 0, 12, 13, 0, 0, 0, 14, 15, 0,
+ 29, 0, 0, 0, 29, 29, 0, 29, 16, 16,
+ 29, 17, 18, 19, 0, 21, 88, 88, 0, 0,
+ 0, 29, 29, 0, 0, 86, 16, 26, 0, 29,
+ 30, 31, 32, 33, 0, 88, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 16, 88, 88, 89, 16,
+ 16, 0, 16, 0, 0, 16, 29, 29, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 16, 0, 0,
+ 0, 16, 0, 0, 0, 29, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 89, 29, 29, 0, 89,
+ 89, 0, 89, 90, 0, 89, 0, 0, 0, 0,
+ 0, 16, 16, 0, 0, 0, 89, 89, 0, 0,
+ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 16, 16, 0, 90, 90, 0, 90, 0, 0,
+ 90, 89, 89, 0, 0, 0, 0, 0, 0, 0,
+ 0, 90, 90, 0, 0, 0, 16, 0, 0, 0,
+ 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 89, 89, 0, 35, 231, 0, 27, 232, 28,
+ 88, 88, 0, 88, 88, 88, 90, 90, 88, 0,
+ 0, 0, 0, 0, 87, 0, 88, 88, 0, 0,
+ 0, 0, 0, 0, 0, 90, 0, 0, 88, 0,
+ 0, 88, 88, 88, 0, 0, 90, 90, 88, 88,
+ 29, 29, 0, 29, 29, 29, 0, 0, 29, 0,
+ 0, 0, 0, 0, 0, 0, 0, 29, 0, 0,
+ 35, 0, 0, 27, 0, 28, 0, 0, 29, 0,
+ 0, 29, 16, 16, 29, 29, 29, 29, 29, 185,
+ 0, 0, 0, 0, 0, 16, 16, 0, 16, 16,
+ 16, 0, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 20, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 0, 16, 16, 16, 0,
+ 0, 0, 0, 0, 0, 89, 89, 0, 89, 89,
+ 89, 0, 0, 89, 0, 0, 0, 0, 0, 0,
+ 20, 0, 89, 183, 20, 20, 0, 20, 86, 0,
+ 20, 0, 0, 89, 0, 0, 89, 16, 16, 0,
+ 0, 20, 20, 0, 0, 0, 16, 0, 0, 0,
+ 90, 90, 0, 90, 90, 90, 0, 0, 90, 0,
+ 0, 0, 0, 0, 0, 86, 0, 90, 0, 86,
+ 86, 0, 0, 0, 0, 86, 20, 20, 90, 0,
+ 0, 90, 16, 16, 0, 0, 86, 86, 0, 0,
+ 0, 16, 0, 11, 0, 20, 0, 12, 13, 0,
+ 0, 0, 14, 15, 0, 110, 20, 20, 110, 0,
+ 110, 0, 0, 0, 16, 0, 17, 18, 19, 0,
+ 21, 86, 86, 0, 110, 22, 23, 24, 25, 85,
+ 86, 0, 26, 0, 29, 30, 31, 32, 33, 0,
+ 86, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 86, 86, 0, 0, 0, 0, 0, 0, 11,
+ 170, 123, 124, 12, 13, 0, 171, 172, 14, 15,
+ 173, 0, 174, 175, 0, 176, 177, 178, 179, 180,
+ 16, 181, 17, 18, 19, 0, 21, 182, 110, 0,
+ 110, 22, 23, 24, 25, 0, 0, 0, 26, 0,
+ 29, 30, 31, 32, 33, 0, 0, 0, 0, 109,
+ 0, 0, 109, 0, 109, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 20, 20, 0, 20, 20, 20, 0, 0, 20, 0,
+ 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
+ 0, 20, 16, 16, 0, 0, 0, 103, 0, 0,
+ 103, 0, 103, 0, 0, 86, 86, 0, 86, 86,
+ 86, 0, 109, 86, 109, 0, 103, 0, 0, 0,
+ 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 86, 0, 0, 86, 16, 16, 0,
+ 0, 0, 0, 0, 110, 110, 0, 0, 110, 110,
+ 0, 110, 110, 110, 110, 110, 110, 110, 110, 0,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
+ 0, 110, 110, 0, 0, 0, 110, 110, 110, 110,
+ 103, 0, 103, 110, 0, 110, 110, 110, 110, 110,
+ 0, 0, 0, 0, 104, 0, 0, 104, 0, 104,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 51, 0, 0, 27, 0, 28, 109, 109,
+ 0, 0, 109, 109, 0, 109, 109, 109, 109, 109,
+ 109, 109, 109, 0, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 0, 109, 109, 104, 0, 104,
+ 109, 109, 109, 109, 0, 0, 0, 109, 0, 109,
+ 109, 109, 109, 109, 105, 0, 0, 105, 0, 105,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 105, 0, 0, 103, 103, 0, 0,
+ 103, 103, 0, 103, 103, 103, 103, 103, 103, 103,
+ 103, 0, 103, 103, 103, 103, 103, 103, 103, 103,
+ 103, 103, 0, 103, 103, 0, 0, 0, 103, 103,
+ 103, 103, 0, 0, 0, 103, 0, 103, 103, 103,
+ 103, 103, 0, 0, 0, 0, 102, 0, 0, 102,
+ 0, 102, 0, 0, 0, 0, 0, 105, 0, 105,
+ 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 104, 104, 0, 0, 104, 104, 0,
+ 104, 104, 104, 104, 104, 104, 104, 104, 0, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 0,
+ 104, 104, 0, 0, 0, 104, 104, 104, 104, 102,
+ 0, 102, 104, 0, 104, 104, 104, 104, 104, 108,
+ 0, 11, 108, 0, 108, 12, 13, 0, 0, 0,
+ 14, 15, 0, 0, 0, 0, 0, 0, 108, 0,
+ 0, 0, 16, 0, 17, 18, 19, 0, 21, 0,
+ 0, 0, 0, 22, 23, 24, 25, 0, 0, 0,
+ 26, 0, 29, 30, 31, 32, 33, 35, 0, 0,
+ 27, 0, 28, 105, 105, 0, 0, 105, 105, 0,
+ 105, 105, 105, 105, 105, 105, 105, 105, 0, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 0,
+ 105, 105, 108, 0, 108, 105, 105, 105, 105, 0,
+ 0, 0, 105, 0, 105, 105, 105, 105, 105, 137,
+ 0, 0, 137, 0, 137, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 137, 0,
+ 0, 0, 0, 0, 0, 102, 102, 0, 0, 102,
+ 102, 0, 102, 102, 102, 102, 102, 102, 102, 102,
+ 0, 102, 102, 102, 102, 102, 102, 102, 102, 102,
+ 102, 0, 102, 102, 0, 0, 0, 102, 102, 102,
+ 102, 0, 0, 0, 102, 0, 102, 102, 102, 102,
+ 102, 35, 0, 0, 27, 0, 28, 0, 0, 0,
+ 0, 0, 137, 0, 137, 0, 0, 0, 0, 0,
+ 185, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 108, 108,
+ 0, 0, 108, 108, 0, 108, 108, 108, 108, 108,
+ 108, 108, 108, 0, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 0, 108, 108, 0, 0, 0,
+ 108, 108, 108, 108, 183, 0, 184, 108, 0, 108,
+ 108, 108, 108, 108, 35, 0, 11, 27, 0, 28,
+ 12, 13, 0, 0, 0, 14, 15, 0, 0, 0,
+ 0, 0, 0, 185, 0, 0, 0, 16, 0, 17,
+ 18, 19, 0, 21, 0, 0, 0, 0, 22, 23,
+ 24, 25, 0, 0, 0, 26, 0, 29, 30, 31,
+ 32, 33, 35, 0, 0, 27, 0, 28, 137, 137,
+ 0, 0, 137, 137, 0, 137, 137, 137, 137, 137,
+ 137, 137, 137, 0, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 0, 137, 137, 183, 0, 195,
+ 137, 137, 137, 137, 0, 0, 0, 137, 0, 137,
+ 137, 137, 137, 137, 35, 0, 0, 27, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 185, 0, 0, 0, 0, 0, 0,
+ 11, 170, 0, 0, 12, 13, 0, 171, 172, 14,
+ 15, 173, 0, 174, 175, 0, 176, 177, 178, 179,
+ 180, 16, 181, 17, 18, 19, 0, 21, 182, 0,
+ 0, 0, 22, 23, 24, 25, 0, 0, 0, 26,
+ 0, 29, 30, 31, 32, 33, 35, 0, 0, 27,
+ 0, 28, 0, 0, 0, 0, 0, 183, 0, 196,
+ 0, 0, 0, 0, 0, 185, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 11, 170, 0, 0, 12, 13, 0,
+ 171, 172, 14, 15, 173, 0, 174, 175, 0, 176,
+ 177, 178, 179, 180, 16, 181, 17, 18, 19, 0,
+ 21, 182, 0, 0, 0, 22, 23, 24, 25, 183,
+ 0, 226, 26, 0, 29, 30, 31, 32, 33, 35,
+ 0, 113, 27, 0, 28, 12, 13, 0, 0, 0,
+ 14, 15, 0, 0, 0, 0, 0, 0, 185, 0,
+ 0, 0, 16, 0, 17, 18, 19, 0, 21, 0,
+ 0, 0, 0, 22, 23, 24, 25, 0, 0, 0,
+ 26, 0, 29, 30, 31, 32, 33, 0, 0, 0,
+ 0, 0, 0, 11, 170, 0, 0, 12, 13, 0,
+ 171, 172, 14, 15, 173, 0, 174, 175, 0, 176,
+ 177, 178, 179, 180, 16, 181, 17, 18, 19, 0,
+ 21, 182, 183, 0, 279, 22, 23, 24, 25, 0,
+ 0, 0, 26, 0, 29, 30, 31, 32, 33, 35,
+ 0, 0, 27, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 185, 0,
+ 0, 0, 0, 0, 0, 11, 170, 0, 0, 12,
+ 13, 0, 171, 172, 14, 15, 173, 0, 174, 175,
+ 0, 176, 177, 178, 179, 180, 16, 181, 17, 18,
+ 19, 0, 21, 182, 0, 0, 0, 22, 23, 24,
+ 25, 0, 0, 0, 26, 0, 29, 30, 31, 32,
+ 33, 107, 0, 0, 107, 0, 107, 0, 0, 0,
+ 0, 0, 183, 0, 303, 0, 0, 0, 0, 0,
+ 107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 170,
+ 0, 0, 12, 13, 0, 171, 172, 14, 15, 173,
+ 0, 174, 175, 0, 176, 177, 178, 179, 180, 16,
+ 181, 17, 18, 19, 0, 21, 182, 0, 0, 0,
+ 22, 23, 24, 25, 107, 0, 107, 26, 0, 29,
+ 30, 31, 32, 33, 130, 0, 0, 130, 0, 130,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 130, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 35, 0, 0, 27, 0, 28, 0, 0, 11, 170,
+ 0, 0, 12, 13, 0, 171, 172, 14, 15, 173,
+ 0, 174, 175, 0, 176, 177, 178, 179, 180, 16,
+ 181, 17, 18, 19, 0, 21, 182, 130, 0, 130,
+ 22, 23, 24, 25, 0, 0, 0, 26, 0, 29,
+ 30, 31, 32, 33, 35, 233, 0, 27, 234, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 87, 0, 88, 0, 0, 0,
+ 107, 107, 0, 0, 107, 107, 0, 107, 107, 107,
+ 107, 107, 0, 107, 107, 0, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 0, 107, 107, 0,
+ 0, 0, 107, 107, 107, 107, 0, 0, 0, 107,
+ 0, 107, 107, 107, 107, 107, 35, 235, 0, 27,
+ 236, 28, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 87, 0, 88, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 130, 130, 0, 0, 130, 130, 0,
+ 130, 130, 130, 130, 130, 0, 130, 130, 0, 130,
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 0,
+ 130, 130, 0, 0, 0, 130, 130, 130, 130, 0,
+ 0, 0, 130, 0, 130, 130, 130, 130, 130, 11,
+ 0, 0, 0, 12, 13, 0, 171, 172, 14, 15,
+ 0, 0, 0, 0, 0, 176, 177, 178, 179, 180,
+ 16, 0, 17, 18, 19, 0, 21, 182, 0, 0,
+ 0, 22, 23, 24, 25, 0, 0, 0, 26, 0,
+ 29, 30, 31, 32, 33, 35, 237, 0, 27, 238,
+ 28, 0, 0, 11, 0, 0, 0, 12, 13, 0,
+ 0, 0, 14, 15, 0, 87, 0, 88, 0, 0,
+ 0, 0, 0, 0, 16, 0, 17, 18, 19, 0,
+ 21, 0, 0, 0, 0, 22, 23, 24, 25, 85,
+ 86, 0, 26, 0, 29, 30, 31, 32, 33, 35,
+ 242, 0, 27, 243, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
+ 0, 88, 0, 0, 0, 11, 0, 0, 0, 12,
+ 13, 0, 0, 0, 14, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 17, 18,
+ 19, 35, 21, 0, 27, 108, 28, 22, 23, 24,
+ 25, 85, 86, 0, 26, 0, 29, 30, 31, 32,
+ 33, 87, 0, 88, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 35, 152, 0,
+ 27, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 87, 0, 88,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 35, 0, 0, 27, 157, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 87, 11, 88, 0, 0, 12, 13,
+ 0, 0, 0, 14, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 16, 0, 17, 18, 19,
+ 35, 21, 0, 27, 160, 28, 22, 23, 24, 25,
+ 85, 86, 0, 26, 0, 29, 30, 31, 32, 33,
+ 87, 0, 88, 0, 0, 0, 0, 0, 11, 0,
+ 0, 0, 12, 13, 0, 0, 0, 14, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 17, 18, 19, 35, 21, 0, 27, 162, 28,
+ 22, 23, 24, 25, 85, 86, 0, 26, 0, 29,
+ 30, 31, 32, 33, 87, 0, 88, 0, 0, 0,
+ 11, 0, 0, 0, 12, 13, 0, 0, 0, 14,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 0, 17, 18, 19, 0, 21, 0, 0,
+ 0, 0, 22, 23, 24, 25, 85, 86, 0, 26,
+ 0, 29, 30, 31, 32, 33, 11, 0, 0, 0,
+ 12, 13, 0, 0, 35, 14, 15, 27, 163, 28,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
+ 18, 19, 0, 21, 87, 0, 88, 0, 22, 23,
+ 24, 25, 85, 86, 0, 26, 0, 29, 30, 31,
+ 32, 33, 11, 0, 0, 0, 12, 13, 0, 0,
+ 35, 14, 15, 27, 168, 28, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 21,
+ 87, 0, 88, 0, 22, 23, 24, 25, 85, 86,
+ 0, 26, 0, 29, 30, 31, 32, 33, 0, 11,
+ 0, 0, 0, 12, 13, 0, 0, 35, 14, 15,
+ 27, 169, 28, 0, 0, 0, 0, 0, 0, 0,
+ 16, 0, 17, 18, 19, 0, 21, 87, 0, 88,
+ 0, 22, 23, 24, 25, 85, 86, 0, 26, 0,
+ 29, 30, 31, 32, 33, 0, 0, 0, 0, 0,
+ 0, 0, 0, 11, 0, 0, 0, 12, 13, 0,
+ 0, 35, 14, 15, 27, 0, 28, 0, 0, 0,
+ 0, 0, 0, 0, 16, 0, 17, 18, 19, 191,
+ 21, 87, 0, 88, 0, 22, 23, 24, 25, 85,
+ 86, 0, 26, 0, 29, 30, 31, 32, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 35, 240, 0,
+ 27, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 87, 0, 88,
+ 0, 0, 0, 11, 0, 0, 0, 12, 13, 0,
+ 0, 0, 14, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 16, 0, 17, 18, 19, 0,
+ 21, 0, 0, 0, 0, 22, 23, 24, 25, 85,
+ 86, 0, 26, 0, 29, 30, 31, 32, 33, 11,
+ 0, 0, 0, 12, 13, 0, 0, 0, 14, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 0, 17, 18, 19, 0, 21, 0, 0, 0,
+ 0, 22, 23, 24, 25, 85, 86, 0, 26, 0,
+ 29, 30, 31, 32, 33, 0, 11, 0, 0, 0,
+ 12, 13, 0, 0, 0, 14, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
+ 18, 19, 0, 21, 0, 0, 0, 0, 22, 23,
+ 24, 25, 85, 86, 0, 26, 0, 29, 30, 31,
+ 32, 33, 35, 244, 0, 27, 0, 28, 0, 0,
+ 11, 0, 0, 0, 12, 13, 0, 0, 0, 14,
+ 15, 0, 87, 0, 88, 0, 0, 0, 0, 0,
+ 0, 16, 0, 17, 18, 19, 0, 21, 0, 0,
+ 0, 0, 22, 23, 24, 25, 85, 86, 0, 26,
+ 0, 29, 30, 31, 32, 33, 11, 0, 0, 0,
+ 12, 13, 0, 0, 0, 14, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
+ 18, 19, 0, 21, 0, 0, 0, 0, 22, 23,
+ 24, 25, 85, 86, 0, 26, 0, 29, 30, 31,
+ 32, 33, 35, 275, 0, 27, 0, 28, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 87, 0, 88, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 35, 281,
+ 0, 27, 0, 28, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 35, 282, 0, 27, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 87, 0, 88, 0, 0, 0,
+ 0, 11, 0, 0, 0, 12, 13, 0, 0, 0,
+ 14, 15, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 17, 18, 19, 0, 21, 0,
+ 0, 0, 0, 22, 23, 24, 25, 85, 86, 0,
+ 26, 0, 29, 30, 31, 32, 33, 35, 283, 0,
+ 27, 0, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 87, 0, 88,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 35, 284, 0, 27, 0, 28, 0,
+ 0, 11, 0, 0, 0, 12, 13, 0, 0, 0,
+ 14, 15, 0, 87, 0, 88, 0, 0, 0, 0,
+ 0, 0, 16, 0, 17, 18, 19, 0, 21, 0,
+ 0, 0, 0, 22, 23, 24, 25, 85, 86, 0,
+ 26, 0, 29, 30, 31, 32, 33, 11, 0, 0,
+ 0, 12, 13, 0, 0, 0, 14, 15, 35, 0,
+ 0, 27, 0, 28, 0, 0, 0, 0, 16, 0,
+ 17, 18, 19, 0, 21, 0, 0, 0, 0, 22,
+ 23, 24, 25, 85, 86, 0, 26, 0, 29, 30,
+ 31, 32, 33, 11, 0, 0, 0, 12, 13, 0,
+ 0, 0, 14, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 16, 0, 17, 18, 19, 0,
+ 21, 0, 0, 0, 0, 22, 23, 24, 25, 85,
+ 86, 0, 26, 0, 29, 30, 31, 32, 33, 35,
+ 285, 34, 27, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
+ 0, 88, 0, 0, 0, 0, 11, 0, 0, 0,
+ 12, 13, 0, 0, 0, 14, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
+ 18, 19, 35, 21, 0, 27, 0, 28, 22, 23,
+ 24, 25, 85, 86, 0, 26, 0, 29, 30, 31,
+ 32, 33, 11, 0, 0, 0, 12, 13, 0, 0,
+ 0, 14, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 21,
+ 0, 0, 0, 0, 22, 23, 24, 25, 85, 86,
+ 0, 26, 0, 29, 30, 31, 32, 33, 35, 287,
+ 0, 27, 0, 28, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 10, 11, 87, 0,
+ 88, 12, 13, 0, 0, 0, 14, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
+ 17, 18, 19, 20, 21, 0, 0, 0, 0, 22,
+ 23, 24, 25, 0, 0, 0, 26, 0, 29, 30,
+ 31, 32, 33, 35, 0, 0, 27, 0, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 87, 0, 88, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
+ 0, 0, 12, 13, 0, 0, 0, 14, 15, 35,
+ 0, 0, 27, 0, 28, 0, 0, 0, 0, 16,
+ 0, 17, 18, 19, 0, 21, 0, 0, 291, 0,
+ 22, 23, 24, 25, 85, 86, 0, 26, 0, 29,
+ 30, 31, 32, 33, 0, 0, 0, 0, 0, 0,
+ 0, 115, 0, 0, 0, 12, 13, 0, 0, 35,
+ 14, 15, 27, 0, 28, 0, 0, 0, 0, 0,
+ 0, 0, 16, 0, 17, 18, 19, 0, 21, 0,
+ 0, 0, 0, 22, 23, 24, 25, 0, 0, 0,
+ 26, 0, 29, 30, 31, 32, 33, 0, 0, 0,
+ 0, 0, 0, 0, 0, 35, 0, 0, 27, 0,
+ 28, 0, 0, 0, 0, 0, 0, 11, 0, 0,
+ 0, 12, 13, 0, 0, 0, 14, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
+ 17, 18, 19, 0, 21, 0, 0, 0, 0, 22,
+ 23, 24, 25, 85, 86, 0, 26, 0, 29, 30,
+ 31, 32, 33, 35, 0, 0, 27, 0, 28, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 11, 0, 0, 0, 12, 13, 0, 0,
+ 0, 14, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 21,
+ 0, 0, 0, 0, 22, 23, 24, 25, 85, 86,
+ 0, 26, 0, 29, 30, 31, 32, 33, 11, 0,
+ 0, 0, 12, 13, 0, 0, 0, 14, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 17, 18, 19, 0, 21, 0, 0, 0, 0,
+ 22, 23, 24, 25, 0, 0, 0, 26, 0, 29,
+ 30, 31, 32, 33, 0, 0, 0, 0, 136, 0,
+ 0, 0, 12, 13, 0, 0, 0, 14, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 0, 17, 18, 19, 0, 21, 0, 0, 0, 0,
+ 22, 23, 24, 25, 0, 0, 0, 26, 0, 29,
+ 30, 31, 32, 33, 204, 0, 0, 0, 12, 13,
+ 0, 0, 0, 14, 15, 0, 0, 101, 102, 0,
+ 0, 0, 0, 0, 0, 16, 0, 17, 18, 19,
+ 0, 21, 0, 0, 0, 0, 22, 23, 24, 25,
+ 0, 0, 0, 26, 0, 29, 30, 31, 32, 33,
+ 131, 0, 133, 134, 0, 0, 0, 0, 0, 0,
+ 0, 0, 263, 0, 0, 0, 12, 13, 0, 0,
+ 0, 14, 15, 0, 0, 0, 0, 0, 155, 156,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 21,
+ 0, 0, 0, 0, 22, 23, 24, 25, 0, 0,
+ 0, 26, 0, 29, 30, 31, 32, 33, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
+ 68, 0, 0, 0, 0, 72, 0, 0, 0, 0,
+ 0, 0, 0, 89, 0, 0, 0, 0, 0, 0,
+ 209, 0, 0, 0, 0, 0, 89, 0, 0, 0,
+ 0, 217, 0, 219, 0, 220, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 241, 0, 0, 0,
+ 0, 0, 0, 142, 143, 144, 145, 146, 147, 0,
+ 0, 258, 259, 260, 261, 262, 89, 0, 89, 0,
+ 0, 0, 89, 89, 0, 0, 89, 0, 89, 89,
+ 0, 0, 0, 89, 89, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 89, 0, 0, 0, 0, 89,
+ 89, 89, 89, 0, 0, 0, 0, 0, 0, 286,
+ 0, 0, 0, 288, 289, 290, 0, 0, 0, 295,
+ 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 308, 309, 0, 0, 89, 0,
+ 313, 0, 0, 0, 0, 0, 0, 0, 0, 89,
+ 89, 0, 89, 89, 89, 89, 0, 89, 0, 89,
+ 89, 0, 0, 0, 0, 0, 0, 89, 89, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 89, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 89, 89, 89, 89,
+ 89, 0, 89, 89, 89,
+};
+short yycheck[] = { 41,
+ 0, 123, 62, 123, 41, 59, 41, 59, 214, 63,
+ 59, 63, 123, 63, 59, 63, 94, 59, 50, 38,
+ 35, 63, 35, 291, 41, 286, 63, 41, 63, 91,
+ 41, 63, 64, 301, 112, 40, 51, 37, 51, 7,
+ 40, 41, 42, 43, 44, 45, 63, 47, 59, 63,
+ 35, 41, 63, 41, 44, 0, 44, 41, 58, 59,
+ 60, 29, 62, 63, 124, 44, 51, 35, 261, 262,
+ 37, 40, 261, 60, 288, 42, 43, 40, 45, 63,
+ 47, 101, 102, 51, 63, 291, 118, 301, 302, 60,
+ 40, 16, 37, 93, 94, 301, 41, 42, 43, 44,
+ 45, 63, 47, 40, 63, 30, 31, 40, 292, 40,
+ 0, 131, 112, 58, 59, 60, 84, 62, 63, 303,
+ 304, 40, 40, 123, 124, 123, 40, 94, 44, 112,
+ 98, 41, 41, 37, 63, 41, 63, 292, 42, 171,
+ 172, 261, 262, 47, 280, 112, 41, 37, 93, 94,
+ 40, 41, 42, 43, 41, 45, 44, 47, 44, 93,
+ 292, 41, 41, 40, 40, 133, 134, 112, 58, 59,
+ 60, 40, 62, 63, 292, 290, 195, 41, 123, 124,
+ 59, 59, 272, 91, 41, 40, 93, 271, 41, 41,
+ 94, 0, 41, 93, 59, 41, -1, 51, -1, 219,
+ -1, 211, -1, 93, 94, 265, -1, -1, 112, 41,
+ -1, 260, 261, 262, -1, 260, 261, 262, 260, 261,
+ 262, -1, 112, 148, 256, 40, -1, 59, 43, -1,
+ 45, 63, -1, 123, 124, 289, 290, 289, 290, 289,
+ 290, 289, 290, -1, 212, 213, -1, 289, 290, 260,
+ 261, 262, 289, 290, 289, 290, -1, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 286, -1, 268, 269,
+ -1, -1, 289, 290, 274, 289, 290, -1, 289, 290,
+ 280, 41, 282, 283, 284, 285, 286, -1, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, -1, 298, 59,
+ 300, 301, 302, 303, 304, 289, 290, 274, 276, -1,
+ 289, 290, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 292, -1, 268, 269, 293, -1, 289, 290, 274,
+ 289, 290, 303, 304, -1, 280, 41, 282, 283, 284,
+ 285, 286, -1, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, -1, 298, 59, 300, 301, 302, 303, 304,
+ 289, 290, 289, 290, -1, -1, -1, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
+ 0, 260, 261, 262, 274, -1, -1, -1, -1, -1,
+ 280, -1, 282, 283, 284, 285, 286, 41, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, -1, 298, -1,
+ 300, 301, 302, 303, 304, 59, -1, 37, -1, -1,
+ 40, 41, 42, 43, 44, 45, -1, 47, 260, 261,
+ 262, -1, -1, -1, -1, 0, -1, -1, 58, 59,
+ -1, -1, 62, 63, 259, -1, -1, 217, 263, 264,
+ -1, -1, -1, 268, 269, -1, -1, 289, 290, -1,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ -1, 286, 37, 93, 94, 40, 41, 42, 43, 44,
+ 45, -1, 47, 298, -1, 300, 301, 302, 303, 304,
+ 0, -1, 112, 58, 59, 60, -1, 62, 63, -1,
+ 260, 261, 262, 123, 124, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 288, 289,
+ 290, -1, -1, -1, -1, -1, -1, 37, 93, 94,
+ 40, 41, 42, 43, 44, 45, -1, 47, 308, 309,
+ -1, -1, -1, 313, -1, -1, -1, 41, 58, 59,
+ 60, -1, 62, 63, -1, 260, 261, 262, 123, 124,
+ -1, -1, -1, 0, -1, 59, -1, -1, -1, 63,
+ -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
+ -1, -1, -1, 93, 94, -1, -1, -1, -1, -1,
+ -1, -1, -1, 41, -1, -1, 59, -1, -1, 62,
+ 37, -1, 112, 40, 41, 42, 43, 44, 45, -1,
+ 47, 59, -1, 123, 124, 63, 260, 261, 262, -1,
+ -1, 58, 59, 60, -1, 62, 63, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
+ -1, -1, -1, -1, 274, -1, 93, -1, -1, -1,
+ 280, 124, 282, 283, 284, 285, 286, -1, 288, 289,
+ 290, 291, 292, 293, 294, 295, 296, -1, 298, -1,
+ 300, 301, 302, 303, 304, -1, 123, 124, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, -1, -1, 268, 269, -1, -1, -1, -1, 274,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ 285, 286, -1, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, -1, 298, -1, 300, 301, 302, 303, 304,
+ -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, -1, -1, 268, 269,
+ -1, -1, -1, -1, 274, -1, 260, 261, 262, -1,
+ 280, -1, 282, 283, 284, 285, 286, -1, 288, 289,
+ -1, 291, 292, 293, 294, 295, 296, -1, 298, -1,
+ 300, 301, 302, 303, 304, 289, 290, 260, 261, 262,
+ -1, -1, 265, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 260, 261, 262, -1, -1, -1, -1, -1,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, -1,
+ -1, 268, 269, 0, -1, -1, -1, 274, -1, -1,
+ -1, 289, 290, 280, -1, 282, 283, 284, 285, 286,
+ -1, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, -1, -1,
+ 37, -1, -1, 40, 41, 42, 43, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, 0, -1, -1,
+ -1, 58, 59, 60, -1, 62, 63, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 37, -1, 93, 40, 41, 42,
+ 43, 44, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 0, -1, -1, -1, 58, 59, 60, -1, 62,
+ 63, -1, -1, -1, -1, -1, 123, 124, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 37, -1,
+ 93, 40, 41, 42, 43, 44, 45, -1, 47, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
+ 59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
+ 123, 124, -1, -1, -1, 0, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 93, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 37, -1, -1, 40, 41, 42, 43, 44,
+ 45, -1, 47, -1, 123, 124, -1, -1, -1, -1,
+ -1, -1, -1, 58, 59, 60, -1, 62, 63, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, -1,
+ -1, 268, 269, -1, -1, -1, -1, 274, 93, -1,
+ -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
+ -1, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, 123, 124,
+ -1, -1, -1, -1, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, -1, -1, 268, 269, -1, -1, -1,
+ -1, 274, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, 285, 286, -1, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, -1, -1, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
+ 269, -1, -1, -1, -1, 274, -1, -1, -1, -1,
+ -1, 280, -1, 282, 283, 284, 285, 286, -1, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
+ -1, 300, 301, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, -1, -1, 268, 269, 0, -1, -1, -1, 274,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ 285, 286, -1, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, -1, 298, -1, 300, 301, 302, 303, 304,
+ -1, -1, 37, -1, -1, 40, 41, 42, 43, 44,
+ 45, -1, 47, -1, -1, -1, -1, -1, -1, 0,
+ -1, -1, -1, 58, 59, 60, -1, 62, 63, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 37, -1, 93, 40,
+ 41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, -1, 0, -1, -1, 58, 59, 60,
+ -1, 62, 63, -1, -1, -1, -1, -1, 123, 124,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 37, 93, 94, 40, 41, 42, 43, 44, 45,
+ -1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 112, 58, 59, 60, -1, 62, -1, -1, -1,
+ -1, -1, 123, 124, -1, -1, -1, 0, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 93, 94, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 112, 40, 41, -1,
+ 43, 44, 45, -1, -1, -1, -1, 123, 124, -1,
+ -1, -1, -1, -1, -1, 58, 59, 60, -1, 62,
+ 63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, -1, -1, 268, 269, -1, -1, -1, -1, 274,
+ 93, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ 285, 286, -1, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, -1, 298, -1, 300, 301, 302, 303, 304,
+ 123, 124, -1, -1, -1, -1, 257, 258, 259, 260,
+ 261, 262, 263, 264, 265, -1, -1, 268, 269, -1,
+ -1, -1, -1, 274, -1, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, 285, 286, -1, -1, 289, 290,
+ 291, 292, 293, 294, 295, 296, -1, 298, -1, 300,
+ -1, -1, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, 257, 258, 259, 260, 261, 262, 263, 264, 265,
+ -1, -1, 268, 269, -1, -1, -1, -1, 274, -1,
+ -1, -1, -1, -1, 280, 0, 282, 283, 284, 285,
+ 286, -1, 288, -1, -1, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
+ 45, -1, -1, -1, 257, 258, 259, 260, 261, 262,
+ 263, 264, 265, 0, 59, 268, 269, -1, -1, -1,
+ -1, 274, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, 285, 286, -1, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, -1, 40, 41, -1, 43, 44, 45, -1,
+ -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 58, 59, 60, -1, 62, 63, -1, 123, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 40, 41, -1, -1, 44, 93, -1, -1, 0,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
+ 59, 60, -1, 62, 63, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 123, 124, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
+ 41, -1, -1, 44, 93, -1, -1, -1, -1, -1,
+ -1, 0, -1, -1, -1, -1, -1, 58, 59, 60,
+ -1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 40, 93, -1, 43, -1, 45, -1, -1, -1,
+ -1, -1, 257, 258, 259, 260, 261, 262, 263, 264,
+ 59, -1, -1, 268, 269, -1, -1, -1, -1, -1,
+ -1, -1, 123, 124, -1, 280, -1, 282, 283, 284,
+ 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
+ -1, -1, -1, 298, -1, 300, 301, 302, 303, 304,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, -1,
+ -1, 268, 269, 40, 123, -1, 43, 274, 45, -1,
+ -1, -1, -1, 280, 0, 282, 283, 284, 285, 286,
+ -1, 288, 289, 290, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, -1, -1, 268,
+ 269, -1, -1, -1, 40, -1, -1, 43, -1, 45,
+ -1, 280, -1, 282, 283, 284, 285, 286, -1, 288,
+ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298,
+ -1, 300, 301, 302, 303, 304, 257, 258, 259, 260,
+ 261, 262, 263, 264, 265, -1, -1, 268, 269, -1,
+ 40, 41, -1, 43, -1, 45, -1, -1, -1, 280,
+ -1, 282, 283, 284, 285, 286, -1, 288, 289, 290,
+ 291, 292, 293, 294, 295, 296, -1, 298, -1, 300,
+ 301, 302, 303, 304, -1, -1, -1, 123, 257, 258,
+ 259, 260, 261, 262, 263, 264, 0, -1, -1, 268,
+ 269, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 280, -1, 282, 283, 284, 285, 286, -1, -1,
+ -1, -1, 291, 292, 293, 294, -1, -1, -1, 298,
+ -1, 300, 301, 302, 303, 304, 40, -1, -1, 43,
+ -1, 45, -1, -1, 0, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 259, -1, 261, 262, 263, 264, -1, -1,
+ -1, 268, 269, -1, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, 280, 0, 282, 283, 284, -1, 286,
+ -1, -1, -1, 59, 291, 292, 293, 294, -1, -1,
+ -1, 298, -1, 300, 301, 302, 303, 304, -1, 123,
+ -1, 257, 258, 259, -1, -1, -1, 263, 264, -1,
+ -1, -1, 268, 269, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, 0, 280, -1, 282, 283, 284, 285,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, 259,
+ -1, -1, -1, 263, 264, -1, -1, -1, 268, 269,
+ -1, -1, -1, 40, -1, -1, 43, -1, 45, -1,
+ 280, -1, 282, 283, 284, -1, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, -1, -1, -1, 298, -1,
+ 300, 301, 302, 303, 304, -1, -1, 123, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 257, 258, 259, 260, -1, 262, 263,
+ 264, -1, -1, -1, 268, 269, 123, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 280, -1, 282, 283,
+ 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
+ 294, -1, -1, -1, 298, -1, 300, 301, 302, 303,
+ 304, 257, 258, 259, 260, 261, 262, 263, 264, -1,
+ -1, -1, 268, 269, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, -1,
+ -1, 257, 258, 259, -1, -1, -1, 263, 264, -1,
+ -1, -1, 268, 269, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, 285,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, -1,
+ 257, 258, 259, -1, -1, -1, 263, 264, -1, -1,
+ -1, 268, 269, 0, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 280, -1, 282, 283, 284, 285, 286,
+ -1, -1, -1, -1, 291, 292, 293, 294, -1, -1,
+ -1, 298, -1, 300, 301, 302, 303, 304, -1, -1,
+ 37, -1, -1, 40, 41, 42, 43, 44, 45, -1,
+ 47, -1, -1, -1, -1, -1, -1, -1, 0, -1,
+ -1, 58, 59, 60, -1, 62, 63, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 37, 93, 94, 40, 41,
+ 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 112, 58, 59, -1, -1,
+ 62, 63, -1, -1, -1, -1, 123, 124, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 93, 94, -1, -1, -1, -1, 0, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 123, 124, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 37, -1, -1, -1, 41, 42,
+ -1, 44, -1, -1, 47, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 58, 59, 60, -1, 62,
+ 63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
+ 257, 258, 259, 260, 261, 262, 263, 264, 265, 112,
+ -1, 268, 269, -1, -1, -1, -1, 274, -1, -1,
+ 123, 124, -1, 280, -1, 282, 283, 284, 285, 286,
+ -1, 288, 289, 290, 291, -1, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 257, 258, 259, 260, 261,
+ 262, 263, 264, 265, -1, -1, 268, 269, 14, -1,
+ -1, -1, 274, -1, -1, -1, -1, -1, 280, -1,
+ 282, 283, 284, 285, 286, -1, 288, 289, 290, 291,
+ -1, 293, 294, 295, 296, -1, 298, -1, 300, 301,
+ 302, -1, -1, 49, 50, 51, -1, -1, -1, -1,
+ 56, 57, -1, 59, 60, 61, -1, 63, 64, 65,
+ 66, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 81, -1, -1, -1, 85,
+ 86, 87, 88, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 257, 258, -1, 260, 261, 262,
+ -1, -1, 265, -1, -1, -1, 112, -1, -1, -1,
+ -1, 274, 118, -1, -1, -1, -1, -1, -1, 125,
+ -1, -1, 285, -1, -1, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 150, 151, -1, -1, -1, 155,
+ 156, -1, -1, 159, 160, 161, 162, 163, -1, -1,
+ -1, -1, 168, 169, -1, 171, 172, -1, -1, -1,
+ 176, -1, -1, -1, 180, -1, 0, -1, -1, -1,
+ -1, -1, -1, -1, 190, 191, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 214, -1,
+ -1, 217, -1, 37, -1, -1, 0, 41, 42, -1,
+ 44, -1, -1, 47, 230, -1, 232, -1, 234, -1,
+ 236, -1, 238, -1, 58, 59, 60, 243, 62, 63,
+ -1, -1, 248, 249, -1, -1, -1, -1, -1, -1,
+ 256, 257, -1, 37, -1, -1, -1, 41, 42, -1,
+ 44, -1, -1, 47, 0, -1, -1, -1, -1, 93,
+ 94, -1, -1, -1, 58, 59, 60, -1, 62, 63,
+ -1, -1, 288, 289, 290, 291, -1, -1, 112, -1,
+ 296, -1, -1, -1, -1, 301, -1, -1, -1, 123,
+ 124, 37, 308, 309, 0, 41, 42, 313, 44, 93,
+ 94, 47, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 58, 59, 60, -1, 62, 63, 112, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
+ 124, 37, -1, -1, -1, 41, 42, -1, 44, -1,
+ -1, 47, -1, -1, -1, -1, -1, 93, 94, -1,
+ -1, -1, 58, 59, 60, -1, 62, 63, -1, -1,
+ -1, -1, -1, -1, -1, -1, 112, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 123, 124, 40,
+ -1, -1, 43, -1, 45, -1, -1, 93, 94, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
+ -1, 62, -1, -1, -1, -1, 112, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 123, 124, -1,
+ -1, -1, -1, 257, 258, -1, 260, 261, 262, -1,
+ -1, 265, -1, -1, -1, -1, -1, -1, -1, -1,
+ 274, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 285, -1, -1, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, 257, 258, -1, 260, 261, 262, -1,
+ -1, 265, -1, -1, -1, -1, -1, -1, -1, -1,
+ 274, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 285, -1, -1, 288, 289, 290, 291, 292, 293,
+ 294, 295, 296, -1, -1, -1, -1, -1, -1, -1,
+ -1, 257, 258, -1, 260, 261, 262, -1, -1, 265,
+ -1, -1, -1, -1, -1, -1, -1, -1, 274, -1,
+ -1, -1, -1, 0, -1, -1, -1, -1, -1, 285,
+ -1, -1, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 257, 258, -1, 260, 261, 262, -1, -1, 265,
+ -1, -1, -1, -1, -1, -1, -1, -1, 274, -1,
+ 37, -1, -1, 0, 41, 42, -1, 44, -1, 285,
+ 47, -1, 288, 289, 290, 291, 292, 293, 294, 295,
+ 296, 58, 59, 60, -1, 62, 63, -1, 259, -1,
+ -1, -1, 263, 264, -1, -1, -1, 268, 269, -1,
+ 37, -1, -1, -1, 41, 42, -1, 44, 0, 280,
+ 47, 282, 283, 284, -1, 286, 93, 94, -1, -1,
+ -1, 58, 59, -1, -1, 296, 63, 298, -1, 300,
+ 301, 302, 303, 304, -1, 112, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 37, 123, 124, 0, 41,
+ 42, -1, 44, -1, -1, 47, 93, 94, -1, -1,
+ -1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
+ -1, 63, -1, -1, -1, 112, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 37, 123, 124, -1, 41,
+ 42, -1, 44, 0, -1, 47, -1, -1, -1, -1,
+ -1, 93, 94, -1, -1, -1, 58, 59, -1, -1,
+ -1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
+ 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 37, 123, 124, -1, 41, 42, -1, 44, -1, -1,
+ 47, 93, 94, -1, -1, -1, -1, -1, -1, -1,
+ -1, 58, 59, -1, -1, -1, 63, -1, -1, -1,
+ 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 123, 124, -1, 40, 41, -1, 43, 44, 45,
+ 257, 258, -1, 260, 261, 262, 93, 94, 265, -1,
+ -1, -1, -1, -1, 60, -1, 62, 274, -1, -1,
+ -1, -1, -1, -1, -1, 112, -1, -1, 285, -1,
+ -1, 288, 289, 290, -1, -1, 123, 124, 295, 296,
+ 257, 258, -1, 260, 261, 262, -1, -1, 265, -1,
+ -1, -1, -1, -1, -1, -1, -1, 274, -1, -1,
+ 40, -1, -1, 43, -1, 45, -1, -1, 285, -1,
+ -1, 288, 289, 290, 291, 292, 293, 294, 295, 59,
+ -1, -1, -1, -1, -1, 257, 258, -1, 260, 261,
+ 262, -1, -1, 265, -1, -1, -1, -1, -1, -1,
+ -1, -1, 274, 0, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 285, -1, -1, 288, 289, 290, -1,
+ -1, -1, -1, -1, -1, 257, 258, -1, 260, 261,
+ 262, -1, -1, 265, -1, -1, -1, -1, -1, -1,
+ 37, -1, 274, 123, 41, 42, -1, 44, 0, -1,
+ 47, -1, -1, 285, -1, -1, 288, 289, 290, -1,
+ -1, 58, 59, -1, -1, -1, 63, -1, -1, -1,
+ 257, 258, -1, 260, 261, 262, -1, -1, 265, -1,
+ -1, -1, -1, -1, -1, 37, -1, 274, -1, 41,
+ 42, -1, -1, -1, -1, 47, 93, 94, 285, -1,
+ -1, 288, 289, 290, -1, -1, 58, 59, -1, -1,
+ -1, 63, -1, 259, -1, 112, -1, 263, 264, -1,
+ -1, -1, 268, 269, -1, 40, 123, 124, 43, -1,
+ 45, -1, -1, -1, 280, -1, 282, 283, 284, -1,
+ 286, 93, 94, -1, 59, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, -1,
+ 112, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 123, 124, -1, -1, -1, -1, -1, -1, 259,
+ 260, 261, 262, 263, 264, -1, 266, 267, 268, 269,
+ 270, -1, 272, 273, -1, 275, 276, 277, 278, 279,
+ 280, 281, 282, 283, 284, -1, 286, 287, 123, -1,
+ 125, 291, 292, 293, 294, -1, -1, -1, 298, -1,
+ 300, 301, 302, 303, 304, -1, -1, -1, -1, 40,
+ -1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 257, 258, -1, 260, 261, 262, -1, -1, 265, -1,
+ -1, -1, -1, -1, -1, -1, -1, 274, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 285, -1,
+ -1, 288, 289, 290, -1, -1, -1, 40, -1, -1,
+ 43, -1, 45, -1, -1, 257, 258, -1, 260, 261,
+ 262, -1, 123, 265, 125, -1, 59, -1, -1, -1,
+ -1, -1, 274, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 285, -1, -1, 288, 289, 290, -1,
+ -1, -1, -1, -1, 259, 260, -1, -1, 263, 264,
+ -1, 266, 267, 268, 269, 270, 271, 272, 273, -1,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ -1, 286, 287, -1, -1, -1, 291, 292, 293, 294,
+ 123, -1, 125, 298, -1, 300, 301, 302, 303, 304,
+ -1, -1, -1, -1, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 40, -1, -1, 43, -1, 45, 259, 260,
+ -1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
+ 271, 272, 273, -1, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, -1, 286, 287, 123, -1, 125,
+ 291, 292, 293, 294, -1, -1, -1, 298, -1, 300,
+ 301, 302, 303, 304, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 59, -1, -1, 259, 260, -1, -1,
+ 263, 264, -1, 266, 267, 268, 269, 270, 271, 272,
+ 273, -1, 275, 276, 277, 278, 279, 280, 281, 282,
+ 283, 284, -1, 286, 287, -1, -1, -1, 291, 292,
+ 293, 294, -1, -1, -1, 298, -1, 300, 301, 302,
+ 303, 304, -1, -1, -1, -1, 40, -1, -1, 43,
+ -1, 45, -1, -1, -1, -1, -1, 123, -1, 125,
+ -1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 259, 260, -1, -1, 263, 264, -1,
+ 266, 267, 268, 269, 270, 271, 272, 273, -1, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, -1,
+ 286, 287, -1, -1, -1, 291, 292, 293, 294, 123,
+ -1, 125, 298, -1, 300, 301, 302, 303, 304, 40,
+ -1, 259, 43, -1, 45, 263, 264, -1, -1, -1,
+ 268, 269, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, 280, -1, 282, 283, 284, -1, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, -1, -1, -1,
+ 298, -1, 300, 301, 302, 303, 304, 40, -1, -1,
+ 43, -1, 45, 259, 260, -1, -1, 263, 264, -1,
+ 266, 267, 268, 269, 270, 271, 272, 273, -1, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, -1,
+ 286, 287, 123, -1, 125, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, 40,
+ -1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, -1, -1, -1, 259, 260, -1, -1, 263,
+ 264, -1, 266, 267, 268, 269, 270, 271, 272, 273,
+ -1, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, -1, 286, 287, -1, -1, -1, 291, 292, 293,
+ 294, -1, -1, -1, 298, -1, 300, 301, 302, 303,
+ 304, 40, -1, -1, 43, -1, 45, -1, -1, -1,
+ -1, -1, 123, -1, 125, -1, -1, -1, -1, -1,
+ 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 259, 260,
+ -1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
+ 271, 272, 273, -1, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, -1, 286, 287, -1, -1, -1,
+ 291, 292, 293, 294, 123, -1, 125, 298, -1, 300,
+ 301, 302, 303, 304, 40, -1, 259, 43, -1, 45,
+ 263, 264, -1, -1, -1, 268, 269, -1, -1, -1,
+ -1, -1, -1, 59, -1, -1, -1, 280, -1, 282,
+ 283, 284, -1, 286, -1, -1, -1, -1, 291, 292,
+ 293, 294, -1, -1, -1, 298, -1, 300, 301, 302,
+ 303, 304, 40, -1, -1, 43, -1, 45, 259, 260,
+ -1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
+ 271, 272, 273, -1, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, -1, 286, 287, 123, -1, 125,
+ 291, 292, 293, 294, -1, -1, -1, 298, -1, 300,
+ 301, 302, 303, 304, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
+ 259, 260, -1, -1, 263, 264, -1, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, 276, 277, 278,
+ 279, 280, 281, 282, 283, 284, -1, 286, 287, -1,
+ -1, -1, 291, 292, 293, 294, -1, -1, -1, 298,
+ -1, 300, 301, 302, 303, 304, 40, -1, -1, 43,
+ -1, 45, -1, -1, -1, -1, -1, 123, -1, 125,
+ -1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 259, 260, -1, -1, 263, 264, -1,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, -1,
+ 286, 287, -1, -1, -1, 291, 292, 293, 294, 123,
+ -1, 125, 298, -1, 300, 301, 302, 303, 304, 40,
+ -1, 259, 43, -1, 45, 263, 264, -1, -1, -1,
+ 268, 269, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, 280, -1, 282, 283, 284, -1, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, -1, -1, -1,
+ 298, -1, 300, 301, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, 259, 260, -1, -1, 263, 264, -1,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, -1,
+ 286, 287, 123, -1, 125, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, 40,
+ -1, -1, 43, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, -1, -1, -1, 259, 260, -1, -1, 263,
+ 264, -1, 266, 267, 268, 269, 270, -1, 272, 273,
+ -1, 275, 276, 277, 278, 279, 280, 281, 282, 283,
+ 284, -1, 286, 287, -1, -1, -1, 291, 292, 293,
+ 294, -1, -1, -1, 298, -1, 300, 301, 302, 303,
+ 304, 40, -1, -1, 43, -1, 45, -1, -1, -1,
+ -1, -1, 123, -1, 125, -1, -1, -1, -1, -1,
+ 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 259, 260,
+ -1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, -1, 286, 287, -1, -1, -1,
+ 291, 292, 293, 294, 123, -1, 125, 298, -1, 300,
+ 301, 302, 303, 304, 40, -1, -1, 43, -1, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 59, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 40, -1, -1, 43, -1, 45, -1, -1, 259, 260,
+ -1, -1, 263, 264, -1, 266, 267, 268, 269, 270,
+ -1, 272, 273, -1, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, -1, 286, 287, 123, -1, 125,
+ 291, 292, 293, 294, -1, -1, -1, 298, -1, 300,
+ 301, 302, 303, 304, 40, 41, -1, 43, 44, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 60, -1, 62, -1, -1, -1,
+ 259, 260, -1, -1, 263, 264, -1, 266, 267, 268,
+ 269, 270, -1, 272, 273, -1, 275, 276, 277, 278,
+ 279, 280, 281, 282, 283, 284, -1, 286, 287, -1,
+ -1, -1, 291, 292, 293, 294, -1, -1, -1, 298,
+ -1, 300, 301, 302, 303, 304, 40, 41, -1, 43,
+ 44, 45, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 60, -1, 62, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 259, 260, -1, -1, 263, 264, -1,
+ 266, 267, 268, 269, 270, -1, 272, 273, -1, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, -1,
+ 286, 287, -1, -1, -1, 291, 292, 293, 294, -1,
+ -1, -1, 298, -1, 300, 301, 302, 303, 304, 259,
+ -1, -1, -1, 263, 264, -1, 266, 267, 268, 269,
+ -1, -1, -1, -1, -1, 275, 276, 277, 278, 279,
+ 280, -1, 282, 283, 284, -1, 286, 287, -1, -1,
+ -1, 291, 292, 293, 294, -1, -1, -1, 298, -1,
+ 300, 301, 302, 303, 304, 40, 41, -1, 43, 44,
+ 45, -1, -1, 259, -1, -1, -1, 263, 264, -1,
+ -1, -1, 268, 269, -1, 60, -1, 62, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, -1,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, 40,
+ 41, -1, 43, 44, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
+ -1, 62, -1, -1, -1, 259, -1, -1, -1, 263,
+ 264, -1, -1, -1, 268, 269, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 280, -1, 282, 283,
+ 284, 40, 286, -1, 43, 44, 45, 291, 292, 293,
+ 294, 295, 296, -1, 298, -1, 300, 301, 302, 303,
+ 304, 60, -1, 62, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
+ 43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 60, -1, 62,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 40, -1, -1, 43, 44, 45, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 60, 259, 62, -1, -1, 263, 264,
+ -1, -1, -1, 268, 269, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ 40, 286, -1, 43, 44, 45, 291, 292, 293, 294,
+ 295, 296, -1, 298, -1, 300, 301, 302, 303, 304,
+ 60, -1, 62, -1, -1, -1, -1, -1, 259, -1,
+ -1, -1, 263, 264, -1, -1, -1, 268, 269, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, 40, 286, -1, 43, 44, 45,
+ 291, 292, 293, 294, 295, 296, -1, 298, -1, 300,
+ 301, 302, 303, 304, 60, -1, 62, -1, -1, -1,
+ 259, -1, -1, -1, 263, 264, -1, -1, -1, 268,
+ 269, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 280, -1, 282, 283, 284, -1, 286, -1, -1,
+ -1, -1, 291, 292, 293, 294, 295, 296, -1, 298,
+ -1, 300, 301, 302, 303, 304, 259, -1, -1, -1,
+ 263, 264, -1, -1, 40, 268, 269, 43, 44, 45,
+ -1, -1, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, -1, 286, 60, -1, 62, -1, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, 259, -1, -1, -1, 263, 264, -1, -1,
+ 40, 268, 269, 43, 44, 45, -1, -1, -1, -1,
+ -1, -1, -1, 280, -1, 282, 283, 284, -1, 286,
+ 60, -1, 62, -1, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, -1, 259,
+ -1, -1, -1, 263, 264, -1, -1, 40, 268, 269,
+ 43, 44, 45, -1, -1, -1, -1, -1, -1, -1,
+ 280, -1, 282, 283, 284, -1, 286, 60, -1, 62,
+ -1, 291, 292, 293, 294, 295, 296, -1, 298, -1,
+ 300, 301, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, 259, -1, -1, -1, 263, 264, -1,
+ -1, 40, 268, 269, 43, -1, 45, -1, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, 58,
+ 286, 60, -1, 62, -1, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, -1,
+ -1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
+ 43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 60, -1, 62,
+ -1, -1, -1, 259, -1, -1, -1, 263, 264, -1,
+ -1, -1, 268, 269, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, -1,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, 259,
+ -1, -1, -1, 263, 264, -1, -1, -1, 268, 269,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 280, -1, 282, 283, 284, -1, 286, -1, -1, -1,
+ -1, 291, 292, 293, 294, 295, 296, -1, 298, -1,
+ 300, 301, 302, 303, 304, -1, 259, -1, -1, -1,
+ 263, 264, -1, -1, -1, 268, 269, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, -1, 286, -1, -1, -1, -1, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, 40, 41, -1, 43, -1, 45, -1, -1,
+ 259, -1, -1, -1, 263, 264, -1, -1, -1, 268,
+ 269, -1, 60, -1, 62, -1, -1, -1, -1, -1,
+ -1, 280, -1, 282, 283, 284, -1, 286, -1, -1,
+ -1, -1, 291, 292, 293, 294, 295, 296, -1, 298,
+ -1, 300, 301, 302, 303, 304, 259, -1, -1, -1,
+ 263, 264, -1, -1, -1, 268, 269, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, -1, 286, -1, -1, -1, -1, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, 40, 41, -1, 43, -1, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 60, -1, 62, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 40, 41,
+ -1, 43, -1, 45, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
+ 62, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 40, 41, -1, 43, -1, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 60, -1, 62, -1, -1, -1,
+ -1, 259, -1, -1, -1, 263, 264, -1, -1, -1,
+ 268, 269, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 280, -1, 282, 283, 284, -1, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
+ 298, -1, 300, 301, 302, 303, 304, 40, 41, -1,
+ 43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 60, -1, 62,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 40, 41, -1, 43, -1, 45, -1,
+ -1, 259, -1, -1, -1, 263, 264, -1, -1, -1,
+ 268, 269, -1, 60, -1, 62, -1, -1, -1, -1,
+ -1, -1, 280, -1, 282, 283, 284, -1, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, 295, 296, -1,
+ 298, -1, 300, 301, 302, 303, 304, 259, -1, -1,
+ -1, 263, 264, -1, -1, -1, 268, 269, 40, -1,
+ -1, 43, -1, 45, -1, -1, -1, -1, 280, -1,
+ 282, 283, 284, -1, 286, -1, -1, -1, -1, 291,
+ 292, 293, 294, 295, 296, -1, 298, -1, 300, 301,
+ 302, 303, 304, 259, -1, -1, -1, 263, 264, -1,
+ -1, -1, 268, 269, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 280, -1, 282, 283, 284, -1,
+ 286, -1, -1, -1, -1, 291, 292, 293, 294, 295,
+ 296, -1, 298, -1, 300, 301, 302, 303, 304, 40,
+ 41, 123, 43, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
+ -1, 62, -1, -1, -1, -1, 259, -1, -1, -1,
+ 263, 264, -1, -1, -1, 268, 269, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 280, -1, 282,
+ 283, 284, 40, 286, -1, 43, -1, 45, 291, 292,
+ 293, 294, 295, 296, -1, 298, -1, 300, 301, 302,
+ 303, 304, 259, -1, -1, -1, 263, 264, -1, -1,
+ -1, 268, 269, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 280, -1, 282, 283, 284, -1, 286,
+ -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, 40, 41,
+ -1, 43, -1, 45, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 257, 258, 259, 60, -1,
+ 62, 263, 264, -1, -1, -1, 268, 269, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
+ 282, 283, 284, 285, 286, -1, -1, -1, -1, 291,
+ 292, 293, 294, -1, -1, -1, 298, -1, 300, 301,
+ 302, 303, 304, 40, -1, -1, 43, -1, 45, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 60, -1, 62, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 259, -1,
+ -1, -1, 263, 264, -1, -1, -1, 268, 269, 40,
+ -1, -1, 43, -1, 45, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, -1, 286, -1, -1, 59, -1,
+ 291, 292, 293, 294, 295, 296, -1, 298, -1, 300,
+ 301, 302, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, 259, -1, -1, -1, 263, 264, -1, -1, 40,
+ 268, 269, 43, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, 280, -1, 282, 283, 284, -1, 286, -1,
+ -1, -1, -1, 291, 292, 293, 294, -1, -1, -1,
+ 298, -1, 300, 301, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, -1, -1, 40, -1, -1, 43, -1,
+ 45, -1, -1, -1, -1, -1, -1, 259, -1, -1,
+ -1, 263, 264, -1, -1, -1, 268, 269, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 280, -1,
+ 282, 283, 284, -1, 286, -1, -1, -1, -1, 291,
+ 292, 293, 294, 295, 296, -1, 298, -1, 300, 301,
+ 302, 303, 304, 40, -1, -1, 43, -1, 45, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 259, -1, -1, -1, 263, 264, -1, -1,
+ -1, 268, 269, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 280, -1, 282, 283, 284, -1, 286,
+ -1, -1, -1, -1, 291, 292, 293, 294, 295, 296,
+ -1, 298, -1, 300, 301, 302, 303, 304, 259, -1,
+ -1, -1, 263, 264, -1, -1, -1, 268, 269, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, -1, 286, -1, -1, -1, -1,
+ 291, 292, 293, 294, -1, -1, -1, 298, -1, 300,
+ 301, 302, 303, 304, -1, -1, -1, -1, 259, -1,
+ -1, -1, 263, 264, -1, -1, -1, 268, 269, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 280,
+ -1, 282, 283, 284, -1, 286, -1, -1, -1, -1,
+ 291, 292, 293, 294, -1, -1, -1, 298, -1, 300,
+ 301, 302, 303, 304, 259, -1, -1, -1, 263, 264,
+ -1, -1, -1, 268, 269, -1, -1, 47, 48, -1,
+ -1, -1, -1, -1, -1, 280, -1, 282, 283, 284,
+ -1, 286, -1, -1, -1, -1, 291, 292, 293, 294,
+ -1, -1, -1, 298, -1, 300, 301, 302, 303, 304,
+ 80, -1, 82, 83, -1, -1, -1, -1, -1, -1,
+ -1, -1, 259, -1, -1, -1, 263, 264, -1, -1,
+ -1, 268, 269, -1, -1, -1, -1, -1, 108, 109,
+ -1, -1, -1, 280, -1, 282, 283, 284, -1, 286,
+ -1, -1, -1, -1, 291, 292, 293, 294, -1, -1,
+ -1, 298, -1, 300, 301, 302, 303, 304, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 27,
+ 28, -1, -1, -1, -1, 33, -1, -1, -1, -1,
+ -1, -1, -1, 41, -1, -1, -1, -1, -1, -1,
+ 170, -1, -1, -1, -1, -1, 54, -1, -1, -1,
+ -1, 181, -1, 183, -1, 185, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 206, -1, -1, -1,
+ -1, -1, -1, 91, 92, 93, 94, 95, 96, -1,
+ -1, 221, 222, 223, 224, 225, 104, -1, 106, -1,
+ -1, -1, 110, 111, -1, -1, 114, -1, 116, 117,
+ -1, -1, -1, 121, 122, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 132, -1, -1, -1, -1, 137,
+ 138, 139, 140, -1, -1, -1, -1, -1, -1, 269,
+ -1, -1, -1, 273, 274, 275, -1, -1, -1, 279,
+ 158, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 304, 305, -1, -1, 186, -1,
+ 310, -1, -1, -1, -1, -1, -1, -1, -1, 197,
+ 198, -1, 200, 201, 202, 203, -1, 205, -1, 207,
+ 208, -1, -1, -1, -1, -1, -1, 215, 216, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 227,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 252, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 264, 265, 266, 267,
+ 268, -1, 270, 271, 272,
+};
+#define YYFINAL 1
+#ifndef YYDEBUG
+#define YYDEBUG 0
+#endif
+#define YYMAXTOKEN 304
+#if YYDEBUG
+char *yyname[] = {
+"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
+"':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'p'",0,0,0,0,0,0,0,
+0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW",
+"NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF","SPLIT",
+"IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK","CONTINUE","RET","GETLINE",
+"DO","SUB","GSUB","MATCH","FUNCTION","USERFUN","DELETE","ASGNOP","OROR",
+"ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP","RELOP","OR","STRING",
+"UMINUS","NOT","INCR","DECR","FIELD","VFIELD",
+};
+char *yyrule[] = {
+"$accept : program",
+"program : junk hunks",
+"begin : BEGIN '{' maybe states '}' junk",
+"end : END '{' maybe states '}'",
+"end : end NEWLINE",
+"hunks : hunks hunk junk",
+"hunks :",
+"hunk : patpat",
+"hunk : patpat '{' maybe states '}'",
+"hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
+"hunk : '{' maybe states '}'",
+"hunk : begin",
+"hunk : end",
+"arg_list : expr_list",
+"patpat : cond",
+"patpat : cond ',' cond",
+"cond : expr",
+"cond : match",
+"cond : rel",
+"cond : compound_cond",
+"cond : cond '?' expr ':' expr",
+"compound_cond : '(' compound_cond ')'",
+"compound_cond : cond ANDAND maybe cond",
+"compound_cond : cond OROR maybe cond",
+"compound_cond : NOT cond",
+"rel : expr RELOP expr",
+"rel : expr '>' expr",
+"rel : expr '<' expr",
+"rel : '(' rel ')'",
+"match : expr MATCHOP expr",
+"match : expr MATCHOP REGEX",
+"match : REGEX",
+"match : '(' match ')'",
+"expr : term",
+"expr : expr term",
+"expr : variable ASGNOP cond",
+"term : variable",
+"term : NUMBER",
+"term : STRING",
+"term : term '+' term",
+"term : term '-' term",
+"term : term '*' term",
+"term : term '/' term",
+"term : term '%' term",
+"term : term '^' term",
+"term : term IN VAR",
+"term : cond '?' expr ':' expr",
+"term : variable INCR",
+"term : variable DECR",
+"term : INCR variable",
+"term : DECR variable",
+"term : '-' term",
+"term : '+' term",
+"term : '(' cond ')'",
+"term : GETLINE",
+"term : GETLINE variable",
+"term : GETLINE '<' expr",
+"term : GETLINE variable '<' expr",
+"term : term 'p' GETLINE",
+"term : term 'p' GETLINE variable",
+"term : FUN1",
+"term : FUN1 '(' ')'",
+"term : FUN1 '(' expr ')'",
+"term : FUNN '(' expr_list ')'",
+"term : USERFUN '(' expr_list ')'",
+"term : SPRINTF expr_list",
+"term : SUBSTR '(' expr ',' expr ',' expr ')'",
+"term : SUBSTR '(' expr ',' expr ')'",
+"term : SPLIT '(' expr ',' VAR ',' expr ')'",
+"term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
+"term : SPLIT '(' expr ',' VAR ')'",
+"term : INDEX '(' expr ',' expr ')'",
+"term : MATCH '(' expr ',' REGEX ')'",
+"term : MATCH '(' expr ',' expr ')'",
+"term : SUB '(' expr ',' expr ')'",
+"term : SUB '(' REGEX ',' expr ')'",
+"term : GSUB '(' expr ',' expr ')'",
+"term : GSUB '(' REGEX ',' expr ')'",
+"term : SUB '(' expr ',' expr ',' expr ')'",
+"term : SUB '(' REGEX ',' expr ',' expr ')'",
+"term : GSUB '(' expr ',' expr ',' expr ')'",
+"term : GSUB '(' REGEX ',' expr ',' expr ')'",
+"variable : VAR",
+"variable : VAR '[' expr_list ']'",
+"variable : FIELD",
+"variable : VFIELD term",
+"expr_list : expr",
+"expr_list : clist",
+"expr_list :",
+"clist : expr ',' maybe expr",
+"clist : clist ',' maybe expr",
+"clist : '(' clist ')'",
+"junk : junk hunksep",
+"junk :",
+"hunksep : ';'",
+"hunksep : SEMINEW",
+"hunksep : NEWLINE",
+"hunksep : COMMENT",
+"maybe : maybe nlstuff",
+"maybe :",
+"nlstuff : NEWLINE",
+"nlstuff : COMMENT",
+"separator : ';' maybe",
+"separator : SEMINEW maybe",
+"separator : NEWLINE maybe",
+"separator : COMMENT maybe",
+"states : states statement",
+"states :",
+"statement : simple separator maybe",
+"statement : ';' maybe",
+"statement : SEMINEW maybe",
+"statement : compound",
+"simpnull : simple",
+"simpnull :",
+"simple : expr",
+"simple : PRINT expr_list redir expr",
+"simple : PRINT expr_list",
+"simple : PRINTF expr_list redir expr",
+"simple : PRINTF expr_list",
+"simple : BREAK",
+"simple : NEXT",
+"simple : EXIT",
+"simple : EXIT expr",
+"simple : CONTINUE",
+"simple : RET",
+"simple : RET expr",
+"simple : DELETE VAR '[' expr_list ']'",
+"redir : '>'",
+"redir : GRGR",
+"redir : '|'",
+"compound : IF '(' cond ')' maybe statement",
+"compound : IF '(' cond ')' maybe statement ELSE maybe statement",
+"compound : WHILE '(' cond ')' maybe statement",
+"compound : DO maybe statement WHILE '(' cond ')'",
+"compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
+"compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
+"compound : FOR '(' expr ')' maybe statement",
+"compound : '{' maybe states '}' maybe",
+};
+#endif
+#ifndef YYSTYPE
+typedef int YYSTYPE;
+#endif
+#ifdef YYSTACKSIZE
+#undef YYMAXDEPTH
+#define YYMAXDEPTH YYSTACKSIZE
+#else
+#ifdef YYMAXDEPTH
+#define YYSTACKSIZE YYMAXDEPTH
+#else
+#define YYSTACKSIZE 500
+#define YYMAXDEPTH 500
+#endif
+#endif
+int yydebug;
+int yynerrs;
+int yyerrflag;
+int yychar;
+short *yyssp;
+YYSTYPE *yyvsp;
+YYSTYPE yyval;
+YYSTYPE yylval;
+short yyss[YYSTACKSIZE];
+YYSTYPE yyvs[YYSTACKSIZE];
+#define yystacksize YYSTACKSIZE
+#line 396 "a2p.y"
+#include "a2py.c"
+#line 1948 "y.tab.c"
+#define YYABORT goto yyabort
+#define YYREJECT goto yyabort
+#define YYACCEPT goto yyaccept
+#define YYERROR goto yyerrlab
+int
+yyparse()
+{
+ register int yym, yyn, yystate;
+#if YYDEBUG
+ register char *yys;
+ extern char *getenv();
+
+ if (yys = getenv("YYDEBUG"))
+ {
+ yyn = *yys;
+ if (yyn >= '0' && yyn <= '9')
+ yydebug = yyn - '0';
+ }
+#endif
+
+ yynerrs = 0;
+ yyerrflag = 0;
+ yychar = (-1);
+
+ yyssp = yyss;
+ yyvsp = yyvs;
+ *yyssp = yystate = 0;
+
+yyloop:
+ if (yyn = yydefred[yystate]) goto yyreduce;
+ if (yychar < 0)
+ {
+ if ((yychar = yylex()) < 0) yychar = 0;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, reading %d (%s)\n",
+ YYPREFIX, yystate, yychar, yys);
+ }
+#endif
+ }
+ if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, shifting to state %d\n",
+ YYPREFIX, yystate, yytable[yyn]);
+#endif
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ goto yyoverflow;
+ }
+ *++yyssp = yystate = yytable[yyn];
+ *++yyvsp = yylval;
+ yychar = (-1);
+ if (yyerrflag > 0) --yyerrflag;
+ goto yyloop;
+ }
+ if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ {
+ yyn = yytable[yyn];
+ goto yyreduce;
+ }
+ if (yyerrflag) goto yyinrecovery;
+#ifdef lint
+ goto yynewerror;
+#endif
+yynewerror:
+ yyerror("syntax error");
+#ifdef lint
+ goto yyerrlab;
+#endif
+yyerrlab:
+ ++yynerrs;
+yyinrecovery:
+ if (yyerrflag < 3)
+ {
+ yyerrflag = 3;
+ for (;;)
+ {
+ if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, error recovery shifting\
+ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
+#endif
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ goto yyoverflow;
+ }
+ *++yyssp = yystate = yytable[yyn];
+ *++yyvsp = yylval;
+ goto yyloop;
+ }
+ else
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: error recovery discarding state %d\n",
+ YYPREFIX, *yyssp);
+#endif
+ if (yyssp <= yyss) goto yyabort;
+ --yyssp;
+ --yyvsp;
+ }
+ }
+ }
+ else
+ {
+ if (yychar == 0) goto yyabort;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
+ YYPREFIX, yystate, yychar, yys);
+ }
+#endif
+ yychar = (-1);
+ goto yyloop;
+ }
+yyreduce:
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: state %d, reducing by rule %d (%s)\n",
+ YYPREFIX, yystate, yyn, yyrule[yyn]);
+#endif
+ yym = yylen[yyn];
+ yyval = yyvsp[1-yym];
+ switch (yyn)
+ {
+case 1:
+#line 51 "a2p.y"
+{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
+break;
+case 2:
+#line 55 "a2p.y"
+{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
+ yyval = Nullop; }
+break;
+case 3:
+#line 60 "a2p.y"
+{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
+break;
+case 4:
+#line 62 "a2p.y"
+{ yyval = yyvsp[-1]; }
+break;
+case 5:
+#line 66 "a2p.y"
+{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
+break;
+case 6:
+#line 68 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 7:
+#line 72 "a2p.y"
+{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
+break;
+case 8:
+#line 74 "a2p.y"
+{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
+break;
+case 9:
+#line 76 "a2p.y"
+{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
+break;
+case 10:
+#line 78 "a2p.y"
+{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
+break;
+case 13:
+#line 84 "a2p.y"
+{ yyval = rememberargs(yyval); }
+break;
+case 14:
+#line 88 "a2p.y"
+{ yyval = oper1(OPAT,yyvsp[0]); }
+break;
+case 15:
+#line 90 "a2p.y"
+{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
+break;
+case 20:
+#line 98 "a2p.y"
+{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
+break;
+case 21:
+#line 103 "a2p.y"
+{ yyval = oper1(OCPAREN,yyvsp[-1]); }
+break;
+case 22:
+#line 105 "a2p.y"
+{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
+break;
+case 23:
+#line 107 "a2p.y"
+{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
+break;
+case 24:
+#line 109 "a2p.y"
+{ yyval = oper1(OCNOT,yyvsp[0]); }
+break;
+case 25:
+#line 113 "a2p.y"
+{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
+break;
+case 26:
+#line 115 "a2p.y"
+{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
+break;
+case 27:
+#line 117 "a2p.y"
+{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
+break;
+case 28:
+#line 119 "a2p.y"
+{ yyval = oper1(ORPAREN,yyvsp[-1]); }
+break;
+case 29:
+#line 123 "a2p.y"
+{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
+break;
+case 30:
+#line 125 "a2p.y"
+{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
+break;
+case 31:
+#line 127 "a2p.y"
+{ yyval = oper1(OREGEX,yyvsp[0]); }
+break;
+case 32:
+#line 129 "a2p.y"
+{ yyval = oper1(OMPAREN,yyvsp[-1]); }
+break;
+case 33:
+#line 133 "a2p.y"
+{ yyval = yyvsp[0]; }
+break;
+case 34:
+#line 135 "a2p.y"
+{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
+break;
+case 35:
+#line 137 "a2p.y"
+{ yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
+ if ((ops[yyvsp[-2]].ival & 255) == OFLD)
+ lval_field = TRUE;
+ if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
+ lval_field = TRUE;
+ }
+break;
+case 36:
+#line 146 "a2p.y"
+{ yyval = yyvsp[0]; }
+break;
+case 37:
+#line 148 "a2p.y"
+{ yyval = oper1(ONUM,yyvsp[0]); }
+break;
+case 38:
+#line 150 "a2p.y"
+{ yyval = oper1(OSTR,yyvsp[0]); }
+break;
+case 39:
+#line 152 "a2p.y"
+{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
+break;
+case 40:
+#line 154 "a2p.y"
+{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
+break;
+case 41:
+#line 156 "a2p.y"
+{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
+break;
+case 42:
+#line 158 "a2p.y"
+{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
+break;
+case 43:
+#line 160 "a2p.y"
+{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
+break;
+case 44:
+#line 162 "a2p.y"
+{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
+break;
+case 45:
+#line 164 "a2p.y"
+{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
+break;
+case 46:
+#line 166 "a2p.y"
+{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
+break;
+case 47:
+#line 168 "a2p.y"
+{ yyval = oper1(OPOSTINCR,yyvsp[-1]); }
+break;
+case 48:
+#line 170 "a2p.y"
+{ yyval = oper1(OPOSTDECR,yyvsp[-1]); }
+break;
+case 49:
+#line 172 "a2p.y"
+{ yyval = oper1(OPREINCR,yyvsp[0]); }
+break;
+case 50:
+#line 174 "a2p.y"
+{ yyval = oper1(OPREDECR,yyvsp[0]); }
+break;
+case 51:
+#line 176 "a2p.y"
+{ yyval = oper1(OUMINUS,yyvsp[0]); }
+break;
+case 52:
+#line 178 "a2p.y"
+{ yyval = oper1(OUPLUS,yyvsp[0]); }
+break;
+case 53:
+#line 180 "a2p.y"
+{ yyval = oper1(OPAREN,yyvsp[-1]); }
+break;
+case 54:
+#line 182 "a2p.y"
+{ yyval = oper0(OGETLINE); }
+break;
+case 55:
+#line 184 "a2p.y"
+{ yyval = oper1(OGETLINE,yyvsp[0]); }
+break;
+case 56:
+#line 186 "a2p.y"
+{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
+ if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 57:
+#line 189 "a2p.y"
+{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
+ if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 58:
+#line 192 "a2p.y"
+{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
+ if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 59:
+#line 195 "a2p.y"
+{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
+ if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 60:
+#line 198 "a2p.y"
+{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
+break;
+case 61:
+#line 200 "a2p.y"
+{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
+break;
+case 62:
+#line 202 "a2p.y"
+{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
+break;
+case 63:
+#line 204 "a2p.y"
+{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
+break;
+case 64:
+#line 206 "a2p.y"
+{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
+break;
+case 65:
+#line 208 "a2p.y"
+{ yyval = oper1(OSPRINTF,yyvsp[0]); }
+break;
+case 66:
+#line 210 "a2p.y"
+{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
+break;
+case 67:
+#line 212 "a2p.y"
+{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
+break;
+case 68:
+#line 214 "a2p.y"
+{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
+break;
+case 69:
+#line 216 "a2p.y"
+{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
+break;
+case 70:
+#line 218 "a2p.y"
+{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
+break;
+case 71:
+#line 220 "a2p.y"
+{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
+break;
+case 72:
+#line 222 "a2p.y"
+{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
+break;
+case 73:
+#line 224 "a2p.y"
+{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
+break;
+case 74:
+#line 226 "a2p.y"
+{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
+break;
+case 75:
+#line 228 "a2p.y"
+{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
+break;
+case 76:
+#line 230 "a2p.y"
+{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
+break;
+case 77:
+#line 232 "a2p.y"
+{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
+break;
+case 78:
+#line 234 "a2p.y"
+{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
+break;
+case 79:
+#line 236 "a2p.y"
+{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
+break;
+case 80:
+#line 238 "a2p.y"
+{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
+break;
+case 81:
+#line 240 "a2p.y"
+{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
+break;
+case 82:
+#line 244 "a2p.y"
+{ yyval = oper1(OVAR,yyvsp[0]); }
+break;
+case 83:
+#line 246 "a2p.y"
+{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
+break;
+case 84:
+#line 248 "a2p.y"
+{ yyval = oper1(OFLD,yyvsp[0]); }
+break;
+case 85:
+#line 250 "a2p.y"
+{ yyval = oper1(OVFLD,yyvsp[0]); }
+break;
+case 88:
+#line 257 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 89:
+#line 261 "a2p.y"
+{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
+break;
+case 90:
+#line 263 "a2p.y"
+{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
+break;
+case 91:
+#line 265 "a2p.y"
+{ yyval = yyvsp[-1]; }
+break;
+case 92:
+#line 269 "a2p.y"
+{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
+break;
+case 93:
+#line 271 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 94:
+#line 275 "a2p.y"
+{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
+break;
+case 95:
+#line 277 "a2p.y"
+{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
+break;
+case 96:
+#line 279 "a2p.y"
+{ yyval = oper0(ONEWLINE); }
+break;
+case 97:
+#line 281 "a2p.y"
+{ yyval = oper1(OCOMMENT,yyvsp[0]); }
+break;
+case 98:
+#line 285 "a2p.y"
+{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
+break;
+case 99:
+#line 287 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 100:
+#line 291 "a2p.y"
+{ yyval = oper0(ONEWLINE); }
+break;
+case 101:
+#line 293 "a2p.y"
+{ yyval = oper1(OCOMMENT,yyvsp[0]); }
+break;
+case 102:
+#line 298 "a2p.y"
+{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
+break;
+case 103:
+#line 300 "a2p.y"
+{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
+break;
+case 104:
+#line 302 "a2p.y"
+{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
+break;
+case 105:
+#line 304 "a2p.y"
+{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
+break;
+case 106:
+#line 308 "a2p.y"
+{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
+break;
+case 107:
+#line 310 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 108:
+#line 315 "a2p.y"
+{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
+break;
+case 109:
+#line 317 "a2p.y"
+{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
+break;
+case 110:
+#line 319 "a2p.y"
+{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
+break;
+case 113:
+#line 325 "a2p.y"
+{ yyval = Nullop; }
+break;
+case 115:
+#line 331 "a2p.y"
+{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
+ do_opens = TRUE;
+ saw_ORS = saw_OFS = TRUE;
+ if (!yyvsp[-2]) need_entire = TRUE;
+ if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 116:
+#line 337 "a2p.y"
+{ yyval = oper1(OPRINT,yyvsp[0]);
+ if (!yyvsp[0]) need_entire = TRUE;
+ saw_ORS = saw_OFS = TRUE;
+ }
+break;
+case 117:
+#line 342 "a2p.y"
+{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
+ do_opens = TRUE;
+ if (!yyvsp[-2]) need_entire = TRUE;
+ if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
+break;
+case 118:
+#line 347 "a2p.y"
+{ yyval = oper1(OPRINTF,yyvsp[0]);
+ if (!yyvsp[0]) need_entire = TRUE;
+ }
+break;
+case 119:
+#line 351 "a2p.y"
+{ yyval = oper0(OBREAK); }
+break;
+case 120:
+#line 353 "a2p.y"
+{ yyval = oper0(ONEXT); }
+break;
+case 121:
+#line 355 "a2p.y"
+{ yyval = oper0(OEXIT); }
+break;
+case 122:
+#line 357 "a2p.y"
+{ yyval = oper1(OEXIT,yyvsp[0]); }
+break;
+case 123:
+#line 359 "a2p.y"
+{ yyval = oper0(OCONTINUE); }
+break;
+case 124:
+#line 361 "a2p.y"
+{ yyval = oper0(ORETURN); }
+break;
+case 125:
+#line 363 "a2p.y"
+{ yyval = oper1(ORETURN,yyvsp[0]); }
+break;
+case 126:
+#line 365 "a2p.y"
+{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
+break;
+case 127:
+#line 369 "a2p.y"
+{ yyval = oper1(OREDIR,string(">",1)); }
+break;
+case 128:
+#line 371 "a2p.y"
+{ yyval = oper1(OREDIR,string(">>",2)); }
+break;
+case 129:
+#line 373 "a2p.y"
+{ yyval = oper1(OREDIR,string("|",1)); }
+break;
+case 130:
+#line 378 "a2p.y"
+{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 131:
+#line 380 "a2p.y"
+{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 132:
+#line 382 "a2p.y"
+{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 133:
+#line 384 "a2p.y"
+{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
+break;
+case 134:
+#line 386 "a2p.y"
+{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 135:
+#line 388 "a2p.y"
+{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 136:
+#line 390 "a2p.y"
+{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
+break;
+case 137:
+#line 392 "a2p.y"
+{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
+break;
+#line 2615 "y.tab.c"
+ }
+ yyssp -= yym;
+ yystate = *yyssp;
+ yyvsp -= yym;
+ yym = yylhs[yyn];
+ if (yystate == 0 && yym == 0)
+ {
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: after reduction, shifting from state 0 to\
+ state %d\n", YYPREFIX, YYFINAL);
+#endif
+ yystate = YYFINAL;
+ *++yyssp = YYFINAL;
+ *++yyvsp = yyval;
+ if (yychar < 0)
+ {
+ if ((yychar = yylex()) < 0) yychar = 0;
+#if YYDEBUG
+ if (yydebug)
+ {
+ yys = 0;
+ if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+ if (!yys) yys = "illegal-symbol";
+ printf("%sdebug: state %d, reading %d (%s)\n",
+ YYPREFIX, YYFINAL, yychar, yys);
+ }
+#endif
+ }
+ if (yychar == 0) goto yyaccept;
+ goto yyloop;
+ }
+ if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+ yystate = yytable[yyn];
+ else
+ yystate = yydgoto[yym];
+#if YYDEBUG
+ if (yydebug)
+ printf("%sdebug: after reduction, shifting from state %d \
+to state %d\n", YYPREFIX, *yyssp, yystate);
+#endif
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ goto yyoverflow;
+ }
+ *++yyssp = yystate;
+ *++yyvsp = yyval;
+ goto yyloop;
+yyoverflow:
+ yyerror("yacc stack overflow");
+yyabort:
+ return (1);
+yyaccept:
+ return (0);
+}
diff --git a/x2p/a2p.h b/x2p/a2p.h
index 1215921f29..54a918c0b5 100644
--- a/x2p/a2p.h
+++ b/x2p/a2p.h
@@ -18,6 +18,35 @@
# define bzero(s,l) memset(s,0,l)
#endif
+/* Use all the "standard" definitions? */
+#if defined(STANDARD_C) && defined(I_STDLIB)
+# include <stdlib.h>
+#endif /* STANDARD_C */
+#include <stdio.h>
+
+#ifdef I_MATH
+#include <math.h>
+#endif
+
+#ifdef USE_NEXT_CTYPE
+#include <appkit/NXCType.h>
+#else
+#include <ctype.h>
+#endif
+
+#define MEM_SIZE Size_t
+
+#if defined(I_STRING) || defined(__cplusplus)
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+
+#if !defined(HAS_STRCHR) && defined(HAS_INDEX) && !defined(strchr)
+#define strchr index
+#define strrchr rindex
+#endif
+
#include "handy.h"
#define Nullop 0
@@ -220,15 +249,13 @@ union u_ops {
#endif /* 80286 hack */
EXT union u_ops ops[OPSMAX];
-#include <stdio.h>
-#include <ctype.h>
-
typedef struct string STR;
typedef struct htbl HASH;
#include "str.h"
#include "hash.h"
+
/* A string is TRUE if not "" or "0". */
#define True(val) (tmps = (val), (*tmps && !(*tmps == '0' && !tmps[1])))
EXT char *Yes INIT("1");
@@ -243,12 +270,28 @@ EXT STR *Str;
#define GROWSTR(pp,lp,len) if (*(lp) < (len)) growstr(pp,lp,len)
-STR *str_new();
-
-char *scanpat();
-char *scannum();
-
-void str_free();
+/* Prototypes for things in a2p.c */
+int aryrefarg _(( int arg ));
+int bl _(( int arg, int maybe ));
+int dump _(( int branch ));
+int fixfargs _(( int name, int arg, int prevargs ));
+int fixrargs _(( char *name, int arg, int prevargs ));
+int fixup _(( STR *str ));
+int numary _(( int arg ));
+int oper0 _(( int type ));
+int oper1 _(( int type, int arg1 ));
+int oper2 _(( int type, int arg1, int arg2 ));
+int oper3 _(( int type, int arg1, int arg2, int arg3 ));
+int oper4 _(( int type, int arg1, int arg2, int arg3, int arg4 ));
+int oper5 _(( int type, int arg1, int arg2, int arg3, int arg4, int arg5 ));
+int putlines _(( STR *str ));
+int putone _(( void ));
+int rememberargs _(( int arg ));
+char * scannum _(( char *s ));
+char * scanpat _(( char *s ));
+int string _(( char *ptr, int len ));
+int yyerror _(( char *s ));
+int yylex _(( void ));
EXT int line INIT(0);
diff --git a/x2p/a2py.c b/x2p/a2py.c
index 59c22414a5..f1bc18ebe5 100644
--- a/x2p/a2py.c
+++ b/x2p/a2py.c
@@ -41,7 +41,6 @@ register char **argv;
register char **env;
{
register STR *str;
- register char *s;
int i;
STR *tmpstr;
diff --git a/x2p/handy.h b/x2p/handy.h
index 8995b2448b..160d83927c 100644
--- a/x2p/handy.h
+++ b/x2p/handy.h
@@ -1,18 +1,34 @@
-/* $RCSfile: handy.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:19 $
+/* handy.h
*
- * Copyright (c) 1991, Larry Wall
+ * Copyright (c) 1991-1994, Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
- * $Log: handy.h,v $
*/
-#define Null(type) ((type)0)
+#if !defined(__STDC__)
+#ifdef NULL
+#undef NULL
+#endif
+#ifndef I286
+# define NULL 0
+#else
+# define NULL 0L
+#endif
+#endif
+
+#define Null(type) ((type)NULL)
#define Nullch Null(char*)
#define Nullfp Null(FILE*)
+#define Nullsv Null(SV*)
+#ifdef UTS
+#define bool int
+#else
#define bool char
+#endif
+
#ifdef TRUE
#undef TRUE
#endif
@@ -22,6 +38,20 @@
#define TRUE (1)
#define FALSE (0)
+typedef char I8;
+typedef unsigned char U8;
+
+typedef short I16;
+typedef unsigned short U16;
+
+#if BYTEORDER > 0x4321
+ typedef int I32;
+ typedef unsigned int U32;
+#else
+ typedef long I32;
+ typedef unsigned long U32;
+#endif
+
#define Ctl(ch) (ch & 037)
#define strNE(s1,s2) (strcmp(s1,s2))
@@ -32,3 +62,111 @@
#define strGE(s1,s2) (strcmp(s1,s2) >= 0)
#define strnNE(s1,s2,l) (strncmp(s1,s2,l))
#define strnEQ(s1,s2,l) (!strncmp(s1,s2,l))
+
+#ifdef HAS_SETLOCALE /* XXX Is there a better test for this? */
+# ifndef CTYPE256
+# define CTYPE256
+# endif
+#endif
+
+#ifdef USE_NEXT_CTYPE
+#define isALNUM(c) (NXIsAlpha((unsigned int)c) || NXIsDigit((unsigned int)c) || c == '_')
+#define isIDFIRST(c) (NXIsAlpha((unsigned int)c) || c == '_')
+#define isALPHA(c) NXIsAlpha((unsigned int)c)
+#define isSPACE(c) NXIsSpace((unsigned int)c)
+#define isDIGIT(c) NXIsDigit((unsigned int)c)
+#define isUPPER(c) NXIsUpper((unsigned int)c)
+#define isLOWER(c) NXIsLower((unsigned int)c)
+#define toUPPER(c) NXToUpper((unsigned int)c)
+#define toLOWER(c) NXToLower((unsigned int)c)
+#else /* USE_NEXT_CTYPE */
+#if defined(CTYPE256) || (!defined(isascii) && !defined(HAS_ISASCII))
+#define isALNUM(c) (isalpha((unsigned char)(c)) || isdigit((unsigned char)(c)) || c == '_')
+#define isIDFIRST(c) (isalpha((unsigned char)(c)) || (c) == '_')
+#define isALPHA(c) isalpha((unsigned char)(c))
+#define isSPACE(c) isspace((unsigned char)(c))
+#define isDIGIT(c) isdigit((unsigned char)(c))
+#define isUPPER(c) isupper((unsigned char)(c))
+#define isLOWER(c) islower((unsigned char)(c))
+#define toUPPER(c) toupper((unsigned char)(c))
+#define toLOWER(c) tolower((unsigned char)(c))
+#else
+#define isALNUM(c) (isascii(c) && (isalpha(c) || isdigit(c) || c == '_'))
+#define isIDFIRST(c) (isascii(c) && (isalpha(c) || (c) == '_'))
+#define isALPHA(c) (isascii(c) && isalpha(c))
+#define isSPACE(c) (isascii(c) && isspace(c))
+#define isDIGIT(c) (isascii(c) && isdigit(c))
+#define isUPPER(c) (isascii(c) && isupper(c))
+#define isLOWER(c) (isascii(c) && islower(c))
+#define toUPPER(c) toupper(c)
+#define toLOWER(c) tolower(c)
+#endif
+#endif /* USE_NEXT_CTYPE */
+
+/* Line numbers are unsigned, 16 bits. */
+typedef U16 line_t;
+#ifdef lint
+#define NOLINE ((line_t)0)
+#else
+#define NOLINE ((line_t) 65535)
+#endif
+
+#ifndef lint
+#ifndef LEAKTEST
+#ifndef safemalloc
+char *safemalloc _((MEM_SIZE));
+char *saferealloc _((char *, MEM_SIZE));
+void safefree _((char *));
+#endif
+#ifndef MSDOS
+#define New(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n) * sizeof(t))))
+#define Newc(x,v,n,t,c) (v = (c*)safemalloc((MEM_SIZE)((n) * sizeof(t))))
+#define Newz(x,v,n,t) (v = (t*)safemalloc((MEM_SIZE)((n) * sizeof(t)))), \
+ memzero((char*)(v), (n) * sizeof(t))
+#define Renew(v,n,t) (v = (t*)saferealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
+#define Renewc(v,n,t,c) (v = (c*)saferealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
+#else
+#define New(x,v,n,t) (v = (t*)safemalloc(((unsigned long)(n) * sizeof(t))))
+#define Newc(x,v,n,t,c) (v = (c*)safemalloc(((unsigned long)(n) * sizeof(t))))
+#define Newz(x,v,n,t) (v = (t*)safemalloc(((unsigned long)(n) * sizeof(t)))), \
+ memzero((char*)(v), (n) * sizeof(t))
+#define Renew(v,n,t) (v = (t*)saferealloc((char*)(v),((unsigned long)(n)*sizeof(t))))
+#define Renewc(v,n,t,c) (v = (c*)saferealloc((char*)(v),((unsigned long)(n)*sizeof(t))))
+#endif /* MSDOS */
+#define Safefree(d) safefree((char*)d)
+#define NEWSV(x,len) newSV(len)
+#else /* LEAKTEST */
+char *safexmalloc();
+char *safexrealloc();
+void safexfree();
+#define New(x,v,n,t) (v = (t*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t))))
+#define Newc(x,v,n,t,c) (v = (c*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t))))
+#define Newz(x,v,n,t) (v = (t*)safexmalloc(x,(MEM_SIZE)((n) * sizeof(t)))), \
+ memzero((char*)(v), (n) * sizeof(t))
+#define Renew(v,n,t) (v = (t*)safexrealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
+#define Renewc(v,n,t,c) (v = (c*)safexrealloc((char*)(v),(MEM_SIZE)((n)*sizeof(t))))
+#define Safefree(d) safexfree((char*)d)
+#define NEWSV(x,len) newSV(x,len)
+#define MAXXCOUNT 1200
+long xcount[MAXXCOUNT];
+long lastxcount[MAXXCOUNT];
+#endif /* LEAKTEST */
+#define Move(s,d,n,t) (void)memmove((char*)(d),(char*)(s), (n) * sizeof(t))
+#define Copy(s,d,n,t) (void)memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
+#define Zero(d,n,t) (void)memzero((char*)(d), (n) * sizeof(t))
+#else /* lint */
+#define New(x,v,n,s) (v = Null(s *))
+#define Newc(x,v,n,s,c) (v = Null(s *))
+#define Newz(x,v,n,s) (v = Null(s *))
+#define Renew(v,n,s) (v = Null(s *))
+#define Move(s,d,n,t)
+#define Copy(s,d,n,t)
+#define Zero(d,n,t)
+#define Safefree(d) d = d
+#endif /* lint */
+
+#ifdef USE_STRUCT_COPY
+#define StructCopy(s,d,t) *((t*)(d)) = *((t*)(s))
+#else
+#define StructCopy(s,d,t) Copy(s,d,1,t)
+#endif
diff --git a/x2p/hash.c b/x2p/hash.c
index b910af603e..58236f49e4 100644
--- a/x2p/hash.c
+++ b/x2p/hash.c
@@ -10,9 +10,8 @@
#include <stdio.h>
#include "EXTERN.h"
-#include "handy.h"
-#include "util.h"
#include "a2p.h"
+#include "util.h"
STR *
hfetch(tb,key)
@@ -71,7 +70,7 @@ STR *val;
if (strNE(entry->hent_key,key)) /* is this it? */
continue;
/*NOSTRICT*/
- safefree((char*)entry->hent_val);
+ Safefree(entry->hent_val);
entry->hent_val = val;
return TRUE;
}
@@ -133,6 +132,7 @@ char *key;
}
#endif
+void
hsplit(tb)
HASH *tb;
{
@@ -194,6 +194,7 @@ register HASH *tb;
}
#endif
+int
hiterinit(tb)
register HASH *tb;
{
diff --git a/x2p/hash.h b/x2p/hash.h
index 5685e53259..f61a29f4e6 100644
--- a/x2p/hash.h
+++ b/x2p/hash.h
@@ -41,11 +41,12 @@ struct htbl {
HENT *tbl_eiter; /* current entry of iterator */
};
-STR *hfetch();
-bool hstore();
-bool hdelete();
-HASH *hnew();
-int hiterinit();
-HENT *hiternext();
-char *hiterkey();
-STR *hiterval();
+bool hdelete _((HASH *tb, char *key));
+STR * hfetch _(( HASH *tb, char *key ));
+int hiterinit _(( HASH *tb ));
+char * hiterkey _(( HENT *entry ));
+HENT * hiternext _(( HASH *tb ));
+STR * hiterval _(( HENT *entry ));
+HASH * hnew _(( void ));
+void hsplit _(( HASH *tb ));
+bool hstore _(( HASH *tb, char *key, STR *val ));
diff --git a/x2p/str.c b/x2p/str.c
index d42a59157c..33e4e97b2f 100644
--- a/x2p/str.c
+++ b/x2p/str.c
@@ -8,11 +8,11 @@
* $Log: str.c,v $
*/
-#include "handy.h"
#include "EXTERN.h"
-#include "util.h"
#include "a2p.h"
+#include "util.h"
+void
str_numset(str,num)
register STR *str;
double num;
@@ -64,6 +64,7 @@ register STR *str;
return str->str_nval;
}
+void
str_sset(dstr,sstr)
STR *dstr;
register STR *sstr;
@@ -78,6 +79,7 @@ register STR *sstr;
str_nset(dstr,"",0);
}
+void
str_nset(str,ptr,len)
register STR *str;
register char *ptr;
@@ -91,6 +93,7 @@ register int len;
str->str_pok = 1; /* validate pointer */
}
+void
str_set(str,ptr)
register STR *str;
register char *ptr;
@@ -107,6 +110,7 @@ register char *ptr;
str->str_pok = 1; /* validate pointer */
}
+void
str_chop(str,ptr) /* like set but assuming ptr is in str */
register STR *str;
register char *ptr;
@@ -119,6 +123,7 @@ register char *ptr;
str->str_pok = 1; /* validate pointer */
}
+void
str_ncat(str,ptr,len)
register STR *str;
register char *ptr;
@@ -134,6 +139,7 @@ register int len;
str->str_pok = 1; /* validate pointer */
}
+void
str_scat(dstr,sstr)
STR *dstr;
register STR *sstr;
@@ -144,6 +150,7 @@ register STR *sstr;
str_ncat(dstr,sstr->str_ptr,sstr->str_cur);
}
+void
str_cat(str,ptr)
register STR *str;
register char *ptr;
@@ -236,7 +243,7 @@ str_replace(str,nstr)
register STR *str;
register STR *nstr;
{
- safefree(str->str_ptr);
+ Safefree(str->str_ptr);
str->str_ptr = nstr->str_ptr;
str->str_len = nstr->str_len;
str->str_cur = nstr->str_cur;
@@ -261,6 +268,7 @@ register STR *str;
freestrroot = str;
}
+int
str_len(str)
register STR *str;
{
diff --git a/x2p/str.h b/x2p/str.h
index ab3f8850bc..9d495ab0ba 100644
--- a/x2p/str.h
+++ b/x2p/str.h
@@ -29,9 +29,25 @@ struct string {
EXT STR **tmps_list;
EXT long tmps_max INIT(-1);
-char *str_2ptr();
-double str_2num();
-STR *str_mortal();
-STR *str_make();
-STR *str_nmake();
-char *str_gets();
+double str_2num _(( STR *str ));
+char * str_2ptr _(( STR *str ));
+char * str_append_till _(( STR *str, char *from, int delim, char *keeplist ));
+void str_cat _(( STR *str, char *ptr ));
+void str_chop _(( STR *str, char *ptr ));
+void str_dec _(( STR *str ));
+void str_free _(( STR *str ));
+char * str_gets _(( STR *str, FILE *fp ));
+void str_grow _(( STR *str, int len ));
+void str_inc _(( STR *str ));
+int str_len _(( STR *str ));
+STR * str_make _(( char *s ));
+STR * str_mortal _(( STR *oldstr ));
+void str_ncat _(( STR *str, char *ptr, int len ));
+STR * str_new _(( int len ));
+STR * str_nmake _(( double n ));
+void str_nset _(( STR *str, char *ptr, int len ));
+void str_numset _(( STR *str, double num ));
+void str_replace _(( STR *str, STR *nstr ));
+void str_scat _(( STR *dstr, STR *sstr ));
+void str_set _(( STR *str, char *ptr ));
+void str_sset _(( STR *dstr, STR *sstr ));
diff --git a/x2p/util.c b/x2p/util.c
index 79cba699df..225812add1 100644
--- a/x2p/util.c
+++ b/x2p/util.c
@@ -8,16 +8,12 @@
* $Log: util.c,v $
*/
-#include <stdio.h>
-
-#include "handy.h"
#include "EXTERN.h"
#include "a2p.h"
#include "INTERN.h"
#include "util.h"
#define FLUSH
-#define MEM_SIZE unsigned int
static char nomem[] = "Out of memory!\n";
@@ -73,6 +69,7 @@ MEM_SIZE size;
/* safe version of free */
+void
safefree(where)
char *where;
{
@@ -192,24 +189,30 @@ int newlen;
}
/*VARARGS1*/
+int
croak(pat,a1,a2,a3,a4)
char *pat;
+int a1,a2,a3,a4;
{
fprintf(stderr,pat,a1,a2,a3,a4);
exit(1);
}
/*VARARGS1*/
+int
fatal(pat,a1,a2,a3,a4)
char *pat;
+int a1,a2,a3,a4;
{
fprintf(stderr,pat,a1,a2,a3,a4);
exit(1);
}
/*VARARGS1*/
+void
warn(pat,a1,a2,a3,a4)
char *pat;
+int a1,a2,a3,a4;
{
fprintf(stderr,pat,a1,a2,a3,a4);
}
diff --git a/x2p/util.h b/x2p/util.h
index eeb128ba2c..ef1cd04d04 100644
--- a/x2p/util.h
+++ b/x2p/util.h
@@ -15,27 +15,21 @@
#define MD_DIR 0
#define MD_FILE 1
-void util_init();
-int doshell();
-char *safemalloc();
-char *saferealloc();
-char *safecpy();
-char *safecat();
-char *cpytill();
-char *cpy2();
-char *instr();
#ifdef SETUIDGID
int eaccess();
#endif
+
char *getwd();
-void cat();
-void prexit();
-char *get_a_line();
-char *savestr();
int makedir();
-void setenv();
-int envix();
-void notincl();
-char *getval();
-void growstr();
-void setdef();
+
+char * cpy2 _(( char *to, char *from, int delim ));
+char * cpytill _(( char *to, char *from, int delim ));
+int croak _(( char *pat, int a1, int a2, int a3, int a4 ));
+int envix _(( char *nam ));
+void growstr _(( char **strptr, int *curlen, int newlen ));
+char * instr _(( char *big, char *little ));
+int Myfatal ();
+char * safecpy _(( char *to, char *from, int len ));
+char * savestr _(( char *str ));
+void setenv _(( char *nam, char *val ));
+void warn ();
diff --git a/x2p/walk.c b/x2p/walk.c
index 26e89ae5bd..e4cca450ee 100644
--- a/x2p/walk.c
+++ b/x2p/walk.c
@@ -8,10 +8,9 @@
* $Log: walk.c,v $
*/
-#include "handy.h"
#include "EXTERN.h"
-#include "util.h"
#include "a2p.h"
+#include "util.h"
bool exitval = FALSE;
bool realexit = FALSE;
@@ -27,6 +26,15 @@ char *limit;
STR *subs;
STR *curargs = Nullstr;
+void addsemi _(( STR *str ));
+void emit_split _(( STR *str, int level ));
+void fixtab _(( STR *str, int lvl ));
+void numericize _(( int node ));
+int prewalk _(( int numit, int level, int node, int *numericptr ));
+void tab _(( STR *str, int lvl ));
+STR * walk _(( int useval, int level, int node, int *numericptr, int minprec ));
+
+
STR *
walk(useval,level,node,numericptr,minprec)
int useval;
@@ -1547,6 +1555,7 @@ sub Pick {\n\
return str;
}
+void
tab(str,lvl)
register STR *str;
register int lvl;
@@ -1559,6 +1568,7 @@ register int lvl;
str_cat(str," ");
}
+void
fixtab(str,lvl)
register STR *str;
register int lvl;
@@ -1578,6 +1588,7 @@ register int lvl;
tab(str,lvl);
}
+void
addsemi(str)
register STR *str;
{
@@ -1590,6 +1601,7 @@ register STR *str;
str_cat(str,";");
}
+void
emit_split(str,level)
register STR *str;
int level;
@@ -1624,6 +1636,7 @@ int level;
tab(str,level);
}
+int
prewalk(numit,level,node,numericptr)
int numit;
int level;
@@ -1633,8 +1646,6 @@ int *numericptr;
register int len;
register int type;
register int i;
- char *t;
- char *d, *s;
int numarg;
int numeric = FALSE;
STR *tmpstr;
@@ -2046,12 +2057,12 @@ int *numericptr;
return 1;
}
+void
numericize(node)
register int node;
{
register int len;
register int type;
- register int i;
STR *tmpstr;
STR *tmp2str;
int numarg;