source: trunk/third/perl/x2p/a2p.c @ 20075

Revision 20075, 129.8 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20074, which included commits to RCS files with non-trunk default branches.
Line 
1#ifndef lint
2/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
3#endif
4#define YYBYACC 1
5#line 2 "a2p.y"
6/* $RCSfile: a2p.c,v $$Revision: 1.1.1.5 $$Date: 2004-02-09 18:58:00 $
7 *
8 *    Copyright (C) 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999,
9 *    2000, 2001, by Larry Wall and others
10 *
11 *    You may distribute under the terms of either the GNU General Public
12 *    License or the Artistic License, as specified in the README file.
13 *
14 * $Log: not supported by cvs2svn $
15 */
16
17#include "INTERN.h"
18#include "a2p.h"
19
20int root;
21int begins = Nullop;
22int ends = Nullop;
23
24#line 24 "y.tab.c"
25#define BEGIN 257
26#define END 258
27#define REGEX 259
28#define SEMINEW 260
29#define NEWLINE 261
30#define COMMENT 262
31#define FUN1 263
32#define FUNN 264
33#define GRGR 265
34#define PRINT 266
35#define PRINTF 267
36#define SPRINTF_OLD 268
37#define SPRINTF_NEW 269
38#define SPLIT 270
39#define IF 271
40#define ELSE 272
41#define WHILE 273
42#define FOR 274
43#define IN 275
44#define EXIT 276
45#define NEXT 277
46#define BREAK 278
47#define CONTINUE 279
48#define RET 280
49#define GETLINE 281
50#define DO 282
51#define SUB 283
52#define GSUB 284
53#define MATCH 285
54#define FUNCTION 286
55#define USERFUN 287
56#define DELETE 288
57#define ASGNOP 289
58#define OROR 290
59#define ANDAND 291
60#define NUMBER 292
61#define VAR 293
62#define SUBSTR 294
63#define INDEX 295
64#define MATCHOP 296
65#define RELOP 297
66#define OR 298
67#define STRING 299
68#define UMINUS 300
69#define NOT 301
70#define INCR 302
71#define DECR 303
72#define FIELD 304
73#define VFIELD 305
74#define YYERRCODE 256
75short yylhs[] = {                                        -1,
76    0,    3,    6,    6,    2,    2,    7,    7,    7,    7,
77    7,    7,    9,    8,    8,   11,   11,   11,   11,   11,
78   15,   15,   15,   15,   14,   14,   14,   14,   13,   13,
79   13,   13,   12,   12,   12,   12,   18,   18,   16,   16,
80   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
81   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
82   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
83   16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
84   16,   16,   16,   16,   17,   17,   17,   17,   10,   10,
85   10,   19,   19,   19,    1,    1,   20,   20,   20,   20,
86    4,    4,   21,   21,   22,   22,   22,   22,    5,    5,
87   23,   23,   23,   23,   26,   26,   24,   24,   24,   24,
88   24,   24,   24,   24,   24,   24,   24,   24,   24,   27,
89   27,   27,   25,   25,   25,   25,   25,   25,   25,   25,
90};
91short yylen[] = {                                         2,
92    2,    6,    5,    2,    3,    0,    1,    5,   10,    4,
93    1,    1,    1,    1,    3,    1,    1,    1,    1,    5,
94    3,    4,    4,    2,    3,    3,    3,    3,    3,    3,
95    1,    3,    1,    2,    5,    3,    1,    1,    1,    1,
96    1,    3,    3,    3,    3,    3,    3,    3,    2,    2,
97    2,    2,    2,    2,    3,    1,    2,    3,    4,    3,
98    4,    1,    3,    4,    4,    4,    4,    2,    8,    6,
99    8,    8,    6,    6,    6,    6,    6,    6,    6,    6,
100    8,    8,    8,    8,    1,    4,    1,    2,    1,    1,
101    0,    4,    4,    3,    2,    0,    1,    1,    1,    1,
102    2,    0,    1,    1,    2,    2,    2,    2,    2,    0,
103    3,    2,    2,    1,    1,    0,    1,    4,    2,    4,
104    2,    1,    1,    1,    2,    1,    1,    2,    5,    1,
105    1,    1,    6,    9,    6,    7,   10,    9,    6,    5,
106};
107short yydefred[] = {                                     96,
108    0,    0,   98,   99,  100,   97,    0,   95,    0,    0,
109   31,    0,    0,   38,    0,    0,    0,    0,    0,    0,
110    0,    0,   40,    0,    0,    0,   41,    0,    0,    0,
111    0,    0,   87,    0,  102,    0,   11,    0,   96,    0,
112    0,    0,   17,   18,   19,    0,    0,    0,  102,  102,
113    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
114    0,    0,    0,    0,    0,    0,    0,    0,   24,   51,
115   52,    0,    0,    0,    0,    0,    0,    4,    0,  102,
116    0,  102,  102,    0,    0,    0,    0,    0,    0,    0,
117    0,    0,    0,    0,    0,    0,    0,    0,    0,   49,
118   50,    0,   68,    0,    0,    0,    0,   63,    0,    0,
119    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
120    0,    0,    0,    0,  103,  104,    0,  101,   55,   32,
121   28,   21,    0,    0,    0,    0,    0,    0,   30,    0,
122    0,    0,    0,   48,    0,    0,    0,    0,    0,    0,
123    0,    0,    0,    0,    0,  102,  102,    0,    0,   64,
124   65,   67,    0,    0,    0,    0,    0,    0,    0,    0,
125   13,   66,   86,    0,    0,  102,    0,    0,    0,    0,
126    0,    0,  123,  122,  126,    0,  102,    0,  102,   10,
127  102,    0,  109,    0,  114,    0,    0,    0,   22,    0,
128   61,   94,    0,    0,   96,    3,    0,    0,    0,    0,
129    0,    0,    0,  102,    0,    0,    0,    0,    0,    0,
130    0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
131  102,  102,  102,    8,    0,    0,    0,    0,    0,   73,
132    0,   78,    0,   77,    0,   80,    0,   79,    0,   75,
133   76,    0,   70,    0,   74,  131,  130,  132,    0,    0,
134    0,    0,    0,  115,    0,    0,    0,    0,    0,    0,
135    0,    0,    0,    0,    0,    0,    0,    0,    0,  102,
136    0,    0,    0,  102,  102,  102,    0,    0,    0,  102,
137   72,   71,   82,   81,   84,   83,    0,   69,    0,    0,
138    0,    0,    0,    0,  129,    0,    0,    0,  135,  139,
139    0,    0,    0,    9,  102,  102,    0,  136,    0,    0,
140  102,  134,  138,    0,  137,
141};
142short yydgoto[] = {                                       1,
143    2,    7,   37,   73,  127,   38,   39,   40,  170,  103,
144   74,  192,   43,   44,   45,   46,   47,   48,  105,    8,
145  128,  233,  193,  194,  195,  265,  259,
146};
147short yysindex[] = {                                      0,
148    0,  -52,    0,    0,    0,    0, 2796,    0,  -90,  -86,
149    0,   17,   25,    0,   38,   44,  -57,   45,   47,   48,
150 -219,   49,    0,   -1,   51,   52,    0, 7708, 7708, 6350,
151 -238, -238,    0, 7708,    0, 6350,    0, -165,    0,  -21,
152  -12, 5968,    0,    0,    0,  -32, -253, 7759,    0,    0,
153 7372, 7759, 7759, 7708, 7708,   46, 7419, 7473, 7708,   65,
154 7759, 7759, 7708, 7708, 6350,  -54, -228,  -54,    0,    0,
155    0,   -5, -185,  -41,   71,   76,   80,    0,  -52,    0,
156 7708,    0,    0, 6350, 7708, 7528, 7708, 7708, 7708,  -32,
157 -171, 7708, 7708, 7708, 7708, 7708, 7708, -152, 6350,    0,
158    0, 6397,    0, 6481,   86, -185, -185,    0, 6528,   90,
159   91, 6583,  184, 7708,   89, 6630,   93, 6673, 6716, 7759,
160   94,   41, 6761, 6816,    0,    0, 5228,    0,    0,    0,
161    0,    0, -185, 6863, 6015, 6015,  -49, 6906,    0,  184,
162  184,  184,  184,    0,   -8,   -8,  -54,  -54,  -54,  -54,
163 -238,  -49, 6397, 5924,   28,    0,    0, 5320, 5411,    0,
164    0,    0, -154,  184, 7708, 7708, 7708, 7708, 7575,  100,
165    0,    0,    0, 7708, 7708,    0, 7759, 7759,  104,  105,
166  117, 7708,    0,    0,    0, 7708,    0, -151,    0,    0,
167    0, 7618,    0,  -43,    0, 5495, 7708, -129,    0, 7708,
168    0,    0, 3816, 3816,    0,    0,   29, 6062, 6119, 6203,
169 6248,  122, 6949,    0, 6295, 6994, -185,  -45,  -45, 6350,
170 6350, 4306, 7618, 7618, 4429,   81, -185, -185,    0,    0,
171    0,    0,    0,    0, 7618, 7618, 7618, 7618,  -52,    0,
172 7665,    0, 7708,    0, 7708,    0, 7708,    0, 7708,    0,
173    0,  -96,    0, 7708,    0,    0,    0,    0, 7708, 7708,
174  -39,  -37, 7049,    0,  108,  -97, 7759, 5586, -185, -185,
175 -185, -185, -185,  136, 7096, 7139, 7182, 7227, 7282,    0,
176 7329, 7618, 7618,    0,    0,    0, 3890,  138,   88,    0,
177    0,    0,    0,    0,    0,    0, -185,    0, 4429, 4429,
178 4429, 4306,  -51, 6350,    0, -185, 5678,  -89,    0,    0,
179  141, 4306,  -35,    0,    0,    0,  143,    0, 4429, 4429,
180    0,    0,    0, 4429,    0,
181};
182short yyrindex[] = {                                      0,
183    0, 2452,    0,    0,    0,    0,  185,    0,    0,    0,
184    0,   56,    0,    0,  111,    0, 2886,    0,    0,    0,
185    0,    0,    0,    1,    0,    0,    0,    0,    0,    0,
186    0,    0,    0,    0,    0,    0,    0, 2279,    0, 2328,
187 2048, 4023,    0,    0,    0, 2120, 1671, 3590,    0,    0,
188    0,  145,  145,    0,    0,  382,    0,    0,    0,    0,
189  145,   95,    0,    0,    0,  818,  872,  946,    0,    0,
190    0,  437, 5769,    0,  -16,  -10,   18,    0, 2511,    0,
191    0,    0,    0,    0,    0,    0,    0,    0,    0, 2170,
192    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
193    0,    0,    0, 3951,  492, 5769, 5769,    0,    0,    0,
194    0,    0, 2934,    0,    0,    0,    0,    0,    0,  145,
195    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
196    0,    0, 5769,    0,    0,    0, 2221,    0,    0, 2982,
197 3222, 3267, 3312,    0, 1781, 1854, 1217, 1271, 1325, 1400,
198 2619, 1726,    0,  -23,    0,    0,    0,    0,    0,    0,
199    0,    0,    0, 3381,    0,    0,    0,    0,    0,    0,
200    0,    0,    0,    0,    0,    0,  102,  102,    0,    0,
201    0,  171,    0,    0,    0,  174,    0,    0,    0,    0,
202    0,  242,    0,    0,    0,    0,    0,  763,    0,    0,
203    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
204    0,    0,    0,    0,    0,    0, 4508,  248,  297,    0,
205    0,  128,  350,  358,    0,    0, 5769, 4604,    0,    0,
206    0,    0,    0,    0, 3657, 3705, 3760, 3866, 2561,    0,
207    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
208    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
209    0,    0,  130,    0,    0,    0,   95,    0, 4695, 4779,
210 4870, 4962, 5053,    0,    0,    0,    0,    0,    0,    0,
211    0,  398,  431,    0,    0,    0,    0,    0,    0,    0,
212    0,    0,    0,    0,    0,    0, 5769,    0,    0,    0,
213    0,  149,    0,    0,    0, 5137,    0, 5853,    0,    0,
214    0,  149,    0,    0,    0,    0,    0,    0,    0,    0,
215    0,    0,    0,    0,    0,
216};
217short yygindex[] = {                                      0,
218  -30,    0,    0, 4250,  -24,    0,    0,    0,    0,  397,
219   24, 4208,  -17,  -15,  -13, 7990, 4404,    0,  -82,    0,
220    0,    0, -173, -192,    0, -277,  -28,
221};
222#define YYTABLESIZE 8273
223short yytable[] = {                                     129,
224   85,  284,   55,  285,   96,  318,    6,  312,   79,   94,
225   92,   81,   93,   81,   95,  232,  257,   16,   75,  155,
226   76,   81,   77,   81,  311,   81,  280,   81,   96,  264,
227   41,   84,   49,   94,  317,   99,   50,   85,   95,   97,
228   85,   85,   85,   85,   85,   85,   17,   85,  100,  101,
229   81,  266,   18,   69,   24,   62,   51,   98,   85,   85,
230   85,   97,   85,   85,   52,   33,   34,   60,  202,  240,
231  155,  157,  241,  100,  101,  125,  126,   53,  258,   98,
232   19,  158,  159,   54,   57,   97,   58,   59,   61,   62,
233   63,   64,   62,   85,   85,   78,   62,   62,   62,   62,
234   62,   80,   62,   98,  120,  114,   98,  137,  196,  264,
235   37,  130,   85,   62,   62,   62,  131,   62,   62,  264,
236  132,  144,  152,   85,   85,  308,  309,  310,  151,  157,
237  161,  162,  165,  173,  172,   75,  167,   76,  207,   77,
238  214,  226,   91,  220,  221,  322,  323,   37,   62,   62,
239  325,   37,   37,   37,   37,   37,  222,   37,  198,  199,
240   91,   83,  250,   91,  125,  126,  287,   62,   37,   37,
241   37,  267,   37,   37,  239,  288,  291,  304,   62,   62,
242  305,  316,  315,  321,    1,   91,  116,   91,  117,  116,
243  260,    0,    0,    0,    0,    0,    0,    0,    0,    0,
244    0,    0,  268,   37,   37,    0,    0,    3,    4,    5,
245    0,  124,    0,    0,  127,    0,  229,  230,  231,  256,
246    0,    0,   37,   65,    0,   91,   28,    0,   29,  124,
247    0,    0,  127,   37,   37,   24,    0,    0,   82,   83,
248   82,   83,   91,  261,  262,    0,   33,   34,   82,   83,
249   82,   83,   82,   83,   82,   83,    0,   85,   85,   85,
250   85,   85,   85,   85,   85,   85,   16,   16,   85,   85,
251   85,    0,  307,   17,   17,   85,    0,   82,   83,   18,
252   18,   85,  117,   85,   85,   85,   85,   85,  119,   85,
253   85,   85,   85,   85,   85,   85,   85,   85,    0,   85,
254  117,   85,   85,   85,   85,   85,  119,   19,   19,    0,
255  303,    0,   62,   62,   62,   62,   62,   62,   62,   62,
256   62,    0,    0,   62,   62,   62,    0,  313,    0,    0,
257   62,    0,    0,    0,    0,    0,   62,  121,   62,   62,
258   62,   62,   62,    0,   62,   62,   62,   62,   62,   62,
259   62,   62,   62,    0,   62,  121,   62,   62,   62,   62,
260   62,   91,   91,   91,    0,    0,   91,   37,   37,   37,
261   37,   37,   37,   37,   37,   37,    0,    0,   37,   37,
262   37,   57,    0,    0,    0,   37,    0,    0,    0,    0,
263  125,   37,    0,   37,   37,   37,   37,   37,  128,   37,
264   37,   37,   37,   37,   37,   37,   37,   37,  125,   37,
265    0,   37,   37,   37,   37,   37,  128,    0,   57,    0,
266    0,   57,   57,   57,   57,   57,   57,    0,   57,    0,
267  124,  124,  124,  127,  127,  127,   88,    0,  118,   57,
268   57,    0,    0,   57,   57,    0,   12,   13,  110,  111,
269    0,   14,   15,   16,    0,    0,  118,  121,  122,    0,
270    0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
271   22,  120,    0,   88,   57,   57,   88,   88,   88,   88,
272   88,   88,   27,   88,    0,   31,   32,   33,   34,  120,
273    0,   90,    0,   57,   88,   88,   88,    0,   88,   88,
274    0,  117,  117,  117,   57,   57,    0,  119,  119,  119,
275    0,    0,    0,    0,    0,    0,  171,    0,    0,    0,
276    0,    0,    0,    0,    0,    0,    0,    0,   90,   88,
277   88,   90,   90,   90,   90,    0,   90,    0,   90,    0,
278    0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
279   90,   90,    0,   90,   90,    0,  121,  121,  121,   88,
280   88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
281    0,    0,    0,  218,  219,    0,    0,    0,    0,    0,
282    0,    0,    0,    0,   90,   90,    0,    0,    0,    0,
283    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
284    0,    0,    0,   90,    0,    0,    0,    0,    0,  125,
285  125,  125,    0,    0,   90,   90,    0,  128,  128,  128,
286    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
287    0,    0,    0,    0,    0,    0,    0,    0,   57,   57,
288   57,   57,   57,   57,   57,   57,   57,    0,    0,   57,
289   57,   57,    0,    0,    0,    0,   57,  118,  118,  118,
290    0,    0,   57,  289,   57,   57,   57,   57,   57,    0,
291   57,   57,   57,   57,   57,   57,   57,   57,   57,    0,
292   57,    0,   57,   57,   57,   57,   57,    0,    0,    0,
293  120,  120,  120,   88,   88,   88,   88,   88,   88,   88,
294   88,   88,    0,    0,   88,   88,   88,    0,    0,    0,
295    0,   88,    0,    0,    0,    0,    0,   88,    0,   88,
296   88,   88,   88,   88,    0,   88,   88,   88,   88,   88,
297   88,   88,   88,   88,    0,   88,    0,   88,   88,   88,
298   88,   88,    0,    0,    0,    0,    0,    0,   90,   90,
299   90,   90,   90,   90,   90,   90,   90,    0,    0,   90,
300   90,   90,   23,    0,    0,    0,   90,    0,    0,    0,
301    0,    0,   90,    0,   90,   90,   90,   90,   90,    0,
302   90,   90,   90,   90,   90,   90,   90,   90,   90,    0,
303   90,    0,   90,   90,   90,   90,   90,    0,    0,   23,
304    0,    0,   23,   23,   23,   23,   23,   23,    0,   23,
305    0,    0,    0,    0,    0,    0,    0,   54,    0,    0,
306   23,   23,   23,    0,   23,   23,    0,    0,    0,    0,
307    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
308    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
309    0,    0,    0,    0,   54,   23,   23,   54,   54,   54,
310   54,   54,   54,    0,   54,    0,    0,    0,    0,    0,
311    0,   39,    0,    0,   23,   54,   54,   54,    0,   54,
312   54,    0,    0,    0,    0,   23,   23,    0,    0,    0,
313    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
314    0,    0,    0,    0,    0,    0,    0,    0,   39,    0,
315   54,   39,   39,   39,   39,   39,   39,    0,   39,    0,
316    0,    0,    0,    0,    0,    0,    0,    0,    0,   39,
317   39,   39,    0,   39,   39,    0,    0,    0,    0,    0,
318   54,   54,    0,    0,    0,   53,    0,    0,    0,    0,
319    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
320    0,    0,    0,    0,   39,   39,    0,    0,    0,    0,
321    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
322    0,    0,   53,   39,    0,   53,   53,   53,   53,   53,
323   53,    0,   53,    0,   39,   39,    0,    0,    0,    0,
324    0,    0,    0,   53,   53,   53,    0,   53,   53,    0,
325    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
326   23,   23,   23,   23,   23,   23,   23,   23,    0,    0,
327   23,   23,   23,    0,    0,    0,    0,   23,   53,    0,
328    0,    0,    0,   23,    0,   23,   23,   23,   23,   23,
329    0,   23,   23,    0,   23,   23,   23,   23,   23,   23,
330    0,   23,    0,   23,   23,   23,   23,   23,   53,   53,
331    0,    0,    0,    0,   54,   54,   54,   54,   54,   54,
332   54,   54,   54,    0,    0,   54,   54,   54,    0,    0,
333    0,    0,   54,    0,    0,    0,    0,    0,   54,    0,
334   54,   54,   54,   54,   54,    0,   54,   54,   54,   54,
335   54,   54,   54,   54,   54,    0,   54,    0,   54,   54,
336   54,   54,   54,    0,    0,    0,    0,    0,   39,   39,
337   39,   39,   39,   39,   39,   39,   39,    0,    0,   39,
338   39,   39,    0,    0,    0,    0,   39,    0,    0,    0,
339    0,    0,   39,    0,   39,   39,   39,   39,   39,    0,
340   39,   39,   39,   39,   39,   39,   39,   39,   39,    0,
341   39,    0,   39,    0,    0,   39,   39,    0,    0,    0,
342    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
343    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
344    0,    0,   53,   53,   53,   53,   53,   53,   53,   53,
345   53,    0,    0,   53,   53,   53,   44,    0,    0,    0,
346   53,    0,    0,    0,    0,    0,   53,    0,   53,   53,
347   53,   53,   53,    0,   53,   53,   53,   53,   53,   53,
348   53,   53,   53,    0,   53,    0,   53,   53,   53,   53,
349   53,    0,    0,   44,    0,    0,   44,   44,   44,   44,
350   44,   44,    0,   44,    0,    0,    0,    0,    0,    0,
351   45,    0,    0,    0,   44,   44,   44,    0,   44,   44,
352    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
353    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
354    0,    0,    0,    0,    0,    0,    0,   45,    0,   44,
355   45,   45,   45,   45,   45,   45,    0,   45,    0,    0,
356    0,    0,    0,    0,   46,    0,    0,    0,   45,   45,
357   45,    0,   45,   45,    0,    0,    0,    0,    0,   44,
358   44,    0,    0,    0,    0,    0,    0,    0,    0,    0,
359    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
360    0,   46,    0,   45,   46,   46,   46,   46,   46,   46,
361    0,   46,    0,    0,    0,    0,    0,    0,    0,    0,
362    0,    0,   46,   46,   46,    0,   46,   46,    0,    0,
363    0,    0,    0,   45,   45,    0,    0,    0,    0,   47,
364    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
365    0,    0,    0,    0,    0,    0,    0,   46,    0,    0,
366    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367    0,    0,    0,    0,    0,    0,   47,    0,    0,   47,
368   47,   47,   47,   47,   47,    0,   47,   46,   46,    0,
369    0,    0,    0,    0,    0,    0,    0,   47,   47,   47,
370    0,   47,   47,    0,    0,    0,    0,    0,    0,    0,
371    0,    0,    0,   44,   44,   44,   44,   44,   44,   44,
372   44,   44,    0,    0,   44,   44,   44,    0,    0,    0,
373    0,   44,   47,    0,    0,    0,    0,   44,    0,   44,
374   44,   44,   44,   44,    0,   44,   44,   44,   44,   44,
375   44,   44,   44,   44,    0,   44,    0,   44,   44,   44,
376   44,   44,   47,   47,    0,    0,    0,   45,   45,   45,
377   45,   45,   45,   45,   45,   45,    0,    0,   45,   45,
378   45,    0,    0,    0,    0,   45,    0,    0,    0,    0,
379    0,   45,    0,   45,   45,   45,   45,   45,    0,   45,
380   45,   45,   45,   45,   45,   45,   45,   45,    0,   45,
381    0,   45,   45,   45,   45,   45,    0,    0,    0,    0,
382    0,   46,   46,   46,   46,   46,   46,   46,   46,   46,
383    0,    0,   46,   46,   46,    0,    0,    0,    0,   46,
384    0,    0,    0,    0,    0,   46,    0,   46,   46,   46,
385   46,   46,    0,   46,   46,   46,   46,   46,   46,   46,
386   46,   46,    0,   46,    0,   46,   46,   46,   46,   46,
387    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
388    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
389    0,    0,    0,    0,    0,    0,   47,   47,   47,   47,
390   47,   47,   47,   47,   47,    0,    0,   47,   47,   47,
391   39,    0,    0,    0,   47,    0,    0,    0,    0,    0,
392   47,    0,   47,   47,   47,   47,   47,    0,   47,   47,
393   47,   47,   47,   47,   47,   47,   47,    0,   47,    0,
394   47,   47,   47,   47,   47,    0,    0,   39,    0,    0,
395   39,   39,   39,   39,   39,   39,    0,   39,    0,    0,
396    0,    0,    0,    0,    0,   36,    0,    0,   39,   39,
397   39,    0,   39,   39,    0,    0,    0,    0,    0,    0,
398    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
399    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400    0,    0,   36,   39,   39,   36,   36,   36,   36,   36,
401   36,    0,   36,    0,    0,    0,    0,    0,    0,    0,
402   42,    0,   39,   36,   36,   36,    0,   36,    0,    0,
403    0,    0,    0,   39,   39,    0,    0,    0,    0,    0,
404    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
405    0,    0,    0,    0,    0,    0,    0,    0,   36,   36,
406   42,   42,    0,   42,   42,   42,    0,    0,    0,    0,
407    0,    0,    0,    0,    0,    0,    0,   36,   42,   42,
408   42,    0,   42,   42,    0,    0,    0,    0,   36,   36,
409    0,    0,    0,   43,    0,    0,    0,    0,    0,    0,
410    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411    0,    0,    0,   42,    0,    0,    0,    0,    0,    0,
412    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
413    0,    0,    0,   43,   43,    0,   43,   43,   43,    0,
414    0,    0,    0,   42,   42,    0,    0,    0,    0,    0,
415    0,   43,   43,   43,    0,   43,   43,    0,    0,    0,
416    0,    0,    0,    0,    0,    0,    0,   39,   39,   39,
417   39,   39,   39,   39,   39,   39,    0,    0,   39,   39,
418   39,    0,    0,    0,    0,   39,   43,    0,    0,    0,
419    0,   39,    0,   39,   39,   39,   39,   39,    0,    0,
420   39,   39,   39,   39,   39,   39,   39,   39,    0,   39,
421    0,   39,    0,    0,   39,   39,   43,   43,    0,    0,
422    0,    0,   36,   36,   36,   36,   36,   36,   36,   36,
423   36,    0,    0,   36,   36,   36,    0,    0,    0,    0,
424   36,    0,    0,    0,    0,    0,   36,    0,   36,   36,
425   36,   36,   36,    0,   36,    0,    0,   36,   36,   36,
426   36,   36,   36,    0,   36,    0,   36,   36,   36,   36,
427   36,    0,    0,    0,    0,    0,    0,   42,   42,   42,
428   42,   42,   42,   42,   42,   42,    0,   14,   42,   42,
429   42,    0,    0,    0,    0,   42,    0,    0,    0,    0,
430    0,   42,    0,   42,   42,   42,   42,   42,    0,   42,
431   42,   42,   42,   42,   42,   42,   42,   42,    0,   42,
432    0,   42,   42,   42,   42,   42,    0,   14,    0,    0,
433   14,    0,   14,    0,    0,    0,    0,    0,    0,    0,
434    0,    0,    0,    0,    0,    0,   14,    0,    0,    0,
435   43,   43,   43,   43,   43,   43,   43,   43,   43,   33,
436    0,   43,   43,   43,    0,    0,    0,    0,   43,    0,
437    0,    0,    0,    0,   43,    0,   43,   43,   43,   43,
438   43,    0,   43,   43,   43,   43,   43,   43,   43,   43,
439   43,    0,   43,    0,   43,   43,   43,   43,   43,   33,
440   33,    0,    0,   33,    0,    0,    0,    0,    0,   34,
441   14,    0,    0,    0,    0,    0,    0,   33,   33,   33,
442    0,   33,   33,    0,    0,    0,    0,    0,    0,    0,
443    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444    0,    0,    0,    0,    0,    0,    0,    0,    0,   34,
445   34,    0,   33,   34,    0,    0,    0,    0,    0,    0,
446   15,    0,    0,    0,    0,    0,    0,   34,   34,   34,
447    0,   34,   34,    0,    0,    0,    0,    0,    0,    0,
448    0,    0,   33,   33,    0,    0,    0,    0,    0,    0,
449    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450   15,    0,   34,   15,    0,   15,    0,    0,    0,    0,
451    0,    0,    0,    0,    0,    0,    0,    0,   12,   15,
452    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
453    0,    0,   34,   34,    0,    0,    0,    0,    0,    0,
454    0,    0,    0,    0,   14,   14,   14,   14,   14,   14,
455   14,   14,    0,    0,    0,   14,   14,   14,   12,    0,
456    0,   12,    0,   12,    0,    0,    0,    7,   14,    0,
457   14,   14,   14,   14,   14,    0,    0,   12,    0,   14,
458   14,   14,   14,   15,    0,    0,   14,    0,   14,   14,
459   14,   14,   14,    0,    0,    0,    0,    0,    0,    0,
460    0,    0,    0,    0,    0,    0,    0,    7,    0,    0,
461    7,    0,    7,    0,    0,    0,   33,   33,   33,   33,
462   33,   33,   33,   33,   33,    0,    7,   33,   33,   33,
463    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464   33,   12,   33,   33,   33,   33,   33,    0,   33,   33,
465   33,   33,   33,   33,   33,   33,   33,    0,   33,    0,
466   33,   33,   33,   33,   33,    0,   34,   34,   34,   34,
467   34,   34,   34,   34,   34,    0,    0,   34,   34,   34,
468    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
469   34,    6,   34,   34,   34,   34,   34,    0,   34,   34,
470   34,   34,   34,   34,   34,   34,   34,    0,   34,    0,
471   34,   34,   34,   34,   34,    0,    0,   15,   15,   15,
472   15,   15,   15,   15,   15,    0,    0,    0,   15,   15,
473   15,    6,    0,    0,    6,    0,    6,    0,    0,    0,
474    0,   15,    0,   15,   15,   15,   15,   15,    0,    0,
475    5,    0,   15,   15,   15,   15,    0,    0,    0,   15,
476    0,   15,   15,   15,   15,   15,    0,    0,    0,    0,
477    0,    0,    0,    0,    0,   12,   12,   12,   12,    0,
478   12,   12,   12,    0,    0,    0,   12,   12,   12,    0,
479    5,    0,    0,    5,    0,    5,    0,    0,    0,   12,
480    2,   12,   12,   12,   12,   12,    0,    0,    0,    0,
481   12,   12,   12,   12,    6,    0,    0,   12,    0,   12,
482   12,   12,   12,   12,    7,    7,    7,    7,    7,    7,
483    7,    7,    0,    0,    0,    7,    7,    7,    0,    0,
484    2,    0,    0,    2,    0,    2,    0,    0,    7,    0,
485    7,    7,    7,    7,    7,    0,    0,    0,   60,    7,
486    7,    7,    7,    0,    0,    0,    7,    0,    7,    7,
487    7,    7,    7,    5,    0,    0,    0,    0,    0,    0,
488    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
489    0,    0,    0,    0,    0,   60,    0,    0,   60,   60,
490   60,   60,   60,   60,    0,   60,    0,    0,    0,    0,
491    0,    0,    0,    0,    0,    0,   60,   60,   60,    0,
492   60,   60,    0,    2,    0,    0,    0,    0,    0,    0,
493    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
494    0,    0,    0,    0,    0,    0,    0,    0,    6,    6,
495    6,   60,   60,    0,    6,    6,    0,    0,    0,    6,
496    6,    6,    0,    0,    0,    0,    0,    0,    0,    0,
497   60,    0,    6,    0,    6,    6,    6,    6,    6,    0,
498    0,   60,   60,    6,    6,    6,    6,    0,    0,    0,
499    6,    0,    6,    6,    6,    6,    6,    0,    0,    0,
500    0,    0,    0,    0,    0,    0,    0,    5,    5,    5,
501    0,    0,    0,    5,    5,    0,    0,    0,    5,    5,
502    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
503    0,    5,    0,    5,    5,    5,    5,    5,    0,    0,
504    0,    0,    5,    5,    5,    5,    0,    0,    0,    5,
505    0,    5,    5,    5,    5,    5,    0,    2,    2,    2,
506    0,    0,    0,    2,    2,    0,    0,    0,    2,    2,
507    2,    0,    0,    0,    0,   36,    0,    0,   28,    0,
508   29,    2,    0,    2,    2,    2,    2,    2,    0,    0,
509    0,    0,    2,    2,    2,    2,    0,    0,    0,    2,
510    0,    2,    2,    2,    2,    2,    0,    0,    0,    0,
511    0,    0,    0,    0,    0,   60,   60,   60,   60,   60,
512   60,   60,   60,   60,    0,   56,   60,   60,   60,    0,
513    0,    0,    0,   60,    0,    0,    0,    0,    0,   60,
514    0,   60,   60,   60,   60,   60,    0,   60,   60,   60,
515   60,    0,   60,   60,   60,   60,    0,   60,   35,   60,
516   60,   60,   56,    0,    0,   56,   56,   56,   56,   56,
517   56,    0,   56,   58,    0,    0,    0,    0,    0,    0,
518    0,    0,    0,   56,   56,    0,    0,   56,   56,    0,
519    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
521   58,    0,    0,    0,   58,   58,    0,   58,   56,   56,
522   58,   29,    0,    0,    0,    0,    0,    0,    0,    0,
523    0,   58,   58,   58,    0,   58,   58,   56,    0,    0,
524    0,    0,    0,    0,    0,    0,    0,    0,   56,   56,
525    0,    0,    0,    0,    0,    0,    0,    0,   29,    0,
526    0,    0,   29,   29,    0,   29,   58,   58,   29,    0,
527    0,    0,    0,    0,    0,    0,    0,    0,    0,   29,
528   29,   29,    0,   29,   29,   58,    0,    0,    0,    0,
529    0,    0,    9,   10,   11,    0,   58,   58,   12,   13,
530    0,    0,    0,   14,   15,   16,    0,    0,    0,    0,
531    0,    0,    0,    0,   29,   29,   17,    0,   18,   19,
532   20,   21,   22,    0,    0,    0,    0,   23,   24,   25,
533   26,    0,    0,   29,   27,    0,   30,   31,   32,   33,
534   34,    0,    0,    0,   29,   29,    0,    0,    0,    0,
535    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
536    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
537    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
538    0,    0,   56,   56,   56,   56,   56,   56,   56,   56,
539   56,    0,    0,   56,   56,   56,    0,    0,    0,    0,
540   56,    0,    0,    0,    0,    0,   56,    0,   56,   56,
541   56,   56,   56,    0,   56,   56,   56,   56,    0,   56,
542   56,   56,   56,    0,   56,    0,   56,   56,   56,    0,
543   58,   58,   58,   58,   58,   58,    0,    0,   58,    0,
544    0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
545    0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
546    0,   25,   58,   58,   58,   58,   58,   58,   58,   58,
547   58,    0,    0,    0,   58,    0,    0,    0,   29,   29,
548   29,   29,   29,   29,    0,    0,   29,    0,    0,    0,
549    0,    0,    0,    0,    0,    0,   29,    0,   25,    0,
550    0,    0,   25,   25,    0,   25,   27,   29,   25,    0,
551   29,   29,   29,   29,   29,   29,   29,   29,   29,   25,
552   25,   25,   29,   25,   25,    0,    0,    0,    0,    0,
553    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554    0,    0,    0,   27,    0,    0,    0,   27,   27,    0,
555   27,   26,    0,   27,   25,   25,    0,    0,    0,    0,
556    0,    0,    0,    0,   27,   27,   27,    0,   27,   27,
557    0,    0,    0,   25,    0,    0,    0,    0,    0,    0,
558    0,    0,    0,    0,   25,   25,    0,    0,   26,    0,
559    0,    0,   26,   26,    0,   26,    0,    0,   26,   27,
560   27,    0,    0,    0,    0,    0,    0,    0,    0,   26,
561   26,   26,    0,   26,   26,    0,    0,    0,   27,    0,
562   59,    0,    0,    0,    0,    0,    0,    0,    0,   27,
563   27,    0,    0,    0,    0,    0,    0,    0,    0,    0,
564    0,    0,    0,    0,   26,   26,    0,    0,    0,    0,
565    0,    0,    0,    0,    0,    0,    0,   59,    0,    0,
566    0,   59,   59,   26,   59,    0,    0,   59,    0,    0,
567    0,    0,    0,    0,   26,   26,    0,    0,   59,   59,
568   59,    0,   59,   59,    0,    0,    0,    0,    0,    0,
569    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
570    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
571    0,    0,    0,   59,   59,    0,    0,    0,   25,   25,
572   25,   25,   25,   25,    0,    0,   25,    0,    0,    0,
573    0,    0,   59,    0,    0,    0,   25,    0,    0,    0,
574    0,    0,    0,   59,   59,    0,    0,   25,    0,    0,
575   25,   25,   25,   25,   25,   25,   25,   25,   25,    0,
576    0,    0,   25,   27,   27,   27,   27,   27,   27,    0,
577    0,   27,    0,    0,    0,    0,    0,    0,    0,    0,
578    0,   27,    0,    0,    0,    0,    0,    0,    0,    0,
579    0,    0,   27,    0,    0,   27,   27,   27,   27,   27,
580   27,   27,   27,   27,    0,    0,    0,   27,   26,   26,
581   26,   26,   26,   26,    0,    0,   26,    0,    0,    0,
582    0,    0,    0,    0,    0,    0,   26,    0,    0,   91,
583    0,    0,    0,    0,    0,    0,    0,   26,    0,    0,
584   26,   26,   26,   26,   26,   26,   26,   26,   26,    0,
585    0,    0,   26,    0,    0,    0,    0,    0,    0,    0,
586    0,    0,    0,    0,    0,    0,   91,    0,    0,    0,
587   91,   91,    0,   91,    0,    0,   91,   59,   59,   59,
588   59,   59,   59,    0,    0,   59,    0,   91,   91,   91,
589    0,   91,   91,    0,    0,   59,   20,    0,    0,    0,
590    0,    0,    0,    0,    0,    0,   59,    0,    0,   59,
591   59,   59,   59,   59,   59,   59,   59,   59,    0,    0,
592    0,   59,   91,   91,    0,    0,    0,    0,    0,    0,
593    0,    0,    0,   20,    0,    0,    0,   20,   20,    0,
594   20,   91,    0,   20,   35,    0,    0,    0,    0,    0,
595    0,    0,   91,   91,   20,   20,   20,    0,   20,    0,
596    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
597    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
598    0,   35,    0,    0,    0,   35,   35,    0,   35,   20,
599   20,   35,    0,    0,    0,    0,    0,    0,    0,   92,
600    0,    0,   35,   35,   35,    0,   35,    0,   20,    0,
601    0,    0,    0,    0,    0,    0,    0,    0,    0,   20,
602   20,    0,    0,    0,    0,    0,    0,    0,    0,    0,
603    0,    0,    0,    0,    0,    0,   92,   35,   35,    0,
604   92,   92,    0,   92,    0,    0,   92,    0,    0,    0,
605    0,    0,    0,    0,    0,    0,   35,   92,   92,   92,
606    0,   92,    0,    0,    0,    0,    0,   35,   35,    0,
607    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
608    0,    0,    0,    0,    0,    0,   91,   91,   91,   91,
609   91,   91,   92,   92,   91,   65,    0,    0,   28,    0,
610   29,    0,    0,    0,   91,   93,    0,    0,    0,    0,
611    0,   92,    0,    0,    0,   91,    0,    0,   91,   91,
612   91,    0,   92,   92,    0,   91,   91,    0,    0,    0,
613   91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
614    0,    0,   93,    0,    0,    0,   93,   93,    0,   93,
615    0,    0,   93,   20,   20,   20,   20,   20,   20,    0,
616    0,   20,    0,   93,   93,   93,    0,   93,    0,   36,
617    0,   20,   28,    0,   29,    0,    0,    0,    0,    0,
618    0,    0,   20,    0,    0,   20,   20,   20,  302,    0,
619   89,    0,   20,   20,    0,    0,    0,   20,   93,   93,
620    0,   35,   35,   35,   35,   35,   35,    0,    0,   35,
621    0,    0,    0,    0,    0,    0,    0,   93,    0,   35,
622    0,    0,    0,    0,    0,    0,    0,   89,   93,   93,
623   35,   89,   89,   35,   35,   35,    0,   89,    0,    0,
624   35,   35,    0,    0,    0,   35,    0,    0,   89,   89,
625   89,    0,   89,    0,    0,    0,   92,   92,   92,   92,
626   92,   92,   16,    0,   92,    0,    0,    0,    0,    0,
627    0,    0,    0,    0,   92,    0,    0,    0,    0,    0,
628    0,    0,    0,   89,   89,   92,    0,    0,   92,   92,
629   92,    0,    0,    0,    0,   92,   92,    0,    0,   16,
630   92,    0,   89,   16,   16,    0,   16,    0,    0,   16,
631    0,    0,    0,   89,   89,    0,  125,  126,   12,   13,
632   16,   16,    0,   14,   15,   16,    0,    0,    0,    0,
633    0,    0,    0,    0,    0,    0,   17,    0,   18,   19,
634   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
635   26,    0,    0,    0,   27,   16,   16,   31,   32,   33,
636   34,    0,   93,   93,   93,   93,   93,   93,    0,    0,
637   93,    0,    0,    0,   16,    0,    0,    0,    0,    0,
638   93,    0,    0,    0,    0,   16,   16,    0,   11,    0,
639    0,   93,   12,   13,   93,   93,   93,   14,   15,   16,
640    0,   93,   93,    0,    0,    0,   93,    0,    0,    0,
641   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
642    0,   23,   24,   25,   26,    0,    0,    0,   27,    0,
643   30,   31,   32,   33,   34,    0,    0,    0,    0,    0,
644    0,    0,    0,    0,    0,    0,    0,   89,   89,   89,
645   89,   89,   89,    0,   42,   89,    0,    0,    0,    0,
646    0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
647    0,    0,    0,    0,    0,    0,   89,   42,    0,   89,
648   89,   89,    0,   42,    0,    0,   89,   89,    0,    0,
649    0,   89,    0,    0,    0,  104,    0,    0,  109,  104,
650  104,  112,  113,    0,  116,  118,  119,    0,  104,  104,
651  123,  124,   42,    0,    0,    0,    0,    0,    0,   16,
652   16,   16,   16,   16,   16,    0,    0,   16,  134,    0,
653    0,   42,  138,  140,  141,  142,  143,   16,  106,  107,
654    0,    0,    0,    0,    0,    0,   42,    0,   16,  154,
655    0,   16,   16,   16,    0,    0,    0,    0,    0,    0,
656    0,  164,    0,   16,    0,    0,    0,  104,    0,  133,
657    0,  135,  136,    0,    0,    0,    0,    0,    0,    0,
658    0,    0,   42,   42,    0,   65,    0,    0,   28,    0,
659   29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660  154,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661    0,    0,  208,  209,  210,  211,  213,    0,    0,    0,
662    0,  215,  216,    0,  104,  104,    0,    0,    0,  223,
663    0,    0,    0,  224,    0,    0,    0,    0,    0,    0,
664    0,    0,    0,    0,  235,  203,  204,  236,    0,    0,
665  237,  238,    0,    0,    0,    0,    0,    0,    0,    0,
666   56,    0,    0,    0,    0,  217,    0,   42,   42,  263,
667    0,   67,   67,    0,   70,   71,  225,   67,  227,    0,
668  228,    0,    0,    0,    0,   67,    0,    0,  275,    0,
669  276,    0,  277,    0,  278,    0,  279,    0,    0,    0,
670    0,  281,    0,  252,    0,    0,  282,  283,   65,    0,
671    0,   28,    0,   29,  104,    0,    0,    0,  269,  270,
672  271,  272,  273,    0,    0,    0,    0,  191,    0,    0,
673    0,    0,    0,    0,   42,   67,   67,   67,   67,   67,
674   67,    0,    0,    0,    0,    0,    0,   67,    0,    0,
675    0,   42,   67,    0,    0,   67,   67,    0,    0,   67,
676    0,   67,   67,    0,    0,    0,   67,   67,    0,  297,
677    0,    0,    0,  299,  300,  301,    0,   67,    0,  306,
678    0,   67,    0,   67,   67,   67,   67,  113,    0,    0,
679  113,  189,  113,    0,  201,    0,    0,   67,    0,    0,
680    0,    0,    0,    0,  319,  320,  113,   67,   12,   13,
681  324,  177,  178,   14,   15,   16,    0,    0,    0,    0,
682    0,  182,  183,  184,  185,  186,   17,    0,   18,   19,
683   20,    0,   22,  188,    0,   67,    0,   23,   24,   25,
684   26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
685   34,   67,   67,   67,   67,    0,   67,    0,   67,   67,
686    0,    0,    0,    0,    0,    0,   67,   67,    0,    0,
687  113,    0,  113,    0,    0,    0,    0,    0,   67,   67,
688   67,   67,    0,  112,    0,    0,  112,    0,  112,    0,
689    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690    0,    0,  112,    0,    0,    0,   67,    0,    0,    0,
691    0,    0,    0,    0,    0,    0,    0,    0,   67,   67,
692   67,   67,   67,    0,   67,   67,   67,    0,  176,  125,
693  126,   12,   13,    0,  177,  178,   14,   15,   16,  179,
694    0,  180,  181,    0,  182,  183,  184,  185,  186,   17,
695  187,   18,   19,   20,    0,   22,  188,    0,    0,    0,
696   23,   24,   25,   26,    0,    0,  112,   27,  112,    0,
697   31,   32,   33,   34,  106,    0,    0,  106,    0,  106,
698    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
699    0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
700    0,    0,    0,    0,    0,    0,    0,  113,    0,    0,
701  113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
702  113,  113,    0,  113,  113,  113,  113,  113,  113,  113,
703  113,  113,  113,    0,  113,  113,    0,    0,    0,  113,
704  113,  113,  113,    0,    0,    0,  113,    0,    0,  113,
705  113,  113,  113,    0,    0,    0,    0,  106,  107,  106,
706    0,  107,    0,  107,    0,    0,    0,    0,    0,    0,
707    0,    0,    0,    0,    0,    0,    0,  107,    0,    0,
708    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710    0,    0,    0,  112,    0,    0,  112,  112,    0,  112,
711  112,  112,  112,  112,  112,  112,  112,  112,    0,  112,
712  112,  112,  112,  112,  112,  112,  112,  112,  112,    0,
713  112,  112,    0,    0,    0,  112,  112,  112,  112,    0,
714    0,  107,  112,  107,    0,  112,  112,  112,  112,  108,
715    0,    0,  108,    0,  108,    0,    0,    0,    0,    0,
716    0,    0,    0,    0,    0,    0,    0,    0,  108,    0,
717    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719    0,    0,    0,    0,  106,    0,    0,  106,  106,    0,
720  106,  106,  106,  106,  106,  106,  106,  106,  106,    0,
721  106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
722    0,  106,  106,    0,    0,    0,  106,  106,  106,  106,
723    0,    0,  108,  106,  108,    0,  106,  106,  106,  106,
724    0,  105,    0,    0,  105,    0,  105,    0,    0,    0,
725    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726  105,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727    0,    0,    0,    0,    0,    0,    0,    0,  107,    0,
728    0,  107,  107,    0,  107,  107,  107,  107,  107,  107,
729  107,  107,  107,    0,  107,  107,  107,  107,  107,  107,
730  107,  107,  107,  107,    0,  107,  107,    0,    0,    0,
731  107,  107,  107,  107,    0,    0,    0,  107,    0,    0,
732  107,  107,  107,  107,  105,    0,  105,    0,    0,    0,
733    0,    0,  111,    0,    0,  111,    0,  111,    0,    0,
734    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735    0,  111,    0,    0,    0,    0,    0,    0,    0,    0,
736    0,    0,    0,    0,    0,    0,    0,    0,    0,  108,
737    0,    0,  108,  108,    0,  108,  108,  108,  108,  108,
738  108,  108,  108,  108,    0,  108,  108,  108,  108,  108,
739  108,  108,  108,  108,  108,    0,  108,  108,    0,    0,
740    0,  108,  108,  108,  108,    0,    0,    0,  108,    0,
741    0,  108,  108,  108,  108,  111,  140,  111,    0,  140,
742    0,  140,    0,    0,    0,    0,    0,    0,    0,    0,
743    0,    0,    0,    0,    0,  140,    0,    0,    0,    0,
744    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
745    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746    0,  105,    0,    0,  105,  105,    0,  105,  105,  105,
747  105,  105,  105,  105,  105,  105,    0,  105,  105,  105,
748  105,  105,  105,  105,  105,  105,  105,    0,  105,  105,
749    0,    0,    0,  105,  105,  105,  105,    0,    0,  140,
750  105,  140,    0,  105,  105,  105,  105,   65,    0,    0,
751   28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
752    0,    0,    0,    0,    0,    0,  191,    0,    0,    0,
753    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755    0,    0,  111,    0,    0,  111,  111,    0,  111,  111,
756  111,  111,  111,  111,  111,  111,  111,    0,  111,  111,
757  111,  111,  111,  111,  111,  111,  111,  111,    0,  111,
758  111,    0,    0,    0,  111,  111,  111,  111,    0,    0,
759  189,  111,  190,    0,  111,  111,  111,  111,    0,   65,
760    0,    0,   28,    0,   29,    0,    0,    0,    0,    0,
761    0,    0,    0,    0,    0,    0,    0,    0,  191,    0,
762    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763    0,    0,    0,    0,    0,    0,  140,    0,    0,  140,
764  140,    0,  140,  140,  140,  140,  140,  140,  140,  140,
765  140,    0,  140,  140,  140,  140,  140,  140,  140,  140,
766  140,  140,    0,  140,  140,    0,    0,    0,  140,  140,
767  140,  140,    0,    0,    0,  140,    0,    0,  140,  140,
768  140,  140,  189,    0,  205,    0,    0,    0,    0,    0,
769   65,    0,    0,   28,    0,   29,    0,    0,    0,    0,
770    0,    0,    0,    0,    0,    0,    0,    0,    0,  191,
771    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772    0,    0,    0,    0,    0,    0,    0,  176,    0,    0,
773   12,   13,    0,  177,  178,   14,   15,   16,  179,    0,
774  180,  181,    0,  182,  183,  184,  185,  186,   17,  187,
775   18,   19,   20,    0,   22,  188,    0,    0,    0,   23,
776   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
777   32,   33,   34,  189,   65,  206,    0,   28,    0,   29,
778    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779    0,    0,    0,  191,    0,    0,    0,    0,    0,    0,
780    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781    0,    0,    0,    0,    0,    0,    0,    0,    0,  176,
782    0,    0,   12,   13,    0,  177,  178,   14,   15,   16,
783  179,    0,  180,  181,    0,  182,  183,  184,  185,  186,
784   17,  187,   18,   19,   20,    0,   22,  188,    0,    0,
785    0,   23,   24,   25,   26,    0,    0,  189,   27,  234,
786    0,   31,   32,   33,   34,   65,    0,    0,   28,    0,
787   29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788    0,    0,    0,    0,  191,    0,    0,    0,    0,    0,
789    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791  176,    0,    0,   12,   13,    0,  177,  178,   14,   15,
792   16,  179,    0,  180,  181,    0,  182,  183,  184,  185,
793  186,   17,  187,   18,   19,   20,    0,   22,  188,    0,
794    0,    0,   23,   24,   25,   26,    0,    0,  189,   27,
795  290,    0,   31,   32,   33,   34,    0,   65,    0,    0,
796   28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
797    0,    0,    0,    0,    0,    0,  191,    0,    0,    0,
798    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799    0,    0,    0,    0,  176,    0,    0,   12,   13,    0,
800  177,  178,   14,   15,   16,  179,    0,  180,  181,    0,
801  182,  183,  184,  185,  186,   17,  187,   18,   19,   20,
802    0,   22,  188,    0,    0,    0,   23,   24,   25,   26,
803    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
804  189,    0,  314,    0,    0,    0,    0,    0,  110,    0,
805    0,  110,    0,  110,    0,    0,    0,    0,    0,    0,
806    0,    0,    0,    0,    0,    0,    0,  110,    0,    0,
807    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
808    0,    0,    0,    0,    0,  176,    0,    0,   12,   13,
809    0,  177,  178,   14,   15,   16,  179,    0,  180,  181,
810    0,  182,  183,  184,  185,  186,   17,  187,   18,   19,
811   20,    0,   22,  188,    0,    0,    0,   23,   24,   25,
812   26,    0,    0,    0,   27,    0,    0,   31,   32,   33,
813   34,  110,  133,  110,    0,  133,    0,  133,    0,    0,
814    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
815    0,  133,    0,    0,    0,    0,    0,    0,    0,    0,
816    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
817    0,    0,    0,    0,    0,    0,    0,  176,    0,    0,
818   12,   13,    0,  177,  178,   14,   15,   16,  179,    0,
819  180,  181,    0,  182,  183,  184,  185,  186,   17,  187,
820   18,   19,   20,   65,   22,  188,   28,  156,   29,   23,
821   24,   25,   26,    0,    0,  133,   27,  133,    0,   31,
822   32,   33,   34,   88,    0,   89,   85,    0,    0,    0,
823    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
824    0,    0,    0,    0,    0,    0,    0,   65,    0,    0,
825   28,    0,   29,    0,    0,    0,    0,    0,    0,    0,
826    0,    0,    0,    0,    0,    0,    0,   88,  110,   89,
827   85,  110,  110,    0,  110,  110,  110,  110,  110,  110,
828    0,  110,  110,    0,  110,  110,  110,  110,  110,  110,
829  110,  110,  110,  110,   36,  110,  110,   28,    0,   29,
830  110,  110,  110,  110,    0,    0,    0,  110,    0,    0,
831  110,  110,  110,  110,    0,    0,    0,    0,    0,    0,
832    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
833    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
834    0,   65,  242,    0,   28,  243,   29,    0,    0,    0,
835    0,    0,  133,    0,    0,  133,  133,    0,  133,  133,
836  133,  133,  133,  133,   85,  133,  133,    0,  133,  133,
837  133,  133,  133,  133,  133,  133,  133,  133,    0,  133,
838  133,    0,    0,    0,  133,  133,  133,  133,    0,    0,
839    0,  133,    0,    0,  133,  133,  133,  133,   65,  244,
840    0,   28,  245,   29,    0,    0,    0,    0,    0,    0,
841    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
842    0,   85,    0,    0,    0,    0,   12,   13,    0,    0,
843    0,   14,   15,   16,    0,    0,    0,    0,    0,    0,
844    0,    0,    0,    0,   17,    0,   18,   19,   20,    0,
845   22,    0,    0,    0,    0,   23,   24,   25,   26,   86,
846   87,    0,   27,    0,    0,   31,   32,   33,   34,    0,
847   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
848    0,    0,   65,  246,    0,   28,  247,   29,   17,    0,
849   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
850   24,   25,   26,   86,   87,   85,   27,    0,    0,   31,
851   32,   33,   34,   11,    0,  125,  126,   12,   13,    0,
852    0,    0,   14,   15,   16,    0,    0,   65,  248,    0,
853   28,  249,   29,    0,    0,   17,    0,   18,   19,   20,
854    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
855   85,    0,    0,   27,    0,   30,   31,   32,   33,   34,
856    0,    0,    0,    0,   12,   13,    0,    0,    0,   14,
857   15,   16,    0,    0,   65,  253,    0,   28,  254,   29,
858    0,    0,   17,    0,   18,   19,   20,    0,   22,    0,
859    0,    0,    0,   23,   24,   25,   26,   85,    0,    0,
860   27,    0,    0,   31,   32,   33,   34,    0,    0,    0,
861    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
862    0,   12,   13,    0,    0,    0,   14,   15,   16,   36,
863    0,    0,   28,    0,   29,    0,    0,    0,    0,   17,
864    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
865   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
866   31,   32,   33,   34,    0,    0,    0,    0,    0,    0,
867    0,    0,    0,    0,    0,    0,  153,    0,    0,   28,
868    0,   29,    0,    0,    0,    0,    0,    0,    0,    0,
869    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
870    0,    0,    0,    0,    0,   12,   13,    0,    0,    0,
871   14,   15,   16,    0,    0,    0,    0,    0,    0,    0,
872    0,    0,    0,   17,    0,   18,   19,   20,    0,   22,
873    0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
874    0,   27,    0,    0,   31,   32,   33,   34,    0,    0,
875   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
876   65,    0,    0,   28,  156,   29,    0,    0,   17,    0,
877   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
878   24,   25,   26,   85,    0,    0,   27,    0,    0,   31,
879   32,   33,   34,    0,    0,    0,    0,   12,   13,    0,
880    0,    0,   14,   15,   16,    0,    0,   65,  160,    0,
881   28,    0,   29,    0,    0,   17,    0,   18,   19,   20,
882    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
883   85,    0,    0,   27,    0,    0,   31,   32,   33,   34,
884    0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
885    0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
886    0,    0,   65,    0,    0,   28,  163,   29,    0,    0,
887   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
888    0,   23,   24,   25,   26,   85,    0,    0,   27,    0,
889   30,   31,   32,   33,   34,   11,    0,    0,    0,   12,
890   13,    0,    0,    0,   14,   15,   16,    0,    0,   65,
891    0,    0,   28,  166,   29,    0,    0,   17,    0,   18,
892   19,   20,    0,   22,    0,    0,    0,    0,   23,   24,
893   25,   26,   85,    0,    0,   27,    0,   30,   31,   32,
894   33,   34,    0,    0,    0,    0,    0,    0,    0,    0,
895    0,    0,   65,    0,    0,   28,  168,   29,    0,    0,
896    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
897    0,    0,    0,    0,    0,   85,    0,    0,    0,    0,
898    0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
899   16,    0,    0,    0,    0,   65,    0,    0,   28,  169,
900   29,   17,    0,   18,   19,   20,    0,   22,    0,    0,
901    0,    0,   23,   24,   25,   26,    0,    0,   85,   27,
902    0,    0,   31,   32,   33,   34,    0,    0,    0,    0,
903   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
904   65,    0,    0,   28,  174,   29,    0,    0,   17,    0,
905   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
906   24,   25,   26,   85,    0,    0,   27,    0,    0,   31,
907   32,   33,   34,    0,    0,    0,    0,    0,    0,    0,
908    0,    0,    0,    0,    0,   12,   13,    0,    0,    0,
909   14,   15,   16,    0,    0,   65,    0,    0,   28,  175,
910   29,    0,    0,   17,    0,   18,   19,   20,    0,   22,
911    0,    0,    0,    0,   23,   24,   25,   26,   85,    0,
912    0,   27,    0,    0,   31,   32,   33,   34,    0,    0,
913    0,    0,   12,   13,    0,    0,    0,   14,   15,   16,
914    0,    0,   65,    0,    0,   28,    0,   29,    0,    0,
915   17,    0,   18,   19,   20,    0,   22,    0,    0,    0,
916  197,   23,   24,   25,   26,   85,    0,    0,   27,    0,
917    0,   31,   32,   33,   34,   12,   13,    0,    0,    0,
918   14,   15,   16,    0,    0,   65,    0,    0,   28,    0,
919   29,    0,    0,   17,    0,   18,   19,   20,    0,   22,
920    0,    0,    0,  200,   23,   24,   25,   26,   85,    0,
921    0,   27,    0,    0,   31,   32,   33,   34,   12,   13,
922    0,    0,    0,   14,   15,   16,    0,    0,   65,  251,
923    0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
924   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
925   26,   85,    0,    0,   27,    0,    0,   31,   32,   33,
926   34,    0,    0,   12,   13,    0,    0,    0,   14,   15,
927   16,    0,    0,   65,  255,    0,   28,    0,   29,    0,
928    0,   17,    0,   18,   19,   20,    0,   22,    0,    0,
929    0,    0,   23,   24,   25,   26,   85,    0,    0,   27,
930    0,    0,   31,   32,   33,   34,    0,    0,    0,    0,
931    0,    0,    0,    0,    0,    0,    0,    0,   12,   13,
932    0,    0,    0,   14,   15,   16,    0,    0,   65,  286,
933    0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
934   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
935   26,   85,    0,    0,   27,    0,    0,   31,   32,   33,
936   34,    0,    0,    0,    0,   12,   13,    0,    0,    0,
937   14,   15,   16,    0,    0,   65,  292,    0,   28,    0,
938   29,    0,    0,   17,    0,   18,   19,   20,    0,   22,
939    0,    0,    0,    0,   23,   24,   25,   26,   85,    0,
940    0,   27,    0,    0,   31,   32,   33,   34,   12,   13,
941    0,    0,    0,   14,   15,   16,    0,    0,   65,  293,
942    0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
943   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
944   26,   85,    0,    0,   27,    0,    0,   31,   32,   33,
945   34,   12,   13,    0,    0,    0,   14,   15,   16,    0,
946    0,   65,  294,    0,   28,    0,   29,    0,    0,   17,
947    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
948   23,   24,   25,   26,   85,    0,    0,   27,    0,    0,
949   31,   32,   33,   34,    0,    0,   12,   13,    0,    0,
950    0,   14,   15,   16,    0,    0,   65,  295,    0,   28,
951    0,   29,    0,    0,   17,    0,   18,   19,   20,    0,
952   22,    0,    0,    0,    0,   23,   24,   25,   26,   85,
953    0,    0,   27,    0,    0,   31,   32,   33,   34,    0,
954    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
955    0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
956    0,   65,  296,    0,   28,    0,   29,    0,    0,   17,
957    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
958   23,   24,   25,   26,   85,    0,    0,   27,    0,    0,
959   31,   32,   33,   34,    0,    0,    0,    0,   12,   13,
960    0,    0,    0,   14,   15,   16,    0,    0,   65,  298,
961    0,   28,    0,   29,    0,    0,   17,    0,   18,   19,
962   20,    0,   22,    0,    0,    0,    0,   23,   24,   25,
963   26,   85,    0,    0,   27,    0,    0,   31,   32,   33,
964   34,   12,   13,    0,    0,    0,   14,   15,   16,    0,
965    0,   65,  108,    0,   28,    0,   29,    0,    0,   17,
966    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
967   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
968   31,   32,   33,   34,   12,   13,    0,    0,    0,   14,
969   15,   16,    0,    0,    0,    0,    0,    0,   65,    0,
970    0,   28,   17,   29,   18,   19,   20,    0,   22,    0,
971    0,    0,    0,   23,   24,   25,   26,    0,    0,    0,
972   27,    0,    0,   31,   32,   33,   34,    0,    0,   12,
973   13,    0,    0,    0,   14,   15,   16,    0,    0,    0,
974    0,    0,    0,    0,    0,    0,    0,   17,    0,   18,
975   19,   20,   65,   22,    0,   28,    0,   29,   23,   24,
976   25,   26,    0,    0,    0,   27,    0,    0,   31,   32,
977   33,   34,    0,    0,    0,    0,    0,    0,    0,    0,
978    0,    0,    0,    0,   12,   13,    0,    0,    0,   14,
979   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
980    0,    0,   17,    0,   18,   19,   20,   65,   22,    0,
981   28,    0,   29,   23,   24,   25,   26,    0,    0,    0,
982   27,    0,    0,   31,   32,   33,   34,    0,    0,    0,
983    0,   12,   13,    0,    0,    0,   14,   15,   16,    0,
984    0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
985    0,   18,   19,   20,   65,   22,    0,   28,    0,   29,
986   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
987   31,   32,   33,   34,   12,   13,    0,    0,    0,   14,
988   15,   16,    0,    0,    0,    0,    0,    0,    0,    0,
989    0,    0,   17,    0,   18,   19,   20,   65,   22,    0,
990   28,    0,   29,   23,   24,   25,   26,    0,    0,    0,
991   27,    0,    0,   31,   32,   33,   34,  115,    0,    0,
992   85,   12,   13,    0,    0,    0,   14,   15,   16,    0,
993    0,    0,    0,    0,    0,    0,    0,    0,    0,   17,
994    0,   18,   19,   20,   65,   22,    0,   28,    0,   29,
995   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
996   31,   32,   33,   34,    0,    0,    0,    0,    0,    0,
997    0,  117,    0,    0,    0,   12,   13,    0,    0,    0,
998   14,   15,   16,    0,    0,    0,    0,   65,    0,    0,
999   28,    0,   29,   17,    0,   18,   19,   20,    0,   22,
1000    0,    0,    0,    0,   23,   24,   25,   26,    0,    0,
1001    0,   27,    0,    0,   31,   32,   33,   34,    0,    0,
1002    0,    0,    0,    0,    0,    0,  139,    0,    0,    0,
1003   12,   13,    0,    0,    0,   14,   15,   16,  102,    0,
1004    0,   28,    0,   29,    0,    0,    0,    0,   17,    0,
1005   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1006   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
1007   32,   33,   34,  212,    0,    0,    0,   12,   13,    0,
1008    0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
1009    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
1010    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
1011    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
1012   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
1013    0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
1014   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1015   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
1016   32,   33,   34,  274,    0,    0,    0,   12,   13,    0,
1017    0,    0,   14,   15,   16,    0,    0,    0,    0,    0,
1018    0,    0,    0,    0,    0,   17,    0,   18,   19,   20,
1019    0,   22,    0,    0,    0,    0,   23,   24,   25,   26,
1020    0,    0,    0,   27,    0,    0,   31,   32,   33,   34,
1021   12,   13,    0,    0,    0,   14,   15,   16,    0,    0,
1022    0,    0,    0,    0,    0,    0,    0,    0,   17,    0,
1023   18,   19,   20,    0,   22,    0,    0,    0,    0,   23,
1024   24,   25,   26,    0,    0,    0,   27,    0,    0,   31,
1025   32,   33,   34,    0,    0,    0,    0,   66,   68,    0,
1026    0,   12,   13,   72,    0,    0,   14,   15,   16,    0,
1027    0,   90,    0,    0,    0,    0,    0,    0,    0,   17,
1028    0,   18,   19,   20,    0,   22,    0,    0,    0,    0,
1029   23,   24,   25,   26,    0,    0,    0,   27,    0,    0,
1030   31,   32,   33,   34,    0,    0,    0,    0,    0,    0,
1031    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1032    0,  145,  146,  147,  148,  149,  150,    0,    0,    0,
1033    0,    0,    0,   90,    0,    0,    0,    0,   90,    0,
1034    0,   90,   90,    0,    0,   90,    0,   90,   90,    0,
1035    0,    0,   90,   90,    0,    0,    0,    0,    0,    0,
1036    0,    0,    0,   90,    0,    0,    0,   90,    0,   90,
1037   90,   90,   90,    0,    0,    0,    0,    0,    0,    0,
1038    0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
1039    0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
1040    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1042    0,   90,    0,    0,    0,    0,    0,    0,    0,    0,
1043    0,    0,    0,    0,    0,    0,    0,   90,   90,   90,
1044   90,    0,   90,    0,   90,   90,    0,    0,    0,    0,
1045    0,    0,   90,   90,    0,    0,    0,    0,    0,    0,
1046    0,    0,    0,    0,   90,   90,   90,   90,    0,    0,
1047    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1048    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1049    0,    0,   90,    0,    0,    0,    0,    0,    0,    0,
1050    0,    0,    0,    0,   90,   90,   90,   90,   90,    0,
1051   90,   90,   90,
1052};
1053short yycheck[] = {                                      41,
1054    0,   41,   60,   41,   37,   41,   59,   59,   39,   42,
1055   43,   63,   45,   63,   47,   59,   62,   41,   36,  102,
1056   36,   63,   36,   63,  302,   63,  123,   63,   37,  222,
1057    7,   44,  123,   42,  312,  289,  123,   37,   47,   94,
1058   40,   41,   42,   43,   44,   45,   63,   47,  302,  303,
1059   63,  225,   63,   30,  293,    0,   40,  112,   58,   59,
1060   60,   94,   62,   63,   40,  304,  305,  287,   41,   41,
1061  153,   44,   44,  302,  303,  261,  262,   40,  124,  112,
1062   63,  106,  107,   40,   40,   94,   40,   40,   40,   91,
1063   40,   40,   37,   93,   94,  261,   41,   42,   43,   44,
1064   45,  123,   47,  112,   40,   60,  112,   84,  133,  302,
1065    0,   41,  112,   58,   59,   60,   41,   62,   63,  312,
1066   41,  293,   99,  123,  124,  299,  300,  301,  281,   44,
1067   41,   41,   44,   93,   41,  153,   44,  153,  293,  153,
1068   41,  293,   41,   40,   40,  319,  320,   37,   93,   94,
1069  324,   41,   42,   43,   44,   45,   40,   47,  135,  136,
1070   59,  291,   41,   62,  261,  262,   59,  112,   58,   59,
1071   60,   91,   62,   63,  205,  273,   41,   40,  123,  124,
1072   93,   41,  272,   41,    0,   41,   59,   93,   59,   41,
1073  219,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1074   -1,   -1,  227,   93,   94,   -1,   -1,  260,  261,  262,
1075   -1,   41,   -1,   -1,   41,   -1,  260,  261,  262,  265,
1076   -1,   -1,  112,   40,   -1,  124,   43,   -1,   45,   59,
1077   -1,   -1,   59,  123,  124,  293,   -1,   -1,  290,  291,
1078  290,  291,  275,  220,  221,   -1,  304,  305,  290,  291,
1079  290,  291,  290,  291,  290,  291,   -1,  257,  258,  259,
1080  260,  261,  262,  263,  264,  265,  290,  291,  268,  269,
1081  270,   -1,  297,  290,  291,  275,   -1,  290,  291,  290,
1082  291,  281,   41,  283,  284,  285,  286,  287,   41,  289,
1083  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1084   59,  301,  302,  303,  304,  305,   59,  290,  291,   -1,
1085  287,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1086  265,   -1,   -1,  268,  269,  270,   -1,  304,   -1,   -1,
1087  275,   -1,   -1,   -1,   -1,   -1,  281,   41,  283,  284,
1088  285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
1089  295,  296,  297,   -1,  299,   59,  301,  302,  303,  304,
1090  305,  260,  261,  262,   -1,   -1,  265,  257,  258,  259,
1091  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1092  270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
1093   41,  281,   -1,  283,  284,  285,  286,  287,   41,  289,
1094  290,  291,  292,  293,  294,  295,  296,  297,   59,  299,
1095   -1,  301,  302,  303,  304,  305,   59,   -1,   37,   -1,
1096   -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1097  260,  261,  262,  260,  261,  262,    0,   -1,   41,   58,
1098   59,   -1,   -1,   62,   63,   -1,  263,  264,   52,   53,
1099   -1,  268,  269,  270,   -1,   -1,   59,   61,   62,   -1,
1100   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1101  287,   41,   -1,   37,   93,   94,   40,   41,   42,   43,
1102   44,   45,  299,   47,   -1,  302,  303,  304,  305,   59,
1103   -1,    0,   -1,  112,   58,   59,   60,   -1,   62,   63,
1104   -1,  260,  261,  262,  123,  124,   -1,  260,  261,  262,
1105   -1,   -1,   -1,   -1,   -1,   -1,  120,   -1,   -1,   -1,
1106   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   93,
1107   94,   40,   41,   42,   43,   -1,   45,   -1,   47,   -1,
1108   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1109   59,   60,   -1,   62,   63,   -1,  260,  261,  262,  123,
1110  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1111   -1,   -1,   -1,  177,  178,   -1,   -1,   -1,   -1,   -1,
1112   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1113   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1114   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,  260,
1115  261,  262,   -1,   -1,  123,  124,   -1,  260,  261,  262,
1116   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1117   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1118  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1119  269,  270,   -1,   -1,   -1,   -1,  275,  260,  261,  262,
1120   -1,   -1,  281,  267,  283,  284,  285,  286,  287,   -1,
1121  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1122  299,   -1,  301,  302,  303,  304,  305,   -1,   -1,   -1,
1123  260,  261,  262,  257,  258,  259,  260,  261,  262,  263,
1124  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1125   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1126  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1127  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1128  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1129  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1130  269,  270,    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1131   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1132  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1133  299,   -1,  301,  302,  303,  304,  305,   -1,   -1,   37,
1134   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1135   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1136   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,
1137   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1138   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1139   -1,   -1,   -1,   -1,   37,   93,   94,   40,   41,   42,
1140   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1141   -1,    0,   -1,   -1,  112,   58,   59,   60,   -1,   62,
1142   63,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,
1143   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1144   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
1145   93,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1146   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1147   59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1148  123,  124,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
1149   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1150   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1151   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1152   -1,   -1,   37,  112,   -1,   40,   41,   42,   43,   44,
1153   45,   -1,   47,   -1,  123,  124,   -1,   -1,   -1,   -1,
1154   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
1155   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1156  258,  259,  260,  261,  262,  263,  264,  265,   -1,   -1,
1157  268,  269,  270,   -1,   -1,   -1,   -1,  275,   93,   -1,
1158   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,
1159   -1,  289,  290,   -1,  292,  293,  294,  295,  296,  297,
1160   -1,  299,   -1,  301,  302,  303,  304,  305,  123,  124,
1161   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1162  263,  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,
1163   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1164  283,  284,  285,  286,  287,   -1,  289,  290,  291,  292,
1165  293,  294,  295,  296,  297,   -1,  299,   -1,  301,  302,
1166  303,  304,  305,   -1,   -1,   -1,   -1,   -1,  257,  258,
1167  259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1168  269,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1169   -1,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1170  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1171  299,   -1,  301,   -1,   -1,  304,  305,   -1,   -1,   -1,
1172   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1173   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1174   -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1175  265,   -1,   -1,  268,  269,  270,    0,   -1,   -1,   -1,
1176  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1177  285,  286,  287,   -1,  289,  290,  291,  292,  293,  294,
1178  295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
1179  305,   -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,
1180   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
1181    0,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1182   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1183   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1184   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,
1185   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
1186   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   58,   59,
1187   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,  123,
1188  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1189   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1190   -1,   37,   -1,   93,   40,   41,   42,   43,   44,   45,
1191   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1192   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,
1193   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,    0,
1194   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1195   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
1196   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1197   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,
1198   41,   42,   43,   44,   45,   -1,   47,  123,  124,   -1,
1199   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
1200   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1201   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,  263,
1202  264,  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1203   -1,  275,   93,   -1,   -1,   -1,   -1,  281,   -1,  283,
1204  284,  285,  286,  287,   -1,  289,  290,  291,  292,  293,
1205  294,  295,  296,  297,   -1,  299,   -1,  301,  302,  303,
1206  304,  305,  123,  124,   -1,   -1,   -1,  257,  258,  259,
1207  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1208  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
1209   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
1210  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1211   -1,  301,  302,  303,  304,  305,   -1,   -1,   -1,   -1,
1212   -1,  257,  258,  259,  260,  261,  262,  263,  264,  265,
1213   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,  275,
1214   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1215  286,  287,   -1,  289,  290,  291,  292,  293,  294,  295,
1216  296,  297,   -1,  299,   -1,  301,  302,  303,  304,  305,
1217   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1218   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1219   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1220  261,  262,  263,  264,  265,   -1,   -1,  268,  269,  270,
1221    0,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,
1222  281,   -1,  283,  284,  285,  286,  287,   -1,  289,  290,
1223  291,  292,  293,  294,  295,  296,  297,   -1,  299,   -1,
1224  301,  302,  303,  304,  305,   -1,   -1,   37,   -1,   -1,
1225   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
1226   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,
1227   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1228   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1229   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1230   -1,   -1,   37,   93,   94,   40,   41,   42,   43,   44,
1231   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1232    0,   -1,  112,   58,   59,   60,   -1,   62,   -1,   -1,
1233   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
1234   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1235   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,
1236   40,   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
1237   -1,   -1,   -1,   -1,   -1,   -1,   -1,  112,   58,   59,
1238   60,   -1,   62,   63,   -1,   -1,   -1,   -1,  123,  124,
1239   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
1240   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1241   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
1242   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1243   -1,   -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,
1244   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,
1245   -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
1246   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1247  260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1248  270,   -1,   -1,   -1,   -1,  275,   93,   -1,   -1,   -1,
1249   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1250  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1251   -1,  301,   -1,   -1,  304,  305,  123,  124,   -1,   -1,
1252   -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1253  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1254  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1255  285,  286,  287,   -1,  289,   -1,   -1,  292,  293,  294,
1256  295,  296,  297,   -1,  299,   -1,  301,  302,  303,  304,
1257  305,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1258  260,  261,  262,  263,  264,  265,   -1,    0,  268,  269,
1259  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
1260   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,  289,
1261  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1262   -1,  301,  302,  303,  304,  305,   -1,   40,   -1,   -1,
1263   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1264   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
1265  257,  258,  259,  260,  261,  262,  263,  264,  265,    0,
1266   -1,  268,  269,  270,   -1,   -1,   -1,   -1,  275,   -1,
1267   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,  286,
1268  287,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
1269  297,   -1,  299,   -1,  301,  302,  303,  304,  305,   40,
1270   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,    0,
1271  123,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
1272   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1273   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1274   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1275   41,   -1,   93,   44,   -1,   -1,   -1,   -1,   -1,   -1,
1276    0,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
1277   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1278   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
1279   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1280   40,   -1,   93,   43,   -1,   45,   -1,   -1,   -1,   -1,
1281   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   59,
1282   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1283   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
1284   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1285  263,  264,   -1,   -1,   -1,  268,  269,  270,   40,   -1,
1286   -1,   43,   -1,   45,   -1,   -1,   -1,    0,  281,   -1,
1287  283,  284,  285,  286,  287,   -1,   -1,   59,   -1,  292,
1288  293,  294,  295,  123,   -1,   -1,  299,   -1,  301,  302,
1289  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1290   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1291   43,   -1,   45,   -1,   -1,   -1,  257,  258,  259,  260,
1292  261,  262,  263,  264,  265,   -1,   59,  268,  269,  270,
1293   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1294  281,  123,  283,  284,  285,  286,  287,   -1,  289,  290,
1295  291,  292,  293,  294,  295,  296,  297,   -1,  299,   -1,
1296  301,  302,  303,  304,  305,   -1,  257,  258,  259,  260,
1297  261,  262,  263,  264,  265,   -1,   -1,  268,  269,  270,
1298   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1299  281,    0,  283,  284,  285,  286,  287,   -1,  289,  290,
1300  291,  292,  293,  294,  295,  296,  297,   -1,  299,   -1,
1301  301,  302,  303,  304,  305,   -1,   -1,  257,  258,  259,
1302  260,  261,  262,  263,  264,   -1,   -1,   -1,  268,  269,
1303  270,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1304   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1305    0,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1306   -1,  301,  302,  303,  304,  305,   -1,   -1,   -1,   -1,
1307   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
1308  262,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1309   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,  281,
1310    0,  283,  284,  285,  286,  287,   -1,   -1,   -1,   -1,
1311  292,  293,  294,  295,  123,   -1,   -1,  299,   -1,  301,
1312  302,  303,  304,  305,  257,  258,  259,  260,  261,  262,
1313  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1314   40,   -1,   -1,   43,   -1,   45,   -1,   -1,  281,   -1,
1315  283,  284,  285,  286,  287,   -1,   -1,   -1,    0,  292,
1316  293,  294,  295,   -1,   -1,   -1,  299,   -1,  301,  302,
1317  303,  304,  305,  123,   -1,   -1,   -1,   -1,   -1,   -1,
1318   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1319   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   40,   41,
1320   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
1321   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,   -1,
1322   62,   63,   -1,  123,   -1,   -1,   -1,   -1,   -1,   -1,
1323   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1324   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1325  259,   93,   94,   -1,  263,  264,   -1,   -1,   -1,  268,
1326  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1327  112,   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,
1328   -1,  123,  124,  292,  293,  294,  295,   -1,   -1,   -1,
1329  299,   -1,  301,  302,  303,  304,  305,   -1,   -1,   -1,
1330   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1331   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1332  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1333   -1,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1334   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1335   -1,  301,  302,  303,  304,  305,   -1,  257,  258,  259,
1336   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1337  270,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1338   45,  281,   -1,  283,  284,  285,  286,  287,   -1,   -1,
1339   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,
1340   -1,  301,  302,  303,  304,  305,   -1,   -1,   -1,   -1,
1341   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
1342  262,  263,  264,  265,   -1,    0,  268,  269,  270,   -1,
1343   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,  281,
1344   -1,  283,  284,  285,  286,  287,   -1,  289,  290,  291,
1345  292,   -1,  294,  295,  296,  297,   -1,  299,  123,  301,
1346  302,  303,   37,   -1,   -1,   40,   41,   42,   43,   44,
1347   45,   -1,   47,    0,   -1,   -1,   -1,   -1,   -1,   -1,
1348   -1,   -1,   -1,   58,   59,   -1,   -1,   62,   63,   -1,
1349   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1350   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1351   37,   -1,   -1,   -1,   41,   42,   -1,   44,   93,   94,
1352   47,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1353   -1,   58,   59,   60,   -1,   62,   63,  112,   -1,   -1,
1354   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,
1355   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
1356   -1,   -1,   41,   42,   -1,   44,   93,   94,   47,   -1,
1357   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1358   59,   60,   -1,   62,   63,  112,   -1,   -1,   -1,   -1,
1359   -1,   -1,  257,  258,  259,   -1,  123,  124,  263,  264,
1360   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1361   -1,   -1,   -1,   -1,   93,   94,  281,   -1,  283,  284,
1362  285,  286,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1363  295,   -1,   -1,  112,  299,   -1,  301,  302,  303,  304,
1364  305,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1365   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1366   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1367   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1368   -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1369  265,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1370  275,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1371  285,  286,  287,   -1,  289,  290,  291,  292,   -1,  294,
1372  295,  296,  297,   -1,  299,   -1,  301,  302,  303,   -1,
1373  257,  258,  259,  260,  261,  262,   -1,   -1,  265,   -1,
1374   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,
1375   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,
1376   -1,    0,  289,  290,  291,  292,  293,  294,  295,  296,
1377  297,   -1,   -1,   -1,  301,   -1,   -1,   -1,  257,  258,
1378  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1379   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   37,   -1,
1380   -1,   -1,   41,   42,   -1,   44,    0,  286,   47,   -1,
1381  289,  290,  291,  292,  293,  294,  295,  296,  297,   58,
1382   59,   60,  301,   62,   63,   -1,   -1,   -1,   -1,   -1,
1383   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1384   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
1385   44,    0,   -1,   47,   93,   94,   -1,   -1,   -1,   -1,
1386   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1387   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,   -1,
1388   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   37,   -1,
1389   -1,   -1,   41,   42,   -1,   44,   -1,   -1,   47,   93,
1390   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1391   59,   60,   -1,   62,   63,   -1,   -1,   -1,  112,   -1,
1392    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1393  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1394   -1,   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,
1395   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,
1396   -1,   41,   42,  112,   44,   -1,   -1,   47,   -1,   -1,
1397   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   58,   59,
1398   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1399   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1400   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1401   -1,   -1,   -1,   93,   94,   -1,   -1,   -1,  257,  258,
1402  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1403   -1,   -1,  112,   -1,   -1,   -1,  275,   -1,   -1,   -1,
1404   -1,   -1,   -1,  123,  124,   -1,   -1,  286,   -1,   -1,
1405  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1406   -1,   -1,  301,  257,  258,  259,  260,  261,  262,   -1,
1407   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1408   -1,  275,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1409   -1,   -1,  286,   -1,   -1,  289,  290,  291,  292,  293,
1410  294,  295,  296,  297,   -1,   -1,   -1,  301,  257,  258,
1411  259,  260,  261,  262,   -1,   -1,  265,   -1,   -1,   -1,
1412   -1,   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,    0,
1413   -1,   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,
1414  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1415   -1,   -1,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1416   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,
1417   41,   42,   -1,   44,   -1,   -1,   47,  257,  258,  259,
1418  260,  261,  262,   -1,   -1,  265,   -1,   58,   59,   60,
1419   -1,   62,   63,   -1,   -1,  275,    0,   -1,   -1,   -1,
1420   -1,   -1,   -1,   -1,   -1,   -1,  286,   -1,   -1,  289,
1421  290,  291,  292,  293,  294,  295,  296,  297,   -1,   -1,
1422   -1,  301,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
1423   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
1424   44,  112,   -1,   47,    0,   -1,   -1,   -1,   -1,   -1,
1425   -1,   -1,  123,  124,   58,   59,   60,   -1,   62,   -1,
1426   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1427   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1428   -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,   93,
1429   94,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
1430   -1,   -1,   58,   59,   60,   -1,   62,   -1,  112,   -1,
1431   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1432  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1433   -1,   -1,   -1,   -1,   -1,   -1,   37,   93,   94,   -1,
1434   41,   42,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,
1435   -1,   -1,   -1,   -1,   -1,   -1,  112,   58,   59,   60,
1436   -1,   62,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,
1437   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1438   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1439  261,  262,   93,   94,  265,   40,   -1,   -1,   43,   -1,
1440   45,   -1,   -1,   -1,  275,    0,   -1,   -1,   -1,   -1,
1441   -1,  112,   -1,   -1,   -1,  286,   -1,   -1,  289,  290,
1442  291,   -1,  123,  124,   -1,  296,  297,   -1,   -1,   -1,
1443  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1444   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,   44,
1445   -1,   -1,   47,  257,  258,  259,  260,  261,  262,   -1,
1446   -1,  265,   -1,   58,   59,   60,   -1,   62,   -1,   40,
1447   -1,  275,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1448   -1,   -1,  286,   -1,   -1,  289,  290,  291,   59,   -1,
1449    0,   -1,  296,  297,   -1,   -1,   -1,  301,   93,   94,
1450   -1,  257,  258,  259,  260,  261,  262,   -1,   -1,  265,
1451   -1,   -1,   -1,   -1,   -1,   -1,   -1,  112,   -1,  275,
1452   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,  123,  124,
1453  286,   41,   42,  289,  290,  291,   -1,   47,   -1,   -1,
1454  296,  297,   -1,   -1,   -1,  301,   -1,   -1,   58,   59,
1455   60,   -1,   62,   -1,   -1,   -1,  257,  258,  259,  260,
1456  261,  262,    0,   -1,  265,   -1,   -1,   -1,   -1,   -1,
1457   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,   -1,
1458   -1,   -1,   -1,   93,   94,  286,   -1,   -1,  289,  290,
1459  291,   -1,   -1,   -1,   -1,  296,  297,   -1,   -1,   37,
1460  301,   -1,  112,   41,   42,   -1,   44,   -1,   -1,   47,
1461   -1,   -1,   -1,  123,  124,   -1,  261,  262,  263,  264,
1462   58,   59,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,
1463   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,
1464  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1465  295,   -1,   -1,   -1,  299,   93,   94,  302,  303,  304,
1466  305,   -1,  257,  258,  259,  260,  261,  262,   -1,   -1,
1467  265,   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,   -1,
1468  275,   -1,   -1,   -1,   -1,  123,  124,   -1,  259,   -1,
1469   -1,  286,  263,  264,  289,  290,  291,  268,  269,  270,
1470   -1,  296,  297,   -1,   -1,   -1,  301,   -1,   -1,   -1,
1471  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1472   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1473  301,  302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,
1474   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1475  260,  261,  262,   -1,    7,  265,   -1,   -1,   -1,   -1,
1476   -1,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,   -1,
1477   -1,   -1,   -1,   -1,   -1,   -1,  286,   30,   -1,  289,
1478  290,  291,   -1,   36,   -1,   -1,  296,  297,   -1,   -1,
1479   -1,  301,   -1,   -1,   -1,   48,   -1,   -1,   51,   52,
1480   53,   54,   55,   -1,   57,   58,   59,   -1,   61,   62,
1481   63,   64,   65,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1482  258,  259,  260,  261,  262,   -1,   -1,  265,   81,   -1,
1483   -1,   84,   85,   86,   87,   88,   89,  275,   49,   50,
1484   -1,   -1,   -1,   -1,   -1,   -1,   99,   -1,  286,  102,
1485   -1,  289,  290,  291,   -1,   -1,   -1,   -1,   -1,   -1,
1486   -1,  114,   -1,  301,   -1,   -1,   -1,  120,   -1,   80,
1487   -1,   82,   83,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1488   -1,   -1,  135,  136,   -1,   40,   -1,   -1,   43,   -1,
1489   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1490  153,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1491   -1,   -1,  165,  166,  167,  168,  169,   -1,   -1,   -1,
1492   -1,  174,  175,   -1,  177,  178,   -1,   -1,   -1,  182,
1493   -1,   -1,   -1,  186,   -1,   -1,   -1,   -1,   -1,   -1,
1494   -1,   -1,   -1,   -1,  197,  156,  157,  200,   -1,   -1,
1495  203,  204,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1496   17,   -1,   -1,   -1,   -1,  176,   -1,  220,  221,  222,
1497   -1,   28,   29,   -1,   31,   32,  187,   34,  189,   -1,
1498  191,   -1,   -1,   -1,   -1,   42,   -1,   -1,  241,   -1,
1499  243,   -1,  245,   -1,  247,   -1,  249,   -1,   -1,   -1,
1500   -1,  254,   -1,  214,   -1,   -1,  259,  260,   40,   -1,
1501   -1,   43,   -1,   45,  267,   -1,   -1,   -1,  229,  230,
1502  231,  232,  233,   -1,   -1,   -1,   -1,   59,   -1,   -1,
1503   -1,   -1,   -1,   -1,  287,   92,   93,   94,   95,   96,
1504   97,   -1,   -1,   -1,   -1,   -1,   -1,  104,   -1,   -1,
1505   -1,  304,  109,   -1,   -1,  112,  113,   -1,   -1,  116,
1506   -1,  118,  119,   -1,   -1,   -1,  123,  124,   -1,  280,
1507   -1,   -1,   -1,  284,  285,  286,   -1,  134,   -1,  290,
1508   -1,  138,   -1,  140,  141,  142,  143,   40,   -1,   -1,
1509   43,  123,   45,   -1,  151,   -1,   -1,  154,   -1,   -1,
1510   -1,   -1,   -1,   -1,  315,  316,   59,  164,  263,  264,
1511  321,  266,  267,  268,  269,  270,   -1,   -1,   -1,   -1,
1512   -1,  276,  277,  278,  279,  280,  281,   -1,  283,  284,
1513  285,   -1,  287,  288,   -1,  192,   -1,  292,  293,  294,
1514  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1515  305,  208,  209,  210,  211,   -1,  213,   -1,  215,  216,
1516   -1,   -1,   -1,   -1,   -1,   -1,  223,  224,   -1,   -1,
1517  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,  235,  236,
1518  237,  238,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
1519   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1520   -1,   -1,   59,   -1,   -1,   -1,  263,   -1,   -1,   -1,
1521   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  275,  276,
1522  277,  278,  279,   -1,  281,  282,  283,   -1,  260,  261,
1523  262,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
1524   -1,  273,  274,   -1,  276,  277,  278,  279,  280,  281,
1525  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,
1526  292,  293,  294,  295,   -1,   -1,  123,  299,  125,   -1,
1527  302,  303,  304,  305,   40,   -1,   -1,   43,   -1,   45,
1528   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1529   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1530   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,
1531  263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
1532  273,  274,   -1,  276,  277,  278,  279,  280,  281,  282,
1533  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
1534  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1535  303,  304,  305,   -1,   -1,   -1,   -1,  123,   40,  125,
1536   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1537   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
1538   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1539   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1540   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,  266,
1541  267,  268,  269,  270,  271,  272,  273,  274,   -1,  276,
1542  277,  278,  279,  280,  281,  282,  283,  284,  285,   -1,
1543  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,   -1,
1544   -1,  123,  299,  125,   -1,  302,  303,  304,  305,   40,
1545   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1546   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1547   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1548   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1549   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
1550  266,  267,  268,  269,  270,  271,  272,  273,  274,   -1,
1551  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1552   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
1553   -1,   -1,  123,  299,  125,   -1,  302,  303,  304,  305,
1554   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1555   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1556   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1557   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,
1558   -1,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
1559  272,  273,  274,   -1,  276,  277,  278,  279,  280,  281,
1560  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,
1561  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1562  302,  303,  304,  305,  123,   -1,  125,   -1,   -1,   -1,
1563   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,
1564   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1565   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1566   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,
1567   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1568  271,  272,  273,  274,   -1,  276,  277,  278,  279,  280,
1569  281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
1570   -1,  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,
1571   -1,  302,  303,  304,  305,  123,   40,  125,   -1,   43,
1572   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1573   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
1574   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1575   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1576   -1,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
1577  269,  270,  271,  272,  273,  274,   -1,  276,  277,  278,
1578  279,  280,  281,  282,  283,  284,  285,   -1,  287,  288,
1579   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,  123,
1580  299,  125,   -1,  302,  303,  304,  305,   40,   -1,   -1,
1581   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1582   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
1583   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1584   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1585   -1,   -1,  260,   -1,   -1,  263,  264,   -1,  266,  267,
1586  268,  269,  270,  271,  272,  273,  274,   -1,  276,  277,
1587  278,  279,  280,  281,  282,  283,  284,  285,   -1,  287,
1588  288,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1589  123,  299,  125,   -1,  302,  303,  304,  305,   -1,   40,
1590   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1591   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1592   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1593   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,
1594  264,   -1,  266,  267,  268,  269,  270,  271,  272,  273,
1595  274,   -1,  276,  277,  278,  279,  280,  281,  282,  283,
1596  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,
1597  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
1598  304,  305,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
1599   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
1600   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
1601   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1602   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,
1603  263,  264,   -1,  266,  267,  268,  269,  270,  271,   -1,
1604  273,  274,   -1,  276,  277,  278,  279,  280,  281,  282,
1605  283,  284,  285,   -1,  287,  288,   -1,   -1,   -1,  292,
1606  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1607  303,  304,  305,  123,   40,  125,   -1,   43,   -1,   45,
1608   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1609   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1610   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1611   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,
1612   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1613  271,   -1,  273,  274,   -1,  276,  277,  278,  279,  280,
1614  281,  282,  283,  284,  285,   -1,  287,  288,   -1,   -1,
1615   -1,  292,  293,  294,  295,   -1,   -1,  123,  299,  125,
1616   -1,  302,  303,  304,  305,   40,   -1,   -1,   43,   -1,
1617   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1618   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
1619   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1620   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1621  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,
1622  270,  271,   -1,  273,  274,   -1,  276,  277,  278,  279,
1623  280,  281,  282,  283,  284,  285,   -1,  287,  288,   -1,
1624   -1,   -1,  292,  293,  294,  295,   -1,   -1,  123,  299,
1625  125,   -1,  302,  303,  304,  305,   -1,   40,   -1,   -1,
1626   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1627   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
1628   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1629   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,   -1,
1630  266,  267,  268,  269,  270,  271,   -1,  273,  274,   -1,
1631  276,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1632   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,  295,
1633   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1634  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,   40,   -1,
1635   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1636   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
1637   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1638   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,  263,  264,
1639   -1,  266,  267,  268,  269,  270,  271,   -1,  273,  274,
1640   -1,  276,  277,  278,  279,  280,  281,  282,  283,  284,
1641  285,   -1,  287,  288,   -1,   -1,   -1,  292,  293,  294,
1642  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1643  305,  123,   40,  125,   -1,   43,   -1,   45,   -1,   -1,
1644   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1645   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1646   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1647   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,
1648  263,  264,   -1,  266,  267,  268,  269,  270,  271,   -1,
1649  273,  274,   -1,  276,  277,  278,  279,  280,  281,  282,
1650  283,  284,  285,   40,  287,  288,   43,   44,   45,  292,
1651  293,  294,  295,   -1,   -1,  123,  299,  125,   -1,  302,
1652  303,  304,  305,   60,   -1,   62,   63,   -1,   -1,   -1,
1653   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1654   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1655   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1656   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,  260,   62,
1657   63,  263,  264,   -1,  266,  267,  268,  269,  270,  271,
1658   -1,  273,  274,   -1,  276,  277,  278,  279,  280,  281,
1659  282,  283,  284,  285,   40,  287,  288,   43,   -1,   45,
1660  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1661  302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1662   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1663   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1664   -1,   40,   41,   -1,   43,   44,   45,   -1,   -1,   -1,
1665   -1,   -1,  260,   -1,   -1,  263,  264,   -1,  266,  267,
1666  268,  269,  270,  271,   63,  273,  274,   -1,  276,  277,
1667  278,  279,  280,  281,  282,  283,  284,  285,   -1,  287,
1668  288,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1669   -1,  299,   -1,   -1,  302,  303,  304,  305,   40,   41,
1670   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1671   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1672   -1,   63,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,
1673   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,
1674   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1675  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,  296,
1676  297,   -1,  299,   -1,   -1,  302,  303,  304,  305,   -1,
1677  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1678   -1,   -1,   40,   41,   -1,   43,   44,   45,  281,   -1,
1679  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1680  293,  294,  295,  296,  297,   63,  299,   -1,   -1,  302,
1681  303,  304,  305,  259,   -1,  261,  262,  263,  264,   -1,
1682   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,   -1,
1683   43,   44,   45,   -1,   -1,  281,   -1,  283,  284,  285,
1684   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1685   63,   -1,   -1,  299,   -1,  301,  302,  303,  304,  305,
1686   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
1687  269,  270,   -1,   -1,   40,   41,   -1,   43,   44,   45,
1688   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,
1689   -1,   -1,   -1,  292,  293,  294,  295,   63,   -1,   -1,
1690  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,   -1,
1691   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1692   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   40,
1693   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  281,
1694   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1695  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1696  302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1697   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
1698   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1699   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1700   -1,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1701  268,  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1702   -1,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1703   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1704   -1,  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,
1705  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1706   40,   -1,   -1,   43,   44,   45,   -1,   -1,  281,   -1,
1707  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1708  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,
1709  303,  304,  305,   -1,   -1,   -1,   -1,  263,  264,   -1,
1710   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,   -1,
1711   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,  285,
1712   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1713   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1714   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,
1715   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
1716   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,
1717  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1718   -1,  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,
1719  301,  302,  303,  304,  305,  259,   -1,   -1,   -1,  263,
1720  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,
1721   -1,   -1,   43,   44,   45,   -1,   -1,  281,   -1,  283,
1722  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,
1723  294,  295,   63,   -1,   -1,  299,   -1,  301,  302,  303,
1724  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1725   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,   -1,
1726   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1727   -1,   -1,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
1728   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1729  270,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   44,
1730   45,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1731   -1,   -1,  292,  293,  294,  295,   -1,   -1,   63,  299,
1732   -1,   -1,  302,  303,  304,  305,   -1,   -1,   -1,   -1,
1733  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1734   40,   -1,   -1,   43,   44,   45,   -1,   -1,  281,   -1,
1735  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1736  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,  302,
1737  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1738   -1,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1739  268,  269,  270,   -1,   -1,   40,   -1,   -1,   43,   44,
1740   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1741   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,   -1,
1742   -1,  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,
1743   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,
1744   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,
1745  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,
1746   58,  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,
1747   -1,  302,  303,  304,  305,  263,  264,   -1,   -1,   -1,
1748  268,  269,  270,   -1,   -1,   40,   -1,   -1,   43,   -1,
1749   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1750   -1,   -1,   -1,   58,  292,  293,  294,  295,   63,   -1,
1751   -1,  299,   -1,   -1,  302,  303,  304,  305,  263,  264,
1752   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
1753   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
1754  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1755  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1756  305,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1757  270,   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,
1758   -1,  281,   -1,  283,  284,  285,   -1,  287,   -1,   -1,
1759   -1,   -1,  292,  293,  294,  295,   63,   -1,   -1,  299,
1760   -1,   -1,  302,  303,  304,  305,   -1,   -1,   -1,   -1,
1761   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,  264,
1762   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
1763   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
1764  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1765  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1766  305,   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1767  268,  269,  270,   -1,   -1,   40,   41,   -1,   43,   -1,
1768   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,  287,
1769   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,   -1,
1770   -1,  299,   -1,   -1,  302,  303,  304,  305,  263,  264,
1771   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
1772   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
1773  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1774  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1775  305,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1776   -1,   40,   41,   -1,   43,   -1,   45,   -1,   -1,  281,
1777   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1778  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,
1779  302,  303,  304,  305,   -1,   -1,  263,  264,   -1,   -1,
1780   -1,  268,  269,  270,   -1,   -1,   40,   41,   -1,   43,
1781   -1,   45,   -1,   -1,  281,   -1,  283,  284,  285,   -1,
1782  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,   63,
1783   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,   -1,
1784   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1785   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1786   -1,   40,   41,   -1,   43,   -1,   45,   -1,   -1,  281,
1787   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1788  292,  293,  294,  295,   63,   -1,   -1,  299,   -1,   -1,
1789  302,  303,  304,  305,   -1,   -1,   -1,   -1,  263,  264,
1790   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   40,   41,
1791   -1,   43,   -1,   45,   -1,   -1,  281,   -1,  283,  284,
1792  285,   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,
1793  295,   63,   -1,   -1,  299,   -1,   -1,  302,  303,  304,
1794  305,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1795   -1,   40,   41,   -1,   43,   -1,   45,   -1,   -1,  281,
1796   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1797  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1798  302,  303,  304,  305,  263,  264,   -1,   -1,   -1,  268,
1799  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
1800   -1,   43,  281,   45,  283,  284,  285,   -1,  287,   -1,
1801   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,   -1,
1802  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,  263,
1803  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,   -1,
1804   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,
1805  284,  285,   40,  287,   -1,   43,   -1,   45,  292,  293,
1806  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,  303,
1807  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1808   -1,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
1809  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1810   -1,   -1,  281,   -1,  283,  284,  285,   40,  287,   -1,
1811   43,   -1,   45,  292,  293,  294,  295,   -1,   -1,   -1,
1812  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,   -1,
1813   -1,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1814   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
1815   -1,  283,  284,  285,   40,  287,   -1,   43,   -1,   45,
1816  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1817  302,  303,  304,  305,  263,  264,   -1,   -1,   -1,  268,
1818  269,  270,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1819   -1,   -1,  281,   -1,  283,  284,  285,   40,  287,   -1,
1820   43,   -1,   45,  292,  293,  294,  295,   -1,   -1,   -1,
1821  299,   -1,   -1,  302,  303,  304,  305,  259,   -1,   -1,
1822   63,  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,
1823   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
1824   -1,  283,  284,  285,   40,  287,   -1,   43,   -1,   45,
1825  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1826  302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1827   -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1828  268,  269,  270,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1829   43,   -1,   45,  281,   -1,  283,  284,  285,   -1,  287,
1830   -1,   -1,   -1,   -1,  292,  293,  294,  295,   -1,   -1,
1831   -1,  299,   -1,   -1,  302,  303,  304,  305,   -1,   -1,
1832   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,   -1,   -1,
1833  263,  264,   -1,   -1,   -1,  268,  269,  270,   40,   -1,
1834   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  281,   -1,
1835  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1836  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1837  303,  304,  305,  259,   -1,   -1,   -1,  263,  264,   -1,
1838   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1839   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1840   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1841   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1842  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1843   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1844  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1845  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1846  303,  304,  305,  259,   -1,   -1,   -1,  263,  264,   -1,
1847   -1,   -1,  268,  269,  270,   -1,   -1,   -1,   -1,   -1,
1848   -1,   -1,   -1,   -1,   -1,  281,   -1,  283,  284,  285,
1849   -1,  287,   -1,   -1,   -1,   -1,  292,  293,  294,  295,
1850   -1,   -1,   -1,  299,   -1,   -1,  302,  303,  304,  305,
1851  263,  264,   -1,   -1,   -1,  268,  269,  270,   -1,   -1,
1852   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,   -1,
1853  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,  292,
1854  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,  302,
1855  303,  304,  305,   -1,   -1,   -1,   -1,   28,   29,   -1,
1856   -1,  263,  264,   34,   -1,   -1,  268,  269,  270,   -1,
1857   -1,   42,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
1858   -1,  283,  284,  285,   -1,  287,   -1,   -1,   -1,   -1,
1859  292,  293,  294,  295,   -1,   -1,   -1,  299,   -1,   -1,
1860  302,  303,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,
1861   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1862   -1,   92,   93,   94,   95,   96,   97,   -1,   -1,   -1,
1863   -1,   -1,   -1,  104,   -1,   -1,   -1,   -1,  109,   -1,
1864   -1,  112,  113,   -1,   -1,  116,   -1,  118,  119,   -1,
1865   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
1866   -1,   -1,   -1,  134,   -1,   -1,   -1,  138,   -1,  140,
1867  141,  142,  143,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1868   -1,   -1,   -1,  154,   -1,   -1,   -1,   -1,   -1,   -1,
1869   -1,   -1,   -1,  164,   -1,   -1,   -1,   -1,   -1,   -1,
1870   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1871   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1872   -1,  192,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1873   -1,   -1,   -1,   -1,   -1,   -1,   -1,  208,  209,  210,
1874  211,   -1,  213,   -1,  215,  216,   -1,   -1,   -1,   -1,
1875   -1,   -1,  223,  224,   -1,   -1,   -1,   -1,   -1,   -1,
1876   -1,   -1,   -1,   -1,  235,  236,  237,  238,   -1,   -1,
1877   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1878   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1879   -1,   -1,  263,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1880   -1,   -1,   -1,   -1,  275,  276,  277,  278,  279,   -1,
1881  281,  282,  283,
1882};
1883#define YYFINAL 1
1884#ifndef YYDEBUG
1885#define YYDEBUG 0
1886#endif
1887#define YYMAXTOKEN 305
1888#if YYDEBUG
1889char *yyname[] = {
1890"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,
18910,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
1892"':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
18930,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,
18940,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
18950,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
18960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
18970,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",
1898"NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF_OLD",
1899"SPRINTF_NEW","SPLIT","IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK",
1900"CONTINUE","RET","GETLINE","DO","SUB","GSUB","MATCH","FUNCTION","USERFUN",
1901"DELETE","ASGNOP","OROR","ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP",
1902"RELOP","OR","STRING","UMINUS","NOT","INCR","DECR","FIELD","VFIELD",
1903};
1904char *yyrule[] = {
1905"$accept : program",
1906"program : junk hunks",
1907"begin : BEGIN '{' maybe states '}' junk",
1908"end : END '{' maybe states '}'",
1909"end : end NEWLINE",
1910"hunks : hunks hunk junk",
1911"hunks :",
1912"hunk : patpat",
1913"hunk : patpat '{' maybe states '}'",
1914"hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
1915"hunk : '{' maybe states '}'",
1916"hunk : begin",
1917"hunk : end",
1918"arg_list : expr_list",
1919"patpat : cond",
1920"patpat : cond ',' cond",
1921"cond : expr",
1922"cond : match",
1923"cond : rel",
1924"cond : compound_cond",
1925"cond : cond '?' expr ':' expr",
1926"compound_cond : '(' compound_cond ')'",
1927"compound_cond : cond ANDAND maybe cond",
1928"compound_cond : cond OROR maybe cond",
1929"compound_cond : NOT cond",
1930"rel : expr RELOP expr",
1931"rel : expr '>' expr",
1932"rel : expr '<' expr",
1933"rel : '(' rel ')'",
1934"match : expr MATCHOP expr",
1935"match : expr MATCHOP REGEX",
1936"match : REGEX",
1937"match : '(' match ')'",
1938"expr : term",
1939"expr : expr term",
1940"expr : expr '?' expr ':' expr",
1941"expr : variable ASGNOP cond",
1942"sprintf : SPRINTF_NEW",
1943"sprintf : SPRINTF_OLD",
1944"term : variable",
1945"term : NUMBER",
1946"term : STRING",
1947"term : term '+' term",
1948"term : term '-' term",
1949"term : term '*' term",
1950"term : term '/' term",
1951"term : term '%' term",
1952"term : term '^' term",
1953"term : term IN VAR",
1954"term : variable INCR",
1955"term : variable DECR",
1956"term : INCR variable",
1957"term : DECR variable",
1958"term : '-' term",
1959"term : '+' term",
1960"term : '(' cond ')'",
1961"term : GETLINE",
1962"term : GETLINE variable",
1963"term : GETLINE '<' expr",
1964"term : GETLINE variable '<' expr",
1965"term : term 'p' GETLINE",
1966"term : term 'p' GETLINE variable",
1967"term : FUN1",
1968"term : FUN1 '(' ')'",
1969"term : FUN1 '(' expr ')'",
1970"term : FUNN '(' expr_list ')'",
1971"term : USERFUN '(' expr_list ')'",
1972"term : SPRINTF_NEW '(' expr_list ')'",
1973"term : sprintf expr_list",
1974"term : SUBSTR '(' expr ',' expr ',' expr ')'",
1975"term : SUBSTR '(' expr ',' expr ')'",
1976"term : SPLIT '(' expr ',' VAR ',' expr ')'",
1977"term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
1978"term : SPLIT '(' expr ',' VAR ')'",
1979"term : INDEX '(' expr ',' expr ')'",
1980"term : MATCH '(' expr ',' REGEX ')'",
1981"term : MATCH '(' expr ',' expr ')'",
1982"term : SUB '(' expr ',' expr ')'",
1983"term : SUB '(' REGEX ',' expr ')'",
1984"term : GSUB '(' expr ',' expr ')'",
1985"term : GSUB '(' REGEX ',' expr ')'",
1986"term : SUB '(' expr ',' expr ',' expr ')'",
1987"term : SUB '(' REGEX ',' expr ',' expr ')'",
1988"term : GSUB '(' expr ',' expr ',' expr ')'",
1989"term : GSUB '(' REGEX ',' expr ',' expr ')'",
1990"variable : VAR",
1991"variable : VAR '[' expr_list ']'",
1992"variable : FIELD",
1993"variable : VFIELD term",
1994"expr_list : expr",
1995"expr_list : clist",
1996"expr_list :",
1997"clist : expr ',' maybe expr",
1998"clist : clist ',' maybe expr",
1999"clist : '(' clist ')'",
2000"junk : junk hunksep",
2001"junk :",
2002"hunksep : ';'",
2003"hunksep : SEMINEW",
2004"hunksep : NEWLINE",
2005"hunksep : COMMENT",
2006"maybe : maybe nlstuff",
2007"maybe :",
2008"nlstuff : NEWLINE",
2009"nlstuff : COMMENT",
2010"separator : ';' maybe",
2011"separator : SEMINEW maybe",
2012"separator : NEWLINE maybe",
2013"separator : COMMENT maybe",
2014"states : states statement",
2015"states :",
2016"statement : simple separator maybe",
2017"statement : ';' maybe",
2018"statement : SEMINEW maybe",
2019"statement : compound",
2020"simpnull : simple",
2021"simpnull :",
2022"simple : expr",
2023"simple : PRINT expr_list redir expr",
2024"simple : PRINT expr_list",
2025"simple : PRINTF expr_list redir expr",
2026"simple : PRINTF expr_list",
2027"simple : BREAK",
2028"simple : NEXT",
2029"simple : EXIT",
2030"simple : EXIT expr",
2031"simple : CONTINUE",
2032"simple : RET",
2033"simple : RET expr",
2034"simple : DELETE VAR '[' expr_list ']'",
2035"redir : '>'",
2036"redir : GRGR",
2037"redir : '|'",
2038"compound : IF '(' cond ')' maybe statement",
2039"compound : IF '(' cond ')' maybe statement ELSE maybe statement",
2040"compound : WHILE '(' cond ')' maybe statement",
2041"compound : DO maybe statement WHILE '(' cond ')'",
2042"compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
2043"compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
2044"compound : FOR '(' expr ')' maybe statement",
2045"compound : '{' maybe states '}' maybe",
2046};
2047#endif
2048#ifndef YYSTYPE
2049typedef int YYSTYPE;
2050#endif
2051#define yyclearin (yychar=(-1))
2052#define yyerrok (yyerrflag=0)
2053#ifdef YYSTACKSIZE
2054#ifndef YYMAXDEPTH
2055#define YYMAXDEPTH YYSTACKSIZE
2056#endif
2057#else
2058#ifdef YYMAXDEPTH
2059#define YYSTACKSIZE YYMAXDEPTH
2060#else
2061#define YYSTACKSIZE 500
2062#define YYMAXDEPTH 500
2063#endif
2064#endif
2065int yydebug;
2066int yynerrs;
2067int yyerrflag;
2068int yychar;
2069short *yyssp;
2070YYSTYPE *yyvsp;
2071YYSTYPE yyval;
2072YYSTYPE yylval;
2073short yyss[YYSTACKSIZE];
2074YYSTYPE yyvs[YYSTACKSIZE];
2075#define yystacksize YYSTACKSIZE
2076#line 401 "a2p.y"
2077
2078int yyparse (void);
2079
2080#include "a2py.c"
2081#line 2081 "y.tab.c"
2082#define YYABORT goto yyabort
2083#define YYACCEPT goto yyaccept
2084#define YYERROR goto yyerrlab
2085int
2086yyparse()
2087{
2088    register int yym, yyn, yystate;
2089#if YYDEBUG
2090    register char *yys;
2091    extern char *getenv();
2092
2093    if ((yys = getenv("YYDEBUG")))
2094    {
2095        yyn = *yys;
2096        if (yyn >= '0' && yyn <= '9')
2097            yydebug = yyn - '0';
2098    }
2099#endif
2100
2101    yynerrs = 0;
2102    yyerrflag = 0;
2103    yychar = (-1);
2104
2105    yyssp = yyss;
2106    yyvsp = yyvs;
2107    *yyssp = yystate = 0;
2108
2109yyloop:
2110    if ((yyn = yydefred[yystate])) goto yyreduce;
2111    if (yychar < 0)
2112    {
2113        if ((yychar = yylex()) < 0) yychar = 0;
2114#if YYDEBUG
2115        if (yydebug)
2116        {
2117            yys = 0;
2118            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2119            if (!yys) yys = "illegal-symbol";
2120            printf("yydebug: state %d, reading %d (%s)\n", yystate,
2121                    yychar, yys);
2122        }
2123#endif
2124    }
2125    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
2126            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2127    {
2128#if YYDEBUG
2129        if (yydebug)
2130            printf("yydebug: state %d, shifting to state %d\n",
2131                    yystate, yytable[yyn]);
2132#endif
2133        if (yyssp >= yyss + yystacksize - 1)
2134        {
2135            goto yyoverflow;
2136        }
2137        *++yyssp = yystate = yytable[yyn];
2138        *++yyvsp = yylval;
2139        yychar = (-1);
2140        if (yyerrflag > 0)  --yyerrflag;
2141        goto yyloop;
2142    }
2143    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
2144            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2145    {
2146        yyn = yytable[yyn];
2147        goto yyreduce;
2148    }
2149    if (yyerrflag) goto yyinrecovery;
2150#ifdef lint
2151
2152#endif
2153
2154    yyerror("syntax error");
2155#ifdef lint
2156
2157#endif
2158
2159    ++yynerrs;
2160yyinrecovery:
2161    if (yyerrflag < 3)
2162    {
2163        yyerrflag = 3;
2164        for (;;)
2165        {
2166            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
2167                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
2168            {
2169#if YYDEBUG
2170                if (yydebug)
2171                    printf("yydebug: state %d, error recovery shifting\
2172 to state %d\n", *yyssp, yytable[yyn]);
2173#endif
2174                if (yyssp >= yyss + yystacksize - 1)
2175                {
2176                    goto yyoverflow;
2177                }
2178                *++yyssp = yystate = yytable[yyn];
2179                *++yyvsp = yylval;
2180                goto yyloop;
2181            }
2182            else
2183            {
2184#if YYDEBUG
2185                if (yydebug)
2186                    printf("yydebug: error recovery discarding state %d\n",
2187                            *yyssp);
2188#endif
2189                if (yyssp <= yyss) goto yyabort;
2190                --yyssp;
2191                --yyvsp;
2192            }
2193        }
2194    }
2195    else
2196    {
2197        if (yychar == 0) goto yyabort;
2198#if YYDEBUG
2199        if (yydebug)
2200        {
2201            yys = 0;
2202            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2203            if (!yys) yys = "illegal-symbol";
2204            printf("yydebug: state %d, error recovery discards token %d (%s)\n",
2205                    yystate, yychar, yys);
2206        }
2207#endif
2208        yychar = (-1);
2209        goto yyloop;
2210    }
2211yyreduce:
2212#if YYDEBUG
2213    if (yydebug)
2214        printf("yydebug: state %d, reducing by rule %d (%s)\n",
2215                yystate, yyn, yyrule[yyn]);
2216#endif
2217    yym = yylen[yyn];
2218    yyval = yyvsp[1-yym];
2219    switch (yyn)
2220    {
2221case 1:
2222#line 51 "a2p.y"
2223{ root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
2224break;
2225case 2:
2226#line 55 "a2p.y"
2227{ begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
2228                    yyval = Nullop; }
2229break;
2230case 3:
2231#line 60 "a2p.y"
2232{ ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
2233break;
2234case 4:
2235#line 62 "a2p.y"
2236{ yyval = yyvsp[-1]; }
2237break;
2238case 5:
2239#line 66 "a2p.y"
2240{ yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
2241break;
2242case 6:
2243#line 68 "a2p.y"
2244{ yyval = Nullop; }
2245break;
2246case 7:
2247#line 72 "a2p.y"
2248{ yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
2249break;
2250case 8:
2251#line 74 "a2p.y"
2252{ yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2253break;
2254case 9:
2255#line 76 "a2p.y"
2256{ fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
2257break;
2258case 10:
2259#line 78 "a2p.y"
2260{ yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2261break;
2262case 13:
2263#line 84 "a2p.y"
2264{ yyval = rememberargs(yyval); }
2265break;
2266case 14:
2267#line 88 "a2p.y"
2268{ yyval = oper1(OPAT,yyvsp[0]); }
2269break;
2270case 15:
2271#line 90 "a2p.y"
2272{ yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
2273break;
2274case 20:
2275#line 98 "a2p.y"
2276{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2277break;
2278case 21:
2279#line 103 "a2p.y"
2280{ yyval = oper1(OCPAREN,yyvsp[-1]); }
2281break;
2282case 22:
2283#line 105 "a2p.y"
2284{ yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2285break;
2286case 23:
2287#line 107 "a2p.y"
2288{ yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2289break;
2290case 24:
2291#line 109 "a2p.y"
2292{ yyval = oper1(OCNOT,yyvsp[0]); }
2293break;
2294case 25:
2295#line 113 "a2p.y"
2296{ yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2297break;
2298case 26:
2299#line 115 "a2p.y"
2300{ yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
2301break;
2302case 27:
2303#line 117 "a2p.y"
2304{ yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
2305break;
2306case 28:
2307#line 119 "a2p.y"
2308{ yyval = oper1(ORPAREN,yyvsp[-1]); }
2309break;
2310case 29:
2311#line 123 "a2p.y"
2312{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2313break;
2314case 30:
2315#line 125 "a2p.y"
2316{ yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
2317break;
2318case 31:
2319#line 127 "a2p.y"
2320{ yyval = oper1(OREGEX,yyvsp[0]); }
2321break;
2322case 32:
2323#line 129 "a2p.y"
2324{ yyval = oper1(OMPAREN,yyvsp[-1]); }
2325break;
2326case 33:
2327#line 133 "a2p.y"
2328{ yyval = yyvsp[0]; }
2329break;
2330case 34:
2331#line 135 "a2p.y"
2332{ yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
2333break;
2334case 35:
2335#line 137 "a2p.y"
2336{ yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2337break;
2338case 36:
2339#line 139 "a2p.y"
2340{ yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
2341                        if ((ops[yyvsp[-2]].ival & 255) == OFLD)
2342                            lval_field = TRUE;
2343                        if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
2344                            lval_field = TRUE;
2345                }
2346break;
2347case 39:
2348#line 151 "a2p.y"
2349{ yyval = yyvsp[0]; }
2350break;
2351case 40:
2352#line 153 "a2p.y"
2353{ yyval = oper1(ONUM,yyvsp[0]); }
2354break;
2355case 41:
2356#line 155 "a2p.y"
2357{ yyval = oper1(OSTR,yyvsp[0]); }
2358break;
2359case 42:
2360#line 157 "a2p.y"
2361{ yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
2362break;
2363case 43:
2364#line 159 "a2p.y"
2365{ yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
2366break;
2367case 44:
2368#line 161 "a2p.y"
2369{ yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
2370break;
2371case 45:
2372#line 163 "a2p.y"
2373{ yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
2374break;
2375case 46:
2376#line 165 "a2p.y"
2377{ yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
2378break;
2379case 47:
2380#line 167 "a2p.y"
2381{ yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
2382break;
2383case 48:
2384#line 169 "a2p.y"
2385{ yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
2386break;
2387case 49:
2388#line 171 "a2p.y"
2389{ yyval = oper1(OPOSTINCR,yyvsp[-1]); }
2390break;
2391case 50:
2392#line 173 "a2p.y"
2393{ yyval = oper1(OPOSTDECR,yyvsp[-1]); }
2394break;
2395case 51:
2396#line 175 "a2p.y"
2397{ yyval = oper1(OPREINCR,yyvsp[0]); }
2398break;
2399case 52:
2400#line 177 "a2p.y"
2401{ yyval = oper1(OPREDECR,yyvsp[0]); }
2402break;
2403case 53:
2404#line 179 "a2p.y"
2405{ yyval = oper1(OUMINUS,yyvsp[0]); }
2406break;
2407case 54:
2408#line 181 "a2p.y"
2409{ yyval = oper1(OUPLUS,yyvsp[0]); }
2410break;
2411case 55:
2412#line 183 "a2p.y"
2413{ yyval = oper1(OPAREN,yyvsp[-1]); }
2414break;
2415case 56:
2416#line 185 "a2p.y"
2417{ yyval = oper0(OGETLINE); }
2418break;
2419case 57:
2420#line 187 "a2p.y"
2421{ yyval = oper1(OGETLINE,yyvsp[0]); }
2422break;
2423case 58:
2424#line 189 "a2p.y"
2425{ yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
2426                    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2427break;
2428case 59:
2429#line 192 "a2p.y"
2430{ yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
2431                    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2432break;
2433case 60:
2434#line 195 "a2p.y"
2435{ yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
2436                    if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2437break;
2438case 61:
2439#line 198 "a2p.y"
2440{ yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
2441                    if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2442break;
2443case 62:
2444#line 201 "a2p.y"
2445{ yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
2446break;
2447case 63:
2448#line 203 "a2p.y"
2449{ yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
2450break;
2451case 64:
2452#line 205 "a2p.y"
2453{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2454break;
2455case 65:
2456#line 207 "a2p.y"
2457{ yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2458break;
2459case 66:
2460#line 209 "a2p.y"
2461{ yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
2462break;
2463case 67:
2464#line 211 "a2p.y"
2465{ yyval = oper1(OSPRINTF,yyvsp[-1]); }
2466break;
2467case 68:
2468#line 213 "a2p.y"
2469{ yyval = oper1(OSPRINTF,yyvsp[0]); }
2470break;
2471case 69:
2472#line 215 "a2p.y"
2473{ yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2474break;
2475case 70:
2476#line 217 "a2p.y"
2477{ yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
2478break;
2479case 71:
2480#line 219 "a2p.y"
2481{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
2482break;
2483case 72:
2484#line 221 "a2p.y"
2485{ yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
2486break;
2487case 73:
2488#line 223 "a2p.y"
2489{ yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
2490break;
2491case 74:
2492#line 225 "a2p.y"
2493{ yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
2494break;
2495case 75:
2496#line 227 "a2p.y"
2497{ yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
2498break;
2499case 76:
2500#line 229 "a2p.y"
2501{ yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
2502break;
2503case 77:
2504#line 231 "a2p.y"
2505{ yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
2506break;
2507case 78:
2508#line 233 "a2p.y"
2509{ yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2510break;
2511case 79:
2512#line 235 "a2p.y"
2513{ yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
2514break;
2515case 80:
2516#line 237 "a2p.y"
2517{ yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2518break;
2519case 81:
2520#line 239 "a2p.y"
2521{ yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2522break;
2523case 82:
2524#line 241 "a2p.y"
2525{ yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2526break;
2527case 83:
2528#line 243 "a2p.y"
2529{ yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2530break;
2531case 84:
2532#line 245 "a2p.y"
2533{ yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2534break;
2535case 85:
2536#line 249 "a2p.y"
2537{ yyval = oper1(OVAR,yyvsp[0]); }
2538break;
2539case 86:
2540#line 251 "a2p.y"
2541{ yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2542break;
2543case 87:
2544#line 253 "a2p.y"
2545{ yyval = oper1(OFLD,yyvsp[0]); }
2546break;
2547case 88:
2548#line 255 "a2p.y"
2549{ yyval = oper1(OVFLD,yyvsp[0]); }
2550break;
2551case 91:
2552#line 262 "a2p.y"
2553{ yyval = Nullop; }
2554break;
2555case 92:
2556#line 266 "a2p.y"
2557{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2558break;
2559case 93:
2560#line 268 "a2p.y"
2561{ yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2562break;
2563case 94:
2564#line 270 "a2p.y"
2565{ yyval = yyvsp[-1]; }
2566break;
2567case 95:
2568#line 274 "a2p.y"
2569{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2570break;
2571case 96:
2572#line 276 "a2p.y"
2573{ yyval = Nullop; }
2574break;
2575case 97:
2576#line 280 "a2p.y"
2577{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2578break;
2579case 98:
2580#line 282 "a2p.y"
2581{ yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2582break;
2583case 99:
2584#line 284 "a2p.y"
2585{ yyval = oper0(ONEWLINE); }
2586break;
2587case 100:
2588#line 286 "a2p.y"
2589{ yyval = oper1(OCOMMENT,yyvsp[0]); }
2590break;
2591case 101:
2592#line 290 "a2p.y"
2593{ yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2594break;
2595case 102:
2596#line 292 "a2p.y"
2597{ yyval = Nullop; }
2598break;
2599case 103:
2600#line 296 "a2p.y"
2601{ yyval = oper0(ONEWLINE); }
2602break;
2603case 104:
2604#line 298 "a2p.y"
2605{ yyval = oper1(OCOMMENT,yyvsp[0]); }
2606break;
2607case 105:
2608#line 303 "a2p.y"
2609{ yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
2610break;
2611case 106:
2612#line 305 "a2p.y"
2613{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2614break;
2615case 107:
2616#line 307 "a2p.y"
2617{ yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2618break;
2619case 108:
2620#line 309 "a2p.y"
2621{ yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
2622break;
2623case 109:
2624#line 313 "a2p.y"
2625{ yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
2626break;
2627case 110:
2628#line 315 "a2p.y"
2629{ yyval = Nullop; }
2630break;
2631case 111:
2632#line 320 "a2p.y"
2633{ yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
2634break;
2635case 112:
2636#line 322 "a2p.y"
2637{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
2638break;
2639case 113:
2640#line 324 "a2p.y"
2641{ yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
2642break;
2643case 116:
2644#line 330 "a2p.y"
2645{ yyval = Nullop; }
2646break;
2647case 118:
2648#line 336 "a2p.y"
2649{ yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2650                    do_opens = TRUE;
2651                    saw_ORS = saw_OFS = TRUE;
2652                    if (!yyvsp[-2]) need_entire = TRUE;
2653                    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2654break;
2655case 119:
2656#line 342 "a2p.y"
2657{ yyval = oper1(OPRINT,yyvsp[0]);
2658                    if (!yyvsp[0]) need_entire = TRUE;
2659                    saw_ORS = saw_OFS = TRUE;
2660                }
2661break;
2662case 120:
2663#line 347 "a2p.y"
2664{ yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2665                    do_opens = TRUE;
2666                    if (!yyvsp[-2]) need_entire = TRUE;
2667                    if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2668break;
2669case 121:
2670#line 352 "a2p.y"
2671{ yyval = oper1(OPRINTF,yyvsp[0]);
2672                    if (!yyvsp[0]) need_entire = TRUE;
2673                }
2674break;
2675case 122:
2676#line 356 "a2p.y"
2677{ yyval = oper0(OBREAK); }
2678break;
2679case 123:
2680#line 358 "a2p.y"
2681{ yyval = oper0(ONEXT); }
2682break;
2683case 124:
2684#line 360 "a2p.y"
2685{ yyval = oper0(OEXIT); }
2686break;
2687case 125:
2688#line 362 "a2p.y"
2689{ yyval = oper1(OEXIT,yyvsp[0]); }
2690break;
2691case 126:
2692#line 364 "a2p.y"
2693{ yyval = oper0(OCONTINUE); }
2694break;
2695case 127:
2696#line 366 "a2p.y"
2697{ yyval = oper0(ORETURN); }
2698break;
2699case 128:
2700#line 368 "a2p.y"
2701{ yyval = oper1(ORETURN,yyvsp[0]); }
2702break;
2703case 129:
2704#line 370 "a2p.y"
2705{ yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2706break;
2707case 130:
2708#line 374 "a2p.y"
2709{ yyval = oper1(OREDIR,string(">",1)); }
2710break;
2711case 131:
2712#line 376 "a2p.y"
2713{ yyval = oper1(OREDIR,string(">>",2)); }
2714break;
2715case 132:
2716#line 378 "a2p.y"
2717{ yyval = oper1(OREDIR,string("|",1)); }
2718break;
2719case 133:
2720#line 383 "a2p.y"
2721{ yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2722break;
2723case 134:
2724#line 385 "a2p.y"
2725{ yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
2726break;
2727case 135:
2728#line 387 "a2p.y"
2729{ yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2730break;
2731case 136:
2732#line 389 "a2p.y"
2733{ yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
2734break;
2735case 137:
2736#line 391 "a2p.y"
2737{ yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2738break;
2739case 138:
2740#line 393 "a2p.y"
2741{ yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2742break;
2743case 139:
2744#line 395 "a2p.y"
2745{ yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2746break;
2747case 140:
2748#line 397 "a2p.y"
2749{ yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
2750break;
2751#line 2751 "y.tab.c"
2752    }
2753    yyssp -= yym;
2754    yystate = *yyssp;
2755    yyvsp -= yym;
2756    yym = yylhs[yyn];
2757    if (yystate == 0 && yym == 0)
2758    {
2759#if YYDEBUG
2760        if (yydebug)
2761            printf("yydebug: after reduction, shifting from state 0 to\
2762 state %d\n", YYFINAL);
2763#endif
2764        yystate = YYFINAL;
2765        *++yyssp = YYFINAL;
2766        *++yyvsp = yyval;
2767        if (yychar < 0)
2768        {
2769            if ((yychar = yylex()) < 0) yychar = 0;
2770#if YYDEBUG
2771            if (yydebug)
2772            {
2773                yys = 0;
2774                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2775                if (!yys) yys = "illegal-symbol";
2776                printf("yydebug: state %d, reading %d (%s)\n",
2777                        YYFINAL, yychar, yys);
2778            }
2779#endif
2780        }
2781        if (yychar == 0) goto yyaccept;
2782        goto yyloop;
2783    }
2784    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2785            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2786        yystate = yytable[yyn];
2787    else
2788        yystate = yydgoto[yym];
2789#if YYDEBUG
2790    if (yydebug)
2791        printf("yydebug: after reduction, shifting from state %d \
2792to state %d\n", *yyssp, yystate);
2793#endif
2794    if (yyssp >= yyss + yystacksize - 1)
2795    {
2796        goto yyoverflow;
2797    }
2798    *++yyssp = yystate;
2799    *++yyvsp = yyval;
2800    goto yyloop;
2801yyoverflow:
2802    yyerror("yacc stack overflow");
2803yyabort:
2804    return (1);
2805yyaccept:
2806    return (0);
2807}
Note: See TracBrowser for help on using the repository browser.