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