diff options
Diffstat (limited to 'contrib/perl5/x2p/a2p.c')
-rw-r--r-- | contrib/perl5/x2p/a2p.c | 2731 |
1 files changed, 2731 insertions, 0 deletions
diff --git a/contrib/perl5/x2p/a2p.c b/contrib/perl5/x2p/a2p.c new file mode 100644 index 000000000000..e79e1562034f --- /dev/null +++ b/contrib/perl5/x2p/a2p.c @@ -0,0 +1,2731 @@ +#ifndef lint +static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; +#endif +#define YYBYACC 1 +#line 2 "a2p.y" +/* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $ + * + * Copyright (c) 1991-1997, 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 24 "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, 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, 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, 5, 3, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 3, 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, 38, 0, 0, 0, 39, 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, 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, 0, + 47, 48, 0, 0, 61, 0, 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, 0, 30, + 0, 0, 0, 0, 46, 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, 0, 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, 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, 74, 128, 37, 38, 39, 168, 52, + 75, 190, 42, 43, 44, 45, 46, 54, 8, 129, + 230, 191, 192, 193, 260, 254, +}; +short yysindex[] = { 0, + 0, -50, 0, 0, 0, 0, 4775, 0, -91, -38, + 0, 34, 41, 7201, 42, 6, 46, 48, 50, -184, + 70, 0, 16, 77, 80, 0, 7255, 7255, 5051, -220, + -220, 0, 7255, 0, 5051, 0, -140, 0, 5, -13, + 5693, 0, 0, 0, -32, -233, 0, 0, 4619, 7201, + 5962, 0, 6006, 79, 7255, 7255, 71, 6890, 6936, 7255, + 87, 7201, 7201, 7255, 7255, 5051, -42, -244, -42, 0, + 0, 0, 20, -183, -41, 89, 92, 93, 0, -50, + 0, 7255, 0, 0, 5051, 7255, 6990, 7255, 7255, 7255, + -32, -157, 7255, 7255, 7255, 7255, 7255, 7255, -144, 5051, + 0, 0, -183, -183, 0, 3590, 96, 5962, 5577, 10, + 0, 0, 6049, 1522, 7255, 94, 6107, 95, 6153, 6195, + 7201, 99, 51, 6238, 6281, 0, 0, 4886, 0, 0, + 0, 0, 0, -183, 6323, 1605, 1605, -60, 6380, 0, + 1522, 1522, 1522, 1522, 0, -7, -7, -42, -42, -42, + -42, -220, -60, 4931, 4977, 0, 0, 0, 6425, 6425, + -151, 1522, 7255, 7255, 7255, 7255, 7052, 102, 0, 0, + 0, 7255, 7255, 0, 7201, 7201, 115, 119, 121, 7255, + 0, 0, 0, 7255, 0, -130, 0, 0, 0, 7112, + 0, 18, 0, 5242, 7255, -126, 0, 7255, 0, 0, + 0, 7112, 7112, 32, 2427, 2474, 5735, 5779, 126, 6470, + 0, 5842, 6513, -183, -33, -33, 5051, 5051, 5428, 7112, + 7112, 4046, 81, -183, -183, 0, 0, 0, 0, 0, + 0, 7112, 7112, -50, 0, 7158, 0, 7255, 0, 7255, + 0, 7255, 0, 7255, 0, 0, -96, 0, 7255, 0, + 0, 0, 0, 7255, 7255, -39, -37, 6555, 0, 116, + -95, 7201, 5287, -183, -183, -183, -183, -183, 135, 6612, + 6657, 6702, 6745, 6787, 0, 6844, 7112, 7112, 0, 0, + 0, 5908, 144, 97, 0, 0, 0, 0, 0, 0, + 0, -183, 0, 4046, 4046, 4046, 5428, -51, 5051, 0, + -183, 5332, -85, 0, 0, 146, 5428, -35, 0, 0, + 0, 147, 0, 4046, 4046, 0, 0, 0, 4046, 0, +}; +short yyrindex[] = { 0, + 0, 2000, 0, 0, 0, 0, 189, 0, 0, 0, + 0, 56, 0, 3312, 0, 2591, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2138, 0, 1930, 1209, + 3755, 0, 0, 0, 1818, 1394, 0, 0, 0, 151, + 0, 0, 3707, 111, 0, 0, 381, 0, 0, 0, + 0, 151, 100, 0, 0, 0, 564, 834, 889, 0, + 0, 0, 436, 5378, 0, -49, -46, -43, 0, 2195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2084, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5378, 5378, 0, 0, 0, 0, -22, 0, + 0, 0, 0, 2639, 0, 0, 0, 0, 0, 0, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5378, 0, 0, 0, 1872, 0, 0, + 2878, 2923, 2968, 3037, 0, 1719, 1770, 943, 1016, 1286, + 1340, 2536, 1664, 0, 0, 0, 0, 0, 0, 0, + 0, 3245, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 67, 0, 0, 0, -34, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 0, 491, 0, 0, 0, 0, + 0, 3360, 3432, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4091, 104, 172, 0, 0, 136, 241, + 247, 0, 0, 5378, 4146, 0, 0, 0, 0, 0, + 0, 3520, 3640, 2266, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, + 0, 100, 0, 4220, 4411, 4485, 4530, 4576, 0, 0, + 0, 0, 0, 0, 0, 0, 296, 357, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5378, 0, 0, 0, 0, 153, 0, 0, 0, + 4841, 0, 5643, 0, 0, 0, 153, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; +short yygindex[] = { 0, + -15, 0, 0, 3236, -67, 0, 0, 0, 0, -29, + 171, 4012, -19, 4, 14, 7669, 7480, -4, 0, 0, + 0, -113, -201, 0, -232, -18, +}; +#define YYTABLESIZE 7947 +short yytable[] = { 130, + 82, 279, 82, 280, 97, 313, 121, 307, 6, 95, + 93, 82, 94, 17, 96, 76, 18, 259, 16, 19, + 107, 82, 80, 82, 121, 82, 275, 82, 252, 97, + 85, 47, 122, 123, 95, 154, 155, 82, 77, 96, + 82, 82, 82, 82, 82, 82, 110, 82, 78, 82, + 158, 98, 124, 112, 100, 60, 101, 102, 82, 82, + 82, 98, 82, 82, 306, 56, 194, 101, 102, 99, + 124, 23, 235, 49, 312, 236, 229, 126, 127, 99, + 50, 55, 32, 33, 48, 58, 98, 59, 76, 60, + 253, 169, 60, 82, 82, 259, 60, 60, 60, 60, + 60, 61, 60, 110, 99, 259, 63, 88, 261, 62, + 87, 77, 82, 60, 60, 60, 64, 60, 60, 65, + 79, 78, 112, 82, 82, 88, 121, 81, 88, 131, + 115, 99, 132, 133, 145, 152, 157, 163, 165, 170, + 204, 114, 211, 171, 116, 215, 216, 87, 60, 60, + 87, 87, 87, 87, 217, 87, 263, 87, 218, 114, + 219, 223, 116, 84, 126, 127, 245, 60, 87, 87, + 87, 262, 87, 87, 282, 286, 283, 40, 60, 60, + 303, 304, 305, 299, 234, 310, 311, 316, 1, 300, + 88, 88, 88, 113, 113, 114, 0, 255, 0, 70, + 317, 318, 0, 87, 87, 320, 0, 0, 0, 3, + 4, 5, 118, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 302, 121, 121, 121, 83, 84, + 118, 251, 284, 87, 87, 0, 0, 83, 84, 17, + 17, 92, 18, 18, 0, 19, 19, 83, 84, 83, + 84, 83, 84, 83, 84, 138, 0, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 16, 16, 82, 82, + 153, 124, 124, 124, 82, 83, 84, 226, 227, 228, + 82, 122, 82, 82, 82, 82, 82, 125, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 23, 82, 122, + 82, 82, 82, 82, 82, 125, 196, 197, 32, 33, + 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 0, 0, 60, 60, 0, 88, 88, 88, 60, + 0, 88, 0, 0, 0, 60, 115, 60, 60, 60, + 60, 60, 0, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 0, 60, 115, 60, 60, 60, 60, 60, + 114, 114, 114, 116, 116, 116, 0, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 0, 0, 87, 87, + 55, 0, 0, 0, 87, 0, 0, 256, 257, 0, + 87, 0, 87, 87, 87, 87, 87, 117, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 0, 87, 0, + 87, 87, 87, 87, 87, 117, 0, 55, 0, 0, + 55, 55, 55, 55, 55, 55, 0, 55, 0, 0, + 0, 118, 118, 118, 0, 85, 0, 0, 55, 55, + 0, 0, 55, 55, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, + 0, 0, 85, 55, 55, 85, 85, 85, 85, 85, + 85, 0, 85, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 55, 85, 85, 85, 0, 85, 85, 0, + 122, 122, 122, 55, 55, 0, 125, 125, 125, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 23, 85, 85, + 23, 23, 23, 23, 23, 23, 0, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, + 23, 0, 23, 23, 0, 115, 115, 115, 85, 85, + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 23, 23, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 23, 52, 52, 52, 52, 52, 52, 0, + 52, 0, 0, 23, 23, 0, 117, 117, 117, 0, + 0, 52, 52, 52, 0, 52, 52, 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, 0, 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, 85, 85, 85, 85, 85, 85, + 85, 0, 0, 85, 85, 0, 0, 0, 0, 85, + 0, 0, 0, 0, 0, 85, 0, 85, 85, 85, + 85, 85, 0, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 0, 85, 0, 85, 85, 85, 85, 85, + 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, 0, 0, 0, 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, 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, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 0, + 0, 52, 52, 37, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 52, 0, 52, 52, 52, 52, 52, + 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 0, 52, 0, 52, 52, 52, 52, 52, 0, 0, + 37, 0, 0, 37, 37, 37, 37, 37, 37, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 51, 0, + 0, 37, 37, 37, 0, 37, 37, 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, 37, 37, 51, 51, + 51, 51, 51, 51, 0, 51, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 37, 51, 51, 51, 0, + 51, 51, 0, 0, 0, 0, 37, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 51, 42, 42, 42, 42, 42, 42, 0, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42, 42, 42, 0, 42, 42, 0, 0, 0, 0, + 0, 51, 51, 0, 0, 43, 0, 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, 43, 0, 0, 43, 43, 43, 43, 43, + 43, 0, 43, 0, 0, 42, 42, 0, 0, 0, + 0, 0, 0, 43, 43, 43, 0, 43, 43, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, + 0, 37, 37, 0, 0, 0, 0, 37, 43, 0, + 0, 0, 0, 37, 0, 37, 37, 37, 37, 37, + 0, 37, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 37, 0, 37, 0, 0, 37, 37, 43, 43, + 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 0, 0, 51, 51, 0, 0, + 0, 0, 51, 0, 0, 0, 0, 0, 51, 0, + 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 0, 51, 0, 51, 51, + 51, 51, 51, 0, 0, 0, 0, 0, 0, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 14, 0, + 42, 42, 0, 0, 0, 0, 42, 0, 0, 0, + 0, 0, 42, 0, 42, 42, 42, 42, 42, 0, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 0, + 42, 0, 42, 42, 42, 42, 42, 0, 14, 0, + 0, 14, 0, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 43, 43, 43, 43, 43, 43, 43, 43, + 43, 0, 0, 43, 43, 44, 0, 0, 0, 43, + 0, 0, 0, 0, 0, 43, 0, 43, 43, 43, + 43, 43, 0, 43, 43, 43, 43, 43, 43, 43, + 43, 43, 0, 43, 0, 43, 43, 43, 43, 43, + 0, 0, 44, 0, 0, 44, 44, 44, 44, 44, + 44, 14, 44, 0, 0, 0, 0, 0, 0, 45, + 0, 0, 0, 44, 44, 44, 0, 44, 44, 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, 45, 0, 44, 45, + 45, 45, 45, 45, 45, 0, 45, 0, 0, 0, + 0, 0, 0, 37, 0, 0, 0, 45, 45, 45, + 0, 45, 45, 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, + 37, 0, 45, 37, 37, 37, 37, 37, 37, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 37, 37, 0, 37, 37, 0, 0, 0, + 0, 0, 45, 45, 0, 14, 14, 14, 14, 14, + 14, 14, 14, 0, 0, 0, 14, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 37, 14, 0, + 14, 14, 14, 14, 14, 0, 0, 0, 0, 14, + 14, 14, 14, 0, 0, 37, 14, 0, 14, 14, + 14, 14, 14, 0, 0, 0, 37, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 0, 0, 44, 44, 0, 0, 0, 0, 44, + 0, 66, 0, 0, 27, 44, 28, 44, 44, 44, + 44, 44, 0, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 0, 44, 0, 44, 44, 44, 44, 44, + 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 0, 0, 45, 45, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 45, + 0, 45, 45, 45, 45, 45, 0, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 0, 45, 0, 45, + 45, 45, 45, 45, 35, 0, 0, 27, 0, 28, + 37, 37, 37, 37, 37, 37, 37, 37, 37, 0, + 0, 37, 37, 36, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 37, 0, 37, 37, 37, 37, 37, + 0, 0, 37, 37, 37, 37, 37, 37, 37, 37, + 0, 37, 0, 37, 0, 0, 37, 37, 0, 0, + 36, 0, 0, 36, 36, 36, 36, 36, 36, 0, + 36, 0, 0, 0, 0, 0, 0, 0, 40, 0, + 0, 36, 36, 36, 0, 36, 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, 36, 36, 40, 40, + 0, 40, 40, 40, 0, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 36, 40, 40, 40, 0, + 40, 40, 0, 0, 12, 13, 36, 36, 0, 14, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 21, 0, 41, + 41, 40, 41, 41, 41, 0, 0, 33, 0, 26, + 0, 0, 30, 31, 32, 33, 0, 41, 41, 41, + 0, 41, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 40, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 33, 0, + 0, 33, 41, 11, 0, 126, 127, 12, 13, 0, + 0, 15, 14, 15, 0, 33, 33, 33, 0, 33, + 33, 0, 0, 0, 16, 0, 17, 18, 19, 0, + 21, 0, 41, 41, 0, 22, 23, 24, 25, 0, + 0, 0, 26, 0, 29, 30, 31, 32, 33, 0, + 33, 15, 0, 0, 15, 0, 15, 0, 0, 0, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 7, + 15, 36, 36, 0, 0, 0, 0, 36, 0, 0, + 33, 33, 0, 36, 0, 36, 36, 36, 36, 36, + 0, 36, 0, 0, 36, 36, 36, 36, 36, 36, + 0, 36, 0, 36, 36, 36, 36, 36, 0, 7, + 0, 0, 7, 0, 7, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 0, 0, 40, 40, 7, 0, + 0, 0, 40, 0, 15, 0, 0, 0, 40, 6, + 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, + 40, 40, 40, 0, 0, 0, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 0, 0, 41, 41, 6, + 0, 0, 6, 41, 6, 0, 0, 0, 0, 41, + 0, 41, 41, 41, 41, 41, 0, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 0, 41, 0, 41, + 41, 41, 41, 41, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 34, 0, 33, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 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, 6, 34, 34, 0, 0, 34, 15, 15, + 15, 15, 15, 15, 15, 15, 0, 12, 0, 15, + 15, 34, 34, 34, 0, 34, 34, 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, 34, 12, 0, 0, + 12, 0, 12, 0, 0, 0, 7, 7, 7, 7, + 7, 7, 7, 7, 5, 0, 12, 7, 7, 0, + 0, 0, 0, 0, 0, 0, 34, 34, 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, 5, 0, 0, 5, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, + 12, 0, 6, 6, 0, 2, 0, 6, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 2, 0, 0, 2, 0, + 2, 0, 0, 0, 0, 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, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 0, + 0, 34, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 34, 34, 34, 34, 34, + 0, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 0, 34, 0, 34, 34, 34, 34, 34, 2, 0, + 0, 0, 0, 0, 12, 12, 12, 12, 0, 12, + 12, 12, 0, 0, 0, 12, 12, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 5, 5, 0, 0, 0, 5, 5, 0, + 0, 0, 5, 5, 0, 0, 66, 237, 0, 27, + 238, 28, 0, 0, 5, 0, 5, 5, 5, 5, + 5, 0, 0, 0, 0, 5, 5, 5, 5, 86, + 0, 0, 5, 0, 5, 5, 5, 5, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 66, 239, 0, 27, 240, 28, 0, + 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, + 0, 0, 0, 2, 2, 58, 86, 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, 56, 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, 56, 0, 0, 0, 56, + 56, 0, 56, 54, 54, 56, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 56, 56, 56, 0, + 56, 56, 54, 0, 0, 0, 16, 0, 17, 18, + 19, 0, 21, 54, 54, 0, 0, 22, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 30, 31, 32, + 33, 56, 56, 0, 0, 0, 12, 13, 0, 0, + 0, 14, 15, 0, 0, 0, 0, 0, 0, 0, + 56, 0, 0, 16, 0, 17, 18, 19, 0, 21, + 0, 56, 56, 0, 22, 23, 24, 25, 0, 0, + 0, 26, 0, 0, 30, 31, 32, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 0, 0, 58, 58, 0, 0, 0, 0, 58, + 0, 0, 0, 0, 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, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 54, 0, 54, 54, 54, 54, 54, 29, 54, 54, + 54, 54, 0, 54, 54, 54, 54, 0, 54, 0, + 54, 54, 54, 0, 0, 56, 56, 56, 56, 56, + 56, 0, 0, 56, 0, 0, 0, 0, 0, 0, + 0, 0, 56, 0, 29, 0, 0, 0, 29, 29, + 0, 29, 25, 56, 29, 0, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 29, 29, 29, 56, 29, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 25, 25, 0, 25, 27, 0, 25, + 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 25, 25, 0, 25, 25, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 29, 0, 0, 27, 0, 0, 0, 27, 27, + 0, 27, 0, 0, 27, 25, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 27, 27, 0, 27, + 27, 0, 0, 0, 25, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 25, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 26, 0, 0, 0, 26, 26, 27, + 26, 0, 0, 26, 0, 0, 0, 0, 0, 0, + 27, 27, 0, 0, 26, 26, 26, 0, 26, 26, + 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, 26, + 26, 0, 0, 0, 29, 29, 29, 29, 29, 29, + 0, 0, 29, 0, 0, 0, 0, 0, 26, 0, + 0, 29, 0, 0, 0, 0, 0, 0, 0, 26, + 26, 0, 29, 0, 0, 29, 29, 29, 29, 29, + 29, 29, 29, 29, 0, 0, 0, 29, 0, 25, + 25, 25, 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, 25, 25, 25, 25, 25, 25, 25, 25, 0, + 0, 0, 25, 0, 27, 27, 27, 27, 27, 27, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 27, 0, 0, 57, 0, 0, 0, 0, 0, + 0, 0, 27, 0, 0, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 0, 0, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 57, 103, 104, 0, 57, 57, 0, 57, 0, + 0, 57, 0, 26, 26, 26, 26, 26, 26, 0, + 0, 26, 57, 57, 57, 0, 57, 57, 0, 0, + 26, 88, 0, 0, 0, 0, 134, 0, 136, 137, + 0, 26, 0, 0, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 0, 0, 0, 26, 57, 57, 0, + 0, 0, 0, 0, 0, 0, 159, 160, 88, 0, + 0, 0, 88, 88, 0, 88, 57, 0, 88, 89, + 0, 0, 0, 0, 0, 0, 0, 57, 57, 88, + 88, 88, 0, 88, 88, 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, + 89, 89, 0, 89, 88, 88, 89, 0, 0, 214, + 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, + 222, 89, 224, 88, 225, 0, 0, 0, 0, 0, + 0, 90, 0, 0, 88, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 0, 0, + 0, 0, 89, 89, 0, 0, 0, 0, 0, 0, + 0, 264, 265, 266, 267, 268, 0, 0, 90, 0, + 0, 89, 90, 90, 0, 90, 0, 0, 90, 0, + 0, 0, 89, 89, 0, 0, 0, 0, 0, 90, + 90, 90, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 57, 57, 57, 57, 57, 57, 0, 0, 57, + 292, 0, 0, 0, 294, 295, 296, 0, 57, 20, + 301, 0, 0, 0, 90, 90, 0, 0, 0, 57, + 0, 0, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 0, 0, 90, 57, 314, 315, 0, 0, 0, + 0, 319, 0, 0, 90, 90, 20, 0, 0, 0, + 20, 20, 0, 20, 0, 0, 20, 0, 88, 88, + 88, 88, 88, 88, 0, 0, 88, 20, 20, 20, + 0, 20, 0, 0, 0, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 0, 0, 88, + 88, 88, 0, 0, 0, 0, 88, 88, 0, 0, + 0, 88, 20, 20, 0, 0, 89, 89, 89, 89, + 89, 89, 0, 0, 89, 0, 0, 0, 0, 66, + 156, 20, 27, 89, 28, 0, 0, 0, 0, 35, + 0, 0, 20, 20, 89, 0, 0, 89, 89, 89, + 0, 0, 86, 0, 89, 89, 0, 0, 0, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 35, 35, 0, 35, 0, 0, 35, 0, 90, 90, + 90, 90, 90, 90, 0, 0, 90, 35, 35, 35, + 0, 35, 0, 0, 0, 90, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 90, + 90, 90, 0, 0, 0, 0, 90, 90, 0, 0, + 0, 90, 35, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 0, 0, 86, 86, 0, + 0, 35, 0, 86, 16, 0, 0, 0, 0, 0, + 0, 0, 35, 35, 86, 86, 86, 0, 86, 0, + 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, + 20, 20, 0, 0, 20, 0, 0, 0, 0, 0, + 0, 16, 0, 20, 0, 16, 16, 0, 16, 86, + 86, 16, 0, 0, 20, 0, 0, 20, 20, 20, + 0, 0, 16, 16, 20, 20, 0, 0, 86, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 16, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 16, + 0, 17, 18, 19, 0, 21, 0, 16, 16, 0, + 22, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 30, 31, 32, 33, 0, 0, 35, 35, 35, 35, + 35, 35, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 0, 0, 35, 35, 35, + 0, 0, 0, 0, 35, 35, 0, 0, 0, 35, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 86, 86, 86, 86, 86, 0, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 86, 86, 86, 0, 0, 0, + 0, 86, 86, 0, 0, 0, 86, 0, 0, 0, + 0, 16, 16, 16, 16, 16, 16, 0, 41, 16, + 0, 0, 0, 0, 0, 53, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 41, 0, 16, 16, 16, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, + 106, 53, 109, 0, 0, 0, 113, 114, 0, 117, + 119, 120, 0, 53, 53, 124, 125, 41, 0, 0, + 0, 0, 0, 0, 0, 66, 0, 0, 27, 0, + 28, 0, 0, 135, 0, 0, 41, 139, 141, 142, + 143, 144, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 109, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 110, 0, 53, 110, 0, 110, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 41, 41, 110, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 202, 203, 0, 0, 205, 206, 207, 208, 210, 0, + 0, 0, 0, 212, 213, 109, 53, 53, 109, 0, + 109, 220, 0, 0, 0, 221, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 0, 232, 0, 0, 233, + 0, 0, 0, 110, 0, 110, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, + 258, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 270, 0, 271, + 0, 272, 0, 273, 0, 274, 0, 0, 0, 103, + 276, 0, 103, 0, 103, 277, 278, 0, 109, 0, + 109, 0, 0, 53, 0, 0, 0, 0, 103, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 174, 126, 127, 12, 13, + 41, 175, 176, 14, 15, 177, 0, 178, 179, 0, + 180, 181, 182, 183, 184, 16, 185, 17, 18, 19, + 0, 21, 186, 0, 0, 0, 22, 23, 24, 25, + 0, 0, 103, 26, 103, 0, 30, 31, 32, 33, + 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, 0, 0, 0, 110, 0, + 0, 110, 110, 110, 110, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 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, 0, 0, 0, 109, 109, 109, 109, + 0, 0, 0, 109, 0, 0, 109, 109, 109, 109, + 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, 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, 0, + 103, 103, 103, 103, 105, 0, 0, 105, 0, 105, + 0, 0, 0, 104, 0, 104, 0, 0, 0, 0, + 0, 0, 0, 105, 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, 102, + 0, 0, 102, 0, 102, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 105, 0, 105, + 0, 0, 0, 0, 0, 108, 0, 0, 108, 0, + 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 102, 0, 102, 0, 0, 0, 66, 105, + 0, 27, 0, 28, 0, 0, 0, 0, 0, 0, + 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, 108, 0, + 108, 104, 104, 104, 104, 0, 0, 0, 104, 0, + 0, 104, 104, 104, 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, 0, 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, 0, 0, 0, 105, 105, 105, 105, 0, + 0, 0, 105, 0, 0, 105, 105, 105, 105, 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, 35, 102, 102, 27, 0, 28, + 102, 102, 102, 102, 0, 0, 0, 102, 0, 0, + 102, 102, 102, 102, 0, 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, + 0, 0, 0, 108, 0, 0, 108, 108, 108, 108, + 137, 12, 13, 137, 0, 137, 14, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 16, 137, + 17, 18, 19, 0, 21, 0, 0, 0, 0, 22, + 23, 24, 25, 0, 0, 0, 26, 0, 0, 30, + 31, 32, 33, 0, 0, 66, 0, 0, 27, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 0, 137, 0, 0, 0, 0, + 66, 0, 0, 27, 0, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 188, 0, 0, 0, 0, 0, 66, 0, 0, 27, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 10, 11, 0, 189, 0, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 16, 200, 17, 18, 19, 20, + 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, + 35, 0, 0, 27, 0, 28, 0, 0, 0, 187, + 137, 201, 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, 0, 0, + 0, 137, 137, 137, 137, 0, 0, 0, 137, 0, + 0, 137, 137, 137, 137, 174, 0, 0, 12, 13, + 0, 175, 176, 14, 15, 177, 0, 178, 179, 0, + 180, 181, 182, 183, 184, 16, 185, 17, 18, 19, + 0, 21, 186, 0, 0, 0, 22, 23, 24, 25, + 0, 0, 0, 26, 0, 0, 30, 31, 32, 33, + 174, 0, 0, 12, 13, 0, 175, 176, 14, 15, + 177, 0, 178, 179, 0, 180, 181, 182, 183, 184, + 16, 185, 17, 18, 19, 0, 21, 186, 0, 0, + 0, 22, 23, 24, 25, 0, 0, 0, 26, 0, + 0, 30, 31, 32, 33, 0, 174, 0, 0, 12, + 13, 0, 175, 176, 14, 15, 177, 0, 178, 179, + 0, 180, 181, 182, 183, 184, 16, 185, 17, 18, + 19, 0, 21, 186, 0, 0, 0, 22, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 30, 31, 32, + 33, 66, 0, 0, 27, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 189, 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, 66, 0, 0, 27, + 16, 28, 17, 18, 19, 0, 21, 0, 0, 0, + 0, 22, 23, 24, 25, 189, 0, 0, 26, 0, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 231, 0, 0, 0, + 0, 66, 0, 0, 27, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 285, 0, 0, 0, 0, 0, 107, 0, 0, + 107, 0, 107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 0, 309, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, + 27, 0, 28, 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, + 107, 174, 107, 0, 12, 13, 0, 175, 176, 14, + 15, 177, 0, 178, 179, 0, 180, 181, 182, 183, + 184, 16, 185, 17, 18, 19, 0, 21, 186, 0, + 0, 0, 22, 23, 24, 25, 0, 0, 0, 26, + 0, 0, 30, 31, 32, 33, 174, 0, 0, 12, + 13, 0, 175, 176, 14, 15, 177, 0, 178, 179, + 0, 180, 181, 182, 183, 184, 16, 185, 17, 18, + 19, 0, 21, 186, 0, 0, 0, 22, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 30, 31, 32, + 33, 174, 0, 0, 12, 13, 0, 175, 176, 14, + 15, 177, 0, 178, 179, 0, 180, 181, 182, 183, + 184, 16, 185, 17, 18, 19, 66, 21, 186, 27, + 111, 28, 22, 23, 24, 25, 0, 0, 0, 26, + 0, 0, 30, 31, 32, 33, 89, 107, 90, 86, + 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, 0, 107, 107, + 107, 107, 130, 0, 0, 130, 0, 130, 0, 0, + 12, 13, 0, 175, 176, 14, 15, 0, 0, 0, + 0, 130, 180, 181, 182, 183, 184, 16, 0, 17, + 18, 19, 0, 21, 186, 0, 0, 0, 22, 23, + 24, 25, 0, 0, 0, 26, 0, 0, 30, 31, + 32, 33, 66, 0, 0, 27, 0, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 0, 90, 86, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 130, 0, 130, 0, 0, + 0, 0, 0, 0, 66, 241, 0, 27, 242, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 243, + 0, 27, 244, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 13, 86, 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, 87, 88, 0, 26, 0, 0, 30, 31, 32, + 33, 66, 248, 0, 27, 249, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 0, 86, 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, 0, 130, 130, 130, 130, 35, 0, 0, + 27, 0, 28, 0, 0, 12, 13, 0, 0, 0, + 14, 15, 0, 0, 0, 0, 297, 0, 0, 0, + 0, 0, 16, 0, 17, 18, 19, 0, 21, 0, + 0, 0, 0, 22, 23, 24, 25, 87, 88, 0, + 26, 0, 0, 30, 31, 32, 33, 12, 13, 0, + 0, 108, 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, 0, 30, 31, 32, 33, 0, + 0, 12, 13, 0, 0, 66, 14, 15, 27, 111, + 28, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 17, 18, 19, 0, 21, 0, 0, 0, 86, 22, + 23, 24, 25, 0, 0, 0, 26, 0, 0, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 66, 0, + 0, 27, 161, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 0, 0, 0, 14, + 15, 86, 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, 0, 30, 31, 32, 33, 66, 0, 0, 27, + 164, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 0, 0, 86, + 12, 13, 0, 0, 0, 14, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, + 18, 19, 66, 21, 0, 27, 166, 28, 22, 23, + 24, 25, 0, 0, 0, 26, 0, 29, 30, 31, + 32, 33, 0, 0, 0, 86, 0, 0, 0, 0, + 11, 0, 0, 0, 12, 13, 0, 0, 0, 14, + 15, 0, 0, 0, 66, 0, 0, 27, 167, 28, + 0, 16, 0, 17, 18, 19, 0, 21, 0, 0, + 0, 0, 22, 23, 24, 25, 0, 86, 0, 26, + 0, 29, 30, 31, 32, 33, 0, 0, 12, 13, + 0, 0, 0, 14, 15, 0, 0, 66, 0, 0, + 27, 172, 28, 0, 0, 16, 0, 17, 18, 19, + 0, 21, 0, 0, 0, 0, 22, 23, 24, 25, + 86, 0, 0, 26, 0, 0, 30, 31, 32, 33, + 0, 12, 13, 0, 0, 0, 14, 15, 0, 0, + 66, 0, 0, 27, 173, 28, 0, 0, 16, 0, + 17, 18, 19, 0, 21, 0, 0, 0, 0, 22, + 23, 24, 25, 86, 0, 0, 26, 0, 0, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 0, 0, 27, 0, 28, 0, 12, + 13, 0, 0, 0, 14, 15, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 86, 16, 0, 17, 18, + 19, 0, 21, 0, 0, 0, 0, 22, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 30, 31, 32, + 33, 0, 0, 0, 0, 12, 13, 0, 0, 66, + 14, 15, 27, 0, 28, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 17, 18, 19, 198, 21, 0, + 0, 0, 86, 22, 23, 24, 25, 0, 0, 0, + 26, 0, 0, 30, 31, 32, 33, 12, 13, 0, + 0, 0, 14, 15, 66, 0, 0, 27, 0, 28, + 0, 0, 0, 0, 16, 0, 17, 18, 19, 0, + 21, 0, 0, 0, 0, 22, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 30, 31, 32, 33, 0, + 12, 13, 0, 0, 0, 14, 15, 0, 0, 66, + 246, 0, 27, 0, 28, 0, 0, 16, 0, 17, + 18, 19, 0, 21, 0, 0, 0, 0, 22, 23, + 24, 25, 86, 0, 0, 26, 0, 0, 30, 31, + 32, 33, 0, 12, 13, 0, 0, 0, 14, 15, + 0, 0, 66, 250, 0, 27, 0, 28, 0, 0, + 16, 0, 17, 18, 19, 0, 21, 0, 0, 0, + 0, 22, 23, 24, 25, 86, 0, 0, 26, 0, + 0, 30, 31, 32, 33, 12, 13, 0, 0, 0, + 14, 15, 0, 0, 66, 281, 0, 27, 0, 28, + 0, 0, 16, 0, 17, 18, 19, 0, 21, 0, + 0, 0, 0, 22, 23, 24, 25, 86, 0, 0, + 26, 0, 0, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 0, + 0, 66, 287, 0, 27, 0, 28, 0, 0, 16, + 0, 17, 18, 19, 0, 21, 0, 0, 0, 0, + 22, 23, 24, 25, 86, 0, 0, 26, 0, 0, + 30, 31, 32, 33, 0, 126, 127, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 66, 288, 0, 27, + 0, 28, 0, 0, 16, 0, 17, 18, 19, 0, + 21, 0, 0, 0, 0, 22, 23, 24, 25, 86, + 0, 0, 26, 0, 0, 30, 31, 32, 33, 0, + 0, 0, 12, 13, 0, 0, 0, 14, 15, 0, + 0, 66, 289, 0, 27, 0, 28, 0, 0, 16, + 0, 17, 18, 19, 0, 21, 0, 0, 0, 0, + 22, 23, 24, 25, 86, 0, 0, 26, 0, 0, + 30, 31, 32, 33, 0, 12, 13, 0, 0, 0, + 14, 15, 0, 0, 66, 290, 0, 27, 0, 28, + 0, 0, 16, 0, 17, 18, 19, 0, 21, 0, + 0, 0, 0, 22, 23, 24, 25, 86, 0, 0, + 26, 0, 0, 30, 31, 32, 33, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 66, 291, 0, 27, + 0, 28, 0, 0, 16, 0, 17, 18, 19, 0, + 21, 0, 0, 0, 0, 22, 23, 24, 25, 86, + 0, 0, 26, 0, 0, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 0, 0, 0, 14, + 15, 0, 0, 66, 293, 0, 27, 0, 28, 0, + 0, 16, 0, 17, 18, 19, 0, 21, 0, 0, + 0, 0, 22, 23, 24, 25, 86, 0, 0, 26, + 0, 0, 30, 31, 32, 33, 0, 0, 0, 12, + 13, 0, 0, 0, 14, 15, 0, 0, 0, 66, + 0, 0, 27, 0, 28, 0, 16, 0, 17, 18, + 19, 0, 21, 0, 0, 0, 0, 22, 23, 24, + 25, 0, 0, 0, 26, 0, 0, 30, 31, 32, + 33, 0, 0, 0, 12, 13, 0, 0, 0, 14, + 15, 0, 0, 0, 0, 66, 0, 0, 27, 0, + 28, 16, 0, 17, 18, 19, 0, 21, 0, 0, + 0, 0, 22, 23, 24, 25, 0, 0, 0, 26, + 0, 0, 30, 31, 32, 33, 0, 12, 13, 0, + 0, 0, 14, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 17, 18, 19, 66, + 21, 0, 27, 0, 28, 22, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 30, 31, 32, 33, 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, 0, 30, 31, 32, + 33, 66, 0, 0, 27, 0, 28, 0, 0, 0, + 0, 0, 0, 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, 0, 30, 31, 32, 33, 116, 0, + 0, 66, 12, 13, 27, 0, 28, 14, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 17, 18, 19, 86, 21, 0, 0, 0, 0, + 22, 23, 24, 25, 0, 0, 0, 26, 0, 0, + 30, 31, 32, 33, 118, 0, 0, 66, 12, 13, + 27, 0, 28, 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, 0, 30, 31, 32, 33, + 51, 0, 0, 27, 0, 28, 0, 0, 140, 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, 0, + 30, 31, 32, 33, 66, 0, 0, 27, 0, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 209, 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, 0, 30, 31, 32, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 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, 0, 30, 31, 32, 33, 269, 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, 0, 30, 31, + 32, 33, 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, 57, 0, 0, 26, 0, + 0, 30, 31, 32, 33, 0, 68, 68, 0, 71, + 72, 0, 68, 0, 0, 0, 0, 12, 13, 0, + 68, 0, 14, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 68, 0, 16, 0, 17, 18, 19, 0, + 21, 0, 0, 0, 0, 22, 23, 24, 25, 0, + 0, 0, 26, 0, 0, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 68, 68, 68, 68, 68, 68, 0, 0, + 0, 0, 0, 0, 0, 68, 0, 0, 68, 0, + 0, 0, 68, 68, 0, 0, 68, 0, 68, 68, + 0, 0, 0, 68, 68, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 0, 0, 0, 68, 0, + 68, 68, 68, 68, 0, 0, 0, 0, 0, 0, + 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 68, 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, 68, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 68, 68, 0, 68, 68, 68, 68, 0, 68, + 0, 68, 68, 0, 0, 67, 69, 0, 0, 68, + 68, 73, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 68, 68, 0, 0, 0, 0, 0, 0, 0, + 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, + 68, 68, 68, 68, 0, 68, 68, 68, 0, 0, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, + 0, 0, 0, 0, 91, 0, 0, 91, 0, 0, + 0, 91, 91, 0, 0, 91, 0, 91, 91, 0, + 0, 0, 91, 91, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 0, 0, 91, 0, 91, + 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 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, 91, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 91, 0, 91, 91, 91, 91, 0, 91, 0, + 91, 91, 0, 0, 0, 0, 0, 0, 91, 91, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, + 91, 91, 91, 0, 91, 91, 91, +}; +short yycheck[] = { 41, + 0, 41, 63, 41, 37, 41, 41, 59, 59, 42, + 43, 63, 45, 63, 47, 35, 63, 219, 41, 63, + 50, 63, 38, 63, 59, 63, 123, 63, 62, 37, + 44, 123, 62, 63, 42, 103, 104, 37, 35, 47, + 40, 41, 42, 43, 44, 45, 51, 47, 35, 63, + 41, 94, 41, 44, 288, 0, 301, 302, 58, 59, + 60, 94, 62, 63, 297, 60, 134, 301, 302, 112, + 59, 292, 41, 40, 307, 44, 59, 261, 262, 112, + 40, 40, 303, 304, 123, 40, 94, 40, 108, 40, + 124, 121, 37, 93, 94, 297, 41, 42, 43, 44, + 45, 286, 47, 108, 112, 307, 91, 41, 222, 40, + 0, 108, 112, 58, 59, 60, 40, 62, 63, 40, + 261, 108, 44, 123, 124, 59, 40, 123, 62, 41, + 60, 112, 41, 41, 292, 280, 41, 44, 44, 41, + 292, 41, 41, 93, 41, 175, 176, 37, 93, 94, + 40, 41, 42, 43, 40, 45, 224, 47, 40, 59, + 40, 292, 59, 290, 261, 262, 41, 112, 58, 59, + 60, 91, 62, 63, 59, 41, 272, 7, 123, 124, + 294, 295, 296, 40, 200, 271, 41, 41, 0, 93, + 124, 41, 93, 41, 59, 59, -1, 216, -1, 29, + 314, 315, -1, 93, 94, 319, -1, -1, -1, 260, + 261, 262, 41, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 112, -1, 292, 260, 261, 262, 289, 290, + 59, 265, 262, 123, 124, -1, -1, 289, 290, 289, + 290, 274, 289, 290, -1, 289, 290, 289, 290, 289, + 290, 289, 290, 289, 290, 85, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 289, 290, 268, 269, + 100, 260, 261, 262, 274, 289, 290, 260, 261, 262, + 280, 41, 282, 283, 284, 285, 286, 41, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 292, 298, 59, + 300, 301, 302, 303, 304, 59, 136, 137, 303, 304, + -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, -1, -1, 268, 269, -1, 260, 261, 262, 274, + -1, 265, -1, -1, -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, + 260, 261, 262, 260, 261, 262, -1, 257, 258, 259, + 260, 261, 262, 263, 264, 265, -1, -1, 268, 269, + 0, -1, -1, -1, 274, -1, -1, 217, 218, -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, -1, -1, + -1, 260, 261, 262, -1, 0, -1, -1, 58, 59, + -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, + -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 299, + -1, -1, 37, 93, 94, 40, 41, 42, 43, 44, + 45, -1, 47, -1, -1, -1, -1, -1, -1, -1, + 0, -1, 112, 58, 59, 60, -1, 62, 63, -1, + 260, 261, 262, 123, 124, -1, 260, 261, 262, -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, -1, 58, 59, + 60, -1, 62, 63, -1, 260, 261, 262, 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, + 37, -1, 112, 40, 41, 42, 43, 44, 45, -1, + 47, -1, -1, 123, 124, -1, 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, -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, 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, -1, -1, -1, -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, -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, -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, 0, -1, -1, 112, 58, 59, 60, -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, 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, 0, -1, -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, 37, -1, -1, 40, 41, 42, 43, 44, + 45, -1, 47, -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, -1, -1, 303, 304, 123, 124, + -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, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 0, -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, 40, -1, + -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 59, -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, 123, 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, 257, 258, 259, 260, 261, + 262, 263, 264, -1, -1, -1, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, 93, 94, 280, -1, + 282, 283, 284, 285, 286, -1, -1, -1, -1, 291, + 292, 293, 294, -1, -1, 112, 298, -1, 300, 301, + 302, 303, 304, -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, -1, 257, 258, 259, 260, 261, 262, 263, 264, + 265, -1, -1, 268, 269, -1, -1, -1, -1, 274, + -1, 40, -1, -1, 43, 280, 45, 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, 40, -1, -1, 43, -1, 45, + 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, -1, 289, 290, 291, 292, 293, 294, 295, 296, + -1, 298, -1, 300, -1, -1, 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, -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, 93, 94, 40, 41, + -1, 43, 44, 45, -1, -1, -1, -1, -1, 0, + -1, -1, -1, -1, -1, 112, 58, 59, 60, -1, + 62, 63, -1, -1, 263, 264, 123, 124, -1, 268, + 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 280, -1, 282, 283, 284, -1, 286, -1, 40, + 41, 93, 43, 44, 45, -1, -1, 0, -1, 298, + -1, -1, 301, 302, 303, 304, -1, 58, 59, 60, + -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, + -1, 123, 124, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, + -1, 44, 93, 259, -1, 261, 262, 263, 264, -1, + -1, 0, 268, 269, -1, 58, 59, 60, -1, 62, + 63, -1, -1, -1, 280, -1, 282, 283, 284, -1, + 286, -1, 123, 124, -1, 291, 292, 293, 294, -1, + -1, -1, 298, -1, 300, 301, 302, 303, 304, -1, + 93, 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, + 123, 124, -1, 280, -1, 282, 283, 284, 285, 286, + -1, 288, -1, -1, 291, 292, 293, 294, 295, 296, + -1, 298, -1, 300, 301, 302, 303, 304, -1, 40, + -1, -1, 43, -1, 45, 257, 258, 259, 260, 261, + 262, 263, 264, 265, -1, -1, 268, 269, 59, -1, + -1, -1, 274, -1, 123, -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, -1, -1, -1, 257, 258, 259, 260, + 261, 262, 263, 264, 265, -1, -1, 268, 269, 40, + -1, -1, 43, 274, 45, -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, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 0, -1, 268, 269, -1, -1, -1, + -1, -1, -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, 123, 40, 41, -1, -1, 44, 257, 258, + 259, 260, 261, 262, 263, 264, -1, 0, -1, 268, + 269, 58, 59, 60, -1, 62, 63, -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, 93, 40, -1, -1, + 43, -1, 45, -1, -1, -1, 257, 258, 259, 260, + 261, 262, 263, 264, 0, -1, 59, 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, 40, -1, -1, 43, -1, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 257, 258, 259, -1, + 123, -1, 263, 264, -1, 0, -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, 40, -1, -1, 43, -1, + 45, -1, -1, -1, -1, -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, + 257, 258, 259, 260, 261, 262, 263, 264, 265, -1, + -1, 268, 269, -1, -1, -1, -1, -1, -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, 123, -1, + -1, -1, -1, -1, 257, 258, 259, 260, -1, 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, -1, -1, -1, -1, -1, -1, + -1, 257, 258, 259, -1, -1, -1, 263, 264, -1, + -1, -1, 268, 269, -1, -1, 40, 41, -1, 43, + 44, 45, -1, -1, 280, -1, 282, 283, 284, 285, + 286, -1, -1, -1, -1, 291, 292, 293, 294, 63, + -1, -1, 298, -1, 300, 301, 302, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, + -1, -1, 257, 258, 259, -1, -1, -1, 263, 264, + -1, -1, -1, 268, 269, 0, 63, -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, 0, -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, 37, -1, -1, -1, 41, + 42, -1, 44, 93, 94, 47, -1, -1, -1, 263, + 264, -1, -1, -1, 268, 269, 58, 59, 60, -1, + 62, 63, 112, -1, -1, -1, 280, -1, 282, 283, + 284, -1, 286, 123, 124, -1, -1, 291, 292, 293, + 294, -1, -1, -1, 298, -1, -1, 301, 302, 303, + 304, 93, 94, -1, -1, -1, 263, 264, -1, -1, + -1, 268, 269, -1, -1, -1, -1, -1, -1, -1, + 112, -1, -1, 280, -1, 282, 283, 284, -1, 286, + -1, 123, 124, -1, 291, 292, 293, 294, -1, -1, + -1, 298, -1, -1, 301, 302, 303, 304, -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, -1, -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, + -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, -1, 282, 283, 284, 285, 286, 0, 288, 289, + 290, 291, -1, 293, 294, 295, 296, -1, 298, -1, + 300, 301, 302, -1, -1, 257, 258, 259, 260, 261, + 262, -1, -1, 265, -1, -1, -1, -1, -1, -1, + -1, -1, 274, -1, 37, -1, -1, -1, 41, 42, + -1, 44, 0, 285, 47, -1, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 58, 59, 60, 300, 62, + 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + -1, -1, -1, 41, 42, -1, 44, 0, -1, 47, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + 58, 59, 60, -1, 62, 63, -1, -1, -1, 112, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 123, 124, -1, -1, 37, -1, -1, -1, 41, 42, + -1, 44, -1, -1, 47, 93, 94, -1, -1, -1, + -1, -1, -1, -1, -1, 58, 59, 60, -1, 62, + 63, -1, -1, -1, 112, -1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, 123, 124, -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, 37, -1, -1, -1, 41, 42, 112, + 44, -1, -1, 47, -1, -1, -1, -1, -1, -1, + 123, 124, -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, 257, 258, 259, 260, 261, 262, + -1, -1, 265, -1, -1, -1, -1, -1, 112, -1, + -1, 274, -1, -1, -1, -1, -1, -1, -1, 123, + 124, -1, 285, -1, -1, 288, 289, 290, 291, 292, + 293, 294, 295, 296, -1, -1, -1, 300, -1, 257, + 258, 259, 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, 300, -1, 257, 258, 259, 260, 261, 262, + -1, -1, 265, -1, -1, -1, -1, -1, -1, -1, + -1, 274, -1, -1, 0, -1, -1, -1, -1, -1, + -1, -1, 285, -1, -1, 288, 289, 290, 291, 292, + 293, 294, 295, 296, -1, -1, -1, 300, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 47, 48, -1, 41, 42, -1, 44, -1, + -1, 47, -1, 257, 258, 259, 260, 261, 262, -1, + -1, 265, 58, 59, 60, -1, 62, 63, -1, -1, + 274, 0, -1, -1, -1, -1, 81, -1, 83, 84, + -1, 285, -1, -1, 288, 289, 290, 291, 292, 293, + 294, 295, 296, -1, -1, -1, 300, 93, 94, -1, + -1, -1, -1, -1, -1, -1, 111, 112, 37, -1, + -1, -1, 41, 42, -1, 44, 112, -1, 47, 0, + -1, -1, -1, -1, -1, -1, -1, 123, 124, 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, 37, -1, -1, -1, + 41, 42, -1, 44, 93, 94, 47, -1, -1, 174, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 185, 62, 187, 112, 189, -1, -1, -1, -1, -1, + -1, 0, -1, -1, 123, 124, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 211, -1, -1, -1, + -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, + -1, 226, 227, 228, 229, 230, -1, -1, 37, -1, + -1, 112, 41, 42, -1, 44, -1, -1, 47, -1, + -1, -1, 123, 124, -1, -1, -1, -1, -1, 58, + 59, 60, -1, 62, -1, -1, -1, -1, -1, -1, + -1, 257, 258, 259, 260, 261, 262, -1, -1, 265, + 275, -1, -1, -1, 279, 280, 281, -1, 274, 0, + 285, -1, -1, -1, 93, 94, -1, -1, -1, 285, + -1, -1, 288, 289, 290, 291, 292, 293, 294, 295, + 296, -1, -1, 112, 300, 310, 311, -1, -1, -1, + -1, 316, -1, -1, 123, 124, 37, -1, -1, -1, + 41, 42, -1, 44, -1, -1, 47, -1, 257, 258, + 259, 260, 261, 262, -1, -1, 265, 58, 59, 60, + -1, 62, -1, -1, -1, 274, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 285, -1, -1, 288, + 289, 290, -1, -1, -1, -1, 295, 296, -1, -1, + -1, 300, 93, 94, -1, -1, 257, 258, 259, 260, + 261, 262, -1, -1, 265, -1, -1, -1, -1, 40, + 41, 112, 43, 274, 45, -1, -1, -1, -1, 0, + -1, -1, 123, 124, 285, -1, -1, 288, 289, 290, + -1, -1, 63, -1, 295, 296, -1, -1, -1, 300, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, 42, -1, 44, -1, -1, 47, -1, 257, 258, + 259, 260, 261, 262, -1, -1, 265, 58, 59, 60, + -1, 62, -1, -1, -1, 274, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 285, -1, -1, 288, + 289, 290, -1, -1, -1, -1, 295, 296, -1, -1, + -1, 300, 93, 94, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, -1, -1, 41, 42, -1, + -1, 112, -1, 47, 0, -1, -1, -1, -1, -1, + -1, -1, 123, 124, 58, 59, 60, -1, 62, -1, + -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, + 261, 262, -1, -1, 265, -1, -1, -1, -1, -1, + -1, 37, -1, 274, -1, 41, 42, -1, 44, 93, + 94, 47, -1, -1, 285, -1, -1, 288, 289, 290, + -1, -1, 58, 59, 295, 296, -1, -1, 112, 300, + -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, -1, 93, 94, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, -1, + -1, -1, -1, -1, -1, -1, 112, -1, -1, 280, + -1, 282, 283, 284, -1, 286, -1, 123, 124, -1, + 291, 292, 293, 294, -1, -1, -1, 298, -1, -1, + 301, 302, 303, 304, -1, -1, 257, 258, 259, 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, -1, 295, 296, -1, -1, -1, 300, + -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, -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, + -1, 295, 296, -1, -1, -1, 300, -1, -1, -1, + -1, 257, 258, 259, 260, 261, 262, -1, 7, 265, + -1, -1, -1, -1, -1, 14, -1, -1, 274, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 285, + 29, -1, 288, 289, 290, -1, 35, -1, -1, -1, + -1, -1, -1, -1, 300, -1, -1, -1, -1, -1, + 49, 50, 51, -1, -1, -1, 55, 56, -1, 58, + 59, 60, -1, 62, 63, 64, 65, 66, -1, -1, + -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, -1, -1, 82, -1, -1, 85, 86, 87, 88, + 89, 90, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 100, -1, -1, -1, -1, -1, -1, -1, 108, + -1, -1, -1, -1, -1, -1, 115, -1, -1, -1, + 40, -1, 121, 43, -1, 45, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 136, 137, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + 159, 160, -1, -1, 163, 164, 165, 166, 167, -1, + -1, -1, -1, 172, 173, 40, 175, 176, 43, -1, + 45, 180, -1, -1, -1, 184, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, 195, -1, -1, 198, + -1, -1, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 217, 218, + 219, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 236, -1, 238, + -1, 240, -1, 242, -1, 244, -1, -1, -1, 40, + 249, -1, 43, -1, 45, 254, 255, -1, 123, -1, + 125, -1, -1, 262, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 282, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 260, 261, 262, 263, 264, + 299, 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, 123, 298, 125, -1, 301, 302, 303, 304, + 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, + -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 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, -1, 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, 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, -1, + 301, 302, 303, 304, 40, -1, -1, 43, -1, 45, + -1, -1, -1, 123, -1, 125, -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, 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, 123, -1, 125, + -1, -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, 123, -1, 125, -1, -1, -1, 40, 41, + -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, + 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, + -1, 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, -1, -1, -1, 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, -1, 301, 302, 303, 304, 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, 40, 286, 287, 43, -1, 45, + 291, 292, 293, 294, -1, -1, -1, 298, -1, -1, + 301, 302, 303, 304, -1, 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, -1, 301, 302, 303, 304, + 40, 263, 264, 43, -1, 45, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, 280, 59, + 282, 283, 284, -1, 286, -1, -1, -1, -1, 291, + 292, 293, 294, -1, -1, -1, 298, -1, -1, 301, + 302, 303, 304, -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, 123, -1, 125, -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, 123, -1, + 125, -1, -1, -1, -1, -1, 40, -1, -1, 43, + -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 257, 258, 259, -1, 59, -1, 263, 264, -1, + -1, -1, 268, 269, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 123, 280, 125, 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, -1, + 40, -1, -1, 43, -1, 45, -1, -1, -1, 123, + 260, 125, -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, + -1, 301, 302, 303, 304, 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, -1, 301, 302, 303, 304, + 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, + -1, 301, 302, 303, 304, -1, 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, -1, 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, 259, + -1, -1, -1, 263, 264, -1, -1, -1, 268, 269, + -1, -1, -1, -1, -1, -1, 40, -1, -1, 43, + 280, 45, 282, 283, 284, -1, 286, -1, -1, -1, + -1, 291, 292, 293, 294, 59, -1, -1, 298, -1, + 300, 301, 302, 303, 304, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 123, -1, 125, -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, 123, + -1, 125, -1, -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, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 40, -1, -1, + 43, -1, 45, -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, + 123, 260, 125, -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, -1, 301, 302, 303, 304, 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, -1, 301, 302, 303, + 304, 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, 40, 286, 287, 43, + 44, 45, 291, 292, 293, 294, -1, -1, -1, 298, + -1, -1, 301, 302, 303, 304, 60, 260, 62, 63, + 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, -1, 301, 302, + 303, 304, 40, -1, -1, 43, -1, 45, -1, -1, + 263, 264, -1, 266, 267, 268, 269, -1, -1, -1, + -1, 59, 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, -1, 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, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, 125, -1, -1, + -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, + 264, 63, -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, -1, 301, 302, 303, + 304, 40, 41, -1, 43, 44, 45, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 260, -1, 63, 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, -1, 301, 302, 303, 304, 40, -1, -1, + 43, -1, 45, -1, -1, 263, 264, -1, -1, -1, + 268, 269, -1, -1, -1, -1, 59, -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, -1, 301, 302, 303, 304, 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, -1, 301, 302, 303, 304, -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, -1, -1, -1, 63, 291, + 292, 293, 294, -1, -1, -1, 298, -1, -1, 301, + 302, 303, 304, -1, -1, -1, -1, -1, 40, -1, + -1, 43, 44, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, 63, -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, -1, 301, 302, 303, 304, 40, -1, -1, 43, + 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 259, -1, -1, 63, + 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, -1, -1, -1, 298, -1, 300, 301, 302, + 303, 304, -1, -1, -1, 63, -1, -1, -1, -1, + 259, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, -1, -1, -1, 40, -1, -1, 43, 44, 45, + -1, 280, -1, 282, 283, 284, -1, 286, -1, -1, + -1, -1, 291, 292, 293, 294, -1, 63, -1, 298, + -1, 300, 301, 302, 303, 304, -1, -1, 263, 264, + -1, -1, -1, 268, 269, -1, -1, 40, -1, -1, + 43, 44, 45, -1, -1, 280, -1, 282, 283, 284, + -1, 286, -1, -1, -1, -1, 291, 292, 293, 294, + 63, -1, -1, 298, -1, -1, 301, 302, 303, 304, + -1, 263, 264, -1, -1, -1, 268, 269, -1, -1, + 40, -1, -1, 43, 44, 45, -1, -1, 280, -1, + 282, 283, 284, -1, 286, -1, -1, -1, -1, 291, + 292, 293, 294, 63, -1, -1, 298, -1, -1, 301, + 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 40, -1, -1, 43, -1, 45, -1, 263, + 264, -1, -1, -1, 268, 269, -1, -1, -1, -1, + 58, -1, -1, -1, -1, 63, 280, -1, 282, 283, + 284, -1, 286, -1, -1, -1, -1, 291, 292, 293, + 294, -1, -1, -1, 298, -1, -1, 301, 302, 303, + 304, -1, -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, -1, + -1, -1, 63, 291, 292, 293, 294, -1, -1, -1, + 298, -1, -1, 301, 302, 303, 304, 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, -1, + -1, -1, 298, -1, -1, 301, 302, 303, 304, -1, + 263, 264, -1, -1, -1, 268, 269, -1, -1, 40, + 41, -1, 43, -1, 45, -1, -1, 280, -1, 282, + 283, 284, -1, 286, -1, -1, -1, -1, 291, 292, + 293, 294, 63, -1, -1, 298, -1, -1, 301, 302, + 303, 304, -1, 263, 264, -1, -1, -1, 268, 269, + -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, + 280, -1, 282, 283, 284, -1, 286, -1, -1, -1, + -1, 291, 292, 293, 294, 63, -1, -1, 298, -1, + -1, 301, 302, 303, 304, 263, 264, -1, -1, -1, + 268, 269, -1, -1, 40, 41, -1, 43, -1, 45, + -1, -1, 280, -1, 282, 283, 284, -1, 286, -1, + -1, -1, -1, 291, 292, 293, 294, 63, -1, -1, + 298, -1, -1, 301, 302, 303, 304, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, -1, + -1, 40, 41, -1, 43, -1, 45, -1, -1, 280, + -1, 282, 283, 284, -1, 286, -1, -1, -1, -1, + 291, 292, 293, 294, 63, -1, -1, 298, -1, -1, + 301, 302, 303, 304, -1, 261, 262, 263, 264, -1, + -1, -1, 268, 269, -1, -1, 40, 41, -1, 43, + -1, 45, -1, -1, 280, -1, 282, 283, 284, -1, + 286, -1, -1, -1, -1, 291, 292, 293, 294, 63, + -1, -1, 298, -1, -1, 301, 302, 303, 304, -1, + -1, -1, 263, 264, -1, -1, -1, 268, 269, -1, + -1, 40, 41, -1, 43, -1, 45, -1, -1, 280, + -1, 282, 283, 284, -1, 286, -1, -1, -1, -1, + 291, 292, 293, 294, 63, -1, -1, 298, -1, -1, + 301, 302, 303, 304, -1, 263, 264, -1, -1, -1, + 268, 269, -1, -1, 40, 41, -1, 43, -1, 45, + -1, -1, 280, -1, 282, 283, 284, -1, 286, -1, + -1, -1, -1, 291, 292, 293, 294, 63, -1, -1, + 298, -1, -1, 301, 302, 303, 304, 263, 264, -1, + -1, -1, 268, 269, -1, -1, 40, 41, -1, 43, + -1, 45, -1, -1, 280, -1, 282, 283, 284, -1, + 286, -1, -1, -1, -1, 291, 292, 293, 294, 63, + -1, -1, 298, -1, -1, 301, 302, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, -1, -1, 40, 41, -1, 43, -1, 45, -1, + -1, 280, -1, 282, 283, 284, -1, 286, -1, -1, + -1, -1, 291, 292, 293, 294, 63, -1, -1, 298, + -1, -1, 301, 302, 303, 304, -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, -1, 301, 302, 303, + 304, -1, -1, -1, 263, 264, -1, -1, -1, 268, + 269, -1, -1, -1, -1, 40, -1, -1, 43, -1, + 45, 280, -1, 282, 283, 284, -1, 286, -1, -1, + -1, -1, 291, 292, 293, 294, -1, -1, -1, 298, + -1, -1, 301, 302, 303, 304, -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, -1, + -1, -1, 298, -1, -1, 301, 302, 303, 304, 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, -1, 301, 302, 303, + 304, 40, -1, -1, 43, -1, 45, -1, -1, -1, + -1, -1, -1, -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, -1, 301, 302, 303, 304, 259, -1, + -1, 40, 263, 264, 43, -1, 45, 268, 269, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 280, + -1, 282, 283, 284, 63, 286, -1, -1, -1, -1, + 291, 292, 293, 294, -1, -1, -1, 298, -1, -1, + 301, 302, 303, 304, 259, -1, -1, 40, 263, 264, + 43, -1, 45, 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, -1, 301, 302, 303, 304, + 40, -1, -1, 43, -1, 45, -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, -1, + 301, 302, 303, 304, 40, -1, -1, 43, -1, 45, + -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, -1, -1, -1, 298, + -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -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, -1, 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, -1, 301, 302, + 303, 304, -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, 16, -1, -1, 298, -1, + -1, 301, 302, 303, 304, -1, 27, 28, -1, 30, + 31, -1, 33, -1, -1, -1, -1, 263, 264, -1, + 41, -1, 268, 269, -1, -1, -1, -1, -1, -1, + -1, -1, 53, -1, 280, -1, 282, 283, 284, -1, + 286, -1, -1, -1, -1, 291, 292, 293, 294, -1, + -1, -1, 298, -1, -1, 301, 302, 303, 304, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, 106, -1, -1, 109, -1, + -1, -1, 113, 114, -1, -1, 117, -1, 119, 120, + -1, -1, -1, 124, 125, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, 139, -1, + 141, 142, 143, 144, -1, -1, -1, -1, -1, -1, + -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 162, -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, 190, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 202, 203, -1, 205, 206, 207, 208, -1, 210, + -1, 212, 213, -1, -1, 27, 28, -1, -1, 220, + 221, 33, -1, -1, -1, -1, -1, -1, -1, 41, + -1, 232, 233, -1, -1, -1, -1, -1, -1, -1, + -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 258, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 270, + 271, 272, 273, 274, -1, 276, 277, 278, -1, -1, + -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, + -1, -1, -1, -1, 106, -1, -1, 109, -1, -1, + -1, 113, 114, -1, -1, 117, -1, 119, 120, -1, + -1, -1, 124, 125, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 135, -1, -1, -1, 139, -1, 141, + 142, 143, 144, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 162, -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, 190, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 202, 203, -1, 205, 206, 207, 208, -1, 210, -1, + 212, 213, -1, -1, -1, -1, -1, -1, 220, 221, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 232, 233, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 258, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 273, 274, -1, 276, 277, 278, +}; +#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 : expr '?' expr ':' expr", +"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 : 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 +#define yyclearin (yychar=(-1)) +#define yyerrok (yyerrflag=0) +#ifdef YYSTACKSIZE +#ifndef YYMAXDEPTH +#define YYMAXDEPTH YYSTACKSIZE +#endif +#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" + +int yyparse _((void)); + +#include "a2py.c" +#line 2008 "y.tab.c" +#define YYABORT goto yyabort +#define YYACCEPT goto yyaccept +#define YYERROR goto yyerrlab +int +yyparse() +{ + register int yym, yyn, yystate; +#if YYDEBUG + register char *yys; +#ifndef __cplusplus + extern char *getenv(); +#endif + + 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("yydebug: state %d, reading %d (%s)\n", yystate, + yychar, yys); + } +#endif + } + if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && + yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + { +#if YYDEBUG + if (yydebug) + printf("yydebug: state %d, shifting to state %d\n", + 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("yydebug: state %d, error recovery shifting\ + to state %d\n", *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("yydebug: error recovery discarding state %d\n", + *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("yydebug: state %d, error recovery discards token %d (%s)\n", + yystate, yychar, yys); + } +#endif + yychar = (-1); + goto yyloop; + } +yyreduce: +#if YYDEBUG + if (yydebug) + printf("yydebug: state %d, reducing by rule %d (%s)\n", + 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(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); } +break; +case 36: +#line 139 "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 37: +#line 148 "a2p.y" +{ yyval = yyvsp[0]; } +break; +case 38: +#line 150 "a2p.y" +{ yyval = oper1(ONUM,yyvsp[0]); } +break; +case 39: +#line 152 "a2p.y" +{ yyval = oper1(OSTR,yyvsp[0]); } +break; +case 40: +#line 154 "a2p.y" +{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); } +break; +case 41: +#line 156 "a2p.y" +{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); } +break; +case 42: +#line 158 "a2p.y" +{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); } +break; +case 43: +#line 160 "a2p.y" +{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); } +break; +case 44: +#line 162 "a2p.y" +{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); } +break; +case 45: +#line 164 "a2p.y" +{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); } +break; +case 46: +#line 166 "a2p.y" +{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); } +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 2674 "y.tab.c" + } + yyssp -= yym; + yystate = *yyssp; + yyvsp -= yym; + yym = yylhs[yyn]; + if (yystate == 0 && yym == 0) + { +#if YYDEBUG + if (yydebug) + printf("yydebug: after reduction, shifting from state 0 to\ + state %d\n", 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("yydebug: state %d, reading %d (%s)\n", + 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("yydebug: after reduction, shifting from state %d \ +to state %d\n", *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); +} |