* class.c (create_vtable_ptr): Put the vtable at the beginning of
[official-gcc.git] / gcc / cp / parse.c
blob7d54c52df1a9886b637ab973d3dbdf0db7959fcc
2 /* A Bison parser, made from parse.y
3 by GNU Bison version 1.27
4 */
6 #define YYBISON 1 /* Identify Bison output. */
8 #define IDENTIFIER 257
9 #define TYPENAME 258
10 #define SELFNAME 259
11 #define PFUNCNAME 260
12 #define SCSPEC 261
13 #define TYPESPEC 262
14 #define CV_QUALIFIER 263
15 #define CONSTANT 264
16 #define STRING 265
17 #define ELLIPSIS 266
18 #define SIZEOF 267
19 #define ENUM 268
20 #define IF 269
21 #define ELSE 270
22 #define WHILE 271
23 #define DO 272
24 #define FOR 273
25 #define SWITCH 274
26 #define CASE 275
27 #define DEFAULT 276
28 #define BREAK 277
29 #define CONTINUE 278
30 #define RETURN_KEYWORD 279
31 #define GOTO 280
32 #define ASM_KEYWORD 281
33 #define TYPEOF 282
34 #define ALIGNOF 283
35 #define SIGOF 284
36 #define ATTRIBUTE 285
37 #define EXTENSION 286
38 #define LABEL 287
39 #define REALPART 288
40 #define IMAGPART 289
41 #define VA_ARG 290
42 #define AGGR 291
43 #define VISSPEC 292
44 #define DELETE 293
45 #define NEW 294
46 #define THIS 295
47 #define OPERATOR 296
48 #define CXX_TRUE 297
49 #define CXX_FALSE 298
50 #define NAMESPACE 299
51 #define TYPENAME_KEYWORD 300
52 #define USING 301
53 #define LEFT_RIGHT 302
54 #define TEMPLATE 303
55 #define TYPEID 304
56 #define DYNAMIC_CAST 305
57 #define STATIC_CAST 306
58 #define REINTERPRET_CAST 307
59 #define CONST_CAST 308
60 #define SCOPE 309
61 #define EMPTY 310
62 #define PTYPENAME 311
63 #define NSNAME 312
64 #define THROW 313
65 #define ASSIGN 314
66 #define OROR 315
67 #define ANDAND 316
68 #define MIN_MAX 317
69 #define EQCOMPARE 318
70 #define ARITHCOMPARE 319
71 #define LSHIFT 320
72 #define RSHIFT 321
73 #define POINTSAT_STAR 322
74 #define DOT_STAR 323
75 #define UNARY 324
76 #define PLUSPLUS 325
77 #define MINUSMINUS 326
78 #define HYPERUNARY 327
79 #define POINTSAT 328
80 #define TRY 329
81 #define CATCH 330
82 #define EXTERN_LANG_STRING 331
83 #define ALL 332
84 #define PRE_PARSED_CLASS_DECL 333
85 #define DEFARG 334
86 #define DEFARG_MARKER 335
87 #define PRE_PARSED_FUNCTION_DECL 336
88 #define TYPENAME_DEFN 337
89 #define IDENTIFIER_DEFN 338
90 #define PTYPENAME_DEFN 339
91 #define END_OF_LINE 340
92 #define END_OF_SAVED_INPUT 341
94 #line 29 "parse.y"
96 /* Cause the `yydebug' variable to be defined. */
97 #define YYDEBUG 1
99 #include "config.h"
101 #include "system.h"
103 #include "tree.h"
104 #include "input.h"
105 #include "flags.h"
106 #include "lex.h"
107 #include "cp-tree.h"
108 #include "output.h"
109 #include "except.h"
110 #include "toplev.h"
111 #include "ggc.h"
113 /* Since parsers are distinct for each language, put the language string
114 definition here. (fnf) */
115 const char * const language_string = "GNU C++";
117 extern struct obstack permanent_obstack;
119 extern int end_of_file;
121 /* Like YYERROR but do call yyerror. */
122 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
124 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
125 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
127 /* Contains the statement keyword (if/while/do) to include in an
128 error message if the user supplies an empty conditional expression. */
129 static const char *cond_stmt_keyword;
131 static tree empty_parms PROTO((void));
132 static void parse_decl PROTO((tree, tree, tree, int, tree *));
134 /* Nonzero if we have an `extern "C"' acting as an extern specifier. */
135 int have_extern_spec;
136 int used_extern_spec;
138 /* Cons up an empty parameter list. */
139 static inline tree
140 empty_parms ()
142 tree parms;
144 if (strict_prototype
145 || current_class_type != NULL)
146 parms = void_list_node;
147 else
148 parms = NULL_TREE;
149 return parms;
153 #line 90 "parse.y"
154 typedef union {
155 long itype;
156 tree ttype;
157 char *strtype;
158 enum tree_code code;
159 flagged_type_tree ftype;
160 struct pending_inline *pi;
161 } YYSTYPE;
162 #line 293 "parse.y"
164 /* List of types and structure classes of the current declaration. */
165 static tree current_declspecs;
167 /* List of prefix attributes in effect.
168 Prefix attributes are parsed by the reserved_declspecs and declmods
169 rules. They create a list that contains *both* declspecs and attrs. */
170 /* ??? It is not clear yet that all cases where an attribute can now appear in
171 a declspec list have been updated. */
172 static tree prefix_attributes;
174 /* When defining an aggregate, this is the kind of the most recent one
175 being defined. (For example, this might be class_type_node.) */
176 static tree current_aggr;
178 /* When defining an enumeration, this is the type of the enumeration. */
179 static tree current_enum_type;
181 /* Tell yyparse how to print a token's value, if yydebug is set. */
183 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
184 extern void yyprint PROTO((FILE *, int, YYSTYPE));
185 extern tree combine_strings PROTO((tree));
187 static void
188 parse_decl (declarator, specs_attrs, attributes, initialized, decl)
189 tree declarator;
190 tree specs_attrs;
191 tree attributes;
192 int initialized;
193 tree* decl;
195 split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
196 if (current_declspecs
197 && TREE_CODE (current_declspecs) != TREE_LIST)
198 current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
199 if (have_extern_spec && !used_extern_spec)
201 current_declspecs = decl_tree_cons (NULL_TREE,
202 get_identifier ("extern"),
203 current_declspecs);
204 used_extern_spec = 1;
206 *decl = start_decl (declarator, current_declspecs, initialized,
207 attributes, prefix_attributes);
210 void
211 cp_parse_init ()
213 ggc_add_tree_root (&current_declspecs, 1);
214 ggc_add_tree_root (&prefix_attributes, 1);
215 ggc_add_tree_root (&current_aggr, 1);
216 ggc_add_tree_root (&current_enum_type, 1);
218 #include <stdio.h>
220 #ifndef __cplusplus
221 #ifndef __STDC__
222 #define const
223 #endif
224 #endif
228 #define YYFINAL 1661
229 #define YYFLAG -32768
230 #define YYNTBASE 112
232 #define YYTRANSLATE(x) ((unsigned)(x) <= 341 ? yytranslate[x] : 397)
234 static const char yytranslate[] = { 0,
235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
238 2, 2, 110, 2, 2, 2, 83, 71, 2, 93,
239 108, 81, 79, 60, 80, 92, 82, 2, 2, 2,
240 2, 2, 2, 2, 2, 2, 2, 63, 61, 75,
241 65, 76, 66, 2, 2, 2, 2, 2, 2, 2,
242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
244 94, 2, 111, 70, 2, 2, 2, 2, 2, 2,
245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
247 2, 2, 59, 69, 109, 89, 2, 2, 2, 2,
248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
251 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
252 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
253 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
254 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
256 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
257 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
259 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
260 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
261 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
262 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
263 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
264 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
265 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
266 57, 58, 62, 64, 67, 68, 72, 73, 74, 77,
267 78, 84, 85, 86, 87, 88, 90, 91, 95, 96,
268 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
272 #if YYDEBUG != 0
273 static const short yyprhs[] = { 0,
274 0, 1, 3, 4, 7, 10, 12, 13, 14, 15,
275 17, 19, 20, 23, 26, 28, 30, 36, 41, 47,
276 52, 53, 60, 61, 67, 69, 72, 74, 77, 78,
277 85, 88, 92, 96, 100, 104, 109, 110, 116, 119,
278 123, 125, 127, 130, 133, 135, 138, 139, 145, 149,
279 151, 155, 157, 158, 161, 164, 168, 170, 174, 176,
280 180, 182, 186, 189, 192, 195, 197, 199, 205, 210,
281 213, 216, 220, 224, 227, 230, 234, 238, 241, 244,
282 247, 250, 253, 255, 257, 259, 260, 262, 265, 266,
283 268, 273, 277, 281, 282, 291, 297, 298, 308, 315,
284 316, 325, 331, 332, 342, 349, 352, 355, 357, 360,
285 362, 369, 374, 381, 386, 389, 391, 394, 397, 399,
286 402, 404, 407, 410, 415, 418, 422, 423, 424, 426,
287 430, 433, 437, 439, 444, 447, 452, 455, 460, 463,
288 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
289 485, 487, 488, 495, 496, 503, 504, 510, 511, 517,
290 518, 526, 527, 535, 536, 543, 544, 551, 552, 553,
291 559, 565, 567, 569, 575, 581, 582, 584, 586, 587,
292 589, 591, 595, 597, 599, 601, 603, 605, 607, 609,
293 611, 613, 615, 617, 621, 623, 627, 628, 630, 632,
294 633, 641, 643, 645, 649, 654, 658, 659, 663, 665,
295 669, 673, 677, 681, 683, 685, 687, 690, 693, 696,
296 699, 702, 705, 708, 713, 716, 721, 724, 728, 732,
297 737, 742, 748, 754, 761, 764, 769, 775, 778, 781,
298 788, 792, 796, 800, 802, 806, 809, 813, 818, 820,
299 823, 829, 831, 835, 839, 843, 847, 851, 855, 859,
300 863, 867, 871, 875, 879, 883, 887, 891, 895, 899,
301 903, 907, 913, 917, 921, 923, 926, 930, 934, 936,
302 938, 940, 942, 944, 945, 951, 957, 963, 969, 975,
303 977, 979, 981, 983, 986, 988, 991, 994, 998, 1003,
304 1008, 1010, 1012, 1014, 1018, 1020, 1022, 1024, 1026, 1030,
305 1034, 1038, 1039, 1044, 1049, 1052, 1057, 1060, 1065, 1068,
306 1071, 1073, 1078, 1080, 1088, 1096, 1104, 1112, 1117, 1122,
307 1125, 1128, 1131, 1133, 1138, 1141, 1144, 1150, 1154, 1157,
308 1160, 1166, 1170, 1176, 1180, 1185, 1192, 1195, 1197, 1200,
309 1202, 1205, 1207, 1209, 1211, 1214, 1215, 1218, 1221, 1225,
310 1229, 1233, 1236, 1239, 1242, 1244, 1246, 1248, 1251, 1254,
311 1257, 1260, 1262, 1264, 1266, 1268, 1271, 1274, 1278, 1282,
312 1286, 1291, 1293, 1296, 1299, 1302, 1304, 1306, 1308, 1311,
313 1314, 1317, 1319, 1321, 1324, 1327, 1331, 1333, 1336, 1338,
314 1340, 1342, 1347, 1352, 1357, 1362, 1364, 1366, 1368, 1370,
315 1374, 1376, 1380, 1382, 1386, 1387, 1392, 1393, 1400, 1404,
316 1405, 1410, 1412, 1416, 1420, 1421, 1426, 1430, 1431, 1433,
317 1435, 1438, 1445, 1447, 1451, 1452, 1454, 1459, 1466, 1471,
318 1473, 1475, 1477, 1479, 1481, 1485, 1486, 1489, 1491, 1494,
319 1498, 1503, 1505, 1507, 1511, 1516, 1520, 1526, 1528, 1533,
320 1537, 1541, 1542, 1546, 1550, 1554, 1555, 1558, 1561, 1562,
321 1569, 1570, 1576, 1579, 1582, 1585, 1586, 1587, 1588, 1599,
322 1601, 1602, 1604, 1605, 1607, 1609, 1612, 1615, 1618, 1621,
323 1624, 1627, 1630, 1633, 1636, 1640, 1645, 1649, 1652, 1656,
324 1658, 1659, 1663, 1666, 1669, 1671, 1673, 1674, 1677, 1681,
325 1683, 1688, 1690, 1694, 1696, 1698, 1701, 1704, 1708, 1712,
326 1713, 1715, 1719, 1722, 1725, 1727, 1730, 1733, 1736, 1739,
327 1742, 1745, 1748, 1750, 1753, 1756, 1760, 1763, 1766, 1771,
328 1776, 1779, 1781, 1787, 1792, 1794, 1795, 1797, 1801, 1802,
329 1804, 1808, 1810, 1812, 1814, 1816, 1821, 1826, 1831, 1836,
330 1841, 1845, 1850, 1855, 1860, 1865, 1869, 1872, 1874, 1876,
331 1880, 1882, 1886, 1889, 1891, 1898, 1899, 1902, 1904, 1907,
332 1911, 1915, 1917, 1921, 1923, 1926, 1930, 1934, 1937, 1940,
333 1944, 1946, 1951, 1956, 1960, 1964, 1967, 1969, 1971, 1974,
334 1976, 1978, 1981, 1984, 1986, 1989, 1993, 1997, 2000, 2003,
335 2007, 2009, 2013, 2017, 2020, 2023, 2027, 2029, 2034, 2038,
336 2043, 2047, 2049, 2052, 2055, 2058, 2061, 2064, 2066, 2069,
337 2074, 2079, 2082, 2084, 2086, 2088, 2090, 2093, 2098, 2101,
338 2104, 2107, 2110, 2112, 2115, 2118, 2121, 2124, 2128, 2130,
339 2133, 2137, 2142, 2145, 2148, 2151, 2154, 2157, 2160, 2165,
340 2168, 2170, 2173, 2176, 2180, 2182, 2186, 2189, 2193, 2196,
341 2199, 2203, 2205, 2209, 2214, 2216, 2219, 2223, 2226, 2229,
342 2231, 2235, 2238, 2241, 2243, 2246, 2250, 2252, 2256, 2263,
343 2268, 2273, 2277, 2283, 2287, 2291, 2295, 2298, 2300, 2302,
344 2305, 2308, 2311, 2312, 2314, 2316, 2319, 2323, 2325, 2328,
345 2329, 2333, 2334, 2335, 2341, 2343, 2344, 2347, 2349, 2351,
346 2353, 2356, 2357, 2362, 2364, 2365, 2366, 2372, 2373, 2374,
347 2382, 2383, 2384, 2385, 2386, 2399, 2400, 2401, 2409, 2410,
348 2416, 2417, 2425, 2426, 2431, 2434, 2437, 2440, 2444, 2451,
349 2460, 2471, 2484, 2489, 2493, 2496, 2499, 2501, 2503, 2505,
350 2507, 2509, 2510, 2511, 2518, 2519, 2520, 2526, 2528, 2531,
351 2532, 2533, 2539, 2541, 2543, 2547, 2551, 2554, 2557, 2560,
352 2563, 2566, 2568, 2571, 2572, 2574, 2575, 2577, 2579, 2580,
353 2582, 2584, 2588, 2593, 2595, 2599, 2600, 2602, 2604, 2606,
354 2609, 2612, 2615, 2617, 2620, 2623, 2624, 2628, 2630, 2632,
355 2634, 2637, 2640, 2643, 2648, 2651, 2654, 2657, 2660, 2663,
356 2666, 2668, 2671, 2673, 2676, 2678, 2680, 2681, 2682, 2684,
357 2685, 2690, 2693, 2695, 2697, 2701, 2702, 2706, 2710, 2714,
358 2716, 2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743,
359 2746, 2749, 2752, 2755, 2758, 2761, 2764, 2767, 2770, 2773,
360 2776, 2779, 2782, 2785, 2789, 2792, 2795, 2798, 2801, 2805,
361 2808, 2811, 2816, 2821, 2825
364 static const short yyrhs[] = { -1,
365 113, 0, 0, 114, 120, 0, 113, 120, 0, 113,
366 0, 0, 0, 0, 32, 0, 27, 0, 0, 121,
367 122, 0, 148, 147, 0, 144, 0, 141, 0, 119,
368 93, 217, 108, 61, 0, 133, 59, 115, 109, 0,
369 133, 116, 148, 117, 147, 0, 133, 116, 144, 117,
370 0, 0, 45, 163, 59, 123, 115, 109, 0, 0,
371 45, 59, 124, 115, 109, 0, 125, 0, 127, 61,
372 0, 129, 0, 118, 122, 0, 0, 45, 163, 65,
373 126, 132, 61, 0, 47, 310, 0, 47, 324, 310,
374 0, 47, 324, 207, 0, 47, 131, 163, 0, 47,
375 324, 163, 0, 47, 324, 131, 163, 0, 0, 47,
376 45, 130, 132, 61, 0, 58, 55, 0, 131, 58,
377 55, 0, 207, 0, 310, 0, 324, 310, 0, 324,
378 207, 0, 97, 0, 133, 97, 0, 0, 49, 75,
379 135, 136, 76, 0, 49, 75, 76, 0, 140, 0,
380 136, 60, 140, 0, 163, 0, 0, 267, 137, 0,
381 46, 137, 0, 134, 267, 137, 0, 138, 0, 138,
382 65, 223, 0, 388, 0, 388, 65, 202, 0, 139,
383 0, 139, 65, 184, 0, 134, 142, 0, 134, 1,
384 0, 148, 147, 0, 143, 0, 141, 0, 133, 116,
385 148, 117, 147, 0, 133, 116, 143, 117, 0, 118,
386 142, 0, 234, 61, 0, 227, 233, 61, 0, 224,
387 232, 61, 0, 259, 61, 0, 234, 61, 0, 227,
388 233, 61, 0, 224, 232, 61, 0, 227, 61, 0,
389 166, 61, 0, 224, 61, 0, 1, 61, 0, 1,
390 109, 0, 61, 0, 218, 0, 159, 0, 0, 158,
391 0, 158, 61, 0, 0, 107, 0, 154, 146, 145,
392 335, 0, 154, 146, 359, 0, 154, 146, 1, 0,
393 0, 315, 5, 93, 150, 379, 108, 297, 391, 0,
394 315, 5, 48, 297, 391, 0, 0, 324, 315, 5,
395 93, 151, 379, 108, 297, 391, 0, 324, 315, 5,
396 48, 297, 391, 0, 0, 315, 179, 93, 152, 379,
397 108, 297, 391, 0, 315, 179, 48, 297, 391, 0,
398 0, 324, 315, 179, 93, 153, 379, 108, 297, 391,
399 0, 324, 315, 179, 48, 297, 391, 0, 224, 221,
400 0, 227, 307, 0, 307, 0, 227, 149, 0, 149,
401 0, 5, 93, 379, 108, 297, 391, 0, 5, 48,
402 297, 391, 0, 179, 93, 379, 108, 297, 391, 0,
403 179, 48, 297, 391, 0, 227, 155, 0, 155, 0,
404 224, 221, 0, 227, 307, 0, 307, 0, 227, 149,
405 0, 149, 0, 25, 3, 0, 157, 251, 0, 157,
406 93, 196, 108, 0, 157, 48, 0, 63, 160, 161,
407 0, 0, 0, 162, 0, 161, 60, 162, 0, 161,
408 1, 0, 93, 196, 108, 0, 48, 0, 164, 93,
409 196, 108, 0, 164, 48, 0, 303, 93, 196, 108,
410 0, 303, 48, 0, 317, 93, 196, 108, 0, 317,
411 48, 0, 1, 0, 3, 0, 4, 0, 5, 0,
412 57, 0, 58, 0, 3, 0, 57, 0, 58, 0,
413 104, 0, 103, 0, 105, 0, 0, 49, 175, 230,
414 61, 167, 176, 0, 0, 49, 175, 224, 221, 168,
415 176, 0, 0, 49, 175, 307, 169, 176, 0, 0,
416 49, 175, 149, 170, 176, 0, 0, 7, 49, 175,
417 230, 61, 171, 176, 0, 0, 7, 49, 175, 224,
418 221, 172, 176, 0, 0, 7, 49, 175, 307, 173,
419 176, 0, 0, 7, 49, 175, 149, 174, 176, 0,
420 0, 0, 57, 75, 182, 181, 180, 0, 4, 75,
421 182, 181, 180, 0, 179, 0, 177, 0, 163, 75,
422 182, 76, 180, 0, 5, 75, 182, 181, 180, 0,
423 0, 76, 0, 78, 0, 0, 183, 0, 184, 0,
424 183, 60, 184, 0, 223, 0, 57, 0, 202, 0,
425 80, 0, 79, 0, 87, 0, 88, 0, 110, 0,
426 195, 0, 202, 0, 48, 0, 93, 186, 108, 0,
427 48, 0, 93, 190, 108, 0, 0, 190, 0, 1,
428 0, 0, 369, 221, 235, 244, 65, 191, 252, 0,
429 186, 0, 109, 0, 332, 330, 109, 0, 332, 330,
430 1, 109, 0, 332, 1, 109, 0, 0, 59, 194,
431 192, 0, 344, 0, 202, 60, 202, 0, 202, 60,
432 1, 0, 195, 60, 202, 0, 195, 60, 1, 0,
433 202, 0, 195, 0, 212, 0, 118, 201, 0, 81,
434 201, 0, 71, 201, 0, 89, 201, 0, 185, 201,
435 0, 68, 163, 0, 13, 197, 0, 13, 93, 223,
436 108, 0, 29, 197, 0, 29, 93, 223, 108, 0,
437 214, 296, 0, 214, 296, 199, 0, 214, 198, 296,
438 0, 214, 198, 296, 199, 0, 214, 93, 223, 108,
439 0, 214, 93, 223, 108, 199, 0, 214, 198, 93,
440 223, 108, 0, 214, 198, 93, 223, 108, 199, 0,
441 215, 201, 0, 215, 94, 111, 201, 0, 215, 94,
442 186, 111, 201, 0, 34, 201, 0, 35, 201, 0,
443 36, 93, 202, 60, 223, 108, 0, 93, 196, 108,
444 0, 59, 196, 109, 0, 93, 196, 108, 0, 48,
445 0, 93, 230, 108, 0, 65, 252, 0, 93, 223,
446 108, 0, 200, 93, 223, 108, 0, 197, 0, 200,
447 197, 0, 200, 59, 253, 265, 109, 0, 201, 0,
448 202, 84, 202, 0, 202, 85, 202, 0, 202, 79,
449 202, 0, 202, 80, 202, 0, 202, 81, 202, 0,
450 202, 82, 202, 0, 202, 83, 202, 0, 202, 77,
451 202, 0, 202, 78, 202, 0, 202, 74, 202, 0,
452 202, 75, 202, 0, 202, 76, 202, 0, 202, 73,
453 202, 0, 202, 72, 202, 0, 202, 71, 202, 0,
454 202, 69, 202, 0, 202, 70, 202, 0, 202, 68,
455 202, 0, 202, 67, 202, 0, 202, 66, 374, 63,
456 202, 0, 202, 65, 202, 0, 202, 64, 202, 0,
457 62, 0, 62, 202, 0, 89, 389, 163, 0, 89,
458 389, 177, 0, 205, 0, 396, 0, 3, 0, 57,
459 0, 58, 0, 0, 6, 75, 204, 182, 181, 0,
460 396, 75, 204, 182, 181, 0, 49, 163, 75, 182,
461 181, 0, 49, 6, 75, 182, 181, 0, 49, 396,
462 75, 182, 181, 0, 203, 0, 4, 0, 5, 0,
463 209, 0, 245, 209, 0, 203, 0, 81, 208, 0,
464 71, 208, 0, 93, 208, 108, 0, 3, 75, 182,
465 181, 0, 58, 75, 183, 181, 0, 309, 0, 203,
466 0, 210, 0, 93, 208, 108, 0, 203, 0, 10,
467 0, 216, 0, 217, 0, 93, 186, 108, 0, 93,
468 208, 108, 0, 93, 1, 108, 0, 0, 93, 213,
469 336, 108, 0, 203, 93, 196, 108, 0, 203, 48,
470 0, 212, 93, 196, 108, 0, 212, 48, 0, 212,
471 94, 186, 111, 0, 212, 87, 0, 212, 88, 0,
472 41, 0, 9, 93, 196, 108, 0, 313, 0, 51,
473 75, 223, 76, 93, 186, 108, 0, 52, 75, 223,
474 76, 93, 186, 108, 0, 53, 75, 223, 76, 93,
475 186, 108, 0, 54, 75, 223, 76, 93, 186, 108,
476 0, 50, 93, 186, 108, 0, 50, 93, 223, 108,
477 0, 324, 3, 0, 324, 205, 0, 324, 396, 0,
478 312, 0, 312, 93, 196, 108, 0, 312, 48, 0,
479 219, 206, 0, 219, 206, 93, 196, 108, 0, 219,
480 206, 48, 0, 219, 207, 0, 219, 312, 0, 219,
481 207, 93, 196, 108, 0, 219, 207, 48, 0, 219,
482 312, 93, 196, 108, 0, 219, 312, 48, 0, 219,
483 89, 8, 48, 0, 219, 8, 55, 89, 8, 48,
484 0, 219, 1, 0, 40, 0, 324, 40, 0, 39,
485 0, 324, 215, 0, 43, 0, 44, 0, 11, 0,
486 217, 11, 0, 0, 212, 92, 0, 212, 91, 0,
487 230, 232, 61, 0, 224, 232, 61, 0, 227, 233,
488 61, 0, 224, 61, 0, 227, 61, 0, 118, 220,
489 0, 301, 0, 307, 0, 48, 0, 222, 48, 0,
490 228, 328, 0, 298, 328, 0, 230, 328, 0, 228,
491 0, 298, 0, 228, 0, 225, 0, 227, 230, 0,
492 230, 226, 0, 230, 229, 226, 0, 227, 230, 226,
493 0, 227, 230, 229, 0, 227, 230, 229, 226, 0,
494 7, 0, 226, 231, 0, 226, 7, 0, 226, 245,
495 0, 245, 0, 298, 0, 7, 0, 227, 9, 0,
496 227, 7, 0, 227, 245, 0, 245, 0, 230, 0,
497 298, 230, 0, 230, 229, 0, 298, 230, 229, 0,
498 231, 0, 229, 231, 0, 259, 0, 8, 0, 304,
499 0, 28, 93, 186, 108, 0, 28, 93, 223, 108,
500 0, 30, 93, 186, 108, 0, 30, 93, 223, 108,
501 0, 8, 0, 9, 0, 259, 0, 240, 0, 232,
502 60, 236, 0, 241, 0, 233, 60, 236, 0, 242,
503 0, 234, 60, 236, 0, 0, 119, 93, 217, 108,
504 0, 0, 221, 235, 244, 65, 237, 252, 0, 221,
505 235, 244, 0, 0, 244, 65, 239, 252, 0, 244,
506 0, 221, 235, 238, 0, 307, 235, 238, 0, 0,
507 307, 235, 243, 238, 0, 149, 235, 244, 0, 0,
508 245, 0, 246, 0, 245, 246, 0, 31, 93, 93,
509 247, 108, 108, 0, 248, 0, 247, 60, 248, 0,
510 0, 249, 0, 249, 93, 3, 108, 0, 249, 93,
511 3, 60, 196, 108, 0, 249, 93, 196, 108, 0,
512 163, 0, 7, 0, 8, 0, 9, 0, 163, 0,
513 250, 60, 163, 0, 0, 65, 252, 0, 202, 0,
514 59, 109, 0, 59, 253, 109, 0, 59, 253, 60,
515 109, 0, 1, 0, 252, 0, 253, 60, 252, 0,
516 94, 202, 111, 252, 0, 163, 63, 252, 0, 253,
517 60, 163, 63, 252, 0, 102, 0, 254, 146, 145,
518 335, 0, 254, 146, 359, 0, 254, 146, 1, 0,
519 0, 256, 255, 147, 0, 101, 202, 107, 0, 101,
520 1, 107, 0, 0, 258, 257, 0, 258, 1, 0,
521 0, 14, 163, 59, 260, 293, 109, 0, 0, 14,
522 59, 261, 293, 109, 0, 14, 163, 0, 14, 322,
523 0, 46, 317, 0, 0, 0, 0, 274, 59, 262,
524 280, 109, 244, 263, 258, 264, 256, 0, 274, 0,
525 0, 60, 0, 0, 60, 0, 37, 0, 267, 7,
526 0, 267, 8, 0, 267, 9, 0, 267, 37, 0,
527 267, 245, 0, 267, 163, 0, 267, 165, 0, 268,
528 59, 0, 268, 63, 0, 267, 315, 163, 0, 267,
529 324, 315, 163, 0, 267, 324, 163, 0, 267, 178,
530 0, 267, 315, 178, 0, 268, 0, 0, 269, 272,
531 275, 0, 270, 275, 0, 267, 59, 0, 273, 0,
532 271, 0, 0, 63, 389, 0, 63, 389, 276, 0,
533 277, 0, 276, 60, 389, 277, 0, 278, 0, 279,
534 389, 278, 0, 317, 0, 303, 0, 38, 389, 0,
535 7, 389, 0, 279, 38, 389, 0, 279, 7, 389,
536 0, 0, 282, 0, 280, 281, 282, 0, 280, 281,
537 0, 38, 63, 0, 283, 0, 282, 283, 0, 284,
538 61, 0, 284, 109, 0, 156, 63, 0, 156, 95,
539 0, 156, 25, 0, 156, 59, 0, 61, 0, 118,
540 283, 0, 134, 283, 0, 134, 224, 61, 0, 224,
541 285, 0, 227, 286, 0, 307, 235, 244, 251, 0,
542 149, 235, 244, 251, 0, 63, 202, 0, 1, 0,
543 227, 155, 235, 244, 251, 0, 155, 235, 244, 251,
544 0, 127, 0, 0, 287, 0, 285, 60, 288, 0,
545 0, 290, 0, 286, 60, 292, 0, 289, 0, 290,
546 0, 291, 0, 292, 0, 301, 235, 244, 251, 0,
547 4, 63, 202, 244, 0, 307, 235, 244, 251, 0,
548 149, 235, 244, 251, 0, 3, 63, 202, 244, 0,
549 63, 202, 244, 0, 301, 235, 244, 251, 0, 4,
550 63, 202, 244, 0, 307, 235, 244, 251, 0, 3,
551 63, 202, 244, 0, 63, 202, 244, 0, 294, 266,
552 0, 266, 0, 295, 0, 294, 60, 295, 0, 163,
553 0, 163, 65, 202, 0, 369, 325, 0, 369, 0,
554 93, 223, 108, 94, 186, 111, 0, 0, 297, 9,
555 0, 9, 0, 298, 9, 0, 93, 196, 108, 0,
556 93, 379, 108, 0, 48, 0, 93, 1, 108, 0,
557 301, 0, 245, 301, 0, 81, 298, 300, 0, 71,
558 298, 300, 0, 81, 300, 0, 71, 300, 0, 323,
559 297, 300, 0, 302, 0, 302, 299, 297, 391, 0,
560 302, 94, 186, 111, 0, 302, 94, 111, 0, 93,
561 300, 108, 0, 315, 314, 0, 314, 0, 314, 0,
562 324, 314, 0, 303, 0, 305, 0, 324, 305, 0,
563 315, 314, 0, 307, 0, 245, 307, 0, 81, 298,
564 306, 0, 71, 298, 306, 0, 81, 306, 0, 71,
565 306, 0, 323, 297, 306, 0, 211, 0, 81, 298,
566 306, 0, 71, 298, 306, 0, 81, 308, 0, 71,
567 308, 0, 323, 297, 306, 0, 309, 0, 211, 299,
568 297, 391, 0, 93, 308, 108, 0, 211, 94, 186,
569 111, 0, 211, 94, 111, 0, 311, 0, 315, 210,
570 0, 315, 207, 0, 315, 206, 0, 315, 203, 0,
571 315, 206, 0, 311, 0, 324, 311, 0, 230, 93,
572 196, 108, 0, 230, 93, 208, 108, 0, 230, 222,
573 0, 4, 0, 5, 0, 177, 0, 316, 0, 315,
574 316, 0, 315, 49, 321, 55, 0, 4, 55, 0,
575 5, 55, 0, 58, 55, 0, 177, 55, 0, 318,
576 0, 324, 318, 0, 319, 163, 0, 319, 177, 0,
577 319, 321, 0, 319, 49, 321, 0, 320, 0, 319,
578 320, 0, 319, 321, 55, 0, 319, 49, 321, 55,
579 0, 4, 55, 0, 5, 55, 0, 177, 55, 0,
580 57, 55, 0, 3, 55, 0, 58, 55, 0, 163,
581 75, 182, 181, 0, 324, 314, 0, 305, 0, 324,
582 305, 0, 315, 81, 0, 324, 315, 81, 0, 55,
583 0, 81, 297, 325, 0, 81, 297, 0, 71, 297,
584 325, 0, 71, 297, 0, 323, 297, 0, 323, 297,
585 325, 0, 326, 0, 94, 186, 111, 0, 326, 94,
586 186, 111, 0, 328, 0, 245, 328, 0, 81, 298,
587 327, 0, 81, 327, 0, 81, 298, 0, 81, 0,
588 71, 298, 327, 0, 71, 327, 0, 71, 298, 0,
589 71, 0, 323, 297, 0, 323, 297, 327, 0, 329,
590 0, 93, 327, 108, 0, 329, 93, 379, 108, 297,
591 391, 0, 329, 48, 297, 391, 0, 329, 94, 186,
592 111, 0, 329, 94, 111, 0, 93, 380, 108, 297,
593 391, 0, 200, 297, 391, 0, 222, 297, 391, 0,
594 94, 186, 111, 0, 94, 111, 0, 343, 0, 331,
595 0, 330, 343, 0, 330, 331, 0, 1, 61, 0,
596 0, 333, 0, 334, 0, 333, 334, 0, 33, 250,
597 61, 0, 336, 0, 1, 336, 0, 0, 59, 337,
598 192, 0, 0, 0, 15, 339, 188, 340, 341, 0,
599 336, 0, 0, 342, 344, 0, 336, 0, 344, 0,
600 220, 0, 186, 61, 0, 0, 338, 16, 345, 341,
601 0, 338, 0, 0, 0, 17, 346, 188, 347, 193,
602 0, 0, 0, 18, 348, 341, 17, 349, 187, 61,
603 0, 0, 0, 0, 0, 19, 350, 93, 372, 351,
604 189, 61, 352, 374, 108, 353, 193, 0, 0, 0,
605 20, 354, 93, 190, 108, 355, 341, 0, 0, 21,
606 202, 63, 356, 343, 0, 0, 21, 202, 12, 202,
607 63, 357, 343, 0, 0, 22, 63, 358, 343, 0,
608 23, 61, 0, 24, 61, 0, 25, 61, 0, 25,
609 186, 61, 0, 119, 373, 93, 217, 108, 61, 0,
610 119, 373, 93, 217, 63, 375, 108, 61, 0, 119,
611 373, 93, 217, 63, 375, 63, 375, 108, 61, 0,
612 119, 373, 93, 217, 63, 375, 63, 375, 63, 378,
613 108, 61, 0, 26, 81, 186, 61, 0, 26, 163,
614 61, 0, 371, 343, 0, 371, 109, 0, 61, 0,
615 362, 0, 129, 0, 128, 0, 125, 0, 0, 0,
616 95, 360, 145, 336, 361, 365, 0, 0, 0, 95,
617 363, 336, 364, 365, 0, 366, 0, 365, 366, 0,
618 0, 0, 96, 367, 370, 368, 336, 0, 228, 0,
619 298, 0, 93, 12, 108, 0, 93, 388, 108, 0,
620 3, 63, 0, 57, 63, 0, 4, 63, 0, 5,
621 63, 0, 374, 61, 0, 220, 0, 59, 192, 0,
622 0, 9, 0, 0, 186, 0, 1, 0, 0, 376,
623 0, 377, 0, 376, 60, 377, 0, 11, 93, 186,
624 108, 0, 11, 0, 378, 60, 11, 0, 0, 380,
625 0, 223, 0, 384, 0, 385, 12, 0, 384, 12,
626 0, 223, 12, 0, 12, 0, 384, 63, 0, 223,
627 63, 0, 0, 65, 382, 383, 0, 100, 0, 252,
628 0, 386, 0, 388, 381, 0, 385, 387, 0, 385,
629 390, 0, 385, 390, 65, 252, 0, 384, 60, 0,
630 223, 60, 0, 225, 221, 0, 228, 221, 0, 230,
631 221, 0, 225, 328, 0, 225, 0, 227, 307, 0,
632 388, 0, 388, 381, 0, 386, 0, 223, 0, 0,
633 0, 307, 0, 0, 62, 93, 393, 108, 0, 62,
634 48, 0, 223, 0, 392, 0, 393, 60, 392, 0,
635 0, 81, 297, 394, 0, 71, 297, 394, 0, 323,
636 297, 394, 0, 42, 0, 395, 81, 0, 395, 82,
637 0, 395, 83, 0, 395, 79, 0, 395, 80, 0,
638 395, 71, 0, 395, 69, 0, 395, 70, 0, 395,
639 89, 0, 395, 60, 0, 395, 74, 0, 395, 75,
640 0, 395, 76, 0, 395, 73, 0, 395, 64, 0,
641 395, 65, 0, 395, 77, 0, 395, 78, 0, 395,
642 87, 0, 395, 88, 0, 395, 68, 0, 395, 67,
643 0, 395, 110, 0, 395, 66, 63, 0, 395, 72,
644 0, 395, 91, 0, 395, 84, 0, 395, 48, 0,
645 395, 94, 111, 0, 395, 40, 0, 395, 39, 0,
646 395, 40, 94, 111, 0, 395, 39, 94, 111, 0,
647 395, 369, 394, 0, 395, 1, 0
650 #endif
652 #if YYDEBUG != 0
653 static const short yyrline[] = { 0,
654 351, 353, 361, 364, 365, 369, 371, 374, 379, 383,
655 389, 393, 396, 400, 403, 405, 407, 410, 412, 415,
656 418, 420, 422, 424, 426, 427, 429, 430, 434, 437,
657 446, 449, 451, 455, 458, 460, 464, 467, 479, 486,
658 494, 496, 497, 499, 503, 506, 512, 515, 517, 522,
659 525, 529, 532, 535, 538, 542, 547, 557, 559, 561,
660 563, 565, 578, 581, 585, 588, 590, 592, 595, 598,
661 602, 604, 606, 608, 613, 615, 617, 619, 621, 622,
662 629, 630, 631, 634, 637, 641, 643, 644, 647, 649,
663 652, 655, 657, 661, 664, 666, 670, 672, 674, 678,
664 680, 682, 686, 688, 690, 696, 700, 703, 706, 709,
665 714, 717, 719, 721, 727, 739, 742, 747, 752, 755,
666 760, 765, 774, 777, 779, 783, 792, 808, 811, 813,
667 814, 817, 824, 830, 832, 834, 836, 838, 841, 844,
668 847, 849, 850, 851, 852, 855, 857, 858, 861, 863,
669 864, 867, 872, 872, 876, 876, 879, 879, 882, 882,
670 886, 886, 891, 891, 894, 894, 897, 899, 902, 909,
671 913, 916, 919, 921, 925, 931, 940, 942, 950, 953,
672 956, 959, 963, 966, 968, 971, 974, 976, 978, 980,
673 984, 987, 990, 995, 999, 1004, 1008, 1011, 1012, 1016,
674 1034, 1040, 1043, 1045, 1046, 1047, 1050, 1054, 1055, 1059,
675 1063, 1066, 1068, 1072, 1075, 1078, 1082, 1085, 1087, 1089,
676 1091, 1094, 1098, 1100, 1103, 1105, 1111, 1114, 1117, 1120,
677 1123, 1128, 1131, 1134, 1138, 1140, 1144, 1148, 1150, 1152,
678 1157, 1160, 1165, 1168, 1170, 1178, 1191, 1196, 1202, 1204,
679 1206, 1219, 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236,
680 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254, 1256,
681 1258, 1260, 1262, 1266, 1268, 1270, 1287, 1290, 1292, 1293,
682 1294, 1295, 1296, 1299, 1311, 1314, 1318, 1321, 1323, 1328,
683 1330, 1331, 1334, 1336, 1344, 1346, 1348, 1350, 1354, 1357,
684 1361, 1365, 1366, 1367, 1371, 1379, 1380, 1381, 1391, 1393,
685 1396, 1398, 1409, 1414, 1416, 1418, 1420, 1422, 1424, 1426,
686 1429, 1431, 1442, 1443, 1447, 1451, 1455, 1459, 1461, 1465,
687 1467, 1469, 1477, 1479, 1481, 1483, 1487, 1489, 1491, 1493,
688 1498, 1500, 1502, 1504, 1507, 1509, 1511, 1555, 1558, 1562,
689 1565, 1569, 1572, 1577, 1579, 1583, 1592, 1595, 1602, 1608,
690 1612, 1614, 1619, 1621, 1628, 1630, 1634, 1638, 1644, 1648,
691 1651, 1655, 1658, 1668, 1670, 1673, 1677, 1680, 1683, 1686,
692 1689, 1695, 1701, 1703, 1708, 1710, 1728, 1731, 1733, 1736,
693 1742, 1744, 1754, 1758, 1761, 1764, 1769, 1772, 1780, 1782,
694 1784, 1786, 1789, 1792, 1807, 1826, 1829, 1831, 1834, 1836,
695 1840, 1842, 1846, 1848, 1852, 1855, 1859, 1865, 1866, 1878,
696 1884, 1886, 1892, 1897, 1902, 1908, 1909, 1917, 1920, 1924,
697 1927, 1931, 1936, 1939, 1943, 1946, 1948, 1950, 1952, 1959,
698 1961, 1962, 1963, 1967, 1970, 1974, 1977, 1983, 1985, 1988,
699 1991, 1994, 2000, 2003, 2006, 2008, 2010, 2014, 2021, 2027,
700 2032, 2038, 2040, 2045, 2048, 2051, 2053, 2055, 2059, 2063,
701 2068, 2071, 2076, 2079, 2082, 2088, 2090, 2102, 2106, 2111,
702 2135, 2137, 2140, 2142, 2147, 2149, 2151, 2153, 2155, 2157,
703 2161, 2169, 2172, 2174, 2178, 2185, 2191, 2197, 2203, 2213,
704 2219, 2223, 2230, 2258, 2268, 2274, 2277, 2280, 2282, 2286,
705 2288, 2292, 2295, 2299, 2302, 2305, 2307, 2311, 2322, 2336,
706 2337, 2338, 2339, 2342, 2351, 2356, 2362, 2364, 2369, 2371,
707 2373, 2375, 2377, 2379, 2382, 2392, 2399, 2424, 2430, 2433,
708 2436, 2438, 2449, 2454, 2457, 2462, 2465, 2472, 2482, 2485,
709 2492, 2502, 2504, 2507, 2509, 2512, 2519, 2527, 2534, 2540,
710 2546, 2554, 2558, 2563, 2567, 2570, 2575, 2577, 2584, 2586,
711 2589, 2592, 2597, 2601, 2606, 2616, 2619, 2623, 2627, 2636,
712 2639, 2641, 2643, 2649, 2651, 2660, 2663, 2665, 2667, 2669,
713 2673, 2676, 2679, 2681, 2683, 2685, 2689, 2692, 2703, 2713,
714 2715, 2716, 2720, 2728, 2730, 2738, 2741, 2743, 2745, 2747,
715 2751, 2754, 2757, 2759, 2761, 2763, 2767, 2770, 2773, 2775,
716 2777, 2779, 2781, 2788, 2792, 2797, 2801, 2806, 2808, 2812,
717 2815, 2817, 2820, 2822, 2823, 2826, 2828, 2830, 2837, 2848,
718 2854, 2860, 2874, 2876, 2880, 2894, 2896, 2898, 2902, 2908,
719 2921, 2924, 2929, 2942, 2948, 2950, 2951, 2952, 2960, 2965,
720 2974, 2975, 2979, 2982, 2988, 2994, 2997, 2999, 3001, 3003,
721 3007, 3011, 3015, 3018, 3022, 3024, 3033, 3036, 3038, 3040,
722 3042, 3044, 3046, 3048, 3050, 3054, 3058, 3062, 3066, 3068,
723 3070, 3072, 3074, 3076, 3078, 3080, 3082, 3090, 3092, 3093,
724 3094, 3097, 3103, 3105, 3110, 3112, 3115, 3128, 3131, 3134,
725 3138, 3141, 3148, 3150, 3153, 3155, 3157, 3160, 3163, 3166,
726 3169, 3171, 3174, 3178, 3180, 3186, 3188, 3189, 3191, 3196,
727 3198, 3200, 3202, 3204, 3207, 3208, 3210, 3213, 3214, 3217,
728 3217, 3220, 3220, 3223, 3223, 3225, 3227, 3229, 3231, 3237,
729 3243, 3246, 3249, 3255, 3257, 3258, 3261, 3263, 3264, 3265,
730 3267, 3270, 3273, 3276, 3282, 3286, 3288, 3291, 3293, 3296,
731 3300, 3302, 3305, 3307, 3310, 3327, 3335, 3338, 3340, 3342,
732 3346, 3349, 3350, 3358, 3362, 3366, 3369, 3370, 3376, 3379,
733 3382, 3384, 3388, 3393, 3396, 3406, 3411, 3412, 3419, 3422,
734 3425, 3427, 3430, 3432, 3442, 3456, 3460, 3463, 3465, 3469,
735 3473, 3476, 3479, 3481, 3485, 3487, 3494, 3501, 3504, 3508,
736 3512, 3516, 3522, 3526, 3531, 3533, 3536, 3541, 3547, 3558,
737 3561, 3563, 3567, 3575, 3578, 3582, 3585, 3587, 3589, 3595,
738 3600, 3603, 3605, 3607, 3609, 3611, 3613, 3615, 3617, 3619,
739 3621, 3623, 3625, 3627, 3629, 3631, 3633, 3635, 3637, 3639,
740 3641, 3643, 3645, 3647, 3649, 3651, 3653, 3655, 3657, 3659,
741 3661, 3663, 3665, 3668, 3670
743 #endif
746 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
748 static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER",
749 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
750 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
751 "CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO","ASM_KEYWORD","TYPEOF",
752 "ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG",
753 "AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE",
754 "TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST",
755 "REINTERPRET_CAST","CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','",
756 "';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX",
757 "EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'",
758 "'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY",
759 "POINTSAT","'.'","'('","'['","TRY","CATCH","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
760 "DEFARG","DEFARG_MARKER","PRE_PARSED_FUNCTION_DECL","TYPENAME_DEFN","IDENTIFIER_DEFN",
761 "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
762 "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
763 "asm_keyword","lang_extdef","@2","extdef","@3","@4","namespace_alias","@5","using_decl",
764 "namespace_using_decl","using_directive","@6","namespace_qualifier","any_id",
765 "extern_lang_string","template_header","@7","template_parm_list","maybe_identifier",
766 "template_type_parm","template_template_parm","template_parm","template_def",
767 "template_extdef","template_datadef","datadef","ctor_initializer_opt","maybe_return_init",
768 "eat_saved_input","fndef","constructor_declarator","@8","@9","@10","@11","fn.def1",
769 "component_constructor_declarator","fn.def2","return_id","return_init","base_init",
770 ".set_base_init","member_init_list","member_init","identifier","notype_identifier",
771 "identifier_defn","explicit_instantiation","@12","@13","@14","@15","@16","@17",
772 "@18","@19","begin_explicit_instantiation","end_explicit_instantiation","template_type",
773 "apparent_template_type","self_template_type",".finish_template_type","template_close_bracket",
774 "template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null",
775 "paren_cond_or_null","xcond","condition","@20","compstmtend","already_scoped_stmt",
776 "@21","nontrivial_exprlist","nonnull_exprlist","unary_expr","new_placement",
777 "new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas","notype_unqualified_id",
778 "do_id","template_id","object_template_id","unqualified_id","expr_or_declarator_intern",
779 "expr_or_declarator","notype_template_declarator","direct_notype_declarator",
780 "primary","@22","new","delete","boolean.literal","string","nodecls","object",
781 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
782 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
783 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
784 "initdcl","@23","initdcl0_innards","@24","initdcl0","notype_initdcl0","nomods_initdcl0",
785 "@25","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
786 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
787 "pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
788 "@29","@30","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
789 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
790 "named_class_head","@31","unnamed_class_head","class_head","maybe_base_class_list",
791 "base_class_list","base_class","base_class.1","base_class_access_list","opt.component_decl_list",
792 "access_specifier","component_decl_list","component_decl","component_decl_1",
793 "components","notype_components","component_declarator0","component_declarator",
794 "after_type_component_declarator0","notype_component_declarator0","after_type_component_declarator",
795 "notype_component_declarator","enumlist_opt","enumlist","enumerator","new_type_id",
796 "cv_qualifiers","nonempty_cv_qualifiers","maybe_parmlist","after_type_declarator_intern",
797 "after_type_declarator","direct_after_type_declarator","nonnested_type","complete_type_name",
798 "nested_type","notype_declarator_intern","notype_declarator","complex_notype_declarator",
799 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
800 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
801 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
802 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
803 "absdcl_intern","absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
804 "label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
805 "@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
806 "@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
807 "@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
808 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
809 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
810 "complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
811 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
812 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
814 #endif
816 static const short yyr1[] = { 0,
817 112, 112, 114, 113, 113, 115, 115, 116, 117, 118,
818 119, 121, 120, 122, 122, 122, 122, 122, 122, 122,
819 123, 122, 124, 122, 122, 122, 122, 122, 126, 125,
820 127, 127, 127, 128, 128, 128, 130, 129, 131, 131,
821 132, 132, 132, 132, 133, 133, 135, 134, 134, 136,
822 136, 137, 137, 138, 138, 139, 140, 140, 140, 140,
823 140, 140, 141, 141, 142, 142, 142, 142, 142, 142,
824 143, 143, 143, 143, 144, 144, 144, 144, 144, 144,
825 144, 144, 144, 145, 145, 146, 146, 146, 147, 147,
826 148, 148, 148, 150, 149, 149, 151, 149, 149, 152,
827 149, 149, 153, 149, 149, 154, 154, 154, 154, 154,
828 155, 155, 155, 155, 156, 156, 156, 156, 156, 156,
829 156, 157, 158, 158, 158, 159, 160, 161, 161, 161,
830 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
831 163, 163, 163, 163, 163, 164, 164, 164, 165, 165,
832 165, 167, 166, 168, 166, 169, 166, 170, 166, 171,
833 166, 172, 166, 173, 166, 174, 166, 175, 176, 177,
834 177, 177, 178, 178, 179, 180, 181, 181, 182, 182,
835 183, 183, 184, 184, 184, 185, 185, 185, 185, 185,
836 186, 186, 187, 187, 188, 188, 189, 189, 189, 191,
837 190, 190, 192, 192, 192, 192, 194, 193, 193, 195,
838 195, 195, 195, 196, 196, 197, 197, 197, 197, 197,
839 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
840 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
841 198, 198, 199, 199, 199, 199, 200, 200, 201, 201,
842 201, 202, 202, 202, 202, 202, 202, 202, 202, 202,
843 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
844 202, 202, 202, 202, 202, 202, 203, 203, 203, 203,
845 203, 203, 203, 204, 205, 205, 206, 206, 206, 207,
846 207, 207, 208, 208, 209, 209, 209, 209, 210, 210,
847 211, 211, 211, 211, 212, 212, 212, 212, 212, 212,
848 212, 213, 212, 212, 212, 212, 212, 212, 212, 212,
849 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
850 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
851 212, 212, 212, 212, 212, 212, 212, 214, 214, 215,
852 215, 216, 216, 217, 217, 218, 219, 219, 220, 220,
853 220, 220, 220, 220, 221, 221, 222, 222, 223, 223,
854 223, 223, 223, 224, 224, 225, 225, 225, 225, 225,
855 225, 226, 226, 226, 226, 226, 227, 227, 227, 227,
856 227, 227, 228, 228, 228, 228, 229, 229, 230, 230,
857 230, 230, 230, 230, 230, 231, 231, 231, 232, 232,
858 233, 233, 234, 234, 235, 235, 237, 236, 236, 239,
859 238, 238, 240, 241, 243, 242, 242, 244, 244, 245,
860 245, 246, 247, 247, 248, 248, 248, 248, 248, 249,
861 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
862 252, 252, 253, 253, 253, 253, 253, 254, 255, 255,
863 255, 256, 256, 257, 257, 258, 258, 258, 260, 259,
864 261, 259, 259, 259, 259, 262, 263, 264, 259, 259,
865 265, 265, 266, 266, 267, 267, 267, 267, 267, 267,
866 268, 269, 269, 269, 270, 270, 270, 270, 270, 271,
867 272, 271, 271, 273, 274, 274, 275, 275, 275, 276,
868 276, 277, 277, 278, 278, 279, 279, 279, 279, 280,
869 280, 280, 280, 281, 282, 282, 283, 283, 283, 283,
870 283, 283, 283, 283, 283, 283, 284, 284, 284, 284,
871 284, 284, 284, 284, 284, 285, 285, 285, 286, 286,
872 286, 287, 287, 288, 288, 289, 289, 290, 290, 290,
873 290, 291, 291, 292, 292, 292, 293, 293, 294, 294,
874 295, 295, 296, 296, 296, 297, 297, 298, 298, 299,
875 299, 299, 299, 300, 300, 301, 301, 301, 301, 301,
876 301, 302, 302, 302, 302, 302, 302, 303, 303, 304,
877 304, 304, 305, 306, 306, 307, 307, 307, 307, 307,
878 307, 308, 308, 308, 308, 308, 308, 309, 309, 309,
879 309, 309, 309, 310, 310, 311, 311, 312, 312, 313,
880 313, 313, 314, 314, 314, 315, 315, 315, 316, 316,
881 316, 316, 317, 317, 318, 318, 318, 318, 319, 319,
882 319, 319, 320, 320, 320, 320, 320, 320, 321, 322,
883 322, 322, 323, 323, 324, 325, 325, 325, 325, 325,
884 325, 325, 326, 326, 327, 327, 328, 328, 328, 328,
885 328, 328, 328, 328, 328, 328, 328, 329, 329, 329,
886 329, 329, 329, 329, 329, 329, 329, 330, 330, 330,
887 330, 331, 332, 332, 333, 333, 334, 335, 335, 337,
888 336, 339, 340, 338, 341, 342, 341, 343, 343, 344,
889 344, 345, 344, 344, 346, 347, 344, 348, 349, 344,
890 350, 351, 352, 353, 344, 354, 355, 344, 356, 344,
891 357, 344, 358, 344, 344, 344, 344, 344, 344, 344,
892 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
893 344, 360, 361, 359, 363, 364, 362, 365, 365, 367,
894 368, 366, 369, 369, 370, 370, 371, 371, 371, 371,
895 372, 372, 372, 373, 373, 374, 374, 374, 375, 375,
896 376, 376, 377, 378, 378, 379, 379, 379, 380, 380,
897 380, 380, 380, 380, 380, 382, 381, 383, 383, 384,
898 384, 384, 384, 384, 385, 385, 386, 386, 386, 386,
899 386, 386, 387, 387, 388, 388, 389, 390, 390, 391,
900 391, 391, 392, 393, 393, 394, 394, 394, 394, 395,
901 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
902 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
903 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
904 396, 396, 396, 396, 396
907 static const short yyr2[] = { 0,
908 0, 1, 0, 2, 2, 1, 0, 0, 0, 1,
909 1, 0, 2, 2, 1, 1, 5, 4, 5, 4,
910 0, 6, 0, 5, 1, 2, 1, 2, 0, 6,
911 2, 3, 3, 3, 3, 4, 0, 5, 2, 3,
912 1, 1, 2, 2, 1, 2, 0, 5, 3, 1,
913 3, 1, 0, 2, 2, 3, 1, 3, 1, 3,
914 1, 3, 2, 2, 2, 1, 1, 5, 4, 2,
915 2, 3, 3, 2, 2, 3, 3, 2, 2, 2,
916 2, 2, 1, 1, 1, 0, 1, 2, 0, 1,
917 4, 3, 3, 0, 8, 5, 0, 9, 6, 0,
918 8, 5, 0, 9, 6, 2, 2, 1, 2, 1,
919 6, 4, 6, 4, 2, 1, 2, 2, 1, 2,
920 1, 2, 2, 4, 2, 3, 0, 0, 1, 3,
921 2, 3, 1, 4, 2, 4, 2, 4, 2, 1,
922 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
923 1, 0, 6, 0, 6, 0, 5, 0, 5, 0,
924 7, 0, 7, 0, 6, 0, 6, 0, 0, 5,
925 5, 1, 1, 5, 5, 0, 1, 1, 0, 1,
926 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
927 1, 1, 1, 3, 1, 3, 0, 1, 1, 0,
928 7, 1, 1, 3, 4, 3, 0, 3, 1, 3,
929 3, 3, 3, 1, 1, 1, 2, 2, 2, 2,
930 2, 2, 2, 4, 2, 4, 2, 3, 3, 4,
931 4, 5, 5, 6, 2, 4, 5, 2, 2, 6,
932 3, 3, 3, 1, 3, 2, 3, 4, 1, 2,
933 5, 1, 3, 3, 3, 3, 3, 3, 3, 3,
934 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
935 3, 5, 3, 3, 1, 2, 3, 3, 1, 1,
936 1, 1, 1, 0, 5, 5, 5, 5, 5, 1,
937 1, 1, 1, 2, 1, 2, 2, 3, 4, 4,
938 1, 1, 1, 3, 1, 1, 1, 1, 3, 3,
939 3, 0, 4, 4, 2, 4, 2, 4, 2, 2,
940 1, 4, 1, 7, 7, 7, 7, 4, 4, 2,
941 2, 2, 1, 4, 2, 2, 5, 3, 2, 2,
942 5, 3, 5, 3, 4, 6, 2, 1, 2, 1,
943 2, 1, 1, 1, 2, 0, 2, 2, 3, 3,
944 3, 2, 2, 2, 1, 1, 1, 2, 2, 2,
945 2, 1, 1, 1, 1, 2, 2, 3, 3, 3,
946 4, 1, 2, 2, 2, 1, 1, 1, 2, 2,
947 2, 1, 1, 2, 2, 3, 1, 2, 1, 1,
948 1, 4, 4, 4, 4, 1, 1, 1, 1, 3,
949 1, 3, 1, 3, 0, 4, 0, 6, 3, 0,
950 4, 1, 3, 3, 0, 4, 3, 0, 1, 1,
951 2, 6, 1, 3, 0, 1, 4, 6, 4, 1,
952 1, 1, 1, 1, 3, 0, 2, 1, 2, 3,
953 4, 1, 1, 3, 4, 3, 5, 1, 4, 3,
954 3, 0, 3, 3, 3, 0, 2, 2, 0, 6,
955 0, 5, 2, 2, 2, 0, 0, 0, 10, 1,
956 0, 1, 0, 1, 1, 2, 2, 2, 2, 2,
957 2, 2, 2, 2, 3, 4, 3, 2, 3, 1,
958 0, 3, 2, 2, 1, 1, 0, 2, 3, 1,
959 4, 1, 3, 1, 1, 2, 2, 3, 3, 0,
960 1, 3, 2, 2, 1, 2, 2, 2, 2, 2,
961 2, 2, 1, 2, 2, 3, 2, 2, 4, 4,
962 2, 1, 5, 4, 1, 0, 1, 3, 0, 1,
963 3, 1, 1, 1, 1, 4, 4, 4, 4, 4,
964 3, 4, 4, 4, 4, 3, 2, 1, 1, 3,
965 1, 3, 2, 1, 6, 0, 2, 1, 2, 3,
966 3, 1, 3, 1, 2, 3, 3, 2, 2, 3,
967 1, 4, 4, 3, 3, 2, 1, 1, 2, 1,
968 1, 2, 2, 1, 2, 3, 3, 2, 2, 3,
969 1, 3, 3, 2, 2, 3, 1, 4, 3, 4,
970 3, 1, 2, 2, 2, 2, 2, 1, 2, 4,
971 4, 2, 1, 1, 1, 1, 2, 4, 2, 2,
972 2, 2, 1, 2, 2, 2, 2, 3, 1, 2,
973 3, 4, 2, 2, 2, 2, 2, 2, 4, 2,
974 1, 2, 2, 3, 1, 3, 2, 3, 2, 2,
975 3, 1, 3, 4, 1, 2, 3, 2, 2, 1,
976 3, 2, 2, 1, 2, 3, 1, 3, 6, 4,
977 4, 3, 5, 3, 3, 3, 2, 1, 1, 2,
978 2, 2, 0, 1, 1, 2, 3, 1, 2, 0,
979 3, 0, 0, 5, 1, 0, 2, 1, 1, 1,
980 2, 0, 4, 1, 0, 0, 5, 0, 0, 7,
981 0, 0, 0, 0, 12, 0, 0, 7, 0, 5,
982 0, 7, 0, 4, 2, 2, 2, 3, 6, 8,
983 10, 12, 4, 3, 2, 2, 1, 1, 1, 1,
984 1, 0, 0, 6, 0, 0, 5, 1, 2, 0,
985 0, 5, 1, 1, 3, 3, 2, 2, 2, 2,
986 2, 1, 2, 0, 1, 0, 1, 1, 0, 1,
987 1, 3, 4, 1, 3, 0, 1, 1, 1, 2,
988 2, 2, 1, 2, 2, 0, 3, 1, 1, 1,
989 2, 2, 2, 4, 2, 2, 2, 2, 2, 2,
990 1, 2, 1, 2, 1, 1, 0, 0, 1, 0,
991 4, 2, 1, 1, 3, 0, 3, 3, 3, 1,
992 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
993 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
994 2, 2, 2, 3, 2, 2, 2, 2, 3, 2,
995 2, 4, 4, 3, 2
998 static const short yydefact[] = { 3,
999 12, 12, 5, 0, 4, 0, 281, 633, 634, 0,
1000 388, 400, 578, 0, 11, 0, 0, 0, 10, 485,
1001 840, 0, 0, 0, 168, 665, 282, 283, 83, 0,
1002 0, 827, 0, 45, 0, 0, 13, 25, 0, 27,
1003 8, 0, 16, 15, 89, 110, 86, 0, 635, 172,
1004 302, 279, 303, 611, 0, 375, 0, 374, 393, 0,
1005 413, 392, 430, 399, 0, 500, 501, 507, 506, 505,
1006 480, 387, 600, 401, 601, 108, 301, 622, 598, 0,
1007 636, 576, 0, 0, 280, 81, 82, 179, 639, 179,
1008 640, 179, 284, 168, 141, 142, 143, 144, 145, 471,
1009 473, 0, 661, 0, 474, 0, 0, 0, 0, 142,
1010 143, 144, 145, 23, 0, 0, 0, 0, 0, 0,
1011 0, 475, 643, 0, 649, 0, 0, 0, 37, 0,
1012 0, 31, 0, 0, 47, 0, 179, 641, 0, 0,
1013 0, 609, 604, 0, 0, 0, 608, 0, 0, 0,
1014 0, 302, 0, 293, 0, 0, 0, 301, 576, 28,
1015 0, 26, 3, 46, 0, 64, 388, 0, 0, 8,
1016 67, 63, 66, 89, 0, 0, 0, 399, 90, 14,
1017 0, 428, 0, 0, 446, 87, 79, 642, 582, 0,
1018 0, 576, 80, 0, 0, 0, 106, 0, 409, 365,
1019 591, 366, 597, 0, 576, 390, 389, 78, 109, 376,
1020 0, 411, 391, 107, 382, 406, 407, 377, 395, 397,
1021 386, 408, 0, 75, 431, 486, 487, 488, 489, 504,
1022 150, 149, 151, 491, 492, 173, 498, 490, 0, 0,
1023 493, 494, 507, 827, 503, 476, 579, 394, 0, 425,
1024 634, 0, 663, 172, 626, 627, 623, 603, 637, 0,
1025 602, 599, 0, 875, 871, 870, 868, 850, 855, 856,
1026 0, 862, 861, 847, 848, 846, 865, 854, 851, 852,
1027 853, 857, 858, 844, 845, 841, 842, 843, 867, 859,
1028 860, 849, 866, 0, 863, 773, 393, 774, 836, 284,
1029 281, 578, 306, 354, 0, 0, 0, 0, 0, 350,
1030 348, 321, 352, 353, 0, 0, 0, 0, 0, 282,
1031 283, 275, 0, 0, 187, 186, 0, 188, 189, 0,
1032 0, 190, 0, 0, 180, 181, 0, 249, 0, 252,
1033 185, 305, 216, 0, 0, 307, 308, 0, 183, 372,
1034 393, 373, 628, 333, 323, 0, 0, 0, 0, 179,
1035 0, 483, 469, 0, 662, 660, 0, 191, 192, 0,
1036 0, 0, 435, 3, 21, 29, 657, 653, 654, 656,
1037 658, 655, 141, 142, 143, 0, 144, 145, 645, 646,
1038 650, 647, 644, 0, 291, 292, 290, 625, 624, 33,
1039 32, 49, 0, 158, 0, 0, 393, 156, 0, 0,
1040 605, 607, 0, 606, 142, 143, 277, 278, 297, 0,
1041 615, 296, 0, 614, 0, 304, 282, 283, 0, 0,
1042 0, 295, 294, 619, 0, 0, 12, 0, 168, 9,
1043 9, 70, 0, 65, 0, 0, 71, 74, 0, 427,
1044 429, 122, 93, 127, 762, 0, 85, 84, 92, 125,
1045 0, 0, 123, 88, 0, 803, 215, 0, 214, 798,
1046 821, 0, 372, 393, 373, 0, 797, 799, 828, 810,
1047 0, 0, 621, 0, 0, 830, 0, 0, 589, 584,
1048 0, 588, 0, 0, 0, 0, 0, 576, 428, 0,
1049 77, 0, 576, 596, 0, 379, 380, 0, 76, 428,
1050 384, 383, 385, 378, 398, 415, 414, 179, 495, 499,
1051 497, 0, 502, 508, 0, 396, 428, 576, 94, 0,
1052 0, 0, 0, 576, 100, 577, 610, 634, 664, 172,
1053 0, 0, 864, 869, 395, 576, 576, 0, 576, 874,
1054 179, 0, 0, 223, 0, 225, 238, 239, 0, 0,
1055 0, 0, 0, 0, 276, 222, 219, 218, 220, 0,
1056 0, 0, 0, 0, 305, 0, 0, 0, 217, 177,
1057 178, 299, 0, 221, 0, 0, 250, 0, 0, 0,
1058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, 0, 0, 0, 0, 0, 315,
1060 0, 317, 319, 320, 358, 357, 0, 0, 0, 0,
1061 0, 227, 574, 0, 235, 355, 347, 0, 0, 827,
1062 336, 339, 340, 0, 0, 367, 684, 680, 0, 0,
1063 576, 576, 576, 369, 687, 0, 632, 371, 0, 0,
1064 370, 335, 0, 330, 349, 331, 351, 629, 0, 332,
1065 176, 176, 0, 166, 0, 393, 164, 484, 571, 568,
1066 0, 483, 569, 483, 0, 402, 0, 0, 403, 404,
1067 405, 441, 442, 443, 440, 0, 433, 436, 0, 3,
1068 0, 648, 179, 651, 0, 41, 42, 0, 53, 0,
1069 0, 57, 61, 50, 826, 393, 53, 825, 59, 169,
1070 154, 152, 169, 176, 300, 613, 612, 304, 0, 616,
1071 0, 18, 20, 89, 9, 9, 73, 72, 0, 0,
1072 356, 0, 710, 91, 708, 452, 0, 448, 447, 0,
1073 583, 580, 802, 816, 805, 684, 680, 0, 817, 576,
1074 820, 822, 0, 818, 0, 819, 581, 801, 815, 804,
1075 800, 829, 812, 823, 813, 806, 811, 620, 0, 632,
1076 0, 618, 585, 587, 586, 0, 0, 0, 0, 0,
1077 0, 576, 595, 0, 423, 422, 410, 594, 0, 830,
1078 590, 381, 412, 424, 428, 0, 496, 633, 634, 827,
1079 827, 635, 509, 510, 512, 827, 515, 514, 0, 542,
1080 634, 0, 533, 0, 0, 545, 0, 121, 116, 0,
1081 172, 546, 549, 0, 0, 525, 0, 119, 426, 830,
1082 796, 179, 179, 638, 179, 830, 796, 576, 97, 576,
1083 103, 873, 872, 836, 836, 836, 0, 0, 0, 0,
1084 0, 0, 0, 0, 393, 0, 0, 0, 311, 0,
1085 309, 310, 0, 247, 182, 281, 633, 634, 282, 283,
1086 0, 0, 453, 481, 0, 274, 273, 788, 787, 0,
1087 271, 270, 268, 269, 267, 266, 265, 262, 263, 264,
1088 260, 261, 255, 256, 257, 258, 259, 253, 254, 0,
1089 0, 0, 0, 0, 0, 0, 229, 244, 0, 0,
1090 228, 576, 576, 0, 576, 573, 672, 0, 0, 0,
1091 0, 0, 338, 0, 342, 0, 344, 0, 0, 683,
1092 682, 675, 679, 678, 826, 392, 0, 0, 697, 0,
1093 0, 830, 368, 830, 685, 576, 796, 0, 684, 680,
1094 0, 0, 576, 0, 392, 0, 0, 0, 0, 171,
1095 175, 285, 169, 162, 160, 169, 0, 472, 484, 567,
1096 0, 213, 212, 211, 210, 435, 0, 0, 24, 0,
1097 0, 652, 0, 38, 44, 43, 55, 52, 53, 0,
1098 48, 0, 0, 54, 491, 0, 159, 169, 169, 157,
1099 170, 298, 17, 19, 69, 89, 416, 140, 146, 133,
1100 147, 148, 0, 126, 129, 0, 0, 0, 0, 709,
1101 703, 449, 0, 124, 0, 683, 679, 684, 680, 0,
1102 392, 598, 0, 576, 685, 684, 680, 0, 305, 0,
1103 628, 824, 0, 0, 832, 0, 0, 0, 0, 420,
1104 593, 592, 419, 176, 517, 516, 827, 827, 827, 0,
1105 576, 796, 541, 534, 546, 535, 428, 428, 531, 532,
1106 529, 530, 576, 796, 281, 633, 0, 415, 117, 537,
1107 547, 552, 553, 415, 415, 0, 0, 415, 115, 538,
1108 550, 415, 0, 428, 0, 526, 527, 528, 428, 96,
1109 0, 0, 0, 0, 102, 0, 830, 796, 830, 796,
1110 838, 837, 839, 286, 322, 224, 226, 0, 328, 329,
1111 0, 0, 0, 0, 310, 313, 0, 0, 0, 0,
1112 248, 0, 314, 316, 318, 242, 241, 231, 0, 230,
1113 246, 0, 0, 669, 667, 0, 670, 0, 236, 0,
1114 0, 179, 345, 0, 0, 0, 676, 681, 677, 688,
1115 576, 696, 694, 695, 686, 830, 0, 692, 0, 0,
1116 630, 631, 684, 680, 0, 0, 334, 167, 169, 169,
1117 165, 572, 570, 470, 434, 432, 281, 0, 22, 30,
1118 659, 56, 51, 58, 62, 60, 155, 153, 68, 0,
1119 131, 0, 135, 0, 137, 0, 139, 0, 763, 0,
1120 203, 711, 0, 704, 705, 0, 450, 0, 683, 679,
1121 684, 680, 0, 576, 603, 685, 0, 631, 814, 808,
1122 809, 807, 833, 834, 0, 0, 0, 0, 0, 0,
1123 417, 174, 0, 519, 518, 513, 830, 0, 536, 446,
1124 446, 830, 0, 0, 0, 428, 428, 0, 428, 428,
1125 0, 428, 0, 524, 477, 0, 446, 576, 288, 287,
1126 289, 576, 99, 0, 105, 0, 0, 0, 0, 0,
1127 0, 0, 456, 0, 454, 251, 272, 0, 232, 233,
1128 243, 245, 668, 666, 673, 671, 0, 237, 0, 0,
1129 337, 341, 343, 830, 690, 576, 691, 163, 161, 0,
1130 437, 439, 132, 130, 0, 0, 0, 0, 444, 0,
1131 0, 281, 633, 634, 712, 725, 728, 731, 736, 0,
1132 0, 0, 0, 0, 0, 0, 0, 282, 757, 765,
1133 0, 784, 761, 760, 759, 0, 720, 0, 0, 393,
1134 0, 699, 718, 724, 698, 719, 758, 0, 706, 451,
1135 683, 679, 0, 685, 310, 0, 831, 421, 0, 511,
1136 112, 576, 540, 544, 114, 576, 428, 428, 561, 446,
1137 281, 633, 0, 548, 554, 555, 415, 415, 446, 446,
1138 0, 446, 551, 466, 539, 830, 830, 576, 576, 240,
1139 0, 0, 0, 0, 455, 0, 0, 234, 674, 346,
1140 287, 693, 830, 0, 134, 136, 138, 770, 764, 768,
1141 0, 707, 702, 206, 777, 779, 780, 0, 0, 716,
1142 0, 0, 0, 743, 745, 746, 747, 0, 0, 0,
1143 0, 0, 0, 0, 778, 0, 364, 785, 0, 721,
1144 362, 415, 0, 363, 0, 415, 0, 0, 0, 204,
1145 701, 700, 722, 756, 755, 684, 680, 0, 0, 835,
1146 418, 830, 830, 560, 557, 559, 0, 0, 428, 428,
1147 428, 556, 558, 543, 0, 95, 101, 830, 830, 324,
1148 325, 326, 327, 457, 575, 689, 438, 0, 769, 445,
1149 195, 0, 713, 726, 715, 0, 0, 0, 0, 0,
1150 739, 0, 748, 0, 754, 39, 145, 34, 145, 0,
1151 35, 766, 0, 360, 361, 0, 0, 0, 359, 205,
1152 716, 392, 111, 113, 428, 428, 566, 446, 446, 468,
1153 0, 467, 462, 98, 104, 0, 771, 202, 0, 393,
1154 0, 716, 0, 729, 717, 703, 782, 732, 0, 0,
1155 0, 0, 744, 753, 40, 36, 0, 0, 723, 565,
1156 563, 562, 564, 0, 0, 479, 0, 0, 0, 196,
1157 415, 714, 207, 727, 209, 0, 783, 0, 781, 737,
1158 741, 740, 767, 789, 0, 465, 464, 458, 86, 89,
1159 775, 776, 772, 428, 703, 193, 0, 0, 199, 0,
1160 198, 716, 0, 0, 0, 790, 791, 749, 0, 463,
1161 0, 208, 0, 730, 733, 738, 742, 0, 789, 0,
1162 0, 461, 0, 460, 200, 194, 0, 0, 0, 750,
1163 792, 459, 0, 0, 793, 0, 0, 201, 734, 794,
1164 0, 751, 0, 0, 0, 735, 795, 752, 0, 0,
1168 static const short yydefgoto[] = { 1659,
1169 437, 2, 438, 165, 723, 333, 181, 3, 4, 37,
1170 690, 374, 1343, 691, 816, 1344, 1345, 394, 1443, 695,
1171 41, 817, 403, 701, 987, 702, 703, 704, 43, 172,
1172 173, 44, 456, 184, 180, 45, 46, 831, 1108, 837,
1173 1110, 47, 819, 820, 185, 186, 457, 730, 1014, 1015,
1174 669, 1016, 235, 48, 999, 998, 713, 710, 1180, 1179,
1175 966, 963, 136, 997, 49, 237, 50, 960, 582, 334,
1176 335, 336, 337, 1346, 1608, 1503, 1610, 1549, 1643, 1212,
1177 1584, 1605, 368, 952, 338, 621, 911, 339, 340, 369,
1178 342, 360, 52, 256, 696, 419, 154, 53, 54, 343,
1179 577, 344, 345, 346, 347, 458, 348, 1347, 516, 642,
1180 349, 1348, 56, 218, 472, 350, 219, 485, 220, 198,
1181 211, 60, 499, 517, 1369, 785, 1240, 199, 212, 61,
1182 527, 786, 62, 63, 686, 687, 688, 1320, 463, 873,
1183 874, 1599, 1600, 1576, 1542, 1485, 64, 674, 362, 525,
1184 1394, 1543, 1130, 670, 65, 66, 67, 68, 69, 243,
1185 70, 71, 245, 803, 804, 805, 806, 824, 1095, 825,
1186 826, 827, 1080, 1090, 1081, 1384, 1082, 1083, 1385, 1386,
1187 671, 672, 673, 622, 942, 352, 192, 497, 490, 201,
1188 73, 74, 75, 142, 143, 157, 77, 132, 353, 354,
1189 355, 79, 356, 81, 808, 123, 124, 125, 532, 105,
1190 82, 357, 916, 917, 937, 932, 645, 1351, 1352, 1213,
1191 1214, 1215, 734, 1353, 1021, 1354, 1428, 1552, 1506, 1507,
1192 1355, 1356, 1531, 1429, 1553, 1430, 1586, 1431, 1588, 1637,
1193 1653, 1432, 1612, 1562, 1613, 1512, 459, 731, 1318, 1357,
1194 1446, 1567, 1419, 1420, 1498, 1579, 1551, 1547, 1358, 1558,
1195 1449, 880, 1615, 1616, 1617, 1651, 476, 938, 767, 1044,
1196 1232, 478, 479, 480, 763, 481, 148, 765, 772, 1234,
1197 1235, 550, 84, 85
1200 static const short yypact[] = { 115,
1201 148,-32768,-32768, 4190,-32768, 65, 43, 397, 464, 77,
1202 149,-32768,-32768, 1260,-32768, 76, 139, 177,-32768,-32768,
1203 -32768, 378, 972, 1788, 250,-32768, 275, 565,-32768, 4300,
1204 4300,-32768, 4980,-32768, 4190, 298,-32768,-32768, 227,-32768,
1205 172, 4878,-32768,-32768, 301, 908, 445, 422, 430,-32768,
1206 -32768,-32768,-32768, 316, 4016,-32768, 6889,-32768, 991, 213,
1207 -32768, 480,-32768,-32768, 2188, 96,-32768, 453,-32768,-32768,
1208 466, 6058,-32768,-32768,-32768, 922,-32768,-32768,-32768, 2259,
1209 -32768,-32768, 163, 9650, 459,-32768,-32768, 11336,-32768, 11336,
1210 -32768, 11336,-32768,-32768,-32768, 397, 464, 275, 495,-32768,
1211 508, 430,-32768, 1035,-32768, 163, 11427, 11427, 488,-32768,
1212 -32768,-32768,-32768,-32768, 483, 528, 681, 705, 784, 547,
1213 579,-32768,-32768, 1411,-32768, 519, 397, 464,-32768, 275,
1214 495,-32768, 1486, 715, 497, 7889, 11336,-32768, 11336, 5725,
1215 4947,-32768,-32768, 2459, 680, 4947,-32768, 1115, 5212, 5212,
1216 4980, 536, 540,-32768, 316, 416, 554, 561,-32768,-32768,
1217 660,-32768, 578,-32768, 5192,-32768,-32768, 250, 3765, 631,
1218 -32768,-32768,-32768, 301, 4833, 12316, 385, 673,-32768,-32768,
1219 656, 480, 750, 112, 323, 698,-32768,-32768,-32768, 8209,
1220 9742,-32768,-32768, 5557, 5557, 6556, 922, 545,-32768,-32768,
1221 544,-32768,-32768, 2649,-32768,-32768,-32768,-32768,-32768, 991,
1222 634,-32768, 480, 922,-32768,-32768,-32768, 1807, 991,-32768,
1223 480,-32768, 4833,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1224 -32768,-32768,-32768, 699,-32768, 430,-32768, 480, 1421, 1496,
1225 -32768,-32768, 453,-32768,-32768,-32768,-32768, 1581, 163,-32768,
1226 775, 1243,-32768, 419,-32768,-32768,-32768,-32768,-32768, 5965,
1227 -32768,-32768, 487,-32768, 708, 749,-32768,-32768,-32768,-32768,
1228 729,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1229 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1230 -32768,-32768,-32768, 704,-32768,-32768, 1581, 6058, 1094,-32768,
1231 -32768, 790,-32768,-32768, 12065, 12156, 12247, 12247, 793,-32768,
1232 -32768,-32768,-32768,-32768, 802, 776, 830, 835, 844, 1066,
1233 495, 11518, 1575, 12247,-32768,-32768, 12247,-32768,-32768, 12247,
1234 8485,-32768, 12247, 291, 817,-32768, 12247,-32768, 11609,-32768,
1235 12517, 438, 2003, 5466, 11700,-32768, 886, 281,-32768, 1328,
1236 1726, 5368,-32768, 462,-32768, 3060, 2562, 291, 291, 11336,
1237 7889, 1254,-32768, 1575,-32768,-32768, 813, 864, 3815, 854,
1238 857, 866, 2071, 578,-32768,-32768,-32768,-32768,-32768,-32768,
1239 -32768,-32768, 528, 681, 705, 1575, 784, 547, 863, 579,
1240 -32768, 917,-32768, 3102, 397, 464,-32768,-32768,-32768,-32768,
1241 -32768,-32768, 7944,-32768, 4833, 12384, 702,-32768, 291, 553,
1242 -32768,-32768, 718,-32768, 920, 929,-32768,-32768,-32768, 4947,
1243 -32768,-32768, 4947,-32768, 925,-32768,-32768,-32768, 416, 416,
1244 416,-32768,-32768,-32768, 5965, 88, 932, 934,-32768,-32768,
1245 -32768,-32768, 7889,-32768, 717, 723,-32768,-32768, 660,-32768,
1246 480,-32768,-32768,-32768,-32768, 118,-32768,-32768,-32768,-32768,
1247 9036, 11518,-32768,-32768, 938,-32768, 864, 940, 3815, 238,
1248 3591, 12316, 3591, 4033, 3916, 946,-32768, 199, 7200, 995,
1249 1001, 790,-32768, 945, 470, 132, 7263, 6456,-32768,-32768,
1250 6456,-32768, 6778, 6778, 6556, 7512, 954,-32768, 480, 4833,
1251 -32768, 9833,-32768,-32768, 7045, 1807, 991, 4833,-32768, 480,
1252 -32768,-32768, 480, 1807,-32768, 1049,-32768, 11336, 699,-32768,
1253 -32768, 1421,-32768, 1283, 3084, 1581, 480,-32768,-32768, 1003,
1254 1006, 1028, 1011,-32768,-32768,-32768,-32768, 786,-32768, 485,
1255 994, 998,-32768,-32768, 1581,-32768,-32768, 736,-32768,-32768,
1256 11336, 11518, 8485,-32768, 8485,-32768,-32768,-32768, 11518, 11427,
1257 12429, 12429, 12429, 12429, 12446,-32768,-32768,-32768,-32768, 1005,
1258 11792, 11792, 8485, 1020, 254, 1023, 1052, 1027,-32768,-32768,
1259 -32768,-32768, 11336,-32768, 8576, 8485,-32768, 11518, 11518, 9127,
1260 11518, 11518, 11518, 11518, 11518, 11518, 11518, 11518, 11518, 11518,
1261 11518, 11518, 11518, 11518, 11518, 11518, 11518, 11518, 11518,-32768,
1262 11518,-32768,-32768,-32768,-32768,-32768, 11518, 11518, 11518, 11427,
1263 6696, 434, 449, 9924,-32768,-32768,-32768, 1081, 1243, 1131,
1264 492, 597, 624, 3587, 680,-32768, 610, 610, 5483, 10015,
1265 1050, 1098,-32768,-32768, 772, 10604, 1062,-32768, 899, 163,
1266 -32768,-32768, 11518,-32768,-32768,-32768,-32768,-32768, 196, 459,
1267 -32768,-32768, 291,-32768, 4833, 885,-32768,-32768, 1085,-32768,
1268 1059, 1099,-32768, 1254, 863,-32768, 9400, 9491,-32768,-32768,
1269 -32768,-32768,-32768,-32768,-32768, 184,-32768, 1065, 1068, 578,
1270 3102, 1119, 11336,-32768, 1118,-32768,-32768, 715, 1452, 1144,
1271 231, 1137, 1140,-32768,-32768, 5080, 2188,-32768, 1141,-32768,
1272 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1072, 1100,-32768,
1273 1152,-32768,-32768, 301,-32768,-32768,-32768,-32768, 89, 595,
1274 1155, 1052,-32768,-32768,-32768,-32768, 8391, 12446,-32768, 1113,
1275 -32768,-32768,-32768,-32768,-32768, 2323, 2323, 6121,-32768,-32768,
1276 -32768,-32768, 2649,-32768, 10696,-32768,-32768,-32768,-32768,-32768,
1277 -32768,-32768,-32768, 1001, 1162,-32768,-32768,-32768, 10972, 1098,
1278 678,-32768,-32768,-32768,-32768, 6456, 6456, 7244, 7244, 7512,
1279 899,-32768,-32768, 7045,-32768, 1164,-32768,-32768, 1111, 132,
1280 -32768, 1807,-32768,-32768, 480, 1159,-32768, 681, 705,-32768,
1281 -32768, 579, 1171,-32768,-32768, 337,-32768,-32768, 1650,-32768,
1282 997, 1541,-32768, 11518, 6247,-32768, 6247, 195, 195, 371,
1283 760, 1944, 7449, 91, 3418,-32768, 187, 195,-32768, 132,
1284 7802, 11336, 11336,-32768, 11336, 132, 7802,-32768,-32768,-32768,
1285 -32768,-32768,-32768, 1157, 1157, 1157, 291, 1129, 1132, 1134,
1286 12472, 1142, 1148, 1168, 2601, 1169, 1184, 1191,-32768, 1160,
1287 -32768,-32768, 1167,-32768,-32768, 1206, 1000, 1002, 311, 321,
1288 11518, 1207,-32768, 1217, 1170, 12446, 12446,-32768,-32768, 1221,
1289 7101, 12534, 10130, 12549, 12563, 5619, 3476, 2055, 2055, 2055,
1290 1640, 1640, 1308, 1308, 849, 849, 849,-32768,-32768, 1189,
1291 1194, 1196, 1199, 1197, 1201, 12429, 434,-32768, 9036, 11518,
1292 -32768,-32768,-32768, 11518,-32768,-32768, 1228, 12247, 1215, 1245,
1293 1261, 1294,-32768, 11518,-32768, 11518,-32768, 11518, 2540, 2050,
1294 -32768,-32768, 2050,-32768, 93, 2540, 1247, 1252,-32768, 1240,
1295 12429, 132,-32768, 132, 2986,-32768, 7802, 10106, 10788, 10788,
1296 4654, 1255, 11609, 1258, 1969, 3561, 2562, 936, 1263,-32768,
1297 -32768,-32768,-32768,-32768,-32768,-32768, 11518,-32768, 1575,-32768,
1298 1264,-32768, 12446,-32768, 12446, 2071, 1266, 11883,-32768, 1271,
1299 1311,-32768, 291,-32768,-32768,-32768,-32768,-32768, 1899, 7944,
1300 -32768, 12429, 11336,-32768, 1704, 11518,-32768,-32768,-32768,-32768,
1301 -32768,-32768,-32768,-32768,-32768, 301,-32768,-32768, 528,-32768,
1302 784, 547, 11518, 1324,-32768, 778, 807, 819, 1052,-32768,
1303 69,-32768, 133,-32768, 3358, 3250, 3250, 3491, 3491, 6121,
1304 3784, 144, 2649,-32768, 4207, 10880, 10880, 7678, 182, 1288,
1305 478,-32768, 9036, 8670,-32768, 12429, 1746, 1746, 2980,-32768,
1306 -32768,-32768, 1333,-32768,-32768,-32768,-32768,-32768,-32768, 1671,
1307 -32768, 7802, 12446,-32768, 1625,-32768, 480, 480,-32768,-32768,
1308 -32768,-32768,-32768, 7802, 781, 1082, 11518, 1049,-32768, 1341,
1309 -32768,-32768,-32768, 160, 362, 2259, 680, 598, 195, 1342,
1310 -32768, 687, 1344, 480, 4391,-32768,-32768,-32768, 480,-32768,
1311 1296, 291, 291, 291,-32768, 1305, 132, 7802, 132, 7802,
1312 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 12429,-32768,-32768,
1313 1330, 1334, 1338, 1339, 1072,-32768, 12424, 9036, 8763, 1325,
1314 -32768, 11518,-32768,-32768,-32768,-32768,-32768, 770, 1327,-32768,
1315 -32768, 1335, 330, 1348, 1348, 1322, 1348, 11518,-32768, 12247,
1316 1430, 11336,-32768, 1340, 1345, 1358,-32768,-32768,-32768,-32768,
1317 -32768,-32768,-32768,-32768,-32768, 132, 1359,-32768, 1336, 1969,
1318 -32768,-32768, 4484, 4484, 6385, 4321,-32768,-32768,-32768,-32768,
1319 -32768, 12446,-32768,-32768,-32768,-32768, 235, 1364,-32768,-32768,
1320 -32768,-32768,-32768,-32768,-32768, 12517,-32768,-32768,-32768, 1365,
1321 -32768, 260,-32768, 11518,-32768, 11518,-32768, 11518,-32768, 1575,
1322 -32768,-32768, 8116, 1408,-32768, 8854,-32768, 3784, 3250, 3250,
1323 4545, 4545, 6651,-32768, 518, 4207, 1366, 400,-32768,-32768,
1324 -32768,-32768,-32768,-32768, 252, 4504, 4504, 1938, 1938, 9036,
1325 -32768,-32768, 1283,-32768,-32768,-32768, 132, 1367,-32768, 1380,
1326 1380, 132, 1372, 11518, 11518, 7542, 480, 2218, 480, 480,
1327 966, 480, 2825,-32768,-32768, 4764, 1380,-32768,-32768, 1397,
1328 -32768,-32768,-32768, 1373,-32768, 1375, 1377, 11518, 11518, 11518,
1329 11518, 9036,-32768, 1431,-32768,-32768, 12446, 11518,-32768, 770,
1330 -32768,-32768,-32768,-32768,-32768,-32768, 1382,-32768, 1463, 291,
1331 -32768,-32768,-32768, 132,-32768,-32768,-32768,-32768,-32768, 11518,
1332 -32768,-32768,-32768,-32768, 1404, 1410, 1415, 1433,-32768, 918,
1333 350, 1467, 1136, 1161,-32768,-32768,-32768,-32768,-32768, 11518,
1334 1468, 1471, 1473, 11063, 200, 1575, 697, 795,-32768,-32768,
1335 11154, 1527,-32768,-32768,-32768, 1476,-32768, 5252, 7794, 2745,
1336 5837,-32768,-32768, 1522,-32768,-32768,-32768, 10215,-32768,-32768,
1337 3194, 3194, 899, 3665, 539, 12429,-32768,-32768, 9036,-32768,
1338 -32768,-32768,-32768,-32768,-32768,-32768, 7542, 7542,-32768, 1380,
1339 810, 1216, 11518,-32768,-32768,-32768, 1049, 1049, 1380, 1380,
1340 786, 1380,-32768,-32768,-32768, 132, 132,-32768,-32768,-32768,
1341 1432, 1440, 1451, 1457,-32768, 9036, 1428,-32768,-32768,-32768,
1342 -32768,-32768, 132, 1462,-32768,-32768,-32768,-32768, 1433,-32768,
1343 1575,-32768,-32768,-32768,-32768,-32768,-32768, 824, 824, 1052,
1344 1448, 1480, 7312,-32768,-32768,-32768,-32768, 1520, 11518, 1531,
1345 1509, 1528, 1689, 1696,-32768, 1052,-32768,-32768, 1510,-32768,
1346 -32768, 1049, 951,-32768, 1040, 1049, 11245, 1056, 394,-32768,
1347 -32768,-32768,-32768,-32768,-32768, 3684, 3684, 7027, 3908,-32768,
1348 -32768, 132, 132,-32768,-32768,-32768, 11518, 11518, 7542, 480,
1349 480,-32768,-32768,-32768, 8007,-32768,-32768, 132, 132,-32768,
1350 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 1511,-32768,-32768,
1351 -32768, 11427,-32768,-32768,-32768, 1590, 10511, 8300, 11427, 11518,
1352 -32768, 10323,-32768, 1552,-32768,-32768, 1559,-32768, 1528, 1689,
1353 -32768,-32768, 660,-32768,-32768, 11974, 11974, 8945,-32768,-32768,
1354 1052, 3908,-32768,-32768, 7542, 7542,-32768, 1380, 1380,-32768,
1355 9582,-32768,-32768,-32768,-32768, 12371,-32768,-32768, 1514, 442,
1356 4833, 1052, 10417,-32768,-32768, 69,-32768,-32768, 1558, 1518,
1357 12495, 10323,-32768,-32768,-32768,-32768, 1433, 74,-32768,-32768,
1358 -32768,-32768,-32768, 1534, 7352, 1532, 1536, 1542, 1052,-32768,
1359 1049,-32768,-32768,-32768,-32768, 839,-32768, 9218,-32768,-32768,
1360 -32768,-32768, 1433, 1624, 1591,-32768,-32768,-32768, 445, 301,
1361 -32768,-32768,-32768, 480, 69,-32768, 11518, 1597,-32768, 1598,
1362 -32768, 1052, 10323, 1568, 54, 1602,-32768,-32768, 120,-32768,
1363 1586,-32768, 1556,-32768,-32768,-32768,-32768, 11518, 1624, 1608,
1364 1624,-32768, 118,-32768,-32768,-32768, 9309, 1562, 851,-32768,
1365 -32768,-32768, 9036, 1569,-32768, 1673, 1629,-32768,-32768,-32768,
1366 409,-32768, 10417, 1674, 1630,-32768,-32768,-32768, 1695, 1698,
1367 -32768
1370 static const short yypgoto[] = {-32768,
1371 1702,-32768, -331, 1539, -393, 7, 10, 1711,-32768, 1680,
1372 -32768,-32768, 123,-32768, 345,-32768, 414,-32768, 288, 1042,
1373 45, 12,-32768,-32768, -648,-32768,-32768, 751, 56, 1570,
1374 1299, 1584, -718, 158, -170, -19, -27,-32768,-32768,-32768,
1375 -32768,-32768, 935,-32768,-32768,-32768,-32768,-32768,-32768, 557,
1376 721,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1377 -32768,-32768, 1668, -605, 6850, 1526, -36, -622, -334, -23,
1378 1627, -551,-32768, 822,-32768, 342,-32768, -1398,-32768, -1277,
1379 122,-32768, 1386, 1794, -279,-32768, -861, 6377, -272, 1930,
1380 4964, 1478, -339, -82, -38, 1337, -106, -70, 758,-32768,
1381 -32768,-32768, -335,-32768, -156,-32768,-32768, -1275, 136, -343,
1382 2172, 37, 1667, -128, 103, 236, -191, -4, -141, -160,
1383 -167, -3, 108, 29,-32768, -380,-32768,-32768,-32768,-32768,
1384 -32768, 383, 1406, 179,-32768, 809,-32768,-32768, -1038, -93,
1385 1054,-32768,-32768,-32768,-32768,-32768, -30,-32768,-32768,-32768,
1386 -32768,-32768,-32768, 1127, -369,-32768,-32768,-32768,-32768,-32768,
1387 -32768,-32768, 1557,-32768, 559, 745,-32768,-32768,-32768, 711,
1388 -705,-32768,-32768,-32768,-32768,-32768,-32768, 985,-32768, 548,
1389 1149,-32768, 841, 1204, 3119, 59, 1617, 1932, 258,-32768,
1390 -496,-32768, 57, 168, 856, -148, 1143, -97, 5540, 1474,
1391 -32768, 6413, 2880, 1513, -17, -123,-32768, 1706, -60,-32768,
1392 5603, 4117, -445,-32768, 2579, -228,-32768,-32768, 477,-32768,
1393 -32768, 620, 207, -449,-32768,-32768,-32768,-32768, -1395,-32768,
1394 -1207, -1437,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1395 -32768,-32768,-32768,-32768,-32768,-32768, 223,-32768,-32768,-32768,
1396 -32768,-32768, 280, -1357,-32768,-32768, -28,-32768,-32768,-32768,
1397 -32768, -1427, 222,-32768, 221,-32768, -667, -107, 1090,-32768,
1398 -32768,-32768,-32768, -386,-32768, -382, -211,-32768, 761, 489,
1399 -32768, 174,-32768, -232
1403 #define YYLAST 12648
1406 static const short yytable[] = { 59,
1407 421, 424, 393, 444, 436, 122, 735, 647, 446, 257,
1408 35, 178, 1019, 36, 445, 42, 708, 656, 507, 533,
1409 709, 657, 174, 661, 662, 554, 556, 807, 222, 209,
1410 59, 865, 524, 707, 557, 558, 401, 59, 177, 961,
1411 55, 35, 689, 254, 36, 1140, 42, 724, 169, 433,
1412 398, 567, 210, 42, 568, 299, 526, 569, 994, 587,
1413 579, 1499, 72, 392, 584, 1447, 358, 248, 359, 1555,
1414 103, 55, 625, 257, 714, 715, 512, 515, 175, 297,
1415 1559, 506, 477, 351, 626, 351, 170, 351, 141, 146,
1416 514, 1001, 708, 72, 399, 400, 764, 171, 626, 626,
1417 72, 1210, 351, 351, 743, 545, 57, 1000, 404, 1064,
1418 1560, 1066, 453, 409, -1, 1585, 1629, 88, 732, 1096,
1419 1632, 644, 648, 651, 660, 86, 38, 863, 1093, 794,
1420 647, 407, 351, 257, 351, 1569, 1594, 57, 178, 261,
1421 536, 770, 298, 1462, 176, 441, 829, -2, 209, 174,
1422 1465, 93, 744, 182, 241, 745, 1582, 38, 242, 545,
1423 59, 1630, 365, 1101, 59, 177, 8, 9, 107, 1106,
1424 -356, 210, 405, 87, 454, 169, 733, 1211, -356, 222,
1425 42, 1595, 454, 250, -365, 474, 15, 222, 222, 1611,
1426 197, -597, 1216, 771, 72, 721, 1007, 94, 147, 1094,
1427 864, 55, 95, 110, 111, 175, 455, 420, 423, 1644,
1428 758, 1373, 1374, 170, 455, 1585, 1626, 222, -365, 130,
1429 131, 15, -365, 72, 171, -415, 540, 72, 1395, -302,
1430 163, 108, 1557, 1017, 310, 1499, -597, -597, 406, 58,
1431 225, 1217, 751, 976, 644, 648, 651, 1097, 475, 743,
1432 26, -597, 488, 491, -365, -415, 112, 113, 759, -415,
1433 1008, 760, 1009, 798, 799, 631, 222, 57, 164, 109,
1434 58, 176, 223, 224, -302, -302, 1289, 58, 1587, 1167,
1435 1439, 627, 1020, 301, 395, 396, 10, 162, 628, -295,
1436 990, 977, 729, 248, 1310, 1098, 697, 744, 567, 568,
1437 745, 610, -826, -415, 1563, 261, 991, 1010, 412, 632,
1438 197, 1366, 200, 414, 26, 623, 1011, 1012, 225, 296,
1439 222, 510, 21, 657, 135, 692, 351, 1622, 962, 629,
1440 989, 1005, 1006, 664, 225, 26, 663, 27, 321, 297,
1441 1192, 1476, 1311, 1058, 421, 424, 611, 248, 39, 137,
1442 1482, 1483, 1013, 1484, 1592, 351, 666, 1178, 980, 1367,
1443 1181, -295, 147, 189, 512, 515, 580, 739, 581, 630,
1444 460, 58, 512, -144, 1059, 138, 222, 636, 792, 39,
1445 95, 110, 111, -145, 515, 137, -366, 461, 15, 433,
1446 161, 225, 1197, 1198, 1248, 1069, 533, 665, 706, 225,
1447 58, 210, 298, 515, 58, 1627, 1253, 179, 190, 191,
1448 1423, -304, 178, 261, 700, 462, 225, 40, 301, 72,
1449 -366, 10, 769, 726, -366, 473, -304, 537, 1408, 1070,
1450 -304, 1242, 200, 1071, 112, 113, 114, 1292, 59, 177,
1451 1274, 1195, 1276, 222, 223, 447, 18, -304, 40, 216,
1452 217, 89, 127, 128, 1423, 14, -366, 21, 1424, -304,
1453 -304, 475, -304, 406, -304, 1072, 534, 210, 1654, 183,
1454 248, 90, 427, 428, 706, 222, 222, 648, 20, 175,
1455 200, 908, 187, 222, 188, 610, 429, 23, 821, 636,
1456 8, 538, -304, -304, 796, 222, 430, 818, 909, 1572,
1457 1573, 72, 1530, 26, 32, 130, 131, -304, 431, 652,
1458 18, 535, 1114, 351, 222, 244, 1655, 636, 91, 912,
1459 59, 116, 117, 118, 246, -622, 910, 847, 787, 913,
1460 611, 815, 840, 300, 769, 364, 793, 475, 92, 923,
1461 711, 375, 914, 130, 131, 176, 351, 376, 351, 138,
1462 351, 776, 777, 1004, 653, 351, 855, 855, 855, 855,
1463 1096, 822, 769, 807, 450, -596, 363, 539, 351, 1209,
1464 -622, -622, 402, 1308, 1309, 119, 120, 841, 351, 296,
1465 373, 351, 377, 72, 924, -622, -304, 716, 1055, 1056,
1466 717, 189, 623, 697, 1060, 1008, 58, 1009, 798, 799,
1467 986, 381, 720, 708, 500, 501, 749, 709, 754, 756,
1468 -596, -596, 583, 127, 128, 351, 297, 656, 13, 138,
1469 707, 657, -120, 795, 15, -596, 648, 823, 580, 225,
1470 581, -304, -304, 382, 706, 222, 190, 502, 473, 139,
1471 18, 474, 1010, -295, 925, 1149, -298, 426, 1191, 26,
1472 512, 1011, 1012, -128, -128, 412, -120, 636, 414, 985,
1473 -120, 434, 200, 545, 26, 225, 130, 131, -617, 983,
1474 304, 927, 537, 587, 225, 222, 567, 568, 58, 298,
1475 637, 122, 257, 127, 128, 393, -7, 1013, 351, 926,
1476 638, 225, -120, 508, 509, 930, 933, 475, 1293, 1294,
1477 1157, 1296, 639, 640, 475, 1017, 261, 1157, 215, 216,
1478 217, -118, 1018, 15, 473, 14, 928, 301, 395, 396,
1479 10, 127, 128, 477, 660, 1045, 1157, 164, 200, 477,
1480 200, 200, 18, 448, 101, 378, 130, 131, 20, 127,
1481 128, 129, 115, 706, 773, -118, 807, 23, 449, -118,
1482 474, 26, 452, 773, 1442, 90, 21, 200, 464, 379,
1483 58, 222, 712, 567, 568, 200, 364, 1269, 1270, 1271,
1484 1046, 27, 321, 518, 130, 131, 500, 727, 821, 92,
1485 821, -118, 508, 728, 364, 234, 821, 818, 821, 818,
1486 155, 543, 130, 131, 1078, 1088, 1157, 818, 539, 770,
1487 964, 541, 1157, 32, 1026, 1027, 475, 1073, 1102, 1103,
1488 59, 1104, 59, 475, 544, 1141, 253, 908, 210, 946,
1489 59, 815, 528, 815, 222, 1203, 706, 351, 351, 91,
1490 351, 815, 706, 838, 909, 1199, 1047, 1048, 380, 477,
1491 91, 756, 542, 1254, 389, 1243, 1244, 1245, 433, 92,
1492 561, 822, 1074, 1065, 1205, 88, 296, 1445, 137, 76,
1493 92, 822, 910, 1288, 947, 948, 1207, 529, 417, 137,
1494 1204, 1501, 1477, 72, 473, 72, 583, 1298, 839, 421,
1495 424, 473, 552, 72, 88, 559, 1606, 421, 424, 475,
1496 76, 215, 216, 217, 560, 475, 626, 76, 14, 1206,
1497 1633, 855, 8, 9, 562, 1143, 155, 155, 155, 563,
1498 202, 1208, 214, 1646, 147, 18, 1502, 823, 564, 823,
1499 676, 20, 200, 677, 433, 1067, 1068, 823, 367, 371,
1500 23, 1607, 608, 609, 15, 1099, 855, 693, -415, 8,
1501 9, 1157, 706, 716, 717, 965, 474, 364, 15, 1229,
1502 1231, 720, -415, 155, 477, 130, 131, 1079, 1647, 519,
1503 521, 679, 257, 200, 680, 1411, 477, -415, -415, 127,
1504 1391, 694, 531, 681, 116, 117, 118, 1421, 1422, 253,
1505 1505, -415, -415, 473, 364, 706, -415, 855, 351, 1157,
1506 473, 408, 130, 131, 90, 411, 1522, 215, 216, 217,
1507 477, 700, 477, 92, 14, 475, 770, 930, 933, 475,
1508 500, 1524, 484, 261, 364, 257, 539, 1111, 1112, 1113,
1509 76, 18, 130, 131, 76, 706, 26, 20, 119, 120,
1510 202, 214, 718, 474, 1283, 1285, 23, 1078, 8, 9,
1511 -6, 855, 722, 566, 1061, 741, 539, 742, 475, 254,
1512 58, 91, 58, 757, 89, 768, 91, 706, 821, -825,
1513 58, 783, -142, 433, -143, 766, 473, 818, 579, 706,
1514 -576, 92, 473, -576, 90, 15, 92, 832, 202, 1084,
1515 833, 1505, 834, 364, 675, 835, 1219, 1220, 475, 1062,
1516 59, 130, 131, 685, 1219, 1220, 475, 127, 128, 508,
1517 1525, 815, 1505, 706, 842, 706, 675, 225, 843, 943,
1518 733, 433, 859, 855, 225, 500, 1529, 95, 415, 416,
1519 475, -576, 1285, -576, -576, -184, -576, 861, 1300, 1603,
1520 862, 822, 475, 225, 864, 920, 89, -576, 922, -576,
1521 137, -184, 941, -184, 1255, 943, 1368, 351, 26, 967,
1522 130, 131, 574, 72, -576, -576, 90, 978, 969, 708,
1523 127, 128, 1505, 1578, 546, 536, 475, 968, 475, -576,
1524 706, 98, 113, 982, 547, 158, 979, 1053, 984, -298,
1525 20, 1455, 473, 735, 1018, 1257, 473, 1453, 1405, 1458,
1526 89, 1259, 1260, 412, 414, 1257, 1262, 823, 1426, 1260,
1527 1079, 992, 537, 225, 993, 996, 770, 1002, 1350, 225,
1528 90, 26, 1003, 130, 131, 91, 667, 454, 706, 1341,
1529 1024, 1051, 1342, 1427, 540, 473, 1043, 546, 1050, 821,
1530 1057, 930, 933, 475, 1054, 92, 1115, 547, 818, 1116,
1531 1157, 1117, 797, 1121, 1122, 95, 110, 111, 530, 1119,
1532 155, 155, 155, 567, 568, 1120, 95, 110, 111, 1123,
1533 202, 59, 95, 96, 97, 473, 1124, 1125, -141, 1128,
1534 89, 72, 815, 473, 1126, 1471, 1129, 1131, 1478, 1361,
1535 1362, 475, 773, 1132, 21, 116, 798, 799, 773, 800,
1536 90, 158, 158, 158, 1047, 1048, 1133, 473, 76, 112,
1537 113, 1134, 822, 1157, 1137, 872, 1135, 1136, 1138, 473,
1538 112, 113, 1494, 668, 26, 1349, 98, 99, 100, 222,
1539 801, 1148, 1084, 789, 72, 1150, 202, 752, 202, 202,
1540 58, 127, 128, 1151, 762, 1152, 1350, 26, 158, 119,
1541 120, 1153, 411, 473, 210, 473, 1350, 1341, 225, 921,
1542 1162, 127, 128, 1350, 1160, 202, 536, 1341, 545, 1161,
1543 1342, 855, 1171, 202, 1341, 1172, 1568, 1342, 823, 153,
1544 1177, 1190, 1184, 1186, 574, 636, 574, 421, 424, 1189,
1545 828, 852, 26, 1202, 130, 131, 716, 717, 605, 606,
1546 607, 608, 609, 720, 574, 1228, 225, 1241, 637, 72,
1547 1258, 1263, 26, 1268, 130, 131, 1264, 574, 638, 72,
1548 473, 879, 1272, 383, 384, 385, 72, 225, 912, 988,
1549 639, 640, 1278, 95, 96, 97, 1279, 995, 913, 1620,
1550 1280, 1281, 1295, 1286, 1290, 140, 140, 1299, 156, 902,
1551 1210, 914, 1291, 1349, 461, 919, 1307, 1301, 58, 1250,
1552 1251, -659, 1302, 1349, 383, 384, 385, 872, 473, 386,
1553 1349, 940, 213, 706, 221, 1303, 1306, 387, 388, 364,
1554 238, 1312, 1313, 1365, 1372, 773, 1265, 98, 99, 1376,
1555 1398, 1267, 1399, 1452, 1400, 1452, 422, 425, 301, 395,
1556 396, 10, 1409, 1406, 1480, 1481, 773, 1550, 95, 96,
1557 97, 58, 1350, 1350, 1550, 155, 26, 1350, 387, 388,
1558 1410, 1415, 155, 1341, 1341, 1387, 1342, 1416, 1341, 222,
1559 202, 1342, 1417, 351, 1361, 1362, 475, 21, 1418, 1425,
1560 1434, 1435, 153, 1436, 252, 1448, 1450, 1463, 1495, 1490,
1561 1508, 706, 27, 321, 127, 128, 140, 1491, 1350, 1648,
1562 1052, 140, 98, 99, 156, 156, 156, 1350, 1492, 1341,
1563 298, 202, 1342, 510, 1493, 72, 72, 298, 1341, 1497,
1564 72, 1342, 1509, 376, 32, 467, 58, 95, 110, 111,
1565 1513, 213, 1516, 1550, 776, 777, 58, 451, 216, 217,
1566 1100, 1515, 259, 58, 14, 26, 1105, 130, 131, 487,
1567 487, 496, 1523, 1546, 475, 200, 1554, 200, 1350, 1349,
1568 1349, 72, 1564, 1565, 1349, 221, 259, 20, 1589, 1341,
1569 72, 1580, 1342, 513, 221, 1590, 23, 1075, 1076, 9,
1570 10, 112, 113, 1598, 1614, 158, 158, 158, 1379, 1380,
1571 1596, 1389, 1390, 1601, 1392, 259, 298, 225, 1350, 1602,
1572 1635, 1618, 116, 798, 799, 1349, 259, 1624, 1625, 1341,
1573 1628, 1631, 1342, 1636, 1349, 140, 21, 576, 1640, 1645,
1574 828, 72, 828, 116, 798, 799, 1649, 1085, 1092, 26,
1575 828, 27, 28, 1650, 1657, 1249, 1581, 1077, 1604, 1652,
1576 1658, 95, 110, 111, 1660, 194, 685, 1661, 95, 110,
1577 111, 1, 1163, 473, 1164, 195, 119, 120, 443, 988,
1578 225, 72, 5, 32, 160, 1349, 259, 196, 603, 604,
1579 605, 606, 607, 608, 609, 26, 773, 119, 120, 127,
1580 128, 1520, 981, 216, 217, 1146, 156, 296, 442, 14,
1581 1193, 725, 58, 58, 296, 112, 1517, 58, 440, 8,
1582 9, 259, 112, 1519, 247, 1349, 1619, 1089, 1314, 1474,
1583 1475, 361, 20, -52, 520, 410, 422, 719, -52, 1169,
1584 1504, 23, 574, 636, 1656, 259, 18, 551, 518, -52,
1585 26, 473, 130, 131, 1185, 155, 155, 155, 58, 773,
1586 1023, 127, 128, 155, 155, 155, 637, 58, 970, 523,
1587 26, 1370, 130, 131, 1246, 1266, 638, 1091, 200, 1183,
1588 1393, 213, 221, 511, 216, 217, 1236, 503, 646, 640,
1589 14, 633, 971, 296, 907, 140, 1237, 1461, 140, 391,
1590 422, 425, 129, 1359, 156, 156, 156, 18, 1238, 1642,
1591 140, 1634, 26, 20, 130, 131, 1593, 467, 58, 1284,
1592 1639, 1641, 23, 1042, 1470, 0, 471, 0, 0, 574,
1593 0, 1537, 1538, 1539, 0, 0, 0, 1273, 259, 1275,
1594 0, 0, 0, 0, 0, 0, 0, 213, 0, 221,
1595 411, 0, 0, 0, 0, 0, 0, 0, 58, 576,
1596 158, 576, 0, 487, 0, 0, 487, 158, 496, 496,
1597 496, 95, 110, 111, 451, 226, 227, 228, 422, 860,
1598 487, 513, 221, 0, 0, 451, 0, 1570, 1571, 513,
1599 1085, 0, 576, 0, 0, 259, 1305, 0, 0, 18,
1600 1319, 0, 451, 0, 0, 229, 1284, 467, 0, 0,
1601 0, 8, 9, 0, 0, 0, 1075, 1076, 9, 10,
1602 828, 0, 0, 0, 0, 112, 113, 0, 156, 0,
1603 156, 0, 0, 0, 0, 0, 0, 0, 18, 1297,
1604 0, 301, 127, 128, 10, 0, 156, 156, 156, 0,
1605 0, 0, 954, 468, 0, 21, 1621, 0, 0, 0,
1606 0, 156, 26, 0, 130, 131, 467, 0, 26, 18,
1607 27, 28, 467, 0, 467, 467, 1077, 1371, 1236, 0,
1608 21, 0, 1375, 0, 194, 0, 636, 341, 1237, 341,
1609 0, 341, 0, 26, 195, 27, 321, 0, 0, 0,
1610 1238, 467, 32, 0, 259, 0, 196, 0, 467, 1173,
1611 0, 0, 929, 929, 936, 0, 0, 0, 0, 1174,
1612 612, 955, 0, 127, 128, 1440, 1441, 32, 247, 0,
1613 259, 1175, 640, 0, 1412, 0, 341, 0, 341, 471,
1614 0, 221, 0, 95, 110, 111, 0, 682, 683, 684,
1615 18, 0, 0, 0, 153, 0, 0, 0, 0, 613,
1616 614, 1040, 0, 615, 616, 617, 618, 636, 0, 1401,
1617 1402, 1403, 1404, 0, 26, 954, 130, 131, 0, 1407,
1618 0, 221, 238, 1388, 0, 422, 719, 0, 1388, 469,
1619 637, 828, 0, 0, 0, 489, 492, 112, 113, 0,
1620 638, 601, 602, 603, 604, 605, 606, 607, 608, 609,
1621 467, 1500, 639, 640, 0, 471, 259, 0, 0, 0,
1622 0, 1025, 1025, 1031, 467, 1438, 1486, 1487, 0, 0,
1623 1031, 259, 0, 1518, 1521, 0, 0, 0, 0, 0,
1624 158, 158, 158, 1496, 156, 0, 0, 0, 158, 158,
1625 158, 487, 487, 496, 496, 496, 0, 0, 0, 487,
1626 95, 96, 97, 0, 226, 227, 228, 513, 0, 0,
1627 451, 0, 0, 202, 1456, 202, 0, 0, 0, 0,
1628 0, 0, 0, 0, 155, 0, 0, 0, 18, 0,
1629 1381, 1382, 9, 10, 229, 0, 0, 0, 213, 0,
1630 0, 0, 1533, 1534, 0, 0, 0, 0, 0, 0,
1631 1566, 0, 26, 0, 98, 99, 230, 0, 1544, 1545,
1632 0, 565, 0, 0, 0, 740, 0, 0, 0, 21,
1633 1514, 7, 8, 251, 10, 259, 0, 0, 0, 0,
1634 0, 0, 26, 0, 27, 28, 0, 0, 370, 372,
1635 1383, 0, 0, 155, 155, 155, 422, 860, 194, 341,
1636 231, 232, 233, 259, 0, 467, 0, 0, 195, 0,
1637 21, 0, 0, 0, 0, 471, 32, 252, 0, 467,
1638 196, 467, 471, 467, 0, 27, 28, 0, 0, 0,
1639 0, 0, 0, 1548, 0, 7, 8, 9, 10, 879,
1640 1548, 13, 0, 0, 0, 929, 0, 0, 929, 253,
1641 0, 0, 0, 0, 0, 848, 0, 32, 0, 574,
1642 929, 0, 0, 18, 1170, 1170, 955, 0, 0, 0,
1643 0, 470, 0, 467, 21, 422, 425, 0, 0, 0,
1644 636, 0, 0, 422, 1227, 0, 0, 26, 0, 27,
1645 28, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646 738, 469, 0, 746, 238, 0, 0, 0, 467, 0,
1647 0, 0, 0, 747, 900, 0, 202, 0, 0, 1548,
1648 901, 32, 903, 904, 471, 748, 640, 0, 0, 774,
1649 0, 471, 775, 0, 489, 492, 0, 0, 1623, 0,
1650 0, 1025, 1025, 1218, 1218, 1031, 791, 0, 0, 0,
1651 1025, 1218, 1218, 1031, 0, 0, 959, 341, 0, 1638,
1652 0, 0, 1239, 1239, 1239, 0, 0, 0, 879, 0,
1653 0, 7, 127, 128, 10, 0, 0, 0, 259, 0,
1654 259, 0, 451, 451, 0, 0, 0, 0, 0, 0,
1655 341, 469, 0, 0, 0, 0, 0, 0, 851, 0,
1656 0, 0, 0, 0, 0, 0, 0, 471, 0, 451,
1657 21, 0, 578, 471, 451, 0, 0, 252, 0, 0,
1658 422, 719, 341, 0, 738, 27, 28, 876, 877, 0,
1659 881, 882, 883, 884, 885, 886, 887, 888, 889, 890,
1660 891, 892, 893, 894, 895, 896, 897, 898, 899, 253,
1661 469, 0, 0, 127, 128, 259, 469, 32, 469, 469,
1662 0, 0, 0, 0, 0, 0, 0, 0, 422, 719,
1663 0, 0, 0, 0, 654, 8, 9, 10, 0, 0,
1664 18, 0, 0, 0, 705, 469, 0, 0, 1170, 1170,
1665 955, 0, 469, 0, 0, 0, 0, 636, 0, 467,
1666 0, 467, 0, 467, 26, 0, 130, 131, 259, 158,
1667 310, 655, 0, 21, 127, 128, 973, 975, 216, 217,
1668 637, 0, 0, 471, 14, 0, 26, 471, 130, 131,
1669 638, 0, 341, 0, 1025, 1025, 1218, 1218, 1031, 0,
1670 0, 1025, 639, 640, 0, 0, 0, 20, 0, 0,
1671 0, 1239, 1239, 1239, 0, 0, 23, 0, 636, 0,
1672 705, 7, 8, 9, 10, 26, 471, 130, 131, 0,
1673 0, 451, 451, 0, 451, 451, 738, 451, 158, 158,
1674 158, 637, 0, 0, 0, 0, 0, 489, 492, 0,
1675 0, 638, 0, 0, 469, 0, 0, 0, 259, 0,
1676 21, 0, 0, 639, 640, 467, 471, 252, 469, 0,
1677 0, 0, 0, 1142, 471, 27, 28, 774, 775, 489,
1678 492, 0, 0, 0, 0, 791, 0, 1154, 0, 1155,
1679 0, 1156, 0, 0, 849, 0, 850, 0, 471, 253,
1680 0, 853, 854, 856, 857, 858, 0, 32, 0, 0,
1681 471, 0, 0, 1063, 578, 0, 0, 7, 8, 9,
1682 10, 215, 216, 217, 213, 221, 0, 875, 14, 0,
1683 0, 341, 341, 0, 341, 0, 1469, 1469, 0, 1469,
1684 0, 1188, 0, 259, 471, 18, 471, 0, 0, 0,
1685 0, 20, 451, 451, 0, 0, 21, 0, 0, 0,
1686 23, 905, 636, 1040, 0, 0, 0, 0, 0, 26,
1687 1127, 27, 28, 0, 0, 0, 1200, 0, 0, 0,
1688 935, 0, 0, 0, 0, 194, 0, 935, 0, 0,
1689 0, 0, 0, 0, 0, 195, 0, 1381, 127, 128,
1690 10, 0, 0, 32, 0, 0, 0, 1457, 738, 469,
1691 0, 471, 467, 0, 0, 0, 0, 0, 0, 0,
1692 0, 0, 0, 469, 0, 469, 0, 469, 0, 0,
1693 0, 0, 496, 422, 1227, 0, 21, 0, 0, 0,
1694 0, 1469, 1469, 1532, 0, 259, 0, 0, 0, 26,
1695 0, 27, 28, 80, 451, 451, 451, 1383, 0, 471,
1696 0, 0, 0, 104, 0, 30, 1182, 0, 0, 0,
1697 0, 0, 0, 133, 0, 31, 0, 469, 0, 144,
1698 144, 0, 144, 32, 80, 0, 0, 33, 0, 935,
1699 0, 80, 341, 0, 0, 1196, 935, 0, 0, 0,
1700 0, 496, 496, 496, 204, 0, 80, 0, 0, 0,
1701 451, 451, 469, 0, 239, 0, 0, 0, 0, 0,
1702 0, 104, 0, 0, 0, 0, 0, 774, 775, 489,
1703 492, 0, 263, 104, 0, 0, 791, 489, 492, 0,
1704 0, 0, 738, 738, 0, 0, 0, 0, 774, 775,
1705 791, 0, 0, 8, 9, 104, 0, 0, 536, 127,
1706 128, 0, 0, 0, 536, 0, 0, 1315, 0, 1316,
1707 0, 1317, 470, 0, 0, 0, 1256, 0, 470, 451,
1708 18, 0, 0, 133, 0, 80, 18, 0, 0, 144,
1709 144, 0, 0, 0, 413, 144, 0, 0, 144, 144,
1710 144, 0, 0, 636, 26, 0, 130, 131, 0, 0,
1711 26, 0, 130, 131, 80, 0, 0, 0, 80, 0,
1712 1236, 0, 0, 0, 204, 80, 637, 738, 738, 0,
1713 1237, 1287, 301, 8, 9, 10, 638, 0, 0, 0,
1714 0, 0, 1238, 204, 204, 204, 0, 1139, 639, 640,
1715 0, 341, 0, 0, 810, 0, 7, 8, 811, 10,
1716 167, 12, 13, 0, 0, 0, 0, 14, 0, 0,
1717 0, 21, 204, 1414, 301, 395, 396, 10, 252, 0,
1718 0, 16, 875, 17, 18, 19, 27, 321, 470, 522,
1719 20, -520, 935, 0, 0, 21, 0, 0, 104, 23,
1720 812, 0, 168, 469, 471, 469, 0, 469, 26, 144,
1721 27, 28, 0, 21, 813, 738, 814, 0, 32, 0,
1722 774, 775, 489, 492, 30, 0, 26, 791, 27, 321,
1723 0, 705, 0, 1194, 31, 0, 0, 489, 492, 738,
1724 0, 0, 32, 0, 0, 0, 33, 104, 548, 0,
1725 0, 0, 0, 1377, 1378, 0, 0, 0, 0, 0,
1726 32, 0, -520, 0, 0, 0, 0, 8, 9, 0,
1727 260, 935, 247, 0, 0, 0, 0, 0, 0, 935,
1728 0, 738, 471, 0, 0, 931, 934, 1233, 0, 0,
1729 0, 0, 0, 104, 18, 0, 0, 634, 0, 548,
1730 548, 649, 0, 470, 0, 0, 0, 0, 0, 469,
1731 80, 636, 0, 0, 0, 470, 0, 0, 26, 0,
1732 130, 131, 7, 8, 9, 10, 0, 0, 247, 1433,
1733 0, 0, 0, 0, 1466, 0, 0, 0, 0, 0,
1734 0, 0, 0, 133, 1467, 0, 0, 435, 0, 470,
1735 18, 470, 104, 0, 204, 104, 1468, 640, 0, 1277,
1736 0, 21, 774, 775, 0, 791, 0, 636, 738, 144,
1737 0, 0, 144, 0, 26, 0, 27, 28, 0, 0,
1738 486, 0, 1479, 0, 144, 0, 0, 0, 0, 0,
1739 746, 0, 80, 505, 931, 934, 0, 0, 0, 0,
1740 747, 0, 0, 0, 0, 738, 0, 0, 32, 0,
1741 0, 0, 748, 640, 0, 0, 935, 0, 0, 0,
1742 204, 753, 204, 204, 649, 0, 0, 0, 753, 0,
1743 7, 8, 9, 10, 0, 0, 204, 204, 0, 0,
1744 204, 0, 204, 204, 204, 781, 0, 0, 0, 204,
1745 0, 0, 0, 0, 204, 0, 469, 204, 18, 0,
1746 0, 0, 0, 0, 935, 0, 0, 489, 492, 21,
1747 0, 0, 0, 0, 80, 636, 1535, 1536, 0, 0,
1748 0, 0, 26, 0, 27, 28, 0, 0, 810, 0,
1749 7, 8, 811, 10, 167, 12, 13, 0, 746, 0,
1750 0, 14, 0, 0, 0, 0, 0, 0, 747, 1561,
1751 104, 104, 104, 104, 0, 16, 32, 17, 18, 19,
1752 748, 640, 0, 0, 20, -521, 0, 489, 492, 21,
1753 0, 0, 0, 23, 812, 0, 168, 0, 0, 0,
1754 1575, 0, 26, 0, 27, 28, 0, 0, 813, 0,
1755 814, 0, 0, 0, 0, 0, 0, 0, 30, 0,
1756 0, 0, 0, 7, 8, 9, 10, 0, 31, 13,
1757 104, 0, 548, 0, 0, 0, 32, 0, 1158, 0,
1758 33, 1159, 0, 0, 634, 0, 548, 548, 649, 0,
1759 0, 18, 0, 1165, 0, 956, -521, 931, 934, 958,
1760 0, 0, 21, 0, 0, 0, 0, 1233, 636, 0,
1761 0, 0, 0, 0, 204, 26, 0, 27, 28, 598,
1762 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
1763 609, 1028, 0, 301, 8, 9, 10, 0, 0, 0,
1764 133, 1029, 738, 0, 0, 0, 0, 133, 0, 32,
1765 0, 0, 0, 1030, 640, 204, 239, 0, 0, 301,
1766 127, 128, 10, 7, 8, 9, 10, 0, 0, 0,
1767 0, 0, 21, 0, 1158, 1159, 931, 934, 0, 252,
1768 0, 0, 0, 1165, 931, 934, 784, 27, 321, 0,
1769 0, 790, 0, 0, 0, 204, 204, 1033, 21, 0,
1770 0, 0, 21, 0, 1033, 252, 0, 0, 636, 935,
1771 0, 253, 0, 27, 321, 26, 830, 27, 28, 32,
1772 0, 0, 836, 0, 0, 204, 204, 781, 781, 781,
1773 0, 746, 0, 204, 844, 845, 0, 846, 8, 9,
1774 0, 747, 0, 536, 0, 32, 0, 0, 0, 32,
1775 0, 0, 0, 748, 640, 0, 0, 8, 9, 0,
1776 0, 133, 13, 0, 80, 18, 80, 0, 0, 578,
1777 0, 1086, 80, 0, 80, 0, 0, 0, 0, 0,
1778 104, 0, 636, 0, 18, 0, 104, 705, 0, 26,
1779 0, 130, 131, 548, 548, 548, 0, 0, 0, 0,
1780 0, 636, 0, 0, 548, 1466, 0, 0, 26, 0,
1781 130, 131, 0, 0, 0, 1467, 0, 0, 0, 0,
1782 0, 931, 934, 0, 1466, 0, 0, 1468, 640, 0,
1783 944, 945, 0, 0, 1467, 944, 0, 7, 8, 9,
1784 10, 167, 12, 13, 0, 0, 1468, 640, 14, 0,
1785 0, 0, 0, 0, 0, 104, 301, 8, 9, 10,
1786 0, 0, 16, 0, 17, 18, 19, 1158, 1159, 931,
1787 934, 20, 0, 0, 1165, 0, 21, 0, 548, 548,
1788 23, 0, 548, 168, 18, 548, 0, 0, 0, 26,
1789 104, 27, 28, 0, 548, 21, 104, 0, 956, 956,
1790 956, 636, 0, 0, 548, 30, 1176, 0, 26, 0,
1791 27, 321, 0, 0, 0, 31, 0, 0, 0, 0,
1792 0, 0, 0, 32, 1221, 0, 0, 33, 0, 0,
1793 0, 34, 0, 0, 1222, 0, 0, 0, 1035, 104,
1794 0, 104, 32, 0, 678, 0, 1223, 640, 588, 589,
1795 590, 591, 592, 593, 594, 595, 596, 597, 598, 599,
1796 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
1797 1049, 0, 0, 0, 204, 204, 204, 204, 204, 1033,
1798 781, 8, 9, 0, 204, 1033, 1033, 1033, -387, 8,
1799 9, -387, -387, 12, 247, 104, 781, 781, 781, 14,
1800 0, 0, 0, 0, 0, 0, 0, 0, 18, 1158,
1801 1159, 104, 1165, 16, 1086, 17, -387, 0, 0, 0,
1802 0, 0, 20, 104, 0, 636, 1107, -387, 1109, 0,
1803 0, 23, 26, 636, 130, 131, 1261, 0, 0, 0,
1804 26, 0, 130, 131, 80, 0, 0, 0, 1466, 0,
1805 0, 0, 0, 0, 0, 0, 637, 104, 1467, 104,
1806 0, 0, 0, 0, 0, 0, 638, 104, 0, 0,
1807 1468, 640, 0, 0, -387, 0, 0, 0, 639, 640,
1808 0, 0, 0, 0, 0, 0, 0, 0, 7, 8,
1809 9, 10, 0, 548, 548, 0, 548, 0, 0, 0,
1810 1144, 1145, 0, 1147, 0, 7, 8, 9, 10, 215,
1811 216, 217, 0, 0, 931, 934, 14, 0, 0, 548,
1812 0, 0, 548, 548, 649, 0, 0, 21, 0, 0,
1813 0, 0, 0, 18, 1166, 0, 0, 0, 0, 20,
1814 26, 0, 27, 28, 21, 0, 193, 0, 23, 0,
1815 636, 0, 0, 0, 0, 0, 194, 26, 0, 27,
1816 28, 0, 0, 0, 0, 0, 195, 781, 204, 204,
1817 781, 781, 1363, 746, 32, 204, 0, 0, 196, 0,
1818 0, 0, 0, 747, 0, 781, 781, 781, 781, 0,
1819 83, 32, 0, 0, 0, 755, 640, 0, 0, 0,
1820 106, 0, 0, 0, 0, 0, 0, 204, 0, 126,
1821 134, 0, 144, 0, 0, 80, 145, 145, 0, 145,
1822 0, 83, 1226, 0, 0, 0, 0, 0, 83, 0,
1823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1824 0, 145, 0, 83, 0, 0, 0, 0, 0, 1247,
1825 0, 240, 0, 0, 0, 0, 0, 0, 249, 0,
1826 6, 1252, 7, 8, 9, 10, 11, 12, 13, 0,
1827 249, 0, 0, 14, 0, 0, 0, 0, 0, 7,
1828 8, 9, 10, 0, 0, 536, 15, 16, 0, 17,
1829 18, 19, 0, 0, 0, 0, 20, 204, 753, 204,
1830 0, 21, 0, 0, 22, 23, 24, 18, 25, 0,
1831 781, 781, 0, 781, 26, 104, 27, 28, 21, 0,
1832 29, 0, 83, 0, 636, 0, 145, 145, 0, 0,
1833 30, 26, 145, 27, 28, 145, 145, 145, 0, 0,
1834 31, 0, 0, 0, 0, 0, 0, 746, 32, 1304,
1835 0, 83, 33, 0, 0, 83, 34, 747, 0, 0,
1836 0, 145, 83, 0, 0, 32, 0, 0, 0, 748,
1837 640, 0, 7, 127, 128, 10, 0, 0, 13, 0,
1838 145, 145, 145, 0, 0, 0, 0, 0, 0, 0,
1839 0, 0, 0, 301, 8, 9, 10, 0, 0, 0,
1840 18, 0, 0, 0, 0, 0, 1033, 0, 0, 145,
1841 0, 21, 1364, 0, 0, 781, 781, 1363, 781, 0,
1842 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
1843 0, 0, 21, 0, 0, 0, 0, 0, 0, 252,
1844 30, 0, 0, 0, 0, 0, 145, 27, 321, 0,
1845 31, 0, 0, 0, 0, 0, 1396, 0, 32, 0,
1846 1397, 810, 33, 7, 8, 811, 10, 167, 12, 13,
1847 0, 539, 0, 0, 14, 1033, 1033, 1033, 0, 32,
1848 0, 781, 0, 0, 249, 145, 0, 0, 16, 0,
1849 17, 18, 19, 0, 1413, 104, 0, 20, -523, 0,
1850 204, 0, 21, 0, 0, 0, 23, 812, 0, 168,
1851 0, 0, 0, 0, 0, 26, 0, 27, 28, 0,
1852 0, 813, 0, 814, 0, 0, 0, 0, 0, 0,
1853 249, 30, 0, 0, 635, 0, 145, 145, 650, 0,
1854 0, 31, 0, 659, 0, 0, 0, 83, 0, 32,
1855 0, 0, 0, 33, 0, 0, 301, 127, 128, 10,
1856 1472, 0, 13, 0, 1473, 0, 0, 0, 0, -523,
1857 0, 0, 0, 0, 0, 0, 0, 8, 9, 0,
1858 698, 0, 13, 0, 18, 0, 1488, 1489, 0, 249,
1859 0, 145, 249, 0, 0, 21, 0, 0, 0, 0,
1860 0, 636, 0, 0, 18, 0, 145, 0, 26, 145,
1861 27, 321, 0, 0, 0, 0, 0, 301, 8, 9,
1862 10, 145, 0, 13, 1173, 0, 0, 0, 26, 83,
1863 130, 131, 0, 0, 1174, 0, 0, 0, 0, 0,
1864 0, 0, 32, 0, 1236, 18, 1175, 640, 0, 0,
1865 0, 0, 0, 0, 1237, 0, 21, 145, 650, 145,
1866 145, 650, 636, 0, 0, 650, 1238, 0, 0, 26,
1867 0, 27, 321, 145, 145, 0, 0, 145, 0, 145,
1868 145, 145, 145, 0, 0, 1221, 145, 0, 0, 0,
1869 0, 145, 0, 0, 145, 1222, 0, 0, 0, 0,
1870 0, 0, 0, 32, 0, 0, 0, 1223, 640, 0,
1871 809, 83, 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 570, 0, 301, 8, 9, 10,
1873 167, 12, 302, 303, 304, 466, 305, 14, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 249, 249, 249,
1875 249, 16, 306, 17, 18, 19, 0, 307, 308, 309,
1876 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
1877 0, 636, 0, 315, 316, 317, 318, 319, 26, 0,
1878 27, 321, -312, 0, 0, 322, 0, 0, 0, 0,
1879 0, 323, 0, 0, 949, 0, 0, 0, 0, 0,
1880 0, 0, 325, 326, 950, 0, 0, 249, 0, 145,
1881 328, 329, 330, 0, 0, 0, 951, 640, 0, 0,
1882 0, 0, 0, 145, 145, 650, 0, 0, 0, 0,
1883 0, 0, 957, 332, 810, 0, 7, 8, 811, 10,
1884 167, 12, 13, 0, 0, 659, 0, 14, 0, 0,
1885 0, 145, 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 16, 0, 17, 18, 19, 0, 0, 0, 0,
1887 20, -522, 0, 0, 0, 21, 0, 698, 0, 23,
1888 812, 0, 168, 0, 0, 126, 0, 0, 26, 0,
1889 27, 28, 145, 240, 813, 0, 814, 0, 0, 0,
1890 0, 0, 0, 0, 30, 7, 8, 9, 10, 0,
1891 0, 0, 0, 0, 31, 0, 809, 0, 0, 0,
1892 0, 0, 32, 0, 0, 0, 33, 0, 0, 0,
1893 0, 0, 145, 145, 650, 0, 0, 0, 0, 0,
1894 0, 957, -522, 0, 21, 0, 0, 0, 166, 0,
1895 7, 8, 9, 10, 167, 12, 13, 26, 0, 27,
1896 28, 14, 145, 145, 145, 145, 145, 0, 0, 0,
1897 145, 0, 0, 194, 0, 16, 0, 17, 18, 19,
1898 0, 0, 0, 195, 20, 0, 0, 0, 0, 21,
1899 0, 32, 0, 23, 0, 196, 168, 0, 134, 0,
1900 0, 83, 26, 83, 27, 28, 0, 0, 1087, 83,
1901 0, 83, 0, 0, 0, 0, 0, 249, 30, 7,
1902 127, 128, 10, 249, 0, 247, 0, 0, 31, 0,
1903 145, 145, 145, 0, 0, 0, 32, 51, 0, 0,
1904 33, 145, 0, 0, 34, 0, 0, 18, 0, 0,
1905 0, 0, 7, 127, 128, 10, 0, 0, 21, 0,
1906 0, 0, 0, 51, 51, 0, 152, 0, 51, 0,
1907 0, 26, 0, 27, 28, 51, 0, 0, 0, 0,
1908 18, 0, 0, 0, 0, 0, 0, 30, 51, 0,
1909 51, 21, 249, 0, 0, 0, 0, 31, 0, 0,
1910 0, 0, 0, 0, 26, 32, 27, 28, 0, 33,
1911 0, 0, 0, 255, 0, 145, 145, 0, 0, 145,
1912 149, 0, 145, 0, 0, 0, 0, 249, 0, 0,
1913 150, 145, 0, 249, 0, 957, 957, 957, 32, 0,
1914 0, 145, 151, 659, 0, 0, 0, 0, 0, 0,
1915 0, 0, 7, 8, 9, 10, 215, 216, 217, 0,
1916 0, 0, 0, 14, 0, 0, 397, 397, 0, 51,
1917 0, 0, 0, 51, 51, 0, 249, 255, 249, 51,
1918 18, 0, 152, 152, 152, 0, 20, 0, 0, 432,
1919 0, 21, 0, 0, 0, 23, 0, 636, 51, 0,
1920 0, 0, 51, 0, 26, 0, 27, 28, 51, 51,
1921 0, 145, 145, 145, 145, 145, 650, 145, 0, 0,
1922 746, 145, 957, 957, 957, 0, 0, 51, 51, 152,
1923 747, 0, 249, 145, 145, 145, 0, 255, 32, 0,
1924 0, 0, 748, 640, 0, 0, 809, 0, 249, 0,
1925 0, 1087, 0, 0, 0, 0, 51, 0, 0, 0,
1926 249, 0, 6, 0, 7, 8, 9, 10, 11, 12,
1927 13, 0, 0, 0, 0, 14, 0, 0, 0, 0,
1928 0, 83, 0, 0, 7, 127, 128, 10, 0, 16,
1929 13, 17, 18, 51, 249, 0, 249, 0, 20, 0,
1930 0, 0, 0, 21, 249, 0, 0, 23, 0, 0,
1931 439, 0, 18, 0, 0, 0, 26, 0, 27, 28,
1932 0, 0, 29, 21, 7, 8, 9, 10, 0, 0,
1933 145, 145, 30, 145, 0, 0, 26, 0, 27, 28,
1934 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
1935 32, 0, 149, 0, 33, 0, 145, 0, 0, 145,
1936 145, 650, 150, 21, 575, 0, 0, 0, 0, 0,
1937 32, 0, 0, 0, 151, 0, 26, 0, 27, 28,
1938 0, 397, 1451, 0, 0, 0, 0, 0, 809, 255,
1939 0, 0, 194, 0, 51, 0, 0, 0, 0, 0,
1940 0, 0, 195, 0, 145, 145, 145, 145, 145, 650,
1941 32, 0, 145, 0, 196, 0, 0, 0, 0, 0,
1942 0, 0, 145, 145, 145, 145, 0, 397, 0, 809,
1943 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
1944 0, 8, 9, 0, 145, 12, 247, 0, 0, 145,
1945 0, 14, 83, 51, 0, 0, 51, 0, 0, 0,
1946 0, 0, 432, 432, 432, 16, 0, 17, 51, 0,
1947 0, 0, 0, 0, 20, 0, 51, 0, 0, 0,
1948 0, 0, 0, 23, 0, 636, 0, 0, 0, 0,
1949 0, 0, 26, 0, 130, 131, 0, 0, 0, 0,
1950 0, 0, 0, 0, 51, 51, 51, 51, 637, 0,
1951 0, 0, 51, 0, 0, 0, 0, 0, 638, 0,
1952 51, 51, 0, 1444, 51, 0, 152, 152, 152, 432,
1953 639, 640, 0, 51, 145, 650, 145, 0, 51, 8,
1954 9, 51, 0, 12, 13, 0, 0, 145, 145, 14,
1955 145, 0, 249, 0, 0, 0, 8, 9, 51, 167,
1956 12, 13, 0, 16, 466, 17, 14, 0, 0, 0,
1957 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
1958 16, 23, 17, 18, 0, 0, 575, 0, 575, 20,
1959 26, 0, 130, 131, 619, 0, 0, 0, 23, 0,
1960 636, 0, 0, 0, 575, 575, 575, 26, 0, 130,
1961 131, 0, 0, 78, 0, 0, 0, 0, 0, 575,
1962 0, 0, 0, 637, 0, 0, 0, 0, 620, 7,
1963 8, 9, 10, 638, 0, 13, 0, 0, 0, 78,
1964 78, 0, 78, 957, 78, 639, 640, 0, 0, 0,
1965 0, 78, 145, 145, 650, 145, 0, 18, 0, 0,
1966 0, 0, 0, 0, 78, 0, 78, 255, 21, 0,
1967 0, 0, 0, 0, 0, 0, 0, 0, 0, 575,
1968 0, 26, 0, 27, 28, 0, 0, 0, 0, 0,
1969 0, 0, 0, 0, 0, 0, 0, 194, 51, 0,
1970 0, 0, 0, 0, 0, 159, 0, 195, 0, 0,
1971 0, 0, 957, 957, 957, 32, 0, 0, 145, 196,
1972 0, 0, 0, 0, 397, 0, 0, 205, 0, 0,
1973 0, 397, 249, 0, 0, 0, 0, 145, 0, 51,
1974 0, 0, 0, 0, 0, 78, 0, 0, 0, 78,
1975 78, 0, 0, 0, 0, 78, 0, 0, 78, 78,
1976 78, 597, 598, 599, 600, 601, 602, 603, 604, 605,
1977 606, 607, 608, 609, 78, 0, 0, 0, 78, 51,
1978 51, 152, 0, 0, 78, 78, 255, 0, 1039, 0,
1979 0, 0, 0, 0, 0, 0, 0, 7, 127, 128,
1980 10, 0, 575, 78, 78, 78, 0, 0, 0, 51,
1981 51, 432, 432, 432, 0, 0, 0, 51, 0, 0,
1982 0, 159, 159, 159, 0, 18, 0, 0, 0, 0,
1983 0, 0, 78, 0, 0, 0, 21, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 205, 51, 26,
1985 51, 27, 28, 0, 0, 51, 51, 0, 51, 0,
1986 0, 0, 0, 0, 0, 30, 205, 205, 498, 78,
1987 0, 0, 0, 0, 0, 31, 0, 0, 0, 0,
1988 0, 0, 0, 32, 0, 0, 0, 33, 0, 0,
1989 0, 0, 0, 0, 0, 205, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 1459, 0, 1322,
1991 1323, 1324, 10, 167, 12, 302, 303, 304, 0, 305,
1992 14, 1325, 0, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
1993 1333, 1334, 1335, 15, 16, 306, 17, 18, 19, 0,
1994 307, 308, 309, 20, 0, 310, 311, 312, 21, 313,
1995 314, 1336, 23, 1337, 0, 0, 315, 316, 317, 318,
1996 319, 26, 0, 1338, 321, 733, 658, 1339, 322, 0,
1997 78, 549, 0, 0, 323, 0, 0, 324, 0, 0,
1998 0, 0, 575, 575, 575, 325, 326, 327, 432, 255,
1999 0, 0, 0, 328, 329, 330, 0, 0, 0, 331,
2000 0, 1340, 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 78, 1460, 332, 0, 0, 0,
2002 0, 0, 643, 643, 643, 0, 0, 0, 0, 78,
2003 0, 0, 78, 0, 0, 0, 0, 7, 127, 128,
2004 10, 0, 0, 536, 78, 0, 0, 0, 0, 0,
2005 0, 0, 78, 0, 0, 0, 0, 0, 51, 51,
2006 51, 152, 152, 152, 432, 18, 255, 0, 51, 1039,
2007 1039, 1039, 0, 0, 0, 0, 21, 205, 0, 0,
2008 78, 78, 78, 78, 0, 0, 0, 0, 78, 26,
2009 0, 27, 28, 0, 0, 0, 78, 78, 51, 0,
2010 78, 0, 78, 78, 78, 30, 0, 0, 0, 78,
2011 0, 0, 0, 0, 78, 31, 0, 78, 0, 255,
2012 0, 0, 0, 32, 0, 0, 0, 33, 51, 0,
2013 0, 8, 9, 0, 78, 12, 247, 0, 0, 0,
2014 0, 14, 0, 750, 0, 750, 750, 643, 0, 0,
2015 0, 0, 0, 0, 0, 16, 0, 17, 0, 205,
2016 205, 0, 0, 205, 20, 498, 498, 498, 782, 0,
2017 0, 0, 205, 23, 0, 0, 0, 205, 0, 0,
2018 205, 0, 26, 0, 130, 131, 0, 0, 0, 0,
2019 0, 0, 0, 7, 8, 9, 10, 167, 12, 13,
2020 0, 0, 466, 432, 14, 0, 432, 432, 432, 255,
2021 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
2022 17, 18, 0, 0, 0, 0, 0, 20, 0, 0,
2023 0, 0, 21, 0, 0, 0, 23, 0, 636, 0,
2024 0, 0, 0, 0, 658, 26, 0, 27, 28, 0,
2025 0, 432, 51, 51, 432, 432, 432, 0, 0, 51,
2026 0, 1028, 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 1029, 0, 0, 78, 0, 0, 0, 0, 32,
2028 0, 0, 0, 1030, 640, 0, 0, 0, 0, 0,
2029 0, 51, 0, 0, 0, 915, 51, 0, 0, 51,
2030 0, 0, 0, 0, 0, 0, 0, 0, 0, 643,
2031 643, 643, 0, 0, 0, 78, 0, 810, 643, 7,
2032 8, 811, 10, 167, 12, 13, 0, 0, 0, 0,
2033 14, 0, 0, 0, 0, 0, 0, 205, 0, 0,
2034 0, 0, 0, 0, 16, 0, 17, 18, 19, 0,
2035 0, 0, 0, 20, 0, 78, 78, 78, 21, 0,
2036 0, 0, 23, 812, 1041, 168, 0, 0, 0, 0,
2037 0, 26, 0, 27, 28, 0, 0, 813, 750, 814,
2038 0, 51, 51, 51, 0, 78, 78, 30, 0, 0,
2039 0, 0, 0, 78, 0, 0, 0, 31, 0, 0,
2040 0, 0, 0, 0, 0, 32, 0, 0, 0, 33,
2041 0, 0, 0, 0, 0, 0, 0, 0, 750, 750,
2042 1034, 0, 0, 0, 78, 0, 78, 1034, 0, 0,
2043 0, 78, 78, 0, 78, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0, 205, 205,
2045 782, 782, 782, 0, 0, 0, 205, 301, 8, 9,
2046 10, 167, 12, 13, 0, 0, 466, 0, 14, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 16, 0, 17, 18, 0, 0, 0, 0,
2049 1039, 20, 0, 0, 205, 0, 21, 0, 0, 0,
2050 23, 0, 636, 0, 0, 0, 0, 0, 0, 26,
2051 0, 27, 321, 0, 0, 0, 549, 549, 549, 0,
2052 0, 0, 0, 0, 0, 1173, 0, 643, 7, 8,
2053 9, 10, 0, 0, 247, 1174, 0, 203, 0, 0,
2054 0, 0, 0, 32, 0, 0, 0, 1175, 640, 0,
2055 0, 0, 0, 0, 0, 0, 18, 0, 0, 1039,
2056 1039, 1039, 258, 0, 0, 262, 658, 21, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2058 26, 0, 27, 28, 51, 0, 258, 0, 366, 0,
2059 0, 0, 0, 0, 0, 0, 194, 0, 0, 0,
2060 0, 643, 643, 0, 0, 643, 195, 0, 643, 0,
2061 0, 0, 0, 0, 32, 0, 0, 643, 196, 0,
2062 0, 643, 643, 643, 0, 0, 0, 643, 7, 8,
2063 9, 10, 0, 0, 78, 78, 78, 78, 78, 78,
2064 0, 0, 0, 0, 78, 1041, 1041, 1041, 0, 0,
2065 0, 0, 0, 0, 0, 0, 18, 203, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
2067 0, 0, 0, 0, 78, 0, 203, 203, 203, 0,
2068 26, 0, 27, 28, 0, 0, 504, 0, 0, 0,
2069 0, 0, 0, 0, 0, 0, 493, 750, 750, 750,
2070 1034, 1034, 1034, 1224, 78, 203, 494, 750, 1034, 1034,
2071 1034, 0, 0, 0, 32, 0, 0, 0, 495, 782,
2072 782, 782, 0, 301, 8, 9, 10, 167, 12, 13,
2073 0, 262, 466, 0, 14, 0, 0, 205, 0, 0,
2074 0, 0, 0, 0, 0, 258, 0, 0, 16, 0,
2075 17, 18, 0, 0, 0, 0, 0, 20, 0, 0,
2076 0, 0, 21, 0, 0, 0, 23, 0, 636, 8,
2077 9, 0, 0, 12, 13, 26, 0, 27, 321, 14,
2078 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 1221, 0, 16, 0, 17, 641, 641, 641, 0,
2080 0, 1222, 20, 0, 0, 0, 0, 0, 0, 32,
2081 0, 23, 0, 1223, 640, 0, 915, 915, 0, 915,
2082 26, 0, 130, 131, 0, 0, 0, 0, 78, 78,
2083 0, 0, 0, 0, 0, 78, 0, 0, 258, 262,
2084 0, 0, 643, 0, 0, 643, 643, 643, 0, 0,
2085 7, 8, 9, 10, 0, 0, 13, 0, 906, 0,
2086 0, 0, 0, 0, 0, 0, 0, 78, 0, 0,
2087 0, 0, 78, 0, 0, 78, 0, 0, 18, 0,
2088 0, 0, 0, 0, 0, 0, 0, 203, 0, 21,
2089 1224, 750, 750, 1224, 1224, 1224, 0, 0, 750, 0,
2090 0, 0, 26, 0, 27, 28, 0, 0, 782, 782,
2091 782, 782, 0, 0, 0, 0, 0, 641, 493, 641,
2092 641, 641, 0, 0, 0, 0, 0, 0, 494, 0,
2093 205, 0, 0, 102, 0, 0, 32, 0, 0, 0,
2094 495, 0, 121, 102, 0, 0, 0, 0, 0, 102,
2095 102, 0, 102, 203, 0, 203, 203, 78, 78, 78,
2096 0, 7, 8, 9, 10, 206, 12, 207, 0, 203,
2097 203, 0, 14, 203, 0, 203, 203, 203, 203, 0,
2098 0, 0, 203, 0, 236, 0, 16, 203, 17, 18,
2099 203, 0, 0, 0, 0, 20, 0, 0, 0, 0,
2100 21, 0, 0, 0, 23, 0, 0, 0, 0, 0,
2101 0, 0, 0, 26, 0, 27, 28, 0, 0, 208,
2102 205, 0, 205, 0, 0, 0, 0, 0, 0, 30,
2103 0, 0, 0, 1224, 1224, 0, 1224, 0, 0, 31,
2104 0, 0, 0, 390, 0, 121, 0, 32, 0, 0,
2105 0, 33, 102, 102, 0, 0, 0, 0, 0, 102,
2106 102, 0, 0, 102, 102, 102, 1041, 418, 102, 102,
2107 102, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 641, 641, 641, 0, 0, 0, 0,
2109 0, 0, 953, 0, 0, 0, 0, 0, 0, 0,
2110 8, 9, 0, 167, 12, 13, 0, 0, 466, 0,
2111 14, 0, 0, 0, 0, 0, 0, 7, 8, 9,
2112 10, 0, 0, 536, 16, 0, 17, 18, 0, 498,
2113 0, 258, 262, 20, 0, 1041, 1041, 1041, 1224, 1224,
2114 1224, 1224, 23, 0, 636, 18, 0, 203, 0, 0,
2115 0, 26, 641, 130, 131, 0, 21, 0, 236, 102,
2116 78, 0, 0, 0, 0, 0, 0, 1466, 0, 26,
2117 0, 27, 28, 0, 0, 0, 0, 1467, 0, 102,
2118 0, 0, 0, 0, 0, 194, 0, 0, 203, 1468,
2119 640, 0, 641, 641, 641, 195, 0, 0, 498, 498,
2120 498, 953, 0, 32, 1224, 0, 0, 196, 0, 0,
2121 0, 0, 0, 0, 0, 0, 0, 0, 102, 0,
2122 0, 0, 0, 205, 0, 0, 0, 0, 203, 203,
2123 1032, 0, 0, 0, 0, 258, 0, 1032, 592, 593,
2124 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
2125 604, 605, 606, 607, 608, 609, 0, 0, 203, 203,
2126 203, 203, 203, 504, 0, 0, 203, 102, 0, 102,
2127 102, 0, 7, 8, 9, 10, 167, 12, 13, 0,
2128 0, 761, 0, 14, 0, 0, 0, 0, 0, 0,
2129 0, 262, 0, 0, 0, 0, 0, 16, 0, 17,
2130 18, 641, 0, 0, 203, 0, 20, 0, 0, 0,
2131 0, 21, 0, 102, 0, 23, 301, 8, 9, 10,
2132 0, 0, 13, 0, 26, 0, 27, 28, 0, 0,
2133 0, 0, 102, 0, 0, 7, 8, 9, 10, 102,
2134 30, 0, 102, 0, 18, 0, 0, 0, 0, 0,
2135 31, 0, 0, 0, 102, 21, 0, 0, 32, 0,
2136 0, 0, 33, 18, 0, 0, 0, 0, 26, 0,
2137 27, 321, 0, 0, 21, 641, 641, 0, 0, 641,
2138 0, 0, 641, 0, 778, 0, 0, 26, 0, 27,
2139 28, 641, 0, 1510, 779, 953, 953, 953, 0, 0,
2140 0, 641, 32, 194, 0, 0, 780, 0, 0, 0,
2141 0, 0, 0, 195, 0, 0, 0, 0, 0, 0,
2142 0, 32, 0, 0, 0, 196, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0, 258, 262,
2144 258, 102, 0, 802, 1511, 588, 589, 590, 591, 592,
2145 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
2146 603, 604, 605, 606, 607, 608, 609, 102, 0, 0,
2147 0, 641, 641, 641, 641, 641, 641, 641, 0, 0,
2148 0, 641, 953, 953, 953, 588, 589, 590, 591, 592,
2149 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
2150 603, 604, 605, 606, 607, 608, 609, 203, 203, 203,
2151 203, 203, 1032, 203, 0, 1225, 0, 203, 1032, 1032,
2152 1032, 1075, 8, 811, 10, 206, 12, 207, 1597, 203,
2153 203, 203, 14, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 102, 0, 0, 0, 16, 203, 17, 18,
2155 0, 0, 0, 102, 102, 20, 102, 102, 0, 0,
2156 21, 0, 0, 0, 23, 0, 0, 0, 504, 0,
2157 0, 0, 0, 26, 0, 27, 28, 0, 0, 0,
2158 0, 1077, 0, 0, 301, 8, 9, 10, 0, 30,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
2160 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,
2161 102, 33, 18, 0, 0, 0, 641, 102, 121, 641,
2162 641, 641, 0, 21, 0, 0, 236, 0, 0, 0,
2163 0, 0, 0, 0, 0, 0, 26, 0, 27, 321,
2164 0, 0, 18, 0, 0, 0, 0, 0, 0, 802,
2165 0, 0, 778, 0, 0, 0, 0, 0, 258, 0,
2166 0, 0, 779, 0, 641, 641, 641, 641, 641, 641,
2167 32, 0, 641, 0, 780, 588, 589, 590, 591, 592,
2168 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
2169 603, 604, 605, 606, 607, 608, 609, 0, 0, 0,
2170 203, 203, 203, 203, 203, 1032, 0, 0, 203, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0, 203, 203,
2172 203, 203, 0, 0, 0, 0, 0, 0, 802, 0,
2173 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
2174 203, 0, 0, 0, 0, 0, 0, 0, 570, 0,
2175 7, 8, 9, 10, 167, 12, 302, 303, 304, 466,
2176 305, 14, 0, 102, 102, 102, 0, 0, 0, 0,
2177 0, 0, 0, 0, 102, 16, 306, 17, 18, 19,
2178 0, 307, 308, 309, 20, 0, 310, 311, 312, 21,
2179 313, 314, 0, 23, 0, 636, 0, 315, 316, 317,
2180 318, 319, 26, 0, 27, 28, -312, 641, 641, 322,
2181 641, 0, 0, 0, 0, 323, 0, 0, 1036, 0,
2182 0, 0, 0, 0, 0, 0, 325, 326, 1037, 0,
2183 203, 0, 203, 0, 328, 329, 330, 0, 0, 0,
2184 1038, 640, 0, 203, 203, 1225, 203, 0, 102, 102,
2185 0, 0, 102, 0, 0, 102, 0, 332, 0, 0,
2186 0, 0, 0, 0, 102, 0, 7, 8, 9, 10,
2187 206, 12, 207, 0, 102, 8, 9, 14, 167, 12,
2188 13, 0, 0, 466, 0, 14, 0, 0, 0, 0,
2189 0, 16, 0, 17, 18, 0, 0, 0, 0, 16,
2190 20, 17, 18, 0, 0, 21, 0, 0, 20, 23,
2191 0, 0, 641, 641, 641, 641, 0, 23, 26, 0,
2192 27, 28, 0, 0, 1454, 0, 26, 0, 130, 131,
2193 0, 0, 0, 0, 30, 0, 0, 0, 0, 1032,
2194 0, 0, 0, 0, 31, 0, 0, 0, 203, 203,
2195 1032, 203, 32, 0, 0, 0, 33, 0, 0, 0,
2196 0, 7, 8, 9, 10, 167, 12, 13, 0, 0,
2197 0, 0, 14, 0, 0, 0, 0, 0, 641, 802,
2198 0, 0, 0, 0, 0, 0, 16, 0, 17, 18,
2199 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
2200 21, 0, 0, 0, 23, 0, 102, 0, 1032, 1032,
2201 1032, 0, 0, 26, 203, 27, 28, 8, 9, 0,
2202 167, 12, 13, 0, 0, 0, 0, 14, 0, 30,
2203 0, 0, 0, 203, 0, 0, 0, 0, 0, 31,
2204 0, 16, 0, 17, 18, 0, 0, 32, 0, 0,
2205 20, 33, 0, 0, 0, 0, 0, 0, 0, 699,
2206 0, 0, 168, 102, 102, 0, 102, 0, 26, 0,
2207 130, 131, 0, 0, 0, 0, 0, 1540, 0, -478,
2208 -478, -478, -478, -478, -478, -478, 0, 0, -478, 102,
2209 -478, 0, 102, 102, 0, 0, 0, 0, 0, 0,
2210 0, -478, 0, -478, 0, 0, 0, -478, 0, 0,
2211 0, 0, 0, -478, 0, 0, 0, 0, -478, 0,
2212 0, 802, -478, 0, -478, 0, 0, 0, 0, 0,
2213 0, -478, 0, -478, -478, -478, -478, -478, 0, -478,
2214 -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
2215 -478, -478, -478, -478, -478, -478, -478, -478, -478, -478,
2216 -478, -478, 802, -478, -478, -478, 0, -478, -478, -478,
2217 -478, -478, 0, 0, 0, 0, 0, 1541, -478, 0,
2218 102, 0, 102, -478, -478, -478, 1321, -478, 1322, 1323,
2219 1324, 10, 167, 12, 302, 303, 304, 0, 305, 14,
2220 1325, 0, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333,
2221 1334, 1335, 15, 16, 306, 17, 18, 19, 0, 307,
2222 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2223 1336, 23, 1337, 0, 0, 315, 316, 317, 318, 319,
2224 26, 0, 1338, 321, 733, 0, 1339, 322, 0, 0,
2225 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2226 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2227 0, 0, 328, 329, 330, 0, 0, 0, 331, 465,
2228 1340, 301, 8, 9, 10, 167, 12, 302, 303, 304,
2229 466, 305, 14, 0, 0, 332, 0, 0, 0, 0,
2230 0, 0, 0, 0, 0, 0, 16, 306, 17, 18,
2231 19, 0, 307, 308, 309, 20, 0, 310, 311, 312,
2232 21, 313, 314, 0, 23, 0, 0, 0, 315, 316,
2233 317, 318, 319, 26, 0, 27, 321, 0, 0, 0,
2234 322, 0, 0, 0, 0, 0, 323, 0, 0, 324,
2235 0, 0, 0, 0, 0, 0, 0, 325, 326, 327,
2236 0, 0, 0, 0, 0, 328, 329, 330, 0, 0,
2237 878, 331, 301, 8, 9, 10, 167, 12, 302, 303,
2238 304, 0, 305, 14, 0, 0, -796, 0, 332, 0,
2239 0, 0, 0, 0, 0, 0, 0, 16, 306, 17,
2240 18, 19, 0, 307, 308, 309, 20, 0, 310, 311,
2241 312, 21, 313, 314, 0, 23, 0, 0, 0, 315,
2242 316, 317, 318, 319, 26, 0, 27, 321, 1556, 0,
2243 -786, 322, 0, 0, 0, 0, 0, 323, 0, 0,
2244 324, 0, 0, 0, 0, 0, 0, 0, 325, 326,
2245 327, 0, 0, 0, 0, 0, 328, 329, 330, 0,
2246 0, 736, 331, 866, 867, 868, 10, 0, 12, 482,
2247 303, 304, 0, 305, 14, 0, 0, 0, 0, 332,
2248 0, 0, 0, 0, 0, 0, 0, 0, 16, 306,
2249 17, 0, 19, 0, 307, 308, 309, 20, 0, 310,
2250 311, 312, 21, 313, 314, 0, 23, 0, 0, 0,
2251 315, 316, 317, 318, 319, 26, 0, 869, 870, 737,
2252 0, 0, 322, 0, 0, 0, 0, 0, 323, 0,
2253 0, 324, 0, 0, 0, 0, 0, 0, 0, 325,
2254 326, 327, 0, 0, 0, 0, 0, 328, 329, 330,
2255 0, 0, 0, 331, 871, 570, 0, 301, 8, 9,
2256 10, 0, 12, 302, 303, 304, 0, 305, 14, 1022,
2257 332, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2258 0, 0, 16, 306, 17, 18, 19, 0, 307, 308,
2259 309, 20, 0, 310, 311, 312, 21, 313, 314, 0,
2260 23, 0, 0, 0, 315, 316, 317, 318, 319, 26,
2261 0, 27, 321, -312, 0, 0, 322, 0, 0, 0,
2262 0, 0, 323, 0, 0, 571, 0, 0, 0, 0,
2263 0, 0, 0, 325, 326, 572, 0, 0, 0, 0,
2264 0, 328, 329, 330, 0, 0, 736, 573, 866, 867,
2265 868, 10, 0, 12, 482, 303, 304, 0, 305, 14,
2266 0, 0, 0, 0, 332, 0, 0, 0, 0, 0,
2267 0, 0, 0, 16, 306, 17, 0, 19, 0, 307,
2268 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2269 0, 23, 0, 0, 0, 315, 316, 317, 318, 319,
2270 26, 0, 869, 870, 737, 0, 0, 322, 0, 0,
2271 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2272 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2273 0, 0, 328, 329, 330, 0, 0, 0, 331, 871,
2274 736, 0, 301, 8, 9, 10, 0, 12, 482, 303,
2275 304, 0, 305, 14, 0, 332, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 16, 306, 17,
2277 0, 19, 0, 307, 308, 309, 20, 0, 310, 311,
2278 312, 21, 313, 314, 0, 23, 0, 0, 0, 315,
2279 316, 317, 318, 319, 26, 0, 27, 321, 737, 0,
2280 0, 322, 0, 0, 0, 0, 0, 323, 0, 0,
2281 324, 0, 0, 0, 0, 0, 0, 0, 325, 326,
2282 327, 0, 0, 0, 0, 0, 328, 329, 330, 0,
2283 0, 0, 331, 736, 0, 866, 867, 868, 10, 1230,
2284 12, 482, 303, 304, 0, 305, 14, 0, 0, 332,
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2286 16, 306, 17, 0, 19, 0, 307, 308, 309, 20,
2287 0, 310, 311, 312, 21, 313, 314, 0, 23, 0,
2288 0, 0, 315, 316, 317, 318, 319, 26, 0, 869,
2289 870, 737, 0, 0, 322, 0, 0, 0, 0, 0,
2290 323, 0, 0, 324, 0, 0, 0, 0, 0, 0,
2291 0, 325, 326, 327, 0, 0, 0, 0, 0, 328,
2292 329, 330, 0, 0, 736, 331, 866, 867, 868, 10,
2293 0, 12, 482, 303, 304, 0, 305, 14, 0, 0,
2294 0, -482, 332, 0, 0, 0, 0, 0, 0, 0,
2295 0, 16, 306, 17, 0, 19, 0, 307, 308, 309,
2296 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
2297 0, 0, 0, 315, 316, 317, 318, 319, 26, 0,
2298 869, 870, 737, 0, 0, 322, 0, 0, 0, 0,
2299 0, 323, 0, 0, 324, 0, 0, 0, 0, 0,
2300 0, 0, 325, 326, 327, 0, 0, 0, 0, 0,
2301 328, 329, 330, 0, 0, 570, 331, 7, 8, 9,
2302 10, 0, 12, 302, 303, 304, 0, 305, 14, 0,
2303 0, 0, 1360, 332, 0, 0, 0, 0, 0, 0,
2304 0, 0, 16, 306, 17, 18, 19, 0, 307, 308,
2305 309, 20, 0, 310, 311, 312, 21, 313, 314, 0,
2306 23, 0, 0, 0, 315, 316, 317, 318, 319, 26,
2307 0, 27, 28, -312, 0, 0, 322, 0, 0, 0,
2308 0, 0, 323, 0, 0, 1526, 0, 0, 0, 0,
2309 0, 0, 0, 325, 326, 1527, 0, 0, 0, 0,
2310 0, 328, 329, 330, 0, 0, 736, 1528, 301, 8,
2311 9, 10, 0, 12, 482, 303, 304, 0, 305, 14,
2312 0, 0, 0, 0, 332, 0, 0, 0, 0, 0,
2313 0, 0, 0, 16, 306, 17, 0, 19, 0, 307,
2314 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2315 0, 23, 0, 0, 0, 315, 316, 317, 318, 319,
2316 26, 0, 27, 321, 737, 0, 0, 322, 0, 0,
2317 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2318 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2319 0, 0, 328, 329, 330, 0, 0, 878, 331, 301,
2320 8, 9, 10, 0, 12, 482, 303, 304, 0, 305,
2321 14, 0, 0, 0, 0, 332, 0, 0, 0, 0,
2322 0, 0, 0, 0, 16, 306, 17, 0, 19, 0,
2323 307, 308, 309, 20, 0, 310, 311, 312, 21, 313,
2324 314, 0, 23, 0, 0, 0, 315, 316, 317, 318,
2325 319, 26, 0, 27, 321, 0, 0, 0, 322, -786,
2326 0, 0, 0, 0, 323, 0, 0, 324, 0, 0,
2327 0, 0, 0, 0, 0, 325, 326, 327, 0, 0,
2328 0, 0, 0, 328, 329, 330, 0, 0, 1609, 331,
2329 301, 8, 9, 10, 0, 12, 302, 303, 304, 0,
2330 305, 14, 0, 0, 0, 0, 332, 0, 0, 0,
2331 0, 0, 0, 0, 0, 16, 306, 17, 0, 19,
2332 0, 307, 308, 309, 20, 0, 310, 311, 312, 21,
2333 313, 314, 0, 23, 0, 0, 0, 315, 316, 317,
2334 318, 319, 26, 0, 27, 321, 0, 0, -197, 322,
2335 0, 0, 0, 0, 0, 323, 0, 0, 324, 0,
2336 0, 0, 0, 0, 0, 0, 325, 326, 327, 0,
2337 0, 0, 0, 0, 328, 329, 330, 0, 0, 878,
2338 331, 301, 8, 9, 10, 0, 12, 482, 303, 304,
2339 0, 305, 14, 0, 0, 0, 0, 332, 0, 0,
2340 0, 0, 0, 0, 0, 0, 16, 306, 17, 0,
2341 19, 0, 307, 308, 309, 20, 0, 310, 311, 312,
2342 21, 313, 314, 0, 23, 0, 0, 0, 315, 316,
2343 317, 318, 319, 26, 0, 27, 321, 0, 0, 0,
2344 322, 0, 0, 0, 0, 0, 323, 0, 0, 324,
2345 0, 0, 0, 0, 0, 0, 0, 325, 326, 327,
2346 0, 0, 0, 0, 0, 328, 329, 330, 0, 0,
2347 972, 331, 301, 8, 9, 10, 0, 12, 482, 303,
2348 304, 0, 305, 14, 0, 0, -786, 0, 332, 0,
2349 0, 0, 0, 0, 0, 0, 0, 16, 306, 17,
2350 0, 19, 0, 307, 308, 309, 20, 0, 310, 311,
2351 312, 21, 313, 314, 0, 23, 0, 0, 0, 315,
2352 316, 317, 318, 319, 26, 0, 27, 321, 0, 0,
2353 0, 322, 0, 0, 0, 0, 0, 323, 0, 0,
2354 324, 0, 0, 0, 0, 0, 0, 0, 325, 326,
2355 327, 0, 0, 0, 0, 0, 328, 329, 330, 0,
2356 0, 974, 331, 301, 8, 9, 10, 0, 12, 482,
2357 303, 304, 0, 305, 14, 0, 0, 0, 0, 332,
2358 0, 0, 0, 0, 0, 0, 0, 0, 16, 306,
2359 17, 0, 19, 0, 307, 308, 309, 20, 0, 310,
2360 311, 312, 21, 313, 314, 0, 23, 0, 0, 0,
2361 315, 316, 317, 318, 319, 26, 0, 27, 321, 0,
2362 0, 0, 322, 0, 0, 0, 0, 0, 323, 0,
2363 0, 324, 0, 0, 0, 0, 0, 0, 0, 325,
2364 326, 327, 0, 0, 0, 0, 0, 328, 329, 330,
2365 0, 0, 1574, 331, 301, 8, 9, 10, 0, 12,
2366 482, 303, 304, 0, 305, 14, 0, 0, 0, 0,
2367 332, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2368 306, 17, 0, 19, 0, 307, 308, 309, 20, 0,
2369 310, 311, 312, 21, 313, 314, 0, 23, 0, 0,
2370 0, 315, 316, 317, 318, 319, 26, 0, 27, 321,
2371 0, 0, 0, 322, 0, 0, 0, 0, 0, 323,
2372 264, 0, 324, 8, 9, 0, 0, 12, 13, 0,
2373 325, 326, 327, 14, 0, 0, 0, 0, 328, 329,
2374 330, 0, 0, 0, 331, 0, 0, 16, 0, 17,
2375 0, 0, 0, 0, 0, 0, 20, 0, 265, 266,
2376 0, 332, 0, 0, 0, 23, 0, 267, 0, 0,
2377 0, 0, 0, 0, 26, 0, 130, 131, 0, 268,
2378 0, 0, 0, 269, 270, 271, 272, 273, 274, 275,
2379 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
2380 286, 287, 288, 289, 0, 0, 290, 291, 292, 0,
2381 293, 0, 0, 294, 301, 8, 9, 10, 0, 12,
2382 482, 303, 304, 0, 305, 14, 0, 0, 0, 295,
2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2384 306, 17, 0, 19, 0, 307, 308, 309, 20, 0,
2385 310, 311, 312, 21, 313, 314, 0, 23, 0, 0,
2386 0, 315, 316, 317, 318, 319, 26, 0, 27, 321,
2387 0, 0, 0, 322, 0, 0, 0, 0, 0, 323,
2388 0, 0, 324, 0, 0, 0, 0, 0, 0, 0,
2389 325, 326, 327, 0, 0, 0, 0, 0, 328, 329,
2390 330, 0, 0, 0, 331, 301, 8, 9, 10, 0,
2391 12, 482, 303, 304, 0, 305, 14, 0, 0, 0,
2392 0, 332, 483, 0, 0, 0, 0, 0, 0, 0,
2393 16, 306, 17, 0, 19, 0, 307, 308, 309, 20,
2394 0, 310, 311, 312, 21, 313, 314, 0, 23, 0,
2395 0, 0, 315, 316, 317, 318, 319, 26, 0, 27,
2396 321, 0, 0, 0, 322, 0, 0, 0, 0, 0,
2397 323, 0, 0, 324, 0, 0, 0, 0, 0, 0,
2398 0, 325, 326, 327, 0, 0, 0, 0, 0, 328,
2399 329, 330, 0, 0, 0, 331, 301, 8, 9, 10,
2400 0, 12, 482, 303, 304, 0, 305, 14, 0, 0,
2401 0, 0, 332, 788, 0, 0, 0, 0, 0, 0,
2402 0, 16, 306, 17, 0, 19, 0, 307, 308, 309,
2403 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
2404 0, 0, 0, 315, 316, 317, 318, 319, 26, 0,
2405 27, 321, 0, 0, 0, 322, 0, 0, 0, 0,
2406 0, 323, 0, 0, 324, 0, 0, 0, 0, 0,
2407 0, 0, 325, 326, 327, 0, 0, 0, 0, 0,
2408 328, 329, 330, 0, 0, 0, 331, 301, 8, 9,
2409 10, 0, 12, 482, 303, 304, 0, 305, 14, 0,
2410 0, 0, 0, 332, 918, 0, 0, 0, 0, 0,
2411 0, 0, 16, 306, 17, 0, 19, 0, 307, 308,
2412 309, 20, 0, 310, 311, 312, 21, 313, 314, 0,
2413 23, 0, 0, 0, 315, 316, 317, 318, 319, 26,
2414 0, 27, 321, 0, 0, 0, 322, 0, 0, 0,
2415 0, 0, 323, 0, 0, 324, 0, 0, 0, 0,
2416 0, 0, 0, 325, 326, 327, 0, 0, 0, 0,
2417 0, 328, 329, 330, 0, 0, 0, 331, 301, 8,
2418 9, 10, 0, 12, 482, 303, 304, 0, 305, 14,
2419 0, 0, 0, 0, 332, 939, 0, 0, 0, 0,
2420 0, 0, 0, 16, 306, 17, 0, 19, 0, 307,
2421 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2422 0, 23, 0, 0, 0, 315, 316, 317, 318, 319,
2423 26, 0, 27, 321, 0, 0, 0, 322, 0, 0,
2424 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2425 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2426 0, 0, 328, 329, 330, 0, 0, 0, 331, 594,
2427 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2428 605, 606, 607, 608, 609, 332, 1168, 1322, 1323, 1324,
2429 10, 167, 12, 302, 303, 304, 0, 305, 14, 1325,
2430 0, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
2431 1335, 15, 16, 306, 17, 18, 19, 0, 307, 308,
2432 309, 20, 0, 310, 311, 312, 21, 313, 314, 1336,
2433 23, 1337, 0, 0, 315, 316, 317, 318, 319, 26,
2434 0, 1338, 321, 733, 0, 1339, 322, 0, 0, 0,
2435 0, 0, 323, 0, 0, 324, 0, 0, 0, 0,
2436 0, 0, 0, 325, 326, 327, 0, 0, 0, 0,
2437 0, 328, 329, 330, 0, 0, 0, 331, 0, 1340,
2438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2439 0, 0, 0, 1464, 332, 1322, 1323, 1324, 10, 167,
2440 12, 302, 303, 304, 0, 305, 14, 1325, 0, 1326,
2441 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 15,
2442 16, 306, 17, 18, 19, 0, 307, 308, 309, 20,
2443 0, 310, 311, 312, 21, 313, 314, 1336, 23, 1337,
2444 0, 0, 315, 316, 317, 318, 319, 26, 0, 1338,
2445 321, 733, 0, 1339, 322, 0, 0, 0, 0, 0,
2446 323, 0, 0, 324, 0, 0, 0, 0, 0, 0,
2447 0, 325, 326, 327, 0, 0, 0, 0, 0, 328,
2448 329, 330, 0, 0, 0, 331, 0, 1340, 0, 1322,
2449 1323, 1324, 10, 167, 12, 302, 303, 304, 0, 305,
2450 14, 1325, 332, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
2451 1333, 1334, 1335, 15, 16, 306, 17, 18, 19, 0,
2452 307, 308, 309, 20, 0, 310, 311, 312, 21, 313,
2453 314, 1336, 23, 1337, 0, 0, 315, 316, 317, 318,
2454 319, 26, 0, 1338, 321, 1583, 0, 1339, 322, 0,
2455 0, 0, 0, 0, 323, 0, 0, 324, 0, 0,
2456 0, 0, 0, 0, 0, 325, 326, 327, 0, 0,
2457 0, 0, 0, 328, 329, 330, 0, 0, 0, 331,
2458 0, 1340, 0, 1322, 1323, 1324, 10, 167, 12, 302,
2459 303, 304, 0, 305, 14, 1325, 332, 1326, 1327, 1328,
2460 1329, 1330, 1331, 1332, 1333, 1334, 1335, 15, 16, 306,
2461 17, 18, 19, 0, 307, 308, 309, 20, 0, 310,
2462 311, 312, 21, 313, 314, 1336, 23, 1337, 0, 0,
2463 315, 316, 317, 318, 319, 26, 0, 1338, 321, 0,
2464 0, 1339, 322, 0, 0, 0, 0, 0, 323, 0,
2465 0, 324, 0, 0, 0, 0, 0, 0, 0, 325,
2466 326, 327, 0, 0, 0, 0, 0, 328, 329, 330,
2467 0, 0, 0, 331, 0, 1340, 301, 8, 9, 10,
2468 167, 12, 302, 303, 304, 466, 305, 14, 0, 0,
2469 332, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2470 0, 16, 306, 17, 18, 19, 0, 307, 308, 309,
2471 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
2472 0, 636, 0, 315, 316, 317, 318, 319, 26, 0,
2473 27, 321, 0, 0, 0, 322, 0, 0, 0, 0,
2474 0, 323, 0, 0, 949, 0, 0, 0, 0, 0,
2475 0, 0, 325, 326, 950, 0, 0, 0, 0, 0,
2476 328, 329, 330, 0, 0, 0, 951, 640, 7, 8,
2477 9, 10, 167, 12, 302, 303, 304, 466, 305, 14,
2478 0, 0, 0, 332, 0, 0, 0, 0, 0, 0,
2479 0, 0, 0, 16, 306, 17, 18, 19, 0, 307,
2480 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2481 0, 23, 0, 636, 0, 315, 316, 317, 318, 319,
2482 26, 0, 27, 28, 0, 0, 0, 322, 0, 0,
2483 0, 0, 0, 323, 0, 0, 1036, 0, 0, 0,
2484 0, 0, 0, 0, 325, 326, 1037, 0, 0, 0,
2485 0, 0, 328, 329, 330, 0, 0, 0, 1038, 640,
2486 301, 8, 9, 10, 0, 12, 302, 303, 304, 0,
2487 305, 14, 0, 0, 0, 332, 0, 0, 0, 0,
2488 0, 0, 0, 0, 0, 16, 306, 17, 18, 19,
2489 0, 307, 308, 309, 20, 0, 310, 311, 312, 21,
2490 313, 314, 0, 23, 0, 636, 0, 315, 316, 317,
2491 318, 319, 26, 0, 27, 321, 0, 0, 0, 0,
2492 0, 0, 0, 0, 0, 323, 0, 0, 949, 0,
2493 0, 0, 0, 0, 0, 0, 325, 326, 950, 0,
2494 0, 0, 0, 0, 328, 329, 330, 0, 0, 0,
2495 951, 640, 7, 8, 9, 10, 0, 12, 302, 303,
2496 304, 0, 305, 14, 0, 0, 0, 332, 0, 0,
2497 0, 0, 0, 0, 0, 0, 0, 16, 306, 17,
2498 18, 19, 0, 307, 308, 309, 20, 0, 310, 311,
2499 312, 21, 313, 314, 0, 23, 0, 636, 0, 315,
2500 316, 317, 318, 319, 26, 0, 27, 28, 0, 0,
2501 0, 0, 0, 0, 0, 0, 0, 323, 0, 0,
2502 1036, 0, 0, 0, 0, 0, 0, 0, 325, 326,
2503 1037, 0, 0, 0, 0, 0, 328, 329, 330, 0,
2504 0, 0, 1038, 640, 301, 8, 9, 10, 0, 12,
2505 482, 303, 304, 0, 305, 14, 0, 0, 0, 332,
2506 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2507 306, 17, 18, 19, 0, 307, 308, 309, 20, 0,
2508 310, 311, 312, 21, 313, 314, 0, 23, 0, 0,
2509 0, 315, 316, 317, 318, 319, 26, 0, 27, 321,
2510 0, 0, 0, 322, 0, 0, 0, 0, 0, 323,
2511 0, 0, 571, 0, 0, 0, 0, 0, 0, 0,
2512 325, 326, 572, 0, 0, 0, 0, 0, 328, 329,
2513 330, 0, 0, 0, 573, 301, 8, 9, 10, 0,
2514 12, 482, 303, 304, 0, 305, 14, 0, 0, 0,
2515 0, 332, 0, 0, 0, 0, 0, 0, 0, 0,
2516 16, 306, 17, 0, 19, 0, 307, 308, 309, 20,
2517 0, 310, 311, 312, 21, 313, 314, 0, 23, 0,
2518 0, 0, 315, 316, 317, 318, 319, 26, 0, 27,
2519 321, 0, 0, 1437, 322, 0, 0, 0, 0, 0,
2520 323, 0, 0, 324, 0, 0, 0, 0, 0, 0,
2521 0, 325, 326, 327, 0, 0, 0, 0, 0, 328,
2522 329, 330, 0, 0, 0, 331, 301, 8, 9, 10,
2523 167, 12, 302, 303, 304, 0, 305, 14, 0, 0,
2524 0, 0, 332, 0, 0, 0, 0, 0, 0, 0,
2525 0, 16, 306, 17, 18, 19, 0, 307, 308, 309,
2526 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
2527 0, 0, 0, 315, 316, 317, 318, 319, 26, 0,
2528 27, 321, 0, 0, 0, 0, 0, 0, 0, 0,
2529 0, 323, 0, 0, 324, 0, 0, 0, 0, 0,
2530 0, 0, 325, 326, 327, 0, 0, 0, 0, 0,
2531 328, 329, 330, 0, 0, 0, 331, 7, 8, 9,
2532 10, 0, 12, 482, 303, 304, 0, 305, 14, 0,
2533 0, 0, 0, 332, 0, 0, 0, 0, 0, 0,
2534 0, 0, 16, 306, 17, 18, 19, 0, 307, 308,
2535 309, 20, 0, 310, 311, 312, 21, 313, 314, 0,
2536 23, 0, 0, 0, 315, 316, 317, 318, 319, 26,
2537 0, 27, 28, 0, 0, 0, 322, 0, 0, 0,
2538 0, 0, 323, 0, 0, 1526, 0, 0, 0, 0,
2539 0, 0, 0, 325, 326, 1527, 0, 0, 0, 0,
2540 0, 328, 329, 330, 0, 0, 0, 1528, 301, 8,
2541 9, 10, 0, 12, 302, 303, 304, 0, 305, 14,
2542 0, 0, 0, 0, 332, 0, 0, 0, 0, 0,
2543 0, 0, 0, 16, 306, 17, 0, 19, 0, 307,
2544 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2545 0, 23, 0, 0, 0, 315, 316, 317, 318, 319,
2546 26, 0, 320, 321, 0, 0, 0, 322, 0, 0,
2547 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2548 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2549 0, 0, 328, 329, 330, 0, 0, 0, 331, 301,
2550 8, 9, 10, 0, 12, 302, 303, 304, 0, 305,
2551 14, 0, 0, 0, 0, 332, 0, 0, 0, 0,
2552 0, 0, 0, 0, 16, 306, 17, 0, 19, 0,
2553 307, 308, 309, 20, 0, 310, 311, 312, 21, 313,
2554 314, 0, 23, 0, 0, 0, 315, 316, 317, 318,
2555 319, 26, 0, 27, 321, 0, 0, 0, 322, 0,
2556 0, 0, 0, 0, 323, 0, 0, 324, 0, 0,
2557 0, 0, 0, 0, 0, 325, 326, 327, 0, 0,
2558 0, 0, 0, 328, 329, 330, 0, 0, 0, 331,
2559 301, 8, 9, 10, 0, 12, 482, 303, 304, 0,
2560 305, 14, 0, 0, 0, 0, 332, 0, 0, 0,
2561 0, 0, 0, 0, 0, 16, 306, 17, 0, 19,
2562 0, 307, 308, 309, 20, 0, 310, 311, 312, 21,
2563 313, 314, 0, 23, 0, 0, 0, 315, 316, 317,
2564 318, 319, 26, 0, 27, 321, 0, 0, 0, 322,
2565 0, 0, 0, 0, 0, 323, 0, 0, 324, 0,
2566 0, 0, 0, 0, 0, 0, 325, 326, 327, 0,
2567 0, 0, 0, 0, 328, 329, 330, 0, 0, 0,
2568 331, 301, 8, 9, 10, 0, 12, 482, 303, 304,
2569 0, 305, 14, 0, 0, 0, 0, 332, 0, 0,
2570 0, 0, 0, 0, 0, 0, 16, 306, 17, 0,
2571 19, 0, 307, 308, 309, 20, 0, 310, 311, 312,
2572 21, 313, 314, 0, 23, 0, 0, 0, 315, 316,
2573 317, 318, 319, 26, 0, 27, 321, 585, 0, 0,
2574 0, 0, 0, 0, 0, 0, 323, 0, 0, 324,
2575 0, 0, 0, 0, 0, 0, 0, 325, 326, 327,
2576 0, 0, 0, 0, 0, 328, 329, 330, 0, 0,
2577 0, 586, 301, 8, 9, 10, 0, 12, 482, 303,
2578 304, 0, 305, 14, 0, 0, 0, 0, 332, 0,
2579 0, 0, 0, 0, 0, 0, 0, 16, 306, 17,
2580 0, 19, 0, 307, 308, 309, 20, 0, 310, 311,
2581 312, 21, 313, 314, 0, 23, 0, 0, 0, 315,
2582 316, 317, 318, 319, 26, 0, 27, 321, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 323, 0, 0,
2584 324, 0, 0, 0, 0, 0, 0, 0, 325, 326,
2585 327, 0, 0, 0, 0, 0, 328, 329, 330, 0,
2586 0, 0, 331, 624, 301, 8, 9, 10, 0, 12,
2587 482, 303, 304, 0, 305, 14, 0, 0, 0, 332,
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
2589 306, 17, 18, 19, 0, 307, 308, 309, 20, 0,
2590 310, 311, 312, 21, 313, 314, 0, 23, 0, 0,
2591 0, 315, 316, 317, 318, 319, 26, 0, 27, 321,
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
2593 0, 0, 571, 0, 0, 0, 0, 0, 0, 0,
2594 325, 326, 572, 0, 0, 0, 0, 0, 328, 329,
2595 330, 0, 0, 0, 573, 1187, 8, 9, 10, 0,
2596 12, 482, 303, 304, 0, 305, 14, 0, 0, 0,
2597 0, 332, 0, 0, 0, 0, 0, 0, 0, 0,
2598 16, 306, 17, 0, 19, 0, 307, 308, 309, 20,
2599 0, 310, 311, 312, 21, 313, 314, 0, 23, 0,
2600 0, 0, 315, 316, 317, 318, 319, 26, 0, 27,
2601 321, 0, 0, 0, 322, 0, 0, 0, 0, 0,
2602 323, 0, 0, 324, 0, 0, 0, 0, 0, 0,
2603 0, 325, 326, 327, 0, 0, 0, 0, 0, 328,
2604 329, 330, 0, 0, 0, 331, 7, 8, 9, 10,
2605 0, 12, 302, 303, 304, 0, 305, 14, 0, 0,
2606 0, 0, 332, 0, 0, 0, 0, 0, 0, 0,
2607 0, 16, 306, 17, 18, 19, 0, 307, 308, 309,
2608 20, 0, 310, 311, 312, 21, 313, 314, 0, 23,
2609 0, 0, 0, 315, 316, 317, 318, 319, 26, 0,
2610 27, 28, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 323, 0, 0, 1526, 0, 0, 0, 0, 0,
2612 0, 0, 325, 326, 1527, 0, 0, 0, 0, 0,
2613 328, 329, 330, 0, 0, 0, 1528, 301, 8, 9,
2614 10, 0, 12, 482, 303, 304, 0, 305, 14, 0,
2615 0, 0, 0, 332, 0, 0, 0, 0, 0, 0,
2616 0, 0, 16, 306, 17, 0, 19, 0, 307, 308,
2617 309, 20, 0, 310, 311, 312, 21, 313, 314, 0,
2618 23, 0, 0, 0, 315, 316, 317, 318, 319, 26,
2619 0, 27, 321, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 323, 0, 0, 324, 0, 0, 0, 0,
2621 0, 0, 0, 325, 326, 327, 0, 0, 0, 0,
2622 0, 328, 329, 330, 0, 0, 0, 553, 301, 8,
2623 9, 10, 0, 12, 482, 303, 304, 0, 305, 14,
2624 0, 0, 0, 0, 332, 0, 0, 0, 0, 0,
2625 0, 0, 0, 16, 306, 17, 0, 19, 0, 307,
2626 308, 309, 20, 0, 310, 311, 312, 21, 313, 314,
2627 0, 23, 0, 0, 0, 315, 316, 317, 318, 319,
2628 26, 0, 27, 321, 0, 0, 0, 0, 0, 0,
2629 0, 0, 0, 323, 0, 0, 324, 0, 0, 0,
2630 0, 0, 0, 0, 325, 326, 327, 0, 0, 0,
2631 0, 0, 328, 329, 330, 0, 0, 0, 555, 301,
2632 8, 9, 10, 0, 12, 482, 303, 304, 0, 305,
2633 14, 0, 0, 0, 0, 332, 0, 0, 0, 0,
2634 0, 0, 0, 0, 16, 306, 17, 0, 19, 0,
2635 307, 308, 309, 20, 0, 310, 311, 312, 21, 313,
2636 314, 0, 23, 0, 0, 0, 315, 316, 317, 318,
2637 319, 26, 0, 27, 321, 0, 0, 0, 0, 0,
2638 0, 0, 0, 0, 323, 0, 0, 324, 7, 8,
2639 9, 10, 206, 12, 207, 325, 326, 327, 0, 14,
2640 0, 0, 0, 328, 329, 330, 0, 0, 0, 331,
2641 0, 0, 0, 16, 0, 17, 18, 0, 0, 0,
2642 0, 0, 20, 0, 0, 0, 332, 21, 0, 0,
2643 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
2644 26, 0, 27, 28, 8, 9, 0, 167, 12, 13,
2645 0, 0, 1577, 0, 14, 0, 30, 8, 9, 0,
2646 206, 12, 207, 0, 0, 0, 31, 14, 16, 0,
2647 17, 18, 0, 0, 32, 0, 0, 20, 33, 0,
2648 0, 16, 0, 17, 18, 0, 23, 0, 0, 0,
2649 20, 0, 0, 0, 0, 26, 0, 130, 131, 23,
2650 0, 0, 8, 9, 0, 0, 12, 13, 26, 0,
2651 130, 131, 14, 0, 0, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 16, 0, 17, 0,
2653 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
2654 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
2655 0, 0, 0, 26, 0, 130, 131, 588, 589, 590,
2656 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
2657 601, 602, 603, 604, 605, 606, 607, 608, 609, 588,
2658 589, 590, 591, 592, 593, 594, 595, 596, 597, 598,
2659 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
2660 609, 1118, 0, 0, 1282, 588, 589, 590, 591, 592,
2661 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
2662 603, 604, 605, 606, 607, 608, 609, 1591, 588, 589,
2663 590, 591, 592, 593, 594, 595, 596, 597, 598, 599,
2664 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
2665 588, 589, 590, 591, 592, 593, 594, 595, 596, 597,
2666 598, 599, 0, 601, 602, 603, 604, 605, 606, 607,
2667 608, 609, 593, 594, 595, 596, 597, 598, 599, 600,
2668 601, 602, 603, 604, 605, 606, 607, 608, 609, 595,
2669 596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
2670 606, 607, 608, 609, 596, 597, 598, 599, 600, 601,
2671 602, 603, 604, 605, 606, 607, 608, 609
2674 static const short yycheck[] = { 4,
2675 149, 150, 126, 174, 161, 23, 456, 351, 176, 80,
2676 4, 42, 731, 4, 175, 4, 403, 357, 210, 252,
2677 403, 357, 42, 358, 359, 305, 306, 524, 59, 57,
2678 35, 583, 244, 403, 307, 308, 134, 42, 42, 662,
2679 4, 35, 374, 80, 35, 907, 35, 441, 42, 156,
2680 133, 324, 57, 42, 327, 84, 248, 330, 707, 339,
2681 333, 1419, 4, 124, 337, 1341, 90, 72, 92, 1507,
2682 14, 35, 345, 144, 409, 410, 218, 219, 42, 84,
2683 1508, 210, 190, 88, 11, 90, 42, 92, 30, 31,
2684 219, 714, 479, 35, 133, 134, 479, 42, 11, 11,
2685 42, 33, 107, 108, 12, 297, 4, 713, 136, 815,
2686 1509, 817, 1, 137, 0, 1553, 63, 75, 1, 825,
2687 1, 350, 351, 352, 357, 61, 4, 577, 38, 510,
2688 474, 136, 137, 204, 139, 1531, 63, 35, 169, 83,
2689 9, 485, 84, 1351, 42, 165, 527, 0, 176, 169,
2690 1358, 75, 60, 46, 59, 63, 1552, 35, 63, 351,
2691 165, 108, 106, 831, 169, 169, 4, 5, 93, 837,
2692 59, 176, 136, 109, 63, 169, 59, 109, 59, 210,
2693 169, 108, 63, 76, 25, 190, 27, 218, 219, 1588,
2694 55, 48, 60, 62, 136, 108, 108, 49, 31, 109,
2695 108, 165, 3, 4, 5, 169, 95, 149, 150, 1637,
2696 12, 1250, 1251, 169, 95, 1653, 1612, 248, 59, 57,
2697 58, 27, 63, 165, 169, 31, 263, 169, 1267, 48,
2698 59, 93, 1508, 730, 39, 1593, 93, 94, 136, 4,
2699 62, 109, 471, 60, 473, 474, 475, 61, 190, 12,
2700 55, 108, 194, 195, 95, 61, 57, 58, 60, 65,
2701 1, 63, 3, 4, 5, 348, 297, 165, 97, 93,
2702 35, 169, 60, 61, 93, 94, 1138, 42, 1556, 947,
2703 81, 1, 732, 3, 4, 5, 6, 61, 8, 108,
2704 60, 108, 449, 298, 60, 109, 394, 60, 571, 572,
2705 63, 48, 65, 109, 1512, 249, 76, 48, 141, 348,
2706 175, 60, 55, 146, 55, 344, 57, 58, 140, 84,
2707 351, 214, 42, 659, 75, 386, 331, 1605, 663, 49,
2708 700, 725, 726, 361, 156, 55, 360, 57, 58, 344,
2709 989, 1380, 108, 7, 493, 494, 93, 352, 4, 75,
2710 1389, 1390, 93, 1392, 1562, 360, 361, 963, 690, 108,
2711 966, 108, 195, 48, 506, 507, 76, 461, 78, 89,
2712 48, 136, 514, 63, 38, 55, 407, 48, 507, 35,
2713 3, 4, 5, 63, 526, 75, 25, 65, 27, 496,
2714 93, 213, 998, 999, 1062, 25, 629, 361, 403, 221,
2715 165, 406, 344, 545, 169, 1613, 1074, 107, 93, 94,
2716 61, 12, 443, 357, 403, 93, 238, 4, 3, 361,
2717 59, 6, 93, 443, 63, 190, 27, 260, 1290, 59,
2718 31, 1054, 175, 63, 57, 58, 59, 108, 443, 443,
2719 1108, 993, 1110, 474, 60, 61, 31, 48, 35, 8,
2720 9, 55, 4, 5, 61, 14, 95, 42, 109, 60,
2721 61, 403, 63, 361, 65, 95, 48, 472, 60, 25,
2722 475, 75, 57, 58, 479, 506, 507, 706, 37, 443,
2723 223, 48, 61, 514, 55, 48, 71, 46, 525, 48,
2724 4, 5, 93, 94, 518, 526, 81, 525, 65, 1538,
2725 1539, 443, 109, 55, 89, 57, 58, 108, 93, 48,
2726 31, 93, 847, 518, 545, 63, 108, 48, 55, 71,
2727 525, 3, 4, 5, 59, 48, 93, 551, 500, 81,
2728 93, 525, 48, 75, 93, 49, 508, 479, 75, 48,
2729 405, 59, 94, 57, 58, 443, 551, 65, 553, 55,
2730 555, 493, 494, 724, 93, 560, 561, 562, 563, 564,
2731 1266, 525, 93, 1060, 182, 48, 59, 81, 573, 1019,
2732 93, 94, 76, 1179, 1180, 57, 58, 93, 583, 344,
2733 93, 586, 55, 525, 93, 108, 48, 420, 800, 801,
2734 423, 48, 621, 691, 806, 1, 361, 3, 4, 5,
2735 698, 55, 435, 990, 60, 61, 471, 990, 473, 474,
2736 93, 94, 60, 4, 5, 620, 621, 957, 9, 55,
2737 990, 957, 25, 516, 27, 108, 855, 525, 76, 451,
2738 78, 93, 94, 55, 639, 666, 93, 94, 403, 75,
2739 31, 646, 48, 108, 48, 918, 108, 108, 983, 55,
2740 792, 57, 58, 59, 60, 488, 59, 48, 491, 698,
2741 63, 108, 405, 855, 55, 487, 57, 58, 108, 693,
2742 11, 48, 505, 953, 496, 706, 949, 950, 443, 621,
2743 71, 699, 753, 4, 5, 809, 109, 93, 693, 93,
2744 81, 513, 95, 60, 61, 637, 638, 639, 1144, 1145,
2745 929, 1147, 93, 94, 646, 1202, 650, 936, 7, 8,
2746 9, 25, 730, 27, 479, 14, 93, 3, 4, 5,
2747 6, 4, 5, 831, 957, 48, 955, 97, 471, 837,
2748 473, 474, 31, 61, 14, 55, 57, 58, 37, 4,
2749 5, 45, 22, 748, 487, 59, 1243, 46, 93, 63,
2750 755, 55, 3, 496, 58, 75, 42, 500, 61, 55,
2751 525, 792, 61, 1036, 1037, 508, 49, 1102, 1103, 1104,
2752 93, 57, 58, 75, 57, 58, 60, 61, 815, 75,
2753 817, 95, 60, 61, 49, 65, 823, 815, 825, 817,
2754 33, 63, 57, 58, 822, 823, 1025, 825, 81, 1143,
2755 665, 94, 1031, 89, 746, 747, 748, 48, 832, 833,
2756 815, 835, 817, 755, 111, 909, 81, 48, 823, 48,
2757 825, 815, 48, 817, 855, 48, 831, 832, 833, 55,
2758 835, 825, 837, 48, 65, 1006, 778, 779, 55, 947,
2759 55, 706, 94, 63, 124, 1057, 1058, 1059, 955, 75,
2760 75, 815, 93, 817, 48, 75, 621, 63, 75, 4,
2761 75, 825, 93, 94, 93, 94, 48, 93, 148, 75,
2762 93, 48, 63, 815, 639, 817, 60, 1150, 93, 1028,
2763 1029, 646, 93, 825, 75, 93, 48, 1036, 1037, 831,
2764 35, 7, 8, 9, 93, 837, 11, 42, 14, 93,
2765 1619, 906, 4, 5, 75, 910, 149, 150, 151, 75,
2766 55, 93, 57, 63, 747, 31, 93, 815, 75, 817,
2767 108, 37, 665, 60, 1031, 818, 819, 825, 107, 108,
2768 46, 93, 84, 85, 27, 828, 941, 75, 31, 4,
2769 5, 1170, 947, 776, 777, 61, 951, 49, 27, 1043,
2770 1044, 784, 31, 196, 1062, 57, 58, 822, 108, 239,
2771 240, 108, 1033, 706, 108, 1300, 1074, 60, 61, 4,
2772 5, 55, 252, 108, 3, 4, 5, 60, 61, 81,
2773 1430, 60, 61, 748, 49, 990, 65, 992, 993, 1218,
2774 755, 136, 57, 58, 75, 140, 1446, 7, 8, 9,
2775 1108, 990, 1110, 75, 14, 947, 1350, 949, 950, 951,
2776 60, 61, 191, 957, 49, 1086, 81, 844, 845, 846,
2777 165, 31, 57, 58, 169, 1030, 55, 37, 57, 58,
2778 175, 176, 108, 1038, 1128, 1129, 46, 1065, 4, 5,
2779 109, 1046, 109, 323, 48, 108, 81, 108, 990, 1086,
2780 815, 55, 817, 108, 55, 111, 55, 1062, 1095, 65,
2781 825, 108, 63, 1170, 63, 65, 831, 1095, 1341, 1074,
2782 9, 75, 837, 12, 75, 27, 75, 75, 223, 822,
2783 75, 1531, 55, 49, 364, 75, 1028, 1029, 1030, 93,
2784 1095, 57, 58, 373, 1036, 1037, 1038, 4, 5, 60,
2785 61, 1095, 1552, 1108, 111, 1110, 386, 929, 111, 48,
2786 59, 1218, 108, 1118, 936, 60, 61, 3, 4, 5,
2787 1062, 60, 1216, 62, 63, 60, 65, 108, 1152, 1579,
2788 108, 1095, 1074, 955, 108, 55, 55, 76, 8, 78,
2789 75, 76, 93, 78, 63, 48, 1240, 1152, 55, 65,
2790 57, 58, 331, 1095, 93, 94, 75, 93, 60, 1546,
2791 4, 5, 1612, 1546, 71, 9, 1108, 109, 1110, 108,
2792 1175, 57, 58, 55, 81, 33, 109, 795, 61, 108,
2793 37, 1349, 947, 1633, 1202, 1078, 951, 1348, 1282, 1350,
2794 55, 1084, 1085, 1026, 1027, 1088, 1089, 1095, 63, 1092,
2795 1065, 65, 1035, 1025, 65, 65, 1550, 108, 1213, 1031,
2796 75, 55, 61, 57, 58, 55, 361, 63, 1223, 1213,
2797 108, 111, 1213, 63, 1261, 990, 65, 71, 65, 1266,
2798 60, 1173, 1174, 1175, 76, 75, 108, 81, 1266, 108,
2799 1469, 108, 522, 76, 76, 3, 4, 5, 6, 108,
2800 493, 494, 495, 1526, 1527, 108, 3, 4, 5, 76,
2801 405, 1266, 3, 4, 5, 1030, 76, 108, 63, 63,
2802 55, 1213, 1266, 1038, 108, 1369, 60, 108, 63, 1221,
2803 1222, 1223, 1025, 63, 42, 3, 4, 5, 1031, 7,
2804 75, 149, 150, 151, 1236, 1237, 108, 1062, 443, 57,
2805 58, 108, 1266, 1532, 108, 585, 111, 109, 108, 1074,
2806 57, 58, 1406, 60, 55, 1213, 57, 58, 59, 1350,
2807 38, 94, 1065, 502, 1266, 111, 471, 472, 473, 474,
2808 1095, 4, 5, 89, 479, 75, 1341, 55, 196, 57,
2809 58, 48, 487, 1108, 1349, 1110, 1351, 1341, 1170, 629,
2810 111, 4, 5, 1358, 108, 500, 9, 1351, 1550, 108,
2811 1351, 1366, 108, 508, 1358, 108, 1523, 1358, 1266, 33,
2812 108, 61, 109, 108, 553, 48, 555, 1526, 1527, 109,
2813 525, 560, 55, 60, 57, 58, 1219, 1220, 81, 82,
2814 83, 84, 85, 1226, 573, 108, 1218, 65, 71, 1341,
2815 60, 60, 55, 108, 57, 58, 63, 586, 81, 1351,
2816 1175, 590, 108, 3, 4, 5, 1358, 1239, 71, 699,
2817 93, 94, 93, 3, 4, 5, 93, 707, 81, 1600,
2818 93, 93, 111, 109, 108, 30, 31, 8, 33, 618,
2819 33, 94, 108, 1341, 65, 624, 111, 108, 1213, 1067,
2820 1068, 55, 108, 1351, 3, 4, 5, 737, 1223, 49,
2821 1358, 640, 57, 1468, 59, 108, 108, 57, 58, 49,
2822 65, 108, 108, 108, 108, 1218, 1094, 57, 58, 108,
2823 108, 1099, 108, 1348, 108, 1350, 150, 151, 3, 4,
2824 5, 6, 111, 63, 1387, 1388, 1239, 1502, 3, 4,
2825 5, 1266, 1507, 1508, 1509, 748, 55, 1512, 57, 58,
2826 48, 108, 755, 1507, 1508, 1258, 1507, 108, 1512, 1550,
2827 665, 1512, 108, 1528, 1466, 1467, 1468, 42, 96, 63,
2828 63, 61, 196, 61, 49, 9, 61, 16, 111, 108,
2829 93, 1546, 57, 58, 4, 5, 141, 108, 1553, 1643,
2830 790, 146, 57, 58, 149, 150, 151, 1562, 108, 1553,
2831 1502, 706, 1553, 1456, 108, 1507, 1508, 1509, 1562, 108,
2832 1512, 1562, 93, 65, 89, 190, 1341, 3, 4, 5,
2833 61, 176, 55, 1588, 1526, 1527, 1351, 182, 8, 9,
2834 830, 61, 80, 1358, 14, 55, 836, 57, 58, 194,
2835 195, 196, 93, 93, 1546, 1348, 17, 1350, 1613, 1507,
2836 1508, 1553, 61, 55, 1512, 210, 104, 37, 61, 1613,
2837 1562, 108, 1613, 218, 219, 108, 46, 3, 4, 5,
2838 6, 57, 58, 102, 11, 493, 494, 495, 1256, 1257,
2839 107, 1259, 1260, 108, 1262, 133, 1588, 1469, 1653, 108,
2840 65, 61, 3, 4, 5, 1553, 144, 61, 61, 1653,
2841 93, 60, 1653, 108, 1562, 260, 42, 331, 61, 108,
2842 815, 1613, 817, 3, 4, 5, 108, 822, 823, 55,
2843 825, 57, 58, 11, 11, 61, 1551, 63, 1581, 61,
2844 61, 3, 4, 5, 0, 71, 976, 0, 3, 4,
2845 5, 0, 942, 1468, 944, 81, 57, 58, 170, 989,
2846 1532, 1653, 2, 89, 35, 1613, 204, 93, 79, 80,
2847 81, 82, 83, 84, 85, 55, 1469, 57, 58, 4,
2848 5, 1444, 691, 8, 9, 914, 331, 1502, 169, 14,
2849 990, 443, 1507, 1508, 1509, 57, 58, 1512, 165, 4,
2850 5, 239, 57, 58, 9, 1653, 1599, 823, 1202, 1377,
2851 1378, 94, 37, 60, 239, 139, 430, 431, 65, 948,
2852 1429, 46, 951, 48, 1653, 263, 31, 300, 75, 76,
2853 55, 1546, 57, 58, 976, 1028, 1029, 1030, 1553, 1532,
2854 737, 4, 5, 1036, 1037, 1038, 71, 1562, 672, 243,
2855 55, 1243, 57, 58, 1060, 1095, 81, 823, 1551, 969,
2856 1263, 406, 407, 7, 8, 9, 71, 201, 93, 94,
2857 14, 348, 674, 1588, 621, 420, 81, 1351, 423, 124,
2858 494, 495, 45, 1214, 429, 430, 431, 31, 93, 1633,
2859 435, 1619, 55, 37, 57, 58, 1567, 462, 1613, 1129,
2860 1629, 1631, 46, 764, 1366, -1, 190, -1, -1, 1038,
2861 -1, 1479, 1480, 1481, -1, -1, -1, 1107, 356, 1109,
2862 -1, -1, -1, -1, -1, -1, -1, 472, -1, 474,
2863 1025, -1, -1, -1, -1, -1, -1, -1, 1653, 553,
2864 748, 555, -1, 488, -1, -1, 491, 755, 493, 494,
2865 495, 3, 4, 5, 499, 7, 8, 9, 572, 573,
2866 505, 506, 507, -1, -1, 510, -1, 1535, 1536, 514,
2867 1065, -1, 586, -1, -1, 413, 1166, -1, -1, 31,
2868 1210, -1, 527, -1, -1, 37, 1216, 552, -1, -1,
2869 -1, 4, 5, -1, -1, -1, 3, 4, 5, 6,
2870 1095, -1, -1, -1, -1, 57, 58, -1, 553, -1,
2871 555, -1, -1, -1, -1, -1, -1, -1, 31, 1148,
2872 -1, 3, 4, 5, 6, -1, 571, 572, 573, -1,
2873 -1, -1, 646, 190, -1, 42, 1604, -1, -1, -1,
2874 -1, 586, 55, -1, 57, 58, 611, -1, 55, 31,
2875 57, 58, 617, -1, 619, 620, 63, 1247, 71, -1,
2876 42, -1, 1252, -1, 71, -1, 48, 88, 81, 90,
2877 -1, 92, -1, 55, 81, 57, 58, -1, -1, -1,
2878 93, 646, 89, -1, 522, -1, 93, -1, 653, 71,
2879 -1, -1, 637, 638, 639, -1, -1, -1, -1, 81,
2880 48, 646, -1, 4, 5, 1335, 1336, 89, 9, -1,
2881 548, 93, 94, -1, 1304, -1, 137, -1, 139, 403,
2882 -1, 666, -1, 3, 4, 5, -1, 7, 8, 9,
2883 31, -1, -1, -1, 748, -1, -1, -1, -1, 87,
2884 88, 755, -1, 91, 92, 93, 94, 48, -1, 1278,
2885 1279, 1280, 1281, -1, 55, 769, 57, 58, -1, 1288,
2886 -1, 706, 707, 1258, -1, 779, 780, -1, 1263, 190,
2887 71, 1266, -1, -1, -1, 194, 195, 57, 58, -1,
2888 81, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2889 755, 1421, 93, 94, -1, 479, 634, -1, -1, -1,
2890 -1, 746, 747, 748, 769, 1334, 1396, 1397, -1, -1,
2891 755, 649, -1, 1443, 1444, -1, -1, -1, -1, -1,
2892 1028, 1029, 1030, 1413, 769, -1, -1, -1, 1036, 1037,
2893 1038, 776, 777, 778, 779, 780, -1, -1, -1, 784,
2894 3, 4, 5, -1, 7, 8, 9, 792, -1, -1,
2895 795, -1, -1, 1348, 1349, 1350, -1, -1, -1, -1,
2896 -1, -1, -1, -1, 1457, -1, -1, -1, 31, -1,
2897 3, 4, 5, 6, 37, -1, -1, -1, 823, -1,
2898 -1, -1, 1472, 1473, -1, -1, -1, -1, -1, -1,
2899 1520, -1, 55, -1, 57, 58, 59, -1, 1488, 1489,
2900 -1, 322, -1, -1, -1, 462, -1, -1, -1, 42,
2901 1439, 3, 4, 5, 6, 753, -1, -1, -1, -1,
2902 -1, -1, 55, -1, 57, 58, -1, -1, 107, 108,
2903 63, -1, -1, 1526, 1527, 1528, 950, 951, 71, 360,
2904 103, 104, 105, 781, -1, 910, -1, -1, 81, -1,
2905 42, -1, -1, -1, -1, 639, 89, 49, -1, 924,
2906 93, 926, 646, 928, -1, 57, 58, -1, -1, -1,
2907 -1, -1, -1, 1502, -1, 3, 4, 5, 6, 1508,
2908 1509, 9, -1, -1, -1, 930, -1, -1, 933, 81,
2909 -1, -1, -1, -1, -1, 552, -1, 89, -1, 1528,
2910 945, -1, -1, 31, 949, 950, 951, -1, -1, -1,
2911 -1, 190, -1, 978, 42, 1029, 1030, -1, -1, -1,
2912 48, -1, -1, 1037, 1038, -1, -1, 55, -1, 57,
2913 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2914 461, 462, -1, 71, 989, -1, -1, -1, 1013, -1,
2915 -1, -1, -1, 81, 611, -1, 1551, -1, -1, 1588,
2916 617, 89, 619, 620, 748, 93, 94, -1, -1, 488,
2917 -1, 755, 491, -1, 493, 494, -1, -1, 1607, -1,
2918 -1, 1026, 1027, 1028, 1029, 1030, 505, -1, -1, -1,
2919 1035, 1036, 1037, 1038, -1, -1, 653, 518, -1, 1628,
2920 -1, -1, 1047, 1048, 1049, -1, -1, -1, 1637, -1,
2921 -1, 3, 4, 5, 6, -1, -1, -1, 956, -1,
2922 958, -1, 1067, 1068, -1, -1, -1, -1, -1, -1,
2923 551, 552, -1, -1, -1, -1, -1, -1, 559, -1,
2924 -1, -1, -1, -1, -1, -1, -1, 831, -1, 1094,
2925 42, -1, 331, 837, 1099, -1, -1, 49, -1, -1,
2926 1174, 1175, 583, -1, 585, 57, 58, 588, 589, -1,
2927 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
2928 601, 602, 603, 604, 605, 606, 607, 608, 609, 81,
2929 611, -1, -1, 4, 5, 1033, 617, 89, 619, 620,
2930 -1, -1, -1, -1, -1, -1, -1, -1, 1222, 1223,
2931 -1, -1, -1, -1, 3, 4, 5, 6, -1, -1,
2932 31, -1, -1, -1, 403, 646, -1, -1, 1173, 1174,
2933 1175, -1, 653, -1, -1, -1, -1, 48, -1, 1204,
2934 -1, 1206, -1, 1208, 55, -1, 57, 58, 1086, 1457,
2935 39, 40, -1, 42, 4, 5, 677, 678, 8, 9,
2936 71, -1, -1, 947, 14, -1, 55, 951, 57, 58,
2937 81, -1, 693, -1, 1219, 1220, 1221, 1222, 1223, -1,
2938 -1, 1226, 93, 94, -1, -1, -1, 37, -1, -1,
2939 -1, 1236, 1237, 1238, -1, -1, 46, -1, 48, -1,
2940 479, 3, 4, 5, 6, 55, 990, 57, 58, -1,
2941 -1, 1256, 1257, -1, 1259, 1260, 737, 1262, 1526, 1527,
2942 1528, 71, -1, -1, -1, -1, -1, 746, 747, -1,
2943 -1, 81, -1, -1, 755, -1, -1, -1, 1176, -1,
2944 42, -1, -1, 93, 94, 1310, 1030, 49, 769, -1,
2945 -1, -1, -1, 910, 1038, 57, 58, 776, 777, 778,
2946 779, -1, -1, -1, -1, 784, -1, 924, -1, 926,
2947 -1, 928, -1, -1, 553, -1, 555, -1, 1062, 81,
2948 -1, 560, 561, 562, 563, 564, -1, 89, -1, -1,
2949 1074, -1, -1, 814, 573, -1, -1, 3, 4, 5,
2950 6, 7, 8, 9, 1349, 1350, -1, 586, 14, -1,
2951 -1, 832, 833, -1, 835, -1, 1361, 1362, -1, 1364,
2952 -1, 978, -1, 1261, 1108, 31, 1110, -1, -1, -1,
2953 -1, 37, 1377, 1378, -1, -1, 42, -1, -1, -1,
2954 46, 620, 48, 1457, -1, -1, -1, -1, -1, 55,
2955 871, 57, 58, -1, -1, -1, 1013, -1, -1, -1,
2956 639, -1, -1, -1, -1, 71, -1, 646, -1, -1,
2957 -1, -1, -1, -1, -1, 81, -1, 3, 4, 5,
2958 6, -1, -1, 89, -1, -1, -1, 93, 909, 910,
2959 -1, 1175, 1457, -1, -1, -1, -1, -1, -1, -1,
2960 -1, -1, -1, 924, -1, 926, -1, 928, -1, -1,
2961 -1, -1, 1457, 1527, 1528, -1, 42, -1, -1, -1,
2962 -1, 1466, 1467, 1468, -1, 1363, -1, -1, -1, 55,
2963 -1, 57, 58, 4, 1479, 1480, 1481, 63, -1, 1223,
2964 -1, -1, -1, 14, -1, 71, 967, -1, -1, -1,
2965 -1, -1, -1, 24, -1, 81, -1, 978, -1, 30,
2966 31, -1, 33, 89, 35, -1, -1, 93, -1, 748,
2967 -1, 42, 993, -1, -1, 996, 755, -1, -1, -1,
2968 -1, 1526, 1527, 1528, 55, -1, 57, -1, -1, -1,
2969 1535, 1536, 1013, -1, 65, -1, -1, -1, -1, -1,
2970 -1, 72, -1, -1, -1, -1, -1, 1026, 1027, 1028,
2971 1029, -1, 83, 84, -1, -1, 1035, 1036, 1037, -1,
2972 -1, -1, 1043, 1044, -1, -1, -1, -1, 1047, 1048,
2973 1049, -1, -1, 4, 5, 106, -1, -1, 9, 4,
2974 5, -1, -1, -1, 9, -1, -1, 1204, -1, 1206,
2975 -1, 1208, 831, -1, -1, -1, 1077, -1, 837, 1604,
2976 31, -1, -1, 134, -1, 136, 31, -1, -1, 140,
2977 141, -1, -1, -1, 145, 146, -1, -1, 149, 150,
2978 151, -1, -1, 48, 55, -1, 57, 58, -1, -1,
2979 55, -1, 57, 58, 165, -1, -1, -1, 169, -1,
2980 71, -1, -1, -1, 175, 176, 71, 1128, 1129, -1,
2981 81, 1132, 3, 4, 5, 6, 81, -1, -1, -1,
2982 -1, -1, 93, 194, 195, 196, -1, 906, 93, 94,
2983 -1, 1152, -1, -1, 1, -1, 3, 4, 5, 6,
2984 7, 8, 9, -1, -1, -1, -1, 14, -1, -1,
2985 -1, 42, 223, 1310, 3, 4, 5, 6, 49, -1,
2986 -1, 28, 941, 30, 31, 32, 57, 58, 947, 240,
2987 37, 38, 951, -1, -1, 42, -1, -1, 249, 46,
2988 47, -1, 49, 1204, 1468, 1206, -1, 1208, 55, 260,
2989 57, 58, -1, 42, 61, 1216, 63, -1, 89, -1,
2990 1219, 1220, 1221, 1222, 71, -1, 55, 1226, 57, 58,
2991 -1, 990, -1, 992, 81, -1, -1, 1236, 1237, 1240,
2992 -1, -1, 89, -1, -1, -1, 93, 298, 299, -1,
2993 -1, -1, -1, 1254, 1255, -1, -1, -1, -1, -1,
2994 89, -1, 109, -1, -1, -1, -1, 4, 5, -1,
2995 82, 1030, 9, -1, -1, -1, -1, -1, -1, 1038,
2996 -1, 1282, 1546, -1, -1, 637, 638, 1046, -1, -1,
2997 -1, -1, -1, 344, 31, -1, -1, 348, -1, 350,
2998 351, 352, -1, 1062, -1, -1, -1, -1, -1, 1310,
2999 361, 48, -1, -1, -1, 1074, -1, -1, 55, -1,
3000 57, 58, 3, 4, 5, 6, -1, -1, 9, 1330,
3001 -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
3002 -1, -1, -1, 394, 81, -1, -1, 159, -1, 1108,
3003 31, 1110, 403, -1, 405, 406, 93, 94, -1, 1118,
3004 -1, 42, 1361, 1362, -1, 1364, -1, 48, 1369, 420,
3005 -1, -1, 423, -1, 55, -1, 57, 58, -1, -1,
3006 192, -1, 1383, -1, 435, -1, -1, -1, -1, -1,
3007 71, -1, 443, 205, 746, 747, -1, -1, -1, -1,
3008 81, -1, -1, -1, -1, 1406, -1, -1, 89, -1,
3009 -1, -1, 93, 94, -1, -1, 1175, -1, -1, -1,
3010 471, 472, 473, 474, 475, -1, -1, -1, 479, -1,
3011 3, 4, 5, 6, -1, -1, 487, 488, -1, -1,
3012 491, -1, 493, 494, 495, 496, -1, -1, -1, 500,
3013 -1, -1, -1, -1, 505, -1, 1457, 508, 31, -1,
3014 -1, -1, -1, -1, 1223, -1, -1, 1466, 1467, 42,
3015 -1, -1, -1, -1, 525, 48, 1477, 1478, -1, -1,
3016 -1, -1, 55, -1, 57, 58, -1, -1, 1, -1,
3017 3, 4, 5, 6, 7, 8, 9, -1, 71, -1,
3018 -1, 14, -1, -1, -1, -1, -1, -1, 81, 1510,
3019 561, 562, 563, 564, -1, 28, 89, 30, 31, 32,
3020 93, 94, -1, -1, 37, 38, -1, 1526, 1527, 42,
3021 -1, -1, -1, 46, 47, -1, 49, -1, -1, -1,
3022 1541, -1, 55, -1, 57, 58, -1, -1, 61, -1,
3023 63, -1, -1, -1, -1, -1, -1, -1, 71, -1,
3024 -1, -1, -1, 3, 4, 5, 6, -1, 81, 9,
3025 621, -1, 623, -1, -1, -1, 89, -1, 930, -1,
3026 93, 933, -1, -1, 635, -1, 637, 638, 639, -1,
3027 -1, 31, -1, 945, -1, 646, 109, 949, 950, 650,
3028 -1, -1, 42, -1, -1, -1, -1, 1366, 48, -1,
3029 -1, -1, -1, -1, 665, 55, -1, 57, 58, 74,
3030 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3031 85, 71, -1, 3, 4, 5, 6, -1, -1, -1,
3032 691, 81, 1643, -1, -1, -1, -1, 698, -1, 89,
3033 -1, -1, -1, 93, 94, 706, 707, -1, -1, 3,
3034 4, 5, 6, 3, 4, 5, 6, -1, -1, -1,
3035 -1, -1, 42, -1, 1026, 1027, 1028, 1029, -1, 49,
3036 -1, -1, -1, 1035, 1036, 1037, 498, 57, 58, -1,
3037 -1, 503, -1, -1, -1, 746, 747, 748, 42, -1,
3038 -1, -1, 42, -1, 755, 49, -1, -1, 48, 1468,
3039 -1, 81, -1, 57, 58, 55, 528, 57, 58, 89,
3040 -1, -1, 534, -1, -1, 776, 777, 778, 779, 780,
3041 -1, 71, -1, 784, 546, 547, -1, 549, 4, 5,
3042 -1, 81, -1, 9, -1, 89, -1, -1, -1, 89,
3043 -1, -1, -1, 93, 94, -1, -1, 4, 5, -1,
3044 -1, 812, 9, -1, 815, 31, 817, -1, -1, 1528,
3045 -1, 822, 823, -1, 825, -1, -1, -1, -1, -1,
3046 831, -1, 48, -1, 31, -1, 837, 1546, -1, 55,
3047 -1, 57, 58, 844, 845, 846, -1, -1, -1, -1,
3048 -1, 48, -1, -1, 855, 71, -1, -1, 55, -1,
3049 57, 58, -1, -1, -1, 81, -1, -1, -1, -1,
3050 -1, 1173, 1174, -1, 71, -1, -1, 93, 94, -1,
3051 642, 643, -1, -1, 81, 647, -1, 3, 4, 5,
3052 6, 7, 8, 9, -1, -1, 93, 94, 14, -1,
3053 -1, -1, -1, -1, -1, 906, 3, 4, 5, 6,
3054 -1, -1, 28, -1, 30, 31, 32, 1219, 1220, 1221,
3055 1222, 37, -1, -1, 1226, -1, 42, -1, 929, 930,
3056 46, -1, 933, 49, 31, 936, -1, -1, -1, 55,
3057 941, 57, 58, -1, 945, 42, 947, -1, 949, 950,
3058 951, 48, -1, -1, 955, 71, 957, -1, 55, -1,
3059 57, 58, -1, -1, -1, 81, -1, -1, -1, -1,
3060 -1, -1, -1, 89, 71, -1, -1, 93, -1, -1,
3061 -1, 97, -1, -1, 81, -1, -1, -1, 750, 990,
3062 -1, 992, 89, -1, 60, -1, 93, 94, 64, 65,
3063 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3064 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3065 782, -1, -1, -1, 1025, 1026, 1027, 1028, 1029, 1030,
3066 1031, 4, 5, -1, 1035, 1036, 1037, 1038, 3, 4,
3067 5, 6, 7, 8, 9, 1046, 1047, 1048, 1049, 14,
3068 -1, -1, -1, -1, -1, -1, -1, -1, 31, 1361,
3069 1362, 1062, 1364, 28, 1065, 30, 31, -1, -1, -1,
3070 -1, -1, 37, 1074, -1, 48, 838, 42, 840, -1,
3071 -1, 46, 55, 48, 57, 58, 1087, -1, -1, -1,
3072 55, -1, 57, 58, 1095, -1, -1, -1, 71, -1,
3073 -1, -1, -1, -1, -1, -1, 71, 1108, 81, 1110,
3074 -1, -1, -1, -1, -1, -1, 81, 1118, -1, -1,
3075 93, 94, -1, -1, 89, -1, -1, -1, 93, 94,
3076 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3077 5, 6, -1, 1144, 1145, -1, 1147, -1, -1, -1,
3078 912, 913, -1, 915, -1, 3, 4, 5, 6, 7,
3079 8, 9, -1, -1, 1466, 1467, 14, -1, -1, 1170,
3080 -1, -1, 1173, 1174, 1175, -1, -1, 42, -1, -1,
3081 -1, -1, -1, 31, 946, -1, -1, -1, -1, 37,
3082 55, -1, 57, 58, 42, -1, 61, -1, 46, -1,
3083 48, -1, -1, -1, -1, -1, 71, 55, -1, 57,
3084 58, -1, -1, -1, -1, -1, 81, 1218, 1219, 1220,
3085 1221, 1222, 1223, 71, 89, 1226, -1, -1, 93, -1,
3086 -1, -1, -1, 81, -1, 1236, 1237, 1238, 1239, -1,
3087 4, 89, -1, -1, -1, 93, 94, -1, -1, -1,
3088 14, -1, -1, -1, -1, -1, -1, 1258, -1, 23,
3089 24, -1, 1263, -1, -1, 1266, 30, 31, -1, 33,
3090 -1, 35, 1034, -1, -1, -1, -1, -1, 42, -1,
3091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3092 -1, 55, -1, 57, -1, -1, -1, -1, -1, 1061,
3093 -1, 65, -1, -1, -1, -1, -1, -1, 72, -1,
3094 1, 1073, 3, 4, 5, 6, 7, 8, 9, -1,
3095 84, -1, -1, 14, -1, -1, -1, -1, -1, 3,
3096 4, 5, 6, -1, -1, 9, 27, 28, -1, 30,
3097 31, 32, -1, -1, -1, -1, 37, 1348, 1349, 1350,
3098 -1, 42, -1, -1, 45, 46, 47, 31, 49, -1,
3099 1361, 1362, -1, 1364, 55, 1366, 57, 58, 42, -1,
3100 61, -1, 136, -1, 48, -1, 140, 141, -1, -1,
3101 71, 55, 146, 57, 58, 149, 150, 151, -1, -1,
3102 81, -1, -1, -1, -1, -1, -1, 71, 89, 1161,
3103 -1, 165, 93, -1, -1, 169, 97, 81, -1, -1,
3104 -1, 175, 176, -1, -1, 89, -1, -1, -1, 93,
3105 94, -1, 3, 4, 5, 6, -1, -1, 9, -1,
3106 194, 195, 196, -1, -1, -1, -1, -1, -1, -1,
3107 -1, -1, -1, 3, 4, 5, 6, -1, -1, -1,
3108 31, -1, -1, -1, -1, -1, 1457, -1, -1, 223,
3109 -1, 42, 1224, -1, -1, 1466, 1467, 1468, 1469, -1,
3110 -1, -1, -1, -1, 55, -1, 57, 58, -1, -1,
3111 -1, -1, 42, -1, -1, -1, -1, -1, -1, 49,
3112 71, -1, -1, -1, -1, -1, 260, 57, 58, -1,
3113 81, -1, -1, -1, -1, -1, 1268, -1, 89, -1,
3114 1272, 1, 93, 3, 4, 5, 6, 7, 8, 9,
3115 -1, 81, -1, -1, 14, 1526, 1527, 1528, -1, 89,
3116 -1, 1532, -1, -1, 298, 299, -1, -1, 28, -1,
3117 30, 31, 32, -1, 1306, 1546, -1, 37, 38, -1,
3118 1551, -1, 42, -1, -1, -1, 46, 47, -1, 49,
3119 -1, -1, -1, -1, -1, 55, -1, 57, 58, -1,
3120 -1, 61, -1, 63, -1, -1, -1, -1, -1, -1,
3121 344, 71, -1, -1, 348, -1, 350, 351, 352, -1,
3122 -1, 81, -1, 357, -1, -1, -1, 361, -1, 89,
3123 -1, -1, -1, 93, -1, -1, 3, 4, 5, 6,
3124 1372, -1, 9, -1, 1376, -1, -1, -1, -1, 109,
3125 -1, -1, -1, -1, -1, -1, -1, 4, 5, -1,
3126 394, -1, 9, -1, 31, -1, 1398, 1399, -1, 403,
3127 -1, 405, 406, -1, -1, 42, -1, -1, -1, -1,
3128 -1, 48, -1, -1, 31, -1, 420, -1, 55, 423,
3129 57, 58, -1, -1, -1, -1, -1, 3, 4, 5,
3130 6, 435, -1, 9, 71, -1, -1, -1, 55, 443,
3131 57, 58, -1, -1, 81, -1, -1, -1, -1, -1,
3132 -1, -1, 89, -1, 71, 31, 93, 94, -1, -1,
3133 -1, -1, -1, -1, 81, -1, 42, 471, 472, 473,
3134 474, 475, 48, -1, -1, 479, 93, -1, -1, 55,
3135 -1, 57, 58, 487, 488, -1, -1, 491, -1, 493,
3136 494, 495, 496, -1, -1, 71, 500, -1, -1, -1,
3137 -1, 505, -1, -1, 508, 81, -1, -1, -1, -1,
3138 -1, -1, -1, 89, -1, -1, -1, 93, 94, -1,
3139 524, 525, -1, -1, -1, -1, -1, -1, -1, -1,
3140 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
3141 7, 8, 9, 10, 11, 12, 13, 14, -1, -1,
3142 -1, -1, -1, -1, -1, -1, -1, 561, 562, 563,
3143 564, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3144 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3145 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3146 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3147 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3148 -1, -1, 79, 80, 81, -1, -1, 621, -1, 623,
3149 87, 88, 89, -1, -1, -1, 93, 94, -1, -1,
3150 -1, -1, -1, 637, 638, 639, -1, -1, -1, -1,
3151 -1, -1, 646, 110, 1, -1, 3, 4, 5, 6,
3152 7, 8, 9, -1, -1, 659, -1, 14, -1, -1,
3153 -1, 665, -1, -1, -1, -1, -1, -1, -1, -1,
3154 -1, 28, -1, 30, 31, 32, -1, -1, -1, -1,
3155 37, 38, -1, -1, -1, 42, -1, 691, -1, 46,
3156 47, -1, 49, -1, -1, 699, -1, -1, 55, -1,
3157 57, 58, 706, 707, 61, -1, 63, -1, -1, -1,
3158 -1, -1, -1, -1, 71, 3, 4, 5, 6, -1,
3159 -1, -1, -1, -1, 81, -1, 730, -1, -1, -1,
3160 -1, -1, 89, -1, -1, -1, 93, -1, -1, -1,
3161 -1, -1, 746, 747, 748, -1, -1, -1, -1, -1,
3162 -1, 755, 109, -1, 42, -1, -1, -1, 1, -1,
3163 3, 4, 5, 6, 7, 8, 9, 55, -1, 57,
3164 58, 14, 776, 777, 778, 779, 780, -1, -1, -1,
3165 784, -1, -1, 71, -1, 28, -1, 30, 31, 32,
3166 -1, -1, -1, 81, 37, -1, -1, -1, -1, 42,
3167 -1, 89, -1, 46, -1, 93, 49, -1, 812, -1,
3168 -1, 815, 55, 817, 57, 58, -1, -1, 822, 823,
3169 -1, 825, -1, -1, -1, -1, -1, 831, 71, 3,
3170 4, 5, 6, 837, -1, 9, -1, -1, 81, -1,
3171 844, 845, 846, -1, -1, -1, 89, 4, -1, -1,
3172 93, 855, -1, -1, 97, -1, -1, 31, -1, -1,
3173 -1, -1, 3, 4, 5, 6, -1, -1, 42, -1,
3174 -1, -1, -1, 30, 31, -1, 33, -1, 35, -1,
3175 -1, 55, -1, 57, 58, 42, -1, -1, -1, -1,
3176 31, -1, -1, -1, -1, -1, -1, 71, 55, -1,
3177 57, 42, 906, -1, -1, -1, -1, 81, -1, -1,
3178 -1, -1, -1, -1, 55, 89, 57, 58, -1, 93,
3179 -1, -1, -1, 80, -1, 929, 930, -1, -1, 933,
3180 71, -1, 936, -1, -1, -1, -1, 941, -1, -1,
3181 81, 945, -1, 947, -1, 949, 950, 951, 89, -1,
3182 -1, 955, 93, 957, -1, -1, -1, -1, -1, -1,
3183 -1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3184 -1, -1, -1, 14, -1, -1, 133, 134, -1, 136,
3185 -1, -1, -1, 140, 141, -1, 990, 144, 992, 146,
3186 31, -1, 149, 150, 151, -1, 37, -1, -1, 156,
3187 -1, 42, -1, -1, -1, 46, -1, 48, 165, -1,
3188 -1, -1, 169, -1, 55, -1, 57, 58, 175, 176,
3189 -1, 1025, 1026, 1027, 1028, 1029, 1030, 1031, -1, -1,
3190 71, 1035, 1036, 1037, 1038, -1, -1, 194, 195, 196,
3191 81, -1, 1046, 1047, 1048, 1049, -1, 204, 89, -1,
3192 -1, -1, 93, 94, -1, -1, 1060, -1, 1062, -1,
3193 -1, 1065, -1, -1, -1, -1, 223, -1, -1, -1,
3194 1074, -1, 1, -1, 3, 4, 5, 6, 7, 8,
3195 9, -1, -1, -1, -1, 14, -1, -1, -1, -1,
3196 -1, 1095, -1, -1, 3, 4, 5, 6, -1, 28,
3197 9, 30, 31, 260, 1108, -1, 1110, -1, 37, -1,
3198 -1, -1, -1, 42, 1118, -1, -1, 46, -1, -1,
3199 49, -1, 31, -1, -1, -1, 55, -1, 57, 58,
3200 -1, -1, 61, 42, 3, 4, 5, 6, -1, -1,
3201 1144, 1145, 71, 1147, -1, -1, 55, -1, 57, 58,
3202 -1, -1, 81, -1, -1, -1, -1, -1, -1, -1,
3203 89, -1, 71, -1, 93, -1, 1170, -1, -1, 1173,
3204 1174, 1175, 81, 42, 331, -1, -1, -1, -1, -1,
3205 89, -1, -1, -1, 93, -1, 55, -1, 57, 58,
3206 -1, 348, 61, -1, -1, -1, -1, -1, 1202, 356,
3207 -1, -1, 71, -1, 361, -1, -1, -1, -1, -1,
3208 -1, -1, 81, -1, 1218, 1219, 1220, 1221, 1222, 1223,
3209 89, -1, 1226, -1, 93, -1, -1, -1, -1, -1,
3210 -1, -1, 1236, 1237, 1238, 1239, -1, 394, -1, 1243,
3211 -1, -1, -1, -1, -1, -1, -1, -1, 405, -1,
3212 -1, 4, 5, -1, 1258, 8, 9, -1, -1, 1263,
3213 -1, 14, 1266, 420, -1, -1, 423, -1, -1, -1,
3214 -1, -1, 429, 430, 431, 28, -1, 30, 435, -1,
3215 -1, -1, -1, -1, 37, -1, 443, -1, -1, -1,
3216 -1, -1, -1, 46, -1, 48, -1, -1, -1, -1,
3217 -1, -1, 55, -1, 57, 58, -1, -1, -1, -1,
3218 -1, -1, -1, -1, 471, 472, 473, 474, 71, -1,
3219 -1, -1, 479, -1, -1, -1, -1, -1, 81, -1,
3220 487, 488, -1, 1337, 491, -1, 493, 494, 495, 496,
3221 93, 94, -1, 500, 1348, 1349, 1350, -1, 505, 4,
3222 5, 508, -1, 8, 9, -1, -1, 1361, 1362, 14,
3223 1364, -1, 1366, -1, -1, -1, 4, 5, 525, 7,
3224 8, 9, -1, 28, 12, 30, 14, -1, -1, -1,
3225 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1,
3226 28, 46, 30, 31, -1, -1, 553, -1, 555, 37,
3227 55, -1, 57, 58, 59, -1, -1, -1, 46, -1,
3228 48, -1, -1, -1, 571, 572, 573, 55, -1, 57,
3229 58, -1, -1, 4, -1, -1, -1, -1, -1, 586,
3230 -1, -1, -1, 71, -1, -1, -1, -1, 93, 3,
3231 4, 5, 6, 81, -1, 9, -1, -1, -1, 30,
3232 31, -1, 33, 1457, 35, 93, 94, -1, -1, -1,
3233 -1, 42, 1466, 1467, 1468, 1469, -1, 31, -1, -1,
3234 -1, -1, -1, -1, 55, -1, 57, 634, 42, -1,
3235 -1, -1, -1, -1, -1, -1, -1, -1, -1, 646,
3236 -1, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3237 -1, -1, -1, -1, -1, -1, -1, 71, 665, -1,
3238 -1, -1, -1, -1, -1, 33, -1, 81, -1, -1,
3239 -1, -1, 1526, 1527, 1528, 89, -1, -1, 1532, 93,
3240 -1, -1, -1, -1, 691, -1, -1, 55, -1, -1,
3241 -1, 698, 1546, -1, -1, -1, -1, 1551, -1, 706,
3242 -1, -1, -1, -1, -1, 136, -1, -1, -1, 140,
3243 141, -1, -1, -1, -1, 146, -1, -1, 149, 150,
3244 151, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3245 82, 83, 84, 85, 165, -1, -1, -1, 169, 746,
3246 747, 748, -1, -1, 175, 176, 753, -1, 755, -1,
3247 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3248 6, -1, 769, 194, 195, 196, -1, -1, -1, 776,
3249 777, 778, 779, 780, -1, -1, -1, 784, -1, -1,
3250 -1, 149, 150, 151, -1, 31, -1, -1, -1, -1,
3251 -1, -1, 223, -1, -1, -1, 42, -1, -1, -1,
3252 -1, -1, -1, -1, -1, -1, -1, 175, 815, 55,
3253 817, 57, 58, -1, -1, 822, 823, -1, 825, -1,
3254 -1, -1, -1, -1, -1, 71, 194, 195, 196, 260,
3255 -1, -1, -1, -1, -1, 81, -1, -1, -1, -1,
3256 -1, -1, -1, 89, -1, -1, -1, 93, -1, -1,
3257 -1, -1, -1, -1, -1, 223, -1, -1, -1, -1,
3258 -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
3259 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3260 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
3261 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
3262 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3263 44, 45, 46, 47, -1, -1, 50, 51, 52, 53,
3264 54, 55, -1, 57, 58, 59, 357, 61, 62, -1,
3265 361, 299, -1, -1, 68, -1, -1, 71, -1, -1,
3266 -1, -1, 949, 950, 951, 79, 80, 81, 955, 956,
3267 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
3268 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
3269 -1, -1, -1, -1, 405, 109, 110, -1, -1, -1,
3270 -1, -1, 350, 351, 352, -1, -1, -1, -1, 420,
3271 -1, -1, 423, -1, -1, -1, -1, 3, 4, 5,
3272 6, -1, -1, 9, 435, -1, -1, -1, -1, -1,
3273 -1, -1, 443, -1, -1, -1, -1, -1, 1025, 1026,
3274 1027, 1028, 1029, 1030, 1031, 31, 1033, -1, 1035, 1036,
3275 1037, 1038, -1, -1, -1, -1, 42, 405, -1, -1,
3276 471, 472, 473, 474, -1, -1, -1, -1, 479, 55,
3277 -1, 57, 58, -1, -1, -1, 487, 488, 1065, -1,
3278 491, -1, 493, 494, 495, 71, -1, -1, -1, 500,
3279 -1, -1, -1, -1, 505, 81, -1, 508, -1, 1086,
3280 -1, -1, -1, 89, -1, -1, -1, 93, 1095, -1,
3281 -1, 4, 5, -1, 525, 8, 9, -1, -1, -1,
3282 -1, 14, -1, 471, -1, 473, 474, 475, -1, -1,
3283 -1, -1, -1, -1, -1, 28, -1, 30, -1, 487,
3284 488, -1, -1, 491, 37, 493, 494, 495, 496, -1,
3285 -1, -1, 500, 46, -1, -1, -1, 505, -1, -1,
3286 508, -1, 55, -1, 57, 58, -1, -1, -1, -1,
3287 -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
3288 -1, -1, 12, 1170, 14, -1, 1173, 1174, 1175, 1176,
3289 -1, -1, -1, -1, -1, -1, -1, -1, 28, -1,
3290 30, 31, -1, -1, -1, -1, -1, 37, -1, -1,
3291 -1, -1, 42, -1, -1, -1, 46, -1, 48, -1,
3292 -1, -1, -1, -1, 635, 55, -1, 57, 58, -1,
3293 -1, 1218, 1219, 1220, 1221, 1222, 1223, -1, -1, 1226,
3294 -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
3295 -1, 81, -1, -1, 665, -1, -1, -1, -1, 89,
3296 -1, -1, -1, 93, 94, -1, -1, -1, -1, -1,
3297 -1, 1258, -1, -1, -1, 623, 1263, -1, -1, 1266,
3298 -1, -1, -1, -1, -1, -1, -1, -1, -1, 637,
3299 638, 639, -1, -1, -1, 706, -1, 1, 646, 3,
3300 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
3301 14, -1, -1, -1, -1, -1, -1, 665, -1, -1,
3302 -1, -1, -1, -1, 28, -1, 30, 31, 32, -1,
3303 -1, -1, -1, 37, -1, 746, 747, 748, 42, -1,
3304 -1, -1, 46, 47, 755, 49, -1, -1, -1, -1,
3305 -1, 55, -1, 57, 58, -1, -1, 61, 706, 63,
3306 -1, 1348, 1349, 1350, -1, 776, 777, 71, -1, -1,
3307 -1, -1, -1, 784, -1, -1, -1, 81, -1, -1,
3308 -1, -1, -1, -1, -1, 89, -1, -1, -1, 93,
3309 -1, -1, -1, -1, -1, -1, -1, -1, 746, 747,
3310 748, -1, -1, -1, 815, -1, 817, 755, -1, -1,
3311 -1, 822, 823, -1, 825, -1, -1, -1, -1, -1,
3312 -1, -1, -1, -1, -1, -1, -1, -1, 776, 777,
3313 778, 779, 780, -1, -1, -1, 784, 3, 4, 5,
3314 6, 7, 8, 9, -1, -1, 12, -1, 14, -1,
3315 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3316 -1, -1, 28, -1, 30, 31, -1, -1, -1, -1,
3317 1457, 37, -1, -1, 822, -1, 42, -1, -1, -1,
3318 46, -1, 48, -1, -1, -1, -1, -1, -1, 55,
3319 -1, 57, 58, -1, -1, -1, 844, 845, 846, -1,
3320 -1, -1, -1, -1, -1, 71, -1, 855, 3, 4,
3321 5, 6, -1, -1, 9, 81, -1, 55, -1, -1,
3322 -1, -1, -1, 89, -1, -1, -1, 93, 94, -1,
3323 -1, -1, -1, -1, -1, -1, 31, -1, -1, 1526,
3324 1527, 1528, 80, -1, -1, 83, 957, 42, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3326 55, -1, 57, 58, 1551, -1, 104, -1, 106, -1,
3327 -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
3328 -1, 929, 930, -1, -1, 933, 81, -1, 936, -1,
3329 -1, -1, -1, -1, 89, -1, -1, 945, 93, -1,
3330 -1, 949, 950, 951, -1, -1, -1, 955, 3, 4,
3331 5, 6, -1, -1, 1025, 1026, 1027, 1028, 1029, 1030,
3332 -1, -1, -1, -1, 1035, 1036, 1037, 1038, -1, -1,
3333 -1, -1, -1, -1, -1, -1, 31, 175, -1, -1,
3334 -1, -1, -1, -1, -1, -1, -1, 42, -1, -1,
3335 -1, -1, -1, -1, 1065, -1, 194, 195, 196, -1,
3336 55, -1, 57, 58, -1, -1, 204, -1, -1, -1,
3337 -1, -1, -1, -1, -1, -1, 71, 1025, 1026, 1027,
3338 1028, 1029, 1030, 1031, 1095, 223, 81, 1035, 1036, 1037,
3339 1038, -1, -1, -1, 89, -1, -1, -1, 93, 1047,
3340 1048, 1049, -1, 3, 4, 5, 6, 7, 8, 9,
3341 -1, 249, 12, -1, 14, -1, -1, 1065, -1, -1,
3342 -1, -1, -1, -1, -1, 263, -1, -1, 28, -1,
3343 30, 31, -1, -1, -1, -1, -1, 37, -1, -1,
3344 -1, -1, 42, -1, -1, -1, 46, -1, 48, 4,
3345 5, -1, -1, 8, 9, 55, -1, 57, 58, 14,
3346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3347 -1, 71, -1, 28, -1, 30, 350, 351, 352, -1,
3348 -1, 81, 37, -1, -1, -1, -1, -1, -1, 89,
3349 -1, 46, -1, 93, 94, -1, 1144, 1145, -1, 1147,
3350 55, -1, 57, 58, -1, -1, -1, -1, 1219, 1220,
3351 -1, -1, -1, -1, -1, 1226, -1, -1, 356, 357,
3352 -1, -1, 1170, -1, -1, 1173, 1174, 1175, -1, -1,
3353 3, 4, 5, 6, -1, -1, 9, -1, 93, -1,
3354 -1, -1, -1, -1, -1, -1, -1, 1258, -1, -1,
3355 -1, -1, 1263, -1, -1, 1266, -1, -1, 31, -1,
3356 -1, -1, -1, -1, -1, -1, -1, 405, -1, 42,
3357 1218, 1219, 1220, 1221, 1222, 1223, -1, -1, 1226, -1,
3358 -1, -1, 55, -1, 57, 58, -1, -1, 1236, 1237,
3359 1238, 1239, -1, -1, -1, -1, -1, 471, 71, 473,
3360 474, 475, -1, -1, -1, -1, -1, -1, 81, -1,
3361 1258, -1, -1, 14, -1, -1, 89, -1, -1, -1,
3362 93, -1, 23, 24, -1, -1, -1, -1, -1, 30,
3363 31, -1, 33, 471, -1, 473, 474, 1348, 1349, 1350,
3364 -1, 3, 4, 5, 6, 7, 8, 9, -1, 487,
3365 488, -1, 14, 491, -1, 493, 494, 495, 496, -1,
3366 -1, -1, 500, -1, 65, -1, 28, 505, 30, 31,
3367 508, -1, -1, -1, -1, 37, -1, -1, -1, -1,
3368 42, -1, -1, -1, 46, -1, -1, -1, -1, -1,
3369 -1, -1, -1, 55, -1, 57, 58, -1, -1, 61,
3370 1348, -1, 1350, -1, -1, -1, -1, -1, -1, 71,
3371 -1, -1, -1, 1361, 1362, -1, 1364, -1, -1, 81,
3372 -1, -1, -1, 124, -1, 126, -1, 89, -1, -1,
3373 -1, 93, 133, 134, -1, -1, -1, -1, -1, 140,
3374 141, -1, -1, 144, 145, 146, 1457, 148, 149, 150,
3375 151, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3376 -1, -1, -1, 637, 638, 639, -1, -1, -1, -1,
3377 -1, -1, 646, -1, -1, -1, -1, -1, -1, -1,
3378 4, 5, -1, 7, 8, 9, -1, -1, 12, -1,
3379 14, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3380 6, -1, -1, 9, 28, -1, 30, 31, -1, 1457,
3381 -1, 649, 650, 37, -1, 1526, 1527, 1528, 1466, 1467,
3382 1468, 1469, 46, -1, 48, 31, -1, 665, -1, -1,
3383 -1, 55, 706, 57, 58, -1, 42, -1, 239, 240,
3384 1551, -1, -1, -1, -1, -1, -1, 71, -1, 55,
3385 -1, 57, 58, -1, -1, -1, -1, 81, -1, 260,
3386 -1, -1, -1, -1, -1, 71, -1, -1, 706, 93,
3387 94, -1, 746, 747, 748, 81, -1, -1, 1526, 1527,
3388 1528, 755, -1, 89, 1532, -1, -1, 93, -1, -1,
3389 -1, -1, -1, -1, -1, -1, -1, -1, 299, -1,
3390 -1, -1, -1, 1551, -1, -1, -1, -1, 746, 747,
3391 748, -1, -1, -1, -1, 753, -1, 755, 68, 69,
3392 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
3393 80, 81, 82, 83, 84, 85, -1, -1, 776, 777,
3394 778, 779, 780, 781, -1, -1, 784, 348, -1, 350,
3395 351, -1, 3, 4, 5, 6, 7, 8, 9, -1,
3396 -1, 12, -1, 14, -1, -1, -1, -1, -1, -1,
3397 -1, 809, -1, -1, -1, -1, -1, 28, -1, 30,
3398 31, 855, -1, -1, 822, -1, 37, -1, -1, -1,
3399 -1, 42, -1, 394, -1, 46, 3, 4, 5, 6,
3400 -1, -1, 9, -1, 55, -1, 57, 58, -1, -1,
3401 -1, -1, 413, -1, -1, 3, 4, 5, 6, 420,
3402 71, -1, 423, -1, 31, -1, -1, -1, -1, -1,
3403 81, -1, -1, -1, 435, 42, -1, -1, 89, -1,
3404 -1, -1, 93, 31, -1, -1, -1, -1, 55, -1,
3405 57, 58, -1, -1, 42, 929, 930, -1, -1, 933,
3406 -1, -1, 936, -1, 71, -1, -1, 55, -1, 57,
3407 58, 945, -1, 12, 81, 949, 950, 951, -1, -1,
3408 -1, 955, 89, 71, -1, -1, 93, -1, -1, -1,
3409 -1, -1, -1, 81, -1, -1, -1, -1, -1, -1,
3410 -1, 89, -1, -1, -1, 93, -1, -1, -1, -1,
3411 -1, -1, -1, -1, -1, -1, -1, -1, 956, 957,
3412 958, 522, -1, 524, 63, 64, 65, 66, 67, 68,
3413 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3414 79, 80, 81, 82, 83, 84, 85, 548, -1, -1,
3415 -1, 1025, 1026, 1027, 1028, 1029, 1030, 1031, -1, -1,
3416 -1, 1035, 1036, 1037, 1038, 64, 65, 66, 67, 68,
3417 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3418 79, 80, 81, 82, 83, 84, 85, 1025, 1026, 1027,
3419 1028, 1029, 1030, 1031, -1, 1033, -1, 1035, 1036, 1037,
3420 1038, 3, 4, 5, 6, 7, 8, 9, 107, 1047,
3421 1048, 1049, 14, -1, -1, -1, -1, -1, -1, -1,
3422 -1, -1, 623, -1, -1, -1, 28, 1065, 30, 31,
3423 -1, -1, -1, 634, 635, 37, 637, 638, -1, -1,
3424 42, -1, -1, -1, 46, -1, -1, -1, 1086, -1,
3425 -1, -1, -1, 55, -1, 57, 58, -1, -1, -1,
3426 -1, 63, -1, -1, 3, 4, 5, 6, -1, 71,
3427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 81,
3428 -1, -1, -1, -1, -1, -1, -1, 89, -1, -1,
3429 691, 93, 31, -1, -1, -1, 1170, 698, 699, 1173,
3430 1174, 1175, -1, 42, -1, -1, 707, -1, -1, -1,
3431 -1, -1, -1, -1, -1, -1, 55, -1, 57, 58,
3432 -1, -1, 31, -1, -1, -1, -1, -1, -1, 730,
3433 -1, -1, 71, -1, -1, -1, -1, -1, 1176, -1,
3434 -1, -1, 81, -1, 1218, 1219, 1220, 1221, 1222, 1223,
3435 89, -1, 1226, -1, 93, 64, 65, 66, 67, 68,
3436 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3437 79, 80, 81, 82, 83, 84, 85, -1, -1, -1,
3438 1218, 1219, 1220, 1221, 1222, 1223, -1, -1, 1226, -1,
3439 -1, -1, -1, -1, -1, -1, -1, -1, 1236, 1237,
3440 1238, 1239, -1, -1, -1, -1, -1, -1, 809, -1,
3441 -1, 812, -1, -1, -1, -1, -1, -1, -1, -1,
3442 1258, -1, -1, -1, -1, -1, -1, -1, 1, -1,
3443 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3444 13, 14, -1, 844, 845, 846, -1, -1, -1, -1,
3445 -1, -1, -1, -1, 855, 28, 29, 30, 31, 32,
3446 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3447 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3448 53, 54, 55, -1, 57, 58, 59, 1361, 1362, 62,
3449 1364, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3450 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3451 1348, -1, 1350, -1, 87, 88, 89, -1, -1, -1,
3452 93, 94, -1, 1361, 1362, 1363, 1364, -1, 929, 930,
3453 -1, -1, 933, -1, -1, 936, -1, 110, -1, -1,
3454 -1, -1, -1, -1, 945, -1, 3, 4, 5, 6,
3455 7, 8, 9, -1, 955, 4, 5, 14, 7, 8,
3456 9, -1, -1, 12, -1, 14, -1, -1, -1, -1,
3457 -1, 28, -1, 30, 31, -1, -1, -1, -1, 28,
3458 37, 30, 31, -1, -1, 42, -1, -1, 37, 46,
3459 -1, -1, 1466, 1467, 1468, 1469, -1, 46, 55, -1,
3460 57, 58, -1, -1, 61, -1, 55, -1, 57, 58,
3461 -1, -1, -1, -1, 71, -1, -1, -1, -1, 1457,
3462 -1, -1, -1, -1, 81, -1, -1, -1, 1466, 1467,
3463 1468, 1469, 89, -1, -1, -1, 93, -1, -1, -1,
3464 -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
3465 -1, -1, 14, -1, -1, -1, -1, -1, 1532, 1060,
3466 -1, -1, -1, -1, -1, -1, 28, -1, 30, 31,
3467 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,
3468 42, -1, -1, -1, 46, -1, 1087, -1, 1526, 1527,
3469 1528, -1, -1, 55, 1532, 57, 58, 4, 5, -1,
3470 7, 8, 9, -1, -1, -1, -1, 14, -1, 71,
3471 -1, -1, -1, 1551, -1, -1, -1, -1, -1, 81,
3472 -1, 28, -1, 30, 31, -1, -1, 89, -1, -1,
3473 37, 93, -1, -1, -1, -1, -1, -1, -1, 46,
3474 -1, -1, 49, 1144, 1145, -1, 1147, -1, 55, -1,
3475 57, 58, -1, -1, -1, -1, -1, 1, -1, 3,
3476 4, 5, 6, 7, 8, 9, -1, -1, 12, 1170,
3477 14, -1, 1173, 1174, -1, -1, -1, -1, -1, -1,
3478 -1, 25, -1, 27, -1, -1, -1, 31, -1, -1,
3479 -1, -1, -1, 37, -1, -1, -1, -1, 42, -1,
3480 -1, 1202, 46, -1, 48, -1, -1, -1, -1, -1,
3481 -1, 55, -1, 57, 58, 59, 60, 61, -1, 63,
3482 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3483 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
3484 84, 85, 1243, 87, 88, 89, -1, 91, 92, 93,
3485 94, 95, -1, -1, -1, -1, -1, 101, 102, -1,
3486 1261, -1, 1263, 107, 108, 109, 1, 111, 3, 4,
3487 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
3488 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
3489 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
3490 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3491 45, 46, 47, -1, -1, 50, 51, 52, 53, 54,
3492 55, -1, 57, 58, 59, -1, 61, 62, -1, -1,
3493 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3494 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3495 -1, -1, 87, 88, 89, -1, -1, -1, 93, 1,
3496 95, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3497 12, 13, 14, -1, -1, 110, -1, -1, -1, -1,
3498 -1, -1, -1, -1, -1, -1, 28, 29, 30, 31,
3499 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3500 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3501 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3502 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3503 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3504 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3505 1, 93, 3, 4, 5, 6, 7, 8, 9, 10,
3506 11, -1, 13, 14, -1, -1, 108, -1, 110, -1,
3507 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3508 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3509 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3510 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3511 61, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3512 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3513 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3514 -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
3515 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3516 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3517 30, -1, 32, -1, 34, 35, 36, 37, -1, 39,
3518 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3519 50, 51, 52, 53, 54, 55, -1, 57, 58, 59,
3520 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3521 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3522 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3523 -1, -1, -1, 93, 94, 1, -1, 3, 4, 5,
3524 6, -1, 8, 9, 10, 11, -1, 13, 14, 109,
3525 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3526 -1, -1, 28, 29, 30, 31, 32, -1, 34, 35,
3527 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3528 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3529 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3530 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3531 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3532 -1, 87, 88, 89, -1, -1, 1, 93, 3, 4,
3533 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3534 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
3535 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3536 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3537 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3538 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3539 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3540 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3541 -1, -1, 87, 88, 89, -1, -1, -1, 93, 94,
3542 1, -1, 3, 4, 5, 6, -1, 8, 9, 10,
3543 11, -1, 13, 14, -1, 110, -1, -1, -1, -1,
3544 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3545 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3546 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3547 51, 52, 53, 54, 55, -1, 57, 58, 59, -1,
3548 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3549 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3550 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3551 -1, -1, 93, 1, -1, 3, 4, 5, 6, 100,
3552 8, 9, 10, 11, -1, 13, 14, -1, -1, 110,
3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3554 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3555 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3556 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3557 58, 59, -1, -1, 62, -1, -1, -1, -1, -1,
3558 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3559 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3560 88, 89, -1, -1, 1, 93, 3, 4, 5, 6,
3561 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3562 -1, 109, 110, -1, -1, -1, -1, -1, -1, -1,
3563 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
3564 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3565 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3566 57, 58, 59, -1, -1, 62, -1, -1, -1, -1,
3567 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3568 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3569 87, 88, 89, -1, -1, 1, 93, 3, 4, 5,
3570 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3571 -1, -1, 109, 110, -1, -1, -1, -1, -1, -1,
3572 -1, -1, 28, 29, 30, 31, 32, -1, 34, 35,
3573 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3574 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3575 -1, 57, 58, 59, -1, -1, 62, -1, -1, -1,
3576 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3577 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3578 -1, 87, 88, 89, -1, -1, 1, 93, 3, 4,
3579 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3580 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
3581 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3582 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3583 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3584 55, -1, 57, 58, 59, -1, -1, 62, -1, -1,
3585 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3586 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3587 -1, -1, 87, 88, 89, -1, -1, 1, 93, 3,
3588 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3589 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3590 -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3591 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3592 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3593 54, 55, -1, 57, 58, -1, -1, -1, 62, 63,
3594 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3595 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3596 -1, -1, -1, 87, 88, 89, -1, -1, 1, 93,
3597 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3598 13, 14, -1, -1, -1, -1, 110, -1, -1, -1,
3599 -1, -1, -1, -1, -1, 28, 29, 30, -1, 32,
3600 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3601 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3602 53, 54, 55, -1, 57, 58, -1, -1, 61, 62,
3603 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3604 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3605 -1, -1, -1, -1, 87, 88, 89, -1, -1, 1,
3606 93, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3607 -1, 13, 14, -1, -1, -1, -1, 110, -1, -1,
3608 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
3609 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3610 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3611 52, 53, 54, 55, -1, 57, 58, -1, -1, -1,
3612 62, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3613 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3614 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3615 1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3616 11, -1, 13, 14, -1, -1, 108, -1, 110, -1,
3617 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3618 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3619 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3620 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3621 -1, 62, -1, -1, -1, -1, -1, 68, -1, -1,
3622 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3623 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3624 -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
3625 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
3626 -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
3627 30, -1, 32, -1, 34, 35, 36, 37, -1, 39,
3628 40, 41, 42, 43, 44, -1, 46, -1, -1, -1,
3629 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3630 -1, -1, 62, -1, -1, -1, -1, -1, 68, -1,
3631 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3632 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3633 -1, -1, 1, 93, 3, 4, 5, 6, -1, 8,
3634 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
3635 110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3636 29, 30, -1, 32, -1, 34, 35, 36, 37, -1,
3637 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3638 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3639 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3640 1, -1, 71, 4, 5, -1, -1, 8, 9, -1,
3641 79, 80, 81, 14, -1, -1, -1, -1, 87, 88,
3642 89, -1, -1, -1, 93, -1, -1, 28, -1, 30,
3643 -1, -1, -1, -1, -1, -1, 37, -1, 39, 40,
3644 -1, 110, -1, -1, -1, 46, -1, 48, -1, -1,
3645 -1, -1, -1, -1, 55, -1, 57, 58, -1, 60,
3646 -1, -1, -1, 64, 65, 66, 67, 68, 69, 70,
3647 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3648 81, 82, 83, 84, -1, -1, 87, 88, 89, -1,
3649 91, -1, -1, 94, 3, 4, 5, 6, -1, 8,
3650 9, 10, 11, -1, 13, 14, -1, -1, -1, 110,
3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3652 29, 30, -1, 32, -1, 34, 35, 36, 37, -1,
3653 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3654 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3655 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3656 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3657 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3658 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
3659 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3660 -1, 110, 111, -1, -1, -1, -1, -1, -1, -1,
3661 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3662 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3663 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3664 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3665 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3666 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3667 88, 89, -1, -1, -1, 93, 3, 4, 5, 6,
3668 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3669 -1, -1, 110, 111, -1, -1, -1, -1, -1, -1,
3670 -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
3671 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3672 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3673 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3674 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3675 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3676 87, 88, 89, -1, -1, -1, 93, 3, 4, 5,
3677 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3678 -1, -1, -1, 110, 111, -1, -1, -1, -1, -1,
3679 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
3680 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3681 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3682 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3683 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3684 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3685 -1, 87, 88, 89, -1, -1, -1, 93, 3, 4,
3686 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3687 -1, -1, -1, -1, 110, 111, -1, -1, -1, -1,
3688 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3689 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3690 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3691 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3692 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3693 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3694 -1, -1, 87, 88, 89, -1, -1, -1, 93, 70,
3695 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
3696 81, 82, 83, 84, 85, 110, 111, 3, 4, 5,
3697 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
3698 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3699 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
3700 36, 37, -1, 39, 40, 41, 42, 43, 44, 45,
3701 46, 47, -1, -1, 50, 51, 52, 53, 54, 55,
3702 -1, 57, 58, 59, -1, 61, 62, -1, -1, -1,
3703 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3704 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3705 -1, 87, 88, 89, -1, -1, -1, 93, -1, 95,
3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3707 -1, -1, -1, 109, 110, 3, 4, 5, 6, 7,
3708 8, 9, 10, 11, -1, 13, 14, 15, -1, 17,
3709 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
3710 28, 29, 30, 31, 32, -1, 34, 35, 36, 37,
3711 -1, 39, 40, 41, 42, 43, 44, 45, 46, 47,
3712 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3713 58, 59, -1, 61, 62, -1, -1, -1, -1, -1,
3714 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3715 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3716 88, 89, -1, -1, -1, 93, -1, 95, -1, 3,
3717 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
3718 14, 15, 110, 17, 18, 19, 20, 21, 22, 23,
3719 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
3720 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3721 44, 45, 46, 47, -1, -1, 50, 51, 52, 53,
3722 54, 55, -1, 57, 58, 59, -1, 61, 62, -1,
3723 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3724 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3725 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
3726 -1, 95, -1, 3, 4, 5, 6, 7, 8, 9,
3727 10, 11, -1, 13, 14, 15, 110, 17, 18, 19,
3728 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
3729 30, 31, 32, -1, 34, 35, 36, 37, -1, 39,
3730 40, 41, 42, 43, 44, 45, 46, 47, -1, -1,
3731 50, 51, 52, 53, 54, 55, -1, 57, 58, -1,
3732 -1, 61, 62, -1, -1, -1, -1, -1, 68, -1,
3733 -1, 71, -1, -1, -1, -1, -1, -1, -1, 79,
3734 80, 81, -1, -1, -1, -1, -1, 87, 88, 89,
3735 -1, -1, -1, 93, -1, 95, 3, 4, 5, 6,
3736 7, 8, 9, 10, 11, 12, 13, 14, -1, -1,
3737 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3738 -1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3739 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3740 -1, 48, -1, 50, 51, 52, 53, 54, 55, -1,
3741 57, 58, -1, -1, -1, 62, -1, -1, -1, -1,
3742 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3743 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3744 87, 88, 89, -1, -1, -1, 93, 94, 3, 4,
3745 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3746 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
3747 -1, -1, -1, 28, 29, 30, 31, 32, -1, 34,
3748 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3749 -1, 46, -1, 48, -1, 50, 51, 52, 53, 54,
3750 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3751 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3752 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3753 -1, -1, 87, 88, 89, -1, -1, -1, 93, 94,
3754 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3755 13, 14, -1, -1, -1, 110, -1, -1, -1, -1,
3756 -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
3757 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3758 43, 44, -1, 46, -1, 48, -1, 50, 51, 52,
3759 53, 54, 55, -1, 57, 58, -1, -1, -1, -1,
3760 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3761 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3762 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3763 93, 94, 3, 4, 5, 6, -1, 8, 9, 10,
3764 11, -1, 13, 14, -1, -1, -1, 110, -1, -1,
3765 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3766 31, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3767 41, 42, 43, 44, -1, 46, -1, 48, -1, 50,
3768 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3769 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3770 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3771 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3772 -1, -1, 93, 94, 3, 4, 5, 6, -1, 8,
3773 9, 10, 11, -1, 13, 14, -1, -1, -1, 110,
3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3775 29, 30, 31, 32, -1, 34, 35, 36, 37, -1,
3776 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3777 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3778 -1, -1, -1, 62, -1, -1, -1, -1, -1, 68,
3779 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3780 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3781 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
3782 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3783 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3784 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3785 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3786 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3787 58, -1, -1, 61, 62, -1, -1, -1, -1, -1,
3788 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3789 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3790 88, 89, -1, -1, -1, 93, 3, 4, 5, 6,
3791 7, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3792 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
3793 -1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3794 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3795 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3796 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3797 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3798 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3799 87, 88, 89, -1, -1, -1, 93, 3, 4, 5,
3800 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3801 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
3802 -1, -1, 28, 29, 30, 31, 32, -1, 34, 35,
3803 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3804 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3805 -1, 57, 58, -1, -1, -1, 62, -1, -1, -1,
3806 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3807 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3808 -1, 87, 88, 89, -1, -1, -1, 93, 3, 4,
3809 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3810 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
3811 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3812 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3813 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3814 55, -1, 57, 58, -1, -1, -1, 62, -1, -1,
3815 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3816 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3817 -1, -1, 87, 88, 89, -1, -1, -1, 93, 3,
3818 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3819 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3820 -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3821 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3822 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3823 54, 55, -1, 57, 58, -1, -1, -1, 62, -1,
3824 -1, -1, -1, -1, 68, -1, -1, 71, -1, -1,
3825 -1, -1, -1, -1, -1, 79, 80, 81, -1, -1,
3826 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
3827 3, 4, 5, 6, -1, 8, 9, 10, 11, -1,
3828 13, 14, -1, -1, -1, -1, 110, -1, -1, -1,
3829 -1, -1, -1, -1, -1, 28, 29, 30, -1, 32,
3830 -1, 34, 35, 36, 37, -1, 39, 40, 41, 42,
3831 43, 44, -1, 46, -1, -1, -1, 50, 51, 52,
3832 53, 54, 55, -1, 57, 58, -1, -1, -1, 62,
3833 -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
3834 -1, -1, -1, -1, -1, -1, 79, 80, 81, -1,
3835 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
3836 93, 3, 4, 5, 6, -1, 8, 9, 10, 11,
3837 -1, 13, 14, -1, -1, -1, -1, 110, -1, -1,
3838 -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
3839 32, -1, 34, 35, 36, 37, -1, 39, 40, 41,
3840 42, 43, 44, -1, 46, -1, -1, -1, 50, 51,
3841 52, 53, 54, 55, -1, 57, 58, 59, -1, -1,
3842 -1, -1, -1, -1, -1, -1, 68, -1, -1, 71,
3843 -1, -1, -1, -1, -1, -1, -1, 79, 80, 81,
3844 -1, -1, -1, -1, -1, 87, 88, 89, -1, -1,
3845 -1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
3846 11, -1, 13, 14, -1, -1, -1, -1, 110, -1,
3847 -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
3848 -1, 32, -1, 34, 35, 36, 37, -1, 39, 40,
3849 41, 42, 43, 44, -1, 46, -1, -1, -1, 50,
3850 51, 52, 53, 54, 55, -1, 57, 58, -1, -1,
3851 -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
3852 71, -1, -1, -1, -1, -1, -1, -1, 79, 80,
3853 81, -1, -1, -1, -1, -1, 87, 88, 89, -1,
3854 -1, -1, 93, 94, 3, 4, 5, 6, -1, 8,
3855 9, 10, 11, -1, 13, 14, -1, -1, -1, 110,
3856 -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
3857 29, 30, 31, 32, -1, 34, 35, 36, 37, -1,
3858 39, 40, 41, 42, 43, 44, -1, 46, -1, -1,
3859 -1, 50, 51, 52, 53, 54, 55, -1, 57, 58,
3860 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3861 -1, -1, 71, -1, -1, -1, -1, -1, -1, -1,
3862 79, 80, 81, -1, -1, -1, -1, -1, 87, 88,
3863 89, -1, -1, -1, 93, 3, 4, 5, 6, -1,
3864 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
3865 -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
3866 28, 29, 30, -1, 32, -1, 34, 35, 36, 37,
3867 -1, 39, 40, 41, 42, 43, 44, -1, 46, -1,
3868 -1, -1, 50, 51, 52, 53, 54, 55, -1, 57,
3869 58, -1, -1, -1, 62, -1, -1, -1, -1, -1,
3870 68, -1, -1, 71, -1, -1, -1, -1, -1, -1,
3871 -1, 79, 80, 81, -1, -1, -1, -1, -1, 87,
3872 88, 89, -1, -1, -1, 93, 3, 4, 5, 6,
3873 -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
3874 -1, -1, 110, -1, -1, -1, -1, -1, -1, -1,
3875 -1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
3876 37, -1, 39, 40, 41, 42, 43, 44, -1, 46,
3877 -1, -1, -1, 50, 51, 52, 53, 54, 55, -1,
3878 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
3879 -1, 68, -1, -1, 71, -1, -1, -1, -1, -1,
3880 -1, -1, 79, 80, 81, -1, -1, -1, -1, -1,
3881 87, 88, 89, -1, -1, -1, 93, 3, 4, 5,
3882 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
3883 -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
3884 -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
3885 36, 37, -1, 39, 40, 41, 42, 43, 44, -1,
3886 46, -1, -1, -1, 50, 51, 52, 53, 54, 55,
3887 -1, 57, 58, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, 68, -1, -1, 71, -1, -1, -1, -1,
3889 -1, -1, -1, 79, 80, 81, -1, -1, -1, -1,
3890 -1, 87, 88, 89, -1, -1, -1, 93, 3, 4,
3891 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
3892 -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
3893 -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
3894 35, 36, 37, -1, 39, 40, 41, 42, 43, 44,
3895 -1, 46, -1, -1, -1, 50, 51, 52, 53, 54,
3896 55, -1, 57, 58, -1, -1, -1, -1, -1, -1,
3897 -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
3898 -1, -1, -1, -1, 79, 80, 81, -1, -1, -1,
3899 -1, -1, 87, 88, 89, -1, -1, -1, 93, 3,
3900 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
3901 14, -1, -1, -1, -1, 110, -1, -1, -1, -1,
3902 -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
3903 34, 35, 36, 37, -1, 39, 40, 41, 42, 43,
3904 44, -1, 46, -1, -1, -1, 50, 51, 52, 53,
3905 54, 55, -1, 57, 58, -1, -1, -1, -1, -1,
3906 -1, -1, -1, -1, 68, -1, -1, 71, 3, 4,
3907 5, 6, 7, 8, 9, 79, 80, 81, -1, 14,
3908 -1, -1, -1, 87, 88, 89, -1, -1, -1, 93,
3909 -1, -1, -1, 28, -1, 30, 31, -1, -1, -1,
3910 -1, -1, 37, -1, -1, -1, 110, 42, -1, -1,
3911 -1, 46, -1, -1, -1, -1, -1, -1, -1, -1,
3912 55, -1, 57, 58, 4, 5, -1, 7, 8, 9,
3913 -1, -1, 12, -1, 14, -1, 71, 4, 5, -1,
3914 7, 8, 9, -1, -1, -1, 81, 14, 28, -1,
3915 30, 31, -1, -1, 89, -1, -1, 37, 93, -1,
3916 -1, 28, -1, 30, 31, -1, 46, -1, -1, -1,
3917 37, -1, -1, -1, -1, 55, -1, 57, 58, 46,
3918 -1, -1, 4, 5, -1, -1, 8, 9, 55, -1,
3919 57, 58, 14, -1, -1, -1, -1, -1, -1, -1,
3920 -1, -1, -1, -1, -1, -1, 28, -1, 30, -1,
3921 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,
3922 -1, -1, -1, -1, 46, -1, -1, -1, -1, -1,
3923 -1, -1, -1, 55, -1, 57, 58, 64, 65, 66,
3924 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3925 77, 78, 79, 80, 81, 82, 83, 84, 85, 64,
3926 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3927 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
3928 85, 60, -1, -1, 111, 64, 65, 66, 67, 68,
3929 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
3930 79, 80, 81, 82, 83, 84, 85, 63, 64, 65,
3931 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3932 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3933 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
3934 74, 75, -1, 77, 78, 79, 80, 81, 82, 83,
3935 84, 85, 69, 70, 71, 72, 73, 74, 75, 76,
3936 77, 78, 79, 80, 81, 82, 83, 84, 85, 71,
3937 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
3938 82, 83, 84, 85, 72, 73, 74, 75, 76, 77,
3939 78, 79, 80, 81, 82, 83, 84, 85
3941 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
3942 #line 3 "/usr/lib/bison.simple"
3943 /* This file comes from bison-1.27. */
3945 /* Skeleton output parser for bison,
3946 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3948 This program is free software; you can redistribute it and/or modify
3949 it under the terms of the GNU General Public License as published by
3950 the Free Software Foundation; either version 2, or (at your option)
3951 any later version.
3953 This program is distributed in the hope that it will be useful,
3954 but WITHOUT ANY WARRANTY; without even the implied warranty of
3955 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3956 GNU General Public License for more details.
3958 You should have received a copy of the GNU General Public License
3959 along with this program; if not, write to the Free Software
3960 Foundation, Inc., 59 Temple Place - Suite 330,
3961 Boston, MA 02111-1307, USA. */
3963 /* As a special exception, when this file is copied by Bison into a
3964 Bison output file, you may use that output file without restriction.
3965 This special exception was added by the Free Software Foundation
3966 in version 1.24 of Bison. */
3968 /* This is the parser code that is written into each bison parser
3969 when the %semantic_parser declaration is not specified in the grammar.
3970 It was written by Richard Stallman by simplifying the hairy parser
3971 used when %semantic_parser is specified. */
3973 #ifndef YYSTACK_USE_ALLOCA
3974 #ifdef alloca
3975 #define YYSTACK_USE_ALLOCA
3976 #else /* alloca not defined */
3977 #ifdef __GNUC__
3978 #define YYSTACK_USE_ALLOCA
3979 #define alloca __builtin_alloca
3980 #else /* not GNU C. */
3981 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
3982 #define YYSTACK_USE_ALLOCA
3983 #include <alloca.h>
3984 #else /* not sparc */
3985 /* We think this test detects Watcom and Microsoft C. */
3986 /* This used to test MSDOS, but that is a bad idea
3987 since that symbol is in the user namespace. */
3988 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
3989 #if 0 /* No need for malloc.h, which pollutes the namespace;
3990 instead, just don't use alloca. */
3991 #include <malloc.h>
3992 #endif
3993 #else /* not MSDOS, or __TURBOC__ */
3994 #if defined(_AIX)
3995 /* I don't know what this was needed for, but it pollutes the namespace.
3996 So I turned it off. rms, 2 May 1997. */
3997 /* #include <malloc.h> */
3998 #pragma alloca
3999 #define YYSTACK_USE_ALLOCA
4000 #else /* not MSDOS, or __TURBOC__, or _AIX */
4001 #if 0
4002 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
4003 and on HPUX 10. Eventually we can turn this on. */
4004 #define YYSTACK_USE_ALLOCA
4005 #define alloca __builtin_alloca
4006 #endif /* __hpux */
4007 #endif
4008 #endif /* not _AIX */
4009 #endif /* not MSDOS, or __TURBOC__ */
4010 #endif /* not sparc */
4011 #endif /* not GNU C */
4012 #endif /* alloca not defined */
4013 #endif /* YYSTACK_USE_ALLOCA not defined */
4015 #ifdef YYSTACK_USE_ALLOCA
4016 #define YYSTACK_ALLOC alloca
4017 #else
4018 #define YYSTACK_ALLOC malloc
4019 #endif
4021 /* Note: there must be only one dollar sign in this file.
4022 It is replaced by the list of actions, each action
4023 as one case of the switch. */
4025 #define yyerrok (yyerrstatus = 0)
4026 #define yyclearin (yychar = YYEMPTY)
4027 #define YYEMPTY -2
4028 #define YYEOF 0
4029 #define YYACCEPT goto yyacceptlab
4030 #define YYABORT goto yyabortlab
4031 #define YYERROR goto yyerrlab1
4032 /* Like YYERROR except do call yyerror.
4033 This remains here temporarily to ease the
4034 transition to the new meaning of YYERROR, for GCC.
4035 Once GCC version 2 has supplanted version 1, this can go. */
4036 #define YYFAIL goto yyerrlab
4037 #define YYRECOVERING() (!!yyerrstatus)
4038 #define YYBACKUP(token, value) \
4039 do \
4040 if (yychar == YYEMPTY && yylen == 1) \
4041 { yychar = (token), yylval = (value); \
4042 yychar1 = YYTRANSLATE (yychar); \
4043 YYPOPSTACK; \
4044 goto yybackup; \
4046 else \
4047 { yyerror ("syntax error: cannot back up"); YYERROR; } \
4048 while (0)
4050 #define YYTERROR 1
4051 #define YYERRCODE 256
4053 #ifndef YYPURE
4054 #define YYLEX yylex()
4055 #endif
4057 #ifdef YYPURE
4058 #ifdef YYLSP_NEEDED
4059 #ifdef YYLEX_PARAM
4060 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
4061 #else
4062 #define YYLEX yylex(&yylval, &yylloc)
4063 #endif
4064 #else /* not YYLSP_NEEDED */
4065 #ifdef YYLEX_PARAM
4066 #define YYLEX yylex(&yylval, YYLEX_PARAM)
4067 #else
4068 #define YYLEX yylex(&yylval)
4069 #endif
4070 #endif /* not YYLSP_NEEDED */
4071 #endif
4073 /* If nonreentrant, generate the variables here */
4075 #ifndef YYPURE
4077 int yychar; /* the lookahead symbol */
4078 YYSTYPE yylval; /* the semantic value of the */
4079 /* lookahead symbol */
4081 #ifdef YYLSP_NEEDED
4082 YYLTYPE yylloc; /* location data for the lookahead */
4083 /* symbol */
4084 #endif
4086 int yynerrs; /* number of parse errors so far */
4087 #endif /* not YYPURE */
4089 #if YYDEBUG != 0
4090 int yydebug; /* nonzero means print parse trace */
4091 /* Since this is uninitialized, it does not stop multiple parsers
4092 from coexisting. */
4093 #endif
4095 /* YYINITDEPTH indicates the initial size of the parser's stacks */
4097 #ifndef YYINITDEPTH
4098 #define YYINITDEPTH 200
4099 #endif
4101 /* YYMAXDEPTH is the maximum size the stacks can grow to
4102 (effective only if the built-in stack extension method is used). */
4104 #if YYMAXDEPTH == 0
4105 #undef YYMAXDEPTH
4106 #endif
4108 #ifndef YYMAXDEPTH
4109 #define YYMAXDEPTH 10000
4110 #endif
4112 /* Define __yy_memcpy. Note that the size argument
4113 should be passed with type unsigned int, because that is what the non-GCC
4114 definitions require. With GCC, __builtin_memcpy takes an arg
4115 of type size_t, but it can handle unsigned int. */
4117 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
4118 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
4119 #else /* not GNU C or C++ */
4120 #ifndef __cplusplus
4122 /* This is the most reliable way to avoid incompatibilities
4123 in available built-in functions on various systems. */
4124 static void
4125 __yy_memcpy (to, from, count)
4126 char *to;
4127 char *from;
4128 unsigned int count;
4130 register char *f = from;
4131 register char *t = to;
4132 register int i = count;
4134 while (i-- > 0)
4135 *t++ = *f++;
4138 #else /* __cplusplus */
4140 /* This is the most reliable way to avoid incompatibilities
4141 in available built-in functions on various systems. */
4142 static void
4143 __yy_memcpy (char *to, char *from, unsigned int count)
4145 register char *t = to;
4146 register char *f = from;
4147 register int i = count;
4149 while (i-- > 0)
4150 *t++ = *f++;
4153 #endif
4154 #endif
4156 #line 216 "/usr/lib/bison.simple"
4158 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
4159 into yyparse. The argument should have type void *.
4160 It should actually point to an object.
4161 Grammar actions can access the variable by casting it
4162 to the proper pointer type. */
4164 #ifdef YYPARSE_PARAM
4165 #ifdef __cplusplus
4166 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
4167 #define YYPARSE_PARAM_DECL
4168 #else /* not __cplusplus */
4169 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
4170 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
4171 #endif /* not __cplusplus */
4172 #else /* not YYPARSE_PARAM */
4173 #define YYPARSE_PARAM_ARG
4174 #define YYPARSE_PARAM_DECL
4175 #endif /* not YYPARSE_PARAM */
4177 /* Prevent warning if -Wstrict-prototypes. */
4178 #ifdef __GNUC__
4179 #ifdef YYPARSE_PARAM
4180 int yyparse (void *);
4181 #else
4182 int yyparse (void);
4183 #endif
4184 #endif
4187 yyparse(YYPARSE_PARAM_ARG)
4188 YYPARSE_PARAM_DECL
4190 register int yystate;
4191 register int yyn;
4192 register short *yyssp;
4193 register YYSTYPE *yyvsp;
4194 int yyerrstatus; /* number of tokens to shift before error messages enabled */
4195 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
4197 short yyssa[YYINITDEPTH]; /* the state stack */
4198 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
4200 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
4201 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
4203 #ifdef YYLSP_NEEDED
4204 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
4205 YYLTYPE *yyls = yylsa;
4206 YYLTYPE *yylsp;
4208 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
4209 #else
4210 #define YYPOPSTACK (yyvsp--, yyssp--)
4211 #endif
4213 int yystacksize = YYINITDEPTH;
4214 int yyfree_stacks = 0;
4216 #ifdef YYPURE
4217 int yychar;
4218 YYSTYPE yylval;
4219 int yynerrs;
4220 #ifdef YYLSP_NEEDED
4221 YYLTYPE yylloc;
4222 #endif
4223 #endif
4225 YYSTYPE yyval; /* the variable used to return */
4226 /* semantic values from the action */
4227 /* routines */
4229 int yylen;
4231 #if YYDEBUG != 0
4232 if (yydebug)
4233 fprintf(stderr, "Starting parse\n");
4234 #endif
4236 yystate = 0;
4237 yyerrstatus = 0;
4238 yynerrs = 0;
4239 yychar = YYEMPTY; /* Cause a token to be read. */
4241 /* Initialize stack pointers.
4242 Waste one element of value and location stack
4243 so that they stay on the same level as the state stack.
4244 The wasted elements are never initialized. */
4246 yyssp = yyss - 1;
4247 yyvsp = yyvs;
4248 #ifdef YYLSP_NEEDED
4249 yylsp = yyls;
4250 #endif
4252 /* Push a new state, which is found in yystate . */
4253 /* In all cases, when you get here, the value and location stacks
4254 have just been pushed. so pushing a state here evens the stacks. */
4255 yynewstate:
4257 *++yyssp = yystate;
4259 if (yyssp >= yyss + yystacksize - 1)
4261 /* Give user a chance to reallocate the stack */
4262 /* Use copies of these so that the &'s don't force the real ones into memory. */
4263 YYSTYPE *yyvs1 = yyvs;
4264 short *yyss1 = yyss;
4265 #ifdef YYLSP_NEEDED
4266 YYLTYPE *yyls1 = yyls;
4267 #endif
4269 /* Get the current used size of the three stacks, in elements. */
4270 int size = yyssp - yyss + 1;
4272 #ifdef yyoverflow
4273 /* Each stack pointer address is followed by the size of
4274 the data in use in that stack, in bytes. */
4275 #ifdef YYLSP_NEEDED
4276 /* This used to be a conditional around just the two extra args,
4277 but that might be undefined if yyoverflow is a macro. */
4278 yyoverflow("parser stack overflow",
4279 &yyss1, size * sizeof (*yyssp),
4280 &yyvs1, size * sizeof (*yyvsp),
4281 &yyls1, size * sizeof (*yylsp),
4282 &yystacksize);
4283 #else
4284 yyoverflow("parser stack overflow",
4285 &yyss1, size * sizeof (*yyssp),
4286 &yyvs1, size * sizeof (*yyvsp),
4287 &yystacksize);
4288 #endif
4290 yyss = yyss1; yyvs = yyvs1;
4291 #ifdef YYLSP_NEEDED
4292 yyls = yyls1;
4293 #endif
4294 #else /* no yyoverflow */
4295 /* Extend the stack our own way. */
4296 if (yystacksize >= YYMAXDEPTH)
4298 yyerror("parser stack overflow");
4299 if (yyfree_stacks)
4301 free (yyss);
4302 free (yyvs);
4303 #ifdef YYLSP_NEEDED
4304 free (yyls);
4305 #endif
4307 return 2;
4309 yystacksize *= 2;
4310 if (yystacksize > YYMAXDEPTH)
4311 yystacksize = YYMAXDEPTH;
4312 #ifndef YYSTACK_USE_ALLOCA
4313 yyfree_stacks = 1;
4314 #endif
4315 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
4316 __yy_memcpy ((char *)yyss, (char *)yyss1,
4317 size * (unsigned int) sizeof (*yyssp));
4318 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
4319 __yy_memcpy ((char *)yyvs, (char *)yyvs1,
4320 size * (unsigned int) sizeof (*yyvsp));
4321 #ifdef YYLSP_NEEDED
4322 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
4323 __yy_memcpy ((char *)yyls, (char *)yyls1,
4324 size * (unsigned int) sizeof (*yylsp));
4325 #endif
4326 #endif /* no yyoverflow */
4328 yyssp = yyss + size - 1;
4329 yyvsp = yyvs + size - 1;
4330 #ifdef YYLSP_NEEDED
4331 yylsp = yyls + size - 1;
4332 #endif
4334 #if YYDEBUG != 0
4335 if (yydebug)
4336 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
4337 #endif
4339 if (yyssp >= yyss + yystacksize - 1)
4340 YYABORT;
4343 #if YYDEBUG != 0
4344 if (yydebug)
4345 fprintf(stderr, "Entering state %d\n", yystate);
4346 #endif
4348 goto yybackup;
4349 yybackup:
4351 /* Do appropriate processing given the current state. */
4352 /* Read a lookahead token if we need one and don't already have one. */
4353 /* yyresume: */
4355 /* First try to decide what to do without reference to lookahead token. */
4357 yyn = yypact[yystate];
4358 if (yyn == YYFLAG)
4359 goto yydefault;
4361 /* Not known => get a lookahead token if don't already have one. */
4363 /* yychar is either YYEMPTY or YYEOF
4364 or a valid token in external form. */
4366 if (yychar == YYEMPTY)
4368 #if YYDEBUG != 0
4369 if (yydebug)
4370 fprintf(stderr, "Reading a token: ");
4371 #endif
4372 yychar = YYLEX;
4375 /* Convert token to internal form (in yychar1) for indexing tables with */
4377 if (yychar <= 0) /* This means end of input. */
4379 yychar1 = 0;
4380 yychar = YYEOF; /* Don't call YYLEX any more */
4382 #if YYDEBUG != 0
4383 if (yydebug)
4384 fprintf(stderr, "Now at end of input.\n");
4385 #endif
4387 else
4389 yychar1 = YYTRANSLATE(yychar);
4391 #if YYDEBUG != 0
4392 if (yydebug)
4394 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
4395 /* Give the individual parser a way to print the precise meaning
4396 of a token, for further debugging info. */
4397 #ifdef YYPRINT
4398 YYPRINT (stderr, yychar, yylval);
4399 #endif
4400 fprintf (stderr, ")\n");
4402 #endif
4405 yyn += yychar1;
4406 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
4407 goto yydefault;
4409 yyn = yytable[yyn];
4411 /* yyn is what to do for this token type in this state.
4412 Negative => reduce, -yyn is rule number.
4413 Positive => shift, yyn is new state.
4414 New state is final state => don't bother to shift,
4415 just return success.
4416 0, or most negative number => error. */
4418 if (yyn < 0)
4420 if (yyn == YYFLAG)
4421 goto yyerrlab;
4422 yyn = -yyn;
4423 goto yyreduce;
4425 else if (yyn == 0)
4426 goto yyerrlab;
4428 if (yyn == YYFINAL)
4429 YYACCEPT;
4431 /* Shift the lookahead token. */
4433 #if YYDEBUG != 0
4434 if (yydebug)
4435 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
4436 #endif
4438 /* Discard the token being shifted unless it is eof. */
4439 if (yychar != YYEOF)
4440 yychar = YYEMPTY;
4442 *++yyvsp = yylval;
4443 #ifdef YYLSP_NEEDED
4444 *++yylsp = yylloc;
4445 #endif
4447 /* count tokens shifted since error; after three, turn off error status. */
4448 if (yyerrstatus) yyerrstatus--;
4450 yystate = yyn;
4451 goto yynewstate;
4453 /* Do the default action for the current state. */
4454 yydefault:
4456 yyn = yydefact[yystate];
4457 if (yyn == 0)
4458 goto yyerrlab;
4460 /* Do a reduction. yyn is the number of a rule to reduce with. */
4461 yyreduce:
4462 yylen = yyr2[yyn];
4463 if (yylen > 0)
4464 yyval = yyvsp[1-yylen]; /* implement default value of the action */
4466 #if YYDEBUG != 0
4467 if (yydebug)
4469 int i;
4471 fprintf (stderr, "Reducing via rule %d (line %d), ",
4472 yyn, yyrline[yyn]);
4474 /* Print the symbols being reduced, and their result. */
4475 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
4476 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
4477 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
4479 #endif
4482 switch (yyn) {
4484 case 2:
4485 #line 354 "parse.y"
4486 { finish_translation_unit (); ;
4487 break;}
4488 case 3:
4489 #line 362 "parse.y"
4490 { yyval.ttype = NULL_TREE; ;
4491 break;}
4492 case 4:
4493 #line 364 "parse.y"
4494 { yyval.ttype = NULL_TREE; ;
4495 break;}
4496 case 5:
4497 #line 366 "parse.y"
4498 { yyval.ttype = NULL_TREE; ;
4499 break;}
4500 case 8:
4501 #line 375 "parse.y"
4502 { have_extern_spec = 1;
4503 used_extern_spec = 0;
4504 yyval.ttype = NULL_TREE; ;
4505 break;}
4506 case 9:
4507 #line 380 "parse.y"
4508 { have_extern_spec = 0; ;
4509 break;}
4510 case 10:
4511 #line 385 "parse.y"
4512 { yyval.itype = pedantic;
4513 pedantic = 0; ;
4514 break;}
4515 case 12:
4516 #line 394 "parse.y"
4517 { if (pending_lang_change) do_pending_lang_change(); ;
4518 break;}
4519 case 13:
4520 #line 396 "parse.y"
4521 { if (! toplevel_bindings_p ())
4522 pop_everything (); ;
4523 break;}
4524 case 14:
4525 #line 402 "parse.y"
4526 { if (pending_inlines) do_pending_inlines (); ;
4527 break;}
4528 case 15:
4529 #line 404 "parse.y"
4530 { if (pending_inlines) do_pending_inlines (); ;
4531 break;}
4532 case 16:
4533 #line 406 "parse.y"
4534 { if (pending_inlines) do_pending_inlines (); ;
4535 break;}
4536 case 17:
4537 #line 408 "parse.y"
4538 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4539 assemble_asm (yyvsp[-2].ttype); ;
4540 break;}
4541 case 18:
4542 #line 411 "parse.y"
4543 { pop_lang_context (); ;
4544 break;}
4545 case 19:
4546 #line 413 "parse.y"
4547 { if (pending_inlines) do_pending_inlines ();
4548 pop_lang_context (); ;
4549 break;}
4550 case 20:
4551 #line 416 "parse.y"
4552 { if (pending_inlines) do_pending_inlines ();
4553 pop_lang_context (); ;
4554 break;}
4555 case 21:
4556 #line 419 "parse.y"
4557 { push_namespace (yyvsp[-1].ttype); ;
4558 break;}
4559 case 22:
4560 #line 421 "parse.y"
4561 { pop_namespace (); ;
4562 break;}
4563 case 23:
4564 #line 423 "parse.y"
4565 { push_namespace (NULL_TREE); ;
4566 break;}
4567 case 24:
4568 #line 425 "parse.y"
4569 { pop_namespace (); ;
4570 break;}
4571 case 26:
4572 #line 428 "parse.y"
4573 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4574 break;}
4575 case 28:
4576 #line 431 "parse.y"
4577 { pedantic = yyvsp[-1].itype; ;
4578 break;}
4579 case 29:
4580 #line 436 "parse.y"
4581 { begin_only_namespace_names (); ;
4582 break;}
4583 case 30:
4584 #line 438 "parse.y"
4586 end_only_namespace_names ();
4587 if (lastiddecl)
4588 yyvsp[-1].ttype = lastiddecl;
4589 do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
4591 break;}
4592 case 31:
4593 #line 448 "parse.y"
4594 { yyval.ttype = yyvsp[0].ttype; ;
4595 break;}
4596 case 32:
4597 #line 450 "parse.y"
4598 { yyval.ttype = yyvsp[0].ttype; ;
4599 break;}
4600 case 33:
4601 #line 452 "parse.y"
4602 { yyval.ttype = yyvsp[0].ttype; ;
4603 break;}
4604 case 34:
4605 #line 457 "parse.y"
4606 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4607 break;}
4608 case 35:
4609 #line 459 "parse.y"
4610 { yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
4611 break;}
4612 case 36:
4613 #line 461 "parse.y"
4614 { yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4615 break;}
4616 case 37:
4617 #line 466 "parse.y"
4618 { begin_only_namespace_names (); ;
4619 break;}
4620 case 38:
4621 #line 468 "parse.y"
4623 end_only_namespace_names ();
4624 /* If no declaration was found, the using-directive is
4625 invalid. Since that was not reported, we need the
4626 identifier for the error message. */
4627 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4628 yyvsp[-1].ttype = lastiddecl;
4629 do_using_directive (yyvsp[-1].ttype);
4631 break;}
4632 case 39:
4633 #line 481 "parse.y"
4635 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4636 yyval.ttype = lastiddecl;
4637 got_scope = yyval.ttype;
4639 break;}
4640 case 40:
4641 #line 487 "parse.y"
4643 yyval.ttype = yyvsp[-1].ttype;
4644 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
4645 yyval.ttype = lastiddecl;
4646 got_scope = yyval.ttype;
4648 break;}
4649 case 43:
4650 #line 498 "parse.y"
4651 { yyval.ttype = yyvsp[0].ttype; ;
4652 break;}
4653 case 44:
4654 #line 500 "parse.y"
4655 { yyval.ttype = yyvsp[0].ttype; ;
4656 break;}
4657 case 45:
4658 #line 505 "parse.y"
4659 { push_lang_context (yyvsp[0].ttype); ;
4660 break;}
4661 case 46:
4662 #line 507 "parse.y"
4663 { if (current_lang_name != yyvsp[0].ttype)
4664 cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4665 pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4666 break;}
4667 case 47:
4668 #line 514 "parse.y"
4669 { begin_template_parm_list (); ;
4670 break;}
4671 case 48:
4672 #line 516 "parse.y"
4673 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4674 break;}
4675 case 49:
4676 #line 518 "parse.y"
4677 { begin_specialization();
4678 yyval.ttype = NULL_TREE; ;
4679 break;}
4680 case 50:
4681 #line 524 "parse.y"
4682 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4683 break;}
4684 case 51:
4685 #line 526 "parse.y"
4686 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4687 break;}
4688 case 52:
4689 #line 531 "parse.y"
4690 { yyval.ttype = yyvsp[0].ttype; ;
4691 break;}
4692 case 53:
4693 #line 533 "parse.y"
4694 { yyval.ttype = NULL_TREE; ;
4695 break;}
4696 case 54:
4697 #line 537 "parse.y"
4698 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4699 break;}
4700 case 55:
4701 #line 539 "parse.y"
4702 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4703 break;}
4704 case 56:
4705 #line 544 "parse.y"
4706 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4707 break;}
4708 case 57:
4709 #line 556 "parse.y"
4710 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4711 break;}
4712 case 58:
4713 #line 558 "parse.y"
4714 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4715 break;}
4716 case 59:
4717 #line 560 "parse.y"
4718 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4719 break;}
4720 case 60:
4721 #line 562 "parse.y"
4722 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4723 break;}
4724 case 61:
4725 #line 564 "parse.y"
4726 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4727 break;}
4728 case 62:
4729 #line 566 "parse.y"
4731 if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4732 && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4733 && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4735 error ("invalid default template argument");
4736 yyvsp[0].ttype = error_mark_node;
4738 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4740 break;}
4741 case 63:
4742 #line 580 "parse.y"
4743 { finish_template_decl (yyvsp[-1].ttype); ;
4744 break;}
4745 case 64:
4746 #line 582 "parse.y"
4747 { finish_template_decl (yyvsp[-1].ttype); ;
4748 break;}
4749 case 65:
4750 #line 587 "parse.y"
4751 { if (pending_inlines) do_pending_inlines (); ;
4752 break;}
4753 case 66:
4754 #line 589 "parse.y"
4755 { if (pending_inlines) do_pending_inlines (); ;
4756 break;}
4757 case 67:
4758 #line 591 "parse.y"
4759 { if (pending_inlines) do_pending_inlines (); ;
4760 break;}
4761 case 68:
4762 #line 593 "parse.y"
4763 { if (pending_inlines) do_pending_inlines ();
4764 pop_lang_context (); ;
4765 break;}
4766 case 69:
4767 #line 596 "parse.y"
4768 { if (pending_inlines) do_pending_inlines ();
4769 pop_lang_context (); ;
4770 break;}
4771 case 70:
4772 #line 599 "parse.y"
4773 { pedantic = yyvsp[-1].itype; ;
4774 break;}
4775 case 72:
4776 #line 605 "parse.y"
4778 break;}
4779 case 73:
4780 #line 607 "parse.y"
4781 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4782 break;}
4783 case 74:
4784 #line 609 "parse.y"
4785 { maybe_process_partial_specialization (yyvsp[-1].ftype.t);
4786 note_got_semicolon (yyvsp[-1].ftype.t); ;
4787 break;}
4788 case 76:
4789 #line 616 "parse.y"
4791 break;}
4792 case 77:
4793 #line 618 "parse.y"
4794 { note_list_got_semicolon (yyvsp[-2].ftype.t); ;
4795 break;}
4796 case 78:
4797 #line 620 "parse.y"
4798 { pedwarn ("empty declaration"); ;
4799 break;}
4800 case 80:
4801 #line 623 "parse.y"
4803 tree t, attrs;
4804 split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4805 shadow_tag (t);
4806 note_list_got_semicolon (yyvsp[-1].ftype.t);
4808 break;}
4809 case 84:
4810 #line 636 "parse.y"
4811 { yyval.itype = 0; ;
4812 break;}
4813 case 85:
4814 #line 638 "parse.y"
4815 { yyval.itype = 1; ;
4816 break;}
4817 case 91:
4818 #line 654 "parse.y"
4819 { expand_body (finish_function (lineno, (int)yyvsp[-1].itype)); ;
4820 break;}
4821 case 92:
4822 #line 656 "parse.y"
4823 { expand_body (finish_function (lineno, (int)yyvsp[0].itype)); ;
4824 break;}
4825 case 93:
4826 #line 658 "parse.y"
4828 break;}
4829 case 94:
4830 #line 663 "parse.y"
4831 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4832 break;}
4833 case 95:
4834 #line 665 "parse.y"
4835 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4836 break;}
4837 case 96:
4838 #line 667 "parse.y"
4839 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4840 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4842 break;}
4843 case 97:
4844 #line 671 "parse.y"
4845 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4846 break;}
4847 case 98:
4848 #line 673 "parse.y"
4849 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4850 break;}
4851 case 99:
4852 #line 675 "parse.y"
4853 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4854 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4856 break;}
4857 case 100:
4858 #line 679 "parse.y"
4859 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4860 break;}
4861 case 101:
4862 #line 681 "parse.y"
4863 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4864 break;}
4865 case 102:
4866 #line 683 "parse.y"
4867 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4868 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4870 break;}
4871 case 103:
4872 #line 687 "parse.y"
4873 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4874 break;}
4875 case 104:
4876 #line 689 "parse.y"
4877 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4878 break;}
4879 case 105:
4880 #line 691 "parse.y"
4881 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4882 yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4884 break;}
4885 case 106:
4886 #line 698 "parse.y"
4887 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4888 YYERROR1; ;
4889 break;}
4890 case 107:
4891 #line 701 "parse.y"
4892 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4893 YYERROR1; ;
4894 break;}
4895 case 108:
4896 #line 704 "parse.y"
4897 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4898 YYERROR1; ;
4899 break;}
4900 case 109:
4901 #line 707 "parse.y"
4902 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4903 YYERROR1; ;
4904 break;}
4905 case 110:
4906 #line 710 "parse.y"
4907 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4908 YYERROR1; ;
4909 break;}
4910 case 111:
4911 #line 716 "parse.y"
4912 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4913 break;}
4914 case 112:
4915 #line 718 "parse.y"
4916 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4917 break;}
4918 case 113:
4919 #line 720 "parse.y"
4920 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4921 break;}
4922 case 114:
4923 #line 722 "parse.y"
4924 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4925 break;}
4926 case 115:
4927 #line 729 "parse.y"
4928 { tree specs, attrs;
4929 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4930 attrs = build_tree_list (attrs, NULL_TREE);
4931 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
4932 rest_of_mdef:
4933 if (! yyval.ttype)
4934 YYERROR1;
4935 if (yychar == YYEMPTY)
4936 yychar = YYLEX;
4937 reinit_parse_for_method (yychar, yyval.ttype); ;
4938 break;}
4939 case 116:
4940 #line 740 "parse.y"
4941 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4942 goto rest_of_mdef; ;
4943 break;}
4944 case 117:
4945 #line 743 "parse.y"
4946 { tree specs, attrs;
4947 split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
4948 attrs = build_tree_list (attrs, NULL_TREE);
4949 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4950 break;}
4951 case 118:
4952 #line 748 "parse.y"
4953 { tree specs, attrs;
4954 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4955 attrs = build_tree_list (attrs, NULL_TREE);
4956 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4957 break;}
4958 case 119:
4959 #line 753 "parse.y"
4960 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE);
4961 goto rest_of_mdef; ;
4962 break;}
4963 case 120:
4964 #line 756 "parse.y"
4965 { tree specs, attrs;
4966 split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
4967 attrs = build_tree_list (attrs, NULL_TREE);
4968 yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
4969 break;}
4970 case 121:
4971 #line 761 "parse.y"
4972 { yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE);
4973 goto rest_of_mdef; ;
4974 break;}
4975 case 122:
4976 #line 767 "parse.y"
4978 if (! current_function_parms_stored)
4979 store_parm_decls ();
4980 yyval.ttype = yyvsp[0].ttype;
4982 break;}
4983 case 123:
4984 #line 776 "parse.y"
4985 { finish_named_return_value (yyval.ttype, yyvsp[0].ttype); ;
4986 break;}
4987 case 124:
4988 #line 778 "parse.y"
4989 { finish_named_return_value (yyval.ttype, yyvsp[-1].ttype); ;
4990 break;}
4991 case 125:
4992 #line 780 "parse.y"
4993 { finish_named_return_value (yyval.ttype, NULL_TREE); ;
4994 break;}
4995 case 126:
4996 #line 785 "parse.y"
4998 if (yyvsp[0].itype == 0)
4999 error ("no base initializers given following ':'");
5000 setup_vtbl_ptr ();
5002 break;}
5003 case 127:
5004 #line 794 "parse.y"
5006 if (! current_function_parms_stored)
5007 store_parm_decls ();
5009 if (DECL_CONSTRUCTOR_P (current_function_decl))
5010 /* Make a contour for the initializer list. */
5011 do_pushlevel ();
5012 else if (current_class_type == NULL_TREE)
5013 error ("base initializers not allowed for non-member functions");
5014 else if (! DECL_CONSTRUCTOR_P (current_function_decl))
5015 error ("only constructors take base initializers");
5017 break;}
5018 case 128:
5019 #line 810 "parse.y"
5020 { yyval.itype = 0; ;
5021 break;}
5022 case 129:
5023 #line 812 "parse.y"
5024 { yyval.itype = 1; ;
5025 break;}
5026 case 132:
5027 #line 819 "parse.y"
5029 if (current_class_name)
5030 pedwarn ("anachronistic old style base class initializer");
5031 expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
5033 break;}
5034 case 133:
5035 #line 825 "parse.y"
5037 if (current_class_name)
5038 pedwarn ("anachronistic old style base class initializer");
5039 expand_member_init (current_class_ref, NULL_TREE, void_type_node);
5041 break;}
5042 case 134:
5043 #line 831 "parse.y"
5044 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5045 break;}
5046 case 135:
5047 #line 833 "parse.y"
5048 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
5049 break;}
5050 case 136:
5051 #line 835 "parse.y"
5052 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5053 break;}
5054 case 137:
5055 #line 837 "parse.y"
5056 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
5057 break;}
5058 case 138:
5059 #line 839 "parse.y"
5060 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
5061 yyvsp[-1].ttype); ;
5062 break;}
5063 case 139:
5064 #line 842 "parse.y"
5065 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
5066 void_type_node); ;
5067 break;}
5068 case 152:
5069 #line 869 "parse.y"
5070 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
5071 yyungetc (';', 1); ;
5072 break;}
5073 case 154:
5074 #line 873 "parse.y"
5075 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5076 do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
5077 break;}
5078 case 156:
5079 #line 877 "parse.y"
5080 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5081 break;}
5082 case 158:
5083 #line 880 "parse.y"
5084 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
5085 break;}
5086 case 160:
5087 #line 883 "parse.y"
5088 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
5089 yyungetc (';', 1); ;
5090 break;}
5091 case 162:
5092 #line 888 "parse.y"
5093 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
5094 do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
5095 break;}
5096 case 164:
5097 #line 892 "parse.y"
5098 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5099 break;}
5100 case 166:
5101 #line 895 "parse.y"
5102 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
5103 break;}
5104 case 168:
5105 #line 900 "parse.y"
5106 { begin_explicit_instantiation(); ;
5107 break;}
5108 case 169:
5109 #line 903 "parse.y"
5110 { end_explicit_instantiation(); ;
5111 break;}
5112 case 170:
5113 #line 912 "parse.y"
5114 { yyval.ttype = yyvsp[0].ttype; ;
5115 break;}
5116 case 171:
5117 #line 915 "parse.y"
5118 { yyval.ttype = yyvsp[0].ttype; ;
5119 break;}
5120 case 174:
5121 #line 923 "parse.y"
5122 { yyval.ttype = yyvsp[0].ttype; ;
5123 break;}
5124 case 175:
5125 #line 928 "parse.y"
5126 { yyval.ttype = yyvsp[0].ttype; ;
5127 break;}
5128 case 176:
5129 #line 932 "parse.y"
5131 if (yychar == YYEMPTY)
5132 yychar = YYLEX;
5134 yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype,
5135 yychar == SCOPE);
5137 break;}
5138 case 178:
5139 #line 943 "parse.y"
5141 /* Handle `Class<Class<Type>>' without space in the `>>' */
5142 pedwarn ("`>>' should be `> >' in template class name");
5143 yyungetc ('>', 1);
5145 break;}
5146 case 179:
5147 #line 952 "parse.y"
5148 { yyval.ttype = NULL_TREE; ;
5149 break;}
5150 case 181:
5151 #line 958 "parse.y"
5152 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5153 break;}
5154 case 182:
5155 #line 960 "parse.y"
5156 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5157 break;}
5158 case 183:
5159 #line 965 "parse.y"
5160 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
5161 break;}
5162 case 184:
5163 #line 967 "parse.y"
5164 { yyval.ttype = lastiddecl; ;
5165 break;}
5166 case 186:
5167 #line 973 "parse.y"
5168 { yyval.code = NEGATE_EXPR; ;
5169 break;}
5170 case 187:
5171 #line 975 "parse.y"
5172 { yyval.code = CONVERT_EXPR; ;
5173 break;}
5174 case 188:
5175 #line 977 "parse.y"
5176 { yyval.code = PREINCREMENT_EXPR; ;
5177 break;}
5178 case 189:
5179 #line 979 "parse.y"
5180 { yyval.code = PREDECREMENT_EXPR; ;
5181 break;}
5182 case 190:
5183 #line 981 "parse.y"
5184 { yyval.code = TRUTH_NOT_EXPR; ;
5185 break;}
5186 case 191:
5187 #line 986 "parse.y"
5188 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
5189 break;}
5190 case 193:
5191 #line 992 "parse.y"
5192 { error ("ANSI C++ forbids an empty condition for `%s'",
5193 cond_stmt_keyword);
5194 yyval.ttype = integer_zero_node; ;
5195 break;}
5196 case 194:
5197 #line 996 "parse.y"
5198 { yyval.ttype = yyvsp[-1].ttype; ;
5199 break;}
5200 case 195:
5201 #line 1001 "parse.y"
5202 { error ("ANSI C++ forbids an empty condition for `%s'",
5203 cond_stmt_keyword);
5204 yyval.ttype = integer_zero_node; ;
5205 break;}
5206 case 196:
5207 #line 1005 "parse.y"
5208 { yyval.ttype = yyvsp[-1].ttype; ;
5209 break;}
5210 case 197:
5211 #line 1010 "parse.y"
5212 { yyval.ttype = NULL_TREE; ;
5213 break;}
5214 case 199:
5215 #line 1013 "parse.y"
5216 { yyval.ttype = NULL_TREE; ;
5217 break;}
5218 case 200:
5219 #line 1018 "parse.y"
5221 tree d;
5222 for (d = getdecls (); d; d = TREE_CHAIN (d))
5223 if (TREE_CODE (d) == TYPE_DECL) {
5224 tree s = TREE_TYPE (d);
5225 if (TREE_CODE (s) == RECORD_TYPE)
5226 cp_error ("definition of class `%T' in condition", s);
5227 else if (TREE_CODE (s) == ENUMERAL_TYPE)
5228 cp_error ("definition of enum `%T' in condition", s);
5231 current_declspecs = yyvsp[-4].ftype.t;
5232 yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5233 yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
5235 break;}
5236 case 201:
5237 #line 1034 "parse.y"
5239 cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, LOOKUP_ONLYCONVERTING);
5240 yyval.ttype = convert_from_reference (yyvsp[-1].ttype);
5241 if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
5242 cp_error ("definition of array `%#D' in condition", yyval.ttype);
5244 break;}
5245 case 207:
5246 #line 1052 "parse.y"
5247 { yyval.ttype = begin_compound_stmt (1); ;
5248 break;}
5249 case 208:
5250 #line 1054 "parse.y"
5251 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
5252 break;}
5253 case 210:
5254 #line 1061 "parse.y"
5255 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype,
5256 build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5257 break;}
5258 case 211:
5259 #line 1064 "parse.y"
5260 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype,
5261 build_expr_list (NULL_TREE, error_mark_node)); ;
5262 break;}
5263 case 212:
5264 #line 1067 "parse.y"
5265 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
5266 break;}
5267 case 213:
5268 #line 1069 "parse.y"
5269 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
5270 break;}
5271 case 214:
5272 #line 1074 "parse.y"
5273 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
5274 break;}
5275 case 216:
5276 #line 1080 "parse.y"
5277 { yyval.ttype = yyvsp[0].ttype; ;
5278 break;}
5279 case 217:
5280 #line 1083 "parse.y"
5281 { yyval.ttype = yyvsp[0].ttype;
5282 pedantic = yyvsp[-1].itype; ;
5283 break;}
5284 case 218:
5285 #line 1086 "parse.y"
5286 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
5287 break;}
5288 case 219:
5289 #line 1088 "parse.y"
5290 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
5291 break;}
5292 case 220:
5293 #line 1090 "parse.y"
5294 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5295 break;}
5296 case 221:
5297 #line 1092 "parse.y"
5298 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
5299 break;}
5300 case 222:
5301 #line 1095 "parse.y"
5302 { if (pedantic)
5303 pedwarn ("ANSI C++ forbids `&&'");
5304 yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
5305 break;}
5306 case 223:
5307 #line 1099 "parse.y"
5308 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
5309 break;}
5310 case 224:
5311 #line 1101 "parse.y"
5312 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
5313 check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
5314 break;}
5315 case 225:
5316 #line 1104 "parse.y"
5317 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
5318 break;}
5319 case 226:
5320 #line 1106 "parse.y"
5321 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t));
5322 check_for_new_type ("alignof", yyvsp[-1].ftype); ;
5323 break;}
5324 case 227:
5325 #line 1112 "parse.y"
5326 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype);
5327 check_for_new_type ("new", yyvsp[0].ftype); ;
5328 break;}
5329 case 228:
5330 #line 1115 "parse.y"
5331 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype);
5332 check_for_new_type ("new", yyvsp[-1].ftype); ;
5333 break;}
5334 case 229:
5335 #line 1118 "parse.y"
5336 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype);
5337 check_for_new_type ("new", yyvsp[0].ftype); ;
5338 break;}
5339 case 230:
5340 #line 1121 "parse.y"
5341 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype);
5342 check_for_new_type ("new", yyvsp[-1].ftype); ;
5343 break;}
5344 case 231:
5345 #line 1125 "parse.y"
5346 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
5347 NULL_TREE, yyvsp[-3].itype);
5348 check_for_new_type ("new", yyvsp[-1].ftype); ;
5349 break;}
5350 case 232:
5351 #line 1129 "parse.y"
5352 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-4].itype);
5353 check_for_new_type ("new", yyvsp[-2].ftype); ;
5354 break;}
5355 case 233:
5356 #line 1132 "parse.y"
5357 { yyval.ttype = build_new (yyvsp[-3].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype);
5358 check_for_new_type ("new", yyvsp[-1].ftype); ;
5359 break;}
5360 case 234:
5361 #line 1135 "parse.y"
5362 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype);
5363 check_for_new_type ("new", yyvsp[-2].ftype); ;
5364 break;}
5365 case 235:
5366 #line 1139 "parse.y"
5367 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
5368 break;}
5369 case 236:
5370 #line 1141 "parse.y"
5371 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
5372 if (yychar == YYEMPTY)
5373 yychar = YYLEX; ;
5374 break;}
5375 case 237:
5376 #line 1145 "parse.y"
5377 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
5378 if (yychar == YYEMPTY)
5379 yychar = YYLEX; ;
5380 break;}
5381 case 238:
5382 #line 1149 "parse.y"
5383 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
5384 break;}
5385 case 239:
5386 #line 1151 "parse.y"
5387 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
5388 break;}
5389 case 240:
5390 #line 1153 "parse.y"
5391 { yyval.ttype = build_x_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ftype.t));
5392 check_for_new_type ("__builtin_va_arg", yyvsp[-1].ftype); ;
5393 break;}
5394 case 241:
5395 #line 1159 "parse.y"
5396 { yyval.ttype = yyvsp[-1].ttype; ;
5397 break;}
5398 case 242:
5399 #line 1161 "parse.y"
5400 { cp_pedwarn ("old style placement syntax, use () instead");
5401 yyval.ttype = yyvsp[-1].ttype; ;
5402 break;}
5403 case 243:
5404 #line 1167 "parse.y"
5405 { yyval.ttype = yyvsp[-1].ttype; ;
5406 break;}
5407 case 244:
5408 #line 1169 "parse.y"
5409 { yyval.ttype = NULL_TREE; ;
5410 break;}
5411 case 245:
5412 #line 1171 "parse.y"
5414 cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
5415 yyval.ttype = error_mark_node;
5417 break;}
5418 case 246:
5419 #line 1179 "parse.y"
5421 if (pedantic)
5422 pedwarn ("ANSI C++ forbids initialization of new expression with `='");
5423 if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
5424 && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
5425 yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
5426 else
5427 yyval.ttype = yyvsp[0].ttype;
5429 break;}
5430 case 247:
5431 #line 1193 "parse.y"
5432 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5433 yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5434 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5435 break;}
5436 case 248:
5437 #line 1197 "parse.y"
5438 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
5439 yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
5440 check_for_new_type ("cast", yyvsp[-1].ftype); ;
5441 break;}
5442 case 250:
5443 #line 1205 "parse.y"
5444 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
5445 break;}
5446 case 251:
5447 #line 1207 "parse.y"
5449 tree init = build_nt (CONSTRUCTOR, NULL_TREE,
5450 nreverse (yyvsp[-2].ttype));
5451 if (pedantic)
5452 pedwarn ("ANSI C++ forbids constructor-expressions");
5453 /* Indicate that this was a GNU C constructor expression. */
5454 TREE_HAS_CONSTRUCTOR (init) = 1;
5456 yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
5458 break;}
5459 case 253:
5460 #line 1223 "parse.y"
5461 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
5462 break;}
5463 case 254:
5464 #line 1225 "parse.y"
5465 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
5466 break;}
5467 case 255:
5468 #line 1227 "parse.y"
5469 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5470 break;}
5471 case 256:
5472 #line 1229 "parse.y"
5473 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5474 break;}
5475 case 257:
5476 #line 1231 "parse.y"
5477 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5478 break;}
5479 case 258:
5480 #line 1233 "parse.y"
5481 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5482 break;}
5483 case 259:
5484 #line 1235 "parse.y"
5485 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5486 break;}
5487 case 260:
5488 #line 1237 "parse.y"
5489 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5490 break;}
5491 case 261:
5492 #line 1239 "parse.y"
5493 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5494 break;}
5495 case 262:
5496 #line 1241 "parse.y"
5497 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5498 break;}
5499 case 263:
5500 #line 1243 "parse.y"
5501 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5502 break;}
5503 case 264:
5504 #line 1245 "parse.y"
5505 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5506 break;}
5507 case 265:
5508 #line 1247 "parse.y"
5509 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5510 break;}
5511 case 266:
5512 #line 1249 "parse.y"
5513 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5514 break;}
5515 case 267:
5516 #line 1251 "parse.y"
5517 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5518 break;}
5519 case 268:
5520 #line 1253 "parse.y"
5521 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5522 break;}
5523 case 269:
5524 #line 1255 "parse.y"
5525 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
5526 break;}
5527 case 270:
5528 #line 1257 "parse.y"
5529 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5530 break;}
5531 case 271:
5532 #line 1259 "parse.y"
5533 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
5534 break;}
5535 case 272:
5536 #line 1261 "parse.y"
5537 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
5538 break;}
5539 case 273:
5540 #line 1263 "parse.y"
5541 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
5542 if (yyval.ttype != error_mark_node)
5543 C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
5544 break;}
5545 case 274:
5546 #line 1267 "parse.y"
5547 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
5548 break;}
5549 case 275:
5550 #line 1269 "parse.y"
5551 { yyval.ttype = build_throw (NULL_TREE); ;
5552 break;}
5553 case 276:
5554 #line 1271 "parse.y"
5555 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
5556 break;}
5557 case 277:
5558 #line 1289 "parse.y"
5559 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5560 break;}
5561 case 278:
5562 #line 1291 "parse.y"
5563 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
5564 break;}
5565 case 284:
5566 #line 1300 "parse.y"
5568 /* If lastiddecl is a TREE_LIST, it's a baselink, which
5569 means that we're in an expression like S::f<int>, so
5570 don't do_identifier; we only do that for unqualified
5571 identifiers. */
5572 if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
5573 yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
5574 else
5575 yyval.ttype = yyvsp[-1].ttype;
5577 break;}
5578 case 285:
5579 #line 1313 "parse.y"
5580 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5581 break;}
5582 case 286:
5583 #line 1315 "parse.y"
5584 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5585 break;}
5586 case 287:
5587 #line 1320 "parse.y"
5588 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5589 break;}
5590 case 288:
5591 #line 1322 "parse.y"
5592 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5593 break;}
5594 case 289:
5595 #line 1325 "parse.y"
5596 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5597 break;}
5598 case 294:
5599 #line 1337 "parse.y"
5601 /* Provide support for '(' attributes '*' declarator ')'
5602 etc */
5603 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
5605 break;}
5606 case 296:
5607 #line 1347 "parse.y"
5608 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5609 break;}
5610 case 297:
5611 #line 1349 "parse.y"
5612 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5613 break;}
5614 case 298:
5615 #line 1351 "parse.y"
5616 { yyval.ttype = yyvsp[-1].ttype; ;
5617 break;}
5618 case 299:
5619 #line 1356 "parse.y"
5620 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5621 break;}
5622 case 300:
5623 #line 1358 "parse.y"
5624 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5625 break;}
5626 case 304:
5627 #line 1368 "parse.y"
5628 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5629 break;}
5630 case 305:
5631 #line 1373 "parse.y"
5633 if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5634 yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5635 else
5636 yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5638 break;}
5639 case 308:
5640 #line 1382 "parse.y"
5642 yyval.ttype = combine_strings (yyval.ttype);
5643 /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
5644 a const array the way we want, so fix it. */
5645 if (flag_const_strings)
5646 TREE_TYPE (yyval.ttype) = build_cplus_array_type
5647 (TREE_TYPE (TREE_TYPE (yyval.ttype)),
5648 TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
5650 break;}
5651 case 309:
5652 #line 1392 "parse.y"
5653 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5654 break;}
5655 case 310:
5656 #line 1394 "parse.y"
5657 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5658 yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5659 break;}
5660 case 311:
5661 #line 1397 "parse.y"
5662 { yyval.ttype = error_mark_node; ;
5663 break;}
5664 case 312:
5665 #line 1399 "parse.y"
5666 { tree scope = current_scope ();
5667 if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
5669 error ("braced-group within expression allowed only inside a function");
5670 YYERROR;
5672 if (pedantic)
5673 pedwarn ("ANSI C++ forbids braced-groups within expressions");
5674 yyval.ttype = begin_stmt_expr ();
5676 break;}
5677 case 313:
5678 #line 1410 "parse.y"
5679 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype); ;
5680 break;}
5681 case 314:
5682 #line 1415 "parse.y"
5683 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
5684 break;}
5685 case 315:
5686 #line 1417 "parse.y"
5687 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
5688 break;}
5689 case 316:
5690 #line 1419 "parse.y"
5691 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
5692 break;}
5693 case 317:
5694 #line 1421 "parse.y"
5695 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
5696 break;}
5697 case 318:
5698 #line 1423 "parse.y"
5699 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5700 break;}
5701 case 319:
5702 #line 1425 "parse.y"
5703 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5704 break;}
5705 case 320:
5706 #line 1427 "parse.y"
5707 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5708 break;}
5709 case 321:
5710 #line 1430 "parse.y"
5711 { yyval.ttype = finish_this_expr (); ;
5712 break;}
5713 case 322:
5714 #line 1432 "parse.y"
5716 /* This is a C cast in C++'s `functional' notation
5717 using the "implicit int" extension so that:
5718 `const (3)' is equivalent to `const int (3)'. */
5719 tree type;
5721 type = hash_tree_cons (NULL_TREE, yyvsp[-3].ttype, NULL_TREE);
5722 type = groktypename (build_decl_list (type, NULL_TREE));
5723 yyval.ttype = build_functional_cast (type, yyvsp[-1].ttype);
5725 break;}
5726 case 324:
5727 #line 1444 "parse.y"
5728 { tree type = groktypename (yyvsp[-4].ftype.t);
5729 check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5730 yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5731 break;}
5732 case 325:
5733 #line 1448 "parse.y"
5734 { tree type = groktypename (yyvsp[-4].ftype.t);
5735 check_for_new_type ("static_cast", yyvsp[-4].ftype);
5736 yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5737 break;}
5738 case 326:
5739 #line 1452 "parse.y"
5740 { tree type = groktypename (yyvsp[-4].ftype.t);
5741 check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5742 yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5743 break;}
5744 case 327:
5745 #line 1456 "parse.y"
5746 { tree type = groktypename (yyvsp[-4].ftype.t);
5747 check_for_new_type ("const_cast", yyvsp[-4].ftype);
5748 yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5749 break;}
5750 case 328:
5751 #line 1460 "parse.y"
5752 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5753 break;}
5754 case 329:
5755 #line 1462 "parse.y"
5756 { tree type = groktypename (yyvsp[-1].ftype.t);
5757 check_for_new_type ("typeid", yyvsp[-1].ftype);
5758 yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5759 break;}
5760 case 330:
5761 #line 1466 "parse.y"
5762 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5763 break;}
5764 case 331:
5765 #line 1468 "parse.y"
5766 { yyval.ttype = yyvsp[0].ttype; ;
5767 break;}
5768 case 332:
5769 #line 1470 "parse.y"
5771 got_scope = NULL_TREE;
5772 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5773 yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5774 else
5775 yyval.ttype = yyvsp[0].ttype;
5777 break;}
5778 case 333:
5779 #line 1478 "parse.y"
5780 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5781 break;}
5782 case 334:
5783 #line 1480 "parse.y"
5784 { yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5785 break;}
5786 case 335:
5787 #line 1482 "parse.y"
5788 { yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5789 break;}
5790 case 336:
5791 #line 1484 "parse.y"
5793 yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1);
5795 break;}
5796 case 337:
5797 #line 1488 "parse.y"
5798 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5799 break;}
5800 case 338:
5801 #line 1490 "parse.y"
5802 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5803 break;}
5804 case 339:
5805 #line 1492 "parse.y"
5806 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5807 break;}
5808 case 340:
5809 #line 1494 "parse.y"
5810 { if (processing_template_decl)
5811 yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
5812 else
5813 yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5814 break;}
5815 case 341:
5816 #line 1499 "parse.y"
5817 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5818 break;}
5819 case 342:
5820 #line 1501 "parse.y"
5821 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5822 break;}
5823 case 343:
5824 #line 1503 "parse.y"
5825 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5826 break;}
5827 case 344:
5828 #line 1505 "parse.y"
5829 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5830 break;}
5831 case 345:
5832 #line 1508 "parse.y"
5833 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5834 break;}
5835 case 346:
5836 #line 1510 "parse.y"
5837 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5838 break;}
5839 case 347:
5840 #line 1512 "parse.y"
5842 yyval.ttype = error_mark_node;
5844 break;}
5845 case 348:
5846 #line 1557 "parse.y"
5847 { yyval.itype = 0; ;
5848 break;}
5849 case 349:
5850 #line 1559 "parse.y"
5851 { got_scope = NULL_TREE; yyval.itype = 1; ;
5852 break;}
5853 case 350:
5854 #line 1564 "parse.y"
5855 { yyval.itype = 0; ;
5856 break;}
5857 case 351:
5858 #line 1566 "parse.y"
5859 { got_scope = NULL_TREE; yyval.itype = 1; ;
5860 break;}
5861 case 352:
5862 #line 1571 "parse.y"
5863 { yyval.ttype = boolean_true_node; ;
5864 break;}
5865 case 353:
5866 #line 1573 "parse.y"
5867 { yyval.ttype = boolean_false_node; ;
5868 break;}
5869 case 355:
5870 #line 1580 "parse.y"
5871 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5872 break;}
5873 case 356:
5874 #line 1585 "parse.y"
5876 if (! current_function_parms_stored)
5877 store_parm_decls ();
5878 setup_vtbl_ptr ();
5880 break;}
5881 case 357:
5882 #line 1594 "parse.y"
5883 { got_object = TREE_TYPE (yyval.ttype); ;
5884 break;}
5885 case 358:
5886 #line 1596 "parse.y"
5888 yyval.ttype = build_x_arrow (yyval.ttype);
5889 got_object = TREE_TYPE (yyval.ttype);
5891 break;}
5892 case 359:
5893 #line 1604 "parse.y"
5895 if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5896 note_got_semicolon (yyvsp[-2].ftype.t);
5898 break;}
5899 case 360:
5900 #line 1609 "parse.y"
5902 note_list_got_semicolon (yyvsp[-2].ftype.t);
5904 break;}
5905 case 361:
5906 #line 1613 "parse.y"
5908 break;}
5909 case 362:
5910 #line 1615 "parse.y"
5912 shadow_tag (yyvsp[-1].ftype.t);
5913 note_list_got_semicolon (yyvsp[-1].ftype.t);
5915 break;}
5916 case 363:
5917 #line 1620 "parse.y"
5918 { warning ("empty declaration"); ;
5919 break;}
5920 case 364:
5921 #line 1622 "parse.y"
5922 { pedantic = yyvsp[-1].itype; ;
5923 break;}
5924 case 367:
5925 #line 1636 "parse.y"
5926 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5927 NULL_TREE, NULL_TREE); ;
5928 break;}
5929 case 368:
5930 #line 1639 "parse.y"
5931 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5932 NULL_TREE); ;
5933 break;}
5934 case 369:
5935 #line 1646 "parse.y"
5936 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5937 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5938 break;}
5939 case 370:
5940 #line 1649 "parse.y"
5941 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
5942 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5943 break;}
5944 case 371:
5945 #line 1652 "parse.y"
5946 { yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
5947 yyvsp[0].ttype);
5948 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5949 break;}
5950 case 372:
5951 #line 1656 "parse.y"
5952 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5953 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5954 break;}
5955 case 373:
5956 #line 1659 "parse.y"
5957 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5958 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5959 break;}
5960 case 376:
5961 #line 1675 "parse.y"
5962 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype);
5963 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5964 break;}
5965 case 377:
5966 #line 1678 "parse.y"
5967 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
5968 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5969 break;}
5970 case 378:
5971 #line 1681 "parse.y"
5972 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype));
5973 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5974 break;}
5975 case 379:
5976 #line 1684 "parse.y"
5977 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5978 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5979 break;}
5980 case 380:
5981 #line 1687 "parse.y"
5982 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype));
5983 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5984 break;}
5985 case 381:
5986 #line 1690 "parse.y"
5987 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5988 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype)));
5989 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5990 break;}
5991 case 382:
5992 #line 1697 "parse.y"
5993 { if (extra_warnings)
5994 warning ("`%s' is not at beginning of declaration",
5995 IDENTIFIER_POINTER (yyval.ttype));
5996 yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5997 break;}
5998 case 383:
5999 #line 1702 "parse.y"
6000 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
6001 break;}
6002 case 384:
6003 #line 1704 "parse.y"
6004 { if (extra_warnings)
6005 warning ("`%s' is not at beginning of declaration",
6006 IDENTIFIER_POINTER (yyvsp[0].ttype));
6007 yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6008 break;}
6009 case 385:
6010 #line 1709 "parse.y"
6011 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
6012 break;}
6013 case 386:
6014 #line 1711 "parse.y"
6015 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
6016 break;}
6017 case 387:
6018 #line 1730 "parse.y"
6019 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
6020 break;}
6021 case 388:
6022 #line 1732 "parse.y"
6023 { yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
6024 break;}
6025 case 389:
6026 #line 1734 "parse.y"
6027 { yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
6028 TREE_STATIC (yyval.ttype) = 1; ;
6029 break;}
6030 case 390:
6031 #line 1737 "parse.y"
6032 { if (extra_warnings && TREE_STATIC (yyval.ttype))
6033 warning ("`%s' is not at beginning of declaration",
6034 IDENTIFIER_POINTER (yyvsp[0].ttype));
6035 yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
6036 TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
6037 break;}
6038 case 391:
6039 #line 1743 "parse.y"
6040 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
6041 break;}
6042 case 392:
6043 #line 1745 "parse.y"
6044 { yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
6045 break;}
6046 case 393:
6047 #line 1756 "parse.y"
6048 { yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t);
6049 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6050 break;}
6051 case 394:
6052 #line 1759 "parse.y"
6053 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t);
6054 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6055 break;}
6056 case 395:
6057 #line 1762 "parse.y"
6058 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype);
6059 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6060 break;}
6061 case 396:
6062 #line 1765 "parse.y"
6063 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t));
6064 yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
6065 break;}
6066 case 397:
6067 #line 1771 "parse.y"
6068 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
6069 break;}
6070 case 398:
6071 #line 1773 "parse.y"
6072 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
6073 break;}
6074 case 400:
6075 #line 1783 "parse.y"
6076 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6077 break;}
6078 case 401:
6079 #line 1785 "parse.y"
6080 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6081 break;}
6082 case 402:
6083 #line 1787 "parse.y"
6084 { yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
6085 yyval.ftype.new_type_flag = 0; ;
6086 break;}
6087 case 403:
6088 #line 1790 "parse.y"
6089 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
6090 yyval.ftype.new_type_flag = 0; ;
6091 break;}
6092 case 404:
6093 #line 1793 "parse.y"
6094 { tree type = TREE_TYPE (yyvsp[-1].ttype);
6096 yyval.ftype.new_type_flag = 0;
6097 if (IS_AGGR_TYPE (type))
6099 sorry ("sigof type specifier");
6100 yyval.ftype.t = type;
6102 else
6104 error ("`sigof' applied to non-aggregate expression");
6105 yyval.ftype.t = error_mark_node;
6108 break;}
6109 case 405:
6110 #line 1808 "parse.y"
6111 { tree type = groktypename (yyvsp[-1].ftype.t);
6113 yyval.ftype.new_type_flag = 0;
6114 if (IS_AGGR_TYPE (type))
6116 sorry ("sigof type specifier");
6117 yyval.ftype.t = type;
6119 else
6121 error("`sigof' applied to non-aggregate type");
6122 yyval.ftype.t = error_mark_node;
6125 break;}
6126 case 406:
6127 #line 1828 "parse.y"
6128 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6129 break;}
6130 case 407:
6131 #line 1830 "parse.y"
6132 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
6133 break;}
6134 case 410:
6135 #line 1837 "parse.y"
6136 { check_multiple_declarators (); ;
6137 break;}
6138 case 412:
6139 #line 1843 "parse.y"
6140 { check_multiple_declarators (); ;
6141 break;}
6142 case 414:
6143 #line 1849 "parse.y"
6144 { check_multiple_declarators (); ;
6145 break;}
6146 case 415:
6147 #line 1854 "parse.y"
6148 { yyval.ttype = NULL_TREE; ;
6149 break;}
6150 case 416:
6151 #line 1856 "parse.y"
6152 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
6153 break;}
6154 case 417:
6155 #line 1861 "parse.y"
6156 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
6157 yyvsp[-1].ttype, prefix_attributes); ;
6158 break;}
6159 case 418:
6160 #line 1865 "parse.y"
6161 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, LOOKUP_ONLYCONVERTING); ;
6162 break;}
6163 case 419:
6164 #line 1867 "parse.y"
6165 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
6166 yyvsp[0].ttype, prefix_attributes);
6167 cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 0); ;
6168 break;}
6169 case 420:
6170 #line 1880 "parse.y"
6171 { parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype, 1, &yyval.ttype); ;
6172 break;}
6173 case 421:
6174 #line 1884 "parse.y"
6175 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype,
6176 LOOKUP_ONLYCONVERTING); ;
6177 break;}
6178 case 422:
6179 #line 1887 "parse.y"
6180 { tree d;
6181 parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
6182 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
6183 break;}
6184 case 423:
6185 #line 1894 "parse.y"
6187 break;}
6188 case 424:
6189 #line 1899 "parse.y"
6191 break;}
6192 case 425:
6193 #line 1904 "parse.y"
6194 { /* Set things up as initdcl0_innards expects. */
6195 yyvsp[0].ttype = yyvsp[-1].ttype;
6196 yyvsp[-1].ttype = NULL_TREE; ;
6197 break;}
6198 case 426:
6199 #line 1908 "parse.y"
6201 break;}
6202 case 427:
6203 #line 1910 "parse.y"
6204 { tree d;
6205 parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
6206 cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 0); ;
6207 break;}
6208 case 428:
6209 #line 1919 "parse.y"
6210 { yyval.ttype = NULL_TREE; ;
6211 break;}
6212 case 429:
6213 #line 1921 "parse.y"
6214 { yyval.ttype = yyvsp[0].ttype; ;
6215 break;}
6216 case 430:
6217 #line 1926 "parse.y"
6218 { yyval.ttype = yyvsp[0].ttype; ;
6219 break;}
6220 case 431:
6221 #line 1928 "parse.y"
6222 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6223 break;}
6224 case 432:
6225 #line 1933 "parse.y"
6226 { yyval.ttype = yyvsp[-2].ttype; ;
6227 break;}
6228 case 433:
6229 #line 1938 "parse.y"
6230 { yyval.ttype = yyvsp[0].ttype; ;
6231 break;}
6232 case 434:
6233 #line 1940 "parse.y"
6234 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6235 break;}
6236 case 435:
6237 #line 1945 "parse.y"
6238 { yyval.ttype = NULL_TREE; ;
6239 break;}
6240 case 436:
6241 #line 1947 "parse.y"
6242 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
6243 break;}
6244 case 437:
6245 #line 1949 "parse.y"
6246 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
6247 break;}
6248 case 438:
6249 #line 1951 "parse.y"
6250 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
6251 break;}
6252 case 439:
6253 #line 1953 "parse.y"
6254 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6255 break;}
6256 case 444:
6257 #line 1969 "parse.y"
6258 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
6259 break;}
6260 case 445:
6261 #line 1971 "parse.y"
6262 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
6263 break;}
6264 case 446:
6265 #line 1976 "parse.y"
6266 { yyval.ttype = NULL_TREE; ;
6267 break;}
6268 case 447:
6269 #line 1978 "parse.y"
6270 { yyval.ttype = yyvsp[0].ttype; ;
6271 break;}
6272 case 449:
6273 #line 1986 "parse.y"
6274 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
6275 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6276 break;}
6277 case 450:
6278 #line 1989 "parse.y"
6279 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
6280 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6281 break;}
6282 case 451:
6283 #line 1992 "parse.y"
6284 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
6285 TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
6286 break;}
6287 case 452:
6288 #line 1995 "parse.y"
6289 { yyval.ttype = NULL_TREE; ;
6290 break;}
6291 case 453:
6292 #line 2002 "parse.y"
6293 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
6294 break;}
6295 case 454:
6296 #line 2004 "parse.y"
6297 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6298 break;}
6299 case 455:
6300 #line 2007 "parse.y"
6301 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6302 break;}
6303 case 456:
6304 #line 2009 "parse.y"
6305 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
6306 break;}
6307 case 457:
6308 #line 2011 "parse.y"
6309 { yyval.ttype = tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
6310 break;}
6311 case 458:
6312 #line 2016 "parse.y"
6313 { start_function (NULL_TREE, yyvsp[0].pi->fndecl, NULL_TREE,
6314 (SF_DEFAULT | SF_PRE_PARSED
6315 | SF_INCLASS_INLINE));
6316 reinit_parse_for_function (); ;
6317 break;}
6318 case 459:
6319 #line 2023 "parse.y"
6321 expand_body (finish_function (lineno, (int)yyvsp[-1].itype | 2));
6322 process_next_inline (yyvsp[-3].pi);
6324 break;}
6325 case 460:
6326 #line 2028 "parse.y"
6328 expand_body (finish_function (lineno, (int)yyvsp[0].itype | 2));
6329 process_next_inline (yyvsp[-2].pi);
6331 break;}
6332 case 461:
6333 #line 2033 "parse.y"
6335 finish_function (lineno, 2);
6336 process_next_inline (yyvsp[-2].pi); ;
6337 break;}
6338 case 464:
6339 #line 2047 "parse.y"
6340 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6341 break;}
6342 case 465:
6343 #line 2049 "parse.y"
6344 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
6345 break;}
6346 case 467:
6347 #line 2054 "parse.y"
6348 { do_pending_defargs (); ;
6349 break;}
6350 case 468:
6351 #line 2056 "parse.y"
6352 { do_pending_defargs (); ;
6353 break;}
6354 case 469:
6355 #line 2061 "parse.y"
6356 { yyval.ttype = current_enum_type;
6357 current_enum_type = start_enum (yyvsp[-1].ttype); ;
6358 break;}
6359 case 470:
6360 #line 2064 "parse.y"
6361 { yyval.ftype.t = finish_enum (current_enum_type);
6362 yyval.ftype.new_type_flag = 1;
6363 current_enum_type = yyvsp[-2].ttype;
6364 check_for_missing_semicolon (yyval.ftype.t); ;
6365 break;}
6366 case 471:
6367 #line 2069 "parse.y"
6368 { yyval.ttype = current_enum_type;
6369 current_enum_type = start_enum (make_anon_name ()); ;
6370 break;}
6371 case 472:
6372 #line 2072 "parse.y"
6373 { yyval.ftype.t = finish_enum (current_enum_type);
6374 yyval.ftype.new_type_flag = 1;
6375 current_enum_type = yyvsp[-2].ttype;
6376 check_for_missing_semicolon (yyval.ftype.t); ;
6377 break;}
6378 case 473:
6379 #line 2077 "parse.y"
6380 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6381 yyval.ftype.new_type_flag = 0; ;
6382 break;}
6383 case 474:
6384 #line 2080 "parse.y"
6385 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1);
6386 yyval.ftype.new_type_flag = 0; ;
6387 break;}
6388 case 475:
6389 #line 2083 "parse.y"
6390 { yyval.ftype.t = yyvsp[0].ttype;
6391 yyval.ftype.new_type_flag = 0;
6392 if (!processing_template_decl)
6393 cp_pedwarn ("using `typename' outside of template"); ;
6394 break;}
6395 case 476:
6396 #line 2089 "parse.y"
6397 { yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
6398 break;}
6399 case 477:
6400 #line 2091 "parse.y"
6402 int semi;
6404 if (yychar == YYEMPTY)
6405 yychar = YYLEX;
6406 semi = yychar == ';';
6408 yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
6409 yyvsp[-5].ftype.new_type_flag);
6411 break;}
6412 case 478:
6413 #line 2102 "parse.y"
6415 begin_inline_definitions ();
6417 break;}
6418 case 479:
6419 #line 2106 "parse.y"
6421 finish_inline_definitions ();
6422 yyval.ftype.t = yyvsp[-3].ttype;
6423 yyval.ftype.new_type_flag = 1;
6425 break;}
6426 case 480:
6427 #line 2112 "parse.y"
6429 if (yyvsp[0].ftype.new_type_flag && yyvsp[0].ftype.t != error_mark_node)
6430 pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
6431 yyval.ftype.new_type_flag = 0;
6432 if (yyvsp[0].ftype.t == error_mark_node)
6433 yyval.ftype.t = yyvsp[0].ftype.t;
6434 else if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
6436 cp_error ("%T is not a class type", yyvsp[0].ftype.t);
6437 yyval.ftype.t = error_mark_node;
6439 else
6441 yyval.ftype.t = yyvsp[0].ftype.t;
6442 /* struct B: public A; is not accepted by the WP grammar. */
6443 if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
6444 && ! TYPE_BEING_DEFINED (yyval.ftype.t))
6445 cp_error ("base clause without member specification for `%#T'",
6446 yyval.ftype.t);
6449 break;}
6450 case 484:
6451 #line 2143 "parse.y"
6452 { if (pedantic && !in_system_header)
6453 pedwarn ("comma at end of enumerator list"); ;
6454 break;}
6455 case 486:
6456 #line 2150 "parse.y"
6457 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6458 break;}
6459 case 487:
6460 #line 2152 "parse.y"
6461 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6462 break;}
6463 case 488:
6464 #line 2154 "parse.y"
6465 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
6466 break;}
6467 case 489:
6468 #line 2156 "parse.y"
6469 { error ("no body nor ';' separates two class, struct or union declarations"); ;
6470 break;}
6471 case 490:
6472 #line 2158 "parse.y"
6473 { yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6474 break;}
6475 case 491:
6476 #line 2163 "parse.y"
6478 current_aggr = yyvsp[-1].ttype;
6479 yyval.ttype = yyvsp[0].ttype;
6481 break;}
6482 case 492:
6483 #line 2171 "parse.y"
6484 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6485 break;}
6486 case 493:
6487 #line 2173 "parse.y"
6488 { yyungetc ('{', 1); ;
6489 break;}
6490 case 494:
6491 #line 2175 "parse.y"
6492 { yyungetc (':', 1); ;
6493 break;}
6494 case 495:
6495 #line 2180 "parse.y"
6497 current_aggr = yyvsp[-2].ttype;
6498 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6499 yyval.ftype.new_type_flag = 1;
6501 break;}
6502 case 496:
6503 #line 2186 "parse.y"
6505 current_aggr = yyvsp[-3].ttype;
6506 yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6507 yyval.ftype.new_type_flag = 1;
6509 break;}
6510 case 497:
6511 #line 2192 "parse.y"
6513 current_aggr = yyvsp[-2].ttype;
6514 yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
6515 yyval.ftype.new_type_flag = 1;
6517 break;}
6518 case 498:
6519 #line 2198 "parse.y"
6521 current_aggr = yyvsp[-1].ttype;
6522 yyval.ftype.t = yyvsp[0].ttype;
6523 yyval.ftype.new_type_flag = 0;
6525 break;}
6526 case 499:
6527 #line 2204 "parse.y"
6529 current_aggr = yyvsp[-2].ttype;
6530 yyval.ftype.t = yyvsp[0].ttype;
6531 if (CP_DECL_CONTEXT (yyval.ftype.t))
6532 push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
6533 yyval.ftype.new_type_flag = 1;
6535 break;}
6536 case 500:
6537 #line 2215 "parse.y"
6539 yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1);
6540 yyval.ftype.new_type_flag = 0;
6542 break;}
6543 case 501:
6544 #line 2220 "parse.y"
6545 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
6546 break;}
6547 case 502:
6548 #line 2224 "parse.y"
6550 yyval.ftype.t = yyvsp[-1].ttype;
6551 yyval.ftype.new_type_flag = 0;
6552 if (yyvsp[0].ttype)
6553 xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
6555 break;}
6556 case 503:
6557 #line 2232 "parse.y"
6559 if (yyvsp[-1].ftype.t != error_mark_node)
6561 yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
6562 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
6563 if (current_aggr == union_type_node
6564 && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
6565 cp_pedwarn ("`union' tag used in declaring `%#T'",
6566 yyval.ftype.t);
6567 else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
6568 && current_aggr != union_type_node)
6569 cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
6570 else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
6571 /* We might be specializing a template with a different
6572 class-key; deal. */
6573 CLASSTYPE_DECLARED_CLASS (yyval.ftype.t)
6574 = (current_aggr == class_type_node);
6575 if (yyvsp[0].ttype)
6577 maybe_process_partial_specialization (yyval.ftype.t);
6578 xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype);
6582 break;}
6583 case 504:
6584 #line 2260 "parse.y"
6585 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
6586 yyungetc ('{', 1); ;
6587 break;}
6588 case 505:
6589 #line 2270 "parse.y"
6591 yyval.ftype.t = yyvsp[0].ttype;
6592 yyval.ftype.new_type_flag = 0;
6594 break;}
6595 case 507:
6596 #line 2279 "parse.y"
6597 { yyval.ttype = NULL_TREE; ;
6598 break;}
6599 case 508:
6600 #line 2281 "parse.y"
6601 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
6602 break;}
6603 case 509:
6604 #line 2283 "parse.y"
6605 { yyval.ttype = yyvsp[0].ttype; ;
6606 break;}
6607 case 511:
6608 #line 2289 "parse.y"
6609 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
6610 break;}
6611 case 512:
6612 #line 2294 "parse.y"
6613 { yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype); ;
6614 break;}
6615 case 513:
6616 #line 2296 "parse.y"
6617 { yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6618 break;}
6619 case 514:
6620 #line 2301 "parse.y"
6621 { if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6622 break;}
6623 case 517:
6624 #line 2308 "parse.y"
6625 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6626 cp_error ("`%D' access", yyvsp[-1].ttype);
6627 yyval.ttype = access_default_virtual_node; ;
6628 break;}
6629 case 518:
6630 #line 2312 "parse.y"
6632 if (yyvsp[-2].ttype != access_default_virtual_node)
6633 error ("multiple access specifiers");
6634 else if (yyvsp[-1].ttype == access_public_node)
6635 yyval.ttype = access_public_virtual_node;
6636 else if (yyvsp[-1].ttype == access_protected_node)
6637 yyval.ttype = access_protected_virtual_node;
6638 else /* $2 == access_private_node */
6639 yyval.ttype = access_private_virtual_node;
6641 break;}
6642 case 519:
6643 #line 2323 "parse.y"
6644 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6645 cp_error ("`%D' access", yyvsp[-1].ttype);
6646 else if (yyval.ttype == access_public_node)
6647 yyval.ttype = access_public_virtual_node;
6648 else if (yyval.ttype == access_protected_node)
6649 yyval.ttype = access_protected_virtual_node;
6650 else if (yyval.ttype == access_private_node)
6651 yyval.ttype = access_private_virtual_node;
6652 else
6653 error ("multiple `virtual' specifiers");
6655 break;}
6656 case 524:
6657 #line 2344 "parse.y"
6659 current_access_specifier = yyvsp[-1].ttype;
6661 break;}
6662 case 525:
6663 #line 2353 "parse.y"
6665 finish_member_declaration (yyvsp[0].ttype);
6667 break;}
6668 case 526:
6669 #line 2357 "parse.y"
6671 finish_member_declaration (yyvsp[0].ttype);
6673 break;}
6674 case 528:
6675 #line 2365 "parse.y"
6676 { error ("missing ';' before right brace");
6677 yyungetc ('}', 0); ;
6678 break;}
6679 case 529:
6680 #line 2370 "parse.y"
6681 { yyval.ttype = finish_method (yyval.ttype); ;
6682 break;}
6683 case 530:
6684 #line 2372 "parse.y"
6685 { yyval.ttype = finish_method (yyval.ttype); ;
6686 break;}
6687 case 531:
6688 #line 2374 "parse.y"
6689 { yyval.ttype = finish_method (yyval.ttype); ;
6690 break;}
6691 case 532:
6692 #line 2376 "parse.y"
6693 { yyval.ttype = finish_method (yyval.ttype); ;
6694 break;}
6695 case 533:
6696 #line 2378 "parse.y"
6697 { yyval.ttype = NULL_TREE; ;
6698 break;}
6699 case 534:
6700 #line 2380 "parse.y"
6701 { yyval.ttype = yyvsp[0].ttype;
6702 pedantic = yyvsp[-1].itype; ;
6703 break;}
6704 case 535:
6705 #line 2383 "parse.y"
6707 if (yyvsp[0].ttype)
6708 yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
6709 else
6710 /* The component was already processed. */
6711 yyval.ttype = NULL_TREE;
6713 finish_template_decl (yyvsp[-1].ttype);
6715 break;}
6716 case 536:
6717 #line 2393 "parse.y"
6719 yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t);
6720 finish_template_decl (yyvsp[-2].ttype);
6722 break;}
6723 case 537:
6724 #line 2404 "parse.y"
6726 /* Most of the productions for component_decl only
6727 allow the creation of one new member, so we call
6728 finish_member_declaration in component_decl_list.
6729 For this rule and the next, however, there can be
6730 more than one member, e.g.:
6732 int i, j;
6734 and we need the first member to be fully
6735 registered before the second is processed.
6736 Therefore, the rules for components take care of
6737 this processing. To avoid registering the
6738 components more than once, we send NULL_TREE up
6739 here; that lets finish_member_declaration know
6740 that there is nothing to do. */
6741 if (!yyvsp[0].itype)
6742 grok_x_components (yyvsp[-1].ftype.t);
6743 yyval.ttype = NULL_TREE;
6745 break;}
6746 case 538:
6747 #line 2425 "parse.y"
6749 if (!yyvsp[0].itype)
6750 grok_x_components (yyvsp[-1].ttype);
6751 yyval.ttype = NULL_TREE;
6753 break;}
6754 case 539:
6755 #line 2431 "parse.y"
6756 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6757 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6758 break;}
6759 case 540:
6760 #line 2434 "parse.y"
6761 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6762 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6763 break;}
6764 case 541:
6765 #line 2437 "parse.y"
6766 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6767 break;}
6768 case 542:
6769 #line 2439 "parse.y"
6770 { yyval.ttype = NULL_TREE; ;
6771 break;}
6772 case 543:
6773 #line 2450 "parse.y"
6774 { tree specs, attrs;
6775 split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6776 yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6777 build_tree_list (yyvsp[-1].ttype, attrs)); ;
6778 break;}
6779 case 544:
6780 #line 2455 "parse.y"
6781 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6782 build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6783 break;}
6784 case 545:
6785 #line 2458 "parse.y"
6786 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6787 break;}
6788 case 546:
6789 #line 2464 "parse.y"
6790 { yyval.itype = 0; ;
6791 break;}
6792 case 547:
6793 #line 2466 "parse.y"
6795 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6796 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6797 finish_member_declaration (yyvsp[0].ttype);
6798 yyval.itype = 1;
6800 break;}
6801 case 548:
6802 #line 2473 "parse.y"
6804 check_multiple_declarators ();
6805 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6806 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6807 finish_member_declaration (yyvsp[0].ttype);
6808 yyval.itype = 2;
6810 break;}
6811 case 549:
6812 #line 2484 "parse.y"
6813 { yyval.itype = 0; ;
6814 break;}
6815 case 550:
6816 #line 2486 "parse.y"
6818 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6819 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6820 finish_member_declaration (yyvsp[0].ttype);
6821 yyval.itype = 1;
6823 break;}
6824 case 551:
6825 #line 2493 "parse.y"
6827 check_multiple_declarators ();
6828 if (PROCESSING_REAL_TEMPLATE_DECL_P ())
6829 yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
6830 finish_member_declaration (yyvsp[0].ttype);
6831 yyval.itype = 2;
6833 break;}
6834 case 556:
6835 #line 2514 "parse.y"
6836 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6837 &prefix_attributes);
6838 yyvsp[-4].ttype = current_declspecs;
6839 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6840 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6841 break;}
6842 case 557:
6843 #line 2520 "parse.y"
6844 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6845 &prefix_attributes);
6846 yyvsp[-4].ttype = current_declspecs;
6847 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6848 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6849 break;}
6850 case 558:
6851 #line 2529 "parse.y"
6852 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6853 &prefix_attributes);
6854 yyvsp[-4].ttype = current_declspecs;
6855 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6856 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6857 break;}
6858 case 559:
6859 #line 2535 "parse.y"
6860 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6861 &prefix_attributes);
6862 yyvsp[-4].ttype = current_declspecs;
6863 yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6864 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6865 break;}
6866 case 560:
6867 #line 2541 "parse.y"
6868 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6869 &prefix_attributes);
6870 yyvsp[-4].ttype = current_declspecs;
6871 yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6872 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6873 break;}
6874 case 561:
6875 #line 2547 "parse.y"
6876 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6877 &prefix_attributes);
6878 yyvsp[-3].ttype = current_declspecs;
6879 yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6880 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6881 break;}
6882 case 562:
6883 #line 2556 "parse.y"
6884 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6885 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6886 break;}
6887 case 563:
6888 #line 2559 "parse.y"
6889 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6890 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6891 break;}
6892 case 564:
6893 #line 2565 "parse.y"
6894 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6895 build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6896 break;}
6897 case 565:
6898 #line 2568 "parse.y"
6899 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6900 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6901 break;}
6902 case 566:
6903 #line 2571 "parse.y"
6904 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6905 cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6906 break;}
6907 case 571:
6908 #line 2591 "parse.y"
6909 { build_enumerator (yyvsp[0].ttype, NULL_TREE, current_enum_type); ;
6910 break;}
6911 case 572:
6912 #line 2593 "parse.y"
6913 { build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype, current_enum_type); ;
6914 break;}
6915 case 573:
6916 #line 2599 "parse.y"
6917 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
6918 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6919 break;}
6920 case 574:
6921 #line 2602 "parse.y"
6922 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
6923 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6924 break;}
6925 case 575:
6926 #line 2607 "parse.y"
6928 if (pedantic)
6929 pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6930 yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6931 yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6932 yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6934 break;}
6935 case 576:
6936 #line 2618 "parse.y"
6937 { yyval.ttype = NULL_TREE; ;
6938 break;}
6939 case 577:
6940 #line 2620 "parse.y"
6941 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6942 break;}
6943 case 578:
6944 #line 2625 "parse.y"
6945 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
6946 yyval.ftype.new_type_flag = 0; ;
6947 break;}
6948 case 579:
6949 #line 2628 "parse.y"
6950 { yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
6951 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6952 break;}
6953 case 580:
6954 #line 2638 "parse.y"
6955 { yyval.ttype = yyvsp[-1].ttype; ;
6956 break;}
6957 case 581:
6958 #line 2640 "parse.y"
6959 { yyval.ttype = yyvsp[-1].ttype; ;
6960 break;}
6961 case 582:
6962 #line 2642 "parse.y"
6963 { yyval.ttype = empty_parms (); ;
6964 break;}
6965 case 583:
6966 #line 2644 "parse.y"
6967 { yyval.ttype = NULL_TREE; ;
6968 break;}
6969 case 585:
6970 #line 2652 "parse.y"
6972 /* Provide support for '(' attributes '*' declarator ')'
6973 etc */
6974 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
6976 break;}
6977 case 586:
6978 #line 2662 "parse.y"
6979 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6980 break;}
6981 case 587:
6982 #line 2664 "parse.y"
6983 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6984 break;}
6985 case 588:
6986 #line 2666 "parse.y"
6987 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6988 break;}
6989 case 589:
6990 #line 2668 "parse.y"
6991 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6992 break;}
6993 case 590:
6994 #line 2670 "parse.y"
6995 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6996 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6998 break;}
6999 case 592:
7000 #line 2678 "parse.y"
7001 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7002 break;}
7003 case 593:
7004 #line 2680 "parse.y"
7005 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7006 break;}
7007 case 594:
7008 #line 2682 "parse.y"
7009 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7010 break;}
7011 case 595:
7012 #line 2684 "parse.y"
7013 { yyval.ttype = yyvsp[-1].ttype; ;
7014 break;}
7015 case 596:
7016 #line 2686 "parse.y"
7017 { push_nested_class (yyvsp[-1].ttype, 3);
7018 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
7019 TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
7020 break;}
7021 case 598:
7022 #line 2694 "parse.y"
7024 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7026 yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
7027 maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
7029 else
7030 yyval.ttype = yyvsp[0].ttype;
7032 break;}
7033 case 599:
7034 #line 2704 "parse.y"
7036 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7037 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7038 else
7039 yyval.ttype = yyvsp[0].ttype;
7040 got_scope = NULL_TREE;
7042 break;}
7043 case 602:
7044 #line 2717 "parse.y"
7045 { yyval.ttype = yyvsp[0].ttype; ;
7046 break;}
7047 case 603:
7048 #line 2722 "parse.y"
7049 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
7050 break;}
7051 case 605:
7052 #line 2731 "parse.y"
7054 /* Provide support for '(' attributes '*' declarator ')'
7055 etc */
7056 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7058 break;}
7059 case 606:
7060 #line 2740 "parse.y"
7061 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7062 break;}
7063 case 607:
7064 #line 2742 "parse.y"
7065 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7066 break;}
7067 case 608:
7068 #line 2744 "parse.y"
7069 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7070 break;}
7071 case 609:
7072 #line 2746 "parse.y"
7073 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7074 break;}
7075 case 610:
7076 #line 2748 "parse.y"
7077 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7078 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7080 break;}
7081 case 612:
7082 #line 2756 "parse.y"
7083 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7084 break;}
7085 case 613:
7086 #line 2758 "parse.y"
7087 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7088 break;}
7089 case 614:
7090 #line 2760 "parse.y"
7091 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7092 break;}
7093 case 615:
7094 #line 2762 "parse.y"
7095 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7096 break;}
7097 case 616:
7098 #line 2764 "parse.y"
7099 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7100 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7102 break;}
7103 case 618:
7104 #line 2772 "parse.y"
7105 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7106 break;}
7107 case 619:
7108 #line 2774 "parse.y"
7109 { yyval.ttype = yyvsp[-1].ttype; ;
7110 break;}
7111 case 620:
7112 #line 2776 "parse.y"
7113 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7114 break;}
7115 case 621:
7116 #line 2778 "parse.y"
7117 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7118 break;}
7119 case 622:
7120 #line 2780 "parse.y"
7121 { enter_scope_of (yyvsp[0].ttype); ;
7122 break;}
7123 case 623:
7124 #line 2782 "parse.y"
7125 { got_scope = NULL_TREE;
7126 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
7127 enter_scope_of (yyval.ttype);
7129 break;}
7130 case 624:
7131 #line 2790 "parse.y"
7132 { got_scope = NULL_TREE;
7133 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7134 break;}
7135 case 625:
7136 #line 2793 "parse.y"
7137 { got_scope = NULL_TREE;
7138 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7139 break;}
7140 case 626:
7141 #line 2799 "parse.y"
7142 { got_scope = NULL_TREE;
7143 yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
7144 break;}
7145 case 627:
7146 #line 2802 "parse.y"
7147 { got_scope = NULL_TREE;
7148 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7149 break;}
7150 case 629:
7151 #line 2809 "parse.y"
7152 { yyval.ttype = yyvsp[0].ttype; ;
7153 break;}
7154 case 630:
7155 #line 2814 "parse.y"
7156 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7157 break;}
7158 case 631:
7159 #line 2816 "parse.y"
7160 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
7161 break;}
7162 case 632:
7163 #line 2818 "parse.y"
7164 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7165 break;}
7166 case 637:
7167 #line 2829 "parse.y"
7168 { yyval.ttype = yyvsp[0].ttype; ;
7169 break;}
7170 case 638:
7171 #line 2831 "parse.y"
7172 { got_scope = yyval.ttype
7173 = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7174 break;}
7175 case 639:
7176 #line 2839 "parse.y"
7178 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7180 yyval.ttype = lastiddecl;
7181 maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
7183 got_scope = yyval.ttype =
7184 complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
7186 break;}
7187 case 640:
7188 #line 2849 "parse.y"
7190 if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
7191 yyval.ttype = lastiddecl;
7192 got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
7194 break;}
7195 case 641:
7196 #line 2855 "parse.y"
7198 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7199 yyval.ttype = lastiddecl;
7200 got_scope = yyval.ttype;
7202 break;}
7203 case 642:
7204 #line 2861 "parse.y"
7205 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
7206 break;}
7207 case 644:
7208 #line 2877 "parse.y"
7209 { yyval.ttype = yyvsp[0].ttype; ;
7210 break;}
7211 case 645:
7212 #line 2882 "parse.y"
7214 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7215 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1);
7216 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7217 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7218 else
7220 yyval.ttype = yyvsp[0].ttype;
7221 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7222 yyval.ttype = TREE_TYPE (yyval.ttype);
7225 break;}
7226 case 646:
7227 #line 2895 "parse.y"
7228 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
7229 break;}
7230 case 647:
7231 #line 2897 "parse.y"
7232 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1); ;
7233 break;}
7234 case 648:
7235 #line 2899 "parse.y"
7236 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype, /*complain=*/1); ;
7237 break;}
7238 case 649:
7239 #line 2904 "parse.y"
7241 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7242 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7244 break;}
7245 case 650:
7246 #line 2909 "parse.y"
7248 if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
7249 yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype, /*complain=*/1);
7250 else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7251 cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
7252 else
7254 yyval.ttype = yyvsp[0].ttype;
7255 if (TREE_CODE (yyval.ttype) == TYPE_DECL)
7256 yyval.ttype = TREE_TYPE (yyval.ttype);
7259 break;}
7260 case 651:
7261 #line 2922 "parse.y"
7262 { got_scope = yyval.ttype
7263 = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7264 break;}
7265 case 652:
7266 #line 2925 "parse.y"
7267 { got_scope = yyval.ttype
7268 = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype, /*complain=*/1); ;
7269 break;}
7270 case 653:
7271 #line 2931 "parse.y"
7273 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7274 yyvsp[-1].ttype = lastiddecl;
7276 /* Retrieve the type for the identifier, which might involve
7277 some computation. */
7278 got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
7280 if (yyval.ttype == error_mark_node)
7281 cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
7283 break;}
7284 case 654:
7285 #line 2943 "parse.y"
7287 if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
7288 yyval.ttype = lastiddecl;
7289 got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
7291 break;}
7292 case 655:
7293 #line 2949 "parse.y"
7294 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
7295 break;}
7296 case 658:
7297 #line 2953 "parse.y"
7299 if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
7300 yyval.ttype = lastiddecl;
7301 got_scope = yyval.ttype;
7303 break;}
7304 case 659:
7305 #line 2962 "parse.y"
7306 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7307 break;}
7308 case 660:
7309 #line 2967 "parse.y"
7311 if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
7312 yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
7313 else
7314 yyval.ttype = yyvsp[0].ttype;
7315 got_scope = NULL_TREE;
7317 break;}
7318 case 662:
7319 #line 2976 "parse.y"
7320 { yyval.ttype = yyvsp[0].ttype; ;
7321 break;}
7322 case 663:
7323 #line 2981 "parse.y"
7324 { got_scope = NULL_TREE; ;
7325 break;}
7326 case 664:
7327 #line 2983 "parse.y"
7328 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
7329 break;}
7330 case 665:
7331 #line 2990 "parse.y"
7332 { got_scope = void_type_node; ;
7333 break;}
7334 case 666:
7335 #line 2996 "parse.y"
7336 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7337 break;}
7338 case 667:
7339 #line 2998 "parse.y"
7340 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
7341 break;}
7342 case 668:
7343 #line 3000 "parse.y"
7344 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7345 break;}
7346 case 669:
7347 #line 3002 "parse.y"
7348 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
7349 break;}
7350 case 670:
7351 #line 3004 "parse.y"
7352 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7353 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7355 break;}
7356 case 671:
7357 #line 3008 "parse.y"
7358 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7359 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7361 break;}
7362 case 673:
7363 #line 3017 "parse.y"
7364 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7365 break;}
7366 case 674:
7367 #line 3019 "parse.y"
7368 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7369 break;}
7370 case 676:
7371 #line 3025 "parse.y"
7373 /* Provide support for '(' attributes '*' declarator ')'
7374 etc */
7375 yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
7377 break;}
7378 case 677:
7379 #line 3035 "parse.y"
7380 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7381 break;}
7382 case 678:
7383 #line 3037 "parse.y"
7384 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
7385 break;}
7386 case 679:
7387 #line 3039 "parse.y"
7388 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7389 break;}
7390 case 680:
7391 #line 3041 "parse.y"
7392 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
7393 break;}
7394 case 681:
7395 #line 3043 "parse.y"
7396 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7397 break;}
7398 case 682:
7399 #line 3045 "parse.y"
7400 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
7401 break;}
7402 case 683:
7403 #line 3047 "parse.y"
7404 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
7405 break;}
7406 case 684:
7407 #line 3049 "parse.y"
7408 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
7409 break;}
7410 case 685:
7411 #line 3051 "parse.y"
7412 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
7413 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
7415 break;}
7416 case 686:
7417 #line 3055 "parse.y"
7418 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7419 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7421 break;}
7422 case 688:
7423 #line 3064 "parse.y"
7424 { yyval.ttype = yyvsp[-1].ttype; ;
7425 break;}
7426 case 689:
7427 #line 3067 "parse.y"
7428 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7429 break;}
7430 case 690:
7431 #line 3069 "parse.y"
7432 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
7433 break;}
7434 case 691:
7435 #line 3071 "parse.y"
7436 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
7437 break;}
7438 case 692:
7439 #line 3073 "parse.y"
7440 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
7441 break;}
7442 case 693:
7443 #line 3075 "parse.y"
7444 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7445 break;}
7446 case 694:
7447 #line 3077 "parse.y"
7448 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7449 break;}
7450 case 695:
7451 #line 3079 "parse.y"
7452 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
7453 break;}
7454 case 696:
7455 #line 3081 "parse.y"
7456 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
7457 break;}
7458 case 697:
7459 #line 3083 "parse.y"
7460 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
7461 break;}
7462 case 704:
7463 #line 3106 "parse.y"
7464 { if (pedantic)
7465 pedwarn ("ANSI C++ forbids label declarations"); ;
7466 break;}
7467 case 707:
7468 #line 3117 "parse.y"
7470 while (yyvsp[-1].ttype)
7472 finish_label_decl (TREE_VALUE (yyvsp[-1].ttype));
7473 yyvsp[-1].ttype = TREE_CHAIN (yyvsp[-1].ttype);
7476 break;}
7477 case 708:
7478 #line 3130 "parse.y"
7480 break;}
7481 case 710:
7482 #line 3136 "parse.y"
7483 { yyval.ttype = begin_compound_stmt (0); ;
7484 break;}
7485 case 711:
7486 #line 3138 "parse.y"
7487 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7488 break;}
7489 case 712:
7490 #line 3143 "parse.y"
7492 yyval.ttype = begin_if_stmt ();
7493 cond_stmt_keyword = "if";
7495 break;}
7496 case 713:
7497 #line 3148 "parse.y"
7498 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7499 break;}
7500 case 714:
7501 #line 3150 "parse.y"
7502 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
7503 break;}
7504 case 716:
7505 #line 3155 "parse.y"
7506 { yyval.ttype = begin_compound_stmt (0); ;
7507 break;}
7508 case 717:
7509 #line 3157 "parse.y"
7510 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7511 break;}
7512 case 718:
7513 #line 3162 "parse.y"
7515 break;}
7516 case 720:
7517 #line 3168 "parse.y"
7518 { finish_stmt (); ;
7519 break;}
7520 case 721:
7521 #line 3170 "parse.y"
7522 { finish_expr_stmt (yyvsp[-1].ttype); ;
7523 break;}
7524 case 722:
7525 #line 3172 "parse.y"
7526 { begin_else_clause (); ;
7527 break;}
7528 case 723:
7529 #line 3174 "parse.y"
7531 finish_else_clause (yyvsp[-3].ttype);
7532 finish_if_stmt ();
7534 break;}
7535 case 724:
7536 #line 3179 "parse.y"
7537 { finish_if_stmt (); ;
7538 break;}
7539 case 725:
7540 #line 3181 "parse.y"
7542 yyval.ttype = begin_while_stmt ();
7543 cond_stmt_keyword = "while";
7545 break;}
7546 case 726:
7547 #line 3186 "parse.y"
7548 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7549 break;}
7550 case 727:
7551 #line 3188 "parse.y"
7552 { finish_while_stmt (yyvsp[-3].ttype); ;
7553 break;}
7554 case 728:
7555 #line 3190 "parse.y"
7556 { yyval.ttype = begin_do_stmt (); ;
7557 break;}
7558 case 729:
7559 #line 3192 "parse.y"
7561 finish_do_body (yyvsp[-2].ttype);
7562 cond_stmt_keyword = "do";
7564 break;}
7565 case 730:
7566 #line 3197 "parse.y"
7567 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7568 break;}
7569 case 731:
7570 #line 3199 "parse.y"
7571 { yyval.ttype = begin_for_stmt (); ;
7572 break;}
7573 case 732:
7574 #line 3201 "parse.y"
7575 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7576 break;}
7577 case 733:
7578 #line 3203 "parse.y"
7579 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7580 break;}
7581 case 734:
7582 #line 3205 "parse.y"
7583 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7584 break;}
7585 case 735:
7586 #line 3207 "parse.y"
7587 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7588 break;}
7589 case 736:
7590 #line 3209 "parse.y"
7591 { yyval.ttype = begin_switch_stmt (); ;
7592 break;}
7593 case 737:
7594 #line 3211 "parse.y"
7595 { finish_switch_cond (yyvsp[-1].ttype, yyvsp[-3].ttype); ;
7596 break;}
7597 case 738:
7598 #line 3213 "parse.y"
7599 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-5].ttype); ;
7600 break;}
7601 case 739:
7602 #line 3215 "parse.y"
7603 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7604 break;}
7605 case 741:
7606 #line 3218 "parse.y"
7607 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7608 break;}
7609 case 743:
7610 #line 3221 "parse.y"
7611 { finish_case_label (NULL_TREE, NULL_TREE); ;
7612 break;}
7613 case 745:
7614 #line 3224 "parse.y"
7615 { finish_break_stmt (); ;
7616 break;}
7617 case 746:
7618 #line 3226 "parse.y"
7619 { finish_continue_stmt (); ;
7620 break;}
7621 case 747:
7622 #line 3228 "parse.y"
7623 { finish_return_stmt (NULL_TREE); ;
7624 break;}
7625 case 748:
7626 #line 3230 "parse.y"
7627 { finish_return_stmt (yyvsp[-1].ttype); ;
7628 break;}
7629 case 749:
7630 #line 3232 "parse.y"
7632 finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7633 NULL_TREE);
7635 break;}
7636 case 750:
7637 #line 3238 "parse.y"
7639 finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7640 NULL_TREE);
7642 break;}
7643 case 751:
7644 #line 3244 "parse.y"
7645 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7646 break;}
7647 case 752:
7648 #line 3248 "parse.y"
7649 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7650 break;}
7651 case 753:
7652 #line 3250 "parse.y"
7654 if (pedantic)
7655 pedwarn ("ANSI C++ forbids computed gotos");
7656 finish_goto_stmt (yyvsp[-1].ttype);
7658 break;}
7659 case 754:
7660 #line 3256 "parse.y"
7661 { finish_goto_stmt (yyvsp[-1].ttype); ;
7662 break;}
7663 case 756:
7664 #line 3259 "parse.y"
7665 { error ("label must be followed by statement");
7666 yyungetc ('}', 0); ;
7667 break;}
7668 case 757:
7669 #line 3262 "parse.y"
7670 { finish_stmt (); ;
7671 break;}
7672 case 760:
7673 #line 3266 "parse.y"
7674 { do_local_using_decl (yyvsp[0].ttype); ;
7675 break;}
7676 case 762:
7677 #line 3272 "parse.y"
7678 { yyval.ttype = begin_function_try_block (); ;
7679 break;}
7680 case 763:
7681 #line 3274 "parse.y"
7682 { finish_function_try_block (yyvsp[-2].ttype); ;
7683 break;}
7684 case 764:
7685 #line 3276 "parse.y"
7687 finish_function_handler_sequence (yyvsp[-4].ttype);
7688 yyval.itype = yyvsp[-3].itype;
7690 break;}
7691 case 765:
7692 #line 3284 "parse.y"
7693 { yyval.ttype = begin_try_block (); ;
7694 break;}
7695 case 766:
7696 #line 3286 "parse.y"
7697 { finish_try_block (yyvsp[-1].ttype); ;
7698 break;}
7699 case 767:
7700 #line 3288 "parse.y"
7701 { finish_handler_sequence (yyvsp[-3].ttype); ;
7702 break;}
7703 case 770:
7704 #line 3298 "parse.y"
7705 { yyval.ttype = begin_handler(); ;
7706 break;}
7707 case 771:
7708 #line 3300 "parse.y"
7709 { yyval.ttype = finish_handler_parms (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7710 break;}
7711 case 772:
7712 #line 3302 "parse.y"
7713 { finish_handler (yyvsp[-1].ttype, yyvsp[-3].ttype); ;
7714 break;}
7715 case 775:
7716 #line 3312 "parse.y"
7717 { yyval.ttype = NULL_TREE; ;
7718 break;}
7719 case 776:
7720 #line 3328 "parse.y"
7722 check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7723 yyval.ttype = start_handler_parms (TREE_PURPOSE (yyvsp[-1].ftype.t),
7724 TREE_VALUE (yyvsp[-1].ftype.t));
7726 break;}
7727 case 777:
7728 #line 3337 "parse.y"
7729 { finish_label_stmt (yyvsp[-1].ttype); ;
7730 break;}
7731 case 778:
7732 #line 3339 "parse.y"
7733 { finish_label_stmt (yyvsp[-1].ttype); ;
7734 break;}
7735 case 779:
7736 #line 3341 "parse.y"
7737 { finish_label_stmt (yyvsp[-1].ttype); ;
7738 break;}
7739 case 780:
7740 #line 3343 "parse.y"
7741 { finish_label_stmt (yyvsp[-1].ttype); ;
7742 break;}
7743 case 781:
7744 #line 3348 "parse.y"
7745 { finish_expr_stmt (yyvsp[-1].ttype); ;
7746 break;}
7747 case 783:
7748 #line 3351 "parse.y"
7749 { if (pedantic)
7750 pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7752 break;}
7753 case 784:
7754 #line 3360 "parse.y"
7755 { emit_line_note (input_filename, lineno);
7756 yyval.ttype = NULL_TREE; ;
7757 break;}
7758 case 785:
7759 #line 3363 "parse.y"
7760 { emit_line_note (input_filename, lineno); ;
7761 break;}
7762 case 786:
7763 #line 3368 "parse.y"
7764 { yyval.ttype = NULL_TREE; ;
7765 break;}
7766 case 788:
7767 #line 3371 "parse.y"
7768 { yyval.ttype = NULL_TREE; ;
7769 break;}
7770 case 789:
7771 #line 3378 "parse.y"
7772 { yyval.ttype = NULL_TREE; ;
7773 break;}
7774 case 792:
7775 #line 3385 "parse.y"
7776 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7777 break;}
7778 case 793:
7779 #line 3390 "parse.y"
7780 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7781 break;}
7782 case 794:
7783 #line 3395 "parse.y"
7784 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7785 break;}
7786 case 795:
7787 #line 3397 "parse.y"
7788 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7789 break;}
7790 case 796:
7791 #line 3408 "parse.y"
7793 yyval.ttype = empty_parms();
7795 break;}
7796 case 798:
7797 #line 3413 "parse.y"
7798 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7799 check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7800 break;}
7801 case 799:
7802 #line 3421 "parse.y"
7803 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7804 break;}
7805 case 800:
7806 #line 3423 "parse.y"
7807 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7808 break;}
7809 case 801:
7810 #line 3426 "parse.y"
7811 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7812 break;}
7813 case 802:
7814 #line 3428 "parse.y"
7815 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7816 yyvsp[-1].ftype.t), 1); ;
7817 break;}
7818 case 803:
7819 #line 3431 "parse.y"
7820 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7821 break;}
7822 case 804:
7823 #line 3433 "parse.y"
7825 /* This helps us recover from really nasty
7826 parse errors, for example, a missing right
7827 parenthesis. */
7828 yyerror ("possibly missing ')'");
7829 yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7830 yyungetc (':', 0);
7831 yychar = ')';
7833 break;}
7834 case 805:
7835 #line 3443 "parse.y"
7837 /* This helps us recover from really nasty
7838 parse errors, for example, a missing right
7839 parenthesis. */
7840 yyerror ("possibly missing ')'");
7841 yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7842 yyvsp[-1].ftype.t), 0);
7843 yyungetc (':', 0);
7844 yychar = ')';
7846 break;}
7847 case 806:
7848 #line 3458 "parse.y"
7849 { maybe_snarf_defarg (); ;
7850 break;}
7851 case 807:
7852 #line 3460 "parse.y"
7853 { yyval.ttype = yyvsp[0].ttype; ;
7854 break;}
7855 case 810:
7856 #line 3471 "parse.y"
7857 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7858 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7859 break;}
7860 case 811:
7861 #line 3474 "parse.y"
7862 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7863 yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7864 break;}
7865 case 812:
7866 #line 3477 "parse.y"
7867 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7868 yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7869 break;}
7870 case 813:
7871 #line 3480 "parse.y"
7872 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7873 break;}
7874 case 814:
7875 #line 3482 "parse.y"
7876 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7877 break;}
7878 case 816:
7879 #line 3488 "parse.y"
7880 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7881 yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7882 break;}
7883 case 817:
7884 #line 3498 "parse.y"
7885 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7886 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7887 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7888 break;}
7889 case 818:
7890 #line 3502 "parse.y"
7891 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
7892 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7893 break;}
7894 case 819:
7895 #line 3505 "parse.y"
7896 { yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
7897 yyvsp[0].ttype);
7898 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7899 break;}
7900 case 820:
7901 #line 3509 "parse.y"
7902 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7903 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7904 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7905 break;}
7906 case 821:
7907 #line 3513 "parse.y"
7908 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7909 yyval.ftype.t = build_tree_list (specs, NULL_TREE);
7910 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7911 break;}
7912 case 822:
7913 #line 3517 "parse.y"
7914 { tree specs = strip_attrs (yyvsp[-1].ttype);
7915 yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7916 yyval.ftype.new_type_flag = 0; ;
7917 break;}
7918 case 823:
7919 #line 3524 "parse.y"
7920 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7921 yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7922 break;}
7923 case 824:
7924 #line 3527 "parse.y"
7925 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7926 yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7927 break;}
7928 case 827:
7929 #line 3538 "parse.y"
7930 { see_typename (); ;
7931 break;}
7932 case 828:
7933 #line 3543 "parse.y"
7935 error ("type specifier omitted for parameter");
7936 yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7938 break;}
7939 case 829:
7940 #line 3548 "parse.y"
7942 error ("type specifier omitted for parameter");
7943 if (TREE_CODE (yyval.ttype) == SCOPE_REF
7944 && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7945 || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7946 cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype);
7947 yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7949 break;}
7950 case 830:
7951 #line 3560 "parse.y"
7952 { yyval.ttype = NULL_TREE; ;
7953 break;}
7954 case 831:
7955 #line 3562 "parse.y"
7956 { yyval.ttype = yyvsp[-1].ttype; ;
7957 break;}
7958 case 832:
7959 #line 3564 "parse.y"
7960 { yyval.ttype = empty_except_spec; ;
7961 break;}
7962 case 833:
7963 #line 3569 "parse.y"
7965 check_for_new_type ("exception specifier", yyvsp[0].ftype);
7966 yyval.ttype = groktypename (yyvsp[0].ftype.t);
7968 break;}
7969 case 834:
7970 #line 3577 "parse.y"
7971 { yyval.ttype = add_exception_specifier (NULL_TREE, yyvsp[0].ttype, 1); ;
7972 break;}
7973 case 835:
7974 #line 3579 "parse.y"
7975 { yyval.ttype = add_exception_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 1); ;
7976 break;}
7977 case 836:
7978 #line 3584 "parse.y"
7979 { yyval.ttype = NULL_TREE; ;
7980 break;}
7981 case 837:
7982 #line 3586 "parse.y"
7983 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7984 break;}
7985 case 838:
7986 #line 3588 "parse.y"
7987 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7988 break;}
7989 case 839:
7990 #line 3590 "parse.y"
7991 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7992 yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7994 break;}
7995 case 840:
7996 #line 3597 "parse.y"
7997 { got_scope = NULL_TREE; ;
7998 break;}
7999 case 841:
8000 #line 3602 "parse.y"
8001 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
8002 break;}
8003 case 842:
8004 #line 3604 "parse.y"
8005 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
8006 break;}
8007 case 843:
8008 #line 3606 "parse.y"
8009 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
8010 break;}
8011 case 844:
8012 #line 3608 "parse.y"
8013 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
8014 break;}
8015 case 845:
8016 #line 3610 "parse.y"
8017 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
8018 break;}
8019 case 846:
8020 #line 3612 "parse.y"
8021 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
8022 break;}
8023 case 847:
8024 #line 3614 "parse.y"
8025 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
8026 break;}
8027 case 848:
8028 #line 3616 "parse.y"
8029 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
8030 break;}
8031 case 849:
8032 #line 3618 "parse.y"
8033 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
8034 break;}
8035 case 850:
8036 #line 3620 "parse.y"
8037 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
8038 break;}
8039 case 851:
8040 #line 3622 "parse.y"
8041 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8042 break;}
8043 case 852:
8044 #line 3624 "parse.y"
8045 { yyval.ttype = ansi_opname[LT_EXPR]; ;
8046 break;}
8047 case 853:
8048 #line 3626 "parse.y"
8049 { yyval.ttype = ansi_opname[GT_EXPR]; ;
8050 break;}
8051 case 854:
8052 #line 3628 "parse.y"
8053 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8054 break;}
8055 case 855:
8056 #line 3630 "parse.y"
8057 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
8058 break;}
8059 case 856:
8060 #line 3632 "parse.y"
8061 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
8062 break;}
8063 case 857:
8064 #line 3634 "parse.y"
8065 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8066 break;}
8067 case 858:
8068 #line 3636 "parse.y"
8069 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8070 break;}
8071 case 859:
8072 #line 3638 "parse.y"
8073 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
8074 break;}
8075 case 860:
8076 #line 3640 "parse.y"
8077 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
8078 break;}
8079 case 861:
8080 #line 3642 "parse.y"
8081 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
8082 break;}
8083 case 862:
8084 #line 3644 "parse.y"
8085 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
8086 break;}
8087 case 863:
8088 #line 3646 "parse.y"
8089 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
8090 break;}
8091 case 864:
8092 #line 3648 "parse.y"
8093 { yyval.ttype = ansi_opname[COND_EXPR]; ;
8094 break;}
8095 case 865:
8096 #line 3650 "parse.y"
8097 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
8098 break;}
8099 case 866:
8100 #line 3652 "parse.y"
8101 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
8102 break;}
8103 case 867:
8104 #line 3654 "parse.y"
8105 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
8106 break;}
8107 case 868:
8108 #line 3656 "parse.y"
8109 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
8110 break;}
8111 case 869:
8112 #line 3658 "parse.y"
8113 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
8114 break;}
8115 case 870:
8116 #line 3660 "parse.y"
8117 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
8118 break;}
8119 case 871:
8120 #line 3662 "parse.y"
8121 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
8122 break;}
8123 case 872:
8124 #line 3664 "parse.y"
8125 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
8126 break;}
8127 case 873:
8128 #line 3666 "parse.y"
8129 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
8130 break;}
8131 case 874:
8132 #line 3669 "parse.y"
8133 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
8134 break;}
8135 case 875:
8136 #line 3671 "parse.y"
8137 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
8138 break;}
8140 /* the action file gets copied in in place of this dollarsign */
8141 #line 542 "/usr/lib/bison.simple"
8143 yyvsp -= yylen;
8144 yyssp -= yylen;
8145 #ifdef YYLSP_NEEDED
8146 yylsp -= yylen;
8147 #endif
8149 #if YYDEBUG != 0
8150 if (yydebug)
8152 short *ssp1 = yyss - 1;
8153 fprintf (stderr, "state stack now");
8154 while (ssp1 != yyssp)
8155 fprintf (stderr, " %d", *++ssp1);
8156 fprintf (stderr, "\n");
8158 #endif
8160 *++yyvsp = yyval;
8162 #ifdef YYLSP_NEEDED
8163 yylsp++;
8164 if (yylen == 0)
8166 yylsp->first_line = yylloc.first_line;
8167 yylsp->first_column = yylloc.first_column;
8168 yylsp->last_line = (yylsp-1)->last_line;
8169 yylsp->last_column = (yylsp-1)->last_column;
8170 yylsp->text = 0;
8172 else
8174 yylsp->last_line = (yylsp+yylen-1)->last_line;
8175 yylsp->last_column = (yylsp+yylen-1)->last_column;
8177 #endif
8179 /* Now "shift" the result of the reduction.
8180 Determine what state that goes to,
8181 based on the state we popped back to
8182 and the rule number reduced by. */
8184 yyn = yyr1[yyn];
8186 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
8187 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
8188 yystate = yytable[yystate];
8189 else
8190 yystate = yydefgoto[yyn - YYNTBASE];
8192 goto yynewstate;
8194 yyerrlab: /* here on detecting error */
8196 if (! yyerrstatus)
8197 /* If not already recovering from an error, report this error. */
8199 ++yynerrs;
8201 #ifdef YYERROR_VERBOSE
8202 yyn = yypact[yystate];
8204 if (yyn > YYFLAG && yyn < YYLAST)
8206 int size = 0;
8207 char *msg;
8208 int x, count;
8210 count = 0;
8211 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
8212 for (x = (yyn < 0 ? -yyn : 0);
8213 x < (sizeof(yytname) / sizeof(char *)); x++)
8214 if (yycheck[x + yyn] == x)
8215 size += strlen(yytname[x]) + 15, count++;
8216 msg = (char *) malloc(size + 15);
8217 if (msg != 0)
8219 strcpy(msg, "parse error");
8221 if (count < 5)
8223 count = 0;
8224 for (x = (yyn < 0 ? -yyn : 0);
8225 x < (sizeof(yytname) / sizeof(char *)); x++)
8226 if (yycheck[x + yyn] == x)
8228 strcat(msg, count == 0 ? ", expecting `" : " or `");
8229 strcat(msg, yytname[x]);
8230 strcat(msg, "'");
8231 count++;
8234 yyerror(msg);
8235 free(msg);
8237 else
8238 yyerror ("parse error; also virtual memory exceeded");
8240 else
8241 #endif /* YYERROR_VERBOSE */
8242 yyerror("parse error");
8245 goto yyerrlab1;
8246 yyerrlab1: /* here on error raised explicitly by an action */
8248 if (yyerrstatus == 3)
8250 /* if just tried and failed to reuse lookahead token after an error, discard it. */
8252 /* return failure if at end of input */
8253 if (yychar == YYEOF)
8254 YYABORT;
8256 #if YYDEBUG != 0
8257 if (yydebug)
8258 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
8259 #endif
8261 yychar = YYEMPTY;
8264 /* Else will try to reuse lookahead token
8265 after shifting the error token. */
8267 yyerrstatus = 3; /* Each real token shifted decrements this */
8269 goto yyerrhandle;
8271 yyerrdefault: /* current state does not do anything special for the error token. */
8273 #if 0
8274 /* This is wrong; only states that explicitly want error tokens
8275 should shift them. */
8276 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
8277 if (yyn) goto yydefault;
8278 #endif
8280 yyerrpop: /* pop the current state because it cannot handle the error token */
8282 if (yyssp == yyss) YYABORT;
8283 yyvsp--;
8284 yystate = *--yyssp;
8285 #ifdef YYLSP_NEEDED
8286 yylsp--;
8287 #endif
8289 #if YYDEBUG != 0
8290 if (yydebug)
8292 short *ssp1 = yyss - 1;
8293 fprintf (stderr, "Error: state stack now");
8294 while (ssp1 != yyssp)
8295 fprintf (stderr, " %d", *++ssp1);
8296 fprintf (stderr, "\n");
8298 #endif
8300 yyerrhandle:
8302 yyn = yypact[yystate];
8303 if (yyn == YYFLAG)
8304 goto yyerrdefault;
8306 yyn += YYTERROR;
8307 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
8308 goto yyerrdefault;
8310 yyn = yytable[yyn];
8311 if (yyn < 0)
8313 if (yyn == YYFLAG)
8314 goto yyerrpop;
8315 yyn = -yyn;
8316 goto yyreduce;
8318 else if (yyn == 0)
8319 goto yyerrpop;
8321 if (yyn == YYFINAL)
8322 YYACCEPT;
8324 #if YYDEBUG != 0
8325 if (yydebug)
8326 fprintf(stderr, "Shifting error token, ");
8327 #endif
8329 *++yyvsp = yylval;
8330 #ifdef YYLSP_NEEDED
8331 *++yylsp = yylloc;
8332 #endif
8334 yystate = yyn;
8335 goto yynewstate;
8337 yyacceptlab:
8338 /* YYACCEPT comes here. */
8339 if (yyfree_stacks)
8341 free (yyss);
8342 free (yyvs);
8343 #ifdef YYLSP_NEEDED
8344 free (yyls);
8345 #endif
8347 return 0;
8349 yyabortlab:
8350 /* YYABORT comes here. */
8351 if (yyfree_stacks)
8353 free (yyss);
8354 free (yyvs);
8355 #ifdef YYLSP_NEEDED
8356 free (yyls);
8357 #endif
8359 return 1;
8361 #line 3674 "parse.y"
8364 #ifdef SPEW_DEBUG
8365 const char *
8366 debug_yytranslate (value)
8367 int value;
8369 return yytname[YYTRANSLATE (value)];
8372 #endif