Warning fixes:
[platform/upstream/gcc.git] / gcc / cp / parse.c
1
2 /*  A Bison parser, made from parse.y
3  by  GNU Bison version 1.25
4   */
5
6 #define YYBISON 1  /* Identify Bison output.  */
7
8 #define IDENTIFIER      258
9 #define TYPENAME        259
10 #define SELFNAME        260
11 #define PFUNCNAME       261
12 #define SCSPEC  262
13 #define TYPESPEC        263
14 #define CV_QUALIFIER    264
15 #define CONSTANT        265
16 #define STRING  266
17 #define ELLIPSIS        267
18 #define SIZEOF  268
19 #define ENUM    269
20 #define IF      270
21 #define ELSE    271
22 #define WHILE   272
23 #define DO      273
24 #define FOR     274
25 #define SWITCH  275
26 #define CASE    276
27 #define DEFAULT 277
28 #define BREAK   278
29 #define CONTINUE        279
30 #define RETURN  280
31 #define GOTO    281
32 #define ASM_KEYWORD     282
33 #define TYPEOF  283
34 #define ALIGNOF 284
35 #define SIGOF   285
36 #define ATTRIBUTE       286
37 #define EXTENSION       287
38 #define LABEL   288
39 #define REALPART        289
40 #define IMAGPART        290
41 #define AGGR    291
42 #define VISSPEC 292
43 #define DELETE  293
44 #define NEW     294
45 #define THIS    295
46 #define OPERATOR        296
47 #define CXX_TRUE        297
48 #define CXX_FALSE       298
49 #define NAMESPACE       299
50 #define TYPENAME_KEYWORD        300
51 #define USING   301
52 #define LEFT_RIGHT      302
53 #define TEMPLATE        303
54 #define TYPEID  304
55 #define DYNAMIC_CAST    305
56 #define STATIC_CAST     306
57 #define REINTERPRET_CAST        307
58 #define CONST_CAST      308
59 #define SCOPE   309
60 #define EMPTY   310
61 #define PTYPENAME       311
62 #define NSNAME  312
63 #define THROW   313
64 #define ASSIGN  314
65 #define OROR    315
66 #define ANDAND  316
67 #define MIN_MAX 317
68 #define EQCOMPARE       318
69 #define ARITHCOMPARE    319
70 #define LSHIFT  320
71 #define RSHIFT  321
72 #define POINTSAT_STAR   322
73 #define DOT_STAR        323
74 #define UNARY   324
75 #define PLUSPLUS        325
76 #define MINUSMINUS      326
77 #define HYPERUNARY      327
78 #define PAREN_STAR_PAREN        328
79 #define POINTSAT        329
80 #define TRY     330
81 #define CATCH   331
82 #define PRE_PARSED_FUNCTION_DECL        332
83 #define EXTERN_LANG_STRING      333
84 #define ALL     334
85 #define PRE_PARSED_CLASS_DECL   335
86 #define DEFARG  336
87 #define DEFARG_MARKER   337
88 #define TYPENAME_DEFN   338
89 #define IDENTIFIER_DEFN 339
90 #define PTYPENAME_DEFN  340
91 #define END_OF_LINE     341
92 #define END_OF_SAVED_INPUT      342
93
94 #line 29 "parse.y"
95
96 /* Cause the `yydebug' variable to be defined.  */
97 #define YYDEBUG 1
98
99 #include "config.h"
100
101 #include "system.h"
102
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
112 /* Since parsers are distinct for each language, put the language string
113    definition here.  (fnf) */
114 char *language_string = "GNU C++";
115
116 extern tree void_list_node;
117 extern struct obstack permanent_obstack;
118
119 extern int end_of_file;
120
121 /* Like YYERROR but do call yyerror.  */
122 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
123
124 #define OP0(NODE) (TREE_OPERAND (NODE, 0))
125 #define OP1(NODE) (TREE_OPERAND (NODE, 1))
126
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 char *cond_stmt_keyword;
130
131 static tree empty_parms PROTO((void));
132
133 /* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
134 int have_extern_spec;
135 int used_extern_spec;
136
137 /* Cons up an empty parameter list.  */
138 #ifdef __GNUC__
139 __inline
140 #endif
141 static tree
142 empty_parms ()
143 {
144   tree parms;
145
146   if (strict_prototype
147       || current_class_type != NULL)
148     parms = void_list_node;
149   else
150     parms = NULL_TREE;
151   return parms;
152 }
153
154
155 #line 91 "parse.y"
156 typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
157 #line 280 "parse.y"
158
159 /* List of types and structure classes of the current declaration.  */
160 static tree current_declspecs = NULL_TREE;
161 /* List of prefix attributes in effect.
162    Prefix attributes are parsed by the reserved_declspecs and declmods
163    rules.  They create a list that contains *both* declspecs and attrs.  */
164 /* ??? It is not clear yet that all cases where an attribute can now appear in
165    a declspec list have been updated.  */
166 static tree prefix_attributes = NULL_TREE;
167
168 /* When defining an aggregate, this is the most recent one being defined.  */
169 static tree current_aggr;
170
171 /* Tell yyparse how to print a token's value, if yydebug is set.  */
172
173 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
174 extern void yyprint                     PROTO((FILE *, int, YYSTYPE));
175 extern tree combine_strings             PROTO((tree));
176
177 static int
178 parse_decl(declarator, specs_attrs, attributes, initialized, decl)
179   tree declarator;
180   tree specs_attrs;
181   tree attributes;
182   int initialized;
183   tree* decl;
184 {
185   int  sm;
186
187   split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
188   if (current_declspecs
189       && TREE_CODE (current_declspecs) != TREE_LIST)
190     current_declspecs = get_decl_list (current_declspecs);
191   if (have_extern_spec && !used_extern_spec)
192     {
193       current_declspecs = decl_tree_cons (NULL_TREE, 
194                                           get_identifier ("extern"), 
195                                           current_declspecs);
196       used_extern_spec = 1;
197     }
198   sm = suspend_momentary ();
199   *decl = start_decl (declarator, current_declspecs, initialized,
200                       attributes, prefix_attributes);
201   return sm;
202 }
203 #include <stdio.h>
204
205 #ifndef __cplusplus
206 #ifndef __STDC__
207 #define const
208 #endif
209 #endif
210
211
212
213 #define YYFINAL         1550
214 #define YYFLAG          -32768
215 #define YYNTBASE        112
216
217 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 386)
218
219 static const char yytranslate[] = {     0,
220      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
221      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
222      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
223      2,     2,   110,     2,     2,     2,    82,    70,     2,    93,
224    108,    80,    78,    59,    79,    92,    81,     2,     2,     2,
225      2,     2,     2,     2,     2,     2,     2,    62,    60,    74,
226     64,    75,    65,     2,     2,     2,     2,     2,     2,     2,
227      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
228      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
229     94,     2,   111,    69,     2,     2,     2,     2,     2,     2,
230      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
231      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
232      2,     2,    58,    68,   109,    88,     2,     2,     2,     2,
233      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
234      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
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,     2,     2,     2,     2,     2,     2,     2,     2,
239      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
240      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
241      2,     2,     2,     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      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
245      2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
246      6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
247     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
248     26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
249     36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
250     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
251     56,    57,    61,    63,    66,    67,    71,    72,    73,    76,
252     77,    83,    84,    85,    86,    87,    89,    90,    91,    95,
253     96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
254    106,   107
255 };
256
257 #if YYDEBUG != 0
258 static const short yyprhs[] = {     0,
259      0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
260     17,    19,    20,    23,    26,    28,    30,    36,    41,    47,
261     52,    53,    60,    61,    67,    73,    76,    81,    84,    87,
262     91,    95,    97,    99,   102,   105,   107,   110,   111,   117,
263    121,   123,   127,   129,   130,   133,   136,   140,   142,   146,
264    148,   152,   154,   158,   161,   164,   167,   171,   175,   178,
265    181,   184,   187,   190,   192,   194,   196,   197,   199,   202,
266    203,   205,   210,   214,   218,   219,   228,   234,   235,   245,
267    252,   253,   262,   268,   269,   279,   286,   289,   292,   294,
268    297,   299,   306,   311,   318,   323,   326,   328,   331,   334,
269    336,   339,   341,   344,   347,   352,   355,   359,   360,   361,
270    363,   367,   370,   374,   376,   381,   384,   389,   392,   397,
271    400,   402,   404,   406,   408,   410,   412,   414,   416,   418,
272    420,   422,   423,   430,   431,   438,   439,   445,   446,   452,
273    453,   461,   462,   470,   471,   478,   479,   486,   487,   488,
274    493,   498,   500,   505,   507,   509,   510,   512,   514,   518,
275    520,   522,   524,   526,   528,   530,   532,   534,   536,   538,
276    542,   544,   548,   549,   551,   553,   554,   562,   564,   566,
277    570,   575,   579,   580,   584,   586,   590,   594,   598,   602,
278    604,   606,   608,   611,   614,   617,   620,   623,   626,   629,
279    634,   637,   642,   645,   649,   653,   658,   664,   671,   678,
280    686,   689,   694,   700,   703,   706,   708,   709,   714,   719,
281    723,   725,   729,   732,   736,   741,   743,   746,   752,   754,
282    758,   762,   766,   770,   774,   778,   782,   786,   790,   794,
283    798,   802,   806,   810,   814,   818,   822,   826,   830,   836,
284    840,   844,   846,   849,   853,   855,   857,   859,   861,   863,
285    864,   870,   876,   882,   888,   894,   896,   898,   900,   902,
286    905,   908,   912,   917,   922,   924,   926,   928,   932,   934,
287    936,   938,   940,   944,   948,   952,   953,   958,   963,   966,
288    971,   974,   977,   979,   984,   986,   994,  1002,  1010,  1018,
289   1023,  1028,  1031,  1034,  1037,  1039,  1044,  1047,  1050,  1056,
290   1060,  1063,  1066,  1072,  1076,  1082,  1086,  1091,  1098,  1101,
291   1103,  1106,  1108,  1111,  1113,  1115,  1117,  1120,  1121,  1124,
292   1127,  1131,  1135,  1139,  1142,  1145,  1148,  1150,  1152,  1154,
293   1157,  1160,  1163,  1166,  1168,  1170,  1172,  1174,  1177,  1180,
294   1184,  1188,  1192,  1197,  1199,  1202,  1205,  1208,  1210,  1212,
295   1214,  1217,  1220,  1223,  1225,  1227,  1230,  1233,  1237,  1239,
296   1242,  1244,  1246,  1248,  1253,  1258,  1263,  1268,  1270,  1272,
297   1274,  1276,  1280,  1282,  1286,  1288,  1292,  1293,  1298,  1299,
298   1306,  1310,  1311,  1316,  1318,  1322,  1326,  1327,  1332,  1336,
299   1337,  1339,  1341,  1344,  1351,  1353,  1357,  1358,  1360,  1365,
300   1372,  1377,  1379,  1381,  1383,  1385,  1387,  1391,  1392,  1395,
301   1397,  1400,  1404,  1409,  1411,  1413,  1417,  1422,  1426,  1432,
302   1434,  1439,  1443,  1447,  1448,  1452,  1456,  1460,  1461,  1464,
303   1467,  1468,  1476,  1481,  1482,  1489,  1493,  1496,  1499,  1502,
304   1503,  1504,  1514,  1516,  1517,  1519,  1520,  1522,  1524,  1527,
305   1530,  1533,  1536,  1539,  1542,  1546,  1551,  1555,  1558,  1562,
306   1563,  1565,  1569,  1572,  1575,  1577,  1579,  1580,  1583,  1587,
307   1589,  1594,  1596,  1600,  1602,  1604,  1609,  1614,  1617,  1620,
308   1624,  1628,  1630,  1631,  1633,  1636,  1641,  1645,  1647,  1650,
309   1653,  1656,  1659,  1662,  1665,  1668,  1670,  1673,  1676,  1680,
310   1683,  1686,  1691,  1696,  1699,  1701,  1707,  1712,  1714,  1715,
311   1717,  1721,  1722,  1724,  1728,  1730,  1732,  1734,  1736,  1741,
312   1746,  1751,  1756,  1761,  1765,  1770,  1775,  1780,  1785,  1789,
313   1791,  1795,  1797,  1801,  1804,  1806,  1814,  1815,  1818,  1820,
314   1823,  1824,  1827,  1832,  1837,  1840,  1845,  1849,  1853,  1856,
315   1859,  1863,  1865,  1867,  1870,  1872,  1874,  1877,  1880,  1885,
316   1890,  1894,  1898,  1901,  1903,  1907,  1911,  1914,  1917,  1921,
317   1923,  1927,  1931,  1934,  1937,  1941,  1943,  1948,  1952,  1957,
318   1961,  1963,  1966,  1969,  1972,  1975,  1978,  1980,  1983,  1988,
319   1993,  1996,  1998,  2000,  2002,  2004,  2007,  2012,  2015,  2018,
320   2021,  2024,  2026,  2029,  2032,  2035,  2038,  2042,  2044,  2047,
321   2051,  2056,  2059,  2062,  2065,  2068,  2071,  2074,  2079,  2082,
322   2084,  2087,  2090,  2094,  2096,  2100,  2103,  2107,  2110,  2113,
323   2117,  2119,  2123,  2128,  2132,  2135,  2138,  2140,  2144,  2147,
324   2150,  2152,  2155,  2159,  2161,  2165,  2167,  2174,  2179,  2184,
325   2188,  2194,  2198,  2202,  2206,  2209,  2211,  2213,  2216,  2219,
326   2222,  2223,  2225,  2227,  2230,  2234,  2236,  2239,  2240,  2244,
327   2245,  2246,  2252,  2254,  2255,  2258,  2260,  2262,  2264,  2267,
328   2268,  2273,  2275,  2276,  2277,  2283,  2284,  2285,  2293,  2294,
329   2295,  2296,  2297,  2310,  2311,  2312,  2320,  2321,  2327,  2328,
330   2336,  2337,  2342,  2345,  2348,  2351,  2355,  2362,  2371,  2382,
331   2395,  2400,  2404,  2407,  2410,  2412,  2414,  2415,  2416,  2423,
332   2424,  2425,  2431,  2433,  2436,  2437,  2438,  2444,  2446,  2448,
333   2452,  2456,  2459,  2462,  2465,  2468,  2471,  2473,  2476,  2477,
334   2479,  2480,  2482,  2484,  2485,  2487,  2489,  2493,  2498,  2500,
335   2504,  2505,  2507,  2509,  2511,  2514,  2517,  2520,  2522,  2525,
336   2528,  2529,  2533,  2535,  2537,  2539,  2542,  2545,  2548,  2553,
337   2556,  2559,  2562,  2565,  2568,  2571,  2573,  2576,  2578,  2581,
338   2583,  2585,  2586,  2587,  2589,  2590,  2595,  2598,  2600,  2602,
339   2606,  2607,  2611,  2615,  2619,  2621,  2624,  2627,  2630,  2633,
340   2636,  2639,  2642,  2645,  2648,  2651,  2654,  2657,  2660,  2663,
341   2666,  2669,  2672,  2675,  2678,  2681,  2684,  2687,  2690,  2694,
342   2697,  2700,  2703,  2706,  2710,  2713,  2716,  2721,  2726,  2730
343 };
344
345 static const short yyrhs[] = {    -1,
346    113,     0,     0,   114,   120,     0,   113,   120,     0,   113,
347      0,     0,     0,     0,    32,     0,    27,     0,     0,   121,
348    122,     0,   140,   139,     0,   136,     0,   135,     0,   119,
349     93,   208,   108,    60,     0,   127,    58,   115,   109,     0,
350    127,   116,   140,   117,   139,     0,   127,   116,   136,   117,
351      0,     0,    44,   155,    58,   123,   115,   109,     0,     0,
352     44,    58,   124,   115,   109,     0,    44,   155,    64,   126,
353     60,     0,   125,    60,     0,    46,    44,   126,    60,     0,
354    118,   122,     0,    46,   300,     0,    46,   314,   300,     0,
355     46,   314,   199,     0,   199,     0,   300,     0,   314,   300,
356      0,   314,   199,     0,    98,     0,   127,    98,     0,     0,
357     48,    74,   129,   130,    75,     0,    48,    74,    75,     0,
358    134,     0,   130,    59,   134,     0,   155,     0,     0,   257,
359    131,     0,    45,   131,     0,   128,   257,   131,     0,   132,
360      0,   132,    64,   214,     0,   377,     0,   377,    64,   194,
361      0,   133,     0,   133,    64,   174,     0,   128,   122,     0,
362    128,     1,     0,   225,    60,     0,   218,   224,    60,     0,
363    215,   223,    60,     0,   218,    60,     0,   158,    60,     0,
364    215,    60,     0,     1,    60,     0,     1,   109,     0,    60,
365      0,   209,     0,   151,     0,     0,   150,     0,   150,    60,
366      0,     0,   107,     0,   146,   138,   137,   324,     0,   146,
367    138,   348,     0,   146,   138,     1,     0,     0,   305,     5,
368     93,   142,   368,   108,   287,   380,     0,   305,     5,    47,
369    287,   380,     0,     0,   314,   305,     5,    93,   143,   368,
370    108,   287,   380,     0,   314,   305,     5,    47,   287,   380,
371      0,     0,   305,   170,    93,   144,   368,   108,   287,   380,
372      0,   305,   170,    47,   287,   380,     0,     0,   314,   305,
373    170,    93,   145,   368,   108,   287,   380,     0,   314,   305,
374    170,    47,   287,   380,     0,   215,   212,     0,   218,   297,
375      0,   297,     0,   218,   141,     0,   141,     0,     5,    93,
376    368,   108,   287,   380,     0,     5,    47,   287,   380,     0,
377    170,    93,   368,   108,   287,   380,     0,   170,    47,   287,
378    380,     0,   218,   147,     0,   147,     0,   215,   212,     0,
379    218,   297,     0,   297,     0,   218,   141,     0,   141,     0,
380     25,     3,     0,   149,   242,     0,   149,    93,   186,   108,
381      0,   149,    47,     0,    62,   152,   153,     0,     0,     0,
382    154,     0,   153,    59,   154,     0,   153,     1,     0,    93,
383    186,   108,     0,    47,     0,   156,    93,   186,   108,     0,
384    156,    47,     0,   293,    93,   186,   108,     0,   293,    47,
385      0,   307,    93,   186,   108,     0,   307,    47,     0,     3,
386      0,     4,     0,     5,     0,    56,     0,    57,     0,     3,
387      0,    56,     0,    57,     0,   104,     0,   103,     0,   105,
388      0,     0,    48,   167,   221,    60,   159,   168,     0,     0,
389     48,   167,   215,   212,   160,   168,     0,     0,    48,   167,
390    297,   161,   168,     0,     0,    48,   167,   141,   162,   168,
391      0,     0,     7,    48,   167,   221,    60,   163,   168,     0,
392      0,     7,    48,   167,   215,   212,   164,   168,     0,     0,
393      7,    48,   167,   297,   165,   168,     0,     0,     7,    48,
394    167,   141,   166,   168,     0,     0,     0,    56,    74,   172,
395    171,     0,     4,    74,   172,   171,     0,   170,     0,     5,
396     74,   172,   171,     0,    75,     0,    77,     0,     0,   173,
397      0,   174,     0,   173,    59,   174,     0,   214,     0,   194,
398      0,    79,     0,    78,     0,    86,     0,    87,     0,   110,
399      0,   185,     0,   194,     0,    47,     0,    93,   176,   108,
400      0,    47,     0,    93,   180,   108,     0,     0,   180,     0,
401      1,     0,     0,   358,   212,   226,   235,    64,   181,   243,
402      0,   176,     0,   109,     0,   321,   319,   109,     0,   321,
403    319,     1,   109,     0,   321,     1,   109,     0,     0,    58,
404    184,   182,     0,   333,     0,   194,    59,   194,     0,   194,
405     59,     1,     0,   185,    59,   194,     0,   185,    59,     1,
406      0,   194,     0,   185,     0,   203,     0,   118,   193,     0,
407     80,   193,     0,    70,   193,     0,    88,   193,     0,   175,
408    193,     0,    67,   155,     0,    13,   187,     0,    13,    93,
409    214,   108,     0,    29,   187,     0,    29,    93,   214,   108,
410      0,   205,   286,     0,   205,   286,   191,     0,   205,   190,
411    286,     0,   205,   190,   286,   191,     0,   205,    93,   189,
412    214,   188,     0,   205,    93,   189,   214,   188,   191,     0,
413    205,   190,    93,   189,   214,   188,     0,   205,   190,    93,
414    189,   214,   188,   191,     0,   206,   193,     0,   206,    94,
415    111,   193,     0,   206,    94,   176,   111,   193,     0,    34,
416    193,     0,    35,   193,     0,   108,     0,     0,    93,   189,
417    186,   108,     0,    58,   189,   186,   109,     0,    93,   186,
418    108,     0,    47,     0,    93,   221,   108,     0,    64,   243,
419      0,    93,   214,   108,     0,   192,    93,   214,   108,     0,
420    187,     0,   192,   187,     0,   192,    58,   244,   255,   109,
421      0,   193,     0,   194,    83,   194,     0,   194,    84,   194,
422      0,   194,    78,   194,     0,   194,    79,   194,     0,   194,
423     80,   194,     0,   194,    81,   194,     0,   194,    82,   194,
424      0,   194,    76,   194,     0,   194,    77,   194,     0,   194,
425     73,   194,     0,   194,    74,   194,     0,   194,    75,   194,
426      0,   194,    72,   194,     0,   194,    71,   194,     0,   194,
427     70,   194,     0,   194,    68,   194,     0,   194,    69,   194,
428      0,   194,    67,   194,     0,   194,    66,   194,     0,   194,
429     65,   363,    62,   194,     0,   194,    64,   194,     0,   194,
430     63,   194,     0,    61,     0,    61,   194,     0,    88,   378,
431    155,     0,   197,     0,   385,     0,     3,     0,    56,     0,
432     57,     0,     0,     6,    74,   196,   172,   171,     0,   385,
433     74,   196,   172,   171,     0,    48,   155,    74,   172,   171,
434      0,    48,     6,    74,   172,   171,     0,    48,   385,    74,
435    172,   171,     0,   195,     0,     4,     0,     5,     0,   195,
436      0,    80,   200,     0,    70,   200,     0,    93,   200,   108,
437      0,     3,    74,   172,   171,     0,    57,    74,   173,   171,
438      0,   299,     0,   195,     0,   201,     0,    93,   200,   108,
439      0,   195,     0,    10,     0,   207,     0,   208,     0,    93,
440    176,   108,     0,    93,   200,   108,     0,    93,     1,   108,
441      0,     0,    93,   204,   325,   108,     0,   203,    93,   186,
442    108,     0,   203,    47,     0,   203,    94,   176,   111,     0,
443    203,    86,     0,   203,    87,     0,    40,     0,     9,    93,
444    186,   108,     0,   303,     0,    50,    74,   214,    75,    93,
445    176,   108,     0,    51,    74,   214,    75,    93,   176,   108,
446      0,    52,    74,   214,    75,    93,   176,   108,     0,    53,
447     74,   214,    75,    93,   176,   108,     0,    49,    93,   176,
448    108,     0,    49,    93,   214,   108,     0,   314,     3,     0,
449    314,   197,     0,   314,   385,     0,   302,     0,   302,    93,
450    186,   108,     0,   302,    47,     0,   210,   198,     0,   210,
451    198,    93,   186,   108,     0,   210,   198,    47,     0,   210,
452    199,     0,   210,   302,     0,   210,   199,    93,   186,   108,
453      0,   210,   199,    47,     0,   210,   302,    93,   186,   108,
454      0,   210,   302,    47,     0,   210,    88,     8,    47,     0,
455    210,     8,    54,    88,     8,    47,     0,   210,     1,     0,
456     39,     0,   314,    39,     0,    38,     0,   314,   206,     0,
457     42,     0,    43,     0,    11,     0,   208,    11,     0,     0,
458    203,    92,     0,   203,    91,     0,   221,   223,    60,     0,
459    215,   223,    60,     0,   218,   224,    60,     0,   215,    60,
460      0,   218,    60,     0,   118,   211,     0,   292,     0,   297,
461      0,    47,     0,   213,    47,     0,   219,   317,     0,   288,
462    317,     0,   221,   317,     0,   219,     0,   288,     0,   219,
463      0,   216,     0,   218,   221,     0,   221,   217,     0,   221,
464    220,   217,     0,   218,   221,   217,     0,   218,   221,   220,
465      0,   218,   221,   220,   217,     0,     7,     0,   217,   222,
466      0,   217,     7,     0,   217,   236,     0,   236,     0,   288,
467      0,     7,     0,   218,     9,     0,   218,     7,     0,   218,
468    236,     0,   236,     0,   221,     0,   288,   221,     0,   221,
469    220,     0,   288,   221,   220,     0,   222,     0,   220,   222,
470      0,   250,     0,     8,     0,   294,     0,    28,    93,   176,
471    108,     0,    28,    93,   214,   108,     0,    30,    93,   176,
472    108,     0,    30,    93,   214,   108,     0,     8,     0,     9,
473      0,   250,     0,   231,     0,   223,    59,   227,     0,   232,
474      0,   224,    59,   227,     0,   233,     0,   225,    59,   227,
475      0,     0,   119,    93,   208,   108,     0,     0,   212,   226,
476    235,    64,   228,   243,     0,   212,   226,   235,     0,     0,
477    235,    64,   230,   243,     0,   235,     0,   212,   226,   229,
478      0,   297,   226,   229,     0,     0,   297,   226,   234,   229,
479      0,   141,   226,   235,     0,     0,   236,     0,   237,     0,
480    236,   237,     0,    31,    93,    93,   238,   108,   108,     0,
481    239,     0,   238,    59,   239,     0,     0,   240,     0,   240,
482     93,     3,   108,     0,   240,    93,     3,    59,   186,   108,
483      0,   240,    93,   186,   108,     0,   155,     0,     7,     0,
484      8,     0,     9,     0,   155,     0,   241,    59,   155,     0,
485      0,    64,   243,     0,   194,     0,    58,   109,     0,    58,
486    244,   109,     0,    58,   244,    59,   109,     0,     1,     0,
487    243,     0,   244,    59,   243,     0,    94,   194,   111,   243,
488      0,   155,    62,   243,     0,   244,    59,   155,    62,   243,
489      0,    97,     0,   245,   138,   137,   324,     0,   245,   138,
490    348,     0,   245,   138,     1,     0,     0,   247,   246,   139,
491      0,   102,   194,   107,     0,   102,     1,   107,     0,     0,
492    249,   248,     0,   249,     1,     0,     0,    14,   155,    58,
493    251,   284,   256,   109,     0,    14,   155,    58,   109,     0,
494      0,    14,    58,   252,   284,   256,   109,     0,    14,    58,
495    109,     0,    14,   155,     0,    14,   312,     0,    45,   307,
496      0,     0,     0,   264,   270,   272,   109,   235,   253,   249,
497    254,   247,     0,   264,     0,     0,    59,     0,     0,    59,
498      0,    36,     0,   257,     7,     0,   257,     8,     0,   257,
499      9,     0,   257,    36,     0,   257,   155,     0,   257,   157,
500      0,   257,   305,   155,     0,   257,   314,   305,   155,     0,
501    257,   314,   155,     0,   257,   169,     0,   257,   305,   169,
502      0,     0,   258,     0,   259,   261,   265,     0,   260,   265,
503      0,   257,    58,     0,   263,     0,   262,     0,     0,    62,
504    378,     0,    62,   378,   266,     0,   267,     0,   266,    59,
505    378,   267,     0,   268,     0,   269,   378,   268,     0,   307,
506      0,   293,     0,    30,    93,   176,   108,     0,    30,    93,
507    214,   108,     0,    37,   378,     0,     7,   378,     0,   269,
508     37,   378,     0,   269,     7,   378,     0,    58,     0,     0,
509    271,     0,   271,   273,     0,   272,    37,    62,   273,     0,
510    272,    37,    62,     0,   274,     0,   273,   274,     0,   275,
511     60,     0,   275,   109,     0,   148,    62,     0,   148,    95,
512      0,   148,    25,     0,   148,    58,     0,    60,     0,   118,
513    274,     0,   128,   274,     0,   128,   215,    60,     0,   215,
514    276,     0,   218,   277,     0,   297,   226,   235,   242,     0,
515    141,   226,   235,   242,     0,    62,   194,     0,     1,     0,
516    218,   147,   226,   235,   242,     0,   147,   226,   235,   242,
517      0,   125,     0,     0,   278,     0,   276,    59,   279,     0,
518      0,   281,     0,   277,    59,   283,     0,   280,     0,   281,
519      0,   282,     0,   283,     0,   292,   226,   235,   242,     0,
520      4,    62,   194,   235,     0,   297,   226,   235,   242,     0,
521    141,   226,   235,   242,     0,     3,    62,   194,   235,     0,
522     62,   194,   235,     0,   292,   226,   235,   242,     0,     4,
523     62,   194,   235,     0,   297,   226,   235,   242,     0,     3,
524     62,   194,   235,     0,    62,   194,   235,     0,   285,     0,
525    284,    59,   285,     0,   155,     0,   155,    64,   194,     0,
526    358,   315,     0,   358,     0,    93,   189,   214,   188,    94,
527    176,   111,     0,     0,   287,     9,     0,     9,     0,   288,
528      9,     0,     0,   289,   176,     0,   289,    93,   186,   108,
529      0,   289,    93,   368,   108,     0,   289,    47,     0,   289,
530     93,     1,   108,     0,    80,   288,   292,     0,    70,   288,
531    292,     0,    80,   292,     0,    70,   292,     0,   313,   287,
532    292,     0,   296,     0,   304,     0,   314,   304,     0,   293,
533      0,   295,     0,   314,   295,     0,   305,   304,     0,   296,
534    291,   287,   380,     0,   296,    94,   290,   111,     0,   296,
535     94,   111,     0,    93,   292,   108,     0,   305,   304,     0,
536    304,     0,    80,   288,   297,     0,    70,   288,   297,     0,
537     80,   297,     0,    70,   297,     0,   313,   287,   297,     0,
538    202,     0,    80,   288,   297,     0,    70,   288,   297,     0,
539     80,   298,     0,    70,   298,     0,   313,   287,   297,     0,
540    299,     0,   202,   291,   287,   380,     0,    93,   298,   108,
541      0,   202,    94,   290,   111,     0,   202,    94,   111,     0,
542    301,     0,   305,   201,     0,   305,   199,     0,   305,   198,
543      0,   305,   195,     0,   305,   198,     0,   301,     0,   314,
544    301,     0,   221,    93,   186,   108,     0,   221,    93,   200,
545    108,     0,   221,   213,     0,     4,     0,     5,     0,   169,
546      0,   306,     0,   305,   306,     0,   305,    48,   311,    54,
547      0,     4,    54,     0,     5,    54,     0,    57,    54,     0,
548    169,    54,     0,   308,     0,   314,   308,     0,   309,   155,
549      0,   309,   169,     0,   309,   311,     0,   309,    48,   311,
550      0,   310,     0,   309,   310,     0,   309,   311,    54,     0,
551    309,    48,   311,    54,     0,     4,    54,     0,     5,    54,
552      0,   169,    54,     0,    56,    54,     0,     3,    54,     0,
553     57,    54,     0,   155,    74,   172,   171,     0,   314,   304,
554      0,   295,     0,   314,   295,     0,   305,    80,     0,   314,
555    305,    80,     0,    54,     0,    80,   287,   315,     0,    80,
556    287,     0,    70,   287,   315,     0,    70,   287,     0,   313,
557    287,     0,   313,   287,   315,     0,   316,     0,    94,   176,
558    111,     0,   316,    94,   290,   111,     0,    80,   288,   317,
559      0,    80,   317,     0,    80,   288,     0,    80,     0,    70,
560    288,   317,     0,    70,   317,     0,    70,   288,     0,    70,
561      0,   313,   287,     0,   313,   287,   317,     0,   318,     0,
562     93,   317,   108,     0,    90,     0,   318,    93,   368,   108,
563    287,   380,     0,   318,    47,   287,   380,     0,   318,    94,
564    290,   111,     0,   318,    94,   111,     0,    93,   369,   108,
565    287,   380,     0,   192,   287,   380,     0,   213,   287,   380,
566      0,    94,   290,   111,     0,    94,   111,     0,   332,     0,
567    320,     0,   319,   332,     0,   319,   320,     0,     1,    60,
568      0,     0,   322,     0,   323,     0,   322,   323,     0,    33,
569    241,    60,     0,   325,     0,     1,   325,     0,     0,    58,
570    326,   182,     0,     0,     0,    15,   328,   178,   329,   330,
571      0,   325,     0,     0,   331,   333,     0,   325,     0,   333,
572      0,   211,     0,   176,    60,     0,     0,   327,    16,   334,
573    330,     0,   327,     0,     0,     0,    17,   335,   178,   336,
574    183,     0,     0,     0,    18,   337,   330,    17,   338,   177,
575     60,     0,     0,     0,     0,     0,    19,   339,    93,   361,
576    340,   179,    60,   341,   363,   108,   342,   183,     0,     0,
577      0,    20,   343,    93,   180,   108,   344,   330,     0,     0,
578     21,   194,    62,   345,   332,     0,     0,    21,   194,    12,
579    194,    62,   346,   332,     0,     0,    22,    62,   347,   332,
580      0,    23,    60,     0,    24,    60,     0,    25,    60,     0,
581     25,   176,    60,     0,   119,   362,    93,   208,   108,    60,
582      0,   119,   362,    93,   208,    62,   364,   108,    60,     0,
583    119,   362,    93,   208,    62,   364,    62,   364,   108,    60,
584      0,   119,   362,    93,   208,    62,   364,    62,   364,    62,
585    367,   108,    60,     0,    26,    80,   176,    60,     0,    26,
586    155,    60,     0,   360,   332,     0,   360,   109,     0,    60,
587      0,   351,     0,     0,     0,    95,   349,   137,   325,   350,
588    354,     0,     0,     0,    95,   352,   325,   353,   354,     0,
589    355,     0,   354,   355,     0,     0,     0,    96,   356,   359,
590    357,   325,     0,   219,     0,   288,     0,    93,    12,   108,
591      0,    93,   377,   108,     0,     3,    62,     0,    56,    62,
592      0,     4,    62,     0,     5,    62,     0,   363,    60,     0,
593    211,     0,    58,   182,     0,     0,     9,     0,     0,   176,
594      0,     1,     0,     0,   365,     0,   366,     0,   365,    59,
595    366,     0,    11,    93,   176,   108,     0,    11,     0,   367,
596     59,    11,     0,     0,   369,     0,   214,     0,   373,     0,
597    374,    12,     0,   373,    12,     0,   214,    12,     0,    12,
598      0,   373,    62,     0,   214,    62,     0,     0,    64,   371,
599    372,     0,   101,     0,   243,     0,   375,     0,   377,   370,
600      0,   374,   376,     0,   374,   379,     0,   374,   379,    64,
601    243,     0,   373,    59,     0,   214,    59,     0,   216,   212,
602      0,   219,   212,     0,   221,   212,     0,   216,   317,     0,
603    216,     0,   218,   297,     0,   377,     0,   377,   370,     0,
604    375,     0,   214,     0,     0,     0,   297,     0,     0,    61,
605     93,   382,   108,     0,    61,    47,     0,   214,     0,   381,
606      0,   382,    59,   381,     0,     0,    80,   287,   383,     0,
607     70,   287,   383,     0,   313,   287,   383,     0,    41,     0,
608    384,    80,     0,   384,    81,     0,   384,    82,     0,   384,
609     78,     0,   384,    79,     0,   384,    70,     0,   384,    68,
610      0,   384,    69,     0,   384,    88,     0,   384,    59,     0,
611    384,    73,     0,   384,    74,     0,   384,    75,     0,   384,
612     72,     0,   384,    63,     0,   384,    64,     0,   384,    76,
613      0,   384,    77,     0,   384,    86,     0,   384,    87,     0,
614    384,    67,     0,   384,    66,     0,   384,   110,     0,   384,
615     65,    62,     0,   384,    71,     0,   384,    91,     0,   384,
616     83,     0,   384,    47,     0,   384,    94,   111,     0,   384,
617     39,     0,   384,    38,     0,   384,    39,    94,   111,     0,
618    384,    38,    94,   111,     0,   384,   358,   383,     0,   384,
619      1,     0
620 };
621
622 #endif
623
624 #if YYDEBUG != 0
625 static const short yyrline[] = { 0,
626    328,   330,   338,   341,   342,   346,   348,   351,   356,   360,
627    366,   370,   373,   377,   380,   382,   384,   387,   389,   392,
628    395,   397,   399,   401,   403,   405,   407,   416,   420,   423,
629    425,   429,   431,   432,   434,   438,   441,   447,   450,   452,
630    457,   460,   464,   467,   470,   473,   477,   482,   492,   494,
631    496,   498,   500,   513,   522,   532,   534,   536,   540,   542,
632    543,   550,   551,   552,   555,   558,   562,   564,   565,   568,
633    570,   573,   576,   578,   582,   585,   587,   591,   593,   595,
634    599,   601,   603,   607,   609,   611,   617,   621,   624,   627,
635    630,   635,   638,   640,   642,   648,   658,   660,   663,   666,
636    668,   671,   675,   684,   687,   689,   693,   706,   726,   729,
637    731,   732,   735,   742,   748,   750,   752,   754,   756,   759,
638    764,   766,   767,   768,   769,   772,   774,   775,   778,   780,
639    781,   784,   789,   789,   793,   793,   796,   796,   799,   799,
640    803,   803,   808,   808,   811,   811,   814,   816,   819,   826,
641    833,   839,   842,   851,   853,   861,   864,   867,   870,   874,
642    877,   880,   883,   885,   887,   889,   893,   896,   899,   904,
643    908,   913,   917,   920,   922,   926,   945,   952,   955,   957,
644    958,   959,   962,   966,   967,   971,   975,   978,   980,   984,
645    987,   990,   994,   997,   999,  1001,  1003,  1006,  1010,  1012,
646   1014,  1016,  1022,  1025,  1028,  1031,  1043,  1048,  1052,  1056,
647   1061,  1063,  1067,  1071,  1073,  1082,  1086,  1089,  1092,  1097,
648   1100,  1102,  1110,  1123,  1128,  1134,  1136,  1138,  1151,  1154,
649   1156,  1158,  1160,  1162,  1164,  1166,  1168,  1170,  1172,  1174,
650   1176,  1178,  1180,  1182,  1184,  1186,  1188,  1190,  1192,  1194,
651   1198,  1200,  1202,  1219,  1222,  1223,  1224,  1225,  1226,  1229,
652   1232,  1235,  1239,  1242,  1244,  1249,  1251,  1252,  1255,  1257,
653   1259,  1261,  1265,  1268,  1272,  1274,  1275,  1276,  1280,  1288,
654   1289,  1290,  1298,  1300,  1303,  1305,  1315,  1317,  1319,  1321,
655   1323,  1325,  1328,  1330,  1374,  1375,  1379,  1383,  1387,  1391,
656   1393,  1397,  1399,  1401,  1409,  1411,  1413,  1415,  1419,  1421,
657   1423,  1425,  1430,  1432,  1434,  1436,  1439,  1441,  1443,  1487,
658   1490,  1494,  1497,  1501,  1504,  1509,  1511,  1515,  1528,  1531,
659   1538,  1545,  1550,  1552,  1557,  1559,  1566,  1568,  1572,  1576,
660   1582,  1586,  1589,  1592,  1595,  1605,  1607,  1610,  1614,  1617,
661   1620,  1623,  1626,  1632,  1638,  1640,  1645,  1647,  1656,  1659,
662   1661,  1664,  1670,  1672,  1682,  1686,  1689,  1692,  1697,  1700,
663   1708,  1710,  1712,  1714,  1717,  1720,  1735,  1754,  1757,  1759,
664   1762,  1764,  1767,  1769,  1772,  1774,  1777,  1780,  1784,  1790,
665   1791,  1803,  1810,  1813,  1819,  1823,  1828,  1834,  1835,  1843,
666   1846,  1850,  1853,  1857,  1862,  1865,  1869,  1872,  1874,  1876,
667   1878,  1885,  1887,  1888,  1889,  1893,  1896,  1900,  1903,  1909,
668   1911,  1914,  1917,  1920,  1926,  1929,  1932,  1934,  1936,  1940,
669   1946,  1954,  1956,  1960,  1962,  1967,  1970,  1973,  1975,  1977,
670   1981,  1985,  1990,  1994,  1997,  2002,  2006,  2009,  2012,  2016,
671   2028,  2030,  2033,  2053,  2055,  2058,  2060,  2065,  2067,  2069,
672   2071,  2073,  2077,  2082,  2087,  2093,  2098,  2103,  2105,  2109,
673   2114,  2117,  2124,  2152,  2158,  2160,  2163,  2166,  2168,  2172,
674   2174,  2178,  2204,  2233,  2236,  2237,  2258,  2281,  2283,  2287,
675   2298,  2312,  2317,  2324,  2327,  2335,  2346,  2355,  2359,  2374,
676   2377,  2382,  2384,  2386,  2388,  2390,  2392,  2395,  2397,  2409,
677   2415,  2417,  2420,  2423,  2425,  2436,  2441,  2444,  2449,  2452,
678   2453,  2464,  2467,  2468,  2479,  2481,  2484,  2486,  2489,  2496,
679   2504,  2511,  2517,  2523,  2531,  2535,  2540,  2544,  2547,  2556,
680   2558,  2562,  2565,  2570,  2574,  2580,  2591,  2594,  2598,  2602,
681   2610,  2615,  2621,  2624,  2626,  2628,  2634,  2637,  2639,  2641,
682   2643,  2647,  2650,  2668,  2678,  2680,  2681,  2685,  2690,  2693,
683   2695,  2697,  2699,  2703,  2709,  2712,  2714,  2716,  2718,  2722,
684   2725,  2728,  2730,  2732,  2734,  2738,  2741,  2744,  2746,  2748,
685   2750,  2757,  2768,  2772,  2777,  2781,  2786,  2788,  2792,  2795,
686   2797,  2801,  2803,  2804,  2807,  2809,  2811,  2817,  2832,  2838,
687   2844,  2858,  2860,  2864,  2878,  2880,  2882,  2886,  2892,  2905,
688   2907,  2911,  2924,  2930,  2932,  2933,  2934,  2942,  2947,  2956,
689   2957,  2961,  2964,  2970,  2976,  2979,  2981,  2983,  2985,  2989,
690   2993,  2997,  3000,  3005,  3008,  3010,  3012,  3014,  3016,  3018,
691   3020,  3022,  3026,  3030,  3034,  3038,  3039,  3041,  3043,  3045,
692   3047,  3049,  3051,  3053,  3055,  3063,  3065,  3066,  3067,  3070,
693   3076,  3078,  3083,  3085,  3088,  3102,  3105,  3108,  3112,  3115,
694   3122,  3124,  3127,  3129,  3131,  3134,  3137,  3140,  3143,  3145,
695   3148,  3152,  3154,  3160,  3162,  3163,  3165,  3170,  3172,  3174,
696   3176,  3178,  3181,  3182,  3184,  3187,  3188,  3191,  3191,  3194,
697   3194,  3197,  3197,  3199,  3201,  3203,  3205,  3211,  3217,  3220,
698   3223,  3229,  3231,  3233,  3237,  3239,  3242,  3249,  3255,  3264,
699   3268,  3270,  3273,  3275,  3278,  3282,  3284,  3287,  3289,  3292,
700   3309,  3315,  3323,  3325,  3327,  3331,  3334,  3335,  3343,  3347,
701   3351,  3354,  3355,  3361,  3364,  3367,  3369,  3373,  3378,  3381,
702   3391,  3396,  3397,  3404,  3407,  3410,  3412,  3415,  3417,  3427,
703   3441,  3445,  3448,  3450,  3454,  3458,  3461,  3464,  3466,  3470,
704   3472,  3479,  3486,  3489,  3492,  3496,  3500,  3506,  3510,  3515,
705   3517,  3520,  3525,  3531,  3542,  3545,  3547,  3551,  3556,  3558,
706   3565,  3568,  3570,  3572,  3578,  3583,  3586,  3588,  3590,  3592,
707   3594,  3596,  3598,  3600,  3602,  3604,  3606,  3608,  3610,  3612,
708   3614,  3616,  3618,  3620,  3622,  3624,  3626,  3628,  3630,  3632,
709   3634,  3636,  3638,  3640,  3642,  3644,  3646,  3648,  3651,  3653
710 };
711 #endif
712
713
714 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
715
716 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
717 "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT",
718 "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH",
719 "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF",
720 "SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR","VISSPEC",
721 "DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD",
722 "USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST",
723 "CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','","';'","THROW",
724 "':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE",
725 "ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR",
726 "DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN",
727 "POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING",
728 "ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN",
729 "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'",
730 "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension",
731 "asm_keyword","lang_extdef","@2","extdef","@3","@4","using_decl","any_id","extern_lang_string",
732 "template_header","@5","template_parm_list","maybe_identifier","template_type_parm",
733 "template_template_parm","template_parm","template_def","datadef","ctor_initializer_opt",
734 "maybe_return_init","eat_saved_input","fndef","constructor_declarator","@6",
735 "@7","@8","@9","fn.def1","component_constructor_declarator","fn.def2","return_id",
736 "return_init","base_init",".set_base_init","member_init_list","member_init",
737 "identifier","notype_identifier","identifier_defn","explicit_instantiation",
738 "@10","@11","@12","@13","@14","@15","@16","@17","begin_explicit_instantiation",
739 "end_explicit_instantiation","template_type","self_template_type","template_close_bracket",
740 "template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null",
741 "paren_cond_or_null","xcond","condition","@18","compstmtend","already_scoped_stmt",
742 "@19","nontrivial_exprlist","nonnull_exprlist","unary_expr",".finish_new_placement",
743 ".begin_new_placement","new_placement","new_initializer","regcast_or_absdcl",
744 "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id",
745 "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator",
746 "primary","@20","new","delete","boolean.literal","string","nodecls","object",
747 "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1",
748 "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
749 "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm",
750 "initdcl","@21","initdcl0_innards","@22","initdcl0","notype_initdcl0","nomods_initdcl0",
751 "@23","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
752 "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
753 "pending_inlines","defarg_again","pending_defargs","structsp","@24","@25","@26",
754 "@27","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
755 "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
756 "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list",
757 "base_class_list","base_class","base_class.1","base_class_access_list","left_curly",
758 "self_reference","opt.component_decl_list","component_decl_list","component_decl",
759 "component_decl_1","components","notype_components","component_declarator0",
760 "component_declarator","after_type_component_declarator0","notype_component_declarator0",
761 "after_type_component_declarator","notype_component_declarator","enumlist","enumerator",
762 "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr",
763 "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name",
764 "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator",
765 "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id",
766 "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1",
767 "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type",
768 "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator",
769 "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
770 "label_decls","label_decl","compstmt_or_error","compstmt","@28","simple_if",
771 "@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt","@32","@33",
772 "@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","function_try_block",
773 "@46","@47","try_block","@48","@49","handler_seq","handler","@50","@51","type_specifier_seq",
774 "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
775 "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
776 "complex_parmlist","defarg","@52","defarg1","parms","parms_comma","named_parm",
777 "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
778 "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
779 };
780 #endif
781
782 static const short yyr1[] = {     0,
783    112,   112,   114,   113,   113,   115,   115,   116,   117,   118,
784    119,   121,   120,   122,   122,   122,   122,   122,   122,   122,
785    123,   122,   124,   122,   122,   122,   122,   122,   125,   125,
786    125,   126,   126,   126,   126,   127,   127,   129,   128,   128,
787    130,   130,   131,   131,   132,   132,   133,   134,   134,   134,
788    134,   134,   134,   135,   135,   136,   136,   136,   136,   136,
789    136,   136,   136,   136,   137,   137,   138,   138,   138,   139,
790    139,   140,   140,   140,   142,   141,   141,   143,   141,   141,
791    144,   141,   141,   145,   141,   141,   146,   146,   146,   146,
792    146,   147,   147,   147,   147,   148,   148,   148,   148,   148,
793    148,   148,   149,   150,   150,   150,   151,   152,   153,   153,
794    153,   153,   154,   154,   154,   154,   154,   154,   154,   154,
795    155,   155,   155,   155,   155,   156,   156,   156,   157,   157,
796    157,   159,   158,   160,   158,   161,   158,   162,   158,   163,
797    158,   164,   158,   165,   158,   166,   158,   167,   168,   169,
798    169,   169,   170,   171,   171,   172,   172,   173,   173,   174,
799    174,   175,   175,   175,   175,   175,   176,   176,   177,   177,
800    178,   178,   179,   179,   179,   181,   180,   180,   182,   182,
801    182,   182,   184,   183,   183,   185,   185,   185,   185,   186,
802    186,   187,   187,   187,   187,   187,   187,   187,   187,   187,
803    187,   187,   187,   187,   187,   187,   187,   187,   187,   187,
804    187,   187,   187,   187,   187,   188,   189,   190,   190,   191,
805    191,   191,   191,   192,   192,   193,   193,   193,   194,   194,
806    194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
807    194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
808    194,   194,   194,   195,   195,   195,   195,   195,   195,   196,
809    197,   197,   198,   198,   198,   199,   199,   199,   200,   200,
810    200,   200,   201,   201,   202,   202,   202,   202,   203,   203,
811    203,   203,   203,   203,   203,   204,   203,   203,   203,   203,
812    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
813    203,   203,   203,   203,   203,   203,   203,   203,   203,   203,
814    203,   203,   203,   203,   203,   203,   203,   203,   203,   205,
815    205,   206,   206,   207,   207,   208,   208,   209,   210,   210,
816    211,   211,   211,   211,   211,   211,   212,   212,   213,   213,
817    214,   214,   214,   214,   214,   215,   215,   216,   216,   216,
818    216,   216,   216,   217,   217,   217,   217,   217,   218,   218,
819    218,   218,   218,   218,   219,   219,   219,   219,   220,   220,
820    221,   221,   221,   221,   221,   221,   221,   222,   222,   222,
821    223,   223,   224,   224,   225,   225,   226,   226,   228,   227,
822    227,   230,   229,   229,   231,   232,   234,   233,   233,   235,
823    235,   236,   236,   237,   238,   238,   239,   239,   239,   239,
824    239,   240,   240,   240,   240,   241,   241,   242,   242,   243,
825    243,   243,   243,   243,   244,   244,   244,   244,   244,   245,
826    246,   246,   246,   247,   247,   248,   248,   249,   249,   249,
827    251,   250,   250,   252,   250,   250,   250,   250,   250,   253,
828    254,   250,   250,   255,   255,   256,   256,   257,   257,   257,
829    257,   257,   258,   259,   260,   260,   260,   260,   260,   261,
830    262,   262,   262,   263,   264,   264,   265,   265,   265,   266,
831    266,   267,   267,   268,   268,   268,   268,   269,   269,   269,
832    269,   270,   271,   272,   272,   272,   272,   273,   273,   274,
833    274,   274,   274,   274,   274,   274,   274,   274,   274,   275,
834    275,   275,   275,   275,   275,   275,   275,   275,   276,   276,
835    276,   277,   277,   277,   278,   278,   279,   279,   280,   280,
836    281,   281,   281,   281,   282,   282,   283,   283,   283,   284,
837    284,   285,   285,   286,   286,   286,   287,   287,   288,   288,
838    289,   290,   291,   291,   291,   291,   292,   292,   292,   292,
839    292,   292,   293,   293,   294,   294,   294,   295,   296,   296,
840    296,   296,   296,   296,   297,   297,   297,   297,   297,   297,
841    298,   298,   298,   298,   298,   298,   299,   299,   299,   299,
842    299,   299,   300,   300,   301,   301,   302,   302,   303,   303,
843    303,   304,   304,   304,   305,   305,   305,   306,   306,   306,
844    306,   307,   307,   308,   308,   308,   308,   309,   309,   309,
845    309,   310,   310,   310,   310,   310,   310,   311,   312,   312,
846    312,   313,   313,   314,   315,   315,   315,   315,   315,   315,
847    315,   316,   316,   317,   317,   317,   317,   317,   317,   317,
848    317,   317,   317,   317,   318,   318,   318,   318,   318,   318,
849    318,   318,   318,   318,   318,   319,   319,   319,   319,   320,
850    321,   321,   322,   322,   323,   324,   324,   326,   325,   328,
851    329,   327,   330,   331,   330,   332,   332,   333,   333,   334,
852    333,   333,   335,   336,   333,   337,   338,   333,   339,   340,
853    341,   342,   333,   343,   344,   333,   345,   333,   346,   333,
854    347,   333,   333,   333,   333,   333,   333,   333,   333,   333,
855    333,   333,   333,   333,   333,   333,   349,   350,   348,   352,
856    353,   351,   354,   354,   356,   357,   355,   358,   358,   359,
857    359,   360,   360,   360,   360,   361,   361,   361,   362,   362,
858    363,   363,   363,   364,   364,   365,   365,   366,   367,   367,
859    368,   368,   368,   369,   369,   369,   369,   369,   369,   369,
860    371,   370,   372,   372,   373,   373,   373,   373,   373,   374,
861    374,   375,   375,   375,   375,   375,   375,   376,   376,   377,
862    377,   378,   379,   379,   380,   380,   380,   381,   382,   382,
863    383,   383,   383,   383,   384,   385,   385,   385,   385,   385,
864    385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
865    385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
866    385,   385,   385,   385,   385,   385,   385,   385,   385,   385
867 };
868
869 static const short yyr2[] = {     0,
870      0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
871      1,     0,     2,     2,     1,     1,     5,     4,     5,     4,
872      0,     6,     0,     5,     5,     2,     4,     2,     2,     3,
873      3,     1,     1,     2,     2,     1,     2,     0,     5,     3,
874      1,     3,     1,     0,     2,     2,     3,     1,     3,     1,
875      3,     1,     3,     2,     2,     2,     3,     3,     2,     2,
876      2,     2,     2,     1,     1,     1,     0,     1,     2,     0,
877      1,     4,     3,     3,     0,     8,     5,     0,     9,     6,
878      0,     8,     5,     0,     9,     6,     2,     2,     1,     2,
879      1,     6,     4,     6,     4,     2,     1,     2,     2,     1,
880      2,     1,     2,     2,     4,     2,     3,     0,     0,     1,
881      3,     2,     3,     1,     4,     2,     4,     2,     4,     2,
882      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
883      1,     0,     6,     0,     6,     0,     5,     0,     5,     0,
884      7,     0,     7,     0,     6,     0,     6,     0,     0,     4,
885      4,     1,     4,     1,     1,     0,     1,     1,     3,     1,
886      1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
887      1,     3,     0,     1,     1,     0,     7,     1,     1,     3,
888      4,     3,     0,     3,     1,     3,     3,     3,     3,     1,
889      1,     1,     2,     2,     2,     2,     2,     2,     2,     4,
890      2,     4,     2,     3,     3,     4,     5,     6,     6,     7,
891      2,     4,     5,     2,     2,     1,     0,     4,     4,     3,
892      1,     3,     2,     3,     4,     1,     2,     5,     1,     3,
893      3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
894      3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
895      3,     1,     2,     3,     1,     1,     1,     1,     1,     0,
896      5,     5,     5,     5,     5,     1,     1,     1,     1,     2,
897      2,     3,     4,     4,     1,     1,     1,     3,     1,     1,
898      1,     1,     3,     3,     3,     0,     4,     4,     2,     4,
899      2,     2,     1,     4,     1,     7,     7,     7,     7,     4,
900      4,     2,     2,     2,     1,     4,     2,     2,     5,     3,
901      2,     2,     5,     3,     5,     3,     4,     6,     2,     1,
902      2,     1,     2,     1,     1,     1,     2,     0,     2,     2,
903      3,     3,     3,     2,     2,     2,     1,     1,     1,     2,
904      2,     2,     2,     1,     1,     1,     1,     2,     2,     3,
905      3,     3,     4,     1,     2,     2,     2,     1,     1,     1,
906      2,     2,     2,     1,     1,     2,     2,     3,     1,     2,
907      1,     1,     1,     4,     4,     4,     4,     1,     1,     1,
908      1,     3,     1,     3,     1,     3,     0,     4,     0,     6,
909      3,     0,     4,     1,     3,     3,     0,     4,     3,     0,
910      1,     1,     2,     6,     1,     3,     0,     1,     4,     6,
911      4,     1,     1,     1,     1,     1,     3,     0,     2,     1,
912      2,     3,     4,     1,     1,     3,     4,     3,     5,     1,
913      4,     3,     3,     0,     3,     3,     3,     0,     2,     2,
914      0,     7,     4,     0,     6,     3,     2,     2,     2,     0,
915      0,     9,     1,     0,     1,     0,     1,     1,     2,     2,
916      2,     2,     2,     2,     3,     4,     3,     2,     3,     0,
917      1,     3,     2,     2,     1,     1,     0,     2,     3,     1,
918      4,     1,     3,     1,     1,     4,     4,     2,     2,     3,
919      3,     1,     0,     1,     2,     4,     3,     1,     2,     2,
920      2,     2,     2,     2,     2,     1,     2,     2,     3,     2,
921      2,     4,     4,     2,     1,     5,     4,     1,     0,     1,
922      3,     0,     1,     3,     1,     1,     1,     1,     4,     4,
923      4,     4,     4,     3,     4,     4,     4,     4,     3,     1,
924      3,     1,     3,     2,     1,     7,     0,     2,     1,     2,
925      0,     2,     4,     4,     2,     4,     3,     3,     2,     2,
926      3,     1,     1,     2,     1,     1,     2,     2,     4,     4,
927      3,     3,     2,     1,     3,     3,     2,     2,     3,     1,
928      3,     3,     2,     2,     3,     1,     4,     3,     4,     3,
929      1,     2,     2,     2,     2,     2,     1,     2,     4,     4,
930      2,     1,     1,     1,     1,     2,     4,     2,     2,     2,
931      2,     1,     2,     2,     2,     2,     3,     1,     2,     3,
932      4,     2,     2,     2,     2,     2,     2,     4,     2,     1,
933      2,     2,     3,     1,     3,     2,     3,     2,     2,     3,
934      1,     3,     4,     3,     2,     2,     1,     3,     2,     2,
935      1,     2,     3,     1,     3,     1,     6,     4,     4,     3,
936      5,     3,     3,     3,     2,     1,     1,     2,     2,     2,
937      0,     1,     1,     2,     3,     1,     2,     0,     3,     0,
938      0,     5,     1,     0,     2,     1,     1,     1,     2,     0,
939      4,     1,     0,     0,     5,     0,     0,     7,     0,     0,
940      0,     0,    12,     0,     0,     7,     0,     5,     0,     7,
941      0,     4,     2,     2,     2,     3,     6,     8,    10,    12,
942      4,     3,     2,     2,     1,     1,     0,     0,     6,     0,
943      0,     5,     1,     2,     0,     0,     5,     1,     1,     3,
944      3,     2,     2,     2,     2,     2,     1,     2,     0,     1,
945      0,     1,     1,     0,     1,     1,     3,     4,     1,     3,
946      0,     1,     1,     1,     2,     2,     2,     1,     2,     2,
947      0,     3,     1,     1,     1,     2,     2,     2,     4,     2,
948      2,     2,     2,     2,     2,     1,     2,     1,     2,     1,
949      1,     0,     0,     1,     0,     4,     2,     1,     1,     3,
950      0,     3,     3,     3,     1,     2,     2,     2,     2,     2,
951      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
952      2,     2,     2,     2,     2,     2,     2,     2,     3,     2,
953      2,     2,     2,     3,     2,     2,     4,     4,     3,     2
954 };
955
956 static const short yydefact[] = {     3,
957     12,    12,     5,     0,     4,     0,   257,   602,   603,     0,
958    360,   372,   549,     0,    11,     0,     0,     0,    10,   458,
959    805,     0,     0,     0,   148,   634,   258,   259,    64,     0,
960      0,   792,     0,    36,     0,     0,    13,     0,     8,     0,
961     16,    15,    70,    91,    67,     0,   604,   152,   276,   255,
962    277,   580,     0,   347,     0,   346,   365,     0,   385,   364,
963    402,   371,     0,   471,   470,   477,   476,   475,   453,   359,
964    565,   373,   566,    89,   275,   591,   563,     0,   605,   547,
965      0,     0,   256,    62,    63,   156,   608,   156,   609,   156,
966    260,   148,   121,   122,   123,   124,   125,   444,   447,     0,
967    630,     0,   448,     0,     0,     0,     0,   122,   123,   124,
968    125,    23,     0,     0,     0,     0,     0,     0,     0,   449,
969    612,     0,   618,     0,     0,     0,     0,     0,     0,    29,
970      0,     0,    38,     0,   156,   610,     0,     0,   578,     0,
971      0,     0,   577,     0,     0,     0,     0,   276,     0,   551,
972      0,   275,   547,    28,     0,    26,     3,    37,     0,    55,
973     54,    71,    14,     0,   400,     0,     0,   418,    68,    60,
974    611,   551,     0,   547,    61,     0,     0,     0,    87,     0,
975    381,   337,   562,   338,   574,     0,   547,   362,   361,    59,
976     90,   348,     0,   383,   363,    88,   354,   378,   379,   349,
977    367,   369,   358,   380,     0,    56,   403,   459,   460,   461,
978    462,   474,   130,   129,   131,   463,   464,   468,     0,     0,
979    477,   792,   473,   492,   493,   550,   366,     0,   397,   603,
980      0,   632,   152,   595,   596,   592,   568,   606,     0,   567,
981    564,     0,   840,   836,   835,   833,   815,   820,   821,     0,
982    827,   826,   812,   813,   811,   830,   819,   816,   817,   818,
983    822,   823,   809,   810,   806,   807,   808,   832,   824,   825,
984    814,   831,     0,   828,   738,   365,   739,   801,   260,   257,
985    549,   280,   326,     0,     0,     0,     0,   322,   320,   293,
986    324,   325,     0,     0,     0,     0,     0,   259,   252,     0,
987      0,   163,   162,     0,   164,   165,     0,     0,   166,     0,
988      0,   157,   158,     0,   226,     0,   229,   161,   279,   192,
989      0,     0,   281,   282,     0,   160,   344,   365,   345,   597,
990    305,   295,     0,     0,     0,     0,   156,     0,   446,     0,
991    441,     0,   631,   629,     0,   167,   168,     0,     0,     0,
992    407,     3,    21,     0,   626,   622,   623,   625,   627,   624,
993    121,   122,   123,     0,   124,   125,   614,   615,   619,   616,
994    613,   267,   268,     0,   266,    32,    33,     0,   594,   593,
995     31,    30,    40,     0,   360,   138,     0,     0,   365,   136,
996      0,     0,   576,     0,   575,   254,   271,     0,   584,   270,
997      0,   583,     0,   278,   588,     0,     0,    12,     0,   148,
998      9,     9,     0,   399,   401,   103,    74,   108,   727,     0,
999     66,    65,    73,   106,     0,     0,   104,    69,   590,     0,
1000      0,   555,     0,   795,     0,   560,     0,   559,     0,     0,
1001      0,     0,   547,   400,     0,    58,   551,   547,   573,     0,
1002    351,   352,     0,    57,   400,   356,   355,   357,   350,   370,
1003    387,   386,   465,   469,   467,     0,   472,   478,     0,     0,
1004    368,   400,   547,    75,     0,     0,     0,     0,   547,    81,
1005    548,   579,   603,   633,   152,     0,     0,   829,   834,   367,
1006    547,   547,     0,   547,   839,   156,     0,     0,     0,   199,
1007      0,     0,   201,   214,   215,     0,     0,     0,     0,     0,
1008    253,   198,   195,   194,   196,     0,     0,     0,     0,     0,
1009    279,     0,     0,     0,   193,   154,   155,   273,     0,   197,
1010      0,     0,   227,     0,     0,     0,     0,     0,     0,     0,
1011      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1012      0,     0,     0,     0,     0,   289,   291,   292,   330,   329,
1013      0,     0,   217,   217,     0,   203,   545,     0,   211,   327,
1014    319,     0,     0,   792,   308,   311,   312,     0,     0,   339,
1015    651,   647,   656,     0,   551,   547,   547,   547,   341,   654,
1016      0,   601,   343,     0,     0,   342,   307,     0,   302,   321,
1017    303,   323,   598,     0,   304,   151,   153,     0,   146,     0,
1018    365,   144,   542,   456,   540,   443,     0,     0,   374,     0,
1019      0,   375,   376,   377,   413,   414,   415,   412,     0,   405,
1020    408,     0,     3,     0,   617,   156,   620,    27,    35,    34,
1021     44,     0,     0,     0,    48,    52,    41,   791,   786,     0,
1022    344,   365,    44,   345,   790,    50,   149,   134,   132,   149,
1023    150,   274,   582,   581,   278,   585,     0,    18,    20,    70,
1024      0,   109,   328,     0,   678,    72,   676,   424,     0,   420,
1025    419,   191,     0,   190,   552,   589,     0,   768,     0,   763,
1026    365,     0,   762,   764,   793,   775,     0,     0,   587,   558,
1027    557,     0,     0,   572,     0,   395,   394,   382,   571,     0,
1028    795,   561,   353,   384,   396,   400,   466,   602,   603,   792,
1029      0,   792,   604,   479,   480,   482,   792,   485,   484,     0,
1030    515,   603,     0,   506,     0,     0,   518,     0,   102,    97,
1031      0,   152,   519,   522,     0,   498,     0,   100,     0,   400,
1032    398,   795,   761,   156,   156,   607,   156,   795,   761,   547,
1033     78,   547,    84,   838,   837,   801,   801,   801,     0,     0,
1034      0,     0,   601,     0,     0,     0,     0,   365,     0,     0,
1035      0,   285,     0,   283,   284,     0,   224,   159,   257,   602,
1036    603,   258,   259,     0,     0,   425,   454,     0,   251,   250,
1037    753,   752,     0,   248,   247,   245,   246,   244,   243,   242,
1038    239,   240,   241,   237,   238,   232,   233,   234,   235,   236,
1039    230,   231,     0,     0,     0,     0,   217,   205,   221,     0,
1040      0,   204,   547,   547,     0,   547,   544,   641,     0,     0,
1041      0,     0,     0,   310,     0,   314,     0,   316,     0,   650,
1042    649,   646,   645,   791,     0,     0,   665,     0,     0,   795,
1043    340,   795,   652,   547,   761,   551,   651,   647,     0,     0,
1044    547,     0,     0,     0,     0,     0,   261,   149,   142,   140,
1045    149,     0,   457,     0,   456,   189,   188,   187,   186,   407,
1046      0,     0,    24,     0,    25,   621,     0,    46,    43,    44,
1047      0,    39,     0,     0,   651,   647,     0,   782,   547,   785,
1048    787,     0,   783,   784,    45,   463,     0,   139,   149,   149,
1049    137,    17,    19,   388,   126,   114,   127,   128,     0,   107,
1050    110,     0,     0,     0,     0,   677,   671,   421,     0,   105,
1051    556,   553,   767,   781,   770,     0,   554,   766,   780,   769,
1052    765,   794,   777,   788,   778,   771,   776,   797,     0,   392,
1053    570,   569,   391,   489,     0,   488,   792,   792,   792,     0,
1054    547,   761,   514,   507,   519,   508,   400,   400,   504,   505,
1055    502,   503,   547,   761,   257,   602,     0,   387,    98,   510,
1056    520,   525,   526,   387,   387,     0,     0,   387,    96,   511,
1057    523,   387,   499,   500,   501,   400,     0,   450,    77,     0,
1058      0,     0,     0,    83,     0,   795,   761,   795,   761,   803,
1059    802,   804,   262,   294,   200,   202,   300,   301,     0,     0,
1060      0,     0,   284,   287,     0,     0,     0,     0,   225,     0,
1061    288,   290,     0,     0,     0,     0,   206,   223,     0,     0,
1062    638,   636,     0,   639,   551,   212,     0,     0,   156,   317,
1063      0,     0,     0,   648,   644,   655,   547,   664,   662,   663,
1064    653,   795,     0,   660,     0,   599,   600,     0,   306,   147,
1065    149,   149,   145,   543,   541,   445,     0,   406,   404,   257,
1066      0,    22,   628,    47,    42,    49,    53,   650,   646,   651,
1067    647,     0,   563,     0,   547,   652,    51,   135,   133,     0,
1068    112,     0,   116,     0,   118,     0,   120,     0,   728,     0,
1069    179,   679,     0,   672,   673,     0,   422,   651,   647,     0,
1070    279,     0,   597,   789,     0,     0,   798,   799,     0,     0,
1071    389,     0,     0,     0,   491,   490,   483,   795,     0,   509,
1072    418,   418,   795,     0,     0,     0,   400,   400,     0,   400,
1073    400,     0,   400,     0,   418,     0,   438,   547,   264,   263,
1074    265,   547,    80,     0,    86,     0,     0,     0,     0,     0,
1075      0,   428,     0,   426,   228,   249,   219,   218,   216,   207,
1076      0,   220,   222,   637,   635,   642,   640,     0,   213,     0,
1077      0,   309,   313,   315,   795,   658,   547,   659,   143,   141,
1078    442,     0,   409,   411,   650,   646,   568,   652,   113,   111,
1079      0,     0,     0,     0,   416,     0,     0,   257,   602,   603,
1080    680,   693,   696,   699,   704,     0,     0,     0,     0,     0,
1081      0,   258,   725,   730,     0,   749,     0,   688,     0,     0,
1082    365,     0,   667,   686,   692,   666,   687,   726,     0,   674,
1083    423,     0,   600,   779,   773,   774,   772,     0,   796,   393,
1084      0,   486,   487,   481,    93,   547,   513,   517,    95,   547,
1085    400,   400,   534,   418,   257,   602,     0,   521,   527,   528,
1086    387,   387,   418,   418,     0,   418,   524,   512,     0,   795,
1087    795,   547,   547,     0,     0,     0,     0,   427,     0,     0,
1088    208,   209,   643,   318,   263,   661,   795,     0,   115,   117,
1089    119,   735,   729,   733,     0,   675,   670,   182,   742,   744,
1090    745,     0,     0,   684,     0,     0,     0,   711,   713,   714,
1091    715,     0,     0,     0,   743,     0,   336,   750,     0,   689,
1092    334,   387,     0,   335,     0,   387,     0,     0,     0,   180,
1093    669,   668,   690,   724,   723,   284,   800,   390,   795,   795,
1094    533,   530,   532,     0,     0,   400,   400,   400,   529,   531,
1095    516,   440,     0,   439,   434,    76,    82,   795,   795,   296,
1096    297,   298,   299,   429,     0,   210,   657,   410,     0,   734,
1097    417,   171,     0,   681,   694,   683,     0,     0,     0,     0,
1098      0,   707,     0,   716,     0,   722,   731,     0,   332,   333,
1099      0,     0,     0,   331,   181,   684,    92,    94,   400,   400,
1100    539,   418,   418,     0,     0,   452,    79,    85,   546,     0,
1101    736,   178,     0,   365,     0,   684,     0,   697,   685,   671,
1102    747,   700,     0,     0,     0,     0,   712,   721,     0,     0,
1103    691,   538,   536,   535,   537,   437,   436,   430,    67,    70,
1104      0,     0,     0,   172,   387,   682,   183,   695,   185,     0,
1105    748,     0,   746,   705,   709,   708,   732,   754,     0,     0,
1106    435,   740,   741,   737,   400,   671,   169,     0,     0,   175,
1107      0,   174,   684,     0,     0,     0,   755,   756,   717,   433,
1108      0,   432,     0,   184,     0,   698,   701,   706,   710,     0,
1109    754,     0,     0,   431,   176,   170,     0,     0,     0,   718,
1110    757,     0,     0,   758,     0,     0,   177,   702,   759,     0,
1111    719,     0,     0,     0,   703,   760,   720,     0,     0,     0
1112 };
1113
1114 static const short yydefgoto[] = {  1548,
1115    408,     2,   409,   159,   669,   310,   164,     3,     4,    37,
1116    633,   352,   737,   374,    39,   738,   384,   644,   898,   645,
1117    646,   647,    41,    42,   420,   167,   163,    43,   739,   753,
1118   1017,   759,  1019,    45,   740,   741,   168,   169,   421,   672,
1119    930,   931,   613,   932,   217,    46,   920,   919,   660,   657,
1120   1082,  1081,   881,   878,   134,   918,    47,    48,   528,   311,
1121    312,   313,   314,  1247,  1499,  1404,  1501,  1443,  1532,  1122,
1122   1478,  1496,   346,   870,   315,  1190,   825,   565,   832,   316,
1123    317,   347,   319,   337,    50,   235,   376,   397,    51,    52,
1124    320,   523,   321,   322,   323,   324,   422,   325,  1248,   461,
1125    587,   326,  1249,    54,   200,   650,   327,   201,   501,   202,
1126    180,   193,    58,   444,   462,  1271,   706,  1140,   181,   194,
1127     59,   472,   707,    60,    61,   629,   630,   631,  1226,   427,
1128    796,   797,  1469,  1470,  1436,  1384,  1299,    62,   617,   340,
1129   1167,  1385,  1038,   884,    63,    64,    65,    66,   221,    67,
1130     68,    69,   223,   724,   725,   726,   727,   225,   469,   470,
1131    745,   746,   747,   990,  1000,   991,  1288,   992,   993,  1289,
1132   1290,   614,   615,   566,   860,   329,   430,   431,   174,   182,
1133     71,    72,    73,   183,   184,   151,    75,   130,   330,   331,
1134    332,    77,   333,    79,   729,   121,   122,   123,   477,   103,
1135     80,   334,   837,   838,   855,   590,  1252,  1253,  1123,  1124,
1136   1125,   676,  1254,   937,  1255,  1332,  1446,  1407,  1408,  1256,
1137   1257,  1426,  1333,  1447,  1334,  1480,  1335,  1482,  1527,  1542,
1138   1336,  1503,  1456,  1504,  1413,   423,   673,  1224,  1258,  1346,
1139   1459,  1323,  1324,  1399,  1473,  1445,  1441,  1259,  1452,  1349,
1140    803,  1506,  1507,  1508,  1540,   692,   693,   957,  1136,  1267,
1141    694,   695,   696,   953,   697,   144,   955,   699,  1138,  1139,
1142    495,    82,    83
1143 };
1144
1145 static const short yypact[] = {    96,
1146    195,-32768,-32768,  5576,-32768,    23,    47,   205,   282,   116,
1147    166,-32768,-32768,  1516,-32768,   189,   215,   233,-32768,-32768,
1148 -32768,   624,  1171,   994,   174,-32768,   184,   329,-32768,  1291,
1149   1291,-32768,  4184,-32768,  5576,   248,-32768,   328,    81,  5836,
1150 -32768,-32768,   272,  1031,   371,   352,   368,-32768,-32768,-32768,
1151 -32768,   300,  1751,-32768,  4327,-32768,  1925,   606,-32768,   417,
1152 -32768,-32768,   779,-32768,-32768,   392,-32768,-32768,   409,  4293,
1153 -32768,-32768,-32768,   923,-32768,-32768,-32768,  1163,-32768,-32768,
1154    319,  7614,   387,-32768,-32768,  9017,-32768,  9017,-32768,  9017,
1155 -32768,-32768,-32768,   205,   282,   184,   421,   405,   428,   368,
1156 -32768,   795,-32768,   319,  9017,  9017,   424,-32768,-32768,-32768,
1157 -32768,-32768,   197,   492,   381,   403,   539,   500,   516,-32768,
1158 -32768,  1124,-32768,   476,   205,   282,  1429,   184,   421,-32768,
1159    357,  1634,   474, 10242,  9017,-32768,  9017,  3516,-32768,  1310,
1160    360,  3516,-32768,   845,  3693,  3693,  4184,   468,   471,   491,
1161    532,   549,-32768,-32768,   651,-32768,   560,-32768,  3960,    23,
1162 -32768,-32768,-32768,   603,   417,   680,   111,   404,   659,-32768,
1163 -32768,   611,   175,-32768,-32768,  4084,  4084,  4711,   923,   644,
1164 -32768,-32768,   359,-32768,-32768,  2254,-32768,-32768,-32768,-32768,
1165 -32768,  1925,   710,-32768,   417,   923,-32768,-32768,-32768,  2089,
1166   1925,-32768,   417,-32768,  4739,-32768,-32768,-32768,-32768,-32768,
1167 -32768,-32768,-32768,-32768,-32768,-32768,-32768,   368,  1227,  1082,
1168    392,-32768,-32768,-32768,-32768,-32768,  1351,   319,-32768,   563,
1169   1527,-32768,   251,-32768,-32768,-32768,-32768,-32768,  4212,-32768,
1170 -32768,   416,-32768,   643,   648,-32768,-32768,-32768,-32768,   684,
1171 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1172 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1173 -32768,-32768,   646,-32768,-32768,  1351,  4293,   890,-32768,-32768,
1174    674,-32768,-32768,  9625,  9711,  9797,  9797,-32768,-32768,-32768,
1175 -32768,-32768,   687,   703,   723,   735,   747,   421,  9103,   845,
1176   9797,-32768,-32768,  9797,-32768,-32768,  9797,  7092,-32768,  9797,
1177     79,   765,-32768,  9797,-32768,  9189,-32768, 10651,-32768,  1587,
1178   1298,  9275,-32768,   820,  2141,-32768,  1861,  2029, 10335,-32768,
1179    259,-32768,  1768,  2209,    79,    79,  9017, 10242,-32768,   845,
1180    697,   845,-32768,-32768,   720,   775, 10584,   730,   751,   769,
1181   1873,   560,-32768,  1429,-32768,-32768,-32768,-32768,-32768,-32768,
1182    492,   381,   403,   845,   539,   500,   799,   516,-32768,   827,
1183 -32768,   205,   282,   830,-32768,-32768,-32768,  1634,-32768,-32768,
1184 -32768,-32768,-32768,  5089,-32768,-32768,  4739, 10544,  2149,-32768,
1185     79,   650,-32768,   495,-32768,-32768,-32768,  3516,-32768,-32768,
1186   3516,-32768,   788,-32768,-32768,  4212,    54,   802,   814,-32768,
1187 -32768,-32768,   651,-32768,   417,-32768,-32768,-32768,-32768,   136,
1188 -32768,-32768,-32768,-32768,  7183,  9103,-32768,-32768,-32768,  9103,
1189    793,-32768,  6540,   100,  4453,-32768,  4453,-32768,  4546,  4546,
1190   4711,   813,-32768,   417,  4739,-32768,   823,-32768,-32768,  4648,
1191   2089,  1925,  4739,-32768,   417,-32768,-32768,   417,  2089,-32768,
1192    909,-32768,-32768,   368,-32768,  1227,-32768,  2351,  1705,    56,
1193   1351,   417,-32768,-32768,   869,   871,   902,   891,-32768,-32768,
1194 -32768,-32768,   989,-32768,   264,   853,   856,-32768,-32768,  1351,
1195 -32768,-32768,   682,-32768,-32768,  9017,  9103,   674,  7092,-32768,
1196    444,  7092,-32768,-32768,-32768,  9017,  4911,  4911,  4911,  4911,
1197  10629,-32768,-32768,-32768,-32768,   861,  9883,  9883,  7092,   863,
1198    468,   864,   915,   867,-32768,-32768,-32768,-32768,  9017,-32768,
1199   6722,  7092,-32768,  9103,  9103,  7274,  9103,  9103,  9103,  9103,
1200   9103,  9103,  9103,  9103,  9103,  9103,  9103,  9103,  9103,  9103,
1201   9103,  9103,  9103,  9103,  9103,-32768,-32768,-32768,-32768,-32768,
1202   9103,  9103,-32768,-32768,  3090,   489,   551,  7974,-32768,-32768,
1203 -32768,   927,  1527,   970,   469,   475,   493,  1785,   360,-32768,
1204    454,   454,-32768,  5298,   878,   901,   962,-32768,-32768,   427,
1205   8472,   858,-32768,   812,   319,-32768,-32768,  9103,-32768,-32768,
1206 -32768,-32768,-32768,    89,   387,-32768,-32768,    79,-32768,  4739,
1207   2405,-32768,   948,   961,-32768,-32768,   845,   799,-32768,  7706,
1208   7797,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   113,-32768,
1209    929,   921,   560,   973,   983,  9017,-32768,-32768,-32768,-32768,
1210   1188,   174,  1009,   152,   988,   990,-32768,-32768,  2783, 10297,
1211   2783,  2555,   779,  5228,-32768,   995,-32768,-32768,-32768,-32768,
1212 -32768,-32768,-32768,-32768,   952,-32768,  1001,-32768,-32768,   272,
1213     80,   200,  1003,   915,-32768,-32768,-32768,-32768,  5722, 10629,
1214 -32768,   775,   969, 10584,-32768,-32768,   971,-32768,   972,   369,
1215   3338,   975,-32768,   190, 10060,  1017,  1020,   503,-32768,-32768,
1216 -32768,  4453,  4453,-32768,  4648,-32768,  1033,-32768,-32768,   992,
1217    100,-32768,  2089,-32768,-32768,   417,-32768,   381,   403,-32768,
1218   1006,-32768,   516,  1041,-32768,-32768,   121,-32768,-32768,  1284,
1219 -32768,   999,   485,-32768,  9103,  3453,-32768,  3453,   278,   278,
1220    135,   511,  3359, 10115,  4809,-32768,   126,   278,  1043,   417,
1221 -32768,   100, 10487,  9017,  9017,-32768,  9017,   100, 10487,-32768,
1222 -32768,-32768,-32768,-32768,-32768,   920,   920,   920,    79,  1002,
1223   1004,  9367,   962,  1008,  1010,  1012,  1042,  3242,  1046,  1047,
1224   1049,-32768,  1024,-32768,-32768,  1026,-32768,-32768,  1078,   356,
1225    749,   170,    63,  9103,  1080,-32768,  1084,  1037, 10629, 10629,
1226 -32768,-32768,  1086,  3084,  5372,  4500,  4604,  1948,  3842,  4235,
1227   2445,  2445,  2445,  1239,  1239,  1443,  1443,   707,   707,   707,
1228 -32768,-32768,  1048,  1038,  9103,  9017,-32768,   489,-32768,  7183,
1229   9103,-32768,-32768,-32768,  9103,-32768,-32768,  1063,  9797,  1053,
1230   1071,  1103,  1132,-32768,  9103,-32768,  9103,-32768,  9103,  2727,
1231 -32768,  2727,-32768,    88,  1074,  1077,-32768,  1075,  4911,   100,
1232 -32768,   100,  4056,-32768, 10487,  1076,  8656,  8656,  6032,  1087,
1233   9189,  1089,  2282,  2209,   859,  1093,-32768,-32768,-32768,-32768,
1234 -32768,  9103,   845,  1085,   961,-32768, 10629,-32768, 10629,  1873,
1235   1095,  9453,-32768,  1096,-32768,-32768,    79,-32768,-32768,  1641,
1236   5089,-32768,  4911,  9017,  2001,  2001,  6141,-32768,-32768,-32768,
1237 -32768,  2254,-32768,-32768,-32768,   255,  9103,-32768,-32768,-32768,
1238 -32768,-32768,-32768,-32768,   492,-32768,   539,   500,  9103,  1139,
1239 -32768,   531,   537,   595,   915,-32768,    48,-32768,    35,-32768,
1240 -32768,-32768,-32768,-32768,-32768,  8564,-32768,-32768,-32768,-32768,
1241 -32768,-32768,-32768,  1020,  1144,-32768,-32768,-32768,  4911,-32768,
1242 -32768,-32768,  1145,-32768,  9017,-32768,-32768,-32768,-32768,  1014,
1243 -32768, 10487, 10629,-32768,  1090,-32768,   417,   417,-32768,-32768,
1244 -32768,-32768,-32768, 10487,   507,   792,  9103,   909,-32768,  1151,
1245 -32768,-32768,-32768,   398,   652,  1163,   360,   706,   278,  1154,
1246 -32768,   767,-32768,-32768,-32768,   417,  4992,-32768,-32768,  1107,
1247     79,    79,    79,-32768,  1108,   100, 10487,   100, 10487,-32768,
1248 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1128,  1141,
1249   1146,  1147,   952,-32768,  5946,  7183,  6816,  1138,-32768,  9103,
1250 -32768,-32768,  1140,  1142,  1148,  4911,-32768,-32768,  1149,   199,
1251    614,   614,  1143,   614,-32768,-32768,  9797,  1253,  9017,-32768,
1252   1157,  1160,  1164,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1253 -32768,   100,  1165,-32768,  1169,-32768,-32768,  2491,-32768,-32768,
1254 -32768,-32768,-32768, 10629,-32768,-32768,  1162,-32768,-32768,   128,
1255   1166,-32768,-32768,-32768,-32768,-32768,-32768,  2390,  2390,  2463,
1256   2463,  6141,-32768,  2254,-32768,  3175, 10651,-32768,-32768,  1168,
1257 -32768,   200,-32768,  9103,-32768,  9103,-32768,  9103,-32768,   845,
1258 -32768,-32768,  6353,  1257,-32768,  6907,-32768,  8748,  8748,  6446,
1259     77,  1178,   238,-32768,  7183,  6998,-32768,-32768,   142,  7183,
1260 -32768,  1193,  1196,  2351,-32768,-32768,-32768,   100,  1197,-32768,
1261   1247,  1247,   100,  1219,  9103,  9103, 10406,   417,  3714,   417,
1262    417,   936,   417,  3813,  1247,  5460,-32768,-32768,-32768,  1275,
1263 -32768,-32768,-32768,  1223,-32768,  1225,  9103,  9103,  9103,  9103,
1264   7183,-32768,  1273,-32768,-32768, 10629,-32768,-32768,-32768,   419,
1265   1148,-32768,-32768,-32768,-32768,-32768,-32768,  1233,-32768,  1302,
1266     79,-32768,-32768,-32768,   100,-32768,-32768,-32768,-32768,-32768,
1267 -32768,  9103,-32768,-32768,  2390,  2390,-32768,  3175,-32768,-32768,
1268   1242,  1249,  1254,  1267,-32768,   759,   155,  1312,   817,   844,
1269 -32768,-32768,-32768,-32768,-32768,  9103,  1314,  1317,  1318,  8840,
1270    214,   509,-32768,-32768,  8931,  1371,  1321,-32768,  4420, 10183,
1271  10352,  6243,-32768,-32768,  1366,-32768,-32768,-32768,  8083,-32768,
1272 -32768,  1277,   377,-32768,-32768,-32768,-32768,  4911,-32768,-32768,
1273   7183,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1274  10406, 10406,-32768,  1247,   593,   934,  9103,-32768,-32768,-32768,
1275    909,   909,  1247,  1247,   989,  1247,-32768,-32768,  5896,   100,
1276    100,-32768,-32768,  1278,  1280,  1285,  1286,-32768,  7183,  9103,
1277 -32768,   419,-32768,-32768,-32768,-32768,   100,  1287,-32768,-32768,
1278 -32768,-32768,  1267,-32768,   845,-32768,-32768,-32768,-32768,-32768,
1279 -32768,   597,   597,   915,  1290,  1304, 10384,-32768,-32768,-32768,
1280 -32768,  1340,  9103,  1343,-32768,   915,-32768,-32768,  1319,-32768,
1281 -32768,   909,   781,-32768,   785,   909,  9539,   829,   165,-32768,
1282 -32768,-32768,-32768,-32768,-32768,   274,-32768,-32768,   100,   100,
1283 -32768,-32768,-32768,  9103,  9103, 10406,   417,   417,-32768,-32768,
1284 -32768,-32768,  7888,-32768,-32768,-32768,-32768,   100,   100,-32768,
1285 -32768,-32768,-32768,-32768,  1296,-32768,-32768,-32768,  1320,-32768,
1286 -32768,-32768,  9017,-32768,-32768,-32768,  1394,  8379,  6631,  9017,
1287   9103,-32768,  8191,-32768,  1354,-32768,-32768,   651,-32768,-32768,
1288   9969,  9969,  7365,-32768,-32768,   915,-32768,-32768, 10406, 10406,
1289 -32768,  1247,  1247,  1315, 10539,  1324,-32768,-32768,-32768, 10500,
1290 -32768,-32768,  1316,   627,  4739,   915,  8285,-32768,-32768,    48,
1291 -32768,-32768,  1365,  1322, 10607,  8191,-32768,-32768,  1267,    74,
1292 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   371,   272,
1293   1329,  1332,   915,-32768,   909,-32768,-32768,-32768,-32768,   604,
1294 -32768,  7456,-32768,-32768,-32768,-32768,  1267,  1430,  1382,   150,
1295 -32768,-32768,-32768,-32768,   417,    48,-32768,  9103,  1384,-32768,
1296   1385,-32768,   915,  8191,  1353,   590,  1391,-32768,-32768,-32768,
1297    136,-32768,  1387,-32768,  1347,-32768,-32768,-32768,-32768,  9103,
1298   1430,  1396,  1430,-32768,-32768,-32768,  7547,  1350,   591,-32768,
1299 -32768,  7183,  1352,-32768,  1448,  1402,-32768,-32768,-32768,   178,
1300 -32768,  8285,  1453,  1409,-32768,-32768,-32768,  1472,  1475,-32768
1301 };
1302
1303 static const short yypgoto[] = {-32768,
1304   1476,-32768,  -313,-32768,  1067,    18,    10,  1478,-32768,   350,
1305 -32768,-32768,   562,  1130,-32768,     8,-32768,-32768,  -601,-32768,
1306 -32768,   581,-32768,  1333,  -664,    19,  -660,  1336,    64,-32768,
1307 -32768,-32768,-32768,-32768,   755,-32768,-32768,-32768,-32768,-32768,
1308 -32768,   389,  1718,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1309 -32768,-32768,-32768,-32768,  1413,  -639,  5081,    60,  -126,   -62,
1310   1369,  -495,-32768,    58,-32768,   176,-32768, -1305,-32768,  -761,
1311    -32,-32768,  1361,   732,  -213,   322,  -509,-32768,  -793,  3493,
1312    414,  1065,  3507,  1236,  -307,   -74,    -9,   570,   -70,   208,
1313 -32768,-32768,-32768,  -309,-32768,  -151,-32768,-32768, -1171,   -37,
1314   -321,  1870,    57,  1134,  -152,    40,    94,  -186,    -4,  -168,
1315   -900,   279,-32768,    33,  -110,-32768,  -229,-32768,-32768,-32768,
1316 -32768,-32768,   212,  2459,   -14,-32768,   638,-32768,-32768, -1006,
1317   -361,   857,-32768,-32768,-32768,-32768,-32768,   -52,-32768,-32768,
1318 -32768,-32768,-32768,   654,  -371,-32768,-32768,-32768,-32768,-32768,
1319 -32768,-32768,  1325,-32768,   391,   567,-32768,-32768,-32768,-32768,
1320    538,  -682,-32768,-32768,-32768,-32768,-32768,-32768,   803,-32768,
1321    384,   937,   668,  1015,  3222,     7,    17,  -417,  1370,  1885,
1322   -439,-32768,     6,-32768,  4950,  -143,   566,   -65,  3794,  1230,
1323 -32768,  4464,  1839,   129,    -8,  -105,-32768,  1437,   -63,-32768,
1324   4081,  2623,  -293,-32768,  2343,-32768,-32768,   312,-32768,-32768,
1325    442,    75,  -397,-32768,-32768,-32768,-32768, -1311,-32768, -1146,
1326  -1329,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
1327 -32768,-32768,-32768,-32768,-32768,    85,-32768,-32768,-32768,-32768,
1328 -32768,   110, -1247,-32768,-32768,   -58,-32768,-32768,-32768,-32768,
1329  -1349,    50,-32768,    68,-32768,  -645,  -496,   633,-32768,-32768,
1330 -32768,-32768,  -383,-32768,  -366,  -111,-32768,   924,   324,-32768,
1331     46,-32768,  -214
1332 };
1333
1334
1335 #define YYLAST          10735
1336
1337
1338 static const short yytable[] = {    57,
1339    655,   399,   402,   407,   204,   452,   592,   236,   935,   923,
1340     70,    40,   653,    36,   120,   179,   478,   656,   371,   101,
1341    921,    35,   677,   278,   602,   335,   601,   336,   728,   710,
1342     57,   457,   460,   788,  1047,    57,   138,   142,   632,   451,
1343    471,    70,    40,    55,    36,   207,    70,    40,   459,    36,
1344    192,   915,    35,   974,   826,   976,   379,    35,   370,  1453,
1345     53,   377,  1003,   681,   570,   227,   382,    44,   173,   236,
1346    500,   503,   391,  1347,    55,  1400,   165,   276,  1449,    55,
1347   1120,   328,    84,   328,   570,   328,   240,   856,   277,   490,
1348    570,    53,   749,  1126,   856,    -1,    53,    56,    44,   943,
1349    328,   328,   533,    44,  1454,  1362,   229,  1010,   481,   343,
1350    468,   417,  1365,  1015,  1461,   236,   136,  1479,   191,   605,
1351     86,   380,   381,  -276,  -125,   786,   288,   968,    56,   389,
1352    328,    85,   328,    56,  1476,  1488,   674,   233,   157,   204,
1353     70,   490,    26,  1127,  1277,  1278,   944,   204,   204,   945,
1354   1510,   398,   401,   526,    57,   527,  1121,   969,  1298,   979,
1355    698,   667,   345,   349,   750,    70,   173,   858,  -328,  -276,
1356   -276,   890,   418,   388,   204,   275,  1502,  1533,   158,   773,
1357    207,  1489,   435,   437,  -269,  1004,  1212,   924,   207,    91,
1358    387,  1518,   980,   675,    -2,   787,   981,   386,    55,   173,
1359   1268,   948,   925,   718,   719,   419,   238,  -328,   606,   607,
1360    901,   418,  1479,    92,  1327,    53,    93,   108,   109,  1073,
1361    891,   432,    44,   204,  1327,   715,   902,    56,   455,   982,
1362    238,  -124,   933,   240,  1005,  1213,  1543,  1451,  1080,  1400,
1363    150,  1083,   751,   135,   419,   580,   926,   133,   949,  1269,
1364    575,   950,    56,    26,   353,   927,   928,   135,    87,   238,
1365    354,   671,   567,  1328,   661,   662,  1457,   433,   238,   110,
1366    111,   900,   227,  1425,   608,   204,   936,  1373,    88,  1108,
1367   1109,   105,   457,   460,  -591,  1544,  1379,  1380,   377,  1381,
1368    457,   772,   929,  1343,   602,   399,   402,   479,  1094,   713,
1369    635,   485,   460,   328,    15,   597,  1193,   106,  -387,  1486,
1370    762,   655,   640,   -43,   238,   576,   276,  1046,   -43,   894,
1371   -278,   460,     8,     9,   227,   107,  1149,   277,   954,   -43,
1372   -591,  -591,   328,   611,   708,    89,   204,  -387,  1154,   240,
1373    155,  -387,   714,   480,    70,  -591,  -551,   238,  1353,   658,
1374   1358,   598,   150,   150,   150,    90,   763,  1519,   478,   280,
1375    372,   373,    10,   125,   126,   520,  -278,  -278,   639,   592,
1376    238,  1174,   856,  1176,   128,   129,   414,   388,   162,   652,
1377    943,  -272,   136,   192,   154,   150,  -387,   156,  -278,   161,
1378    654,   643,  -551,   172,   610,   166,  1311,    21,   204,   204,
1379    207,   609,   137,  -278,   231,  -551,   204,  -278,  1097,    87,
1380    856,   170,    27,   298,   275,   128,   129,  -122,   204,     8,
1381    483,   171,  -337,  -278,    15,  1464,  1465,   944,   691,    88,
1382    945,    56,  -791,   769,   356,  -278,  -278,   204,  -278,   654,
1383   -278,  1209,  1210,   207,    32,   702,   703,    18,  1075,   856,
1384    424,  -551,   447,   222,    88,  -337,   357,   125,   126,  -337,
1385    279,   238,    13,   342,    57,   829,   224,   425,  1048,  -278,
1386   -278,   128,   129,   864,   136,    70,    90,   651,   114,   115,
1387    116,   877,   830,  1003,  -278,   341,   736,   685,   125,   126,
1388    580,   328,  -337,   716,   328,   484,   426,   328,   125,   126,
1389    580,   328,   778,   778,   778,   778,   567,    26,   744,   128,
1390    129,   831,  1310,   339,   328,   844,   351,   655,  1396,   865,
1391    866,   846,   238,   581,   328,   743,   651,   328,   742,   653,
1392    728,   117,   118,   582,   656,   829,   772,  1119,    26,   848,
1393    128,   129,   342,   583,   457,   355,   584,   585,   383,   958,
1394    128,   129,   830,   359,   125,   126,   520,   983,   204,   520,
1395    276,   845,    56,   775,   602,    38,   601,   847,  1155,   360,
1396   1345,   277,   879,   897,   484,  -269,   520,  1113,   404,   652,
1397     86,   831,   135,  1115,   172,   849,   691,   850,   852,   520,
1398    654,   490,   358,   802,   238,   959,    38,   654,   152,   204,
1399    240,    38,   149,   984,    26,   856,   128,   129,   964,   473,
1400    966,   908,   135,   913,   914,   970,    89,   125,   126,   824,
1401    833,   238,   481,  1114,   371,   840,    93,   108,   109,  1116,
1402    834,   328,   120,   856,   198,   199,    90,  1198,   204,   405,
1403     14,  1117,  1023,  1402,   835,   192,   150,   150,   150,   227,
1404   1497,  1521,  1535,   914,  1374,   474,  -586,   533,   275,   605,
1405    204,   283,    20,   934,   205,   206,    86,    26,    -7,   128,
1406    129,    23,   933,   580,  1182,  1184,  -338,   651,    15,   110,
1407    111,   112,   416,   833,   651,   125,   126,  1118,  1481,  1403,
1408    652,  1011,  1012,   834,  1013,   413,  1498,  1522,  1536,   504,
1409    505,   654,   445,   446,   728,   989,   238,   835,   529,  -338,
1410    152,   152,   152,  -338,   513,   400,   403,   514,   428,   772,
1411    515,   429,   238,   525,   526,   204,   527,   530,   773,   342,
1412   -101,    57,    15,    57,  1514,   569,   486,   128,   129,   192,
1413     57,   487,    70,   152,    70,   488,  -338,   149,   652,   328,
1414    328,    70,   328,   736,   652,   736,   489,  1194,  1195,   654,
1415   1197,   232,   736,  -101,  1184,   654,   497,  -101,   453,   454,
1416   1093,   977,   978,  1264,  1266,   744,   507,   744,  1270,   506,
1417   1006,    93,    94,    95,   744,   208,   209,   210,   651,   554,
1418    555,   -99,   743,    15,   975,   742,   508,   742,     8,     9,
1419   -101,   743,    89,   742,   742,   616,   988,   998,   509,  1491,
1420   -123,  1020,  1021,  1022,   211,     8,     9,  1325,  1326,  1308,
1421    510,   328,    90,   529,   -99,  1511,  1050,   619,   -99,    56,
1422    570,    56,    26,   620,    96,    97,   212,   622,    56,   445,
1423   1419,   236,   342,   453,  1420,    87,   651,    93,   108,   109,
1424    128,   129,   651,  1156,   778,  1144,  1145,  1146,   623,   342,
1425    652,   -99,     8,     9,   691,    88,  -547,   128,   129,  -547,
1426     87,   654,   636,   850,   852,   654,   624,   522,  1330,   240,
1427    637,   213,   214,   215,  1169,  1170,  1171,   445,  1424,   638,
1428     88,   232,  1053,   125,   126,   665,   652,    89,   778,   328,
1429    110,   111,   652,   686,   861,  1331,   342,   654,   643,  1368,
1430     -6,  1098,  1099,   654,   128,   129,  -547,    90,  -547,  -547,
1431    704,  -547,   668,   125,   126,   236,   520,   963,   481,   773,
1432    513,   514,  -547,   709,  -547,    15,  1406,   989,   484,   125,
1433   1295,   691,   754,    26,   755,   128,   129,  1394,  1417,    15,
1434   -547,  -547,   654,  -387,   778,   756,   399,   402,   651,   491,
1435    328,  1008,   651,   764,   757,  -547,   765,   652,   782,   492,
1436    784,   785,   675,    26,   787,   128,   129,   843,   654,   652,
1437    841,  -387,  -387,   342,   399,   402,  -387,    87,   857,   491,
1438    654,   128,   129,   859,   651,  1375,  1201,   125,   126,   492,
1439    651,   238,    57,   238,   152,   152,   152,    88,   861,   400,
1440    403,   882,   652,    70,   652,   484,   114,   718,   719,   883,
1441   1158,   892,  1142,   654,   736,   654,  1160,  1161,  1406,   893,
1442   1158,  1163,   895,   236,  1161,   760,   896,   127,   988,   651,
1443    238,   778,    89,   721,    20,   971,   744,    26,  1406,   128,
1444    129,   903,    89,   904,   328,   233,   655,    15,   917,  -272,
1445    922,  -387,    90,   743,   418,   651,   742,    26,   522,   117,
1446    118,   522,    90,  1472,  1315,  1494,   940,   651,   941,   942,
1447   -790,   761,   947,   956,    93,    94,    95,   400,   783,  -387,
1448   -387,   972,   985,   986,     9,    10,   960,   652,   965,   967,
1449     56,   522,   961,   934,  1007,  1406,  1215,  1216,   654,  1024,
1450    651,  1025,   651,   677,   150,  1026,  1029,  1027,  1251,  1028,
1451   1030,  1031,   773,  1032,   238,   691,   361,   362,   363,    70,
1452     21,  1033,  1246,  1034,  1215,  1216,   654,    96,    97,  -121,
1453   1245,  1036,  1037,    26,  1039,    27,    28,  1040,  1042,  1150,
1454    318,   987,   318,   150,   318,  1041,  1055,   683,  1058,   176,
1455    872,    57,  1250,  1057,   689,     7,     8,   230,    10,   177,
1456   1537,   364,    70,   114,   115,   116,  1059,    32,  1060,   365,
1457    366,  1066,   178,   736,  1067,  1068,  1074,   520,  1151,  1152,
1458    361,   362,   363,  1086,  1076,   651,  1077,  1112,   204,   318,
1459   1079,   318,  1089,    21,  1092,   744,   238,  1135,  1141,  1159,
1460    231,  1352,  1164,  1352,  1168,  1172,    56,  1165,    27,    28,
1461   1177,   485,   743,   651,    26,   742,   117,   118,   770,    93,
1462     94,    95,   238,  1178,  1304,  1305,  1306,  1307,  1179,  1180,
1463   1251,    26,   232,   365,   366,   192,  1185,  1251,  1187,  1188,
1464     32,    70,  1056,  1196,  1251,  1189,  1192,   490,    70,    56,
1465   1200,  1246,  1245,   778,  1202,    70,  1460,  1203,  1246,  1245,
1466   1211,  1204,  1207,  1214,   342,  1219,  1245,   399,   402,  1208,
1467    513,   514,    96,    97,  1250,  1263,   114,   718,   719,  1120,
1468    238,  1250,   823,     7,   125,   126,    10,  1342,  1250,    13,
1469   1272,     8,     9,  1273,  1276,    12,    13,   150,   150,   150,
1470    425,    14,     7,   125,   126,    10,   549,   550,   551,   552,
1471    553,   554,   555,  1377,  1378,    16,  1280,    17,  -628,   876,
1472   1302,    21,  1303,    20,  1309,   150,   150,   150,    56,   117,
1473    118,   872,    23,  1313,    26,    56,    27,    28,  1314,  1319,
1474     21,    26,    56,   128,   129,   563,  1320,   231,   198,   199,
1475     30,  1321,  1322,   511,    14,    27,    28,  1395,  1283,  1284,
1476     31,  1293,  1294,  1329,  1296,  1338,  1339,  1340,    32,  1348,
1477   1350,  1363,  1409,    33,  1366,  1390,    20,  1391,   455,   232,
1478    564,   204,  1392,  1393,  1398,    23,  1410,    32,  1444,  1414,
1479   1415,   318,  1416,  1251,  1251,  1444,  1439,  1475,  1251,   277,
1480   1448,  1418,  1440,  1458,    70,    70,   277,  1246,   328,    70,
1481   1468,  1466,  1246,  1474,  1483,  1245,  1245,   702,   703,  1484,
1482   1245,   280,   372,   373,    10,   652,  1492,   400,   783,  1493,
1483   1505,  1509,  1251,  1516,  1517,  1520,   654,  1250,  1250,  1523,
1484   1525,  1251,  1250,    70,  1526,  1530,  1246,  1534,  1539,  1538,
1485   1442,  1541,    70,  1546,  1245,  1246,   802,  1442,  1547,    21,
1486   1199,  1549,   152,  1245,  1550,     1,   149,  1444,   670,     5,
1487    520,  1095,    26,   634,    27,   298,  1250,  1490,   277,   680,
1488    684,   411,  1371,  1372,   412,  1250,   275,   684,   999,  1251,
1489   1220,    56,    56,   275,   338,   392,    56,  1495,  1405,  1545,
1490     70,   152,  1312,  1246,   496,  1132,    32,   649,    93,    94,
1491     95,  1245,   551,   552,   553,   554,   555,  1088,  1355,    93,
1492    108,   109,   475,   651,  1274,   939,  1147,  1251,  1087,  1442,
1493     56,   513,   514,  1250,  1166,   467,  1001,  1297,    70,    56,
1494   1085,  1246,   448,   885,   577,  1515,  1043,  1044,   369,  1245,
1495    318,   684,  1049,  1361,   150,  1260,   649,    21,  1487,    26,
1496   1529,    96,    97,    98,  1512,   275,  1061,  1528,  1062,   828,
1497   1063,  1250,   110,   111,   802,  1524,  1134,  1431,  1432,  1433,
1498   1531,  1367,     0,   318,     0,   680,     0,    56,   799,   800,
1499      0,   804,   805,   806,   807,   808,   809,   810,   811,   812,
1500    813,   814,   815,   816,   817,   818,   819,   820,   821,   822,
1501      0,     0,     0,  1091,     0,   684,     0,     0,   150,   150,
1502    150,     0,     0,   556,   962,    56,   280,   372,   373,    10,
1503   1462,  1463,     0,    93,   108,   109,     0,   208,   209,   210,
1504      0,     0,     0,     0,     0,   684,     0,     0,   525,     0,
1505   1110,     0,   684,     0,     0,   152,   152,   152,     0,     0,
1506    400,   403,   557,   558,    21,  1009,   211,   559,   560,   561,
1507    562,  1014,     0,     0,   887,   889,     0,     0,     0,    27,
1508    298,     0,     0,   152,   152,   152,   110,   111,   400,  1262,
1509    318,     0,     0,     0,     0,   731,  1513,     7,     8,   732,
1510     10,   385,    12,    13,     0,     0,     0,   649,    14,     0,
1511      0,    32,     0,     0,   649,     0,     0,     0,     0,     0,
1512      0,    99,    16,     0,    17,    18,    19,     0,     0,   113,
1513     20,  -494,     0,   680,     0,    21,     0,     0,     0,    23,
1514    733,     0,   642,     7,     8,     9,    10,     0,    26,     0,
1515     27,    28,     0,     0,   734,     0,   735,     0,     0,     0,
1516    280,     8,     9,    10,    30,     0,     0,     0,     0,     0,
1517    216,     0,     0,  1069,    31,  1070,   682,   280,   125,   126,
1518     10,    21,    32,   682,     0,     0,     0,    33,     0,   973,
1519      0,     0,     0,     0,    26,     0,    27,    28,    21,     0,
1520    175,     0,     0,  -494,     0,   231,     0,     0,   318,   318,
1521    176,   318,     0,    27,   298,    21,     0,     0,   649,     0,
1522    177,     0,   231,     0,   513,   514,   684,     0,    32,   367,
1523     27,   298,    78,   178,     0,  1221,     0,  1222,     0,  1223,
1524      0,     0,   102,     0,     0,    32,     0,   682,  1035,     0,
1525      0,   396,   131,     0,   125,   126,     0,     0,   140,   140,
1526      0,   140,    32,    78,     0,    93,   108,   109,    78,   625,
1527    626,   627,     0,     0,     0,     0,   649,     0,     0,   684,
1528    684,   186,   649,    78,   680,   684,     0,     0,     0,     0,
1529      0,   219,     0,     0,     0,     0,     0,   580,   102,   684,
1530      0,   684,     0,   684,    26,     0,   128,   129,     0,   242,
1531    102,   682,   152,     0,     0,     0,  1132,     0,   110,   111,
1532    581,   197,   198,   199,     0,     0,   463,   465,    14,  1173,
1533    582,  1175,   102,  1318,     0,     0,  1084,     0,   476,     0,
1534    583,   682,     0,   584,   585,    18,   684,     0,   682,     0,
1535     20,     0,     0,     0,     0,   131,     0,     0,   318,    23,
1536    131,     0,    78,     0,   348,   350,   140,     0,     0,   394,
1537    140,  1107,     0,   140,   140,   140,   152,   152,   152,     0,
1538      0,   400,  1262,   684,     0,  1206,     0,    78,   649,     0,
1539      0,     0,   649,     7,     8,     9,    10,     0,     0,    13,
1540    684,     0,     0,     0,   186,   186,   186,   512,   542,   543,
1541    544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
1542    554,   555,   125,   126,   649,     0,   198,   199,     0,     0,
1543    649,    21,    14,   186,     0,     0,     0,   580,     0,     0,
1544      0,  1157,     0,     0,    26,     0,    27,    28,   466,   618,
1545    436,   438,   442,     0,    20,     0,   102,     0,   628,     0,
1546    905,  1275,     0,    23,     0,   580,  1279,   140,     0,   649,
1547    906,   618,    26,     0,   128,   129,     0,     0,    32,     0,
1548    583,     0,     0,   907,   585,   456,   198,   199,   581,     0,
1549    680,   680,    14,     0,  1186,   649,     0,     0,   582,     0,
1550      0,     0,     0,     0,     0,   102,   493,   649,   583,    18,
1551      0,   591,   585,   318,    20,     0,     0,     0,  1316,     0,
1552      0,     0,   682,    23,     0,     0,     0,     0,     0,     0,
1553      0,   571,     0,   280,   372,   373,    10,     0,   572,     0,
1554    649,     0,   649,     0,     0,   197,   198,   199,     0,   102,
1555      0,     0,    14,   578,     0,   493,   493,   594,     0,     0,
1556      0,     0,     0,     0,     0,     0,    78,   524,   684,    18,
1557    684,    21,   684,   717,    20,   682,   682,     0,   573,     0,
1558    680,   682,   131,    23,    26,     0,    27,   298,     0,   680,
1559    680,     0,     0,     0,   680,   682,     0,   682,   659,   682,
1560      0,   599,     8,     9,    10,     0,   131,     0,     0,  1281,
1561   1282,     0,   102,  1386,  1387,   186,   102,     0,   574,     0,
1562      0,     0,     0,     0,     0,   649,   140,     0,     0,   140,
1563   1397,     0,     0,     0,   140,   680,   288,   600,   795,    21,
1564      0,     0,   682,   648,     0,     0,     7,     8,     9,    10,
1565      0,     0,    26,   649,   128,   129,     0,     0,     0,     0,
1566      0,     0,     0,   186,     0,   186,   684,   186,   186,   186,
1567      0,     0,     0,   186,   280,     8,     9,    10,   186,   682,
1568    842,   186,  1427,  1428,    21,     0,     0,     0,     0,     0,
1569   1337,   231,   690,     0,     0,     0,   682,    78,     0,    27,
1570     28,  1437,  1438,     0,     0,     0,     0,     0,     0,   700,
1571      0,   701,    21,   436,   438,   442,     0,     0,     0,   231,
1572      0,     0,     0,   232,   712,   680,     0,    27,   298,     0,
1573      0,    32,     0,     0,     0,   102,   102,   102,   102,     0,
1574      0,  1376,     0,   114,   718,   719,     0,   720,   899,     0,
1575      0,   232,     0,     0,     0,     0,     0,     0,   771,    32,
1576    916,   774,     0,   680,     0,   776,   777,   779,   780,   781,
1577    721,     0,     0,     0,     0,     0,     0,   722,   524,     0,
1578      0,     0,     7,     8,     9,    10,   795,     0,   226,     0,
1579      0,   798,     0,   102,    26,   493,   117,   118,     0,     0,
1580      0,   197,   198,   199,     0,     0,     0,   578,    14,   493,
1581    493,   684,   594,     0,     0,     0,     0,     0,     0,   873,
1582     21,     0,     0,   875,     0,    18,   580,     0,  1429,  1430,
1583     20,     0,     0,    26,     0,    27,    28,  1435,   186,    23,
1584      0,     0,     0,   854,     0,     0,     0,     0,     0,   905,
1585    854,     0,     0,     0,   880,     7,     8,     9,    10,   906,
1586      0,    13,     0,     0,   682,  1455,   682,    32,   682,   583,
1587      0,     0,   907,   585,     0,     0,     0,   186,   912,   186,
1588    186,   219,   594,   280,     8,     9,    10,     0,     0,     0,
1589      0,     0,     0,    21,     0,     0,     0,     0,     0,   580,
1590      0,     0,     0,   195,     0,   203,    26,     0,    27,    28,
1591    547,   548,   549,   550,   551,   552,   553,   554,   555,   186,
1592      0,    21,  1100,   912,     0,     0,     0,     0,   231,     0,
1593    186,   186,  1101,   186,     0,     0,    27,   298,     0,     0,
1594     32,     0,   583,     0,     0,  1102,   585,     7,     8,     9,
1595     10,   197,   198,   199,   648,     0,     0,     0,    14,     0,
1596    484,   131,   682,   649,    78,     0,    78,     0,    32,     0,
1597      0,   996,    78,    78,     0,    18,   700,   701,     0,   712,
1598     20,   102,     0,     0,     0,    21,   680,   102,     0,    23,
1599      0,   580,     0,     0,   493,   493,   493,   628,    26,     0,
1600     27,    28,     0,     0,     0,     0,   493,   899,     0,     0,
1601      0,     0,   690,   415,   905,     0,    81,   994,   690,     0,
1602      0,     0,     0,     0,   906,     0,   104,     0,     0,     0,
1603      0,     0,    32,     0,   583,   124,   132,   907,   585,     0,
1604    203,     0,   141,   141,     0,   141,     0,    81,   458,   203,
1605      0,     0,    81,     0,     0,     0,     0,     0,     0,   589,
1606    593,   596,     0,     0,     0,   141,     0,    81,     0,     0,
1607      0,     0,     0,     0,     0,   220,     0,     0,   493,     0,
1608    493,     0,   228,     0,     0,  1045,     0,   102,     0,     0,
1609      0,   493,     0,   102,   228,   873,   873,   873,     0,     0,
1610      0,     0,  1078,     0,     0,     0,     0,   682,     0,     0,
1611      0,     0,     0,     0,     0,     0,     0,     0,   798,     0,
1612    125,   126,     0,     0,   690,   226,     0,     0,   854,   102,
1613      0,   102,     0,   186,   186,  1104,     0,     0,     0,   378,
1614      0,     0,     0,     0,  1183,     0,    81,     0,     0,     0,
1615    141,     0,     0,     0,   141,     0,     0,   141,   141,   141,
1616    648,     0,  1096,   580,     0,     0,   854,     0,     0,     0,
1617     26,    81,   128,   129,  1104,     7,     8,     9,    10,   436,
1618    438,   442,     0,     0,     0,     0,   581,   102,   141,   141,
1619    141,     0,     0,     0,     0,     0,   582,     0,     0,     0,
1620    102,     0,     0,   996,     0,   854,   583,     0,     0,   584,
1621    585,     0,   102,    21,     0,     0,     0,   141,  1137,   580,
1622    442,     0,     0,     0,  1143,  1162,    26,  1225,    27,    28,
1623      0,   690,     0,  1183,     0,    78,   195,   203,     0,     0,
1624      0,     0,   905,   690,     0,   102,     0,   102,     0,   994,
1625      0,   141,   906,     0,     0,     0,     0,     0,     0,     0,
1626     32,     0,   583,     0,     0,   907,   585,     0,     0,     0,
1627      0,     0,     0,     0,   102,     0,   690,     0,   690,   493,
1628    493,     0,   493,     0,     0,     0,     0,     0,     0,   228,
1629    141,     0,   415,     0,     0,     0,     0,     0,     0,   458,
1630    203,     0,     0,   415,     0,  1191,     0,   458,     0,     0,
1631      0,     0,     0,   851,   853,     0,     0,     0,     0,     0,
1632    415,     0,     0,     0,     0,     0,   186,   186,   186,   186,
1633   1104,     0,     0,   228,   186,     0,     0,   579,     0,   141,
1634    141,   595,     0,     0,     0,     0,   604,     0,  1344,     0,
1635     81,     0,     0,     0,     0,     0,  1104,  1104,  1104,     0,
1636      0,   854,     0,     0,     0,     0,   378,     0,     0,     0,
1637      0,     0,   700,   701,   436,   438,   442,     0,     0,     0,
1638    712,   910,     0,   589,   593,     0,   596,   186,     0,   854,
1639      0,     0,   140,     0,    78,     0,   228,     0,     0,   141,
1640    228,     0,   436,   438,   442,     0,     0,     0,     0,     0,
1641    141,     0,     0,   141,     0,     0,     0,     0,   141,     0,
1642      0,     0,     0,   593,     0,     0,     0,     0,     0,     0,
1643      0,     0,  1401,  1291,     0,     0,     0,     0,     0,     0,
1644      0,     0,     0,   186,   186,     0,   186,   141,     0,   141,
1645      0,   141,   141,   141,     0,     0,     0,   141,     0,   203,
1646      0,     0,   141,     0,     0,   141,     0,     0,     0,     0,
1647      0,     0,     0,     0,     0,     0,     0,   186,   912,   186,
1648    730,    81,     0,     8,     9,     0,     0,    12,    13,   700,
1649    701,     0,   712,    14,     0,     0,   102,     0,   195,     0,
1650    203,     0,     0,     0,     0,     0,     0,    16,     0,    17,
1651    593,     0,     0,     0,     0,    20,     0,     0,     0,   228,
1652    228,   228,   228,     0,    23,     0,     0,  1137,     0,     0,
1653      0,     0,     0,    26,     0,   128,   129,     0,     0,   203,
1654    538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
1655    548,   549,   550,   551,   552,   553,   554,   555,     0,     0,
1656      0,   458,     0,     0,   415,     0,     0,     7,     8,     9,
1657     10,     0,   827,   481,     0,     0,     0,   228,     0,   141,
1658      0,     0,  1064,     0,  1065,  1104,     0,     0,     0,     0,
1659      0,     0,   195,   141,   141,  1071,   595,     0,   415,   851,
1660    853,     0,     0,   874,     0,    21,     0,     0,     0,     0,
1661      0,   580,     0,     0,     0,     0,   604,     0,    26,     0,
1662     27,    28,   141,     0,     0,     0,     0,     0,     0,     0,
1663      0,   442,     0,     0,   905,   125,   126,   851,   853,   198,
1664    199,     0,     0,     0,   906,    14,     0,     0,     0,  1104,
1665   1104,  1104,    32,   124,   583,     0,     0,   907,   585,     0,
1666      0,   141,   595,   141,   141,   220,   595,    20,   102,     0,
1667      0,     0,     0,   186,     0,     0,    23,     0,   580,     0,
1668      0,     0,   524,     0,   730,    26,     0,   128,   129,     0,
1669      0,   239,     0,     0,     0,   436,   438,   442,     0,   648,
1670      0,   581,     0,   141,     0,     0,     0,   595,     0,     0,
1671      0,   582,     0,     0,   141,   141,     0,   141,     0,     0,
1672      0,   583,     0,     0,   584,   585,     0,     0,     0,     0,
1673      7,     8,     9,    10,   197,   198,   199,     0,     0,     0,
1674      0,    14,     0,     0,     0,   132,     0,     0,    81,     0,
1675     81,   985,   986,     9,    10,   997,    81,    81,    18,     0,
1676      0,     0,     0,    20,   406,   228,     0,     0,    21,     0,
1677      0,   228,    23,     0,   580,     0,     0,     0,   141,   141,
1678    141,    26,     0,    27,    28,   434,     0,     0,     0,    21,
1679    141,     0,     0,     0,     0,     0,     0,   905,   450,     0,
1680      0,     0,    26,     0,    27,    28,     0,   906,     0,     0,
1681    987,     0,     0,     0,     0,    32,     0,   583,   176,     0,
1682    946,   585,     0,     0,     0,   415,   415,     0,   177,     0,
1683   1064,  1065,   851,   853,     0,     0,    32,     0,  1071,     0,
1684      0,   178,     0,   731,     0,     7,     8,   732,    10,   385,
1685     12,    13,     0,     0,   415,     0,    14,     0,     0,     0,
1686    851,   853,   141,     0,   141,     0,     0,     0,     0,     0,
1687     16,   228,    17,    18,    19,   141,     0,   228,    20,   874,
1688    874,   874,     0,    21,     0,     0,   604,    23,   733,     0,
1689    642,     0,     0,     0,     0,     0,    26,     0,    27,    28,
1690     49,     0,   734,     0,   735,     0,     0,     0,     7,   125,
1691    126,    10,    30,   228,   226,   228,     0,   141,   141,   595,
1692      0,     0,    31,     0,     0,     0,    49,    49,     0,   148,
1693     32,    49,     0,     0,     0,    33,    49,     0,     0,     0,
1694      0,     0,     0,     0,     0,     0,    21,  1064,  1065,    49,
1695   1071,    49,     0,     0,     0,     0,     0,     0,   874,    26,
1696      0,    27,    28,     0,     0,     0,     0,     0,     0,     0,
1697      0,   228,     0,     0,   234,    30,     0,     0,     0,     0,
1698      0,     0,   730,     0,   228,    31,     0,   997,     0,     0,
1699      0,     0,     0,    32,     0,     0,   228,     0,    33,     0,
1700      0,     0,     0,     0,     0,   415,   415,     0,   415,   415,
1701      0,   415,     0,     0,     0,     0,     0,     0,     0,    81,
1702      0,     0,     0,   375,     0,     0,     0,   375,   375,   228,
1703     49,   228,     0,     0,    49,     0,   234,     0,    49,     0,
1704      0,   148,   148,   148,     0,     0,     0,     0,     0,     0,
1705      0,     0,     0,     0,   705,    49,     0,     0,   228,   711,
1706      0,     0,     0,   141,   141,     0,   141,     0,     0,     0,
1707      0,     0,    49,    49,   148,     0,     0,     0,     0,     0,
1708      0,     0,   234,     0,   752,     7,   125,   126,    10,     0,
1709    758,    13,     0,     0,     0,     0,     0,     0,   195,   203,
1710      0,    49,   766,   767,     0,   768,  1285,  1286,     9,    10,
1711    141,   141,   141,   141,   595,     0,     0,     0,   141,     0,
1712      0,     0,     0,    21,   730,     0,     0,     0,     0,   415,
1713    415,     0,     0,     0,     0,    49,    26,     0,    27,    28,
1714    874,   874,   874,     0,    21,     0,     0,     0,     0,     0,
1715      0,     0,   145,     0,     0,     0,   730,    26,     0,    27,
1716     28,     0,   146,     0,     0,  1287,     0,     0,     0,     0,
1717     32,   141,     0,   176,     0,   147,   141,     0,    81,     0,
1718      0,     0,     0,   177,     0,     0,     0,    76,     0,     0,
1719      0,    32,     0,     0,     0,     0,   178,     0,   862,   863,
1720      0,     0,     0,   862,   521,  1285,   125,   126,    10,   586,
1721    586,   586,     0,    76,    76,     0,    76,     0,    76,     0,
1722      0,   375,     0,    76,   415,   415,   415,   141,   141,   234,
1723    141,     0,     0,     0,    49,     0,    76,     0,    76,     0,
1724      0,     0,     0,    21,     0,     0,     0,     0,     0,     0,
1725    375,     0,     0,     0,     0,     0,    26,     0,    27,    28,
1726      0,   141,   595,   141,  1287,     0,     0,     0,     0,     0,
1727      0,     0,    30,     0,   375,     0,     0,   415,   415,     0,
1728    228,     0,    31,    49,     0,     0,     0,     0,     0,     0,
1729     32,     0,     0,     0,    49,    33,     0,    49,     0,     0,
1730      0,     0,    49,   543,   544,   545,   546,   547,   548,   549,
1731    550,   551,   552,   553,   554,   555,     0,    76,     0,     0,
1732      0,    76,     0,     0,     0,    76,     0,     0,    76,    76,
1733     76,    49,     0,    49,     0,   148,   148,   148,     0,     0,
1734      0,    49,    76,   415,     0,     0,    49,     0,     0,    49,
1735      6,     0,     7,     8,     9,    10,    11,    12,    13,    76,
1736     76,    76,     0,    14,     0,    49,     0,     0,     0,   874,
1737      0,  1016,     0,  1018,     0,     0,     0,    16,     0,    17,
1738     18,     0,     0,     0,     0,    20,     0,     0,    76,     0,
1739     21,     0,     0,     0,    23,   521,     0,   410,   521,     0,
1740      0,     0,     0,    26,     0,    27,    28,     0,     0,    29,
1741      0,     0,     0,   521,   521,   521,     0,     0,     0,    30,
1742      0,     0,    76,     0,     0,     0,     0,     0,   521,    31,
1743      0,     0,     0,   874,   874,   874,     0,    32,     0,     0,
1744      0,     0,    33,     0,  1051,  1052,     0,  1054,     0,   125,
1745    126,     0,   228,     0,   481,     0,     0,   141,     0,     0,
1746      0,     0,     0,   586,   586,     0,   586,     0,     0,     0,
1747      0,     0,     0,   871,   234,  1072,     7,     8,     9,    10,
1748      0,     0,    13,     0,     0,     0,     0,   521,     0,     0,
1749      0,     0,   580,     0,     0,     0,     0,     0,     0,    26,
1750      0,   128,   129,   153,     0,     0,    49,     0,     0,     0,
1751      0,     0,     0,     0,    21,   581,     0,   603,     0,     0,
1752   1106,    76,     0,   187,     0,   582,     0,    26,     0,    27,
1753     28,   586,     0,   586,   586,   583,   586,     0,   584,   585,
1754      0,     0,     0,   176,     0,    49,    49,    49,    49,     0,
1755      0,     0,     0,   177,     0,     0,     0,     0,     0,     0,
1756      0,    32,     0,     0,     0,     0,   178,     0,     0,     0,
1757     76,     0,     0,   586,     0,     0,     7,   125,   126,    10,
1758      0,    76,  1148,     0,    76,     0,     0,    49,     0,    76,
1759      0,    49,     0,     0,  1153,     0,     0,     0,    49,    49,
1760      0,    49,     0,     0,     7,   125,   126,    10,     0,     0,
1761    481,     0,     0,     0,    21,   153,   153,   153,    76,     0,
1762     76,     0,    76,    76,    76,     0,     0,    26,    76,    27,
1763     28,     0,    49,    76,    49,     0,    76,     0,     0,    49,
1764     49,    49,    21,   145,     0,     0,   187,   187,   443,     0,
1765      0,     0,    76,   146,     0,    26,     0,    27,    28,     0,
1766    586,    32,     0,     0,     0,     0,   147,     0,   521,     0,
1767      0,    30,     0,     0,     0,   187,     0,     0,  1205,     0,
1768      0,    31,     0,     0,     0,     0,     8,     9,     0,    32,
1769     12,   226,     0,     0,    33,     0,    14,   544,   545,   546,
1770    547,   548,   549,   550,   551,   552,   553,   554,   555,     0,
1771     16,     0,    17,     0,     0,     0,  1218,     0,    20,     7,
1772      8,     9,    10,   188,    12,   189,     0,    23,     0,     0,
1773     14,     0,   586,     0,   586,     0,    26,     0,   128,   129,
1774      0,     0,     0,     0,    16,   586,    17,    18,   494,   871,
1775    871,   871,    20,     0,     0,     0,     0,    21,     0,     0,
1776      0,    23,   603,   521,   521,   521,     0,     0,     0,   234,
1777     26,     0,    27,    28,     0,     0,   190,     0,     0,  1300,
1778      0,     0,     0,  1301,     0,     0,    30,   586,   586,   586,
1779      0,     0,     0,    76,     0,     0,    31,   588,   588,   588,
1780      0,    49,    49,   148,    32,     0,     0,     0,   234,    33,
1781      0,     0,     7,     8,     9,    10,     0,     0,  1317,     0,
1782      0,     0,     0,     0,     0,     0,     0,     0,   871,     0,
1783      0,     0,    76,    76,    76,    76,     0,     0,     0,     0,
1784      0,     0,  1131,     0,     0,     7,     8,     9,    10,     0,
1785     21,   226,     0,     0,     0,     0,     0,   187,     0,     0,
1786      0,     0,     0,    26,     0,    27,    28,     0,     0,  1351,
1787      0,    49,     0,     0,    76,     0,     0,     0,    76,   176,
1788      0,     0,     0,    21,     0,    76,    76,  1369,    76,   177,
1789      0,  1370,   234,     0,     0,     0,    26,    32,    27,    28,
1790      0,     0,   178,    49,     0,   187,   185,   187,     0,   443,
1791    443,   443,   176,  1388,  1389,   187,     0,     0,     0,    76,
1792    187,    76,   177,   187,     0,     0,    76,    76,    76,     0,
1793     32,   237,     0,     0,   241,   178,     0,     0,     7,     8,
1794      9,    10,     0,     0,    13,     0,     0,     0,     0,     0,
1795      0,     0,     0,     0,     0,   237,     0,   344,   540,   541,
1796    542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
1797    552,   553,   554,   555,   234,     0,    21,     0,     0,     0,
1798    586,   586,   586,   586,   586,     0,     0,     0,   586,    26,
1799      0,    27,    28,     0,    49,    49,   148,   148,   148,     0,
1800    234,     0,    49,     0,     0,   439,     0,     0,     0,     0,
1801    871,   871,   871,     0,     0,   440,     0,     0,     0,     0,
1802      0,     0,     0,    32,  1131,  1131,  1131,     0,   441,   185,
1803    185,   185,     0,     0,     0,     0,     0,   836,     0,   449,
1804      7,     8,     9,    10,     0,     0,   481,     0,     0,     0,
1805      0,   588,   588,     0,   588,    49,     0,   603,   185,     0,
1806     49,   588,    49,   541,   542,   543,   544,   545,   546,   547,
1807    548,   549,   550,   551,   552,   553,   554,   555,    21,     0,
1808    187,   241,     0,     0,     0,     0,     0,     0,    76,    76,
1809     76,    26,     0,    27,    28,   237,     0,   586,   586,     0,
1810    586,     0,     0,     7,     8,     9,    10,   176,     0,     0,
1811      0,    49,    49,     0,    49,     0,     0,   177,     0,   909,
1812      0,   909,   909,     0,   588,    32,     0,     0,     0,  1133,
1813    178,     7,     8,     9,    10,     0,     0,     0,     0,     0,
1814      0,    21,     0,     0,     0,    49,    49,    49,     0,     0,
1815      0,     0,     0,     0,    26,     0,    27,    28,    76,     0,
1816      0,   909,     0,     0,     0,     0,     0,     0,     0,    21,
1817    439,     0,   187,   187,     0,   187,     0,     0,     0,     0,
1818    440,     0,    26,     0,    27,    28,   237,   241,    32,     0,
1819     76,     0,     0,   441,     0,     0,     0,     0,   176,   731,
1820      0,     7,     8,   732,    10,   385,    12,    13,   177,     0,
1821      0,     0,    14,   187,     0,     0,    32,     0,     0,     0,
1822      0,   178,     0,     0,     0,     0,    16,     0,    17,    18,
1823     19,     0,     0,     0,    20,  -495,   494,   494,   494,    21,
1824    185,     0,     0,    23,   733,     0,   642,     0,   588,     0,
1825      0,     0,    26,  1131,    27,    28,     0,     0,   734,     0,
1826    735,     0,     0,     0,     0,     0,     0,     0,    30,     0,
1827      0,     0,     0,     0,     0,     0,     0,     0,    31,     0,
1828      0,    76,    76,    76,    76,    76,    32,     0,   185,    76,
1829    185,    33,   185,   185,   185,     0,     0,     0,   185,     0,
1830      0,     0,     0,   185,     8,     9,   185,  -495,    12,    13,
1831      0,  1133,  1133,  1133,    14,     0,     0,  1131,  1131,  1131,
1832    588,     0,   588,     0,     0,     0,     0,     0,    16,     0,
1833     17,     0,     0,   588,     0,     0,    20,   588,   588,   588,
1834      0,    49,    76,    74,     0,    23,     0,    76,     0,    76,
1835      0,     0,     0,     0,    26,     0,   128,   129,     0,     0,
1836      0,     0,     0,     0,     0,     0,     0,     0,     0,   139,
1837    143,     0,     0,     0,    74,   909,   909,  1105,     0,    74,
1838      0,     0,   731,     0,     7,     8,   732,    10,   385,    12,
1839     13,     0,     0,     0,   196,    14,     0,     0,    76,    76,
1840      0,    76,     0,     0,     0,     0,     0,     0,     0,    16,
1841      0,    17,    18,    19,     0,     0,  1105,    20,  -497,     0,
1842      0,     0,    21,     0,     0,     0,    23,   733,     0,   642,
1843      0,     0,    76,    76,    76,    26,     0,    27,    28,     0,
1844      0,   734,     0,   735,     0,   187,     0,   237,   241,     0,
1845      0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
1846      0,    31,     0,   185,     0,     0,     0,     0,     0,    32,
1847      0,     0,     0,   390,    33,     0,     0,   393,     0,     0,
1848      0,   395,     8,     9,   100,   385,    12,    13,     0,     0,
1849   -497,     0,    14,   119,   100,     0,     0,     0,    74,     0,
1850    100,   100,   185,   100,   185,   185,    16,     0,    17,    18,
1851      0,     0,     0,     0,    20,   139,   143,     0,     0,     0,
1852      0,   836,   836,   641,   836,     0,   642,     0,     0,     0,
1853      0,     0,    26,   218,   128,   129,     0,     0,     0,     0,
1854   1133,     0,     0,     0,   185,     0,     0,     0,     0,     0,
1855      0,     0,     0,     0,     0,   185,   185,     0,   185,     0,
1856      0,     0,     0,     0,     0,     0,     0,     0,   909,   909,
1857   1105,  1105,  1105,     0,     0,     0,   909,     0,   482,     0,
1858      0,     0,     0,   241,     0,     0,     0,     0,     0,     0,
1859      0,     0,   368,     0,   119,     0,   185,   100,  1105,  1105,
1860   1105,   100,   100,     0,  1133,  1133,  1133,     0,   100,     0,
1861    100,   100,   100,     0,     0,   100,   100,   100,     0,     0,
1862   -359,     8,     9,  -359,  -359,    12,   226,     0,    76,   187,
1863      0,    14,     0,     0,     0,     0,     0,     0,     0,     0,
1864      0,     0,     0,     0,     0,    16,     0,    17,  -359,     0,
1865      0,     0,     0,    20,     0,     0,     0,     0,  -359,     0,
1866      0,     0,    23,     0,   580,     0,     0,     0,     0,     0,
1867      0,    26,     0,   128,   129,     0,     0,   612,     0,     0,
1868      0,     0,     0,     0,     0,   909,   909,   581,   909,   464,
1869    100,     8,     9,     0,   385,    12,    13,   582,     0,   688,
1870      0,    14,     0,     0,     0,  -359,     0,   583,     0,   100,
1871    584,   585,     0,     0,     0,    16,     0,    17,    18,   187,
1872      0,   187,     0,    20,     0,     0,   237,   241,   237,     0,
1873      0,     0,    23,     0,   580,     0,     0,   663,     0,     0,
1874    664,    26,     0,   128,   129,   666,     0,     0,   100,     0,
1875      0,     0,     0,     0,     0,     0,     0,   581,   185,   185,
1876   1103,     0,     0,     0,     0,   237,     0,   582,     0,     0,
1877      0,     0,     0,     0,   393,     0,   395,   583,     0,     0,
1878    584,   585,     0,     0,     0,     0,     0,     0,     0,   482,
1879      0,     0,     0,     0,     0,   100,     0,   100,   100,  1103,
1880      0,     0,     0,     0,     0,     0,     0,     0,   748,     0,
1881      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1882      0,     0,     0,     0,   100,     0,     0,   443,   185,   539,
1883    540,   541,   542,   543,   544,   545,   546,   547,   548,   549,
1884    550,   551,   552,   553,   554,   555,     0,     0,   100,   449,
1885    731,     0,     7,     8,   732,    10,   385,    12,    13,     0,
1886      0,     0,     0,    14,   100,     0,     0,     0,   100,     0,
1887      0,   100,     0,     0,     0,     0,   100,    16,     0,    17,
1888     18,    19,     0,     0,     0,    20,  -496,     0,     0,     0,
1889     21,   443,   443,   443,    23,   733,     0,   642,     0,     0,
1890      0,     0,     0,    26,     0,    27,    28,     0,     0,   734,
1891      0,   735,     0,     0,     0,   187,     0,     0,     0,    30,
1892      0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
1893      0,   237,     0,     0,     0,     0,   100,    32,   723,     0,
1894      0,     0,    33,     0,     0,     0,     0,     0,     0,     0,
1895      0,   185,   185,   185,   185,  1103,     0,  1217,  -496,   185,
1896      0,     0,     0,   100,     0,     0,     6,     0,     7,     8,
1897      9,    10,    11,    12,    13,     0,     0,     0,     0,    14,
1898      0,  1103,  1103,  1103,     0,     0,     0,     0,     0,   911,
1899      0,     0,    15,    16,     0,    17,    18,    19,     0,     0,
1900      0,    20,     0,     0,     0,     0,    21,     0,     0,    22,
1901     23,    24,   185,    25,     0,     0,     0,     0,     0,    26,
1902      0,    27,    28,     0,     0,    29,     0,     0,     0,     0,
1903      0,     0,     0,     0,   952,    30,     0,   100,     0,     0,
1904      0,   663,   664,     0,   666,    31,     0,     0,   100,   100,
1905      0,   100,   100,    32,     0,     0,     0,     0,    33,     0,
1906      0,     0,     0,    34,     0,     0,     0,     0,   185,   185,
1907      0,   185,     0,     0,     0,   748,     0,   748,     0,     0,
1908      0,     0,   995,  1002,   748,     0,     0,     0,     0,     0,
1909      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1910      0,     0,   185,     0,   185,     0,     0,     0,     0,     0,
1911      0,   119,   678,     0,   789,   790,   791,    10,     0,    12,
1912    498,   282,   283,   218,   284,    14,     0,     0,     0,     0,
1913      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
1914    285,    17,   723,    19,     0,   286,   287,    20,     0,   288,
1915    289,   290,    21,   291,   292,     0,    23,     0,     0,     0,
1916    293,   294,   295,   296,   297,    26,     0,   792,   793,   679,
1917      0,     0,   299,     0,     0,     0,     0,     0,   300,     0,
1918      0,   301,     0,     0,     0,     0,     0,     0,     0,   302,
1919    303,   304,     0,     0,     0,     0,     0,   305,   306,   307,
1920    723,     0,     0,   100,   308,   794,     0,     0,     0,     0,
1921   1103,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1922    938,   309,     0,     0,     0,     0,   160,     0,     7,     8,
1923      9,    10,    11,    12,    13,     0,   100,   100,   100,    14,
1924      0,     0,     0,     0,   139,   143,     0,     0,   100,     0,
1925      0,     0,    15,    16,     0,    17,    18,    19,     0,     0,
1926      0,    20,     0,     0,     0,     0,    21,     0,     0,    22,
1927     23,    24,     0,    25,  1103,  1103,  1103,     0,     0,    26,
1928      0,    27,    28,     0,     0,    29,  1382,     0,  -451,  -451,
1929   -451,  -451,  -451,  -451,  -451,    30,     0,  -451,   185,  -451,
1930      0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
1931   -451,     0,  -451,    32,   995,     0,  -451,     0,    33,     0,
1932    100,  -451,   100,    34,     0,     0,  -451,     0,     0,     0,
1933   -451,     0,  -451,   100,     0,     0,     0,     0,     0,  -451,
1934      0,  -451,  -451,  -451,  -451,  -451,   748,  -451,  -451,  -451,
1935   -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,
1936   -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,  -451,
1937      0,  -451,  -451,  -451,     0,  -451,  -451,  -451,  -451,  -451,
1938   -451,     0,  -451,     0,     0,     0,     0,  1383,     0,     0,
1939      0,     0,  -451,  -451,  -451,     0,  -451,     0,   534,   535,
1940    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
1941    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
1942      0,     0,   516,     0,   280,     8,     9,    10,   385,    12,
1943    281,   282,   283,   688,   284,    14,     0,   393,   395,     0,
1944    723,     0,     0,     0,     0,   482,  1181,     0,     0,    16,
1945    285,    17,    18,    19,     0,   286,   287,    20,     0,   288,
1946    289,   290,    21,   291,   292,     0,    23,   100,   580,     0,
1947    293,   294,   295,   296,   297,    26,     0,    27,   298,  -286,
1948      0,     0,   299,     0,     0,     0,     0,     0,   300,     0,
1949      0,   867,     0,     0,     0,     0,     0,     0,  1292,   302,
1950    303,   868,     0,  1292,     0,   748,     0,   305,   306,   307,
1951      0,   583,     0,     0,   869,   585,     0,     0,     0,     0,
1952      0,   100,   100,     0,   100,     0,     0,     0,     0,     0,
1953      0,   309,     0,     7,     8,     9,    10,   385,    12,    13,
1954      0,     0,   688,     0,    14,     0,     0,     0,     0,     0,
1955      0,     0,     0,     0,   663,   664,     0,   666,    16,     0,
1956     17,    18,     0,     0,     0,     0,    20,     0,     0,     0,
1957      0,    21,     0,     0,     0,    23,     0,   580,     0,     0,
1958      0,     0,   723,     0,    26,     0,    27,    28,     0,  1356,
1959      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1960   1100,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1961   1101,     0,     0,     0,   723,     0,     0,     0,    32,     0,
1962    583,     0,     0,  1102,   585,     0,     0,     0,     0,     0,
1963      0,     0,   100,  1359,   100,  1228,  1229,  1230,    10,   385,
1964     12,   281,   282,   283,     0,   284,    14,  1231,     0,  1232,
1965   1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,    15,
1966     16,   285,    17,    18,    19,     0,   286,   287,    20,     0,
1967    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
1968      0,   293,   294,   295,   296,   297,    26,     0,  1242,   298,
1969    675,     0,  1243,   299,     0,     0,     0,     0,     0,   300,
1970      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
1971    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
1972    307,     0,     0,     0,     0,   308,     0,  1244,     0,     0,
1973      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1974      0,  1360,   309,  1227,     0,  1228,  1229,  1230,    10,   385,
1975     12,   281,   282,   283,     0,   284,    14,  1231,     0,  1232,
1976   1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,    15,
1977     16,   285,    17,    18,    19,     0,   286,   287,    20,     0,
1978    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
1979      0,   293,   294,   295,   296,   297,    26,     0,  1242,   298,
1980    675,     0,  1243,   299,     0,     0,     0,     0,     0,   300,
1981      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
1982    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
1983    307,     0,     0,     0,     0,   308,   516,  1244,     7,     8,
1984      9,    10,   385,    12,   281,   282,   283,   688,   284,    14,
1985      0,     0,   309,     0,     0,     0,     0,     0,     0,     0,
1986      0,     0,     0,    16,   285,    17,    18,    19,     0,   286,
1987    287,    20,     0,   288,   289,   290,    21,   291,   292,     0,
1988     23,     0,   580,     0,   293,   294,   295,   296,   297,    26,
1989      0,    27,    28,  -286,     0,     0,   299,     0,     0,     0,
1990      0,     0,   300,     0,     0,  1128,     0,     0,     0,     0,
1991      0,     0,     0,   302,   303,  1129,     0,     0,     0,     0,
1992      0,   305,   306,   307,     0,   583,     0,     0,  1130,   585,
1993    687,     0,   280,     8,     9,    10,   385,    12,   281,   282,
1994    283,   688,   284,    14,     0,   309,     0,     0,     0,     0,
1995      0,     0,     0,     0,     0,     0,     0,    16,   285,    17,
1996     18,    19,     0,   286,   287,    20,     0,   288,   289,   290,
1997     21,   291,   292,     0,    23,     0,     0,     0,   293,   294,
1998    295,   296,   297,    26,     0,    27,   298,     0,     0,     0,
1999    299,     0,     0,     0,     0,     0,   300,     0,     0,   301,
2000      0,     0,     0,     0,     0,     0,     0,   302,   303,   304,
2001      0,     0,     0,     0,     0,   305,   306,   307,     0,     0,
2002      0,   801,   308,   280,     8,     9,    10,   385,    12,   281,
2003    282,   283,     0,   284,    14,     0,     0,  -761,     0,   309,
2004      0,     0,     0,     0,     0,     0,     0,     0,    16,   285,
2005     17,    18,    19,     0,   286,   287,    20,     0,   288,   289,
2006    290,    21,   291,   292,     0,    23,     0,     0,     0,   293,
2007    294,   295,   296,   297,    26,     0,    27,   298,  1450,     0,
2008   -751,   299,     0,     0,     0,     0,     0,   300,     0,     0,
2009    301,     0,     0,     0,     0,     0,     0,     0,   302,   303,
2010    304,     0,     0,     0,     0,     0,   305,   306,   307,     0,
2011      0,     0,   678,   308,   789,   790,   791,    10,     0,    12,
2012    498,   282,   283,     0,   284,    14,     0,     0,     0,     0,
2013    309,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2014    285,    17,     0,    19,     0,   286,   287,    20,     0,   288,
2015    289,   290,    21,   291,   292,     0,    23,     0,     0,     0,
2016    293,   294,   295,   296,   297,    26,     0,   792,   793,   679,
2017      0,     0,   299,     0,     0,     0,     0,     0,   300,     0,
2018      0,   301,     0,     0,     0,     0,     0,     0,     0,   302,
2019    303,   304,     0,     0,     0,     0,     0,   305,   306,   307,
2020      0,     0,     0,     0,   308,   794,   678,     0,   789,   790,
2021    791,    10,     0,    12,   498,   282,   283,     0,   284,    14,
2022      0,   309,     0,     0,     0,     0,     0,     0,     0,     0,
2023      0,     0,     0,    16,   285,    17,     0,    19,     0,   286,
2024    287,    20,     0,   288,   289,   290,    21,   291,   292,     0,
2025     23,     0,     0,     0,   293,   294,   295,   296,   297,    26,
2026      0,   792,   793,   679,     0,     0,   299,     0,     0,     0,
2027      0,     0,   300,     0,     0,   301,     0,     0,     0,     0,
2028      0,     0,     0,   302,   303,   304,     0,     0,     0,     0,
2029      0,   305,   306,   307,     0,     0,     0,   678,   308,   789,
2030    790,   791,    10,     0,    12,   498,   282,   283,     0,   284,
2031     14,     0,     0,     0,  -455,   309,     0,     0,     0,     0,
2032      0,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2033    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2034      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2035     26,     0,   792,   793,   679,     0,     0,   299,     0,     0,
2036      0,     0,     0,   300,     0,     0,   301,     0,     0,     0,
2037      0,     0,     0,     0,   302,   303,   304,     0,     0,     0,
2038      0,     0,   305,   306,   307,     0,     0,     0,   678,   308,
2039    280,     8,     9,    10,     0,    12,   498,   282,   283,     0,
2040    284,    14,     0,     0,     0,  1261,   309,     0,     0,     0,
2041      0,     0,     0,     0,     0,    16,   285,    17,     0,    19,
2042      0,   286,   287,    20,     0,   288,   289,   290,    21,   291,
2043    292,     0,    23,     0,     0,     0,   293,   294,   295,   296,
2044    297,    26,     0,    27,   298,   679,     0,     0,   299,     0,
2045      0,     0,     0,     0,   300,     0,     0,   301,     0,     0,
2046      0,     0,     0,     0,     0,   302,   303,   304,     0,     0,
2047      0,     0,     0,   305,   306,   307,     0,     0,     0,     0,
2048    308,     0,   516,     0,   280,     8,     9,    10,  1265,    12,
2049    281,   282,   283,     0,   284,    14,     0,   309,     0,     0,
2050      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2051    285,    17,     0,    19,     0,   286,   287,    20,     0,   288,
2052    289,   290,    21,   291,   292,     0,    23,     0,     0,     0,
2053    293,   294,   295,   296,   297,    26,     0,    27,   298,  -286,
2054      0,     0,   299,     0,     0,     0,     0,     0,   300,     0,
2055      0,   517,     0,     0,     0,     0,     0,     0,     0,   302,
2056    303,   518,     0,     0,     0,     0,     0,   305,   306,   307,
2057      0,     0,     0,   678,   519,   280,     8,     9,    10,     0,
2058     12,   498,   282,   283,     0,   284,    14,     0,     0,     0,
2059      0,   309,     0,     0,     0,     0,     0,     0,     0,     0,
2060     16,   285,    17,     0,    19,     0,   286,   287,    20,     0,
2061    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
2062      0,   293,   294,   295,   296,   297,    26,     0,    27,   298,
2063    679,     0,     0,   299,     0,     0,     0,     0,     0,   300,
2064      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
2065    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
2066    307,     0,     0,     0,   801,   308,   280,     8,     9,    10,
2067      0,    12,   498,   282,   283,     0,   284,    14,     0,     0,
2068      0,     0,   309,     0,     0,     0,     0,     0,     0,     0,
2069      0,    16,   285,    17,     0,    19,     0,   286,   287,    20,
2070      0,   288,   289,   290,    21,   291,   292,     0,    23,     0,
2071      0,     0,   293,   294,   295,   296,   297,    26,     0,    27,
2072    298,     0,     0,     0,   299,  -751,     0,     0,     0,     0,
2073    300,     0,     0,   301,     0,     0,     0,     0,     0,     0,
2074      0,   302,   303,   304,     0,     0,     0,     0,     0,   305,
2075    306,   307,     0,     0,     0,   516,   308,     7,     8,     9,
2076     10,     0,    12,   281,   282,   283,     0,   284,    14,     0,
2077      0,     0,     0,   309,     0,     0,     0,     0,     0,     0,
2078      0,     0,    16,   285,    17,     0,    19,     0,   286,   287,
2079     20,     0,   288,   289,   290,    21,   291,   292,     0,    23,
2080      0,     0,     0,   293,   294,   295,   296,   297,    26,     0,
2081     27,    28,  -286,     0,     0,   299,     0,     0,     0,     0,
2082      0,   300,     0,     0,  1421,     0,     0,     0,     0,     0,
2083      0,     0,   302,   303,  1422,     0,     0,     0,     0,     0,
2084    305,   306,   307,     0,     0,     0,  1500,  1423,   280,     8,
2085      9,    10,     0,    12,   281,   282,   283,     0,   284,    14,
2086      0,     0,     0,     0,   309,     0,     0,     0,     0,     0,
2087      0,     0,     0,    16,   285,    17,     0,    19,     0,   286,
2088    287,    20,     0,   288,   289,   290,    21,   291,   292,     0,
2089     23,     0,     0,     0,   293,   294,   295,   296,   297,    26,
2090      0,    27,   298,     0,     0,  -173,   299,     0,     0,     0,
2091      0,     0,   300,     0,     0,   301,     0,     0,     0,     0,
2092      0,     0,     0,   302,   303,   304,     0,     0,     0,     0,
2093      0,   305,   306,   307,     0,     0,     0,   801,   308,   280,
2094      8,     9,    10,     0,    12,   498,   282,   283,     0,   284,
2095     14,     0,     0,     0,     0,   309,     0,     0,     0,     0,
2096      0,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2097    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2098      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2099     26,     0,    27,   298,     0,     0,     0,   299,     0,     0,
2100      0,     0,     0,   300,   243,     0,   301,     8,     9,     0,
2101      0,    12,    13,     0,   302,   303,   304,    14,     0,     0,
2102      0,     0,   305,   306,   307,     0,     0,     0,     0,   308,
2103      0,    16,     0,    17,     0,     0,     0,     0,     0,    20,
2104      0,   244,   245,     0,  -751,     0,   309,     0,    23,     0,
2105    246,     0,     0,     0,     0,     0,     0,    26,     0,   128,
2106    129,     0,   247,     0,     0,     0,   248,   249,   250,   251,
2107    252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2108    262,   263,   264,   265,   266,   267,   268,     0,     0,   269,
2109    270,   271,     0,     0,   272,     0,   886,   273,   280,     8,
2110      9,    10,     0,    12,   498,   282,   283,     0,   284,    14,
2111      0,     0,     0,   274,     0,     0,     0,     0,     0,     0,
2112      0,     0,     0,    16,   285,    17,     0,    19,     0,   286,
2113    287,    20,     0,   288,   289,   290,    21,   291,   292,     0,
2114     23,     0,     0,     0,   293,   294,   295,   296,   297,    26,
2115      0,    27,   298,     0,     0,     0,   299,     0,     0,     0,
2116      0,     0,   300,     0,     0,   301,     0,     0,     0,     0,
2117      0,     0,     0,   302,   303,   304,     0,     0,     0,     0,
2118      0,   305,   306,   307,     0,     0,     0,   888,   308,   280,
2119      8,     9,    10,     0,    12,   498,   282,   283,     0,   284,
2120     14,     0,     0,     0,     0,   309,     0,     0,     0,     0,
2121      0,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2122    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2123      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2124     26,     0,    27,   298,     0,     0,     0,   299,     0,     0,
2125      0,     0,     0,   300,     0,     0,   301,     0,     0,     0,
2126      0,     0,     0,     0,   302,   303,   304,     0,     0,     0,
2127      0,     0,   305,   306,   307,     0,     0,     0,  1434,   308,
2128    280,     8,     9,    10,     0,    12,   498,   282,   283,     0,
2129    284,    14,     0,     0,     0,     0,   309,     0,     0,     0,
2130      0,     0,     0,     0,     0,    16,   285,    17,     0,    19,
2131      0,   286,   287,    20,     0,   288,   289,   290,    21,   291,
2132    292,     0,    23,     0,     0,     0,   293,   294,   295,   296,
2133    297,    26,     0,    27,   298,     0,     0,     0,   299,     0,
2134      0,     0,     0,     0,   300,     0,     0,   301,     0,     0,
2135      0,     0,     0,     0,     0,   302,   303,   304,     0,     0,
2136      0,     0,     0,   305,   306,   307,   280,     8,     9,    10,
2137    308,    12,   498,   282,   283,     0,   284,    14,     0,     0,
2138      0,     0,     0,     0,     0,     0,     0,   309,     0,     0,
2139      0,    16,   285,    17,     0,    19,     0,   286,   287,    20,
2140      0,   288,   289,   290,    21,   291,   292,     0,    23,     0,
2141      0,     0,   293,   294,   295,   296,   297,    26,     0,    27,
2142    298,     0,     0,     0,   299,     0,     0,     0,     0,     0,
2143    300,     0,     0,   301,     0,     0,     0,     0,     0,     0,
2144      0,   302,   303,   304,     0,     0,     0,     0,     0,   305,
2145    306,   307,     0,     0,     0,     0,   308,     0,     0,     0,
2146      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2147      0,     0,     0,   309,   839,  1228,  1229,  1230,    10,   385,
2148     12,   281,   282,   283,     0,   284,    14,  1231,     0,  1232,
2149   1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,    15,
2150     16,   285,    17,    18,    19,     0,   286,   287,    20,     0,
2151    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
2152      0,   293,   294,   295,   296,   297,    26,     0,  1242,   298,
2153    675,     0,  1243,   299,     0,     0,     0,     0,     0,   300,
2154      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
2155    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
2156    307,     0,     0,     0,     0,   308,     0,  1244,     0,     0,
2157      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2158      0,  1364,   309,  1228,  1229,  1230,    10,   385,    12,   281,
2159    282,   283,     0,   284,    14,  1231,     0,  1232,  1233,  1234,
2160   1235,  1236,  1237,  1238,  1239,  1240,  1241,    15,    16,   285,
2161     17,    18,    19,     0,   286,   287,    20,     0,   288,   289,
2162    290,    21,   291,   292,     0,    23,     0,     0,     0,   293,
2163    294,   295,   296,   297,    26,     0,  1242,   298,   675,     0,
2164   1243,   299,     0,     0,     0,     0,     0,   300,     0,     0,
2165    301,     0,     0,     0,     0,     0,     0,     0,   302,   303,
2166    304,     0,     0,     0,     0,     0,   305,   306,   307,     0,
2167      0,     0,     0,   308,     0,  1244,     0,  1228,  1229,  1230,
2168     10,   385,    12,   281,   282,   283,     0,   284,    14,  1231,
2169    309,  1232,  1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,
2170   1241,    15,    16,   285,    17,    18,    19,     0,   286,   287,
2171     20,     0,   288,   289,   290,    21,   291,   292,     0,    23,
2172      0,     0,     0,   293,   294,   295,   296,   297,    26,     0,
2173   1242,   298,  1477,     0,  1243,   299,     0,     0,     0,     0,
2174      0,   300,     0,     0,   301,     0,     0,     0,     0,     0,
2175      0,     0,   302,   303,   304,     0,     0,     0,     0,     0,
2176    305,   306,   307,     0,     0,     0,     0,   308,     0,  1244,
2177      0,  1228,  1229,  1230,    10,   385,    12,   281,   282,   283,
2178      0,   284,    14,  1231,   309,  1232,  1233,  1234,  1235,  1236,
2179   1237,  1238,  1239,  1240,  1241,    15,    16,   285,    17,    18,
2180     19,     0,   286,   287,    20,     0,   288,   289,   290,    21,
2181    291,   292,     0,    23,     0,     0,     0,   293,   294,   295,
2182    296,   297,    26,     0,  1242,   298,     0,     0,  1243,   299,
2183      0,     0,     0,     0,     0,   300,     0,     0,   301,     0,
2184      0,     0,     0,     0,     0,     0,   302,   303,   304,     0,
2185      0,     0,     0,     0,   305,   306,   307,     0,     0,     0,
2186      0,   308,     0,  1244,   280,     8,     9,    10,   385,    12,
2187    281,   282,   283,   688,   284,    14,     0,     0,   309,     0,
2188      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
2189    285,    17,    18,    19,     0,   286,   287,    20,     0,   288,
2190    289,   290,    21,   291,   292,     0,    23,     0,   580,     0,
2191    293,   294,   295,   296,   297,    26,     0,    27,   298,     0,
2192      0,     0,   299,     0,     0,     0,     0,     0,   300,     0,
2193      0,   867,     0,     0,     0,     0,     0,     0,     0,   302,
2194    303,   868,     0,     0,     0,     0,     0,   305,   306,   307,
2195      0,   583,     0,     0,   869,   585,     7,     8,     9,    10,
2196    385,    12,   281,   282,   283,   688,   284,    14,     0,     0,
2197      0,   309,     0,     0,     0,     0,     0,     0,     0,     0,
2198      0,    16,   285,    17,    18,    19,     0,   286,   287,    20,
2199      0,   288,   289,   290,    21,   291,   292,     0,    23,     0,
2200    580,     0,   293,   294,   295,   296,   297,    26,     0,    27,
2201     28,     0,     0,     0,   299,     0,     0,     0,     0,     0,
2202    300,     0,     0,  1128,     0,     0,     0,     0,     0,     0,
2203      0,   302,   303,  1129,     0,     0,     0,     0,     0,   305,
2204    306,   307,     0,   583,     0,     0,  1130,   585,   280,     8,
2205      9,    10,     0,    12,   281,   282,   283,     0,   284,    14,
2206      0,     0,     0,   309,     0,     0,     0,     0,     0,     0,
2207      0,     0,     0,    16,   285,    17,     0,    19,     0,   286,
2208    287,    20,     0,   288,   289,   290,    21,   291,   292,     0,
2209     23,     0,   580,     0,   293,   294,   295,   296,   297,    26,
2210      0,    27,   298,     0,     0,     0,     0,     0,     0,     0,
2211      0,     0,   300,     0,     0,   867,     0,     0,     0,     0,
2212      0,     0,     0,   302,   303,   868,     0,     0,     0,     0,
2213      0,   305,   306,   307,     0,   583,     0,     0,   869,   585,
2214      7,     8,     9,    10,     0,    12,   281,   282,   283,     0,
2215    284,    14,     0,     0,     0,   309,     0,     0,     0,     0,
2216      0,     0,     0,     0,     0,    16,   285,    17,     0,    19,
2217      0,   286,   287,    20,     0,   288,   289,   290,    21,   291,
2218    292,     0,    23,     0,   580,     0,   293,   294,   295,   296,
2219    297,    26,     0,    27,    28,     0,     0,     0,     0,     0,
2220      0,     0,     0,     0,   300,     0,     0,  1128,     0,     0,
2221      0,     0,     0,     0,     0,   302,   303,  1129,     0,     0,
2222      0,     0,     0,   305,   306,   307,     0,   583,     0,     0,
2223   1130,   585,   280,     8,     9,    10,     0,    12,   498,   282,
2224    283,     0,   284,    14,     0,     0,     0,   309,     0,     0,
2225      0,     0,     0,     0,     0,     0,     0,    16,   285,    17,
2226      0,    19,     0,   286,   287,    20,     0,   288,   289,   290,
2227     21,   291,   292,     0,    23,     0,     0,     0,   293,   294,
2228    295,   296,   297,    26,     0,    27,   298,     0,     0,  1341,
2229    299,     0,     0,     0,     0,     0,   300,     0,     0,   301,
2230      0,     0,     0,     0,     0,     0,     0,   302,   303,   304,
2231      0,     0,     0,     0,     0,   305,   306,   307,     0,     0,
2232      0,     0,   308,   280,     8,     9,    10,   385,    12,   281,
2233    282,   283,     0,   284,    14,     0,     0,     0,     0,   309,
2234      0,     0,     0,     0,     0,     0,     0,     0,    16,   285,
2235     17,    18,    19,     0,   286,   287,    20,     0,   288,   289,
2236    290,    21,   291,   292,     0,    23,     0,     0,     0,   293,
2237    294,   295,   296,   297,    26,     0,    27,   298,     0,     0,
2238      0,     0,     0,     0,     0,     0,     0,   300,     0,     0,
2239    301,     0,     0,     0,     0,     0,     0,     0,   302,   303,
2240    304,     0,     0,     0,     0,     0,   305,   306,   307,   280,
2241      8,     9,    10,   308,    12,   281,   282,   283,     0,   284,
2242     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2243    309,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2244    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2245      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2246     26,     0,    27,   298,     0,     0,     0,   299,     0,     0,
2247      0,     0,     0,   300,     0,     0,   301,     0,     0,     0,
2248      0,     0,     0,     0,   302,   303,   304,     0,     0,     0,
2249      0,     0,   305,   306,   307,   280,     8,     9,    10,   308,
2250     12,   498,   282,   283,     0,   284,    14,     0,     0,     0,
2251      0,     0,     0,     0,     0,     0,   309,     0,     0,     0,
2252     16,   285,    17,     0,    19,     0,   286,   287,    20,     0,
2253    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
2254      0,   293,   294,   295,   296,   297,    26,     0,    27,   298,
2255      0,     0,     0,   299,     0,     0,     0,     0,     0,   300,
2256      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
2257    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
2258    307,   280,     8,     9,    10,   308,    12,   498,   282,   283,
2259      0,   284,    14,     0,     0,     0,     0,     0,     0,     0,
2260      0,     0,   309,     0,     0,     0,    16,   285,    17,     0,
2261     19,     0,   286,   287,    20,     0,   288,   289,   290,    21,
2262    291,   292,     0,    23,     0,     0,     0,   293,   294,   295,
2263    296,   297,    26,     0,    27,   298,   531,     0,     0,     0,
2264      0,     0,     0,     0,     0,   300,     0,     0,   301,     0,
2265      0,     0,     0,     0,     0,     0,   302,   303,   304,     0,
2266      0,     0,     0,     0,   305,   306,   307,   280,     8,     9,
2267     10,   532,    12,   498,   282,   283,     0,   284,    14,     0,
2268      0,     0,     0,     0,     0,     0,     0,     0,   309,     0,
2269      0,     0,    16,   285,    17,     0,    19,     0,   286,   287,
2270     20,     0,   288,   289,   290,    21,   291,   292,     0,    23,
2271      0,     0,     0,   293,   294,   295,   296,   297,    26,     0,
2272     27,   298,     0,     0,     0,     0,     0,     0,     0,     0,
2273      0,   300,     0,     0,   301,     0,     0,     0,     0,     0,
2274      0,     0,   302,   303,   304,     0,     0,     0,     0,     0,
2275    305,   306,   307,     0,     0,     0,     0,   308,   568,   280,
2276      8,     9,    10,     0,    12,   498,   282,   283,     0,   284,
2277     14,     0,     0,     0,   309,     0,     0,     0,     0,     0,
2278      0,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2279    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2280      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2281     26,     0,    27,   298,     0,     0,     0,   299,     0,     0,
2282      0,     0,     0,   300,     0,     0,   517,     0,     0,     0,
2283      0,     0,     0,     0,   302,   303,   518,     0,     0,     0,
2284      0,     0,   305,   306,   307,  1090,     8,     9,    10,   519,
2285     12,   498,   282,   283,     0,   284,    14,     0,     0,     0,
2286      0,     0,     0,     0,     0,     0,   309,     0,     0,     0,
2287     16,   285,    17,     0,    19,     0,   286,   287,    20,     0,
2288    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
2289      0,   293,   294,   295,   296,   297,    26,     0,    27,   298,
2290      0,     0,     0,   299,     0,     0,     0,     0,     0,   300,
2291      0,     0,   301,     0,     0,     0,     0,     0,     0,     0,
2292    302,   303,   304,     0,     0,     0,     0,     0,   305,   306,
2293    307,     7,     8,     9,    10,   308,    12,   498,   282,   283,
2294      0,   284,    14,     0,     0,     0,     0,     0,     0,     0,
2295      0,     0,   309,     0,     0,     0,    16,   285,    17,     0,
2296     19,     0,   286,   287,    20,     0,   288,   289,   290,    21,
2297    291,   292,     0,    23,     0,     0,     0,   293,   294,   295,
2298    296,   297,    26,     0,    27,    28,     0,     0,     0,   299,
2299      0,     0,     0,     0,     0,   300,     0,     0,  1421,     0,
2300      0,     0,     0,     0,     0,     0,   302,   303,  1422,     0,
2301      0,     0,     0,     0,   305,   306,   307,   280,     8,     9,
2302     10,  1423,    12,   498,   282,   283,     0,   284,    14,     0,
2303      0,     0,     0,     0,     0,     0,     0,     0,   309,     0,
2304      0,     0,    16,   285,    17,     0,    19,     0,   286,   287,
2305     20,     0,   288,   289,   290,    21,   291,   292,     0,    23,
2306      0,     0,     0,   293,   294,   295,   296,   297,    26,     0,
2307     27,   298,     0,     0,     0,     0,     0,     0,     0,     0,
2308      0,   300,     0,     0,   301,     0,     0,     0,     0,     0,
2309      0,     0,   302,   303,   304,     0,     0,     0,     0,     0,
2310    305,   306,   307,   280,     8,     9,    10,   499,    12,   498,
2311    282,   283,     0,   284,    14,     0,     0,     0,     0,     0,
2312      0,     0,     0,     0,   309,     0,     0,     0,    16,   285,
2313     17,     0,    19,     0,   286,   287,    20,     0,   288,   289,
2314    290,    21,   291,   292,     0,    23,     0,     0,     0,   293,
2315    294,   295,   296,   297,    26,     0,    27,   298,     0,     0,
2316      0,     0,     0,     0,     0,     0,     0,   300,     0,     0,
2317    301,     0,     0,     0,     0,     0,     0,     0,   302,   303,
2318    304,     0,     0,     0,     0,     0,   305,   306,   307,   280,
2319      8,     9,    10,   502,    12,   498,   282,   283,     0,   284,
2320     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2321    309,     0,     0,     0,    16,   285,    17,     0,    19,     0,
2322    286,   287,    20,     0,   288,   289,   290,    21,   291,   292,
2323      0,    23,     0,     0,     0,   293,   294,   295,   296,   297,
2324     26,     0,    27,   298,     0,     0,     0,     0,     0,     0,
2325      0,     0,     0,   300,     0,     0,   301,     0,     0,     0,
2326      0,     0,     0,     0,   302,   303,   304,     0,     0,     0,
2327      0,     0,   305,   306,   307,   280,     8,     9,    10,   308,
2328     12,   498,   282,   283,     0,   284,    14,     0,     0,     0,
2329      0,     0,     0,     0,     0,     0,   309,     0,     0,     0,
2330     16,   285,    17,     0,    19,     0,   286,   287,    20,     0,
2331    288,   289,   290,    21,   291,   292,     0,    23,     0,     0,
2332      0,   293,   294,   295,   296,   297,    26,     0,    27,   298,
2333      0,     0,     0,     0,     0,     0,     0,     0,     0,   300,
2334      0,     0,   517,     0,     0,     0,     0,     0,     0,     0,
2335    302,   303,   518,     0,     0,     0,     0,     0,   305,   306,
2336    307,     7,     8,     9,    10,   519,    12,   281,   282,   283,
2337      0,   284,    14,     0,     0,     0,     0,     0,     0,     0,
2338      0,     0,   309,     0,     0,     0,    16,   285,    17,     0,
2339     19,     0,   286,   287,    20,     0,   288,   289,   290,    21,
2340    291,   292,     0,    23,     0,     0,     0,   293,   294,   295,
2341    296,   297,    26,     0,    27,    28,     0,     0,     0,     0,
2342      0,     0,     0,     0,     0,   300,     0,     0,  1421,     0,
2343      0,     0,     0,     0,     0,     0,   302,   303,  1422,     0,
2344      0,     0,     0,     0,   305,   306,   307,     0,     0,     0,
2345      0,  1423,     7,     8,     9,    10,   385,    12,    13,     0,
2346      0,   951,     0,    14,     0,     0,     0,     0,   309,     0,
2347      0,     0,     0,     0,     0,     0,     0,    16,     0,    17,
2348     18,     0,     0,     0,     0,    20,     0,     0,     0,     0,
2349     21,     0,     0,     0,    23,     0,     0,     0,     0,     0,
2350      0,     0,     0,    26,     0,    27,    28,   985,     8,   732,
2351     10,   188,    12,   189,     0,     0,     0,     0,    14,    30,
2352      0,     0,     0,     0,     0,     0,     0,     0,     0,    31,
2353      0,     0,    16,     0,    17,    18,     0,    32,     0,     0,
2354     20,     0,    33,     0,     0,    21,     0,     0,     0,    23,
2355      0,     0,     0,     0,     0,     0,     0,     0,    26,     0,
2356     27,    28,     0,     0,     0,     0,   987,     0,     0,     0,
2357      0,     0,     0,     0,    30,     7,     8,     9,    10,   188,
2358     12,   189,     0,     0,    31,     0,    14,     0,     0,     0,
2359      0,     0,    32,     0,     0,     0,     0,    33,     0,     0,
2360     16,     0,    17,    18,     0,     0,     0,     0,    20,     0,
2361      0,     0,     0,    21,     0,     0,     0,    23,     0,     0,
2362      0,     0,     0,     0,     0,     0,    26,     0,    27,    28,
2363      0,     0,  1354,     0,     7,     8,     9,    10,   385,    12,
2364     13,     0,    30,     0,     0,    14,     0,     0,     0,     0,
2365      0,     0,    31,     0,     0,     0,     0,     0,     0,    16,
2366     32,    17,    18,     0,     0,    33,     0,    20,     0,     0,
2367      0,     0,    21,     0,     0,     0,    23,     0,     0,     0,
2368      0,     0,     0,     0,     0,    26,     0,    27,    28,     7,
2369      8,     9,    10,   188,    12,   189,     0,     0,     0,     0,
2370     14,    30,     0,     0,     0,     0,     0,     0,     0,     0,
2371      0,    31,     0,     0,    16,     0,    17,    18,     0,    32,
2372      0,     0,    20,     0,    33,     0,     0,    21,     8,     9,
2373      0,    23,    12,   226,     0,     0,     0,     0,    14,     0,
2374     26,     0,    27,    28,     7,     8,     9,    10,   197,   198,
2375    199,     0,    16,     0,    17,    14,    30,     0,     0,     0,
2376     20,     0,     0,     0,     0,     0,    31,     0,     0,    23,
2377      0,   580,    18,     0,    32,     0,     0,    20,    26,    33,
2378    128,   129,    21,     0,     0,  1411,    23,     0,   580,     0,
2379      0,     0,     0,     0,   581,    26,     0,    27,    28,     0,
2380      0,     0,     0,     0,   582,     0,     0,     0,     0,     0,
2381      0,   176,     0,     0,   583,     0,     0,   584,   585,     0,
2382      0,   177,     0,     0,     0,     0,    18,     0,     0,    32,
2383      0,     0,     0,     0,  1357,  1412,   534,   535,   536,   537,
2384    538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
2385    548,   549,   550,   551,   552,   553,   554,   555,   534,   535,
2386    536,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2387    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
2388      8,     9,     0,   385,    12,    13,     0,     0,   688,     0,
2389     14,     0,     0,     8,     9,     0,   385,    12,    13,     0,
2390      0,  1471,     0,    14,    16,     0,    17,    18,     0,     0,
2391      0,     0,    20,     0,     0,     0,     0,    16,     0,    17,
2392     18,    23,     0,     0,     0,    20,     0,     0,     0,     0,
2393     26,     0,   128,   129,    23,     0,     0,     8,     9,     0,
2394    188,    12,   189,    26,     0,   128,   129,    14,     0,     0,
2395      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2396      0,    16,     0,    17,    18,     0,     0,     0,     0,    20,
2397      0,     0,     0,     0,     0,     0,     0,     0,    23,     0,
2398      0,     0,     0,     0,     0,     0,     0,    26,     0,   128,
2399    129,   534,   535,   536,   537,   538,   539,   540,   541,   542,
2400    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2401    553,   554,   555,     0,     0,     0,     0,     0,     0,     0,
2402      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2403      0,     0,   621,     0,     0,  1467,   534,   535,   536,   537,
2404    538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
2405    548,   549,   550,   551,   552,   553,   554,   555,  1485,   534,
2406    535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
2407    545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
2408    555,   534,   535,   536,   537,   538,   539,   540,   541,   542,
2409    543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
2410    553,   554,   555,   534,   535,   536,   537,   538,   539,   540,
2411    541,   542,   543,   544,   545,     0,   547,   548,   549,   550,
2412    551,   552,   553,   554,   555
2413 };
2414
2415 static const short yycheck[] = {     4,
2416    384,   145,   146,   155,    57,   192,   328,    78,   673,   670,
2417      4,     4,   384,     4,    23,    53,   231,   384,   124,    14,
2418    660,     4,   420,    82,   334,    88,   334,    90,   468,   447,
2419     35,   200,   201,   529,   828,    40,    30,    31,   352,   192,
2420    227,    35,    35,     4,    35,    60,    40,    40,   201,    40,
2421     55,   653,    35,   736,   564,   738,   131,    40,   122,  1409,
2422      4,   127,   745,   425,    11,    70,   132,     4,    52,   140,
2423    284,   285,   135,  1245,    35,  1323,    44,    82,  1408,    40,
2424     33,    86,    60,    88,    11,    90,    81,   584,    82,   276,
2425     11,    35,    37,    59,   591,     0,    40,     4,    35,    12,
2426    105,   106,   316,    40,  1410,  1252,    74,   753,     9,   104,
2427    222,     1,  1259,   759,  1426,   186,    54,  1447,    55,   334,
2428     74,   131,   132,    47,    62,   523,    38,     7,    35,   134,
2429    135,   109,   137,    40,  1446,    62,     1,    78,    58,   192,
2430    134,   328,    54,   109,  1151,  1152,    59,   200,   201,    62,
2431      1,   145,   146,    75,   159,    77,   109,    37,  1165,    25,
2432     61,   108,   105,   106,   109,   159,   150,   585,    58,    93,
2433     94,    59,    62,   134,   227,    82,  1482,  1527,    98,   501,
2434    195,   108,   176,   177,   108,    60,    59,   108,   203,    74,
2435    134,  1503,    58,    58,     0,   108,    62,   134,   159,   183,
2436     59,    12,     3,     4,     5,    95,    78,    58,   335,   336,
2437     59,    62,  1542,    48,    60,   159,     3,     4,     5,   865,
2438    108,    47,   159,   276,    60,   455,    75,   134,   196,    95,
2439    102,    62,   672,   228,   109,   108,    59,  1409,   878,  1487,
2440     33,   881,   472,    74,    95,    47,    47,    74,    59,   108,
2441    325,    62,   159,    54,    58,    56,    57,    74,    54,   131,
2442     64,   413,   321,   109,   391,   392,  1413,    93,   140,    56,
2443     57,   643,   277,   109,   337,   328,   674,  1284,    74,   919,
2444    920,    93,   451,   452,    47,   108,  1293,  1294,   354,  1296,
2445    459,    93,    93,    80,   604,   439,   440,    47,   900,   452,
2446    364,   242,   471,   308,    27,    47,   108,    93,    31,  1456,
2447     47,   695,   378,    59,   186,   325,   321,   827,    64,   633,
2448     47,   490,     4,     5,   329,    93,   972,   321,   695,    75,
2449     93,    94,   337,   338,   445,    54,   389,    60,   984,   334,
2450     93,    64,   453,    93,   338,   108,    47,   219,  1249,   387,
2451   1251,    93,   145,   146,   147,    74,    93,  1504,   573,     3,
2452      4,     5,     6,     4,     5,   308,    93,    94,   378,   691,
2453    242,  1017,   869,  1019,    56,    57,   165,   338,   107,   384,
2454     12,   108,    54,   388,    35,   178,   109,    60,    12,    40,
2455    384,   384,    93,    94,   338,    25,  1190,    41,   451,   452,
2456    415,   338,    74,    27,    48,    47,   459,    31,   904,    54,
2457    907,    60,    56,    57,   321,    56,    57,    62,   471,     4,
2458      5,    54,    25,    47,    27,  1432,  1433,    59,   433,    74,
2459     62,   338,    64,   496,    54,    59,    60,   490,    62,   433,
2460     64,  1081,  1082,   458,    88,   439,   440,    31,   866,   946,
2461     47,    93,    94,    62,    74,    58,    54,     4,     5,    62,
2462     74,   333,     9,    48,   469,    47,    58,    64,   830,    93,
2463     94,    56,    57,    47,    54,   469,    74,   384,     3,     4,
2464      5,   608,    64,  1166,   108,    58,   469,   430,     4,     5,
2465     47,   496,    95,   461,   499,    80,    93,   502,     4,     5,
2466     47,   506,   507,   508,   509,   510,   565,    54,   469,    56,
2467     57,    93,    94,   109,   519,    47,    93,   901,  1312,    93,
2468     94,    47,   394,    70,   529,   469,   433,   532,   469,   901,
2469    970,    56,    57,    80,   901,    47,    93,   935,    54,    47,
2470     56,    57,    48,    90,   713,    54,    93,    94,    75,    47,
2471     56,    57,    64,    54,     4,     5,   499,    47,   611,   502,
2472    565,    93,   469,   506,   874,     4,   874,    93,    62,    54,
2473     62,   565,   610,   636,    80,   108,   519,    47,   108,   584,
2474     74,    93,    74,    47,    94,    93,   591,   581,   582,   532,
2475    584,   778,    54,   536,   466,    93,    35,   591,    33,   652,
2476    595,    40,    33,    93,    54,  1102,    56,    57,   720,    47,
2477    722,   649,    74,   651,   652,   727,    54,     4,     5,   562,
2478     70,   493,     9,    93,   730,   568,     3,     4,     5,    93,
2479     80,   636,   641,  1130,     8,     9,    74,  1055,   691,   108,
2480     14,    47,   769,    47,    94,   650,   439,   440,   441,   654,
2481     47,    62,    62,   691,    62,    93,   108,   871,   565,   874,
2482    713,    11,    36,   672,    59,    60,    74,    54,   109,    56,
2483     57,    45,  1112,    47,  1036,  1037,    25,   584,    27,    56,
2484     57,    58,     3,    70,   591,     4,     5,    93,  1450,    93,
2485    695,   754,   755,    80,   757,    93,    93,   108,   108,   286,
2486    287,   695,    59,    60,  1144,   743,   578,    94,    59,    58,
2487    145,   146,   147,    62,   301,   146,   147,   304,    60,    93,
2488    307,   111,   594,   310,    75,   778,    77,   314,  1050,    48,
2489     25,   736,    27,   738,  1496,   322,    94,    56,    57,   744,
2490    745,    94,   736,   178,   738,    62,    95,   178,   753,   754,
2491    755,   745,   757,   736,   759,   738,   111,  1051,  1052,   753,
2492   1054,    80,   745,    58,  1126,   759,    93,    62,    59,    60,
2493    897,   739,   740,  1135,  1136,   736,    74,   738,  1140,    93,
2494    748,     3,     4,     5,   745,     7,     8,     9,   695,    83,
2495     84,    25,   736,    27,   738,   736,    74,   738,     4,     5,
2496     95,   745,    54,   744,   745,   109,   743,   744,    74,  1470,
2497     62,   766,   767,   768,    36,     4,     5,    59,    60,  1181,
2498     74,   826,    74,    59,    58,  1490,   831,   108,    62,   736,
2499     11,   738,    54,    59,    56,    57,    58,   108,   745,    59,
2500     60,   912,    48,    59,    60,    54,   753,     3,     4,     5,
2501     56,    57,   759,    62,   859,   967,   968,   969,   108,    48,
2502    865,    95,     4,     5,   869,    74,     9,    56,    57,    12,
2503     54,   865,    74,   867,   868,   869,   108,   308,    62,   874,
2504     54,   103,   104,   105,  1011,  1012,  1013,    59,    60,    60,
2505     74,    80,   835,     4,     5,   108,   901,    54,   903,   904,
2506     56,    57,   907,   111,    47,    62,    48,   901,   901,  1271,
2507    109,   905,   906,   907,    56,    57,    59,    74,    61,    62,
2508    108,    64,   109,     4,     5,   996,   869,   716,     9,  1251,
2509    517,   518,    75,   111,    77,    27,  1334,   975,    80,     4,
2510      5,   946,    74,    54,    74,    56,    57,  1309,  1346,    27,
2511     93,    94,   946,    31,   959,    54,  1100,  1101,   865,    70,
2512    965,   750,   869,   111,    74,   108,   111,   972,   108,    80,
2513    108,   108,    58,    54,   108,    56,    57,     8,   972,   984,
2514     54,    59,    60,    48,  1128,  1129,    64,    54,   111,    70,
2515    984,    56,    57,    93,   901,    62,  1059,     4,     5,    80,
2516    907,   873,  1007,   875,   439,   440,   441,    74,    47,   440,
2517    441,    64,  1017,  1007,  1019,    80,     3,     4,     5,    59,
2518    988,    93,   965,  1017,  1007,  1019,   994,   995,  1426,   109,
2519    998,   999,    60,  1104,  1002,    47,    54,    44,   975,   946,
2520    912,  1046,    54,    30,    36,    47,  1007,    54,  1446,    56,
2521     57,    64,    54,    64,  1059,   996,  1440,    27,    64,   108,
2522     60,    31,    74,  1007,    62,   972,  1007,    54,   499,    56,
2523     57,   502,    74,  1440,  1201,  1473,   108,   984,   108,   108,
2524     64,    93,   108,    64,     3,     4,     5,   518,   519,    59,
2525     60,    93,     3,     4,     5,     6,    64,  1102,    93,    59,
2526   1007,   532,   111,  1112,    62,  1503,  1100,  1101,  1102,   108,
2527   1017,   108,  1019,  1511,   907,   108,    75,   108,  1123,   108,
2528     75,    75,  1444,    75,   996,  1130,     3,     4,     5,  1123,
2529     41,   108,  1123,   108,  1128,  1129,  1130,    56,    57,    62,
2530   1123,    62,    59,    54,   108,    56,    57,    62,   111,    60,
2531     86,    62,    88,   946,    90,   108,    94,   426,    88,    70,
2532    591,  1166,  1123,   111,   433,     3,     4,     5,     6,    80,
2533   1532,    48,  1166,     3,     4,     5,    74,    88,    47,    56,
2534     57,   108,    93,  1166,   108,   111,   111,  1130,   977,   978,
2535      3,     4,     5,   109,   108,  1102,   108,    59,  1251,   135,
2536    108,   137,   108,    41,   109,  1166,  1078,    64,    64,    59,
2537     48,  1249,    59,  1251,   108,   108,  1123,  1006,    56,    57,
2538     93,  1162,  1166,  1130,    54,  1166,    56,    57,   497,     3,
2539      4,     5,  1104,    93,  1177,  1178,  1179,  1180,    93,    93,
2540   1245,    54,    80,    56,    57,  1250,   109,  1252,   109,   108,
2541     88,  1245,   839,   111,  1259,   108,   108,  1444,  1252,  1166,
2542      8,  1252,  1245,  1268,   108,  1259,  1418,   108,  1259,  1252,
2543    109,   108,   108,   108,    48,   108,  1259,  1421,  1422,   111,
2544    867,   868,    56,    57,  1245,   108,     3,     4,     5,    33,
2545   1162,  1252,   561,     3,     4,     5,     6,  1240,  1259,     9,
2546    108,     4,     5,   108,   108,     8,     9,  1100,  1101,  1102,
2547     64,    14,     3,     4,     5,     6,    78,    79,    80,    81,
2548     82,    83,    84,  1291,  1292,    28,   108,    30,    54,   598,
2549    108,    41,   108,    36,    62,  1128,  1129,  1130,  1245,    56,
2550     57,   772,    45,   111,    54,  1252,    56,    57,    47,   108,
2551     41,    54,  1259,    56,    57,    58,   108,    48,     8,     9,
2552     70,   108,    96,   299,    14,    56,    57,  1310,  1157,  1158,
2553     80,  1160,  1161,    62,  1163,    62,    60,    60,    88,     9,
2554     60,    16,    93,    93,   108,   108,    36,   108,  1356,    80,
2555     93,  1444,   108,   108,   108,    45,    93,    88,  1403,    60,
2556   1343,   337,    60,  1408,  1409,  1410,   111,  1445,  1413,  1403,
2557     17,    93,    93,    60,  1408,  1409,  1410,  1408,  1423,  1413,
2558     97,   107,  1413,   108,    60,  1408,  1409,  1421,  1422,   108,
2559   1413,     3,     4,     5,     6,  1440,   108,   868,   869,   108,
2560     11,    60,  1447,    60,    60,    93,  1440,  1408,  1409,    59,
2561     64,  1456,  1413,  1447,   108,    60,  1447,   108,    11,   108,
2562   1403,    60,  1456,    11,  1447,  1456,  1409,  1410,    60,    41,
2563   1057,     0,   907,  1456,     0,     0,   907,  1482,   412,     2,
2564   1423,   901,    54,   354,    56,    57,  1447,  1469,  1482,   425,
2565    426,   159,  1281,  1282,   159,  1456,  1403,   433,   744,  1504,
2566   1112,  1408,  1409,  1410,    92,   137,  1413,  1475,  1333,  1542,
2567   1504,   946,  1191,  1504,   279,   946,    88,   384,     3,     4,
2568      5,  1504,    80,    81,    82,    83,    84,   890,  1250,     3,
2569      4,     5,     6,  1440,  1144,   679,   970,  1542,   885,  1482,
2570   1447,  1128,  1129,  1504,  1007,   221,   744,  1164,  1542,  1456,
2571    883,  1542,   183,   617,   325,  1498,   825,   826,   122,  1542,
2572    496,   497,   831,  1252,  1357,  1124,   433,    41,  1459,    54,
2573   1521,    56,    57,    58,  1490,  1482,   845,  1520,   847,   565,
2574    849,  1542,    56,    57,  1527,  1511,   954,  1376,  1377,  1378,
2575   1523,  1268,    -1,   529,    -1,   531,    -1,  1504,   534,   535,
2576     -1,   537,   538,   539,   540,   541,   542,   543,   544,   545,
2577    546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
2578     -1,    -1,    -1,   892,    -1,   561,    -1,    -1,  1421,  1422,
2579   1423,    -1,    -1,    47,   711,  1542,     3,     4,     5,     6,
2580   1429,  1430,    -1,     3,     4,     5,    -1,     7,     8,     9,
2581     -1,    -1,    -1,    -1,    -1,   591,    -1,    -1,  1245,    -1,
2582    929,    -1,   598,    -1,    -1,  1100,  1101,  1102,    -1,    -1,
2583   1101,  1102,    86,    87,    41,   752,    36,    91,    92,    93,
2584     94,   758,    -1,    -1,   620,   621,    -1,    -1,    -1,    56,
2585     57,    -1,    -1,  1128,  1129,  1130,    56,    57,  1129,  1130,
2586    636,    -1,    -1,    -1,    -1,     1,  1495,     3,     4,     5,
2587      6,     7,     8,     9,    -1,    -1,    -1,   584,    14,    -1,
2588     -1,    88,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
2589     -1,    14,    28,    -1,    30,    31,    32,    -1,    -1,    22,
2590     36,    37,    -1,   679,    -1,    41,    -1,    -1,    -1,    45,
2591     46,    -1,    48,     3,     4,     5,     6,    -1,    54,    -1,
2592     56,    57,    -1,    -1,    60,    -1,    62,    -1,    -1,    -1,
2593      3,     4,     5,     6,    70,    -1,    -1,    -1,    -1,    -1,
2594     63,    -1,    -1,   860,    80,   862,   426,     3,     4,     5,
2595      6,    41,    88,   433,    -1,    -1,    -1,    93,    -1,   735,
2596     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    41,    -1,
2597     60,    -1,    -1,   109,    -1,    48,    -1,    -1,   754,   755,
2598     70,   757,    -1,    56,    57,    41,    -1,    -1,   695,    -1,
2599     80,    -1,    48,    -1,  1421,  1422,   772,    -1,    88,   122,
2600     56,    57,     4,    93,    -1,  1114,    -1,  1116,    -1,  1118,
2601     -1,    -1,    14,    -1,    -1,    88,    -1,   497,   794,    -1,
2602     -1,   144,    24,    -1,     4,     5,    -1,    -1,    30,    31,
2603     -1,    33,    88,    35,    -1,     3,     4,     5,    40,     7,
2604      8,     9,    -1,    -1,    -1,    -1,   753,    -1,    -1,   825,
2605    826,    53,   759,    55,   830,   831,    -1,    -1,    -1,    -1,
2606     -1,    63,    -1,    -1,    -1,    -1,    -1,    47,    70,   845,
2607     -1,   847,    -1,   849,    54,    -1,    56,    57,    -1,    81,
2608     82,   561,  1357,    -1,    -1,    -1,  1357,    -1,    56,    57,
2609     70,     7,     8,     9,    -1,    -1,   219,   220,    14,  1016,
2610     80,  1018,   104,  1212,    -1,    -1,   882,    -1,   231,    -1,
2611     90,   591,    -1,    93,    94,    31,   892,    -1,   598,    -1,
2612     36,    -1,    -1,    -1,    -1,   127,    -1,    -1,   904,    45,
2613    132,    -1,   134,    -1,   105,   106,   138,    -1,    -1,   141,
2614    142,   917,    -1,   145,   146,   147,  1421,  1422,  1423,    -1,
2615     -1,  1422,  1423,   929,    -1,  1072,    -1,   159,   865,    -1,
2616     -1,    -1,   869,     3,     4,     5,     6,    -1,    -1,     9,
2617    946,    -1,    -1,    -1,   176,   177,   178,   300,    71,    72,
2618     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2619     83,    84,     4,     5,   901,    -1,     8,     9,    -1,    -1,
2620    907,    41,    14,   205,    -1,    -1,    -1,    47,    -1,    -1,
2621     -1,   987,    -1,    -1,    54,    -1,    56,    57,   220,   342,
2622    176,   177,   178,    -1,    36,    -1,   228,    -1,   351,    -1,
2623     70,  1148,    -1,    45,    -1,    47,  1153,   239,    -1,   946,
2624     80,   364,    54,    -1,    56,    57,    -1,    -1,    88,    -1,
2625     90,    -1,    -1,    93,    94,     7,     8,     9,    70,    -1,
2626   1036,  1037,    14,    -1,  1040,   972,    -1,    -1,    80,    -1,
2627     -1,    -1,    -1,    -1,    -1,   277,   278,   984,    90,    31,
2628     -1,    93,    94,  1059,    36,    -1,    -1,    -1,  1205,    -1,
2629     -1,    -1,   772,    45,    -1,    -1,    -1,    -1,    -1,    -1,
2630     -1,     1,    -1,     3,     4,     5,     6,    -1,     8,    -1,
2631   1017,    -1,  1019,    -1,    -1,     7,     8,     9,    -1,   321,
2632     -1,    -1,    14,   325,    -1,   327,   328,   329,    -1,    -1,
2633     -1,    -1,    -1,    -1,    -1,    -1,   338,   308,  1114,    31,
2634   1116,    41,  1118,   466,    36,   825,   826,    -1,    48,    -1,
2635   1126,   831,   354,    45,    54,    -1,    56,    57,    -1,  1135,
2636   1136,    -1,    -1,    -1,  1140,   845,    -1,   847,    60,   849,
2637     -1,     3,     4,     5,     6,    -1,   378,    -1,    -1,  1155,
2638   1156,    -1,   384,  1300,  1301,   387,   388,    -1,    88,    -1,
2639     -1,    -1,    -1,    -1,    -1,  1102,   398,    -1,    -1,   401,
2640   1317,    -1,    -1,    -1,   406,  1181,    38,    39,   531,    41,
2641     -1,    -1,   892,   384,    -1,    -1,     3,     4,     5,     6,
2642     -1,    -1,    54,  1130,    56,    57,    -1,    -1,    -1,    -1,
2643     -1,    -1,    -1,   435,    -1,   437,  1212,   439,   440,   441,
2644     -1,    -1,    -1,   445,     3,     4,     5,     6,   450,   929,
2645    573,   453,  1369,  1370,    41,    -1,    -1,    -1,    -1,    -1,
2646   1236,    48,   433,    -1,    -1,    -1,   946,   469,    -1,    56,
2647     57,  1388,  1389,    -1,    -1,    -1,    -1,    -1,    -1,   435,
2648     -1,   437,    41,   439,   440,   441,    -1,    -1,    -1,    48,
2649     -1,    -1,    -1,    80,   450,  1271,    -1,    56,    57,    -1,
2650     -1,    88,    -1,    -1,    -1,   507,   508,   509,   510,    -1,
2651     -1,  1287,    -1,     3,     4,     5,    -1,     7,   641,    -1,
2652     -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,   499,    88,
2653    653,   502,    -1,  1309,    -1,   506,   507,   508,   509,   510,
2654     30,    -1,    -1,    -1,    -1,    -1,    -1,    37,   519,    -1,
2655     -1,    -1,     3,     4,     5,     6,   679,    -1,     9,    -1,
2656     -1,   532,    -1,   565,    54,   567,    56,    57,    -1,    -1,
2657     -1,     7,     8,     9,    -1,    -1,    -1,   579,    14,   581,
2658    582,  1357,   584,    -1,    -1,    -1,    -1,    -1,    -1,   591,
2659     41,    -1,    -1,   595,    -1,    31,    47,    -1,  1374,  1375,
2660     36,    -1,    -1,    54,    -1,    56,    57,  1383,   610,    45,
2661     -1,    -1,    -1,   584,    -1,    -1,    -1,    -1,    -1,    70,
2662    591,    -1,    -1,    -1,    60,     3,     4,     5,     6,    80,
2663     -1,     9,    -1,    -1,  1114,  1411,  1116,    88,  1118,    90,
2664     -1,    -1,    93,    94,    -1,    -1,    -1,   649,   650,   651,
2665    652,   653,   654,     3,     4,     5,     6,    -1,    -1,    -1,
2666     -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,
2667     -1,    -1,    -1,    55,    -1,    57,    54,    -1,    56,    57,
2668     76,    77,    78,    79,    80,    81,    82,    83,    84,   691,
2669     -1,    41,    70,   695,    -1,    -1,    -1,    -1,    48,    -1,
2670    702,   703,    80,   705,    -1,    -1,    56,    57,    -1,    -1,
2671     88,    -1,    90,    -1,    -1,    93,    94,     3,     4,     5,
2672      6,     7,     8,     9,   695,    -1,    -1,    -1,    14,    -1,
2673     80,   733,  1212,  1440,   736,    -1,   738,    -1,    88,    -1,
2674     -1,   743,   744,   745,    -1,    31,   702,   703,    -1,   705,
2675     36,   753,    -1,    -1,    -1,    41,  1532,   759,    -1,    45,
2676     -1,    47,    -1,    -1,   766,   767,   768,   890,    54,    -1,
2677     56,    57,    -1,    -1,    -1,    -1,   778,   900,    -1,    -1,
2678     -1,    -1,   753,   165,    70,    -1,     4,   743,   759,    -1,
2679     -1,    -1,    -1,    -1,    80,    -1,    14,    -1,    -1,    -1,
2680     -1,    -1,    88,    -1,    90,    23,    24,    93,    94,    -1,
2681    192,    -1,    30,    31,    -1,    33,    -1,    35,   200,   201,
2682     -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,   327,
2683    328,   329,    -1,    -1,    -1,    53,    -1,    55,    -1,    -1,
2684     -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,   850,    -1,
2685    852,    -1,    70,    -1,    -1,   826,    -1,   859,    -1,    -1,
2686     -1,   863,    -1,   865,    82,   867,   868,   869,    -1,    -1,
2687     -1,    -1,   874,    -1,    -1,    -1,    -1,  1357,    -1,    -1,
2688     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   859,    -1,
2689      4,     5,    -1,    -1,   865,     9,    -1,    -1,   869,   901,
2690     -1,   903,    -1,   905,   906,   907,    -1,    -1,    -1,   127,
2691     -1,    -1,    -1,    -1,  1037,    -1,   134,    -1,    -1,    -1,
2692    138,    -1,    -1,    -1,   142,    -1,    -1,   145,   146,   147,
2693    901,    -1,   903,    47,    -1,    -1,   907,    -1,    -1,    -1,
2694     54,   159,    56,    57,   946,     3,     4,     5,     6,   905,
2695    906,   907,    -1,    -1,    -1,    -1,    70,   959,   176,   177,
2696    178,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,
2697    972,    -1,    -1,   975,    -1,   946,    90,    -1,    -1,    93,
2698     94,    -1,   984,    41,    -1,    -1,    -1,   205,   959,    47,
2699    946,    -1,    -1,    -1,   965,   997,    54,  1120,    56,    57,
2700     -1,   972,    -1,  1126,    -1,  1007,   388,   389,    -1,    -1,
2701     -1,    -1,    70,   984,    -1,  1017,    -1,  1019,    -1,   975,
2702     -1,   239,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2703     88,    -1,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,
2704     -1,    -1,    -1,    -1,  1046,    -1,  1017,    -1,  1019,  1051,
2705   1052,    -1,  1054,    -1,    -1,    -1,    -1,    -1,    -1,   277,
2706    278,    -1,   444,    -1,    -1,    -1,    -1,    -1,    -1,   451,
2707    452,    -1,    -1,   455,    -1,  1046,    -1,   459,    -1,    -1,
2708     -1,    -1,    -1,   581,   582,    -1,    -1,    -1,    -1,    -1,
2709    472,    -1,    -1,    -1,    -1,    -1,  1098,  1099,  1100,  1101,
2710   1102,    -1,    -1,   321,  1106,    -1,    -1,   325,    -1,   327,
2711    328,   329,    -1,    -1,    -1,    -1,   334,    -1,  1241,    -1,
2712    338,    -1,    -1,    -1,    -1,    -1,  1128,  1129,  1130,    -1,
2713     -1,  1102,    -1,    -1,    -1,    -1,   354,    -1,    -1,    -1,
2714     -1,    -1,  1098,  1099,  1100,  1101,  1102,    -1,    -1,    -1,
2715   1106,   649,    -1,   651,   652,    -1,   654,  1159,    -1,  1130,
2716     -1,    -1,  1164,    -1,  1166,    -1,   384,    -1,    -1,   387,
2717    388,    -1,  1128,  1129,  1130,    -1,    -1,    -1,    -1,    -1,
2718    398,    -1,    -1,   401,    -1,    -1,    -1,    -1,   406,    -1,
2719     -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
2720     -1,    -1,  1325,  1159,    -1,    -1,    -1,    -1,    -1,    -1,
2721     -1,    -1,    -1,  1215,  1216,    -1,  1218,   435,    -1,   437,
2722     -1,   439,   440,   441,    -1,    -1,    -1,   445,    -1,   611,
2723     -1,    -1,   450,    -1,    -1,   453,    -1,    -1,    -1,    -1,
2724     -1,    -1,    -1,    -1,    -1,    -1,    -1,  1249,  1250,  1251,
2725    468,   469,    -1,     4,     5,    -1,    -1,     8,     9,  1215,
2726   1216,    -1,  1218,    14,    -1,    -1,  1268,    -1,   650,    -1,
2727    652,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
2728    778,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,   507,
2729    508,   509,   510,    -1,    45,    -1,    -1,  1268,    -1,    -1,
2730     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,   691,
2731     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2732     77,    78,    79,    80,    81,    82,    83,    84,    -1,    -1,
2733     -1,   713,    -1,    -1,   716,    -1,    -1,     3,     4,     5,
2734      6,    -1,    93,     9,    -1,    -1,    -1,   565,    -1,   567,
2735     -1,    -1,   850,    -1,   852,  1357,    -1,    -1,    -1,    -1,
2736     -1,    -1,   744,   581,   582,   863,   584,    -1,   750,   867,
2737    868,    -1,    -1,   591,    -1,    41,    -1,    -1,    -1,    -1,
2738     -1,    47,    -1,    -1,    -1,    -1,   604,    -1,    54,    -1,
2739     56,    57,   610,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2740     -1,  1357,    -1,    -1,    70,     4,     5,   905,   906,     8,
2741      9,    -1,    -1,    -1,    80,    14,    -1,    -1,    -1,  1421,
2742   1422,  1423,    88,   641,    90,    -1,    -1,    93,    94,    -1,
2743     -1,   649,   650,   651,   652,   653,   654,    36,  1440,    -1,
2744     -1,    -1,    -1,  1445,    -1,    -1,    45,    -1,    47,    -1,
2745     -1,    -1,  1423,    -1,   672,    54,    -1,    56,    57,    -1,
2746     -1,    80,    -1,    -1,    -1,  1421,  1422,  1423,    -1,  1440,
2747     -1,    70,    -1,   691,    -1,    -1,    -1,   695,    -1,    -1,
2748     -1,    80,    -1,    -1,   702,   703,    -1,   705,    -1,    -1,
2749     -1,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
2750      3,     4,     5,     6,     7,     8,     9,    -1,    -1,    -1,
2751     -1,    14,    -1,    -1,    -1,   733,    -1,    -1,   736,    -1,
2752    738,     3,     4,     5,     6,   743,   744,   745,    31,    -1,
2753     -1,    -1,    -1,    36,   153,   753,    -1,    -1,    41,    -1,
2754     -1,   759,    45,    -1,    47,    -1,    -1,    -1,   766,   767,
2755    768,    54,    -1,    56,    57,   174,    -1,    -1,    -1,    41,
2756    778,    -1,    -1,    -1,    -1,    -1,    -1,    70,   187,    -1,
2757     -1,    -1,    54,    -1,    56,    57,    -1,    80,    -1,    -1,
2758     62,    -1,    -1,    -1,    -1,    88,    -1,    90,    70,    -1,
2759     93,    94,    -1,    -1,    -1,   977,   978,    -1,    80,    -1,
2760   1098,  1099,  1100,  1101,    -1,    -1,    88,    -1,  1106,    -1,
2761     -1,    93,    -1,     1,    -1,     3,     4,     5,     6,     7,
2762      8,     9,    -1,    -1,  1006,    -1,    14,    -1,    -1,    -1,
2763   1128,  1129,   850,    -1,   852,    -1,    -1,    -1,    -1,    -1,
2764     28,   859,    30,    31,    32,   863,    -1,   865,    36,   867,
2765    868,   869,    -1,    41,    -1,    -1,   874,    45,    46,    -1,
2766     48,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
2767      4,    -1,    60,    -1,    62,    -1,    -1,    -1,     3,     4,
2768      5,     6,    70,   901,     9,   903,    -1,   905,   906,   907,
2769     -1,    -1,    80,    -1,    -1,    -1,    30,    31,    -1,    33,
2770     88,    35,    -1,    -1,    -1,    93,    40,    -1,    -1,    -1,
2771     -1,    -1,    -1,    -1,    -1,    -1,    41,  1215,  1216,    53,
2772   1218,    55,    -1,    -1,    -1,    -1,    -1,    -1,   946,    54,
2773     -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2774     -1,   959,    -1,    -1,    78,    70,    -1,    -1,    -1,    -1,
2775     -1,    -1,   970,    -1,   972,    80,    -1,   975,    -1,    -1,
2776     -1,    -1,    -1,    88,    -1,    -1,   984,    -1,    93,    -1,
2777     -1,    -1,    -1,    -1,    -1,  1157,  1158,    -1,  1160,  1161,
2778     -1,  1163,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1007,
2779     -1,    -1,    -1,   127,    -1,    -1,    -1,   131,   132,  1017,
2780    134,  1019,    -1,    -1,   138,    -1,   140,    -1,   142,    -1,
2781     -1,   145,   146,   147,    -1,    -1,    -1,    -1,    -1,    -1,
2782     -1,    -1,    -1,    -1,   443,   159,    -1,    -1,  1046,   448,
2783     -1,    -1,    -1,  1051,  1052,    -1,  1054,    -1,    -1,    -1,
2784     -1,    -1,   176,   177,   178,    -1,    -1,    -1,    -1,    -1,
2785     -1,    -1,   186,    -1,   473,     3,     4,     5,     6,    -1,
2786    479,     9,    -1,    -1,    -1,    -1,    -1,    -1,  1250,  1251,
2787     -1,   205,   491,   492,    -1,   494,     3,     4,     5,     6,
2788   1098,  1099,  1100,  1101,  1102,    -1,    -1,    -1,  1106,    -1,
2789     -1,    -1,    -1,    41,  1112,    -1,    -1,    -1,    -1,  1281,
2790   1282,    -1,    -1,    -1,    -1,   239,    54,    -1,    56,    57,
2791   1128,  1129,  1130,    -1,    41,    -1,    -1,    -1,    -1,    -1,
2792     -1,    -1,    70,    -1,    -1,    -1,  1144,    54,    -1,    56,
2793     57,    -1,    80,    -1,    -1,    62,    -1,    -1,    -1,    -1,
2794     88,  1159,    -1,    70,    -1,    93,  1164,    -1,  1166,    -1,
2795     -1,    -1,    -1,    80,    -1,    -1,    -1,     4,    -1,    -1,
2796     -1,    88,    -1,    -1,    -1,    -1,    93,    -1,   587,   588,
2797     -1,    -1,    -1,   592,   308,     3,     4,     5,     6,   327,
2798    328,   329,    -1,    30,    31,    -1,    33,    -1,    35,    -1,
2799     -1,   325,    -1,    40,  1376,  1377,  1378,  1215,  1216,   333,
2800   1218,    -1,    -1,    -1,   338,    -1,    53,    -1,    55,    -1,
2801     -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
2802    354,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
2803     -1,  1249,  1250,  1251,    62,    -1,    -1,    -1,    -1,    -1,
2804     -1,    -1,    70,    -1,   378,    -1,    -1,  1429,  1430,    -1,
2805   1268,    -1,    80,   387,    -1,    -1,    -1,    -1,    -1,    -1,
2806     88,    -1,    -1,    -1,   398,    93,    -1,   401,    -1,    -1,
2807     -1,    -1,   406,    72,    73,    74,    75,    76,    77,    78,
2808     79,    80,    81,    82,    83,    84,    -1,   134,    -1,    -1,
2809     -1,   138,    -1,    -1,    -1,   142,    -1,    -1,   145,   146,
2810    147,   435,    -1,   437,    -1,   439,   440,   441,    -1,    -1,
2811     -1,   445,   159,  1495,    -1,    -1,   450,    -1,    -1,   453,
2812      1,    -1,     3,     4,     5,     6,     7,     8,     9,   176,
2813    177,   178,    -1,    14,    -1,   469,    -1,    -1,    -1,  1357,
2814     -1,   760,    -1,   762,    -1,    -1,    -1,    28,    -1,    30,
2815     31,    -1,    -1,    -1,    -1,    36,    -1,    -1,   205,    -1,
2816     41,    -1,    -1,    -1,    45,   499,    -1,    48,   502,    -1,
2817     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
2818     -1,    -1,    -1,   517,   518,   519,    -1,    -1,    -1,    70,
2819     -1,    -1,   239,    -1,    -1,    -1,    -1,    -1,   532,    80,
2820     -1,    -1,    -1,  1421,  1422,  1423,    -1,    88,    -1,    -1,
2821     -1,    -1,    93,    -1,   833,   834,    -1,   836,    -1,     4,
2822      5,    -1,  1440,    -1,     9,    -1,    -1,  1445,    -1,    -1,
2823     -1,    -1,    -1,   581,   582,    -1,   584,    -1,    -1,    -1,
2824     -1,    -1,    -1,   591,   578,   864,     3,     4,     5,     6,
2825     -1,    -1,     9,    -1,    -1,    -1,    -1,   591,    -1,    -1,
2826     -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,
2827     -1,    56,    57,    33,    -1,    -1,   610,    -1,    -1,    -1,
2828     -1,    -1,    -1,    -1,    41,    70,    -1,   334,    -1,    -1,
2829    909,   338,    -1,    53,    -1,    80,    -1,    54,    -1,    56,
2830     57,   649,    -1,   651,   652,    90,   654,    -1,    93,    94,
2831     -1,    -1,    -1,    70,    -1,   649,   650,   651,   652,    -1,
2832     -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,
2833     -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
2834    387,    -1,    -1,   691,    -1,    -1,     3,     4,     5,     6,
2835     -1,   398,   971,    -1,   401,    -1,    -1,   691,    -1,   406,
2836     -1,   695,    -1,    -1,   983,    -1,    -1,    -1,   702,   703,
2837     -1,   705,    -1,    -1,     3,     4,     5,     6,    -1,    -1,
2838      9,    -1,    -1,    -1,    41,   145,   146,   147,   435,    -1,
2839    437,    -1,   439,   440,   441,    -1,    -1,    54,   445,    56,
2840     57,    -1,   736,   450,   738,    -1,   453,    -1,    -1,   743,
2841    744,   745,    41,    70,    -1,    -1,   176,   177,   178,    -1,
2842     -1,    -1,   469,    80,    -1,    54,    -1,    56,    57,    -1,
2843    778,    88,    -1,    -1,    -1,    -1,    93,    -1,   772,    -1,
2844     -1,    70,    -1,    -1,    -1,   205,    -1,    -1,  1067,    -1,
2845     -1,    80,    -1,    -1,    -1,    -1,     4,     5,    -1,    88,
2846      8,     9,    -1,    -1,    93,    -1,    14,    73,    74,    75,
2847     76,    77,    78,    79,    80,    81,    82,    83,    84,    -1,
2848     28,    -1,    30,    -1,    -1,    -1,  1105,    -1,    36,     3,
2849      4,     5,     6,     7,     8,     9,    -1,    45,    -1,    -1,
2850     14,    -1,   850,    -1,   852,    -1,    54,    -1,    56,    57,
2851     -1,    -1,    -1,    -1,    28,   863,    30,    31,   278,   867,
2852    868,   869,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
2853     -1,    45,   579,   867,   868,   869,    -1,    -1,    -1,   873,
2854     54,    -1,    56,    57,    -1,    -1,    60,    -1,    -1,  1168,
2855     -1,    -1,    -1,  1172,    -1,    -1,    70,   905,   906,   907,
2856     -1,    -1,    -1,   610,    -1,    -1,    80,   327,   328,   329,
2857     -1,   905,   906,   907,    88,    -1,    -1,    -1,   912,    93,
2858     -1,    -1,     3,     4,     5,     6,    -1,    -1,  1207,    -1,
2859     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   946,    -1,
2860     -1,    -1,   649,   650,   651,   652,    -1,    -1,    -1,    -1,
2861     -1,    -1,   946,    -1,    -1,     3,     4,     5,     6,    -1,
2862     41,     9,    -1,    -1,    -1,    -1,    -1,   387,    -1,    -1,
2863     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
2864     -1,   975,    -1,    -1,   691,    -1,    -1,    -1,   695,    70,
2865     -1,    -1,    -1,    41,    -1,   702,   703,  1276,   705,    80,
2866     -1,  1280,   996,    -1,    -1,    -1,    54,    88,    56,    57,
2867     -1,    -1,    93,  1007,    -1,   435,    53,   437,    -1,   439,
2868    440,   441,    70,  1302,  1303,   445,    -1,    -1,    -1,   736,
2869    450,   738,    80,   453,    -1,    -1,   743,   744,   745,    -1,
2870     88,    78,    -1,    -1,    81,    93,    -1,    -1,     3,     4,
2871      5,     6,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,
2872     -1,    -1,    -1,    -1,    -1,   102,    -1,   104,    69,    70,
2873     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2874     81,    82,    83,    84,  1078,    -1,    41,    -1,    -1,    -1,
2875   1098,  1099,  1100,  1101,  1102,    -1,    -1,    -1,  1106,    54,
2876     -1,    56,    57,    -1,  1098,  1099,  1100,  1101,  1102,    -1,
2877   1104,    -1,  1106,    -1,    -1,    70,    -1,    -1,    -1,    -1,
2878   1128,  1129,  1130,    -1,    -1,    80,    -1,    -1,    -1,    -1,
2879     -1,    -1,    -1,    88,  1128,  1129,  1130,    -1,    93,   176,
2880    177,   178,    -1,    -1,    -1,    -1,    -1,   567,    -1,   186,
2881      3,     4,     5,     6,    -1,    -1,     9,    -1,    -1,    -1,
2882     -1,   581,   582,    -1,   584,  1159,    -1,   874,   205,    -1,
2883   1164,   591,  1166,    70,    71,    72,    73,    74,    75,    76,
2884     77,    78,    79,    80,    81,    82,    83,    84,    41,    -1,
2885    610,   228,    -1,    -1,    -1,    -1,    -1,    -1,   905,   906,
2886    907,    54,    -1,    56,    57,   242,    -1,  1215,  1216,    -1,
2887   1218,    -1,    -1,     3,     4,     5,     6,    70,    -1,    -1,
2888     -1,  1215,  1216,    -1,  1218,    -1,    -1,    80,    -1,   649,
2889     -1,   651,   652,    -1,   654,    88,    -1,    -1,    -1,   946,
2890     93,     3,     4,     5,     6,    -1,    -1,    -1,    -1,    -1,
2891     -1,    41,    -1,    -1,    -1,  1249,  1250,  1251,    -1,    -1,
2892     -1,    -1,    -1,    -1,    54,    -1,    56,    57,   975,    -1,
2893     -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
2894     70,    -1,   702,   703,    -1,   705,    -1,    -1,    -1,    -1,
2895     80,    -1,    54,    -1,    56,    57,   333,   334,    88,    -1,
2896   1007,    -1,    -1,    93,    -1,    -1,    -1,    -1,    70,     1,
2897     -1,     3,     4,     5,     6,     7,     8,     9,    80,    -1,
2898     -1,    -1,    14,   743,    -1,    -1,    88,    -1,    -1,    -1,
2899     -1,    93,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,
2900     32,    -1,    -1,    -1,    36,    37,   766,   767,   768,    41,
2901    387,    -1,    -1,    45,    46,    -1,    48,    -1,   778,    -1,
2902     -1,    -1,    54,  1357,    56,    57,    -1,    -1,    60,    -1,
2903     62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,
2904     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    -1,
2905     -1,  1098,  1099,  1100,  1101,  1102,    88,    -1,   435,  1106,
2906    437,    93,   439,   440,   441,    -1,    -1,    -1,   445,    -1,
2907     -1,    -1,    -1,   450,     4,     5,   453,   109,     8,     9,
2908     -1,  1128,  1129,  1130,    14,    -1,    -1,  1421,  1422,  1423,
2909    850,    -1,   852,    -1,    -1,    -1,    -1,    -1,    28,    -1,
2910     30,    -1,    -1,   863,    -1,    -1,    36,   867,   868,   869,
2911     -1,  1445,  1159,     4,    -1,    45,    -1,  1164,    -1,  1166,
2912     -1,    -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,
2913     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
2914     31,    -1,    -1,    -1,    35,   905,   906,   907,    -1,    40,
2915     -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
2916      9,    -1,    -1,    -1,    55,    14,    -1,    -1,  1215,  1216,
2917     -1,  1218,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2918     -1,    30,    31,    32,    -1,    -1,   946,    36,    37,    -1,
2919     -1,    -1,    41,    -1,    -1,    -1,    45,    46,    -1,    48,
2920     -1,    -1,  1249,  1250,  1251,    54,    -1,    56,    57,    -1,
2921     -1,    60,    -1,    62,    -1,   975,    -1,   594,   595,    -1,
2922     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2923     -1,    80,    -1,   610,    -1,    -1,    -1,    -1,    -1,    88,
2924     -1,    -1,    -1,   134,    93,    -1,    -1,   138,    -1,    -1,
2925     -1,   142,     4,     5,    14,     7,     8,     9,    -1,    -1,
2926    109,    -1,    14,    23,    24,    -1,    -1,    -1,   159,    -1,
2927     30,    31,   649,    33,   651,   652,    28,    -1,    30,    31,
2928     -1,    -1,    -1,    -1,    36,   176,   177,    -1,    -1,    -1,
2929     -1,  1051,  1052,    45,  1054,    -1,    48,    -1,    -1,    -1,
2930     -1,    -1,    54,    63,    56,    57,    -1,    -1,    -1,    -1,
2931   1357,    -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,    -1,
2932     -1,    -1,    -1,    -1,    -1,   702,   703,    -1,   705,    -1,
2933     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1098,  1099,
2934   1100,  1101,  1102,    -1,    -1,    -1,  1106,    -1,   239,    -1,
2935     -1,    -1,    -1,   730,    -1,    -1,    -1,    -1,    -1,    -1,
2936     -1,    -1,   122,    -1,   124,    -1,   743,   127,  1128,  1129,
2937   1130,   131,   132,    -1,  1421,  1422,  1423,    -1,   138,    -1,
2938    140,   141,   142,    -1,    -1,   145,   146,   147,    -1,    -1,
2939      3,     4,     5,     6,     7,     8,     9,    -1,  1445,  1159,
2940     -1,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2941     -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,
2942     -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
2943     -1,    -1,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
2944     -1,    54,    -1,    56,    57,    -1,    -1,   338,    -1,    -1,
2945     -1,    -1,    -1,    -1,    -1,  1215,  1216,    70,  1218,   219,
2946    220,     4,     5,    -1,     7,     8,     9,    80,    -1,    12,
2947     -1,    14,    -1,    -1,    -1,    88,    -1,    90,    -1,   239,
2948     93,    94,    -1,    -1,    -1,    28,    -1,    30,    31,  1249,
2949     -1,  1251,    -1,    36,    -1,    -1,   873,   874,   875,    -1,
2950     -1,    -1,    45,    -1,    47,    -1,    -1,   398,    -1,    -1,
2951    401,    54,    -1,    56,    57,   406,    -1,    -1,   278,    -1,
2952     -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,   905,   906,
2953    907,    -1,    -1,    -1,    -1,   912,    -1,    80,    -1,    -1,
2954     -1,    -1,    -1,    -1,   435,    -1,   437,    90,    -1,    -1,
2955     93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   450,
2956     -1,    -1,    -1,    -1,    -1,   325,    -1,   327,   328,   946,
2957     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,
2958     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2959     -1,    -1,    -1,    -1,   354,    -1,    -1,  1357,   975,    68,
2960     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2961     79,    80,    81,    82,    83,    84,    -1,    -1,   378,   996,
2962      1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
2963     -1,    -1,    -1,    14,   394,    -1,    -1,    -1,   398,    -1,
2964     -1,   401,    -1,    -1,    -1,    -1,   406,    28,    -1,    30,
2965     31,    32,    -1,    -1,    -1,    36,    37,    -1,    -1,    -1,
2966     41,  1421,  1422,  1423,    45,    46,    -1,    48,    -1,    -1,
2967     -1,    -1,    -1,    54,    -1,    56,    57,    -1,    -1,    60,
2968     -1,    62,    -1,    -1,    -1,  1445,    -1,    -1,    -1,    70,
2969     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
2970     -1,  1078,    -1,    -1,    -1,    -1,   466,    88,   468,    -1,
2971     -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2972     -1,  1098,  1099,  1100,  1101,  1102,    -1,  1104,   109,  1106,
2973     -1,    -1,    -1,   493,    -1,    -1,     1,    -1,     3,     4,
2974      5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,
2975     -1,  1128,  1129,  1130,    -1,    -1,    -1,    -1,    -1,   650,
2976     -1,    -1,    27,    28,    -1,    30,    31,    32,    -1,    -1,
2977     -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,
2978     45,    46,  1159,    48,    -1,    -1,    -1,    -1,    -1,    54,
2979     -1,    56,    57,    -1,    -1,    60,    -1,    -1,    -1,    -1,
2980     -1,    -1,    -1,    -1,   695,    70,    -1,   567,    -1,    -1,
2981     -1,   702,   703,    -1,   705,    80,    -1,    -1,   578,   579,
2982     -1,   581,   582,    88,    -1,    -1,    -1,    -1,    93,    -1,
2983     -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,  1215,  1216,
2984     -1,  1218,    -1,    -1,    -1,   736,    -1,   738,    -1,    -1,
2985     -1,    -1,   743,   744,   745,    -1,    -1,    -1,    -1,    -1,
2986     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2987     -1,    -1,  1249,    -1,  1251,    -1,    -1,    -1,    -1,    -1,
2988     -1,   641,     1,    -1,     3,     4,     5,     6,    -1,     8,
2989      9,    10,    11,   653,    13,    14,    -1,    -1,    -1,    -1,
2990     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
2991     29,    30,   672,    32,    -1,    34,    35,    36,    -1,    38,
2992     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
2993     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
2994     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
2995     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
2996     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
2997    730,    -1,    -1,   733,    93,    94,    -1,    -1,    -1,    -1,
2998   1357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2999    109,   110,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
3000      5,     6,     7,     8,     9,    -1,   766,   767,   768,    14,
3001     -1,    -1,    -1,    -1,   905,   906,    -1,    -1,   778,    -1,
3002     -1,    -1,    27,    28,    -1,    30,    31,    32,    -1,    -1,
3003     -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    44,
3004     45,    46,    -1,    48,  1421,  1422,  1423,    -1,    -1,    54,
3005     -1,    56,    57,    -1,    -1,    60,     1,    -1,     3,     4,
3006      5,     6,     7,     8,     9,    70,    -1,    12,  1445,    14,
3007     -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,
3008     25,    -1,    27,    88,   975,    -1,    31,    -1,    93,    -1,
3009    850,    36,   852,    98,    -1,    -1,    41,    -1,    -1,    -1,
3010     45,    -1,    47,   863,    -1,    -1,    -1,    -1,    -1,    54,
3011     -1,    56,    57,    58,    59,    60,  1007,    62,    63,    64,
3012     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3013     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3014     -1,    86,    87,    88,    -1,    90,    91,    92,    93,    94,
3015     95,    -1,    97,    -1,    -1,    -1,    -1,   102,    -1,    -1,
3016     -1,    -1,   107,   108,   109,    -1,   111,    -1,    63,    64,
3017     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3018     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3019     -1,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
3020      9,    10,    11,    12,    13,    14,    -1,  1098,  1099,    -1,
3021    970,    -1,    -1,    -1,    -1,  1106,   111,    -1,    -1,    28,
3022     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3023     39,    40,    41,    42,    43,    -1,    45,   997,    47,    -1,
3024     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3025     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3026     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,  1159,    78,
3027     79,    80,    -1,  1164,    -1,  1166,    -1,    86,    87,    88,
3028     -1,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,
3029     -1,  1051,  1052,    -1,  1054,    -1,    -1,    -1,    -1,    -1,
3030     -1,   110,    -1,     3,     4,     5,     6,     7,     8,     9,
3031     -1,    -1,    12,    -1,    14,    -1,    -1,    -1,    -1,    -1,
3032     -1,    -1,    -1,    -1,  1215,  1216,    -1,  1218,    28,    -1,
3033     30,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
3034     -1,    41,    -1,    -1,    -1,    45,    -1,    47,    -1,    -1,
3035     -1,    -1,  1112,    -1,    54,    -1,    56,    57,    -1,  1250,
3036     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3037     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3038     80,    -1,    -1,    -1,  1144,    -1,    -1,    -1,    88,    -1,
3039     90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
3040     -1,    -1,  1162,     1,  1164,     3,     4,     5,     6,     7,
3041      8,     9,    10,    11,    -1,    13,    14,    15,    -1,    17,
3042     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3043     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3044     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3045     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3046     58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
3047     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3048     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3049     88,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,
3050     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3051     -1,   109,   110,     1,    -1,     3,     4,     5,     6,     7,
3052      8,     9,    10,    11,    -1,    13,    14,    15,    -1,    17,
3053     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3054     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3055     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3056     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3057     58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
3058     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3059     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3060     88,    -1,    -1,    -1,    -1,    93,     1,    95,     3,     4,
3061      5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3062     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3063     -1,    -1,    -1,    28,    29,    30,    31,    32,    -1,    34,
3064     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3065     45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
3066     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3067     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3068     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3069     -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
3070      1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
3071     11,    12,    13,    14,    -1,   110,    -1,    -1,    -1,    -1,
3072     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3073     31,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3074     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3075     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,
3076     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3077     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3078     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3079     -1,     1,    93,     3,     4,     5,     6,     7,     8,     9,
3080     10,    11,    -1,    13,    14,    -1,    -1,   108,    -1,   110,
3081     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3082     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3083     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3084     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3085     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3086     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3087     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3088     -1,    -1,     1,    93,     3,     4,     5,     6,    -1,     8,
3089      9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,
3090    110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3091     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3092     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3093     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3094     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3095     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3096     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3097     -1,    -1,    -1,    -1,    93,    94,     1,    -1,     3,     4,
3098      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3099     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3100     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3101     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3102     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3103     -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,
3104     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3105     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3106     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3107      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3108     14,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,
3109     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3110     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3111     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3112     54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,    -1,
3113     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3114     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3115     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3116      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3117     13,    14,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,
3118     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3119     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3120     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3121     53,    54,    -1,    56,    57,    58,    -1,    -1,    61,    -1,
3122     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3123     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3124     -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,
3125     93,    -1,     1,    -1,     3,     4,     5,     6,   101,     8,
3126      9,    10,    11,    -1,    13,    14,    -1,   110,    -1,    -1,
3127     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3128     29,    30,    -1,    32,    -1,    34,    35,    36,    -1,    38,
3129     39,    40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,
3130     49,    50,    51,    52,    53,    54,    -1,    56,    57,    58,
3131     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3132     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3133     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3134     -1,    -1,    -1,     1,    93,     3,     4,     5,     6,    -1,
3135      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3136     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3137     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3138     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3139     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3140     58,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3141     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3142     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3143     88,    -1,    -1,    -1,     1,    93,     3,     4,     5,     6,
3144     -1,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3145     -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3146     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3147     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3148     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3149     57,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,    -1,
3150     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3151     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3152     87,    88,    -1,    -1,    -1,     1,    93,     3,     4,     5,
3153      6,    -1,     8,     9,    10,    11,    -1,    13,    14,    -1,
3154     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3155     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3156     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3157     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3158     56,    57,    58,    -1,    -1,    61,    -1,    -1,    -1,    -1,
3159     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3160     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3161     86,    87,    88,    -1,    -1,    -1,     1,    93,     3,     4,
3162      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3163     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3164     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3165     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3166     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3167     -1,    56,    57,    -1,    -1,    60,    61,    -1,    -1,    -1,
3168     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3169     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3170     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3171      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3172     14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3173     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3174     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3175     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3176     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3177     -1,    -1,    -1,    67,     1,    -1,    70,     4,     5,    -1,
3178     -1,     8,     9,    -1,    78,    79,    80,    14,    -1,    -1,
3179     -1,    -1,    86,    87,    88,    -1,    -1,    -1,    -1,    93,
3180     -1,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,
3181     -1,    38,    39,    -1,   108,    -1,   110,    -1,    45,    -1,
3182     47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
3183     57,    -1,    59,    -1,    -1,    -1,    63,    64,    65,    66,
3184     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3185     77,    78,    79,    80,    81,    82,    83,    -1,    -1,    86,
3186     87,    88,    -1,    -1,    91,    -1,     1,    94,     3,     4,
3187      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3188     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3189     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3190     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3191     45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
3192     -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,    -1,
3193     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3194     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3195     -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,     3,
3196      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3197     14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3198     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3199     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3200     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3201     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3202     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3203     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3204     -1,    -1,    86,    87,    88,    -1,    -1,    -1,     1,    93,
3205      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3206     13,    14,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3207     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3208     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3209     43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,
3210     53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,
3211     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3212     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3213     -1,    -1,    -1,    86,    87,    88,     3,     4,     5,     6,
3214     93,     8,     9,    10,    11,    -1,    13,    14,    -1,    -1,
3215     -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,
3216     -1,    28,    29,    30,    -1,    32,    -1,    34,    35,    36,
3217     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3218     -1,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3219     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3220     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3221     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3222     87,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,
3223     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3224     -1,    -1,    -1,   110,   111,     3,     4,     5,     6,     7,
3225      8,     9,    10,    11,    -1,    13,    14,    15,    -1,    17,
3226     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3227     28,    29,    30,    31,    32,    -1,    34,    35,    36,    -1,
3228     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3229     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3230     58,    -1,    60,    61,    -1,    -1,    -1,    -1,    -1,    67,
3231     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3232     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3233     88,    -1,    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,
3234     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3235     -1,   109,   110,     3,     4,     5,     6,     7,     8,     9,
3236     10,    11,    -1,    13,    14,    15,    -1,    17,    18,    19,
3237     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3238     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3239     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3240     50,    51,    52,    53,    54,    -1,    56,    57,    58,    -1,
3241     60,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3242     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3243     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,
3244     -1,    -1,    -1,    93,    -1,    95,    -1,     3,     4,     5,
3245      6,     7,     8,     9,    10,    11,    -1,    13,    14,    15,
3246    110,    17,    18,    19,    20,    21,    22,    23,    24,    25,
3247     26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
3248     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3249     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3250     56,    57,    58,    -1,    60,    61,    -1,    -1,    -1,    -1,
3251     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3252     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3253     86,    87,    88,    -1,    -1,    -1,    -1,    93,    -1,    95,
3254     -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
3255     -1,    13,    14,    15,   110,    17,    18,    19,    20,    21,
3256     22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3257     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3258     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3259     52,    53,    54,    -1,    56,    57,    -1,    -1,    60,    61,
3260     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3261     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3262     -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3263     -1,    93,    -1,    95,     3,     4,     5,     6,     7,     8,
3264      9,    10,    11,    12,    13,    14,    -1,    -1,   110,    -1,
3265     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3266     29,    30,    31,    32,    -1,    34,    35,    36,    -1,    38,
3267     39,    40,    41,    42,    43,    -1,    45,    -1,    47,    -1,
3268     49,    50,    51,    52,    53,    54,    -1,    56,    57,    -1,
3269     -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,    -1,
3270     -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
3271     79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
3272     -1,    90,    -1,    -1,    93,    94,     3,     4,     5,     6,
3273      7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
3274     -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3275     -1,    28,    29,    30,    31,    32,    -1,    34,    35,    36,
3276     -1,    38,    39,    40,    41,    42,    43,    -1,    45,    -1,
3277     47,    -1,    49,    50,    51,    52,    53,    54,    -1,    56,
3278     57,    -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,
3279     67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
3280     -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,
3281     87,    88,    -1,    90,    -1,    -1,    93,    94,     3,     4,
3282      5,     6,    -1,     8,     9,    10,    11,    -1,    13,    14,
3283     -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    -1,
3284     -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,
3285     35,    36,    -1,    38,    39,    40,    41,    42,    43,    -1,
3286     45,    -1,    47,    -1,    49,    50,    51,    52,    53,    54,
3287     -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3288     -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,
3289     -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
3290     -1,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
3291      3,     4,     5,     6,    -1,     8,     9,    10,    11,    -1,
3292     13,    14,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,
3293     -1,    -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,
3294     -1,    34,    35,    36,    -1,    38,    39,    40,    41,    42,
3295     43,    -1,    45,    -1,    47,    -1,    49,    50,    51,    52,
3296     53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,
3297     -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,
3298     -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,
3299     -1,    -1,    -1,    86,    87,    88,    -1,    90,    -1,    -1,
3300     93,    94,     3,     4,     5,     6,    -1,     8,     9,    10,
3301     11,    -1,    13,    14,    -1,    -1,    -1,   110,    -1,    -1,
3302     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
3303     -1,    32,    -1,    34,    35,    36,    -1,    38,    39,    40,
3304     41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,
3305     51,    52,    53,    54,    -1,    56,    57,    -1,    -1,    60,
3306     61,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,
3307     -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,
3308     -1,    -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,
3309     -1,    -1,    93,     3,     4,     5,     6,     7,     8,     9,
3310     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,   110,
3311     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
3312     30,    31,    32,    -1,    34,    35,    36,    -1,    38,    39,
3313     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3314     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3315     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3316     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3317     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3318      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3319     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3320    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3321     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3322     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3323     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3324     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3325     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3326     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3327      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3328     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3329     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3330     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3331     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3332     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3333     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3334     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3335     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3336     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3337     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3338     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3339     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3340     52,    53,    54,    -1,    56,    57,    58,    -1,    -1,    -1,
3341     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3342     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3343     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3344      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3345     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3346     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3347     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3348     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3349     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3350     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3351     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3352     86,    87,    88,    -1,    -1,    -1,    -1,    93,    94,     3,
3353      4,     5,     6,    -1,     8,     9,    10,    11,    -1,    13,
3354     14,    -1,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,
3355     -1,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3356     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3357     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3358     54,    -1,    56,    57,    -1,    -1,    -1,    61,    -1,    -1,
3359     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3360     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3361     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3362      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3363     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3364     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3365     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3366     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3367     -1,    -1,    -1,    61,    -1,    -1,    -1,    -1,    -1,    67,
3368     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3369     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3370     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3371     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3372     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3373     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3374     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3375     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    61,
3376     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3377     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3378     -1,    -1,    -1,    -1,    86,    87,    88,     3,     4,     5,
3379      6,    93,     8,     9,    10,    11,    -1,    13,    14,    -1,
3380     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,
3381     -1,    -1,    28,    29,    30,    -1,    32,    -1,    34,    35,
3382     36,    -1,    38,    39,    40,    41,    42,    43,    -1,    45,
3383     -1,    -1,    -1,    49,    50,    51,    52,    53,    54,    -1,
3384     56,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3385     -1,    67,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,
3386     -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
3387     86,    87,    88,     3,     4,     5,     6,    93,     8,     9,
3388     10,    11,    -1,    13,    14,    -1,    -1,    -1,    -1,    -1,
3389     -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,    28,    29,
3390     30,    -1,    32,    -1,    34,    35,    36,    -1,    38,    39,
3391     40,    41,    42,    43,    -1,    45,    -1,    -1,    -1,    49,
3392     50,    51,    52,    53,    54,    -1,    56,    57,    -1,    -1,
3393     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
3394     70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,
3395     80,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,     3,
3396      4,     5,     6,    93,     8,     9,    10,    11,    -1,    13,
3397     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3398    110,    -1,    -1,    -1,    28,    29,    30,    -1,    32,    -1,
3399     34,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
3400     -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    53,
3401     54,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
3402     -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    -1,    -1,
3403     -1,    -1,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,
3404     -1,    -1,    86,    87,    88,     3,     4,     5,     6,    93,
3405      8,     9,    10,    11,    -1,    13,    14,    -1,    -1,    -1,
3406     -1,    -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    -1,
3407     28,    29,    30,    -1,    32,    -1,    34,    35,    36,    -1,
3408     38,    39,    40,    41,    42,    43,    -1,    45,    -1,    -1,
3409     -1,    49,    50,    51,    52,    53,    54,    -1,    56,    57,
3410     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
3411     -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3412     78,    79,    80,    -1,    -1,    -1,    -1,    -1,    86,    87,
3413     88,     3,     4,     5,     6,    93,     8,     9,    10,    11,
3414     -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3415     -1,    -1,   110,    -1,    -1,    -1,    28,    29,    30,    -1,
3416     32,    -1,    34,    35,    36,    -1,    38,    39,    40,    41,
3417     42,    43,    -1,    45,    -1,    -1,    -1,    49,    50,    51,
3418     52,    53,    54,    -1,    56,    57,    -1,    -1,    -1,    -1,
3419     -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
3420     -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80,    -1,
3421     -1,    -1,    -1,    -1,    86,    87,    88,    -1,    -1,    -1,
3422     -1,    93,     3,     4,     5,     6,     7,     8,     9,    -1,
3423     -1,    12,    -1,    14,    -1,    -1,    -1,    -1,   110,    -1,
3424     -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,
3425     31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
3426     41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    -1,    -1,
3427     -1,    -1,    -1,    54,    -1,    56,    57,     3,     4,     5,
3428      6,     7,     8,     9,    -1,    -1,    -1,    -1,    14,    70,
3429     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
3430     -1,    -1,    28,    -1,    30,    31,    -1,    88,    -1,    -1,
3431     36,    -1,    93,    -1,    -1,    41,    -1,    -1,    -1,    45,
3432     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
3433     56,    57,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,
3434     -1,    -1,    -1,    -1,    70,     3,     4,     5,     6,     7,
3435      8,     9,    -1,    -1,    80,    -1,    14,    -1,    -1,    -1,
3436     -1,    -1,    88,    -1,    -1,    -1,    -1,    93,    -1,    -1,
3437     28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,    -1,
3438     -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,
3439     -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,
3440     -1,    -1,    60,    -1,     3,     4,     5,     6,     7,     8,
3441      9,    -1,    70,    -1,    -1,    14,    -1,    -1,    -1,    -1,
3442     -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,    -1,    28,
3443     88,    30,    31,    -1,    -1,    93,    -1,    36,    -1,    -1,
3444     -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,
3445     -1,    -1,    -1,    -1,    -1,    54,    -1,    56,    57,     3,
3446      4,     5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,
3447     14,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3448     -1,    80,    -1,    -1,    28,    -1,    30,    31,    -1,    88,
3449     -1,    -1,    36,    -1,    93,    -1,    -1,    41,     4,     5,
3450     -1,    45,     8,     9,    -1,    -1,    -1,    -1,    14,    -1,
3451     54,    -1,    56,    57,     3,     4,     5,     6,     7,     8,
3452      9,    -1,    28,    -1,    30,    14,    70,    -1,    -1,    -1,
3453     36,    -1,    -1,    -1,    -1,    -1,    80,    -1,    -1,    45,
3454     -1,    47,    31,    -1,    88,    -1,    -1,    36,    54,    93,
3455     56,    57,    41,    -1,    -1,    12,    45,    -1,    47,    -1,
3456     -1,    -1,    -1,    -1,    70,    54,    -1,    56,    57,    -1,
3457     -1,    -1,    -1,    -1,    80,    -1,    -1,    -1,    -1,    -1,
3458     -1,    70,    -1,    -1,    90,    -1,    -1,    93,    94,    -1,
3459     -1,    80,    -1,    -1,    -1,    -1,    31,    -1,    -1,    88,
3460     -1,    -1,    -1,    -1,    93,    62,    63,    64,    65,    66,
3461     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3462     77,    78,    79,    80,    81,    82,    83,    84,    63,    64,
3463     65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3464     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3465      4,     5,    -1,     7,     8,     9,    -1,    -1,    12,    -1,
3466     14,    -1,    -1,     4,     5,    -1,     7,     8,     9,    -1,
3467     -1,    12,    -1,    14,    28,    -1,    30,    31,    -1,    -1,
3468     -1,    -1,    36,    -1,    -1,    -1,    -1,    28,    -1,    30,
3469     31,    45,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
3470     54,    -1,    56,    57,    45,    -1,    -1,     4,     5,    -1,
3471      7,     8,     9,    54,    -1,    56,    57,    14,    -1,    -1,
3472     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3473     -1,    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    36,
3474     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    -1,
3475     -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    56,
3476     57,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3477     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3478     82,    83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3479     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3480     -1,    -1,    59,    -1,    -1,   107,    63,    64,    65,    66,
3481     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3482     77,    78,    79,    80,    81,    82,    83,    84,    62,    63,
3483     64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3484     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3485     84,    63,    64,    65,    66,    67,    68,    69,    70,    71,
3486     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
3487     82,    83,    84,    63,    64,    65,    66,    67,    68,    69,
3488     70,    71,    72,    73,    74,    -1,    76,    77,    78,    79,
3489     80,    81,    82,    83,    84
3490 };
3491 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
3492 #line 3 "/usr/lib/bison.simple"
3493
3494 /* Skeleton output parser for bison,
3495    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
3496
3497    This program is free software; you can redistribute it and/or modify
3498    it under the terms of the GNU General Public License as published by
3499    the Free Software Foundation; either version 2, or (at your option)
3500    any later version.
3501
3502    This program is distributed in the hope that it will be useful,
3503    but WITHOUT ANY WARRANTY; without even the implied warranty of
3504    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
3505    GNU General Public License for more details.
3506
3507    You should have received a copy of the GNU General Public License
3508    along with this program; if not, write to the Free Software
3509    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
3510
3511 /* As a special exception, when this file is copied by Bison into a
3512    Bison output file, you may use that output file without restriction.
3513    This special exception was added by the Free Software Foundation
3514    in version 1.24 of Bison.  */
3515
3516 #ifndef alloca
3517 #ifdef __GNUC__
3518 #define alloca __builtin_alloca
3519 #else /* not GNU C.  */
3520 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
3521 #include <alloca.h>
3522 #else /* not sparc */
3523 #if defined (MSDOS) && !defined (__TURBOC__)
3524 #include <malloc.h>
3525 #else /* not MSDOS, or __TURBOC__ */
3526 #if defined(_AIX)
3527 #include <malloc.h>
3528  #pragma alloca
3529 #else /* not MSDOS, __TURBOC__, or _AIX */
3530 #ifdef __hpux
3531 #ifdef __cplusplus
3532 extern "C" {
3533 void *alloca (unsigned int);
3534 };
3535 #else /* not __cplusplus */
3536 void *alloca ();
3537 #endif /* not __cplusplus */
3538 #endif /* __hpux */
3539 #endif /* not _AIX */
3540 #endif /* not MSDOS, or __TURBOC__ */
3541 #endif /* not sparc.  */
3542 #endif /* not GNU C.  */
3543 #endif /* alloca not defined.  */
3544
3545 /* This is the parser code that is written into each bison parser
3546   when the %semantic_parser declaration is not specified in the grammar.
3547   It was written by Richard Stallman by simplifying the hairy parser
3548   used when %semantic_parser is specified.  */
3549
3550 /* Note: there must be only one dollar sign in this file.
3551    It is replaced by the list of actions, each action
3552    as one case of the switch.  */
3553
3554 #define yyerrok         (yyerrstatus = 0)
3555 #define yyclearin       (yychar = YYEMPTY)
3556 #define YYEMPTY         -2
3557 #define YYEOF           0
3558 #define YYACCEPT        return(0)
3559 #define YYABORT         return(1)
3560 #define YYERROR         goto yyerrlab1
3561 /* Like YYERROR except do call yyerror.
3562    This remains here temporarily to ease the
3563    transition to the new meaning of YYERROR, for GCC.
3564    Once GCC version 2 has supplanted version 1, this can go.  */
3565 #define YYFAIL          goto yyerrlab
3566 #define YYRECOVERING()  (!!yyerrstatus)
3567 #define YYBACKUP(token, value) \
3568 do                                                              \
3569   if (yychar == YYEMPTY && yylen == 1)                          \
3570     { yychar = (token), yylval = (value);                       \
3571       yychar1 = YYTRANSLATE (yychar);                           \
3572       YYPOPSTACK;                                               \
3573       goto yybackup;                                            \
3574     }                                                           \
3575   else                                                          \
3576     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
3577 while (0)
3578
3579 #define YYTERROR        1
3580 #define YYERRCODE       256
3581
3582 #ifndef YYPURE
3583 #define YYLEX           yylex()
3584 #endif
3585
3586 #ifdef YYPURE
3587 #ifdef YYLSP_NEEDED
3588 #ifdef YYLEX_PARAM
3589 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
3590 #else
3591 #define YYLEX           yylex(&yylval, &yylloc)
3592 #endif
3593 #else /* not YYLSP_NEEDED */
3594 #ifdef YYLEX_PARAM
3595 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
3596 #else
3597 #define YYLEX           yylex(&yylval)
3598 #endif
3599 #endif /* not YYLSP_NEEDED */
3600 #endif
3601
3602 /* If nonreentrant, generate the variables here */
3603
3604 #ifndef YYPURE
3605
3606 int     yychar;                 /*  the lookahead symbol                */
3607 YYSTYPE yylval;                 /*  the semantic value of the           */
3608                                 /*  lookahead symbol                    */
3609
3610 #ifdef YYLSP_NEEDED
3611 YYLTYPE yylloc;                 /*  location data for the lookahead     */
3612                                 /*  symbol                              */
3613 #endif
3614
3615 int yynerrs;                    /*  number of parse errors so far       */
3616 #endif  /* not YYPURE */
3617
3618 #if YYDEBUG != 0
3619 int yydebug;                    /*  nonzero means print parse trace     */
3620 /* Since this is uninitialized, it does not stop multiple parsers
3621    from coexisting.  */
3622 #endif
3623
3624 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
3625
3626 #ifndef YYINITDEPTH
3627 #define YYINITDEPTH 200
3628 #endif
3629
3630 /*  YYMAXDEPTH is the maximum size the stacks can grow to
3631     (effective only if the built-in stack extension method is used).  */
3632
3633 #if YYMAXDEPTH == 0
3634 #undef YYMAXDEPTH
3635 #endif
3636
3637 #ifndef YYMAXDEPTH
3638 #define YYMAXDEPTH 10000
3639 #endif
3640
3641 /* Prevent warning if -Wstrict-prototypes.  */
3642 #ifdef __GNUC__
3643 int yyparse (void);
3644 #endif
3645 \f
3646 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
3647 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
3648 #else                           /* not GNU C or C++ */
3649 #ifndef __cplusplus
3650
3651 /* This is the most reliable way to avoid incompatibilities
3652    in available built-in functions on various systems.  */
3653 static void
3654 __yy_memcpy (to, from, count)
3655      char *to;
3656      char *from;
3657      int count;
3658 {
3659   register char *f = from;
3660   register char *t = to;
3661   register int i = count;
3662
3663   while (i-- > 0)
3664     *t++ = *f++;
3665 }
3666
3667 #else /* __cplusplus */
3668
3669 /* This is the most reliable way to avoid incompatibilities
3670    in available built-in functions on various systems.  */
3671 static void
3672 __yy_memcpy (char *to, char *from, int count)
3673 {
3674   register char *f = from;
3675   register char *t = to;
3676   register int i = count;
3677
3678   while (i-- > 0)
3679     *t++ = *f++;
3680 }
3681
3682 #endif
3683 #endif
3684 \f
3685 #line 196 "/usr/lib/bison.simple"
3686
3687 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
3688    into yyparse.  The argument should have type void *.
3689    It should actually point to an object.
3690    Grammar actions can access the variable by casting it
3691    to the proper pointer type.  */
3692
3693 #ifdef YYPARSE_PARAM
3694 #ifdef __cplusplus
3695 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
3696 #define YYPARSE_PARAM_DECL
3697 #else /* not __cplusplus */
3698 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
3699 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
3700 #endif /* not __cplusplus */
3701 #else /* not YYPARSE_PARAM */
3702 #define YYPARSE_PARAM_ARG
3703 #define YYPARSE_PARAM_DECL
3704 #endif /* not YYPARSE_PARAM */
3705
3706 int
3707 yyparse(YYPARSE_PARAM_ARG)
3708      YYPARSE_PARAM_DECL
3709 {
3710   register int yystate;
3711   register int yyn;
3712   register short *yyssp;
3713   register YYSTYPE *yyvsp;
3714   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
3715   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
3716
3717   short yyssa[YYINITDEPTH];     /*  the state stack                     */
3718   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
3719
3720   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
3721   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
3722
3723 #ifdef YYLSP_NEEDED
3724   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
3725   YYLTYPE *yyls = yylsa;
3726   YYLTYPE *yylsp;
3727
3728 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
3729 #else
3730 #define YYPOPSTACK   (yyvsp--, yyssp--)
3731 #endif
3732
3733   int yystacksize = YYINITDEPTH;
3734
3735 #ifdef YYPURE
3736   int yychar;
3737   YYSTYPE yylval;
3738   int yynerrs;
3739 #ifdef YYLSP_NEEDED
3740   YYLTYPE yylloc;
3741 #endif
3742 #endif
3743
3744   YYSTYPE yyval;                /*  the variable used to return         */
3745                                 /*  semantic values from the action     */
3746                                 /*  routines                            */
3747
3748   int yylen;
3749
3750 #if YYDEBUG != 0
3751   if (yydebug)
3752     fprintf(stderr, "Starting parse\n");
3753 #endif
3754
3755   yystate = 0;
3756   yyerrstatus = 0;
3757   yynerrs = 0;
3758   yychar = YYEMPTY;             /* Cause a token to be read.  */
3759
3760   /* Initialize stack pointers.
3761      Waste one element of value and location stack
3762      so that they stay on the same level as the state stack.
3763      The wasted elements are never initialized.  */
3764
3765   yyssp = yyss - 1;
3766   yyvsp = yyvs;
3767 #ifdef YYLSP_NEEDED
3768   yylsp = yyls;
3769 #endif
3770
3771 /* Push a new state, which is found in  yystate  .  */
3772 /* In all cases, when you get here, the value and location stacks
3773    have just been pushed. so pushing a state here evens the stacks.  */
3774 yynewstate:
3775
3776   *++yyssp = yystate;
3777
3778   if (yyssp >= yyss + yystacksize - 1)
3779     {
3780       /* Give user a chance to reallocate the stack */
3781       /* Use copies of these so that the &'s don't force the real ones into memory. */
3782       YYSTYPE *yyvs1 = yyvs;
3783       short *yyss1 = yyss;
3784 #ifdef YYLSP_NEEDED
3785       YYLTYPE *yyls1 = yyls;
3786 #endif
3787
3788       /* Get the current used size of the three stacks, in elements.  */
3789       int size = yyssp - yyss + 1;
3790
3791 #ifdef yyoverflow
3792       /* Each stack pointer address is followed by the size of
3793          the data in use in that stack, in bytes.  */
3794 #ifdef YYLSP_NEEDED
3795       /* This used to be a conditional around just the two extra args,
3796          but that might be undefined if yyoverflow is a macro.  */
3797       yyoverflow("parser stack overflow",
3798                  &yyss1, size * sizeof (*yyssp),
3799                  &yyvs1, size * sizeof (*yyvsp),
3800                  &yyls1, size * sizeof (*yylsp),
3801                  &yystacksize);
3802 #else
3803       yyoverflow("parser stack overflow",
3804                  &yyss1, size * sizeof (*yyssp),
3805                  &yyvs1, size * sizeof (*yyvsp),
3806                  &yystacksize);
3807 #endif
3808
3809       yyss = yyss1; yyvs = yyvs1;
3810 #ifdef YYLSP_NEEDED
3811       yyls = yyls1;
3812 #endif
3813 #else /* no yyoverflow */
3814       /* Extend the stack our own way.  */
3815       if (yystacksize >= YYMAXDEPTH)
3816         {
3817           yyerror("parser stack overflow");
3818           return 2;
3819         }
3820       yystacksize *= 2;
3821       if (yystacksize > YYMAXDEPTH)
3822         yystacksize = YYMAXDEPTH;
3823       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
3824       __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
3825       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
3826       __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
3827 #ifdef YYLSP_NEEDED
3828       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
3829       __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
3830 #endif
3831 #endif /* no yyoverflow */
3832
3833       yyssp = yyss + size - 1;
3834       yyvsp = yyvs + size - 1;
3835 #ifdef YYLSP_NEEDED
3836       yylsp = yyls + size - 1;
3837 #endif
3838
3839 #if YYDEBUG != 0
3840       if (yydebug)
3841         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
3842 #endif
3843
3844       if (yyssp >= yyss + yystacksize - 1)
3845         YYABORT;
3846     }
3847
3848 #if YYDEBUG != 0
3849   if (yydebug)
3850     fprintf(stderr, "Entering state %d\n", yystate);
3851 #endif
3852
3853   goto yybackup;
3854  yybackup:
3855
3856 /* Do appropriate processing given the current state.  */
3857 /* Read a lookahead token if we need one and don't already have one.  */
3858 /* yyresume: */
3859
3860   /* First try to decide what to do without reference to lookahead token.  */
3861
3862   yyn = yypact[yystate];
3863   if (yyn == YYFLAG)
3864     goto yydefault;
3865
3866   /* Not known => get a lookahead token if don't already have one.  */
3867
3868   /* yychar is either YYEMPTY or YYEOF
3869      or a valid token in external form.  */
3870
3871   if (yychar == YYEMPTY)
3872     {
3873 #if YYDEBUG != 0
3874       if (yydebug)
3875         fprintf(stderr, "Reading a token: ");
3876 #endif
3877       yychar = YYLEX;
3878     }
3879
3880   /* Convert token to internal form (in yychar1) for indexing tables with */
3881
3882   if (yychar <= 0)              /* This means end of input. */
3883     {
3884       yychar1 = 0;
3885       yychar = YYEOF;           /* Don't call YYLEX any more */
3886
3887 #if YYDEBUG != 0
3888       if (yydebug)
3889         fprintf(stderr, "Now at end of input.\n");
3890 #endif
3891     }
3892   else
3893     {
3894       yychar1 = YYTRANSLATE(yychar);
3895
3896 #if YYDEBUG != 0
3897       if (yydebug)
3898         {
3899           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
3900           /* Give the individual parser a way to print the precise meaning
3901              of a token, for further debugging info.  */
3902 #ifdef YYPRINT
3903           YYPRINT (stderr, yychar, yylval);
3904 #endif
3905           fprintf (stderr, ")\n");
3906         }
3907 #endif
3908     }
3909
3910   yyn += yychar1;
3911   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
3912     goto yydefault;
3913
3914   yyn = yytable[yyn];
3915
3916   /* yyn is what to do for this token type in this state.
3917      Negative => reduce, -yyn is rule number.
3918      Positive => shift, yyn is new state.
3919        New state is final state => don't bother to shift,
3920        just return success.
3921      0, or most negative number => error.  */
3922
3923   if (yyn < 0)
3924     {
3925       if (yyn == YYFLAG)
3926         goto yyerrlab;
3927       yyn = -yyn;
3928       goto yyreduce;
3929     }
3930   else if (yyn == 0)
3931     goto yyerrlab;
3932
3933   if (yyn == YYFINAL)
3934     YYACCEPT;
3935
3936   /* Shift the lookahead token.  */
3937
3938 #if YYDEBUG != 0
3939   if (yydebug)
3940     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
3941 #endif
3942
3943   /* Discard the token being shifted unless it is eof.  */
3944   if (yychar != YYEOF)
3945     yychar = YYEMPTY;
3946
3947   *++yyvsp = yylval;
3948 #ifdef YYLSP_NEEDED
3949   *++yylsp = yylloc;
3950 #endif
3951
3952   /* count tokens shifted since error; after three, turn off error status.  */
3953   if (yyerrstatus) yyerrstatus--;
3954
3955   yystate = yyn;
3956   goto yynewstate;
3957
3958 /* Do the default action for the current state.  */
3959 yydefault:
3960
3961   yyn = yydefact[yystate];
3962   if (yyn == 0)
3963     goto yyerrlab;
3964
3965 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
3966 yyreduce:
3967   yylen = yyr2[yyn];
3968   if (yylen > 0)
3969     yyval = yyvsp[1-yylen]; /* implement default value of the action */
3970
3971 #if YYDEBUG != 0
3972   if (yydebug)
3973     {
3974       int i;
3975
3976       fprintf (stderr, "Reducing via rule %d (line %d), ",
3977                yyn, yyrline[yyn]);
3978
3979       /* Print the symbols being reduced, and their result.  */
3980       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
3981         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
3982       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
3983     }
3984 #endif
3985
3986
3987   switch (yyn) {
3988
3989 case 2:
3990 #line 331 "parse.y"
3991 { finish_translation_unit (); ;
3992     break;}
3993 case 3:
3994 #line 339 "parse.y"
3995 { yyval.ttype = NULL_TREE; ;
3996     break;}
3997 case 4:
3998 #line 341 "parse.y"
3999 { yyval.ttype = NULL_TREE; ;
4000     break;}
4001 case 5:
4002 #line 343 "parse.y"
4003 { yyval.ttype = NULL_TREE; ;
4004     break;}
4005 case 8:
4006 #line 352 "parse.y"
4007 { have_extern_spec = 1;
4008                   used_extern_spec = 0;
4009                   yyval.ttype = NULL_TREE; ;
4010     break;}
4011 case 9:
4012 #line 357 "parse.y"
4013 { have_extern_spec = 0; ;
4014     break;}
4015 case 10:
4016 #line 362 "parse.y"
4017 { yyval.itype = pedantic;
4018                   pedantic = 0; ;
4019     break;}
4020 case 12:
4021 #line 371 "parse.y"
4022 { if (pending_lang_change) do_pending_lang_change(); ;
4023     break;}
4024 case 13:
4025 #line 373 "parse.y"
4026 { if (! toplevel_bindings_p () && ! pseudo_global_level_p())
4027                   pop_everything (); ;
4028     break;}
4029 case 14:
4030 #line 379 "parse.y"
4031 { if (pending_inlines) do_pending_inlines (); ;
4032     break;}
4033 case 15:
4034 #line 381 "parse.y"
4035 { if (pending_inlines) do_pending_inlines (); ;
4036     break;}
4037 case 16:
4038 #line 383 "parse.y"
4039 { if (pending_inlines) do_pending_inlines (); ;
4040     break;}
4041 case 17:
4042 #line 385 "parse.y"
4043 { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
4044                   assemble_asm (yyvsp[-2].ttype); ;
4045     break;}
4046 case 18:
4047 #line 388 "parse.y"
4048 { pop_lang_context (); ;
4049     break;}
4050 case 19:
4051 #line 390 "parse.y"
4052 { if (pending_inlines) do_pending_inlines ();
4053                   pop_lang_context (); ;
4054     break;}
4055 case 20:
4056 #line 393 "parse.y"
4057 { if (pending_inlines) do_pending_inlines ();
4058                   pop_lang_context (); ;
4059     break;}
4060 case 21:
4061 #line 396 "parse.y"
4062 { push_namespace (yyvsp[-1].ttype); ;
4063     break;}
4064 case 22:
4065 #line 398 "parse.y"
4066 { pop_namespace (); ;
4067     break;}
4068 case 23:
4069 #line 400 "parse.y"
4070 { push_namespace (NULL_TREE); ;
4071     break;}
4072 case 24:
4073 #line 402 "parse.y"
4074 { pop_namespace (); ;
4075     break;}
4076 case 25:
4077 #line 404 "parse.y"
4078 { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4079     break;}
4080 case 26:
4081 #line 406 "parse.y"
4082 { do_toplevel_using_decl (yyvsp[-1].ttype); ;
4083     break;}
4084 case 27:
4085 #line 408 "parse.y"
4086 {
4087                   /* If no declaration was found, the using-directive is
4088                      invalid. Since that was not reported, we need the
4089                      identifier for the error message. */
4090                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
4091                     yyvsp[-1].ttype = lastiddecl;
4092                   do_using_directive (yyvsp[-1].ttype);
4093                 ;
4094     break;}
4095 case 28:
4096 #line 417 "parse.y"
4097 { pedantic = yyvsp[-1].itype; ;
4098     break;}
4099 case 29:
4100 #line 422 "parse.y"
4101 { yyval.ttype = yyvsp[0].ttype; ;
4102     break;}
4103 case 30:
4104 #line 424 "parse.y"
4105 { yyval.ttype = yyvsp[0].ttype; ;
4106     break;}
4107 case 31:
4108 #line 426 "parse.y"
4109 { yyval.ttype = yyvsp[0].ttype; ;
4110     break;}
4111 case 34:
4112 #line 433 "parse.y"
4113 { yyval.ttype = yyvsp[0].ttype; ;
4114     break;}
4115 case 35:
4116 #line 435 "parse.y"
4117 { yyval.ttype = yyvsp[0].ttype; ;
4118     break;}
4119 case 36:
4120 #line 440 "parse.y"
4121 { push_lang_context (yyvsp[0].ttype); ;
4122     break;}
4123 case 37:
4124 #line 442 "parse.y"
4125 { if (current_lang_name != yyvsp[0].ttype)
4126                     cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
4127                   pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
4128     break;}
4129 case 38:
4130 #line 449 "parse.y"
4131 { begin_template_parm_list (); ;
4132     break;}
4133 case 39:
4134 #line 451 "parse.y"
4135 { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
4136     break;}
4137 case 40:
4138 #line 453 "parse.y"
4139 { begin_specialization(); 
4140                   yyval.ttype = NULL_TREE; ;
4141     break;}
4142 case 41:
4143 #line 459 "parse.y"
4144 { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
4145     break;}
4146 case 42:
4147 #line 461 "parse.y"
4148 { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4149     break;}
4150 case 43:
4151 #line 466 "parse.y"
4152 { yyval.ttype = yyvsp[0].ttype; ;
4153     break;}
4154 case 44:
4155 #line 468 "parse.y"
4156 { yyval.ttype = NULL_TREE; ;
4157     break;}
4158 case 45:
4159 #line 472 "parse.y"
4160 { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4161     break;}
4162 case 46:
4163 #line 474 "parse.y"
4164 { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
4165     break;}
4166 case 47:
4167 #line 479 "parse.y"
4168 { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
4169     break;}
4170 case 48:
4171 #line 491 "parse.y"
4172 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4173     break;}
4174 case 49:
4175 #line 493 "parse.y"
4176 { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
4177     break;}
4178 case 50:
4179 #line 495 "parse.y"
4180 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
4181     break;}
4182 case 51:
4183 #line 497 "parse.y"
4184 { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
4185     break;}
4186 case 52:
4187 #line 499 "parse.y"
4188 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4189     break;}
4190 case 53:
4191 #line 501 "parse.y"
4192 {
4193                   if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
4194                       && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
4195                       && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
4196                     {
4197                       error ("invalid default template argument");
4198                       yyvsp[0].ttype = error_mark_node;
4199                     }
4200                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
4201                 ;
4202     break;}
4203 case 54:
4204 #line 516 "parse.y"
4205
4206                   if (yyvsp[-1].ttype) 
4207                     end_template_decl (); 
4208                   else
4209                     end_specialization ();
4210                 ;
4211     break;}
4212 case 55:
4213 #line 524 "parse.y"
4214
4215                   if (yyvsp[-1].ttype) 
4216                     end_template_decl ();
4217                   else
4218                     end_specialization (); 
4219                 ;
4220     break;}
4221 case 57:
4222 #line 535 "parse.y"
4223 {;
4224     break;}
4225 case 58:
4226 #line 537 "parse.y"
4227 {
4228                   note_list_got_semicolon (yyvsp[-2].ftype.t);
4229                 ;
4230     break;}
4231 case 59:
4232 #line 541 "parse.y"
4233 { pedwarn ("empty declaration"); ;
4234     break;}
4235 case 61:
4236 #line 544 "parse.y"
4237 {
4238                   tree t, attrs;
4239                   split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
4240                   shadow_tag (t);
4241                   note_list_got_semicolon (yyvsp[-1].ftype.t);
4242                 ;
4243     break;}
4244 case 65:
4245 #line 557 "parse.y"
4246 { yyval.itype = 0; ;
4247     break;}
4248 case 66:
4249 #line 559 "parse.y"
4250 { yyval.itype = 1; ;
4251     break;}
4252 case 72:
4253 #line 575 "parse.y"
4254 { finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
4255     break;}
4256 case 73:
4257 #line 577 "parse.y"
4258 { ;
4259     break;}
4260 case 74:
4261 #line 579 "parse.y"
4262 { ;
4263     break;}
4264 case 75:
4265 #line 584 "parse.y"
4266 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4267     break;}
4268 case 76:
4269 #line 586 "parse.y"
4270 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4271     break;}
4272 case 77:
4273 #line 588 "parse.y"
4274 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4275                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4276                 ;
4277     break;}
4278 case 78:
4279 #line 592 "parse.y"
4280 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4281     break;}
4282 case 79:
4283 #line 594 "parse.y"
4284 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4285     break;}
4286 case 80:
4287 #line 596 "parse.y"
4288 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4289                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4290                 ;
4291     break;}
4292 case 81:
4293 #line 600 "parse.y"
4294 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4295     break;}
4296 case 82:
4297 #line 602 "parse.y"
4298 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4299     break;}
4300 case 83:
4301 #line 604 "parse.y"
4302 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
4303                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4304                 ;
4305     break;}
4306 case 84:
4307 #line 608 "parse.y"
4308 { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
4309     break;}
4310 case 85:
4311 #line 610 "parse.y"
4312 { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4313     break;}
4314 case 86:
4315 #line 612 "parse.y"
4316 { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
4317                   yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
4318                 ;
4319     break;}
4320 case 87:
4321 #line 619 "parse.y"
4322 { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
4323                     YYERROR1; ;
4324     break;}
4325 case 88:
4326 #line 622 "parse.y"
4327 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4328                     YYERROR1; ;
4329     break;}
4330 case 89:
4331 #line 625 "parse.y"
4332 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4333                     YYERROR1; ;
4334     break;}
4335 case 90:
4336 #line 628 "parse.y"
4337 { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
4338                     YYERROR1; ;
4339     break;}
4340 case 91:
4341 #line 631 "parse.y"
4342 { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
4343                     YYERROR1; ;
4344     break;}
4345 case 92:
4346 #line 637 "parse.y"
4347 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4348     break;}
4349 case 93:
4350 #line 639 "parse.y"
4351 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4352     break;}
4353 case 94:
4354 #line 641 "parse.y"
4355 { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
4356     break;}
4357 case 95:
4358 #line 643 "parse.y"
4359 { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
4360     break;}
4361 case 96:
4362 #line 650 "parse.y"
4363 { tree specs = strip_attrs (yyvsp[-1].ttype);
4364                   yyval.ttype = start_method (specs, yyvsp[0].ttype);
4365                  rest_of_mdef:
4366                   if (! yyval.ttype)
4367                     YYERROR1;
4368                   if (yychar == YYEMPTY)
4369                     yychar = YYLEX;
4370                   reinit_parse_for_method (yychar, yyval.ttype); ;
4371     break;}
4372 case 97:
4373 #line 659 "parse.y"
4374 { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ;
4375     break;}
4376 case 98:
4377 #line 661 "parse.y"
4378 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4379                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4380     break;}
4381 case 99:
4382 #line 664 "parse.y"
4383 { tree specs = strip_attrs (yyvsp[-1].ttype);
4384                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4385     break;}
4386 case 100:
4387 #line 667 "parse.y"
4388 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4389     break;}
4390 case 101:
4391 #line 669 "parse.y"
4392 { tree specs = strip_attrs (yyvsp[-1].ttype);
4393                   yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ;
4394     break;}
4395 case 102:
4396 #line 672 "parse.y"
4397 { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ;
4398     break;}
4399 case 103:
4400 #line 677 "parse.y"
4401 {
4402                   if (! current_function_parms_stored)
4403                     store_parm_decls ();
4404                   yyval.ttype = yyvsp[0].ttype;
4405                 ;
4406     break;}
4407 case 104:
4408 #line 686 "parse.y"
4409 { store_return_init (yyval.ttype, yyvsp[0].ttype); ;
4410     break;}
4411 case 105:
4412 #line 688 "parse.y"
4413 { store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
4414     break;}
4415 case 106:
4416 #line 690 "parse.y"
4417 { store_return_init (yyval.ttype, NULL_TREE); ;
4418     break;}
4419 case 107:
4420 #line 695 "parse.y"
4421 {
4422                   if (yyvsp[0].itype == 0)
4423                     error ("no base initializers given following ':'");
4424                   setup_vtbl_ptr ();
4425                   /* Always keep the BLOCK node associated with the outermost
4426                      pair of curley braces of a function.  These are needed
4427                      for correct operation of dwarfout.c.  */
4428                   keep_next_level ();
4429                 ;
4430     break;}
4431 case 108:
4432 #line 708 "parse.y"
4433 {
4434                   if (! current_function_parms_stored)
4435                     store_parm_decls ();
4436
4437                   if (DECL_CONSTRUCTOR_P (current_function_decl))
4438                     {
4439                       /* Make a contour for the initializer list.  */
4440                       pushlevel (0);
4441                       clear_last_expr ();
4442                       expand_start_bindings (0);
4443                     }
4444                   else if (current_class_type == NULL_TREE)
4445                     error ("base initializers not allowed for non-member functions");
4446                   else if (! DECL_CONSTRUCTOR_P (current_function_decl))
4447                     error ("only constructors take base initializers");
4448                 ;
4449     break;}
4450 case 109:
4451 #line 728 "parse.y"
4452 { yyval.itype = 0; ;
4453     break;}
4454 case 110:
4455 #line 730 "parse.y"
4456 { yyval.itype = 1; ;
4457     break;}
4458 case 113:
4459 #line 737 "parse.y"
4460 {
4461                   if (current_class_name)
4462                     pedwarn ("anachronistic old style base class initializer");
4463                   expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
4464                 ;
4465     break;}
4466 case 114:
4467 #line 743 "parse.y"
4468 {
4469                   if (current_class_name)
4470                     pedwarn ("anachronistic old style base class initializer");
4471                   expand_member_init (current_class_ref, NULL_TREE, void_type_node);
4472                 ;
4473     break;}
4474 case 115:
4475 #line 749 "parse.y"
4476 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4477     break;}
4478 case 116:
4479 #line 751 "parse.y"
4480 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4481     break;}
4482 case 117:
4483 #line 753 "parse.y"
4484 { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4485     break;}
4486 case 118:
4487 #line 755 "parse.y"
4488 { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
4489     break;}
4490 case 119:
4491 #line 757 "parse.y"
4492 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
4493                                       yyvsp[-1].ttype); ;
4494     break;}
4495 case 120:
4496 #line 760 "parse.y"
4497 { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
4498                                       void_type_node); ;
4499     break;}
4500 case 132:
4501 #line 786 "parse.y"
4502 { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
4503                   yyungetc (';', 1); ;
4504     break;}
4505 case 134:
4506 #line 790 "parse.y"
4507 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4508                   do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
4509     break;}
4510 case 136:
4511 #line 794 "parse.y"
4512 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4513     break;}
4514 case 138:
4515 #line 797 "parse.y"
4516 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
4517     break;}
4518 case 140:
4519 #line 800 "parse.y"
4520 { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
4521                   yyungetc (';', 1); ;
4522     break;}
4523 case 142:
4524 #line 805 "parse.y"
4525 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
4526                   do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
4527     break;}
4528 case 144:
4529 #line 809 "parse.y"
4530 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4531     break;}
4532 case 146:
4533 #line 812 "parse.y"
4534 { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
4535     break;}
4536 case 148:
4537 #line 817 "parse.y"
4538 { begin_explicit_instantiation(); ;
4539     break;}
4540 case 149:
4541 #line 820 "parse.y"
4542 { end_explicit_instantiation(); ;
4543     break;}
4544 case 150:
4545 #line 828 "parse.y"
4546 {
4547                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4548                   if (yyval.ttype != error_mark_node)
4549                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4550                 ;
4551     break;}
4552 case 151:
4553 #line 834 "parse.y"
4554 {
4555                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4556                   if (yyval.ttype != error_mark_node)
4557                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4558                 ;
4559     break;}
4560 case 153:
4561 #line 844 "parse.y"
4562 {
4563                   yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4564                   if (yyval.ttype != error_mark_node)
4565                     yyval.ttype = TYPE_STUB_DECL (yyval.ttype);
4566                 ;
4567     break;}
4568 case 155:
4569 #line 854 "parse.y"
4570 {
4571                   /* Handle `Class<Class<Type>>' without space in the `>>' */
4572                   pedwarn ("`>>' should be `> >' in template class name");
4573                   yyungetc ('>', 1);
4574                 ;
4575     break;}
4576 case 156:
4577 #line 863 "parse.y"
4578 { yyval.ttype = NULL_TREE; ;
4579     break;}
4580 case 158:
4581 #line 869 "parse.y"
4582 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
4583     break;}
4584 case 159:
4585 #line 871 "parse.y"
4586 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4587     break;}
4588 case 160:
4589 #line 876 "parse.y"
4590 { yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
4591     break;}
4592 case 162:
4593 #line 882 "parse.y"
4594 { yyval.code = NEGATE_EXPR; ;
4595     break;}
4596 case 163:
4597 #line 884 "parse.y"
4598 { yyval.code = CONVERT_EXPR; ;
4599     break;}
4600 case 164:
4601 #line 886 "parse.y"
4602 { yyval.code = PREINCREMENT_EXPR; ;
4603     break;}
4604 case 165:
4605 #line 888 "parse.y"
4606 { yyval.code = PREDECREMENT_EXPR; ;
4607     break;}
4608 case 166:
4609 #line 890 "parse.y"
4610 { yyval.code = TRUTH_NOT_EXPR; ;
4611     break;}
4612 case 167:
4613 #line 895 "parse.y"
4614 { yyval.ttype = build_x_compound_expr (yyval.ttype); ;
4615     break;}
4616 case 169:
4617 #line 901 "parse.y"
4618 { error ("ANSI C++ forbids an empty condition for `%s'",
4619                          cond_stmt_keyword);
4620                   yyval.ttype = integer_zero_node; ;
4621     break;}
4622 case 170:
4623 #line 905 "parse.y"
4624 { yyval.ttype = yyvsp[-1].ttype; ;
4625     break;}
4626 case 171:
4627 #line 910 "parse.y"
4628 { error ("ANSI C++ forbids an empty condition for `%s'",
4629                          cond_stmt_keyword);
4630                   yyval.ttype = integer_zero_node; ;
4631     break;}
4632 case 172:
4633 #line 914 "parse.y"
4634 { yyval.ttype = yyvsp[-1].ttype; ;
4635     break;}
4636 case 173:
4637 #line 919 "parse.y"
4638 { yyval.ttype = NULL_TREE; ;
4639     break;}
4640 case 174:
4641 #line 921 "parse.y"
4642 { yyval.ttype = condition_conversion (yyval.ttype); ;
4643     break;}
4644 case 175:
4645 #line 923 "parse.y"
4646 { yyval.ttype = NULL_TREE; ;
4647     break;}
4648 case 176:
4649 #line 928 "parse.y"
4650 { {
4651                   tree d;
4652                   for (d = getdecls (); d; d = TREE_CHAIN (d))
4653                     if (TREE_CODE (d) == TYPE_DECL) {
4654                       tree s = TREE_TYPE (d);
4655                       if (TREE_CODE (s) == RECORD_TYPE)
4656                         cp_error ("definition of class `%T' in condition", s);
4657                       else if (TREE_CODE (s) == ENUMERAL_TYPE)
4658                         cp_error ("definition of enum `%T' in condition", s);
4659                     }
4660                   }
4661                   current_declspecs = yyvsp[-4].ftype.t;
4662                   yyvsp[0].itype = suspend_momentary ();
4663                   yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
4664                                           yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
4665                 ;
4666     break;}
4667 case 177:
4668 #line 945 "parse.y"
4669
4670                   cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
4671                   resume_momentary (yyvsp[-2].itype);
4672                   yyval.ttype = yyvsp[-1].ttype; 
4673                   if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
4674                     cp_error ("definition of array `%#D' in condition", yyval.ttype); 
4675                 ;
4676     break;}
4677 case 183:
4678 #line 964 "parse.y"
4679 { yyval.ttype = begin_compound_stmt (1); ;
4680     break;}
4681 case 184:
4682 #line 966 "parse.y"
4683 { finish_compound_stmt (1, yyvsp[-1].ttype); ;
4684     break;}
4685 case 186:
4686 #line 973 "parse.y"
4687 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4688                                   build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4689     break;}
4690 case 187:
4691 #line 976 "parse.y"
4692 { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
4693                                   build_expr_list (NULL_TREE, error_mark_node)); ;
4694     break;}
4695 case 188:
4696 #line 979 "parse.y"
4697 { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
4698     break;}
4699 case 189:
4700 #line 981 "parse.y"
4701 { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
4702     break;}
4703 case 190:
4704 #line 986 "parse.y"
4705 { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
4706     break;}
4707 case 192:
4708 #line 992 "parse.y"
4709 { yyval.ttype = yyvsp[0].ttype; ;
4710     break;}
4711 case 193:
4712 #line 995 "parse.y"
4713 { yyval.ttype = yyvsp[0].ttype;
4714                   pedantic = yyvsp[-1].itype; ;
4715     break;}
4716 case 194:
4717 #line 998 "parse.y"
4718 { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
4719     break;}
4720 case 195:
4721 #line 1000 "parse.y"
4722 { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
4723     break;}
4724 case 196:
4725 #line 1002 "parse.y"
4726 { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4727     break;}
4728 case 197:
4729 #line 1004 "parse.y"
4730 { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
4731     break;}
4732 case 198:
4733 #line 1007 "parse.y"
4734 { if (pedantic)
4735                     pedwarn ("ANSI C++ forbids `&&'");
4736                   yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
4737     break;}
4738 case 199:
4739 #line 1011 "parse.y"
4740 { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
4741     break;}
4742 case 200:
4743 #line 1013 "parse.y"
4744 { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ;
4745     break;}
4746 case 201:
4747 #line 1015 "parse.y"
4748 { yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
4749     break;}
4750 case 202:
4751 #line 1017 "parse.y"
4752 { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
4753                   check_for_new_type ("alignof", yyvsp[-1].ftype); ;
4754     break;}
4755 case 203:
4756 #line 1023 "parse.y"
4757 { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
4758                   check_for_new_type ("new", yyvsp[0].ftype); ;
4759     break;}
4760 case 204:
4761 #line 1026 "parse.y"
4762 { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
4763                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4764     break;}
4765 case 205:
4766 #line 1029 "parse.y"
4767 { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
4768                   check_for_new_type ("new", yyvsp[0].ftype); ;
4769     break;}
4770 case 206:
4771 #line 1032 "parse.y"
4772 { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
4773                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4774     break;}
4775 case 207:
4776 #line 1045 "parse.y"
4777 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
4778                                   NULL_TREE, yyvsp[-4].itype); 
4779                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4780     break;}
4781 case 208:
4782 #line 1050 "parse.y"
4783 { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
4784                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4785     break;}
4786 case 209:
4787 #line 1054 "parse.y"
4788 { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
4789                   check_for_new_type ("new", yyvsp[-1].ftype); ;
4790     break;}
4791 case 210:
4792 #line 1058 "parse.y"
4793 { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
4794                   check_for_new_type ("new", yyvsp[-2].ftype); ;
4795     break;}
4796 case 211:
4797 #line 1062 "parse.y"
4798 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
4799     break;}
4800 case 212:
4801 #line 1064 "parse.y"
4802 { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
4803                   if (yychar == YYEMPTY)
4804                     yychar = YYLEX; ;
4805     break;}
4806 case 213:
4807 #line 1068 "parse.y"
4808 { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
4809                   if (yychar == YYEMPTY)
4810                     yychar = YYLEX; ;
4811     break;}
4812 case 214:
4813 #line 1072 "parse.y"
4814 { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
4815     break;}
4816 case 215:
4817 #line 1074 "parse.y"
4818 { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
4819     break;}
4820 case 216:
4821 #line 1084 "parse.y"
4822 { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
4823     break;}
4824 case 217:
4825 #line 1087 "parse.y"
4826 { yyval.itype = begin_new_placement (); ;
4827     break;}
4828 case 218:
4829 #line 1091 "parse.y"
4830 { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
4831     break;}
4832 case 219:
4833 #line 1093 "parse.y"
4834 { cp_pedwarn ("old style placement syntax, use () instead");
4835                   yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
4836     break;}
4837 case 220:
4838 #line 1099 "parse.y"
4839 { yyval.ttype = yyvsp[-1].ttype; ;
4840     break;}
4841 case 221:
4842 #line 1101 "parse.y"
4843 { yyval.ttype = NULL_TREE; ;
4844     break;}
4845 case 222:
4846 #line 1103 "parse.y"
4847 {
4848                   cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
4849                   yyval.ttype = error_mark_node;
4850                 ;
4851     break;}
4852 case 223:
4853 #line 1111 "parse.y"
4854 {
4855                   if (pedantic)
4856                     pedwarn ("ANSI C++ forbids initialization of new expression with `='");
4857                   if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
4858                       && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
4859                     yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
4860                   else
4861                     yyval.ttype = yyvsp[0].ttype;
4862                 ;
4863     break;}
4864 case 224:
4865 #line 1125 "parse.y"
4866 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
4867                   yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4868                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4869     break;}
4870 case 225:
4871 #line 1129 "parse.y"
4872 { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
4873                   yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
4874                   check_for_new_type ("cast", yyvsp[-1].ftype); ;
4875     break;}
4876 case 227:
4877 #line 1137 "parse.y"
4878 { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ;
4879     break;}
4880 case 228:
4881 #line 1139 "parse.y"
4882
4883                   tree init = build_nt (CONSTRUCTOR, NULL_TREE,
4884                                         nreverse (yyvsp[-2].ttype)); 
4885                   if (pedantic)
4886                     pedwarn ("ANSI C++ forbids constructor-expressions");
4887                   /* Indicate that this was a GNU C constructor expression.  */
4888                   TREE_HAS_CONSTRUCTOR (init) = 1;
4889
4890                   yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
4891                 ;
4892     break;}
4893 case 230:
4894 #line 1155 "parse.y"
4895 { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
4896     break;}
4897 case 231:
4898 #line 1157 "parse.y"
4899 { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
4900     break;}
4901 case 232:
4902 #line 1159 "parse.y"
4903 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4904     break;}
4905 case 233:
4906 #line 1161 "parse.y"
4907 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4908     break;}
4909 case 234:
4910 #line 1163 "parse.y"
4911 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4912     break;}
4913 case 235:
4914 #line 1165 "parse.y"
4915 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4916     break;}
4917 case 236:
4918 #line 1167 "parse.y"
4919 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4920     break;}
4921 case 237:
4922 #line 1169 "parse.y"
4923 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4924     break;}
4925 case 238:
4926 #line 1171 "parse.y"
4927 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4928     break;}
4929 case 239:
4930 #line 1173 "parse.y"
4931 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4932     break;}
4933 case 240:
4934 #line 1175 "parse.y"
4935 { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4936     break;}
4937 case 241:
4938 #line 1177 "parse.y"
4939 { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4940     break;}
4941 case 242:
4942 #line 1179 "parse.y"
4943 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4944     break;}
4945 case 243:
4946 #line 1181 "parse.y"
4947 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4948     break;}
4949 case 244:
4950 #line 1183 "parse.y"
4951 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4952     break;}
4953 case 245:
4954 #line 1185 "parse.y"
4955 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4956     break;}
4957 case 246:
4958 #line 1187 "parse.y"
4959 { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
4960     break;}
4961 case 247:
4962 #line 1189 "parse.y"
4963 { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4964     break;}
4965 case 248:
4966 #line 1191 "parse.y"
4967 { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
4968     break;}
4969 case 249:
4970 #line 1193 "parse.y"
4971 { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
4972     break;}
4973 case 250:
4974 #line 1195 "parse.y"
4975 { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
4976                   if (yyval.ttype != error_mark_node)
4977                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
4978     break;}
4979 case 251:
4980 #line 1199 "parse.y"
4981 { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
4982     break;}
4983 case 252:
4984 #line 1201 "parse.y"
4985 { yyval.ttype = build_throw (NULL_TREE); ;
4986     break;}
4987 case 253:
4988 #line 1203 "parse.y"
4989 { yyval.ttype = build_throw (yyvsp[0].ttype); ;
4990     break;}
4991 case 254:
4992 #line 1221 "parse.y"
4993 { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
4994     break;}
4995 case 260:
4996 #line 1230 "parse.y"
4997 { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ;
4998     break;}
4999 case 261:
5000 #line 1234 "parse.y"
5001 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5002     break;}
5003 case 262:
5004 #line 1236 "parse.y"
5005 { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5006     break;}
5007 case 263:
5008 #line 1241 "parse.y"
5009 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5010     break;}
5011 case 264:
5012 #line 1243 "parse.y"
5013 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5014     break;}
5015 case 265:
5016 #line 1246 "parse.y"
5017 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5018     break;}
5019 case 270:
5020 #line 1258 "parse.y"
5021 { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
5022     break;}
5023 case 271:
5024 #line 1260 "parse.y"
5025 { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
5026     break;}
5027 case 272:
5028 #line 1262 "parse.y"
5029 { yyval.ttype = yyvsp[-1].ttype; ;
5030     break;}
5031 case 273:
5032 #line 1267 "parse.y"
5033 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5034     break;}
5035 case 274:
5036 #line 1269 "parse.y"
5037 { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5038     break;}
5039 case 278:
5040 #line 1277 "parse.y"
5041 { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
5042     break;}
5043 case 279:
5044 #line 1282 "parse.y"
5045 {
5046                   if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
5047                     yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
5048                   else 
5049                     yyval.ttype = finish_id_expr (yyvsp[0].ttype);
5050                 ;
5051     break;}
5052 case 282:
5053 #line 1291 "parse.y"
5054 {
5055                   if (processing_template_decl)
5056                     push_obstacks (&permanent_obstack, &permanent_obstack);
5057                   yyval.ttype = combine_strings (yyval.ttype);
5058                   if (processing_template_decl)
5059                     pop_obstacks ();
5060                 ;
5061     break;}
5062 case 283:
5063 #line 1299 "parse.y"
5064 { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5065     break;}
5066 case 284:
5067 #line 1301 "parse.y"
5068 { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
5069                   yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
5070     break;}
5071 case 285:
5072 #line 1304 "parse.y"
5073 { yyval.ttype = error_mark_node; ;
5074     break;}
5075 case 286:
5076 #line 1306 "parse.y"
5077 { if (current_function_decl == 0)
5078                     {
5079                       error ("braced-group within expression allowed only inside a function");
5080                       YYERROR;
5081                     }
5082                   if (pedantic)
5083                     pedwarn ("ANSI C++ forbids braced-groups within expressions");  
5084                   yyval.ttype = begin_stmt_expr (); 
5085                 ;
5086     break;}
5087 case 287:
5088 #line 1316 "parse.y"
5089 { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5090     break;}
5091 case 288:
5092 #line 1318 "parse.y"
5093 { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5094     break;}
5095 case 289:
5096 #line 1320 "parse.y"
5097 { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5098     break;}
5099 case 290:
5100 #line 1322 "parse.y"
5101 { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
5102     break;}
5103 case 291:
5104 #line 1324 "parse.y"
5105 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
5106     break;}
5107 case 292:
5108 #line 1326 "parse.y"
5109 { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
5110     break;}
5111 case 293:
5112 #line 1329 "parse.y"
5113 { yyval.ttype = finish_this_expr (); ;
5114     break;}
5115 case 294:
5116 #line 1331 "parse.y"
5117 {
5118                   tree type = NULL_TREE;
5119                   tree id = yyval.ttype;
5120
5121                   /* This is a C cast in C++'s `functional' notation.  */
5122                   if (yyvsp[-1].ttype == error_mark_node)
5123                     {
5124                       yyval.ttype = error_mark_node;
5125                       break;
5126                     }
5127 #if 0
5128                   if (yyvsp[-1].ttype == NULL_TREE)
5129                     {
5130                       error ("cannot cast null list to type `%s'",
5131                              IDENTIFIER_POINTER (TYPE_NAME (id)));
5132                       yyval.ttype = error_mark_node;
5133                       break;
5134                     }
5135 #endif
5136 #if 0
5137                   /* type is not set! (mrs) */
5138                   if (type == error_mark_node)
5139                     yyval.ttype = error_mark_node;
5140                   else
5141 #endif
5142                     {
5143                       if (id == ridpointers[(int) RID_CONST])
5144                         type = build_type_variant (integer_type_node, 1, 0);
5145                       else if (id == ridpointers[(int) RID_VOLATILE])
5146                         type = build_type_variant (integer_type_node, 0, 1);
5147 #if 0
5148                       /* should not be able to get here (mrs) */
5149                       else if (id == ridpointers[(int) RID_FRIEND])
5150                         {
5151                           error ("cannot cast expression to `friend' type");
5152                           yyval.ttype = error_mark_node;
5153                           break;
5154                         }
5155 #endif
5156                       else my_friendly_abort (79);
5157                       yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
5158                     }
5159                 ;
5160     break;}
5161 case 296:
5162 #line 1376 "parse.y"
5163 { tree type = groktypename (yyvsp[-4].ftype.t);
5164                   check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
5165                   yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
5166     break;}
5167 case 297:
5168 #line 1380 "parse.y"
5169 { tree type = groktypename (yyvsp[-4].ftype.t);
5170                   check_for_new_type ("static_cast", yyvsp[-4].ftype);
5171                   yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
5172     break;}
5173 case 298:
5174 #line 1384 "parse.y"
5175 { tree type = groktypename (yyvsp[-4].ftype.t);
5176                   check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
5177                   yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
5178     break;}
5179 case 299:
5180 #line 1388 "parse.y"
5181 { tree type = groktypename (yyvsp[-4].ftype.t);
5182                   check_for_new_type ("const_cast", yyvsp[-4].ftype);
5183                   yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
5184     break;}
5185 case 300:
5186 #line 1392 "parse.y"
5187 { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
5188     break;}
5189 case 301:
5190 #line 1394 "parse.y"
5191 { tree type = groktypename (yyvsp[-1].ftype.t);
5192                   check_for_new_type ("typeid", yyvsp[-1].ftype);
5193                   yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
5194     break;}
5195 case 302:
5196 #line 1398 "parse.y"
5197 { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
5198     break;}
5199 case 303:
5200 #line 1400 "parse.y"
5201 { yyval.ttype = yyvsp[0].ttype; ;
5202     break;}
5203 case 304:
5204 #line 1402 "parse.y"
5205 {
5206                   got_scope = NULL_TREE;
5207                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
5208                     yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
5209                   else
5210                     yyval.ttype = yyvsp[0].ttype;
5211                 ;
5212     break;}
5213 case 305:
5214 #line 1410 "parse.y"
5215 { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
5216     break;}
5217 case 306:
5218 #line 1412 "parse.y"
5219 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5220     break;}
5221 case 307:
5222 #line 1414 "parse.y"
5223 { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
5224     break;}
5225 case 308:
5226 #line 1416 "parse.y"
5227
5228                   yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
5229                 ;
5230     break;}
5231 case 309:
5232 #line 1420 "parse.y"
5233 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5234     break;}
5235 case 310:
5236 #line 1422 "parse.y"
5237 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5238     break;}
5239 case 311:
5240 #line 1424 "parse.y"
5241 { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
5242     break;}
5243 case 312:
5244 #line 1426 "parse.y"
5245 { if (processing_template_decl)
5246                     yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
5247                   else
5248                     yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
5249     break;}
5250 case 313:
5251 #line 1431 "parse.y"
5252 { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5253     break;}
5254 case 314:
5255 #line 1433 "parse.y"
5256 { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5257     break;}
5258 case 315:
5259 #line 1435 "parse.y"
5260 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5261     break;}
5262 case 316:
5263 #line 1437 "parse.y"
5264 { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
5265     break;}
5266 case 317:
5267 #line 1440 "parse.y"
5268 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5269     break;}
5270 case 318:
5271 #line 1442 "parse.y"
5272 { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
5273     break;}
5274 case 319:
5275 #line 1444 "parse.y"
5276 {
5277                   yyval.ttype = error_mark_node;
5278                 ;
5279     break;}
5280 case 320:
5281 #line 1489 "parse.y"
5282 { yyval.itype = 0; ;
5283     break;}
5284 case 321:
5285 #line 1491 "parse.y"
5286 { got_scope = NULL_TREE; yyval.itype = 1; ;
5287     break;}
5288 case 322:
5289 #line 1496 "parse.y"
5290 { yyval.itype = 0; ;
5291     break;}
5292 case 323:
5293 #line 1498 "parse.y"
5294 { got_scope = NULL_TREE; yyval.itype = 1; ;
5295     break;}
5296 case 324:
5297 #line 1503 "parse.y"
5298 { yyval.ttype = boolean_true_node; ;
5299     break;}
5300 case 325:
5301 #line 1505 "parse.y"
5302 { yyval.ttype = boolean_false_node; ;
5303     break;}
5304 case 327:
5305 #line 1512 "parse.y"
5306 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5307     break;}
5308 case 328:
5309 #line 1517 "parse.y"
5310 {
5311                   if (! current_function_parms_stored)
5312                     store_parm_decls ();
5313                   setup_vtbl_ptr ();
5314                   /* Always keep the BLOCK node associated with the outermost
5315                      pair of curley braces of a function.  These are needed
5316                      for correct operation of dwarfout.c.  */
5317                   keep_next_level ();
5318                 ;
5319     break;}
5320 case 329:
5321 #line 1530 "parse.y"
5322 { got_object = TREE_TYPE (yyval.ttype); ;
5323     break;}
5324 case 330:
5325 #line 1532 "parse.y"
5326 {
5327                   yyval.ttype = build_x_arrow (yyval.ttype); 
5328                   got_object = TREE_TYPE (yyval.ttype);
5329                 ;
5330     break;}
5331 case 331:
5332 #line 1540 "parse.y"
5333 {
5334                   resume_momentary (yyvsp[-1].itype);
5335                   if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
5336                     note_got_semicolon (yyvsp[-2].ftype.t);
5337                 ;
5338     break;}
5339 case 332:
5340 #line 1546 "parse.y"
5341 {
5342                   resume_momentary (yyvsp[-1].itype);
5343                   note_list_got_semicolon (yyvsp[-2].ftype.t);
5344                 ;
5345     break;}
5346 case 333:
5347 #line 1551 "parse.y"
5348 { resume_momentary (yyvsp[-1].itype); ;
5349     break;}
5350 case 334:
5351 #line 1553 "parse.y"
5352 {
5353                   shadow_tag (yyvsp[-1].ftype.t);
5354                   note_list_got_semicolon (yyvsp[-1].ftype.t);
5355                 ;
5356     break;}
5357 case 335:
5358 #line 1558 "parse.y"
5359 { warning ("empty declaration"); ;
5360     break;}
5361 case 336:
5362 #line 1560 "parse.y"
5363 { pedantic = yyvsp[-1].itype; ;
5364     break;}
5365 case 339:
5366 #line 1574 "parse.y"
5367 { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
5368                                              NULL_TREE, NULL_TREE); ;
5369     break;}
5370 case 340:
5371 #line 1577 "parse.y"
5372 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
5373                                              NULL_TREE); ;
5374     break;}
5375 case 341:
5376 #line 1584 "parse.y"
5377 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5378                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5379     break;}
5380 case 342:
5381 #line 1587 "parse.y"
5382 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5383                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5384     break;}
5385 case 343:
5386 #line 1590 "parse.y"
5387 { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
5388                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5389     break;}
5390 case 344:
5391 #line 1593 "parse.y"
5392 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
5393                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
5394     break;}
5395 case 345:
5396 #line 1596 "parse.y"
5397 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
5398                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5399     break;}
5400 case 348:
5401 #line 1612 "parse.y"
5402 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
5403                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5404     break;}
5405 case 349:
5406 #line 1615 "parse.y"
5407 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5408                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5409     break;}
5410 case 350:
5411 #line 1618 "parse.y"
5412 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
5413                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5414     break;}
5415 case 351:
5416 #line 1621 "parse.y"
5417 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5418                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5419     break;}
5420 case 352:
5421 #line 1624 "parse.y"
5422 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
5423                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5424     break;}
5425 case 353:
5426 #line 1627 "parse.y"
5427 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
5428                                          chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
5429                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5430     break;}
5431 case 354:
5432 #line 1634 "parse.y"
5433 { if (extra_warnings)
5434                     warning ("`%s' is not at beginning of declaration",
5435                              IDENTIFIER_POINTER (yyval.ttype));
5436                   yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
5437     break;}
5438 case 355:
5439 #line 1639 "parse.y"
5440 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
5441     break;}
5442 case 356:
5443 #line 1641 "parse.y"
5444 { if (extra_warnings)
5445                     warning ("`%s' is not at beginning of declaration",
5446                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5447                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5448     break;}
5449 case 357:
5450 #line 1646 "parse.y"
5451 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5452     break;}
5453 case 358:
5454 #line 1648 "parse.y"
5455 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5456     break;}
5457 case 359:
5458 #line 1658 "parse.y"
5459 { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
5460     break;}
5461 case 360:
5462 #line 1660 "parse.y"
5463 { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ;
5464     break;}
5465 case 361:
5466 #line 1662 "parse.y"
5467 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5468                   TREE_STATIC (yyval.ttype) = 1; ;
5469     break;}
5470 case 362:
5471 #line 1665 "parse.y"
5472 { if (extra_warnings && TREE_STATIC (yyval.ttype))
5473                     warning ("`%s' is not at beginning of declaration",
5474                              IDENTIFIER_POINTER (yyvsp[0].ttype));
5475                   yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
5476                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
5477     break;}
5478 case 363:
5479 #line 1671 "parse.y"
5480 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
5481     break;}
5482 case 364:
5483 #line 1673 "parse.y"
5484 { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
5485     break;}
5486 case 365:
5487 #line 1684 "parse.y"
5488 { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); 
5489                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5490     break;}
5491 case 366:
5492 #line 1687 "parse.y"
5493 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
5494                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
5495     break;}
5496 case 367:
5497 #line 1690 "parse.y"
5498 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
5499                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
5500     break;}
5501 case 368:
5502 #line 1693 "parse.y"
5503 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
5504                   yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
5505     break;}
5506 case 369:
5507 #line 1699 "parse.y"
5508 { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
5509     break;}
5510 case 370:
5511 #line 1701 "parse.y"
5512 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
5513     break;}
5514 case 372:
5515 #line 1711 "parse.y"
5516 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5517     break;}
5518 case 373:
5519 #line 1713 "parse.y"
5520 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5521     break;}
5522 case 374:
5523 #line 1715 "parse.y"
5524 { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype);
5525                   yyval.ftype.new_type_flag = 0; ;
5526     break;}
5527 case 375:
5528 #line 1718 "parse.y"
5529 { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
5530                   yyval.ftype.new_type_flag = 0; ;
5531     break;}
5532 case 376:
5533 #line 1721 "parse.y"
5534 { tree type = TREE_TYPE (yyvsp[-1].ttype);
5535
5536                   yyval.ftype.new_type_flag = 0;
5537                   if (IS_AGGR_TYPE (type))
5538                     {
5539                       sorry ("sigof type specifier");
5540                       yyval.ftype.t = type;
5541                     }
5542                   else
5543                     {
5544                       error ("`sigof' applied to non-aggregate expression");
5545                       yyval.ftype.t = error_mark_node;
5546                     }
5547                 ;
5548     break;}
5549 case 377:
5550 #line 1736 "parse.y"
5551 { tree type = groktypename (yyvsp[-1].ftype.t);
5552
5553                   yyval.ftype.new_type_flag = 0;
5554                   if (IS_AGGR_TYPE (type))
5555                     {
5556                       sorry ("sigof type specifier");
5557                       yyval.ftype.t = type;
5558                     }
5559                   else
5560                     {
5561                       error("`sigof' applied to non-aggregate type");
5562                       yyval.ftype.t = error_mark_node;
5563                     }
5564                 ;
5565     break;}
5566 case 378:
5567 #line 1756 "parse.y"
5568 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5569     break;}
5570 case 379:
5571 #line 1758 "parse.y"
5572 { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
5573     break;}
5574 case 387:
5575 #line 1779 "parse.y"
5576 { yyval.ttype = NULL_TREE; ;
5577     break;}
5578 case 388:
5579 #line 1781 "parse.y"
5580 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
5581     break;}
5582 case 389:
5583 #line 1786 "parse.y"
5584 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
5585                                           yyvsp[-1].ttype, prefix_attributes); ;
5586     break;}
5587 case 390:
5588 #line 1790 "parse.y"
5589 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
5590     break;}
5591 case 391:
5592 #line 1792 "parse.y"
5593 { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
5594                                           yyvsp[0].ttype, prefix_attributes);
5595                   cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5596     break;}
5597 case 392:
5598 #line 1805 "parse.y"
5599 { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
5600                                            yyvsp[-1].ttype, 1, &yyval.ttype); ;
5601     break;}
5602 case 393:
5603 #line 1810 "parse.y"
5604 { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
5605                                   LOOKUP_ONLYCONVERTING);
5606                   yyval.itype = yyvsp[-2].itype; ;
5607     break;}
5608 case 394:
5609 #line 1814 "parse.y"
5610 { tree d;
5611                   yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
5612                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5613     break;}
5614 case 395:
5615 #line 1821 "parse.y"
5616 { yyval.itype = yyvsp[0].itype; ;
5617     break;}
5618 case 396:
5619 #line 1825 "parse.y"
5620 { yyval.itype = yyvsp[0].itype; ;
5621     break;}
5622 case 397:
5623 #line 1830 "parse.y"
5624 { /* Set things up as initdcl0_innards expects.  */
5625               yyval.ttype = yyvsp[-1].ttype; 
5626               yyvsp[-1].ttype = NULL_TREE; ;
5627     break;}
5628 case 398:
5629 #line 1834 "parse.y"
5630 {;
5631     break;}
5632 case 399:
5633 #line 1836 "parse.y"
5634 { tree d;
5635                   parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
5636                   cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
5637     break;}
5638 case 400:
5639 #line 1845 "parse.y"
5640 { yyval.ttype = NULL_TREE; ;
5641     break;}
5642 case 401:
5643 #line 1847 "parse.y"
5644 { yyval.ttype = yyvsp[0].ttype; ;
5645     break;}
5646 case 402:
5647 #line 1852 "parse.y"
5648 { yyval.ttype = yyvsp[0].ttype; ;
5649     break;}
5650 case 403:
5651 #line 1854 "parse.y"
5652 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
5653     break;}
5654 case 404:
5655 #line 1859 "parse.y"
5656 { yyval.ttype = yyvsp[-2].ttype; ;
5657     break;}
5658 case 405:
5659 #line 1864 "parse.y"
5660 { yyval.ttype = yyvsp[0].ttype; ;
5661     break;}
5662 case 406:
5663 #line 1866 "parse.y"
5664 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5665     break;}
5666 case 407:
5667 #line 1871 "parse.y"
5668 { yyval.ttype = NULL_TREE; ;
5669     break;}
5670 case 408:
5671 #line 1873 "parse.y"
5672 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
5673     break;}
5674 case 409:
5675 #line 1875 "parse.y"
5676 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
5677     break;}
5678 case 410:
5679 #line 1877 "parse.y"
5680 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
5681     break;}
5682 case 411:
5683 #line 1879 "parse.y"
5684 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
5685     break;}
5686 case 416:
5687 #line 1895 "parse.y"
5688 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
5689     break;}
5690 case 417:
5691 #line 1897 "parse.y"
5692 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
5693     break;}
5694 case 418:
5695 #line 1902 "parse.y"
5696 { yyval.ttype = NULL_TREE; ;
5697     break;}
5698 case 419:
5699 #line 1904 "parse.y"
5700 { yyval.ttype = yyvsp[0].ttype; ;
5701     break;}
5702 case 421:
5703 #line 1912 "parse.y"
5704 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
5705                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5706     break;}
5707 case 422:
5708 #line 1915 "parse.y"
5709 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
5710                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5711     break;}
5712 case 423:
5713 #line 1918 "parse.y"
5714 { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
5715                   TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
5716     break;}
5717 case 424:
5718 #line 1921 "parse.y"
5719 { yyval.ttype = NULL_TREE; ;
5720     break;}
5721 case 425:
5722 #line 1928 "parse.y"
5723 { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
5724     break;}
5725 case 426:
5726 #line 1930 "parse.y"
5727 { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
5728     break;}
5729 case 427:
5730 #line 1933 "parse.y"
5731 { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ;
5732     break;}
5733 case 428:
5734 #line 1935 "parse.y"
5735 { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
5736     break;}
5737 case 429:
5738 #line 1937 "parse.y"
5739 { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
5740     break;}
5741 case 430:
5742 #line 1942 "parse.y"
5743 { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
5744                                   NULL_TREE, 1);
5745                   reinit_parse_for_function (); ;
5746     break;}
5747 case 431:
5748 #line 1948 "parse.y"
5749 {
5750                   int nested = (hack_decl_function_context
5751                                 (current_function_decl) != NULL_TREE);
5752                   finish_function (lineno, (int)yyvsp[-1].itype, nested);
5753                   process_next_inline (yyvsp[-3].ttype);
5754                 ;
5755     break;}
5756 case 432:
5757 #line 1955 "parse.y"
5758 { process_next_inline (yyvsp[-2].ttype); ;
5759     break;}
5760 case 433:
5761 #line 1957 "parse.y"
5762 { process_next_inline (yyvsp[-2].ttype); ;
5763     break;}
5764 case 436:
5765 #line 1969 "parse.y"
5766 { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
5767     break;}
5768 case 437:
5769 #line 1971 "parse.y"
5770 { replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
5771     break;}
5772 case 439:
5773 #line 1976 "parse.y"
5774 { do_pending_defargs (); ;
5775     break;}
5776 case 440:
5777 #line 1978 "parse.y"
5778 { do_pending_defargs (); ;
5779     break;}
5780 case 441:
5781 #line 1983 "parse.y"
5782 { yyvsp[0].itype = suspend_momentary ();
5783                   yyval.ttype = start_enum (yyvsp[-1].ttype); ;
5784     break;}
5785 case 442:
5786 #line 1986 "parse.y"
5787 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5788                   yyval.ftype.new_type_flag = 1;
5789                   resume_momentary ((int) yyvsp[-4].itype);
5790                   check_for_missing_semicolon (yyvsp[-3].ttype); ;
5791     break;}
5792 case 443:
5793 #line 1991 "parse.y"
5794 { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE);
5795                   yyval.ftype.new_type_flag = 1;
5796                   check_for_missing_semicolon (yyval.ftype.t); ;
5797     break;}
5798 case 444:
5799 #line 1995 "parse.y"
5800 { yyvsp[0].itype = suspend_momentary ();
5801                   yyval.ttype = start_enum (make_anon_name ()); ;
5802     break;}
5803 case 445:
5804 #line 1998 "parse.y"
5805 { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype);
5806                   resume_momentary ((int) yyvsp[-5].itype);
5807                   check_for_missing_semicolon (yyvsp[-3].ttype);
5808                   yyval.ftype.new_type_flag = 1; ;
5809     break;}
5810 case 446:
5811 #line 2003 "parse.y"
5812 { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE);
5813                   yyval.ftype.new_type_flag = 1;
5814                   check_for_missing_semicolon (yyval.ftype.t); ;
5815     break;}
5816 case 447:
5817 #line 2007 "parse.y"
5818 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5819                   yyval.ftype.new_type_flag = 0; ;
5820     break;}
5821 case 448:
5822 #line 2010 "parse.y"
5823 { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); 
5824                   yyval.ftype.new_type_flag = 0; ;
5825     break;}
5826 case 449:
5827 #line 2013 "parse.y"
5828 { yyval.ftype.t = yyvsp[0].ttype;
5829                   yyval.ftype.new_type_flag = 0; ;
5830     break;}
5831 case 450:
5832 #line 2018 "parse.y"
5833
5834                   int semi;
5835
5836                   if (yychar == YYEMPTY)
5837                     yychar = YYLEX;
5838                   semi = yychar == ';';
5839
5840                   yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi); 
5841                 ;
5842     break;}
5843 case 451:
5844 #line 2028 "parse.y"
5845 { finish_default_args (); ;
5846     break;}
5847 case 452:
5848 #line 2030 "parse.y"
5849 { yyval.ftype.t = yyvsp[-3].ttype;
5850                   yyval.ftype.new_type_flag = 1; 
5851                   begin_inline_definitions (); ;
5852     break;}
5853 case 453:
5854 #line 2034 "parse.y"
5855 {
5856                   yyval.ftype.new_type_flag = 0;
5857                   if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE)
5858                     {
5859                       cp_error ("%T is not a class type", yyvsp[0].ttype);
5860                       yyval.ftype.t = error_mark_node;
5861                     } 
5862                   else
5863                     {
5864                       yyval.ftype.t = yyvsp[0].ttype;
5865                       /* struct B: public A; is not accepted by the WP grammar.  */
5866                       if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
5867                           && ! TYPE_BEING_DEFINED (yyval.ftype.t))
5868                         cp_error ("base clause without member specification for `%#T'",
5869                                   yyval.ftype.t);
5870                     }
5871                 ;
5872     break;}
5873 case 457:
5874 #line 2061 "parse.y"
5875 { if (pedantic && !in_system_header)
5876                     pedwarn ("comma at end of enumerator list"); ;
5877     break;}
5878 case 459:
5879 #line 2068 "parse.y"
5880 { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5881     break;}
5882 case 460:
5883 #line 2070 "parse.y"
5884 { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5885     break;}
5886 case 461:
5887 #line 2072 "parse.y"
5888 { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
5889     break;}
5890 case 462:
5891 #line 2074 "parse.y"
5892 { error ("no body nor ';' separates two class, struct or union declarations"); ;
5893     break;}
5894 case 463:
5895 #line 2079 "parse.y"
5896 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5897     break;}
5898 case 464:
5899 #line 2084 "parse.y"
5900 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5901     break;}
5902 case 465:
5903 #line 2089 "parse.y"
5904 {
5905                   current_aggr = yyvsp[-2].ttype;
5906                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5907                 ;
5908     break;}
5909 case 466:
5910 #line 2094 "parse.y"
5911 {
5912                   current_aggr = yyvsp[-3].ttype;
5913                   yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
5914                 ;
5915     break;}
5916 case 467:
5917 #line 2099 "parse.y"
5918 {
5919                   current_aggr = yyvsp[-2].ttype;
5920                   yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
5921                 ;
5922     break;}
5923 case 468:
5924 #line 2104 "parse.y"
5925 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5926     break;}
5927 case 469:
5928 #line 2106 "parse.y"
5929 { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
5930     break;}
5931 case 470:
5932 #line 2111 "parse.y"
5933 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ;
5934     break;}
5935 case 471:
5936 #line 2116 "parse.y"
5937 { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ;
5938     break;}
5939 case 472:
5940 #line 2119 "parse.y"
5941
5942                   yyval.ttype = yyvsp[-1].ttype;
5943                   if (yyvsp[0].ttype)
5944                     xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
5945                 ;
5946     break;}
5947 case 473:
5948 #line 2125 "parse.y"
5949
5950                   yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
5951                   if (TREE_INT_CST_LOW (current_aggr) == union_type 
5952                       && TREE_CODE (yyval.ttype) != UNION_TYPE)
5953                     cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype);
5954                   else if (TREE_CODE (yyval.ttype) == UNION_TYPE
5955                            && TREE_INT_CST_LOW (current_aggr) != union_type)
5956                     cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype);
5957                   if (yyvsp[0].ttype)
5958                     {
5959                       if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype))
5960                         {
5961                           if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype)
5962                               && TYPE_SIZE (yyval.ttype) == NULL_TREE)
5963                             {
5964                               SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype);
5965                               if (processing_template_decl)
5966                                 push_template_decl (TYPE_MAIN_DECL (yyval.ttype));
5967                             }
5968                           else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype))
5969                             cp_error ("specialization after instantiation of `%T'", yyval.ttype);
5970                         }
5971                       xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); 
5972                     }
5973                 ;
5974     break;}
5975 case 474:
5976 #line 2154 "parse.y"
5977 { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0);
5978                   yyungetc ('{', 1); ;
5979     break;}
5980 case 477:
5981 #line 2165 "parse.y"
5982 { yyval.ttype = NULL_TREE; ;
5983     break;}
5984 case 478:
5985 #line 2167 "parse.y"
5986 { yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
5987     break;}
5988 case 479:
5989 #line 2169 "parse.y"
5990 { yyval.ttype = yyvsp[0].ttype; ;
5991     break;}
5992 case 481:
5993 #line 2175 "parse.y"
5994 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
5995     break;}
5996 case 482:
5997 #line 2180 "parse.y"
5998 {
5999                   tree type = TREE_TYPE (yyvsp[0].ttype);
6000                   if (! is_aggr_type (type, 1))
6001                     yyval.ttype = NULL_TREE;
6002                   else if (current_aggr == signature_type_node
6003                            && (! type) && (! IS_SIGNATURE (type)))
6004                     {
6005                       error ("class name not allowed as base signature");
6006                       yyval.ttype = NULL_TREE;
6007                     }
6008                   else if (current_aggr == signature_type_node)
6009                     {
6010                       sorry ("signature inheritance, base type `%s' ignored",
6011                              IDENTIFIER_POINTER (yyval.ttype));
6012                       yyval.ttype = build_tree_list (access_public_node, type);
6013                     }
6014                   else if (type && IS_SIGNATURE (type))
6015                     {
6016                       error ("signature name not allowed as base class");
6017                       yyval.ttype = NULL_TREE;
6018                     }
6019                   else
6020                     yyval.ttype = build_tree_list (access_default_node, type);
6021                 ;
6022     break;}
6023 case 483:
6024 #line 2205 "parse.y"
6025 {
6026                   tree type = TREE_TYPE (yyvsp[0].ttype);
6027                   if (current_aggr == signature_type_node)
6028                     error ("access and source specifiers not allowed in signature");
6029                   if (! IS_AGGR_TYPE (type))
6030                     yyval.ttype = NULL_TREE;
6031                   else if (current_aggr == signature_type_node
6032                            && (! type) && (! IS_SIGNATURE (type)))
6033                     {
6034                       error ("class name not allowed as base signature");
6035                       yyval.ttype = NULL_TREE;
6036                     }
6037                   else if (current_aggr == signature_type_node)
6038                     {
6039                       sorry ("signature inheritance, base type `%s' ignored",
6040                              IDENTIFIER_POINTER (yyval.ttype));
6041                       yyval.ttype = build_tree_list (access_public_node, type);
6042                     }
6043                   else if (type && IS_SIGNATURE (type))
6044                     {
6045                       error ("signature name not allowed as base class");
6046                       yyval.ttype = NULL_TREE;
6047                     }
6048                   else
6049                     yyval.ttype = build_tree_list (yyval.ttype, type);
6050                 ;
6051     break;}
6052 case 484:
6053 #line 2235 "parse.y"
6054 { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
6055     break;}
6056 case 486:
6057 #line 2238 "parse.y"
6058 {
6059                   if (current_aggr == signature_type_node)
6060                     {
6061                       if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
6062                         {
6063                           sorry ("`sigof' as base signature specifier");
6064                           yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
6065                         }
6066                       else
6067                         {
6068                           error ("`sigof' applied to non-aggregate expression");
6069                           yyval.ttype = error_mark_node;
6070                         }
6071                     }
6072                   else
6073                     {
6074                       error ("`sigof' in struct or class declaration");
6075                       yyval.ttype = error_mark_node;
6076                     }
6077                 ;
6078     break;}
6079 case 487:
6080 #line 2259 "parse.y"
6081 {
6082                   if (current_aggr == signature_type_node)
6083                     {
6084                       if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
6085                         {
6086                           sorry ("`sigof' as base signature specifier");
6087                           yyval.ttype = groktypename (yyvsp[-1].ftype.t);
6088                         }
6089                       else
6090                         {
6091                           error ("`sigof' applied to non-aggregate expression");
6092                           yyval.ttype = error_mark_node;
6093                         }
6094                     }
6095                   else
6096                     {
6097                       error ("`sigof' in struct or class declaration");
6098                       yyval.ttype = error_mark_node;
6099                     }
6100                 ;
6101     break;}
6102 case 489:
6103 #line 2284 "parse.y"
6104 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6105                     cp_error ("`%D' access", yyvsp[-1].ttype);
6106                   yyval.ttype = access_default_virtual_node; ;
6107     break;}
6108 case 490:
6109 #line 2288 "parse.y"
6110 {
6111                   if (yyvsp[-2].ttype != access_default_virtual_node)
6112                     error ("multiple access specifiers");
6113                   else if (yyvsp[-1].ttype == access_public_node)
6114                     yyval.ttype = access_public_virtual_node;
6115                   else if (yyvsp[-1].ttype == access_protected_node)
6116                     yyval.ttype = access_protected_virtual_node;
6117                   else /* $2 == access_private_node */
6118                     yyval.ttype = access_private_virtual_node;
6119                 ;
6120     break;}
6121 case 491:
6122 #line 2299 "parse.y"
6123 { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
6124                     cp_error ("`%D' access", yyvsp[-1].ttype);
6125                   else if (yyval.ttype == access_public_node)
6126                     yyval.ttype = access_public_virtual_node;
6127                   else if (yyval.ttype == access_protected_node)
6128                     yyval.ttype = access_protected_virtual_node;
6129                   else if (yyval.ttype == access_private_node)
6130                     yyval.ttype = access_private_virtual_node;
6131                   else
6132                     error ("multiple `virtual' specifiers");
6133                 ;
6134     break;}
6135 case 492:
6136 #line 2314 "parse.y"
6137 { yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
6138     break;}
6139 case 493:
6140 #line 2319 "parse.y"
6141 {
6142                     yyval.ttype = build_self_reference ();
6143                 ;
6144     break;}
6145 case 494:
6146 #line 2326 "parse.y"
6147 { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ;
6148     break;}
6149 case 495:
6150 #line 2328 "parse.y"
6151 {
6152                   if (current_aggr == signature_type_node)
6153                     yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype);
6154                   else
6155                     yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype);
6156                   if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype);
6157                 ;
6158     break;}
6159 case 496:
6160 #line 2336 "parse.y"
6161 {
6162                   tree visspec = yyvsp[-2].ttype;
6163
6164                   if (current_aggr == signature_type_node)
6165                     {
6166                       error ("access specifier not allowed in signature");
6167                       visspec = access_public_node;
6168                     }
6169                   yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype));
6170                 ;
6171     break;}
6172 case 497:
6173 #line 2347 "parse.y"
6174 {
6175                   if (current_aggr == signature_type_node)
6176                     error ("access specifier not allowed in signature");
6177                 ;
6178     break;}
6179 case 498:
6180 #line 2357 "parse.y"
6181 { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; 
6182                 ;
6183     break;}
6184 case 499:
6185 #line 2360 "parse.y"
6186 { /* In pushdecl, we created a reverse list of names
6187                      in this binding level.  Make sure that the chain
6188                      of what we're trying to add isn't the item itself
6189                      (which can happen with what pushdecl's doing).  */
6190                   if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node)
6191                     {
6192                       if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype)
6193                         yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6194                       else
6195                         yyval.ttype = yyvsp[0].ttype;
6196                     }
6197                 ;
6198     break;}
6199 case 500:
6200 #line 2376 "parse.y"
6201 { ;
6202     break;}
6203 case 501:
6204 #line 2378 "parse.y"
6205 { error ("missing ';' before right brace");
6206                   yyungetc ('}', 0); ;
6207     break;}
6208 case 502:
6209 #line 2383 "parse.y"
6210 { yyval.ttype = finish_method (yyval.ttype); ;
6211     break;}
6212 case 503:
6213 #line 2385 "parse.y"
6214 { yyval.ttype = finish_method (yyval.ttype); ;
6215     break;}
6216 case 504:
6217 #line 2387 "parse.y"
6218 { yyval.ttype = finish_method (yyval.ttype); ;
6219     break;}
6220 case 505:
6221 #line 2389 "parse.y"
6222 { yyval.ttype = finish_method (yyval.ttype); ;
6223     break;}
6224 case 506:
6225 #line 2391 "parse.y"
6226 { yyval.ttype = NULL_TREE; ;
6227     break;}
6228 case 507:
6229 #line 2393 "parse.y"
6230 { yyval.ttype = yyvsp[0].ttype;
6231                   pedantic = yyvsp[-1].itype; ;
6232     break;}
6233 case 508:
6234 #line 2396 "parse.y"
6235 { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6236     break;}
6237 case 509:
6238 #line 2398 "parse.y"
6239 {
6240                   note_list_got_semicolon (yyvsp[-1].ftype.t);
6241                   grok_x_components (yyvsp[-1].ftype.t, NULL_TREE); 
6242                   if (TYPE_CONTEXT (TREE_VALUE (yyvsp[-1].ftype.t)) != current_class_type)
6243                     /* The component was in fact a friend
6244                        declaration.  */
6245                     yyvsp[-1].ftype.t = NULL_TREE;
6246                   yyval.ttype = finish_member_template_decl (yyvsp[-2].ttype, yyvsp[-1].ftype.t);
6247                 ;
6248     break;}
6249 case 510:
6250 #line 2414 "parse.y"
6251 { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6252     break;}
6253 case 511:
6254 #line 2416 "parse.y"
6255 { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6256     break;}
6257 case 512:
6258 #line 2418 "parse.y"
6259 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6260                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6261     break;}
6262 case 513:
6263 #line 2421 "parse.y"
6264 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6265                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6266     break;}
6267 case 514:
6268 #line 2424 "parse.y"
6269 { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
6270     break;}
6271 case 515:
6272 #line 2426 "parse.y"
6273 { yyval.ttype = NULL_TREE; ;
6274     break;}
6275 case 516:
6276 #line 2437 "parse.y"
6277 { tree specs, attrs;
6278                   split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
6279                   yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
6280                                   build_tree_list (yyvsp[-1].ttype, attrs)); ;
6281     break;}
6282 case 517:
6283 #line 2442 "parse.y"
6284 { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
6285                                   build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
6286     break;}
6287 case 518:
6288 #line 2445 "parse.y"
6289 { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
6290     break;}
6291 case 519:
6292 #line 2451 "parse.y"
6293 { yyval.ttype = NULL_TREE; ;
6294     break;}
6295 case 521:
6296 #line 2454 "parse.y"
6297 {
6298                   /* In this context, void_type_node encodes
6299                      friends.  They have been recorded elsewhere.  */
6300                   if (yyval.ttype == void_type_node)
6301                     yyval.ttype = yyvsp[0].ttype;
6302                   else
6303                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6304                 ;
6305     break;}
6306 case 522:
6307 #line 2466 "parse.y"
6308 { yyval.ttype = NULL_TREE; ;
6309     break;}
6310 case 524:
6311 #line 2469 "parse.y"
6312 {
6313                   /* In this context, void_type_node encodes
6314                      friends.  They have been recorded elsewhere.  */
6315                   if (yyval.ttype == void_type_node)
6316                     yyval.ttype = yyvsp[0].ttype;
6317                   else
6318                     yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype);
6319                 ;
6320     break;}
6321 case 529:
6322 #line 2491 "parse.y"
6323 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6324                                      &prefix_attributes);
6325                   yyvsp[-4].ttype = current_declspecs;
6326                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6327                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6328     break;}
6329 case 530:
6330 #line 2497 "parse.y"
6331 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6332                                      &prefix_attributes);
6333                   yyvsp[-4].ttype = current_declspecs;
6334                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6335                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6336     break;}
6337 case 531:
6338 #line 2506 "parse.y"
6339 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6340                                      &prefix_attributes);
6341                   yyvsp[-4].ttype = current_declspecs;
6342                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6343                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6344     break;}
6345 case 532:
6346 #line 2512 "parse.y"
6347 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6348                                      &prefix_attributes);
6349                   yyvsp[-4].ttype = current_declspecs;
6350                   yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6351                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6352     break;}
6353 case 533:
6354 #line 2518 "parse.y"
6355 { split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
6356                                      &prefix_attributes);
6357                   yyvsp[-4].ttype = current_declspecs;
6358                   yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6359                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6360     break;}
6361 case 534:
6362 #line 2524 "parse.y"
6363 { split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
6364                                      &prefix_attributes);
6365                   yyvsp[-3].ttype = current_declspecs;
6366                   yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6367                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6368     break;}
6369 case 535:
6370 #line 2533 "parse.y"
6371 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6372                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6373     break;}
6374 case 536:
6375 #line 2536 "parse.y"
6376 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6377                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6378     break;}
6379 case 537:
6380 #line 2542 "parse.y"
6381 { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
6382                                   build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
6383     break;}
6384 case 538:
6385 #line 2545 "parse.y"
6386 { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
6387                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6388     break;}
6389 case 539:
6390 #line 2548 "parse.y"
6391 { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
6392                   cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
6393     break;}
6394 case 541:
6395 #line 2559 "parse.y"
6396 { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
6397     break;}
6398 case 542:
6399 #line 2564 "parse.y"
6400 { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ;
6401     break;}
6402 case 543:
6403 #line 2566 "parse.y"
6404 { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ;
6405     break;}
6406 case 544:
6407 #line 2572 "parse.y"
6408 { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
6409                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6410     break;}
6411 case 545:
6412 #line 2575 "parse.y"
6413 { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
6414                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
6415     break;}
6416 case 546:
6417 #line 2582 "parse.y"
6418 {
6419                   if (pedantic)
6420                     pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
6421                   yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
6422                   yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
6423                   yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
6424                 ;
6425     break;}
6426 case 547:
6427 #line 2593 "parse.y"
6428 { yyval.ttype = NULL_TREE; ;
6429     break;}
6430 case 548:
6431 #line 2595 "parse.y"
6432 { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
6433     break;}
6434 case 549:
6435 #line 2600 "parse.y"
6436 { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); 
6437                   yyval.ftype.new_type_flag = 0; ;
6438     break;}
6439 case 550:
6440 #line 2603 "parse.y"
6441 { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
6442                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
6443     break;}
6444 case 551:
6445 #line 2612 "parse.y"
6446 { yyval.itype = suspend_momentary (); ;
6447     break;}
6448 case 552:
6449 #line 2617 "parse.y"
6450 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
6451     break;}
6452 case 553:
6453 #line 2623 "parse.y"
6454 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6455     break;}
6456 case 554:
6457 #line 2625 "parse.y"
6458 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
6459     break;}
6460 case 555:
6461 #line 2627 "parse.y"
6462 { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
6463     break;}
6464 case 556:
6465 #line 2629 "parse.y"
6466 { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
6467     break;}
6468 case 557:
6469 #line 2636 "parse.y"
6470 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6471     break;}
6472 case 558:
6473 #line 2638 "parse.y"
6474 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6475     break;}
6476 case 559:
6477 #line 2640 "parse.y"
6478 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6479     break;}
6480 case 560:
6481 #line 2642 "parse.y"
6482 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6483     break;}
6484 case 561:
6485 #line 2644 "parse.y"
6486 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6487                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6488                 ;
6489     break;}
6490 case 563:
6491 #line 2652 "parse.y"
6492 {
6493                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6494                     {
6495                       yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
6496                       if (current_class_type
6497                           && TYPE_BEING_DEFINED (current_class_type)
6498                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype))
6499                         {
6500                           /* Remember that this name has been used in the class
6501                              definition, as per [class.scope0] */
6502                           pushdecl_class_level (yyval.ttype);
6503                         }
6504                     }
6505                   else
6506                     yyval.ttype = yyvsp[0].ttype;
6507                 ;
6508     break;}
6509 case 564:
6510 #line 2669 "parse.y"
6511 {
6512                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6513                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6514                   else
6515                     yyval.ttype = yyvsp[0].ttype;
6516                   got_scope = NULL_TREE;
6517                 ;
6518     break;}
6519 case 567:
6520 #line 2682 "parse.y"
6521 { yyval.ttype = yyvsp[0].ttype; ;
6522     break;}
6523 case 568:
6524 #line 2687 "parse.y"
6525 { yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
6526     break;}
6527 case 569:
6528 #line 2692 "parse.y"
6529 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6530     break;}
6531 case 570:
6532 #line 2694 "parse.y"
6533 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6534     break;}
6535 case 571:
6536 #line 2696 "parse.y"
6537 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6538     break;}
6539 case 572:
6540 #line 2698 "parse.y"
6541 { yyval.ttype = yyvsp[-1].ttype; ;
6542     break;}
6543 case 573:
6544 #line 2700 "parse.y"
6545 { push_nested_class (yyvsp[-1].ttype, 3);
6546                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
6547                   TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
6548     break;}
6549 case 575:
6550 #line 2711 "parse.y"
6551 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6552     break;}
6553 case 576:
6554 #line 2713 "parse.y"
6555 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6556     break;}
6557 case 577:
6558 #line 2715 "parse.y"
6559 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6560     break;}
6561 case 578:
6562 #line 2717 "parse.y"
6563 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6564     break;}
6565 case 579:
6566 #line 2719 "parse.y"
6567 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6568                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6569                 ;
6570     break;}
6571 case 581:
6572 #line 2727 "parse.y"
6573 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6574     break;}
6575 case 582:
6576 #line 2729 "parse.y"
6577 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6578     break;}
6579 case 583:
6580 #line 2731 "parse.y"
6581 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6582     break;}
6583 case 584:
6584 #line 2733 "parse.y"
6585 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6586     break;}
6587 case 585:
6588 #line 2735 "parse.y"
6589 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6590                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6591                 ;
6592     break;}
6593 case 587:
6594 #line 2743 "parse.y"
6595 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6596     break;}
6597 case 588:
6598 #line 2745 "parse.y"
6599 { yyval.ttype = yyvsp[-1].ttype; ;
6600     break;}
6601 case 589:
6602 #line 2747 "parse.y"
6603 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6604     break;}
6605 case 590:
6606 #line 2749 "parse.y"
6607 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6608     break;}
6609 case 591:
6610 #line 2751 "parse.y"
6611 { if (OP0 (yyval.ttype) != current_class_type)
6612                     {
6613                       push_nested_class (OP0 (yyval.ttype), 3);
6614                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6615                     }
6616                 ;
6617     break;}
6618 case 592:
6619 #line 2758 "parse.y"
6620 { got_scope = NULL_TREE;
6621                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
6622                   if (yyvsp[-1].ttype != current_class_type)
6623                     {
6624                       push_nested_class (yyvsp[-1].ttype, 3);
6625                       TREE_COMPLEXITY (yyval.ttype) = current_class_depth;
6626                     }
6627                 ;
6628     break;}
6629 case 593:
6630 #line 2770 "parse.y"
6631 { got_scope = NULL_TREE;
6632                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6633     break;}
6634 case 594:
6635 #line 2773 "parse.y"
6636 { got_scope = NULL_TREE;
6637                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6638     break;}
6639 case 595:
6640 #line 2779 "parse.y"
6641 { got_scope = NULL_TREE;
6642                   yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
6643     break;}
6644 case 596:
6645 #line 2782 "parse.y"
6646 { got_scope = NULL_TREE;
6647                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6648     break;}
6649 case 598:
6650 #line 2789 "parse.y"
6651 { yyval.ttype = yyvsp[0].ttype; ;
6652     break;}
6653 case 599:
6654 #line 2794 "parse.y"
6655 { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6656     break;}
6657 case 600:
6658 #line 2796 "parse.y"
6659 { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
6660     break;}
6661 case 601:
6662 #line 2798 "parse.y"
6663 { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6664     break;}
6665 case 606:
6666 #line 2810 "parse.y"
6667 { yyval.ttype = yyvsp[0].ttype; ;
6668     break;}
6669 case 607:
6670 #line 2812 "parse.y"
6671 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6672     break;}
6673 case 608:
6674 #line 2819 "parse.y"
6675 {
6676                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6677                     {
6678                       yyval.ttype = lastiddecl;
6679                       /* Remember that this name has been used in the class
6680                          definition, as per [class.scope0] */
6681                       if (current_class_type
6682                           && TYPE_BEING_DEFINED (current_class_type)
6683                           && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype))
6684                         pushdecl_class_level (yyval.ttype);
6685                     }
6686                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6687                 ;
6688     break;}
6689 case 609:
6690 #line 2833 "parse.y"
6691 {
6692                   if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
6693                     yyval.ttype = lastiddecl;
6694                   got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
6695                 ;
6696     break;}
6697 case 610:
6698 #line 2839 "parse.y"
6699 {
6700                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6701                     yyval.ttype = lastiddecl;
6702                   got_scope = yyval.ttype;
6703                 ;
6704     break;}
6705 case 611:
6706 #line 2845 "parse.y"
6707 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
6708     break;}
6709 case 613:
6710 #line 2861 "parse.y"
6711 { yyval.ttype = yyvsp[0].ttype; ;
6712     break;}
6713 case 614:
6714 #line 2866 "parse.y"
6715 {
6716                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6717                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6718                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6719                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6720                   else
6721                     {
6722                       yyval.ttype = yyvsp[0].ttype;
6723                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6724                         yyval.ttype = TREE_TYPE (yyval.ttype);
6725                     }
6726                 ;
6727     break;}
6728 case 615:
6729 #line 2879 "parse.y"
6730 { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
6731     break;}
6732 case 616:
6733 #line 2881 "parse.y"
6734 { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6735     break;}
6736 case 617:
6737 #line 2883 "parse.y"
6738 { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
6739     break;}
6740 case 618:
6741 #line 2888 "parse.y"
6742 {
6743                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6744                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6745                 ;
6746     break;}
6747 case 619:
6748 #line 2893 "parse.y"
6749 {
6750                   if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
6751                     yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
6752                   else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6753                     cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
6754                   else
6755                     {
6756                       yyval.ttype = yyvsp[0].ttype;
6757                       if (TREE_CODE (yyval.ttype) == TYPE_DECL)
6758                         yyval.ttype = TREE_TYPE (yyval.ttype);
6759                     }
6760                 ;
6761     break;}
6762 case 620:
6763 #line 2906 "parse.y"
6764 { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
6765     break;}
6766 case 621:
6767 #line 2908 "parse.y"
6768 { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6769     break;}
6770 case 622:
6771 #line 2913 "parse.y"
6772 {
6773                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6774                     yyvsp[-1].ttype = lastiddecl;
6775
6776                   /* Retrieve the type for the identifier, which might involve
6777                      some computation. */
6778                   got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));
6779
6780                   if (yyval.ttype == error_mark_node)
6781                     cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
6782                 ;
6783     break;}
6784 case 623:
6785 #line 2925 "parse.y"
6786 {
6787                   if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
6788                     yyval.ttype = lastiddecl;
6789                   got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
6790                 ;
6791     break;}
6792 case 624:
6793 #line 2931 "parse.y"
6794 { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
6795     break;}
6796 case 627:
6797 #line 2935 "parse.y"
6798 {
6799                   if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
6800                     yyval.ttype = lastiddecl;
6801                   got_scope = yyval.ttype;
6802                 ;
6803     break;}
6804 case 628:
6805 #line 2944 "parse.y"
6806 { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
6807     break;}
6808 case 629:
6809 #line 2949 "parse.y"
6810 {
6811                   if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
6812                     yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
6813                   else
6814                     yyval.ttype = yyvsp[0].ttype;
6815                   got_scope = NULL_TREE;
6816                 ;
6817     break;}
6818 case 631:
6819 #line 2958 "parse.y"
6820 { yyval.ttype = yyvsp[0].ttype; ;
6821     break;}
6822 case 632:
6823 #line 2963 "parse.y"
6824 { got_scope = NULL_TREE; ;
6825     break;}
6826 case 633:
6827 #line 2965 "parse.y"
6828 { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
6829     break;}
6830 case 634:
6831 #line 2972 "parse.y"
6832 { got_scope = void_type_node; ;
6833     break;}
6834 case 635:
6835 #line 2978 "parse.y"
6836 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6837     break;}
6838 case 636:
6839 #line 2980 "parse.y"
6840 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
6841     break;}
6842 case 637:
6843 #line 2982 "parse.y"
6844 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
6845     break;}
6846 case 638:
6847 #line 2984 "parse.y"
6848 { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
6849     break;}
6850 case 639:
6851 #line 2986 "parse.y"
6852 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6853                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6854                 ;
6855     break;}
6856 case 640:
6857 #line 2990 "parse.y"
6858 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6859                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6860                 ;
6861     break;}
6862 case 642:
6863 #line 2999 "parse.y"
6864 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
6865     break;}
6866 case 643:
6867 #line 3001 "parse.y"
6868 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6869     break;}
6870 case 644:
6871 #line 3007 "parse.y"
6872 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6873     break;}
6874 case 645:
6875 #line 3009 "parse.y"
6876 { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
6877     break;}
6878 case 646:
6879 #line 3011 "parse.y"
6880 { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
6881     break;}
6882 case 647:
6883 #line 3013 "parse.y"
6884 { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
6885     break;}
6886 case 648:
6887 #line 3015 "parse.y"
6888 { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
6889     break;}
6890 case 649:
6891 #line 3017 "parse.y"
6892 { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
6893     break;}
6894 case 650:
6895 #line 3019 "parse.y"
6896 { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
6897     break;}
6898 case 651:
6899 #line 3021 "parse.y"
6900 { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
6901     break;}
6902 case 652:
6903 #line 3023 "parse.y"
6904 { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
6905                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
6906                 ;
6907     break;}
6908 case 653:
6909 #line 3027 "parse.y"
6910 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
6911                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
6912                 ;
6913     break;}
6914 case 655:
6915 #line 3036 "parse.y"
6916 { yyval.ttype = yyvsp[-1].ttype; ;
6917     break;}
6918 case 657:
6919 #line 3040 "parse.y"
6920 { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6921     break;}
6922 case 658:
6923 #line 3042 "parse.y"
6924 { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
6925     break;}
6926 case 659:
6927 #line 3044 "parse.y"
6928 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
6929     break;}
6930 case 660:
6931 #line 3046 "parse.y"
6932 { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
6933     break;}
6934 case 661:
6935 #line 3048 "parse.y"
6936 { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6937     break;}
6938 case 662:
6939 #line 3050 "parse.y"
6940 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6941     break;}
6942 case 663:
6943 #line 3052 "parse.y"
6944 { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
6945     break;}
6946 case 664:
6947 #line 3054 "parse.y"
6948 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
6949     break;}
6950 case 665:
6951 #line 3056 "parse.y"
6952 { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
6953     break;}
6954 case 672:
6955 #line 3079 "parse.y"
6956 { if (pedantic)
6957                     pedwarn ("ANSI C++ forbids label declarations"); ;
6958     break;}
6959 case 675:
6960 #line 3090 "parse.y"
6961 { tree link;
6962                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
6963                     {
6964                       tree label = shadow_label (TREE_VALUE (link));
6965                       C_DECLARED_LABEL_FLAG (label) = 1;
6966                       declare_nonlocal_label (label);
6967                     }
6968                 ;
6969     break;}
6970 case 676:
6971 #line 3104 "parse.y"
6972 {;
6973     break;}
6974 case 678:
6975 #line 3110 "parse.y"
6976 { yyval.ttype = begin_compound_stmt (0); ;
6977     break;}
6978 case 679:
6979 #line 3112 "parse.y"
6980 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
6981     break;}
6982 case 680:
6983 #line 3117 "parse.y"
6984 {
6985                   yyval.ttype = begin_if_stmt ();
6986                   cond_stmt_keyword = "if";
6987                 ;
6988     break;}
6989 case 681:
6990 #line 3122 "parse.y"
6991 { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
6992     break;}
6993 case 682:
6994 #line 3124 "parse.y"
6995 { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
6996     break;}
6997 case 684:
6998 #line 3129 "parse.y"
6999 { yyval.ttype = begin_compound_stmt (0); ;
7000     break;}
7001 case 685:
7002 #line 3131 "parse.y"
7003 { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
7004     break;}
7005 case 686:
7006 #line 3136 "parse.y"
7007 {;
7008     break;}
7009 case 688:
7010 #line 3142 "parse.y"
7011 { finish_stmt (); ;
7012     break;}
7013 case 689:
7014 #line 3144 "parse.y"
7015 { finish_expr_stmt (yyvsp[-1].ttype); ;
7016     break;}
7017 case 690:
7018 #line 3146 "parse.y"
7019 { begin_else_clause (); ;
7020     break;}
7021 case 691:
7022 #line 3148 "parse.y"
7023
7024                   finish_else_clause (yyvsp[-3].ttype); 
7025                   finish_if_stmt ();
7026                 ;
7027     break;}
7028 case 692:
7029 #line 3153 "parse.y"
7030 { finish_if_stmt (); ;
7031     break;}
7032 case 693:
7033 #line 3155 "parse.y"
7034 {
7035                   yyval.ttype = begin_while_stmt ();
7036                   cond_stmt_keyword = "while";
7037                 ;
7038     break;}
7039 case 694:
7040 #line 3160 "parse.y"
7041 { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
7042     break;}
7043 case 695:
7044 #line 3162 "parse.y"
7045 { finish_while_stmt (yyvsp[-3].ttype); ;
7046     break;}
7047 case 696:
7048 #line 3164 "parse.y"
7049 { yyval.ttype = begin_do_stmt (); ;
7050     break;}
7051 case 697:
7052 #line 3166 "parse.y"
7053 {
7054                   finish_do_body (yyvsp[-2].ttype);
7055                   cond_stmt_keyword = "do";
7056                 ;
7057     break;}
7058 case 698:
7059 #line 3171 "parse.y"
7060 { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7061     break;}
7062 case 699:
7063 #line 3173 "parse.y"
7064 { yyval.ttype = begin_for_stmt (); ;
7065     break;}
7066 case 700:
7067 #line 3175 "parse.y"
7068 { finish_for_init_stmt (yyvsp[-2].ttype); ;
7069     break;}
7070 case 701:
7071 #line 3177 "parse.y"
7072 { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
7073     break;}
7074 case 702:
7075 #line 3179 "parse.y"
7076 { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
7077     break;}
7078 case 703:
7079 #line 3181 "parse.y"
7080 { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
7081     break;}
7082 case 704:
7083 #line 3183 "parse.y"
7084 { begin_switch_stmt (); ;
7085     break;}
7086 case 705:
7087 #line 3185 "parse.y"
7088 { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
7089     break;}
7090 case 706:
7091 #line 3187 "parse.y"
7092 { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7093     break;}
7094 case 707:
7095 #line 3189 "parse.y"
7096 { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
7097     break;}
7098 case 709:
7099 #line 3192 "parse.y"
7100 { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
7101     break;}
7102 case 711:
7103 #line 3195 "parse.y"
7104 { finish_case_label (NULL_TREE, NULL_TREE); ;
7105     break;}
7106 case 713:
7107 #line 3198 "parse.y"
7108 { finish_break_stmt (); ;
7109     break;}
7110 case 714:
7111 #line 3200 "parse.y"
7112 { finish_continue_stmt (); ;
7113     break;}
7114 case 715:
7115 #line 3202 "parse.y"
7116 { finish_return_stmt (NULL_TREE); ;
7117     break;}
7118 case 716:
7119 #line 3204 "parse.y"
7120 { finish_return_stmt (yyvsp[-1].ttype); ;
7121     break;}
7122 case 717:
7123 #line 3206 "parse.y"
7124
7125                   finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
7126                                    NULL_TREE); 
7127                 ;
7128     break;}
7129 case 718:
7130 #line 3212 "parse.y"
7131
7132                   finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
7133                                    NULL_TREE); 
7134                 ;
7135     break;}
7136 case 719:
7137 #line 3218 "parse.y"
7138 { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
7139     break;}
7140 case 720:
7141 #line 3222 "parse.y"
7142 { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
7143     break;}
7144 case 721:
7145 #line 3224 "parse.y"
7146
7147                   if (pedantic)
7148                     pedwarn ("ANSI C++ forbids computed gotos");
7149                   finish_goto_stmt (yyvsp[-1].ttype);
7150                 ;
7151     break;}
7152 case 722:
7153 #line 3230 "parse.y"
7154 { finish_goto_stmt (yyvsp[-1].ttype); ;
7155     break;}
7156 case 723:
7157 #line 3232 "parse.y"
7158 { finish_stmt (); ;
7159     break;}
7160 case 724:
7161 #line 3234 "parse.y"
7162 { error ("label must be followed by statement");
7163                   yyungetc ('}', 0);
7164                   finish_stmt (); ;
7165     break;}
7166 case 725:
7167 #line 3238 "parse.y"
7168 { finish_stmt (); ;
7169     break;}
7170 case 727:
7171 #line 3244 "parse.y"
7172 {
7173                   if (! current_function_parms_stored)
7174                     store_parm_decls ();
7175                   expand_start_early_try_stmts ();
7176                 ;
7177     break;}
7178 case 728:
7179 #line 3250 "parse.y"
7180
7181                   expand_start_all_catch (); 
7182                   expand_start_catch (NULL);
7183                 ;
7184     break;}
7185 case 729:
7186 #line 3255 "parse.y"
7187 {
7188                   int nested = (hack_decl_function_context
7189                                 (current_function_decl) != NULL_TREE);
7190                   expand_end_all_catch ();
7191                   expand_end_catch ();
7192                   finish_function (lineno, (int)yyvsp[-3].itype, nested);
7193                 ;
7194     break;}
7195 case 730:
7196 #line 3266 "parse.y"
7197 { yyval.ttype = begin_try_block (); ;
7198     break;}
7199 case 731:
7200 #line 3268 "parse.y"
7201 { finish_try_block (yyvsp[-1].ttype); ;
7202     break;}
7203 case 732:
7204 #line 3270 "parse.y"
7205 { finish_handler_sequence (yyvsp[-3].ttype); ;
7206     break;}
7207 case 735:
7208 #line 3280 "parse.y"
7209 { yyval.ttype = begin_handler(); ;
7210     break;}
7211 case 736:
7212 #line 3282 "parse.y"
7213 { finish_handler_parms (yyvsp[-1].ttype); ;
7214     break;}
7215 case 737:
7216 #line 3284 "parse.y"
7217 { finish_handler (yyvsp[-3].ttype); ;
7218     break;}
7219 case 740:
7220 #line 3294 "parse.y"
7221 { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
7222     break;}
7223 case 741:
7224 #line 3310 "parse.y"
7225 { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
7226                   expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
7227                                             TREE_VALUE (yyvsp[-1].ftype.t)); ;
7228     break;}
7229 case 742:
7230 #line 3317 "parse.y"
7231 { tree label;
7232                 do_label:
7233                   label = define_label (input_filename, lineno, yyvsp[-1].ttype);
7234                   if (label && ! minimal_parse_mode)
7235                     expand_label (label);
7236                 ;
7237     break;}
7238 case 743:
7239 #line 3324 "parse.y"
7240 { goto do_label; ;
7241     break;}
7242 case 744:
7243 #line 3326 "parse.y"
7244 { goto do_label; ;
7245     break;}
7246 case 745:
7247 #line 3328 "parse.y"
7248 { goto do_label; ;
7249     break;}
7250 case 746:
7251 #line 3333 "parse.y"
7252 { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
7253     break;}
7254 case 748:
7255 #line 3336 "parse.y"
7256 { if (pedantic)
7257                     pedwarn ("ANSI C++ forbids compound statements inside for initializations");
7258                 ;
7259     break;}
7260 case 749:
7261 #line 3345 "parse.y"
7262 { emit_line_note (input_filename, lineno);
7263                   yyval.ttype = NULL_TREE; ;
7264     break;}
7265 case 750:
7266 #line 3348 "parse.y"
7267 { emit_line_note (input_filename, lineno); ;
7268     break;}
7269 case 751:
7270 #line 3353 "parse.y"
7271 { yyval.ttype = NULL_TREE; ;
7272     break;}
7273 case 753:
7274 #line 3356 "parse.y"
7275 { yyval.ttype = NULL_TREE; ;
7276     break;}
7277 case 754:
7278 #line 3363 "parse.y"
7279 { yyval.ttype = NULL_TREE; ;
7280     break;}
7281 case 757:
7282 #line 3370 "parse.y"
7283 { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
7284     break;}
7285 case 758:
7286 #line 3375 "parse.y"
7287 { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
7288     break;}
7289 case 759:
7290 #line 3380 "parse.y"
7291 { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
7292     break;}
7293 case 760:
7294 #line 3382 "parse.y"
7295 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
7296     break;}
7297 case 761:
7298 #line 3393 "parse.y"
7299 {
7300                   yyval.ttype = empty_parms();
7301                 ;
7302     break;}
7303 case 763:
7304 #line 3398 "parse.y"
7305 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
7306                   check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
7307     break;}
7308 case 764:
7309 #line 3406 "parse.y"
7310 { yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
7311     break;}
7312 case 765:
7313 #line 3408 "parse.y"
7314 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7315     break;}
7316 case 766:
7317 #line 3411 "parse.y"
7318 { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
7319     break;}
7320 case 767:
7321 #line 3413 "parse.y"
7322 { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7323                                                          yyvsp[-1].ftype.t), 1); ;
7324     break;}
7325 case 768:
7326 #line 3416 "parse.y"
7327 { yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
7328     break;}
7329 case 769:
7330 #line 3418 "parse.y"
7331 {
7332                   /* This helps us recover from really nasty
7333                      parse errors, for example, a missing right
7334                      parenthesis.  */
7335                   yyerror ("possibly missing ')'");
7336                   yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
7337                   yyungetc (':', 0);
7338                   yychar = ')';
7339                 ;
7340     break;}
7341 case 770:
7342 #line 3428 "parse.y"
7343 {
7344                   /* This helps us recover from really nasty
7345                      parse errors, for example, a missing right
7346                      parenthesis.  */
7347                   yyerror ("possibly missing ')'");
7348                   yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
7349                                                          yyvsp[-1].ftype.t), 0); 
7350                   yyungetc (':', 0);
7351                   yychar = ')';
7352                 ;
7353     break;}
7354 case 771:
7355 #line 3443 "parse.y"
7356 { maybe_snarf_defarg (); ;
7357     break;}
7358 case 772:
7359 #line 3445 "parse.y"
7360 { yyval.ttype = yyvsp[0].ttype; ;
7361     break;}
7362 case 775:
7363 #line 3456 "parse.y"
7364 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7365                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
7366     break;}
7367 case 776:
7368 #line 3459 "parse.y"
7369 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7370                   yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
7371     break;}
7372 case 777:
7373 #line 3462 "parse.y"
7374 { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
7375                   yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
7376     break;}
7377 case 778:
7378 #line 3465 "parse.y"
7379 { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
7380     break;}
7381 case 779:
7382 #line 3467 "parse.y"
7383 { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
7384     break;}
7385 case 781:
7386 #line 3473 "parse.y"
7387 { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
7388                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
7389     break;}
7390 case 782:
7391 #line 3483 "parse.y"
7392 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7393                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
7394                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
7395     break;}
7396 case 783:
7397 #line 3487 "parse.y"
7398 { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
7399                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7400     break;}
7401 case 784:
7402 #line 3490 "parse.y"
7403 { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); 
7404                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7405     break;}
7406 case 785:
7407 #line 3493 "parse.y"
7408 { tree specs = strip_attrs (yyvsp[-1].ftype.t);
7409                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
7410                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
7411     break;}
7412 case 786:
7413 #line 3497 "parse.y"
7414 { tree specs = strip_attrs (yyvsp[0].ftype.t);
7415                   yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
7416                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
7417     break;}
7418 case 787:
7419 #line 3501 "parse.y"
7420 { tree specs = strip_attrs (yyvsp[-1].ttype);
7421                   yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
7422                   yyval.ftype.new_type_flag = 0; ;
7423     break;}
7424 case 788:
7425 #line 3508 "parse.y"
7426 { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
7427                   yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
7428     break;}
7429 case 789:
7430 #line 3511 "parse.y"
7431 { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
7432                   yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
7433     break;}
7434 case 792:
7435 #line 3522 "parse.y"
7436 { see_typename (); ;
7437     break;}
7438 case 793:
7439 #line 3527 "parse.y"
7440 {
7441                   error ("type specifier omitted for parameter");
7442                   yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
7443                 ;
7444     break;}
7445 case 794:
7446 #line 3532 "parse.y"
7447 {
7448                   error ("type specifier omitted for parameter");
7449                   if (TREE_CODE (yyval.ttype) == SCOPE_REF
7450                       && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
7451                           || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
7452                     cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
7453                   yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
7454                 ;
7455     break;}
7456 case 795:
7457 #line 3544 "parse.y"
7458 { yyval.ttype = NULL_TREE; ;
7459     break;}
7460 case 796:
7461 #line 3546 "parse.y"
7462 { yyval.ttype = yyvsp[-1].ttype; ;
7463     break;}
7464 case 797:
7465 #line 3548 "parse.y"
7466 { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
7467     break;}
7468 case 798:
7469 #line 3553 "parse.y"
7470 { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
7471     break;}
7472 case 800:
7473 #line 3559 "parse.y"
7474 {
7475                   TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
7476                   yyval.ttype = yyvsp[0].ttype;
7477                 ;
7478     break;}
7479 case 801:
7480 #line 3567 "parse.y"
7481 { yyval.ttype = NULL_TREE; ;
7482     break;}
7483 case 802:
7484 #line 3569 "parse.y"
7485 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7486     break;}
7487 case 803:
7488 #line 3571 "parse.y"
7489 { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
7490     break;}
7491 case 804:
7492 #line 3573 "parse.y"
7493 { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
7494                   yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
7495                 ;
7496     break;}
7497 case 805:
7498 #line 3580 "parse.y"
7499 { got_scope = NULL_TREE; ;
7500     break;}
7501 case 806:
7502 #line 3585 "parse.y"
7503 { yyval.ttype = ansi_opname[MULT_EXPR]; ;
7504     break;}
7505 case 807:
7506 #line 3587 "parse.y"
7507 { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
7508     break;}
7509 case 808:
7510 #line 3589 "parse.y"
7511 { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
7512     break;}
7513 case 809:
7514 #line 3591 "parse.y"
7515 { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
7516     break;}
7517 case 810:
7518 #line 3593 "parse.y"
7519 { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
7520     break;}
7521 case 811:
7522 #line 3595 "parse.y"
7523 { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
7524     break;}
7525 case 812:
7526 #line 3597 "parse.y"
7527 { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
7528     break;}
7529 case 813:
7530 #line 3599 "parse.y"
7531 { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
7532     break;}
7533 case 814:
7534 #line 3601 "parse.y"
7535 { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
7536     break;}
7537 case 815:
7538 #line 3603 "parse.y"
7539 { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
7540     break;}
7541 case 816:
7542 #line 3605 "parse.y"
7543 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7544     break;}
7545 case 817:
7546 #line 3607 "parse.y"
7547 { yyval.ttype = ansi_opname[LT_EXPR]; ;
7548     break;}
7549 case 818:
7550 #line 3609 "parse.y"
7551 { yyval.ttype = ansi_opname[GT_EXPR]; ;
7552     break;}
7553 case 819:
7554 #line 3611 "parse.y"
7555 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7556     break;}
7557 case 820:
7558 #line 3613 "parse.y"
7559 { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
7560     break;}
7561 case 821:
7562 #line 3615 "parse.y"
7563 { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
7564     break;}
7565 case 822:
7566 #line 3617 "parse.y"
7567 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7568     break;}
7569 case 823:
7570 #line 3619 "parse.y"
7571 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7572     break;}
7573 case 824:
7574 #line 3621 "parse.y"
7575 { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
7576     break;}
7577 case 825:
7578 #line 3623 "parse.y"
7579 { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
7580     break;}
7581 case 826:
7582 #line 3625 "parse.y"
7583 { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
7584     break;}
7585 case 827:
7586 #line 3627 "parse.y"
7587 { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
7588     break;}
7589 case 828:
7590 #line 3629 "parse.y"
7591 { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
7592     break;}
7593 case 829:
7594 #line 3631 "parse.y"
7595 { yyval.ttype = ansi_opname[COND_EXPR]; ;
7596     break;}
7597 case 830:
7598 #line 3633 "parse.y"
7599 { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
7600     break;}
7601 case 831:
7602 #line 3635 "parse.y"
7603 { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
7604     break;}
7605 case 832:
7606 #line 3637 "parse.y"
7607 { yyval.ttype = ansi_opname[MEMBER_REF]; ;
7608     break;}
7609 case 833:
7610 #line 3639 "parse.y"
7611 { yyval.ttype = ansi_opname[CALL_EXPR]; ;
7612     break;}
7613 case 834:
7614 #line 3641 "parse.y"
7615 { yyval.ttype = ansi_opname[ARRAY_REF]; ;
7616     break;}
7617 case 835:
7618 #line 3643 "parse.y"
7619 { yyval.ttype = ansi_opname[NEW_EXPR]; ;
7620     break;}
7621 case 836:
7622 #line 3645 "parse.y"
7623 { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
7624     break;}
7625 case 837:
7626 #line 3647 "parse.y"
7627 { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
7628     break;}
7629 case 838:
7630 #line 3649 "parse.y"
7631 { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
7632     break;}
7633 case 839:
7634 #line 3652 "parse.y"
7635 { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
7636     break;}
7637 case 840:
7638 #line 3654 "parse.y"
7639 { yyval.ttype = ansi_opname[ERROR_MARK]; ;
7640     break;}
7641 }
7642    /* the action file gets copied in in place of this dollarsign */
7643 #line 498 "/usr/lib/bison.simple"
7644 \f
7645   yyvsp -= yylen;
7646   yyssp -= yylen;
7647 #ifdef YYLSP_NEEDED
7648   yylsp -= yylen;
7649 #endif
7650
7651 #if YYDEBUG != 0
7652   if (yydebug)
7653     {
7654       short *ssp1 = yyss - 1;
7655       fprintf (stderr, "state stack now");
7656       while (ssp1 != yyssp)
7657         fprintf (stderr, " %d", *++ssp1);
7658       fprintf (stderr, "\n");
7659     }
7660 #endif
7661
7662   *++yyvsp = yyval;
7663
7664 #ifdef YYLSP_NEEDED
7665   yylsp++;
7666   if (yylen == 0)
7667     {
7668       yylsp->first_line = yylloc.first_line;
7669       yylsp->first_column = yylloc.first_column;
7670       yylsp->last_line = (yylsp-1)->last_line;
7671       yylsp->last_column = (yylsp-1)->last_column;
7672       yylsp->text = 0;
7673     }
7674   else
7675     {
7676       yylsp->last_line = (yylsp+yylen-1)->last_line;
7677       yylsp->last_column = (yylsp+yylen-1)->last_column;
7678     }
7679 #endif
7680
7681   /* Now "shift" the result of the reduction.
7682      Determine what state that goes to,
7683      based on the state we popped back to
7684      and the rule number reduced by.  */
7685
7686   yyn = yyr1[yyn];
7687
7688   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
7689   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
7690     yystate = yytable[yystate];
7691   else
7692     yystate = yydefgoto[yyn - YYNTBASE];
7693
7694   goto yynewstate;
7695
7696 yyerrlab:   /* here on detecting error */
7697
7698   if (! yyerrstatus)
7699     /* If not already recovering from an error, report this error.  */
7700     {
7701       ++yynerrs;
7702
7703 #ifdef YYERROR_VERBOSE
7704       yyn = yypact[yystate];
7705
7706       if (yyn > YYFLAG && yyn < YYLAST)
7707         {
7708           int size = 0;
7709           char *msg;
7710           int x, count;
7711
7712           count = 0;
7713           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
7714           for (x = (yyn < 0 ? -yyn : 0);
7715                x < (sizeof(yytname) / sizeof(char *)); x++)
7716             if (yycheck[x + yyn] == x)
7717               size += strlen(yytname[x]) + 15, count++;
7718           msg = (char *) malloc(size + 15);
7719           if (msg != 0)
7720             {
7721               strcpy(msg, "parse error");
7722
7723               if (count < 5)
7724                 {
7725                   count = 0;
7726                   for (x = (yyn < 0 ? -yyn : 0);
7727                        x < (sizeof(yytname) / sizeof(char *)); x++)
7728                     if (yycheck[x + yyn] == x)
7729                       {
7730                         strcat(msg, count == 0 ? ", expecting `" : " or `");
7731                         strcat(msg, yytname[x]);
7732                         strcat(msg, "'");
7733                         count++;
7734                       }
7735                 }
7736               yyerror(msg);
7737               free(msg);
7738             }
7739           else
7740             yyerror ("parse error; also virtual memory exceeded");
7741         }
7742       else
7743 #endif /* YYERROR_VERBOSE */
7744         yyerror("parse error");
7745     }
7746
7747   goto yyerrlab1;
7748 yyerrlab1:   /* here on error raised explicitly by an action */
7749
7750   if (yyerrstatus == 3)
7751     {
7752       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
7753
7754       /* return failure if at end of input */
7755       if (yychar == YYEOF)
7756         YYABORT;
7757
7758 #if YYDEBUG != 0
7759       if (yydebug)
7760         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
7761 #endif
7762
7763       yychar = YYEMPTY;
7764     }
7765
7766   /* Else will try to reuse lookahead token
7767      after shifting the error token.  */
7768
7769   yyerrstatus = 3;              /* Each real token shifted decrements this */
7770
7771   goto yyerrhandle;
7772
7773 yyerrdefault:  /* current state does not do anything special for the error token. */
7774
7775 #if 0
7776   /* This is wrong; only states that explicitly want error tokens
7777      should shift them.  */
7778   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
7779   if (yyn) goto yydefault;
7780 #endif
7781
7782 yyerrpop:   /* pop the current state because it cannot handle the error token */
7783
7784   if (yyssp == yyss) YYABORT;
7785   yyvsp--;
7786   yystate = *--yyssp;
7787 #ifdef YYLSP_NEEDED
7788   yylsp--;
7789 #endif
7790
7791 #if YYDEBUG != 0
7792   if (yydebug)
7793     {
7794       short *ssp1 = yyss - 1;
7795       fprintf (stderr, "Error: state stack now");
7796       while (ssp1 != yyssp)
7797         fprintf (stderr, " %d", *++ssp1);
7798       fprintf (stderr, "\n");
7799     }
7800 #endif
7801
7802 yyerrhandle:
7803
7804   yyn = yypact[yystate];
7805   if (yyn == YYFLAG)
7806     goto yyerrdefault;
7807
7808   yyn += YYTERROR;
7809   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
7810     goto yyerrdefault;
7811
7812   yyn = yytable[yyn];
7813   if (yyn < 0)
7814     {
7815       if (yyn == YYFLAG)
7816         goto yyerrpop;
7817       yyn = -yyn;
7818       goto yyreduce;
7819     }
7820   else if (yyn == 0)
7821     goto yyerrpop;
7822
7823   if (yyn == YYFINAL)
7824     YYACCEPT;
7825
7826 #if YYDEBUG != 0
7827   if (yydebug)
7828     fprintf(stderr, "Shifting error token, ");
7829 #endif
7830
7831   *++yyvsp = yylval;
7832 #ifdef YYLSP_NEEDED
7833   *++yylsp = yylloc;
7834 #endif
7835
7836   yystate = yyn;
7837   goto yynewstate;
7838 }
7839 #line 3657 "parse.y"
7840
7841
7842 #ifdef SPEW_DEBUG
7843 const char *
7844 debug_yytranslate (value)
7845     int value;
7846 {
7847   return yytname[YYTRANSLATE (value)];
7848 }
7849
7850 #endif