parse.c   [plain text]



/*  A Bison parser, made from /Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y
    by GNU Bison version 1.28  */

#define YYBISON 1  /* Identify Bison output.  */

#define	IDENTIFIER	257
#define	TYPENAME	258
#define	SELFNAME	259
#define	CLASSNAME	260
#define	OBJECTNAME	261
#define	PFUNCNAME	262
#define	SCSPEC	263
#define	TYPESPEC	264
#define	CV_QUALIFIER	265
#define	CONSTANT	266
#define	STRING	267
#define	ELLIPSIS	268
#define	SIZEOF	269
#define	ENUM	270
#define	IF	271
#define	ELSE	272
#define	WHILE	273
#define	DO	274
#define	FOR	275
#define	SWITCH	276
#define	CASE	277
#define	DEFAULT	278
#define	BREAK	279
#define	CONTINUE	280
#define	RETURN_KEYWORD	281
#define	GOTO	282
#define	ASM_KEYWORD	283
#define	TYPEOF	284
#define	ALIGNOF	285
#define	SIGOF	286
#define	ATTRIBUTE	287
#define	EXTENSION	288
#define	LABEL	289
#define	REALPART	290
#define	IMAGPART	291
#define	VEC_STEP	292
#define	AGGR	293
#define	VISSPEC	294
#define	DELETE	295
#define	NEW	296
#define	THIS	297
#define	OPERATOR	298
#define	CXX_TRUE	299
#define	CXX_FALSE	300
#define	NAMESPACE	301
#define	TYPENAME_KEYWORD	302
#define	USING	303
#define	LEFT_RIGHT	304
#define	TEMPLATE	305
#define	TYPEID	306
#define	DYNAMIC_CAST	307
#define	STATIC_CAST	308
#define	REINTERPRET_CAST	309
#define	CONST_CAST	310
#define	SCOPE	311
#define	INTERFACE	312
#define	IMPLEMENTATION	313
#define	END	314
#define	SELECTOR	315
#define	DEFS	316
#define	ENCODE	317
#define	PUBLIC	318
#define	PRIVATE	319
#define	PROTECTED	320
#define	PROTOCOL	321
#define	CLASS	322
#define	ALIAS	323
#define	OBJC_STRING	324
#define	EMPTY	325
#define	PTYPENAME	326
#define	NSNAME	327
#define	THROW	328
#define	ASSIGN	329
#define	OROR	330
#define	ANDAND	331
#define	MIN_MAX	332
#define	EQCOMPARE	333
#define	ARITHCOMPARE	334
#define	LSHIFT	335
#define	RSHIFT	336
#define	POINTSAT_STAR	337
#define	DOT_STAR	338
#define	UNARY	339
#define	PLUSPLUS	340
#define	MINUSMINUS	341
#define	HYPERUNARY	342
#define	PAREN_STAR_PAREN	343
#define	POINTSAT	344
#define	TRY	345
#define	CATCH	346
#define	PRE_PARSED_FUNCTION_DECL	347
#define	EXTERN_LANG_STRING	348
#define	ALL	349
#define	PRE_PARSED_CLASS_DECL	350
#define	DEFARG	351
#define	DEFARG_MARKER	352
#define	TYPENAME_DEFN	353
#define	IDENTIFIER_DEFN	354
#define	PTYPENAME_DEFN	355
#define	END_OF_LINE	356
#define	END_OF_SAVED_INPUT	357

#line 29 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"

/* Cause the `yydebug' variable to be defined.  */
#define YYDEBUG 1

#include "config.h"

#include "system.h"

#include "tree.h"
#include "input.h"
#include "flags.h"
#include "lex.h"
#include "cp-tree.h"
#include "output.h"
#include "except.h"
#include "toplev.h"

#ifdef OBJCPLUS
#include "objc-act.h"

/* the `decl' list operators optimization is not appropriate for Objective-C */
#define build_decl_list 	build_tree_list
#define decl_tree_cons 		tree_cons
#endif

/* Since parsers are distinct for each language, put the language string
   definition here.  (fnf) */
#ifdef OBJCPLUS
char *language_string = "GNU Obj-C++";
#else   
char *language_string = "GNU C++";
#endif

extern tree void_list_node;
extern struct obstack permanent_obstack;

extern int end_of_file;
extern int flag_new_for_scope;

/* Like YYERROR but do call yyerror.  */
#define YYERROR1 { yyerror ("syntax error"); YYERROR; }

#define OP0(NODE) (TREE_OPERAND (NODE, 0))
#define OP1(NODE) (TREE_OPERAND (NODE, 1))

/* Contains the statement keyword (if/while/do) to include in an
   error message if the user supplies an empty conditional expression.  */
static const char *cond_stmt_keyword;

static tree empty_parms PROTO((void));
static int parse_decl PROTO((tree, tree, tree, int, tree *));

/* Nonzero if we have an `extern "C"' acting as an extern specifier.  */
int have_extern_spec;
int used_extern_spec;

/* Cons up an empty parameter list.  */
#ifdef __GNUC__
__inline
#endif
static tree
empty_parms ()
{
  tree parms;

  if (strict_prototype
      || current_class_type != NULL)
    parms = void_list_node;
  else
    parms = NULL_TREE;
  return parms;
}


#line 106 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#line 325 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"

/* List of types and structure classes of the current declaration.  */
static tree current_declspecs;

/* List of prefix attributes in effect.
   Prefix attributes are parsed by the reserved_declspecs and declmods
   rules.  They create a list that contains *both* declspecs and attrs.  */
/* ??? It is not clear yet that all cases where an attribute can now appear in
   a declspec list have been updated.  */
static tree prefix_attributes;

/* When defining an aggregate, this is the kind of the most recent one
   being defined.  (For example, this might be class_type_node.)  */
tree current_aggr;

/* When defining an enumeration, this is the type of the enumeration.  */
static tree current_enum_type;

/* List of Objective-C specific information */

tree objc_interface_context;
tree objc_implementation_context;
tree objc_method_context;
tree objc_ivar_chain;
tree objc_ivar_context;
static enum tree_code objc_inherit_code;
int objc_receiver_context = 0;
int objc_declarator_context = 0;
int objc_msg_context = 0;
int objc_public_flag;
tree super_type, selector_type, id_type, objc_class_type;
tree objc_object_id, objc_class_id, objc_id_id;
int objc_need_raw_identifier = 0;
int objc_in_method_signature = 0;

extern char *token_buffer;

/* Tell yyparse how to print a token's value, if yydebug is set.  */

#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
extern void yyprint			PROTO((FILE *, int, YYSTYPE));
extern tree combine_strings		PROTO((tree));

static int
parse_decl(declarator, specs_attrs, attributes, initialized, decl)
  tree declarator;
  tree specs_attrs;
  tree attributes;
  int initialized;
  tree* decl;
{
  int  sm;

  split_specs_attrs (specs_attrs, &current_declspecs, &prefix_attributes);
  if (current_declspecs
      && TREE_CODE (current_declspecs) != TREE_LIST)
    current_declspecs = build_decl_list (NULL_TREE, current_declspecs);
  if (have_extern_spec && !used_extern_spec)
    {
      current_declspecs = decl_tree_cons (NULL_TREE, 
					  get_identifier ("extern"), 
					  current_declspecs);
      used_extern_spec = 1;
    }
  sm = suspend_momentary ();
  *decl = start_decl (declarator, current_declspecs, initialized,
		      attributes, prefix_attributes);
  return sm;
}
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define	YYFINAL		1991
#define	YYFLAG		-32768
#define	YYNTBASE	128

#define YYTRANSLATE(x) ((unsigned)(x) <= 357 ? yytranslate[x] : 494)

static const short yytranslate[] = {     0,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,   126,     2,     2,     2,    98,    86,     2,   109,
   124,    96,    94,    75,    95,   108,    97,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,    78,    76,    90,
    80,    91,    81,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
   110,     2,   127,    85,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,    74,    84,   125,   104,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    77,    79,    82,
    83,    87,    88,    89,    92,    93,    99,   100,   101,   102,
   103,   105,   106,   107,   111,   112,   113,   114,   115,   116,
   117,   118,   119,   120,   121,   122,   123
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     3,     4,     7,    10,    12,    13,    14,    15,
    17,    19,    20,    23,    26,    28,    30,    32,    38,    43,
    49,    54,    55,    62,    63,    69,    71,    74,    76,    79,
    80,    87,    90,    94,    98,   102,   106,   111,   112,   118,
   121,   125,   127,   129,   132,   135,   137,   140,   141,   147,
   151,   153,   157,   159,   160,   163,   166,   170,   172,   176,
   178,   182,   184,   188,   191,   194,   197,   199,   201,   207,
   212,   215,   218,   222,   226,   229,   232,   236,   240,   243,
   246,   249,   252,   255,   257,   259,   261,   262,   264,   267,
   268,   270,   275,   279,   283,   284,   293,   299,   300,   310,
   317,   318,   327,   333,   334,   344,   351,   354,   357,   359,
   362,   364,   371,   376,   383,   388,   391,   393,   396,   399,
   401,   404,   406,   409,   412,   417,   420,   424,   425,   426,
   428,   432,   435,   439,   441,   446,   449,   454,   457,   462,
   465,   467,   469,   471,   473,   475,   477,   479,   481,   483,
   485,   487,   489,   491,   492,   499,   500,   507,   508,   514,
   515,   521,   522,   530,   531,   539,   540,   547,   548,   555,
   556,   557,   563,   569,   571,   573,   579,   585,   586,   588,
   590,   591,   593,   595,   599,   601,   603,   605,   607,   609,
   611,   613,   615,   617,   619,   621,   625,   627,   631,   632,
   634,   636,   637,   645,   647,   649,   653,   658,   662,   663,
   667,   669,   673,   677,   681,   685,   687,   689,   691,   694,
   697,   700,   703,   706,   709,   712,   717,   720,   725,   728,
   733,   736,   740,   744,   749,   755,   762,   769,   777,   780,
   785,   791,   796,   799,   802,   804,   805,   810,   815,   819,
   821,   825,   828,   832,   837,   839,   844,   847,   853,   855,
   859,   863,   867,   871,   875,   879,   883,   887,   891,   895,
   899,   903,   907,   911,   915,   919,   923,   927,   931,   937,
   941,   945,   947,   950,   954,   958,   960,   962,   964,   966,
   968,   969,   975,   981,   987,   993,   999,  1001,  1003,  1005,
  1007,  1010,  1012,  1015,  1018,  1022,  1027,  1032,  1034,  1036,
  1038,  1042,  1044,  1046,  1048,  1050,  1054,  1058,  1062,  1063,
  1068,  1073,  1076,  1081,  1084,  1089,  1092,  1095,  1097,  1102,
  1104,  1112,  1120,  1128,  1136,  1141,  1146,  1149,  1152,  1155,
  1157,  1162,  1165,  1168,  1174,  1178,  1181,  1184,  1190,  1194,
  1200,  1204,  1209,  1216,  1218,  1220,  1222,  1224,  1227,  1229,
  1232,  1234,  1237,  1239,  1241,  1243,  1246,  1248,  1251,  1253,
  1256,  1257,  1260,  1263,  1267,  1271,  1275,  1278,  1281,  1284,
  1286,  1288,  1290,  1293,  1296,  1299,  1302,  1304,  1306,  1308,
  1310,  1313,  1316,  1320,  1324,  1328,  1333,  1335,  1338,  1341,
  1344,  1346,  1348,  1350,  1353,  1356,  1359,  1361,  1363,  1366,
  1369,  1373,  1375,  1378,  1380,  1382,  1385,  1388,  1390,  1395,
  1400,  1405,  1410,  1412,  1414,  1416,  1418,  1422,  1424,  1428,
  1430,  1434,  1435,  1440,  1441,  1448,  1452,  1453,  1458,  1460,
  1464,  1468,  1469,  1474,  1478,  1479,  1481,  1483,  1486,  1493,
  1495,  1499,  1500,  1502,  1507,  1514,  1519,  1521,  1523,  1525,
  1527,  1529,  1533,  1534,  1537,  1539,  1542,  1546,  1551,  1553,
  1555,  1559,  1563,  1569,  1571,  1576,  1580,  1584,  1585,  1589,
  1593,  1597,  1598,  1601,  1604,  1605,  1613,  1618,  1619,  1626,
  1630,  1633,  1636,  1639,  1640,  1641,  1642,  1653,  1655,  1656,
  1658,  1659,  1661,  1663,  1666,  1669,  1672,  1675,  1678,  1681,
  1684,  1687,  1690,  1694,  1699,  1703,  1706,  1710,  1712,  1713,
  1717,  1720,  1723,  1725,  1727,  1728,  1731,  1735,  1737,  1742,
  1744,  1748,  1750,  1752,  1757,  1762,  1765,  1768,  1772,  1776,
  1777,  1779,  1783,  1786,  1791,  1797,  1800,  1802,  1805,  1808,
  1811,  1814,  1817,  1820,  1823,  1825,  1828,  1831,  1835,  1838,
  1841,  1846,  1851,  1854,  1856,  1862,  1867,  1869,  1870,  1872,
  1876,  1877,  1879,  1883,  1885,  1887,  1889,  1891,  1896,  1901,
  1906,  1911,  1916,  1920,  1925,  1930,  1935,  1940,  1944,  1946,
  1950,  1952,  1956,  1959,  1961,  1969,  1970,  1973,  1975,  1978,
  1979,  1982,  1983,  1987,  1992,  1997,  2001,  2004,  2009,  2011,
  2014,  2018,  2022,  2025,  2028,  2032,  2034,  2039,  2044,  2048,
  2052,  2055,  2057,  2059,  2061,  2064,  2066,  2068,  2071,  2074,
  2076,  2079,  2083,  2087,  2090,  2093,  2097,  2099,  2103,  2107,
  2110,  2113,  2117,  2119,  2124,  2128,  2133,  2137,  2139,  2142,
  2145,  2148,  2151,  2154,  2156,  2159,  2164,  2169,  2172,  2174,
  2176,  2178,  2180,  2183,  2188,  2191,  2194,  2197,  2200,  2202,
  2205,  2208,  2211,  2214,  2218,  2220,  2223,  2227,  2232,  2235,
  2238,  2241,  2244,  2247,  2250,  2255,  2258,  2260,  2263,  2266,
  2270,  2272,  2276,  2279,  2283,  2286,  2289,  2293,  2295,  2299,
  2304,  2306,  2309,  2313,  2316,  2319,  2321,  2325,  2328,  2331,
  2333,  2336,  2340,  2342,  2346,  2348,  2355,  2360,  2365,  2369,
  2375,  2379,  2383,  2387,  2390,  2392,  2394,  2397,  2400,  2403,
  2404,  2406,  2408,  2411,  2415,  2417,  2420,  2421,  2425,  2426,
  2427,  2433,  2435,  2436,  2439,  2441,  2443,  2445,  2448,  2449,
  2454,  2456,  2457,  2458,  2464,  2465,  2466,  2474,  2475,  2476,
  2477,  2478,  2491,  2492,  2493,  2501,  2502,  2508,  2509,  2517,
  2518,  2523,  2526,  2529,  2532,  2536,  2543,  2552,  2563,  2576,
  2581,  2585,  2588,  2591,  2593,  2595,  2597,  2599,  2601,  2602,
  2603,  2610,  2611,  2612,  2618,  2620,  2623,  2624,  2625,  2631,
  2633,  2635,  2639,  2643,  2646,  2649,  2652,  2655,  2658,  2660,
  2663,  2664,  2666,  2667,  2669,  2671,  2672,  2674,  2676,  2680,
  2685,  2687,  2691,  2692,  2694,  2696,  2698,  2701,  2704,  2707,
  2709,  2712,  2715,  2716,  2720,  2722,  2724,  2726,  2729,  2732,
  2735,  2740,  2743,  2746,  2749,  2752,  2755,  2758,  2760,  2763,
  2765,  2768,  2770,  2772,  2773,  2774,  2776,  2777,  2782,  2785,
  2787,  2789,  2793,  2794,  2798,  2802,  2806,  2808,  2811,  2814,
  2817,  2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,  2844,
  2847,  2850,  2853,  2856,  2859,  2862,  2865,  2868,  2871,  2874,
  2877,  2881,  2884,  2887,  2890,  2893,  2897,  2900,  2903,  2908,
  2913,  2917,  2920,  2921,  2923,  2925,  2927,  2929,  2931,  2933,
  2935,  2937,  2941,  2945,  2949,  2954,  2957,  2959,  2960,  2961,
  2972,  2973,  2980,  2981,  2982,  2994,  2995,  3003,  3004,  3011,
  3014,  3015,  3023,  3027,  3028,  3038,  3044,  3045,  3054,  3055,
  3061,  3065,  3067,  3069,  3071,  3073,  3074,  3078,  3081,  3085,
  3089,  3091,  3092,  3094,  3098,  3100,  3104,  3107,  3108,  3109,
  3110,  3118,  3119,  3120,  3121,  3129,  3130,  3131,  3134,  3136,
  3138,  3141,  3142,  3146,  3148,  3150,  3151,  3152,  3158,  3159,
  3160,  3166,  3168,  3170,  3174,  3176,  3179,  3184,  3190,  3192,
  3199,  3205,  3208,  3209,  3212,  3213,  3215,  3217,  3219,  3222,
  3225,  3230,  3233,  3236,  3238,  3242,  3244,  3246,  3247,  3250,
  3251,  3255,  3257,  3259,  3262,  3264,  3266,  3268,  3270,  3272,
  3274,  3276,  3278,  3280,  3282,  3284,  3286,  3288,  3290,  3292,
  3294,  3296,  3298,  3300,  3302,  3304,  3306,  3308,  3310,  3312,
  3314,  3316,  3318,  3320,  3322,  3324,  3326,  3328,  3333,  3337,
  3341,  3344,  3346,  3348,  3350,  3353,  3355,  3359,  3362,  3364,
  3366,  3368,  3369,  3373,  3375,  3379,  3381,  3383,  3385,  3388,
  3391,  3393,  3395,  3400,  3405
};

static const short yyrhs[] = {    -1,
   129,     0,     0,   130,   136,     0,   129,   136,     0,   129,
     0,     0,     0,     0,    34,     0,    29,     0,     0,   137,
   138,     0,   164,   163,     0,   160,     0,   419,     0,   157,
     0,   135,   109,   235,   124,    76,     0,   149,    74,   131,
   125,     0,   149,   132,   164,   133,   163,     0,   149,   132,
   160,   133,     0,     0,    47,   179,    74,   139,   131,   125,
     0,     0,    47,    74,   140,   131,   125,     0,   141,     0,
   143,    76,     0,   145,     0,   134,   138,     0,     0,    47,
   179,    80,   142,   148,    76,     0,    49,   331,     0,    49,
   345,   331,     0,    49,   345,   225,     0,    49,   147,   179,
     0,    49,   345,   179,     0,    49,   345,   147,   179,     0,
     0,    49,    47,   146,   148,    76,     0,    73,    57,     0,
   147,    73,    57,     0,   225,     0,   331,     0,   345,   331,
     0,   345,   225,     0,   114,     0,   149,   114,     0,     0,
    51,    90,   151,   152,    91,     0,    51,    90,    91,     0,
   156,     0,   152,    75,   156,     0,   179,     0,     0,   286,
   153,     0,    48,   153,     0,   150,   286,   153,     0,   154,
     0,   154,    80,   242,     0,   409,     0,   409,    80,   220,
     0,   155,     0,   155,    80,   200,     0,   150,   158,     0,
   150,     1,     0,   164,   163,     0,   159,     0,   157,     0,
   149,   132,   164,   133,   163,     0,   149,   132,   159,   133,
     0,   134,   158,     0,   253,    76,     0,   246,   252,    76,
     0,   243,   251,    76,     0,   278,    76,     0,   253,    76,
     0,   246,   252,    76,     0,   243,   251,    76,     0,   246,
    76,     0,   182,    76,     0,   243,    76,     0,     1,    76,
     0,     1,   125,     0,    76,     0,   237,     0,   175,     0,
     0,   174,     0,   174,    76,     0,     0,   123,     0,   170,
   162,   161,   356,     0,   170,   162,   380,     0,   170,   162,
     1,     0,     0,   336,     5,   109,   166,   400,   124,   315,
   412,     0,   336,     5,    50,   315,   412,     0,     0,   345,
   336,     5,   109,   167,   400,   124,   315,   412,     0,   345,
   336,     5,    50,   315,   412,     0,     0,   336,   195,   109,
   168,   400,   124,   315,   412,     0,   336,   195,    50,   315,
   412,     0,     0,   345,   336,   195,   109,   169,   400,   124,
   315,   412,     0,   345,   336,   195,    50,   315,   412,     0,
   243,   240,     0,   246,   328,     0,   328,     0,   246,   165,
     0,   165,     0,     5,   109,   400,   124,   315,   412,     0,
     5,    50,   315,   412,     0,   195,   109,   400,   124,   315,
   412,     0,   195,    50,   315,   412,     0,   246,   171,     0,
   171,     0,   243,   240,     0,   246,   328,     0,   328,     0,
   246,   165,     0,   165,     0,    27,     3,     0,   173,   270,
     0,   173,   109,   212,   124,     0,   173,    50,     0,    78,
   176,   177,     0,     0,     0,   178,     0,   177,    75,   178,
     0,   177,     1,     0,   109,   212,   124,     0,    50,     0,
   180,   109,   212,   124,     0,   180,    50,     0,   324,   109,
   212,   124,     0,   324,    50,     0,   338,   109,   212,   124,
     0,   338,    50,     0,     3,     0,     4,     0,     5,     0,
    72,     0,    73,     0,     7,     0,     6,     0,     3,     0,
    72,     0,    73,     0,   120,     0,   119,     0,   121,     0,
     0,    51,   191,   249,    76,   183,   192,     0,     0,    51,
   191,   243,   240,   184,   192,     0,     0,    51,   191,   328,
   185,   192,     0,     0,    51,   191,   165,   186,   192,     0,
     0,     9,    51,   191,   249,    76,   187,   192,     0,     0,
     9,    51,   191,   243,   240,   188,   192,     0,     0,     9,
    51,   191,   328,   189,   192,     0,     0,     9,    51,   191,
   165,   190,   192,     0,     0,     0,    72,    90,   198,   197,
   196,     0,     4,    90,   198,   197,   196,     0,   195,     0,
   193,     0,   179,    90,   198,    91,   196,     0,     5,    90,
   198,   197,   196,     0,     0,    91,     0,    93,     0,     0,
   199,     0,   200,     0,   199,    75,   200,     0,   242,     0,
    72,     0,   220,     0,    95,     0,    94,     0,   102,     0,
   103,     0,   126,     0,   211,     0,   220,     0,    50,     0,
   109,   202,   124,     0,    50,     0,   109,   206,   124,     0,
     0,   206,     0,     1,     0,     0,   390,   240,   254,   263,
    80,   207,   271,     0,   202,     0,   125,     0,   353,   351,
   125,     0,   353,   351,     1,   125,     0,   353,     1,   125,
     0,     0,    74,   210,   208,     0,   365,     0,   220,    75,
   220,     0,   220,    75,     1,     0,   211,    75,   220,     0,
   211,    75,     1,     0,   220,     0,   211,     0,   230,     0,
   134,   219,     0,    96,   219,     0,    86,   219,     0,   104,
   219,     0,   201,   219,     0,    83,   179,     0,    15,   213,
     0,    15,   109,   242,   124,     0,    31,   213,     0,    31,
   109,   242,   124,     0,    38,   213,     0,    38,   109,   242,
   124,     0,   232,   314,     0,   232,   314,   217,     0,   232,
   216,   314,     0,   232,   216,   314,   217,     0,   232,   109,
   215,   242,   214,     0,   232,   109,   215,   242,   214,   217,
     0,   232,   216,   109,   215,   242,   214,     0,   232,   216,
   109,   215,   242,   214,   217,     0,   233,   219,     0,   233,
   110,   127,   219,     0,   233,   110,   202,   127,   219,     0,
   233,   484,   486,   219,     0,    36,   219,     0,    37,   219,
     0,   124,     0,     0,   109,   215,   212,   124,     0,    74,
   215,   212,   125,     0,   109,   212,   124,     0,    50,     0,
   109,   249,   124,     0,    80,   271,     0,   109,   242,   124,
     0,   218,   109,   242,   124,     0,   213,     0,   218,   109,
   211,   124,     0,   218,   213,     0,   218,    74,   272,   284,
   125,     0,   219,     0,   220,    99,   220,     0,   220,   100,
   220,     0,   220,    94,   220,     0,   220,    95,   220,     0,
   220,    96,   220,     0,   220,    97,   220,     0,   220,    98,
   220,     0,   220,    92,   220,     0,   220,    93,   220,     0,
   220,    89,   220,     0,   220,    90,   220,     0,   220,    91,
   220,     0,   220,    88,   220,     0,   220,    87,   220,     0,
   220,    86,   220,     0,   220,    84,   220,     0,   220,    85,
   220,     0,   220,    83,   220,     0,   220,    82,   220,     0,
   220,    81,   395,    78,   220,     0,   220,    80,   220,     0,
   220,    79,   220,     0,    77,     0,    77,   220,     0,   104,
   410,   179,     0,   104,   410,   193,     0,   223,     0,   417,
     0,     3,     0,    72,     0,    73,     0,     0,     8,    90,
   222,   198,   197,     0,   417,    90,   222,   198,   197,     0,
    51,   179,    90,   198,   197,     0,    51,     8,    90,   198,
   197,     0,    51,   417,    90,   198,   197,     0,   221,     0,
     4,     0,     5,     0,   227,     0,   264,   227,     0,   221,
     0,    96,   226,     0,    86,   226,     0,   109,   226,   124,
     0,     3,    90,   198,   197,     0,    73,    90,   199,   197,
     0,   330,     0,   221,     0,   228,     0,   109,   226,   124,
     0,   221,     0,    12,     0,   234,     0,   235,     0,   109,
   202,   124,     0,   109,   226,   124,     0,   109,     1,   124,
     0,     0,   109,   231,   357,   124,     0,   221,   109,   212,
   124,     0,   221,    50,     0,   230,   109,   212,   124,     0,
   230,    50,     0,   230,   110,   202,   127,     0,   230,   102,
     0,   230,   103,     0,    43,     0,    11,   109,   212,   124,
     0,   334,     0,    53,    90,   242,    91,   109,   202,   124,
     0,    54,    90,   242,    91,   109,   202,   124,     0,    55,
    90,   242,    91,   109,   202,   124,     0,    56,    90,   242,
    91,   109,   202,   124,     0,    52,   109,   202,   124,     0,
    52,   109,   242,   124,     0,   345,     3,     0,   345,   223,
     0,   345,   417,     0,   333,     0,   333,   109,   212,   124,
     0,   333,    50,     0,   238,   224,     0,   238,   224,   109,
   212,   124,     0,   238,   224,    50,     0,   238,   225,     0,
   238,   333,     0,   238,   225,   109,   212,   124,     0,   238,
   225,    50,     0,   238,   333,   109,   212,   124,     0,   238,
   333,    50,     0,   238,   104,    10,    50,     0,   238,    10,
    57,   104,    10,    50,     0,   487,     0,   491,     0,   492,
     0,   236,     0,   238,     1,     0,    42,     0,   345,    42,
     0,    41,     0,   345,   233,     0,    45,     0,    46,     0,
    13,     0,   235,    13,     0,   493,     0,   235,   493,     0,
    70,     0,   236,    70,     0,     0,   230,   108,     0,   230,
   107,     0,   249,   251,    76,     0,   243,   251,    76,     0,
   246,   252,    76,     0,   243,    76,     0,   246,    76,     0,
   134,   239,     0,   322,     0,   328,     0,    50,     0,   241,
    50,     0,   247,   349,     0,   316,   349,     0,   249,   349,
     0,   247,     0,   316,     0,   247,     0,   244,     0,   246,
   249,     0,   249,   245,     0,   249,   248,   245,     0,   246,
   249,   245,     0,   246,   249,   248,     0,   246,   249,   248,
   245,     0,     9,     0,   245,   250,     0,   245,     9,     0,
   245,   264,     0,   264,     0,   316,     0,     9,     0,   246,
    11,     0,   246,     9,     0,   246,   264,     0,   264,     0,
   249,     0,   316,   249,     0,   249,   248,     0,   316,   249,
   248,     0,   250,     0,   248,   250,     0,   278,     0,    10,
     0,     6,   319,     0,     7,   319,     0,   325,     0,    30,
   109,   202,   124,     0,    30,   109,   242,   124,     0,    32,
   109,   202,   124,     0,    32,   109,   242,   124,     0,    10,
     0,    11,     0,   278,     0,   259,     0,   251,    75,   255,
     0,   260,     0,   252,    75,   255,     0,   261,     0,   253,
    75,   255,     0,     0,   135,   109,   235,   124,     0,     0,
   240,   254,   263,    80,   256,   271,     0,   240,   254,   263,
     0,     0,   263,    80,   258,   271,     0,   263,     0,   240,
   254,   257,     0,   328,   254,   257,     0,     0,   328,   254,
   262,   257,     0,   165,   254,   263,     0,     0,   264,     0,
   265,     0,   264,   265,     0,    33,   109,   109,   266,   124,
   124,     0,   267,     0,   266,    75,   267,     0,     0,   268,
     0,   268,   109,     3,   124,     0,   268,   109,     3,    75,
   212,   124,     0,   268,   109,   212,   124,     0,   179,     0,
     9,     0,    10,     0,    11,     0,   179,     0,   269,    75,
   179,     0,     0,    80,   271,     0,   220,     0,    74,   125,
     0,    74,   272,   125,     0,    74,   272,    75,   125,     0,
     1,     0,   271,     0,   272,    75,   271,     0,   179,    78,
   271,     0,   272,    75,   179,    78,   271,     0,   113,     0,
   273,   162,   161,   356,     0,   273,   162,   380,     0,   273,
   162,     1,     0,     0,   275,   274,   163,     0,   118,   220,
   123,     0,   118,     1,   123,     0,     0,   277,   276,     0,
   277,     1,     0,     0,    16,   179,    74,   279,   312,   285,
   125,     0,    16,   179,    74,   125,     0,     0,    16,    74,
   280,   312,   285,   125,     0,    16,    74,   125,     0,    16,
   179,     0,    16,   343,     0,    48,   338,     0,     0,     0,
     0,   293,    74,   281,   299,   125,   263,   282,   277,   283,
   275,     0,   293,     0,     0,    75,     0,     0,    75,     0,
    39,     0,   286,     9,     0,   286,    10,     0,   286,    11,
     0,   286,    39,     0,   286,   264,     0,   286,   179,     0,
   286,   181,     0,   287,    74,     0,   287,    78,     0,   286,
   336,   179,     0,   286,   345,   336,   179,     0,   286,   345,
   179,     0,   286,   194,     0,   286,   336,   194,     0,   287,
     0,     0,   288,   291,   294,     0,   289,   294,     0,   286,
    74,     0,   292,     0,   290,     0,     0,    78,   410,     0,
    78,   410,   295,     0,   296,     0,   295,    75,   410,   296,
     0,   297,     0,   298,   410,   297,     0,   338,     0,   324,
     0,    32,   109,   202,   124,     0,    32,   109,   242,   124,
     0,    40,   410,     0,     9,   410,     0,   298,    40,   410,
     0,   298,     9,   410,     0,     0,   301,     0,   299,   300,
   301,     0,   299,   300,     0,    62,   109,     6,   124,     0,
    62,   109,     6,   124,    76,     0,    40,    78,     0,   302,
     0,   301,   302,     0,   303,    76,     0,   303,   125,     0,
   172,    78,     0,   172,   111,     0,   172,    27,     0,   172,
    74,     0,    76,     0,   134,   302,     0,   150,   302,     0,
   150,   243,    76,     0,   243,   304,     0,   246,   305,     0,
   328,   254,   263,   270,     0,   165,   254,   263,   270,     0,
    78,   220,     0,     1,     0,   246,   171,   254,   263,   270,
     0,   171,   254,   263,   270,     0,   143,     0,     0,   306,
     0,   304,    75,   307,     0,     0,   309,     0,   305,    75,
   311,     0,   308,     0,   309,     0,   310,     0,   311,     0,
   322,   254,   263,   270,     0,     4,    78,   220,   263,     0,
   328,   254,   263,   270,     0,   165,   254,   263,   270,     0,
     3,    78,   220,   263,     0,    78,   220,   263,     0,   322,
   254,   263,   270,     0,     4,    78,   220,   263,     0,   328,
   254,   263,   270,     0,     3,    78,   220,   263,     0,    78,
   220,   263,     0,   313,     0,   312,    75,   313,     0,   179,
     0,   179,    80,   220,     0,   390,   346,     0,   390,     0,
   109,   215,   242,   214,   110,   202,   127,     0,     0,   315,
    11,     0,    11,     0,   316,    11,     0,     0,   317,   202,
     0,     0,    90,   420,    91,     0,   317,   109,   212,   124,
     0,   317,   109,   400,   124,     0,   317,     7,    50,     0,
   317,    50,     0,   317,   109,     1,   124,     0,   322,     0,
   264,   322,     0,    96,   316,   321,     0,    86,   316,   321,
     0,    96,   321,     0,    86,   321,     0,   344,   315,   321,
     0,   323,     0,   323,   320,   315,   412,     0,   323,   110,
   318,   127,     0,   323,   110,   127,     0,   109,   321,   124,
     0,   336,   335,     0,   335,     0,     7,     0,   335,     0,
   345,   335,     0,   324,     0,   326,     0,   345,   326,     0,
   336,   335,     0,   328,     0,   264,   328,     0,    96,   316,
   327,     0,    86,   316,   327,     0,    96,   327,     0,    86,
   327,     0,   344,   315,   327,     0,   229,     0,    96,   316,
   327,     0,    86,   316,   327,     0,    96,   329,     0,    86,
   329,     0,   344,   315,   327,     0,   330,     0,   229,   320,
   315,   412,     0,   109,   329,   124,     0,   229,   110,   318,
   127,     0,   229,   110,   127,     0,   332,     0,   336,   228,
     0,   336,   225,     0,   336,   224,     0,   336,   221,     0,
   336,   224,     0,   332,     0,   345,   332,     0,   249,   109,
   212,   124,     0,   249,   109,   226,   124,     0,   249,   241,
     0,     4,     0,     5,     0,   193,     0,   337,     0,   336,
   337,     0,   336,    51,   342,    57,     0,     4,    57,     0,
     5,    57,     0,    73,    57,     0,   193,    57,     0,   339,
     0,   345,   339,     0,   340,   179,     0,   340,   193,     0,
   340,   342,     0,   340,    51,   342,     0,   341,     0,   340,
   341,     0,   340,   342,    57,     0,   340,    51,   342,    57,
     0,     4,    57,     0,     5,    57,     0,   193,    57,     0,
    72,    57,     0,     3,    57,     0,    73,    57,     0,   179,
    90,   198,   197,     0,   345,   335,     0,   326,     0,   345,
   326,     0,   336,    96,     0,   345,   336,    96,     0,    57,
     0,    96,   315,   346,     0,    96,   315,     0,    86,   315,
   346,     0,    86,   315,     0,   344,   315,     0,   344,   315,
   346,     0,   347,     0,   110,   202,   127,     0,   347,   110,
   318,   127,     0,   349,     0,   264,   349,     0,    96,   316,
   348,     0,    96,   348,     0,    96,   316,     0,    96,     0,
    86,   316,   348,     0,    86,   348,     0,    86,   316,     0,
    86,     0,   344,   315,     0,   344,   315,   348,     0,   350,
     0,   109,   348,   124,     0,   106,     0,   350,   109,   400,
   124,   315,   412,     0,   350,    50,   315,   412,     0,   350,
   110,   318,   127,     0,   350,   110,   127,     0,   109,   401,
   124,   315,   412,     0,   218,   315,   412,     0,   241,   315,
   412,     0,   110,   318,   127,     0,   110,   127,     0,   364,
     0,   352,     0,   351,   364,     0,   351,   352,     0,     1,
    76,     0,     0,   354,     0,   355,     0,   354,   355,     0,
    35,   269,    76,     0,   357,     0,     1,   357,     0,     0,
    74,   358,   208,     0,     0,     0,    17,   360,   204,   361,
   362,     0,   357,     0,     0,   363,   365,     0,   357,     0,
   365,     0,   239,     0,   202,    76,     0,     0,   359,    18,
   366,   362,     0,   359,     0,     0,     0,    19,   367,   204,
   368,   209,     0,     0,     0,    20,   369,   362,    19,   370,
   203,    76,     0,     0,     0,     0,     0,    21,   371,   109,
   393,   372,   205,    76,   373,   395,   124,   374,   209,     0,
     0,     0,    22,   375,   109,   206,   124,   376,   362,     0,
     0,    23,   220,    78,   377,   364,     0,     0,    23,   220,
    14,   220,    78,   378,   364,     0,     0,    24,    78,   379,
   364,     0,    25,    76,     0,    26,    76,     0,    27,    76,
     0,    27,   202,    76,     0,   135,   394,   109,   235,   124,
    76,     0,   135,   394,   109,   235,    78,   396,   124,    76,
     0,   135,   394,   109,   235,    78,   396,    78,   396,   124,
    76,     0,   135,   394,   109,   235,    78,   396,    78,   396,
    78,   399,   124,    76,     0,    28,    96,   202,    76,     0,
    28,   179,    76,     0,   392,   364,     0,   392,   125,     0,
    76,     0,   383,     0,   145,     0,   144,     0,   141,     0,
     0,     0,   111,   381,   161,   357,   382,   386,     0,     0,
     0,   111,   384,   357,   385,   386,     0,   387,     0,   386,
   387,     0,     0,     0,   112,   388,   391,   389,   357,     0,
   247,     0,   316,     0,   109,    14,   124,     0,   109,   409,
   124,     0,     3,    78,     0,    72,    78,     0,     4,    78,
     0,     5,    78,     0,   395,    76,     0,   239,     0,    74,
   208,     0,     0,    11,     0,     0,   202,     0,     1,     0,
     0,   397,     0,   398,     0,   397,    75,   398,     0,    13,
   109,   202,   124,     0,    13,     0,   399,    75,    13,     0,
     0,   401,     0,   242,     0,   405,     0,   406,    14,     0,
   405,    14,     0,   242,    14,     0,    14,     0,   405,    78,
     0,   242,    78,     0,     0,    80,   403,   404,     0,   117,
     0,   271,     0,   407,     0,   409,   402,     0,   406,   408,
     0,   406,   411,     0,   406,   411,    80,   271,     0,   405,
    75,     0,   242,    75,     0,   244,   240,     0,   247,   240,
     0,   249,   240,     0,   244,   349,     0,   244,     0,   246,
   328,     0,   409,     0,   409,   402,     0,   407,     0,   242,
     0,     0,     0,   328,     0,     0,    77,   109,   414,   124,
     0,    77,    50,     0,   242,     0,   413,     0,   414,    75,
   413,     0,     0,    96,   315,   415,     0,    86,   315,   415,
     0,   344,   315,   415,     0,    44,     0,   416,    96,     0,
   416,    97,     0,   416,    98,     0,   416,    94,     0,   416,
    95,     0,   416,    86,     0,   416,    84,     0,   416,    85,
     0,   416,   104,     0,   416,    75,     0,   416,    89,     0,
   416,    90,     0,   416,    91,     0,   416,    88,     0,   416,
    79,     0,   416,    80,     0,   416,    92,     0,   416,    93,
     0,   416,   102,     0,   416,   103,     0,   416,    83,     0,
   416,    82,     0,   416,   126,     0,   416,    81,    78,     0,
   416,    87,     0,   416,   107,     0,   416,    99,     0,   416,
    50,     0,   416,   110,   127,     0,   416,    42,     0,   416,
    41,     0,   416,    42,   110,   127,     0,   416,    41,   110,
   127,     0,   416,   390,   415,     0,   416,     1,     0,     0,
   425,     0,   421,     0,   422,     0,   423,     0,   435,     0,
   444,     0,    60,     0,   179,     0,   420,    75,   179,     0,
    68,   420,    76,     0,    67,   420,    76,     0,    69,   179,
   179,    76,     0,   179,    78,     0,    72,     0,     0,     0,
    58,   179,   319,    74,   426,   438,   125,   427,   451,    60,
     0,     0,    58,   179,   319,   428,   451,    60,     0,     0,
     0,    58,   424,   179,   319,    74,   429,   438,   125,   430,
   451,    60,     0,     0,    58,   424,   179,   319,   431,   451,
    60,     0,     0,    59,   179,    74,   432,   438,   125,     0,
    59,   179,     0,     0,    59,   424,   179,    74,   433,   438,
   125,     0,    59,   424,   179,     0,     0,    58,   179,   109,
   179,   124,   319,   434,   451,    60,     0,    59,   179,   109,
   179,   124,     0,     0,    67,   179,    90,   420,    91,   436,
   451,    60,     0,     0,    67,   179,   437,   451,    60,     0,
   438,   439,   440,     0,   440,     0,    64,     0,    65,     0,
    66,     0,     0,   440,   441,    76,     0,   440,    76,     0,
   247,   418,   442,     0,   316,   418,   442,     0,     1,     0,
     0,   443,     0,   442,    75,   443,     0,   240,     0,   240,
    78,   220,     0,    78,   220,     0,     0,     0,     0,    94,
   445,   465,   446,   466,   447,   356,     0,     0,     0,     0,
    95,   448,   465,   449,   466,   450,   356,     0,     0,     0,
   452,   453,     0,   456,     0,   160,     0,   453,   456,     0,
     0,   453,   454,   160,     0,    76,     0,     1,     0,     0,
     0,    94,   457,   465,   458,   455,     0,     0,     0,    95,
   459,   465,   460,   455,     0,   109,     0,   124,     0,   461,
   242,   462,     0,     9,     0,   464,     9,     0,   461,   242,
   462,   474,     0,   461,   464,   242,   462,   474,     0,   474,
     0,   461,   464,   242,   462,   475,   472,     0,   461,   242,
   462,   475,   472,     0,   475,   472,     0,     0,    76,   467,
     0,     0,   468,     0,   469,     0,   352,     0,   468,   469,
     0,   469,   352,     0,   243,   418,   470,    76,     0,   243,
    76,     0,   246,    76,     0,   471,     0,   470,    75,   471,
     0,   328,     0,   349,     0,     0,    75,    14,     0,     0,
    75,   473,   400,     0,   476,     0,   478,     0,   475,   478,
     0,     3,     0,     4,     0,    72,     0,     6,     0,     7,
     0,   477,     0,    16,     0,    39,     0,    17,     0,    18,
     0,    19,     0,    20,     0,    21,     0,    22,     0,    23,
     0,    24,     0,    25,     0,    26,     0,    27,     0,    28,
     0,    29,     0,    15,     0,    30,     0,    31,     0,    42,
     0,    41,     0,    44,     0,    49,     0,    47,     0,    51,
     0,    40,     0,     9,     0,    10,     0,   476,    78,   463,
   179,     0,   476,    78,   179,     0,    78,   463,   179,     0,
    78,   179,     0,   476,     0,   480,     0,   482,     0,   480,
   482,     0,   212,     0,   476,    78,   481,     0,    78,   481,
     0,   212,     0,     6,     0,   325,     0,     0,   110,   485,
   483,     0,   127,     0,   484,   479,   486,     0,   476,     0,
   489,     0,   490,     0,   489,   490,     0,   476,    78,     0,
    78,     0,    57,     0,    61,   109,   488,   124,     0,    67,
   109,   179,   124,     0,    63,   109,   242,   124,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   397,   399,   407,   410,   411,   415,   417,   420,   425,   429,
   435,   439,   442,   446,   449,   451,   452,   454,   457,   459,
   462,   465,   467,   469,   471,   473,   474,   476,   477,   481,
   484,   493,   496,   498,   502,   505,   507,   511,   514,   526,
   533,   541,   543,   544,   546,   550,   553,   559,   562,   564,
   569,   572,   576,   579,   582,   585,   589,   594,   604,   606,
   608,   610,   612,   625,   628,   632,   635,   637,   639,   642,
   645,   649,   651,   653,   655,   660,   662,   664,   666,   668,
   669,   676,   677,   678,   681,   684,   688,   690,   691,   694,
   696,   699,   702,   708,   712,   715,   717,   721,   723,   725,
   729,   731,   733,   737,   739,   741,   747,   751,   754,   757,
   760,   765,   768,   770,   772,   778,   790,   793,   798,   803,
   806,   811,   816,   825,   828,   830,   834,   847,   867,   870,
   872,   873,   876,   883,   889,   891,   893,   895,   897,   900,
   905,   907,   908,   909,   910,   911,   912,   915,   917,   918,
   921,   923,   924,   927,   932,   932,   936,   936,   939,   939,
   942,   942,   946,   946,   951,   951,   954,   954,   957,   959,
   962,   969,   973,   976,   979,   981,   985,   991,  1000,  1002,
  1010,  1013,  1016,  1019,  1023,  1026,  1028,  1031,  1034,  1036,
  1038,  1040,  1044,  1047,  1050,  1055,  1059,  1064,  1068,  1071,
  1072,  1076,  1095,  1102,  1105,  1107,  1108,  1109,  1112,  1116,
  1117,  1121,  1125,  1128,  1130,  1134,  1137,  1140,  1144,  1147,
  1149,  1151,  1153,  1156,  1160,  1162,  1165,  1167,  1170,  1172,
  1177,  1180,  1183,  1186,  1198,  1203,  1207,  1211,  1216,  1218,
  1222,  1226,  1230,  1232,  1241,  1245,  1248,  1251,  1256,  1259,
  1261,  1269,  1282,  1287,  1293,  1295,  1297,  1299,  1312,  1315,
  1317,  1319,  1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,
  1337,  1339,  1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,
  1359,  1361,  1363,  1380,  1383,  1385,  1386,  1387,  1388,  1389,
  1392,  1404,  1407,  1411,  1414,  1416,  1421,  1423,  1424,  1427,
  1429,  1437,  1439,  1441,  1443,  1447,  1450,  1454,  1458,  1459,
  1460,  1464,  1472,  1473,  1474,  1488,  1490,  1493,  1495,  1506,
  1511,  1513,  1515,  1517,  1519,  1521,  1523,  1526,  1528,  1545,
  1546,  1550,  1554,  1558,  1562,  1564,  1568,  1570,  1572,  1580,
  1582,  1584,  1586,  1590,  1592,  1594,  1596,  1601,  1603,  1605,
  1607,  1610,  1612,  1615,  1617,  1619,  1621,  1623,  1667,  1670,
  1674,  1677,  1681,  1684,  1689,  1691,  1693,  1695,  1701,  1703,
  1707,  1720,  1723,  1730,  1737,  1742,  1744,  1749,  1751,  1758,
  1760,  1764,  1768,  1774,  1778,  1781,  1785,  1788,  1798,  1800,
  1803,  1807,  1810,  1813,  1816,  1819,  1825,  1831,  1833,  1838,
  1840,  1858,  1861,  1863,  1866,  1872,  1874,  1884,  1888,  1891,
  1894,  1899,  1902,  1910,  1912,  1915,  1918,  1921,  1923,  1926,
  1929,  1944,  1963,  1966,  1968,  1971,  1973,  1977,  1979,  1983,
  1985,  1989,  1992,  1996,  2002,  2003,  2015,  2022,  2025,  2031,
  2035,  2040,  2046,  2047,  2055,  2058,  2062,  2065,  2069,  2074,
  2077,  2081,  2084,  2086,  2088,  2090,  2097,  2099,  2100,  2101,
  2105,  2108,  2112,  2115,  2121,  2123,  2126,  2129,  2132,  2138,
  2141,  2148,  2150,  2154,  2160,  2168,  2175,  2179,  2181,  2186,
  2189,  2192,  2194,  2196,  2200,  2205,  2212,  2216,  2220,  2227,
  2231,  2234,  2237,  2243,  2245,  2257,  2261,  2266,  2288,  2290,
  2293,  2295,  2300,  2302,  2304,  2306,  2308,  2310,  2314,  2322,
  2325,  2327,  2331,  2338,  2344,  2350,  2356,  2366,  2372,  2376,
  2383,  2411,  2421,  2427,  2430,  2433,  2435,  2439,  2441,  2445,
  2450,  2456,  2459,  2460,  2481,  2504,  2506,  2510,  2521,  2535,
  2536,  2537,  2538,  2541,  2543,  2547,  2562,  2567,  2573,  2575,
  2580,  2582,  2584,  2586,  2588,  2590,  2593,  2603,  2610,  2635,
  2641,  2644,  2647,  2649,  2660,  2665,  2668,  2673,  2676,  2683,
  2693,  2696,  2703,  2713,  2715,  2718,  2720,  2723,  2730,  2738,
  2745,  2751,  2757,  2765,  2769,  2774,  2778,  2781,  2790,  2792,
  2796,  2799,  2804,  2808,  2814,  2825,  2828,  2832,  2836,  2844,
  2850,  2862,  2867,  2874,  2877,  2879,  2881,  2883,  2889,  2891,
  2900,  2903,  2905,  2907,  2909,  2913,  2916,  2919,  2921,  2923,
  2925,  2929,  2930,  2933,  2944,  2954,  2956,  2957,  2961,  2969,
  2971,  2979,  2982,  2984,  2986,  2988,  2992,  2995,  2998,  3000,
  3002,  3004,  3008,  3011,  3014,  3016,  3018,  3020,  3022,  3029,
  3033,  3038,  3042,  3047,  3049,  3053,  3056,  3058,  3061,  3063,
  3064,  3067,  3069,  3071,  3077,  3088,  3094,  3100,  3114,  3116,
  3120,  3134,  3136,  3138,  3142,  3148,  3161,  3163,  3167,  3180,
  3186,  3188,  3189,  3190,  3198,  3203,  3212,  3213,  3217,  3220,
  3226,  3232,  3235,  3237,  3239,  3241,  3245,  3249,  3253,  3256,
  3260,  3262,  3271,  3274,  3276,  3278,  3280,  3282,  3284,  3286,
  3288,  3292,  3296,  3300,  3304,  3305,  3307,  3309,  3311,  3313,
  3315,  3317,  3319,  3321,  3329,  3331,  3332,  3333,  3336,  3342,
  3344,  3349,  3351,  3354,  3368,  3371,  3374,  3379,  3382,  3389,
  3391,  3394,  3396,  3398,  3401,  3404,  3407,  3410,  3412,  3415,
  3419,  3421,  3427,  3429,  3430,  3432,  3437,  3439,  3441,  3443,
  3445,  3448,  3449,  3451,  3454,  3455,  3458,  3458,  3461,  3461,
  3464,  3464,  3466,  3468,  3470,  3472,  3478,  3484,  3487,  3490,
  3496,  3498,  3500,  3504,  3506,  3507,  3508,  3510,  3513,  3520,
  3526,  3532,  3536,  3538,  3541,  3543,  3546,  3550,  3552,  3555,
  3557,  3560,  3577,  3583,  3591,  3593,  3595,  3599,  3602,  3603,
  3611,  3615,  3619,  3622,  3623,  3629,  3632,  3635,  3637,  3641,
  3646,  3649,  3659,  3664,  3665,  3672,  3675,  3678,  3680,  3683,
  3685,  3695,  3709,  3713,  3716,  3718,  3722,  3726,  3729,  3732,
  3734,  3738,  3740,  3747,  3754,  3757,  3761,  3765,  3769,  3775,
  3779,  3784,  3786,  3789,  3794,  3800,  3811,  3814,  3816,  3820,
  3825,  3827,  3834,  3837,  3839,  3841,  3847,  3852,  3855,  3857,
  3859,  3861,  3863,  3865,  3867,  3869,  3871,  3873,  3875,  3877,
  3879,  3881,  3883,  3885,  3887,  3889,  3891,  3893,  3895,  3897,
  3899,  3901,  3903,  3905,  3907,  3909,  3911,  3913,  3915,  3917,
  3920,  3922,  3933,  3938,  3940,  3941,  3942,  3943,  3944,  3945,
  3959,  3962,  3966,  3972,  3978,  3985,  3988,  3991,  3998,  4003,
  4009,  4016,  4022,  4028,  4033,  4039,  4046,  4052,  4058,  4064,
  4072,  4078,  4084,  4092,  4099,  4105,  4114,  4121,  4126,  4132,
  4139,  4141,  4144,  4146,  4147,  4150,  4155,  4156,  4163,  4169,
  4174,  4178,  4181,  4182,  4185,  4191,  4196,  4203,  4217,  4224,
  4228,  4237,  4250,  4257,  4261,  4275,  4277,  4278,  4280,  4282,
  4283,  4284,  4285,  4287,  4289,  4292,  4303,  4309,  4309,  4319,
  4324,  4326,  4329,  4332,  4336,  4339,  4343,  4349,  4355,  4360,
  4366,  4371,  4381,  4383,  4389,  4391,  4394,  4396,  4397,  4398,
  4401,  4404,  4406,  4412,  4415,  4422,  4425,  4429,  4434,  4439,
  4444,  4451,  4455,  4457,  4463,  4465,  4466,  4467,  4468,  4469,
  4472,  4474,  4488,  4489,  4490,  4491,  4492,  4493,  4494,  4495,
  4496,  4497,  4498,  4499,  4500,  4501,  4502,  4503,  4504,  4505,
  4506,  4507,  4508,  4509,  4510,  4520,  4521,  4524,  4530,  4535,
  4540,  4546,  4548,  4551,  4553,  4560,  4572,  4577,  4583,  4588,
  4592,  4598,  4602,  4605,  4610,  4631,  4633,  4636,  4638,  4644,
  4649,  4653,  4660,  4667,  4676
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
"TYPENAME","SELFNAME","CLASSNAME","OBJECTNAME","PFUNCNAME","SCSPEC","TYPESPEC",
"CV_QUALIFIER","CONSTANT","STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE",
"DO","FOR","SWITCH","CASE","DEFAULT","BREAK","CONTINUE","RETURN_KEYWORD","GOTO",
"ASM_KEYWORD","TYPEOF","ALIGNOF","SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART",
"IMAGPART","VEC_STEP","AGGR","VISSPEC","DELETE","NEW","THIS","OPERATOR","CXX_TRUE",
"CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD","USING","LEFT_RIGHT","TEMPLATE","TYPEID",
"DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST","CONST_CAST","SCOPE","INTERFACE",
"IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE","PUBLIC","PRIVATE","PROTECTED",
"PROTOCOL","CLASS","ALIAS","OBJC_STRING","EMPTY","PTYPENAME","NSNAME","'{'",
"','","';'","THROW","':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'",
"MIN_MAX","EQCOMPARE","ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'",
"'*'","'/'","'%'","POINTSAT_STAR","DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS",
"'~'","HYPERUNARY","PAREN_STAR_PAREN","POINTSAT","'.'","'('","'['","TRY","CATCH",
"PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING","ALL","PRE_PARSED_CLASS_DECL",
"DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN","PTYPENAME_DEFN",
"END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'","program","extdefs",
"@1","extdefs_opt",".hush_warning",".warning_ok","extension","asm_keyword","lang_extdef",
"@2","extdef","@3","@4","namespace_alias","@5","using_decl","namespace_using_decl",
"using_directive","@6","namespace_qualifier","any_id","extern_lang_string","template_header",
"@7","template_parm_list","maybe_identifier","template_type_parm","template_template_parm",
"template_parm","template_def","template_extdef","template_datadef","datadef",
"ctor_initializer_opt","maybe_return_init","eat_saved_input","fndef","constructor_declarator",
"@8","@9","@10","@11","fn.def1","component_constructor_declarator","fn.def2",
"return_id","return_init","base_init",".set_base_init","member_init_list","member_init",
"identifier","notype_identifier","identifier_defn","explicit_instantiation",
"@12","@13","@14","@15","@16","@17","@18","@19","begin_explicit_instantiation",
"end_explicit_instantiation","template_type","apparent_template_type","self_template_type",
".finish_template_type","template_close_bracket","template_arg_list_opt","template_arg_list",
"template_arg","unop","expr","paren_expr_or_null","paren_cond_or_null","xcond",
"condition","@20","compstmtend","already_scoped_stmt","@21","nontrivial_exprlist",
"nonnull_exprlist","unary_expr",".finish_new_placement",".begin_new_placement",
"new_placement","new_initializer","regcast_or_absdcl","cast_expr","expr_no_commas",
"notype_unqualified_id","do_id","template_id","object_template_id","unqualified_id",
"expr_or_declarator_intern","expr_or_declarator","notype_template_declarator",
"direct_notype_declarator","primary","@22","new","delete","boolean.literal",
"string","objc_string","nodecls","object","decl","declarator","fcast_or_absdcl",
"type_id","typed_declspecs","typed_declspecs1","reserved_declspecs","declmods",
"typed_typespecs","reserved_typespecquals","typespec","typespecqual_reserved",
"initdecls","notype_initdecls","nomods_initdecls","maybeasm","initdcl","@23",
"initdcl0_innards","@24","initdcl0","notype_initdcl0","nomods_initdcl0","@25",
"maybe_attribute","attributes","attribute","attribute_list","attrib","any_word",
"identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline",
"pending_inlines","defarg_again","pending_defargs","structsp","@26","@27","@28",
"@29","@30","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype",
"named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype",
"named_class_head","@31","unnamed_class_head","class_head","maybe_base_class_list",
"base_class_list","base_class","base_class.1","base_class_access_list","opt.component_decl_list",
"access_specifier","component_decl_list","component_decl","component_decl_1",
"components","notype_components","component_declarator0","component_declarator",
"after_type_component_declarator0","notype_component_declarator0","after_type_component_declarator",
"notype_component_declarator","enumlist","enumerator","new_type_id","cv_qualifiers",
"nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr","protocolrefs","maybe_parmlist",
"after_type_declarator_intern","after_type_declarator","direct_after_type_declarator",
"nonnested_type","complete_type_name","nested_type","notype_declarator_intern",
"notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
"qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
"nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
"typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl_intern",
"absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls",
"label_decls","label_decl","compstmt_or_error","compstmt","@32","simple_if",
"@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt","@36","@37",
"@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48","@49","function_try_block",
"@50","@51","try_block","@52","@53","handler_seq","handler","@54","@55","type_specifier_seq",
"handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr",
"asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist",
"complex_parmlist","defarg","@56","defarg1","parms","parms_comma","named_parm",
"full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
"ansi_raise_identifiers","conversion_declarator","operator","operator_name",
".setspecs","objcdef","identifier_list","classdecl","protocoldecl","aliasdecl",
"identifier_colon","classdef","@57","@58","@59","@60","@61","@62","@63","@64",
"@65","protocoldef","@66","@67","ivar_decl_list","visibility_spec","ivar_decls",
"ivar_decl","ivars","ivar_declarator","methoddef","@68","@69","@70","@71","@72",
"@73","methodprotolist","@74","methodprotolist2","@75","semi_or_error","methodproto",
"@76","@77","@78","@79","start_method_typename","end_method_typename","methodtype",
"objc_return_type_mods","methoddecl","optarglist","myxdecls","mydecls","mydecl",
"myparms","myparm","optparmlist","@80","unaryselector","keywordselector","selector",
"reservedword","keyworddecl","messageargs","keywordarglist","keywordexpr","keywordarg",
"receiver","objc_openbracket.expr","@81","objc_closebracket","objcmessageexpr",
"selectorarg","keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr",
"objcencodeexpr", NULL
};
#endif

static const short yyr1[] = {     0,
   128,   128,   130,   129,   129,   131,   131,   132,   133,   134,
   135,   137,   136,   138,   138,   138,   138,   138,   138,   138,
   138,   139,   138,   140,   138,   138,   138,   138,   138,   142,
   141,   143,   143,   143,   144,   144,   144,   146,   145,   147,
   147,   148,   148,   148,   148,   149,   149,   151,   150,   150,
   152,   152,   153,   153,   154,   154,   155,   156,   156,   156,
   156,   156,   156,   157,   157,   158,   158,   158,   158,   158,
   158,   159,   159,   159,   159,   160,   160,   160,   160,   160,
   160,   160,   160,   160,   161,   161,   162,   162,   162,   163,
   163,   164,   164,   164,   166,   165,   165,   167,   165,   165,
   168,   165,   165,   169,   165,   165,   170,   170,   170,   170,
   170,   171,   171,   171,   171,   172,   172,   172,   172,   172,
   172,   172,   173,   174,   174,   174,   175,   176,   177,   177,
   177,   177,   178,   178,   178,   178,   178,   178,   178,   178,
   179,   179,   179,   179,   179,   179,   179,   180,   180,   180,
   181,   181,   181,   183,   182,   184,   182,   185,   182,   186,
   182,   187,   182,   188,   182,   189,   182,   190,   182,   191,
   192,   193,   193,   193,   194,   194,   195,   196,   197,   197,
   198,   198,   199,   199,   200,   200,   200,   201,   201,   201,
   201,   201,   202,   202,   203,   203,   204,   204,   205,   205,
   205,   207,   206,   206,   208,   208,   208,   208,   210,   209,
   209,   211,   211,   211,   211,   212,   212,   213,   213,   213,
   213,   213,   213,   213,   213,   213,   213,   213,   213,   213,
   213,   213,   213,   213,   213,   213,   213,   213,   213,   213,
   213,   213,   213,   213,   214,   215,   216,   216,   217,   217,
   217,   217,   218,   218,   219,   219,   219,   219,   220,   220,
   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
   220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
   220,   220,   220,   221,   221,   221,   221,   221,   221,   221,
   222,   223,   223,   224,   224,   224,   225,   225,   225,   226,
   226,   227,   227,   227,   227,   228,   228,   229,   229,   229,
   229,   230,   230,   230,   230,   230,   230,   230,   231,   230,
   230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
   230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
   230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
   230,   230,   230,   230,   230,   230,   230,   230,   232,   232,
   233,   233,   234,   234,   235,   235,   235,   235,   236,   236,
   237,   238,   238,   239,   239,   239,   239,   239,   239,   240,
   240,   241,   241,   242,   242,   242,   242,   242,   243,   243,
   244,   244,   244,   244,   244,   244,   245,   245,   245,   245,
   245,   246,   246,   246,   246,   246,   246,   247,   247,   247,
   247,   248,   248,   249,   249,   249,   249,   249,   249,   249,
   249,   249,   250,   250,   250,   251,   251,   252,   252,   253,
   253,   254,   254,   256,   255,   255,   258,   257,   257,   259,
   260,   262,   261,   261,   263,   263,   264,   264,   265,   266,
   266,   267,   267,   267,   267,   267,   268,   268,   268,   268,
   269,   269,   270,   270,   271,   271,   271,   271,   271,   272,
   272,   272,   272,   273,   274,   274,   274,   275,   275,   276,
   276,   277,   277,   277,   279,   278,   278,   280,   278,   278,
   278,   278,   278,   281,   282,   283,   278,   278,   284,   284,
   285,   285,   286,   286,   286,   286,   286,   286,   287,   288,
   288,   288,   289,   289,   289,   289,   289,   290,   291,   290,
   290,   292,   293,   293,   294,   294,   294,   295,   295,   296,
   296,   297,   297,   297,   297,   298,   298,   298,   298,   299,
   299,   299,   299,   299,   299,   300,   301,   301,   302,   302,
   302,   302,   302,   302,   302,   302,   302,   302,   303,   303,
   303,   303,   303,   303,   303,   303,   303,   304,   304,   304,
   305,   305,   305,   306,   306,   307,   307,   308,   308,   309,
   309,   309,   309,   310,   310,   311,   311,   311,   312,   312,
   313,   313,   314,   314,   314,   315,   315,   316,   316,   317,
   318,   319,   319,   320,   320,   320,   320,   320,   321,   321,
   322,   322,   322,   322,   322,   322,   323,   323,   323,   323,
   323,   323,   323,   324,   324,   325,   325,   325,   326,   327,
   327,   328,   328,   328,   328,   328,   328,   329,   329,   329,
   329,   329,   329,   330,   330,   330,   330,   330,   330,   331,
   331,   332,   332,   333,   333,   334,   334,   334,   335,   335,
   335,   336,   336,   336,   337,   337,   337,   337,   338,   338,
   339,   339,   339,   339,   340,   340,   340,   340,   341,   341,
   341,   341,   341,   341,   342,   343,   343,   343,   344,   344,
   345,   346,   346,   346,   346,   346,   346,   346,   347,   347,
   348,   348,   349,   349,   349,   349,   349,   349,   349,   349,
   349,   349,   349,   350,   350,   350,   350,   350,   350,   350,
   350,   350,   350,   350,   351,   351,   351,   351,   352,   353,
   353,   354,   354,   355,   356,   356,   358,   357,   360,   361,
   359,   362,   363,   362,   364,   364,   365,   365,   366,   365,
   365,   367,   368,   365,   369,   370,   365,   371,   372,   373,
   374,   365,   375,   376,   365,   377,   365,   378,   365,   379,
   365,   365,   365,   365,   365,   365,   365,   365,   365,   365,
   365,   365,   365,   365,   365,   365,   365,   365,   381,   382,
   380,   384,   385,   383,   386,   386,   388,   389,   387,   390,
   390,   391,   391,   392,   392,   392,   392,   393,   393,   393,
   394,   394,   395,   395,   395,   396,   396,   397,   397,   398,
   399,   399,   400,   400,   400,   401,   401,   401,   401,   401,
   401,   401,   403,   402,   404,   404,   405,   405,   405,   405,
   405,   406,   406,   407,   407,   407,   407,   407,   407,   408,
   408,   409,   409,   410,   411,   411,   412,   412,   412,   413,
   414,   414,   415,   415,   415,   415,   416,   417,   417,   417,
   417,   417,   417,   417,   417,   417,   417,   417,   417,   417,
   417,   417,   417,   417,   417,   417,   417,   417,   417,   417,
   417,   417,   417,   417,   417,   417,   417,   417,   417,   417,
   417,   417,   418,   419,   419,   419,   419,   419,   419,   419,
   420,   420,   421,   422,   423,   424,   424,   426,   427,   425,
   428,   425,   429,   430,   425,   431,   425,   432,   425,   425,
   433,   425,   425,   434,   425,   425,   436,   435,   437,   435,
   438,   438,   439,   439,   439,   440,   440,   440,   441,   441,
   441,   442,   442,   442,   443,   443,   443,   445,   446,   447,
   444,   448,   449,   450,   444,   451,   452,   451,   453,   453,
   453,   454,   453,   455,   455,   457,   458,   456,   459,   460,
   456,   461,   462,   463,   464,   464,   465,   465,   465,   465,
   465,   465,   466,   466,   467,   467,   468,   468,   468,   468,
   469,   469,   469,   470,   470,   471,   471,   472,   472,   473,
   472,   474,   475,   475,   476,   476,   476,   476,   476,   476,
   477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
   477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
   477,   477,   477,   477,   477,   477,   477,   478,   478,   478,
   478,   479,   479,   480,   480,   481,   482,   482,   483,   483,
   483,   485,   484,   486,   487,   488,   488,   489,   489,   490,
   490,   490,   491,   492,   493
};

static const short yyr2[] = {     0,
     0,     1,     0,     2,     2,     1,     0,     0,     0,     1,
     1,     0,     2,     2,     1,     1,     1,     5,     4,     5,
     4,     0,     6,     0,     5,     1,     2,     1,     2,     0,
     6,     2,     3,     3,     3,     3,     4,     0,     5,     2,
     3,     1,     1,     2,     2,     1,     2,     0,     5,     3,
     1,     3,     1,     0,     2,     2,     3,     1,     3,     1,
     3,     1,     3,     2,     2,     2,     1,     1,     5,     4,
     2,     2,     3,     3,     2,     2,     3,     3,     2,     2,
     2,     2,     2,     1,     1,     1,     0,     1,     2,     0,
     1,     4,     3,     3,     0,     8,     5,     0,     9,     6,
     0,     8,     5,     0,     9,     6,     2,     2,     1,     2,
     1,     6,     4,     6,     4,     2,     1,     2,     2,     1,
     2,     1,     2,     2,     4,     2,     3,     0,     0,     1,
     3,     2,     3,     1,     4,     2,     4,     2,     4,     2,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     0,     6,     0,     6,     0,     5,     0,
     5,     0,     7,     0,     7,     0,     6,     0,     6,     0,
     0,     5,     5,     1,     1,     5,     5,     0,     1,     1,
     0,     1,     1,     3,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     3,     1,     3,     0,     1,
     1,     0,     7,     1,     1,     3,     4,     3,     0,     3,
     1,     3,     3,     3,     3,     1,     1,     1,     2,     2,
     2,     2,     2,     2,     2,     4,     2,     4,     2,     4,
     2,     3,     3,     4,     5,     6,     6,     7,     2,     4,
     5,     4,     2,     2,     1,     0,     4,     4,     3,     1,
     3,     2,     3,     4,     1,     4,     2,     5,     1,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
     3,     1,     2,     3,     3,     1,     1,     1,     1,     1,
     0,     5,     5,     5,     5,     5,     1,     1,     1,     1,
     2,     1,     2,     2,     3,     4,     4,     1,     1,     1,
     3,     1,     1,     1,     1,     3,     3,     3,     0,     4,
     4,     2,     4,     2,     4,     2,     2,     1,     4,     1,
     7,     7,     7,     7,     4,     4,     2,     2,     2,     1,
     4,     2,     2,     5,     3,     2,     2,     5,     3,     5,
     3,     4,     6,     1,     1,     1,     1,     2,     1,     2,
     1,     2,     1,     1,     1,     2,     1,     2,     1,     2,
     0,     2,     2,     3,     3,     3,     2,     2,     2,     1,
     1,     1,     2,     2,     2,     2,     1,     1,     1,     1,
     2,     2,     3,     3,     3,     4,     1,     2,     2,     2,
     1,     1,     1,     2,     2,     2,     1,     1,     2,     2,
     3,     1,     2,     1,     1,     2,     2,     1,     4,     4,
     4,     4,     1,     1,     1,     1,     3,     1,     3,     1,
     3,     0,     4,     0,     6,     3,     0,     4,     1,     3,
     3,     0,     4,     3,     0,     1,     1,     2,     6,     1,
     3,     0,     1,     4,     6,     4,     1,     1,     1,     1,
     1,     3,     0,     2,     1,     2,     3,     4,     1,     1,
     3,     3,     5,     1,     4,     3,     3,     0,     3,     3,
     3,     0,     2,     2,     0,     7,     4,     0,     6,     3,
     2,     2,     2,     0,     0,     0,    10,     1,     0,     1,
     0,     1,     1,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     3,     4,     3,     2,     3,     1,     0,     3,
     2,     2,     1,     1,     0,     2,     3,     1,     4,     1,
     3,     1,     1,     4,     4,     2,     2,     3,     3,     0,
     1,     3,     2,     4,     5,     2,     1,     2,     2,     2,
     2,     2,     2,     2,     1,     2,     2,     3,     2,     2,
     4,     4,     2,     1,     5,     4,     1,     0,     1,     3,
     0,     1,     3,     1,     1,     1,     1,     4,     4,     4,
     4,     4,     3,     4,     4,     4,     4,     3,     1,     3,
     1,     3,     2,     1,     7,     0,     2,     1,     2,     0,
     2,     0,     3,     4,     4,     3,     2,     4,     1,     2,
     3,     3,     2,     2,     3,     1,     4,     4,     3,     3,
     2,     1,     1,     1,     2,     1,     1,     2,     2,     1,
     2,     3,     3,     2,     2,     3,     1,     3,     3,     2,
     2,     3,     1,     4,     3,     4,     3,     1,     2,     2,
     2,     2,     2,     1,     2,     4,     4,     2,     1,     1,
     1,     1,     2,     4,     2,     2,     2,     2,     1,     2,
     2,     2,     2,     3,     1,     2,     3,     4,     2,     2,
     2,     2,     2,     2,     4,     2,     1,     2,     2,     3,
     1,     3,     2,     3,     2,     2,     3,     1,     3,     4,
     1,     2,     3,     2,     2,     1,     3,     2,     2,     1,
     2,     3,     1,     3,     1,     6,     4,     4,     3,     5,
     3,     3,     3,     2,     1,     1,     2,     2,     2,     0,
     1,     1,     2,     3,     1,     2,     0,     3,     0,     0,
     5,     1,     0,     2,     1,     1,     1,     2,     0,     4,
     1,     0,     0,     5,     0,     0,     7,     0,     0,     0,
     0,    12,     0,     0,     7,     0,     5,     0,     7,     0,
     4,     2,     2,     2,     3,     6,     8,    10,    12,     4,
     3,     2,     2,     1,     1,     1,     1,     1,     0,     0,
     6,     0,     0,     5,     1,     2,     0,     0,     5,     1,
     1,     3,     3,     2,     2,     2,     2,     2,     1,     2,
     0,     1,     0,     1,     1,     0,     1,     1,     3,     4,
     1,     3,     0,     1,     1,     1,     2,     2,     2,     1,
     2,     2,     0,     3,     1,     1,     1,     2,     2,     2,
     4,     2,     2,     2,     2,     2,     2,     1,     2,     1,
     2,     1,     1,     0,     0,     1,     0,     4,     2,     1,
     1,     3,     0,     3,     3,     3,     1,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     3,     2,     2,     2,     2,     3,     2,     2,     4,     4,
     3,     2,     0,     1,     1,     1,     1,     1,     1,     1,
     1,     3,     3,     3,     4,     2,     1,     0,     0,    10,
     0,     6,     0,     0,    11,     0,     7,     0,     6,     2,
     0,     7,     3,     0,     9,     5,     0,     8,     0,     5,
     3,     1,     1,     1,     1,     0,     3,     2,     3,     3,
     1,     0,     1,     3,     1,     3,     2,     0,     0,     0,
     7,     0,     0,     0,     7,     0,     0,     2,     1,     1,
     2,     0,     3,     1,     1,     0,     0,     5,     0,     0,
     5,     1,     1,     3,     1,     2,     4,     5,     1,     6,
     5,     2,     0,     2,     0,     1,     1,     1,     2,     2,
     4,     2,     2,     1,     3,     1,     1,     0,     2,     0,
     3,     1,     1,     2,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     4,     3,     3,
     2,     1,     1,     1,     2,     1,     3,     2,     1,     1,
     1,     0,     3,     1,     3,     1,     1,     1,     2,     2,
     1,     1,     4,     4,     4
};

static const short yydefact[] = {     3,
    12,    12,     5,     0,     4,     0,   288,   659,   660,   602,
   602,     0,   403,   415,   598,     0,    11,     0,     0,     0,
    10,   503,   867,     0,     0,     0,   170,   691,     0,     0,
   910,     0,     0,     0,   289,   290,    84,     0,   958,   962,
     0,   854,     0,    46,     0,     0,    13,    26,     0,    28,
     8,     0,    17,    15,    90,   111,    87,     0,   661,   174,
   309,   286,   310,   637,     0,   390,     0,   389,   408,     0,
   430,   407,   447,   414,     0,   518,   519,   525,   524,   523,
   498,   402,   626,   418,   627,   109,   308,   648,   624,     0,
   662,   596,     0,     0,   287,    16,   905,   906,   907,   904,
   908,   909,    82,    83,   181,   665,   181,   666,   181,     0,
   416,   417,   291,   170,   141,   142,   143,   147,   146,   144,
   145,   488,   491,     0,   687,     0,   492,     0,     0,     0,
     0,   142,   143,   144,   145,    24,     0,     0,     0,     0,
     0,     0,     0,   493,   669,     0,   675,     0,     0,     0,
    38,     0,     0,    32,     0,     0,    48,     0,   144,   602,
     0,   930,     0,   939,     0,   911,     0,     0,   181,   667,
     0,     0,     0,   635,   630,     0,     0,     0,     0,     0,
   634,     0,     0,     0,     0,   309,     0,   300,   600,     0,
     0,   308,   596,    29,     0,    27,     3,    47,     0,    65,
   403,     0,     0,     8,    68,    64,    67,    90,     0,     0,
     0,   414,    91,    14,     0,   445,     0,     0,   463,    88,
    80,   668,   600,     0,   596,   623,    81,     0,     0,     0,
   107,     0,   426,   380,   616,   381,   622,     0,   596,   405,
   404,    79,   110,   391,     0,   428,   406,   108,   397,   423,
   424,   392,   410,   412,   401,   425,     0,    76,   448,   504,
   505,   506,   507,   522,   152,   151,   153,   509,   510,   175,
   516,   508,     0,     0,   511,   512,   525,   854,   521,   494,
   599,   409,     0,   442,   660,     0,   689,   174,   652,   653,
   649,   629,   663,     0,   628,   625,     0,   902,   898,   897,
   895,   877,   882,   883,     0,   889,   888,   874,   875,   873,
   892,   881,   878,   879,   880,   884,   885,   871,   872,   868,
   869,   870,   894,   886,   887,   876,   893,     0,   890,   800,
   408,   801,   863,   291,   288,   598,   313,   365,     0,     0,
     0,     0,     0,   361,   359,   328,   363,   364,     0,     0,
     0,     0,     0,     0,     0,     0,   369,   289,   290,   282,
     0,     0,   189,   188,     0,   190,   191,     0,     0,  1062,
   192,     0,     0,   182,   183,     0,   255,     0,   259,   187,
   312,   218,     0,     0,   314,   315,   357,     0,   185,   387,
   408,   388,   654,   340,   330,     0,     0,     0,   354,   355,
   356,   367,     0,     0,     0,   181,     0,   490,     0,   485,
     0,   688,   686,     0,   193,   194,     0,     0,     0,   452,
     3,    22,    30,   683,   679,   680,   682,   684,   681,   141,
   142,   143,     0,   144,   145,   671,   672,   676,   673,   670,
     0,   298,   299,   297,   651,   650,    34,    33,    50,     0,
   160,     0,     0,   408,   158,   916,     0,   921,   602,   928,
     0,   933,     0,   967,     0,   914,   913,     0,     0,     0,
   631,   633,     0,  1015,  1016,  1018,  1019,  1046,  1047,  1036,
  1021,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1031,
  1032,  1033,  1034,  1035,  1037,  1038,  1022,  1045,  1040,  1039,
  1041,  1043,  1042,  1044,  1017,     0,   982,     0,   959,   989,
  1008,  1012,  1020,  1013,   963,   632,   142,   143,   284,   285,
   304,     0,   641,   303,     0,   640,     0,   311,   289,   290,
     0,     0,     0,   302,   301,   645,     0,     0,    12,     0,
   170,     9,     9,    71,     0,    66,     0,     0,    72,    75,
     0,   444,   446,   123,    94,   128,   789,     0,    86,    85,
    93,   126,     0,     0,   124,    89,   647,     0,     0,     0,
   607,     0,   857,     0,     0,   614,   609,     0,   613,     0,
     0,     0,     0,     0,   596,   445,     0,    78,   600,   596,
   621,     0,   394,   395,     0,    77,   445,   399,   398,   400,
   393,   413,   432,   431,   181,   513,   517,   515,     0,   520,
   526,     0,   411,   445,   596,    95,     0,     0,     0,     0,
   596,   101,   597,   636,   660,   690,   174,     0,     0,   891,
   896,   410,   596,   596,     0,   596,   901,   181,     0,     0,
     0,   225,     0,     0,   227,   243,   244,     0,   229,     0,
     0,     0,     0,     0,     0,     0,     0,   283,   224,   221,
   220,   222,     0,     0,     0,     0,     0,   312,     0,     0,
     0,     0,   219,   179,   180,   306,     0,   223,     0,     0,
   257,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   322,     0,   324,   326,   327,   373,   372,
     0,     0,   246,   246,     0,   231,   594,     0,   239,     0,
   366,   368,   370,   358,     0,     0,   854,   343,   346,   347,
     0,     0,   382,   710,   706,   715,     0,   600,   596,   596,
   596,   384,   713,     0,   658,   386,     0,     0,   385,   342,
     0,   337,   360,   338,   362,   655,     0,   339,     0,  1052,
     0,  1053,  1054,   178,   178,   603,     0,   168,     0,   408,
   166,   591,   501,   589,   487,     0,     0,   419,     0,     0,
   420,   421,   422,   458,   459,   460,   457,     0,   450,   453,
     0,     3,     0,   674,   181,   677,     0,    42,    43,     0,
    54,     0,     0,    58,    62,    51,   853,   848,     0,   387,
   408,    54,   388,   852,    60,   171,   156,   154,   171,     0,
   918,   967,   926,   946,     0,   931,     0,     0,     0,   912,
   915,   178,   307,  1051,     0,     0,   985,     0,   408,     0,
   993,  1010,   992,     0,  1014,     0,   993,   639,   638,   311,
     0,   642,     0,    19,    21,    90,     9,     9,    74,    73,
     0,   129,   371,     0,   737,    92,   735,   469,     0,   465,
   464,   217,     0,   216,   601,   646,   606,     0,   830,     0,
   825,   408,     0,   824,   826,   855,   837,     0,     0,   644,
   610,   612,   611,     0,     0,     0,     0,     0,     0,   596,
   620,     0,   440,   439,   427,   619,     0,   857,   615,   396,
   429,   441,   445,     0,   514,   659,   660,   854,     0,   854,
   661,   527,   528,   530,   854,   533,   532,     0,   564,   660,
     0,     0,   555,     0,     0,   567,     0,   122,   117,     0,
   174,   568,   571,     0,     0,   547,     0,   120,   443,   857,
   823,   181,   181,   664,   181,   857,   823,   596,    98,   596,
   104,   900,   899,   863,   863,   863,     0,     0,     0,     0,
   658,     0,     0,     0,     0,     0,     0,     0,     0,  1072,
  1071,  1066,     0,  1067,  1068,     0,     0,   318,     0,   316,
   317,     0,   253,  1060,  1059,  1061,  1063,   184,   288,   659,
   660,   602,   602,   289,   290,     0,   470,   499,     0,     0,
   281,   280,   815,   814,     0,   278,   277,   275,   276,   274,
   273,   272,   269,   270,   271,   267,   268,   262,   263,   264,
   265,   266,   260,   261,     0,     0,     0,     0,     0,   246,
   233,   250,     0,     0,   232,   596,   596,     0,   596,   593,
   698,     0,     0,  1064,     0,     0,     0,     0,   345,     0,
   349,     0,   351,     0,     0,   709,   708,   701,   705,   704,
   853,   407,     0,     0,   724,     0,     0,   857,   383,   857,
   711,   596,   823,   600,   710,   706,     0,   600,     0,   596,
     0,   407,     0,     0,     0,     0,  1056,  1058,     0,  1065,
     0,  1055,   173,   177,   292,   171,   164,   162,   171,     0,
   502,     0,   501,   215,   214,   213,   212,   452,     0,     0,
    25,     0,     0,   678,     0,    39,    45,    44,    56,    53,
    54,     0,    49,     0,     0,   710,   706,     0,   844,   596,
   847,   849,     0,   845,   846,    55,   509,     0,   161,   171,
   171,   159,   602,   946,     0,   923,   967,     0,     0,   936,
   946,   937,   940,   976,   979,   970,   432,     0,     0,   432,
   972,   969,   172,     0,  1050,   983,     0,   986,     0,     0,
   960,  1009,   823,  1049,     0,   964,   305,    18,    20,    70,
    90,   433,   148,   134,   149,   150,     0,   127,   130,     0,
     0,     0,     0,   736,   730,   466,     0,   125,   608,   604,
   829,   843,   832,     0,   605,   828,   842,   831,   827,   856,
   839,   850,   840,   833,   838,   859,     0,     0,     0,     0,
   437,   618,   617,   436,   178,   537,     0,   536,   854,   854,
   854,     0,   596,   823,     0,   563,   556,   568,   557,   445,
   445,   553,   554,   551,   552,   596,   823,   288,   659,     0,
   432,   118,   559,   569,   574,   575,   432,   432,     0,     0,
   432,   116,   560,   572,   432,     0,   445,     0,   548,   549,
   550,   445,    97,     0,     0,     0,     0,   103,     0,   857,
   823,   857,   823,   865,   864,   866,   293,   329,   226,   228,
   230,   335,   336,     0,     0,     0,     0,  1070,  1073,     0,
  1069,  1075,  1074,   317,   320,     0,     0,     0,   256,   254,
     0,   321,   323,   325,     0,     0,     0,     0,   234,   252,
     0,     0,   695,   693,     0,   696,   600,   240,     0,   242,
     0,   181,   352,     0,     0,     0,   702,   707,   703,   714,
   596,   723,   721,   722,   712,   857,     0,   719,     0,     0,
   656,   657,   710,   706,     0,     0,   341,  1057,   169,   171,
   171,   167,   592,   590,   489,     0,   451,   449,   288,     0,
    23,    31,   685,    57,    52,    59,    63,     0,   709,   705,
   602,   710,   706,     0,   407,   624,     0,   596,   711,    61,
   157,   155,   934,     0,   922,   946,     0,   943,   944,   945,
   929,   946,   951,   948,   903,   903,     0,     0,   967,     0,
     0,   432,   432,     0,   971,   984,   987,  1008,     0,     0,
   903,     0,   998,   994,   996,     0,     0,  1011,  1048,     0,
    69,     0,   132,     0,   136,     0,   138,     0,   140,     0,
   790,     0,   205,   738,     0,   731,   732,     0,   467,   710,
   706,     0,   312,     0,   654,   851,     0,     0,   860,   861,
     0,     0,     0,     0,     0,     0,   434,   176,     0,     0,
     0,   539,   538,   531,   857,     0,     0,   558,   463,   463,
   857,     0,     0,     0,   445,   445,     0,   445,   445,     0,
   445,     0,   546,   495,     0,   463,   596,   295,   294,   296,
   596,   100,     0,   106,     0,     0,     0,     0,     0,   472,
     0,   471,   258,   279,   248,   247,   245,   235,     0,   249,
   251,   694,   692,   699,   697,     0,   241,     0,     0,   344,
   348,   350,   857,   717,   596,   718,   165,   163,   486,     0,
   454,   456,     0,   709,   705,   710,   706,     0,   596,   629,
   711,   967,   919,     0,   927,     0,   952,   952,   947,   932,
     0,   977,   980,   973,   991,   988,  1008,   729,  1002,     0,
  1003,   999,  1000,   961,   965,   133,   131,     0,     0,     0,
     0,   461,     0,     0,   288,   659,   660,   739,   752,   755,
   758,   763,     0,     0,     0,     0,     0,     0,     0,     0,
   289,   784,   792,     0,   811,   788,   787,   786,     0,   747,
     0,     0,   408,     0,   726,   745,   751,   725,   746,   785,
     0,   733,   468,     0,   657,   841,   835,   836,   834,     0,
   858,   438,     0,   534,   535,   529,   113,   596,   544,   562,
   566,   115,   596,   445,   445,   583,   463,   288,   659,     0,
   570,   576,   577,   432,   432,   463,   463,     0,   463,   573,
   482,   561,   857,   857,   596,   596,     0,     0,     0,     0,
     0,     0,   236,   237,   700,   353,   294,   720,   857,     0,
   709,   705,     0,   711,     0,   967,   924,     0,   955,   949,
   953,   950,   938,     0,     0,   990,   710,   706,     0,  1006,
   596,  1007,     0,  1004,   135,   137,   139,   797,   791,   795,
     0,   734,   208,   804,   806,   807,     0,     0,   743,     0,
     0,     0,   770,   772,   773,   774,     0,     0,     0,     0,
     0,     0,     0,   805,     0,   379,   812,     0,   748,   377,
     0,   378,     0,     0,     0,     0,   206,   728,   727,   749,
   783,   782,   317,   862,   435,   857,   545,   857,   582,   579,
   581,     0,     0,   445,   445,   445,   578,   580,   565,     0,
    96,   102,   857,   857,   331,   332,   333,   334,   473,     0,
   238,   716,   455,   710,   706,     0,     0,   935,     0,   967,
   957,     0,     0,   975,   974,   978,   981,     0,   709,   705,
   710,   706,     0,   596,   711,     0,  1001,     0,   796,   462,
   197,     0,   740,   753,   742,     0,     0,     0,     0,     0,
   766,     0,   775,     0,   781,    40,   145,    35,   145,     0,
    36,   793,     0,   375,   376,     0,     0,     0,   374,   207,
   743,   112,   114,   445,   445,   588,   463,   463,   484,     0,
   483,   478,    99,   105,   595,   407,   920,     0,   956,   954,
   709,   705,   711,  1005,     0,   798,   204,     0,   408,     0,
   743,     0,   756,   744,   730,   809,   759,     0,     0,     0,
     0,   771,   780,    41,    37,     0,     0,   750,   587,   585,
   584,   586,     0,     0,   497,   925,     0,     0,     0,   198,
   432,   741,   209,   754,   211,     0,   810,     0,   808,   764,
   768,   767,   794,   816,     0,   481,   480,   474,    87,    90,
   802,   803,   799,   445,   730,   195,     0,     0,   201,     0,
   200,   743,     0,     0,     0,   817,   818,   776,     0,   479,
     0,   210,     0,   757,   760,   765,   769,     0,   816,     0,
     0,   477,     0,   476,   202,   196,     0,     0,     0,   777,
   819,   475,     0,     0,   820,     0,     0,   203,   761,   821,
     0,   778,     0,     0,     0,   762,   822,   779,     0,     0,
     0
};

static const short yydefgoto[] = {  1989,
   539,     2,   540,   199,   855,   372,   215,     3,     4,    47,
   792,   421,  1616,   793,   936,  1617,  1618,   441,  1742,   797,
    51,   937,   450,   803,  1129,   804,   805,   806,    53,   206,
   207,    54,   558,   218,   214,    55,    56,   951,  1291,   957,
  1293,    57,   939,   940,   219,   220,   559,   862,  1198,  1199,
   166,  1200,   269,    58,  1151,  1150,   819,   816,  1371,  1370,
  1109,  1106,   158,  1149,    59,   271,    60,  1103,   676,   373,
   374,   375,   376,   667,  1938,  1823,  1940,  1878,  1973,  1454,
  1914,  1935,   415,  1089,   377,  1528,  1038,   715,  1045,   378,
   379,   416,   381,   406,    62,   290,   798,   521,   188,    63,
    64,   382,   670,   383,   384,   385,   386,   387,   560,   388,
  1620,   603,   740,   389,  1621,    66,   252,   809,   390,   253,
   643,   254,   232,   245,    70,   216,   604,  1643,   903,  1476,
   233,   246,    71,   614,   904,    72,    73,   788,   789,   790,
  1593,   565,  1007,  1008,  1929,  1930,  1905,  1861,  1780,    74,
   776,   409,   612,  1671,  1862,  1318,  1112,    75,    76,    77,
    78,    79,   277,    80,    81,   279,   922,   923,   924,   925,
   944,  1278,   945,   946,   947,  1263,  1273,  1264,  1661,  1265,
  1266,  1662,  1663,   773,   774,   716,  1078,   392,   568,  1076,
   111,   225,   584,   577,   235,    83,    84,    85,   174,   175,
   191,    87,   154,   393,   394,   395,    89,   396,    91,   927,
   145,   146,   147,   619,   127,    92,   397,  1050,  1051,  1073,
  1068,   743,  1624,  1433,  1455,  1456,  1457,   866,  1626,  1205,
  1627,  1727,  1881,  1826,  1827,  1628,  1629,  1851,  1728,  1882,
  1729,  1916,  1730,  1918,  1967,  1983,  1731,  1942,  1891,  1943,
  1832,   561,   863,  1591,  1630,  1745,  1896,  1719,  1720,  1818,
  1909,  1880,  1876,  1631,  1887,  1748,  1015,  1945,  1946,  1947,
  1981,   883,  1074,  1225,  1468,  1639,   885,   886,   887,  1221,
   888,   182,  1223,   890,  1470,  1471,   637,    94,    95,  1567,
    96,   165,    97,    98,    99,   161,   100,  1154,  1696,   822,
  1406,  1800,  1157,   824,  1161,  1562,   101,  1419,   464,  1158,
  1412,  1159,  1417,  1700,  1701,   102,   178,   841,  1437,   179,
   847,  1440,   828,   829,  1171,  1424,  1806,  1172,  1420,  1704,
  1421,  1705,   508,  1177,   836,   840,   509,  1181,  1434,  1435,
  1436,  1713,  1714,   843,  1183,   510,   511,   512,   513,   514,
   761,   762,  1098,   763,   997,   398,   672,  1055,   399,   983,
   984,   985,   400,   401,   402
};

static const short yypact[] = {   129,
   337,-32768,-32768,  7200,-32768,   219,   285,   260,   335,   330,
   330,   360,   424,-32768,-32768,  1861,-32768,   419,   429,   479,
-32768,-32768,-32768,  1676,   814,  1765,   540,-32768,  1225,  1225,
-32768,  1371,  1371,  1371,   553,   664,-32768,  6142,-32768,-32768,
  6142,-32768,  2534,-32768,  7200,   529,-32768,-32768,   590,-32768,
    46,  2657,-32768,-32768,   547,   628,   665,   652,   673,-32768,
-32768,-32768,-32768,   125,  3271,-32768,  8256,-32768,  1172,   189,
-32768,   712,-32768,-32768,  2452,   515,-32768,   672,-32768,-32768,
   702,  4104,-32768,-32768,-32768,  1284,-32768,-32768,-32768,  2672,
-32768,-32768,   731,  5019,   689,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768, 14357,-32768, 14357,-32768, 14357,  1371,
-32768,-32768,-32768,-32768,-32768,   260,   335,-32768,-32768,   553,
   715,   668,   723,   673,-32768,  1066,-32768,   731, 14465, 14465,
   711,-32768,-32768,-32768,-32768,-32768,   532,   765,   718,   738,
   749,   767,   776,-32768,-32768,  1462,-32768,  1022,   260,   335,
-32768,   553,   715,-32768,   514,   888,   761,  8813,-32768,  1043,
  1371,   522,  1371,   823,   739,-32768,   772,  1371, 14357,-32768,
 14357,  6359,  8057,-32768,-32768,  2803,   873,  8498,  8498,  8057,
-32768,  2108,  8131,  8131,  2534,   733,   735,-32768,   780,   453,
   793,   796,-32768,-32768,   123,-32768,   803,-32768,  2944,-32768,
-32768,   540,  4197,   840,-32768,-32768,-32768,   547,  8754,  9033,
   805,   861,-32768,-32768,   863,   712,   979,   167,   336,   921,
-32768,-32768,   860,   135,-32768,-32768,-32768,  2744,  2744,  4190,
  1284,   887,-32768,-32768,   317,-32768,-32768,  3298,-32768,-32768,
-32768,-32768,-32768,  1172,  1017,-32768,   712,  1284,-32768,-32768,
-32768,  2583,  1172,-32768,   712,-32768,  8754,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   914,-32768,   673,
-32768,   712,  1525,  2213,-32768,-32768,   672,-32768,-32768,-32768,
-32768,  1535,   731,-32768,   464,  2131,-32768,   196,-32768,-32768,
-32768,-32768,-32768,  8908,-32768,-32768,   674,-32768,   905,   928,
-32768,-32768,-32768,-32768,   932,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   894,-32768,-32768,
  1535,  4104,   922,-32768,-32768,   925,-32768,-32768, 15221, 15329,
 15437, 15437, 15545,-32768,-32768,-32768,-32768,-32768,   934,   951,
   961,   963,   972,   973,   988,  1007,-32768,  1099,   715, 14573,
  1371, 15437,-32768,-32768, 15437,-32768,-32768, 15437, 11288,-32768,
-32768, 15437,   401,  1005,-32768, 15437,-32768, 14681,-32768,  9643,
   206,  1863,  6998, 15653,-32768,   137,  1029,  2237,-32768,  1210,
  2116,  9380,-32768,   217,-32768,   709,  2461, 10618,-32768,-32768,
-32768,-32768,   401,   401,   485, 14357,  8813,-32768,  1371,   993,
  1371,-32768,-32768,  1025,  1054, 15981,  1032,  1037,  1040,  3607,
   803,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   765,
   718,   738,  1371,   749,   767,  1076,   776,-32768,  1084,-32768,
   754,   260,   335,-32768,-32768,-32768,-32768,-32768,-32768, 15814,
-32768,  8754, 15905,  1771,-32768,-32768,  1371,  1097,   330,-32768,
  1371,  1101,  1371,  1120,  1371,-32768,-32768,  1115,   401,   880,
-32768,-32768,   783,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,   357,-32768,  9610,-32768,-32768,
 10154,  1126,-32768,-32768,-32768,-32768,  1117,  1119,-32768,-32768,
-32768,  8057,-32768,-32768,  8057,-32768,  1088,-32768,-32768,-32768,
   453,   453,   453,-32768,-32768,-32768,  8908,   109,  1109,  1131,
-32768,-32768,-32768,-32768,  8813,-32768,  1122,  1142,-32768,-32768,
   123,-32768,   712,-32768,-32768,-32768,-32768,   163,-32768,-32768,
-32768,-32768, 12007, 14573,-32768,-32768,-32768, 14573,  1143,  1192,
-32768, 10343,   127,  7627,  3212,-32768,-32768,  3212,-32768,  4730,
  4730,  4190,  9211,  1123,-32768,   712,  8754,-32768,  1146,-32768,
-32768,  5523,  2583,  1172,  8754,-32768,   712,-32768,-32768,   712,
  2583,-32768,  1257,-32768, 14357,   914,-32768,-32768,  1525,-32768,
  1879,  3726,  1535,   712,-32768,-32768,  1198,  1205,  1235,  1212,
-32768,-32768,-32768,-32768,   579,-32768,   284,  1178,  1182,-32768,
-32768,  1535,-32768,-32768,  1051,-32768,-32768, 14357, 14573,   925,
 11288,-32768,   297, 11288,-32768,-32768,-32768, 11288,-32768, 14465,
 10966, 10966, 10966, 10966, 10455, 10966,  1371, 16026,-32768,-32768,
-32768,-32768,  1199, 14789, 14789, 11288,  1203,   107,  1207,  1263,
  1217, 14897,-32768,-32768,-32768,-32768, 14357,-32768, 12119, 11288,
-32768, 14573, 14573, 12231, 14573, 14573, 14573, 14573, 14573, 14573,
 14573, 14573, 14573, 14573, 14573, 14573, 14573, 14573, 14573, 14573,
 14573, 14573, 14573,-32768, 14573,-32768,-32768,-32768,-32768,-32768,
 14573, 14573,-32768,-32768,  7773,   363,   670, 12911,-32768,  4004,
-32768,-32768,-32768,-32768,  1294,  2131,  1346,   381,   465,   542,
  2050,   873,-32768,  7936,  7936,-32768,  9155,  1238,  1253,  1316,
-32768,-32768,   204, 13493,  1491,-32768,  1165,   731,-32768,-32768,
 14573,-32768,-32768,-32768,-32768,-32768,   924,   689, 14573,  1292,
  1252, 10618,-32768,-32768,-32768,-32768,   401,-32768,  8754,  2024,
-32768,  1304,  1319,-32768,-32768,  1371,  1076,-32768, 12579, 12691,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,   246,-32768,  1282,
  1270,   803,   754,  1341, 14357,-32768,  1323,-32768,-32768,   888,
  1663,  1361,   648,  1324,  1325,-32768,-32768,  3997,  9033,  3997,
  6630,  2452,  6340,-32768,  1329,-32768,-32768,-32768,-32768,  1286,
-32768,  1120,  1337,-32768,  1290,-32768,   990,  1376,  4362,-32768,
-32768,-32768,-32768,-32768, 10966,  1371,-32768,  1315,  9584,  9884,
  1365,  1432,-32768,  1126,-32768,   357,  1365,-32768,-32768,  1326,
  1328,-32768,  1372,-32768,-32768,   547,-32768,-32768,-32768,-32768,
   115,   610,  1375,  1263,-32768,-32768,-32768,-32768, 11400, 16026,
-32768,  1054,  1333, 15981,-32768,-32768,-32768,  1336,-32768,  1348,
   470,  7317,  1349,-32768,   182,  5805,  1381,  1397,   571,-32768,
-32768,-32768,-32768,  3212,  3212,  6099,  6099,  9211,  1165,-32768,
-32768,  5523,-32768,  1400,-32768,-32768,  1354,   127,-32768,  2583,
-32768,-32768,   712,  1401,-32768,   718,   738,-32768,  1385,-32768,
   776,  1420,-32768,-32768,   428,-32768,-32768,  1480,-32768,   659,
  1028,  1394,-32768, 14573,  6911,-32768,  6911,   247,   247,   344,
   591,  5075,  8549,    90,  5596,-32768,   311,   247,-32768,   127,
 15822, 14357, 14357,-32768, 14357,   127, 15822,-32768,-32768,-32768,
-32768,-32768,-32768,  1402,  1402,  1402,   401,  1380,  1395, 13925,
  1316,  1398,  1409,  1413,  1415,  1430,  1434,  1447,  1456,-32768,
-32768,  1471,  1431, 10455,-32768,  1433,  1435,-32768,  1437,-32768,
-32768,  1439,-32768,   292,-32768,   635,-32768,-32768,  1478,   327,
   900,    59,   192,   445,   434,  1487,-32768,  1492,   364,  1448,
 16026, 16026,-32768,-32768,  1497,  6240,  4786,  7399,  9708,  5567,
  5619,  3804,  2553,  2553,  2553,  2947,  2947,  1490,  1490,  1127,
  1127,  1127,-32768,-32768,  1453,  1455,  1454, 14573, 14465,-32768,
   363,-32768, 12007, 14573,-32768,-32768,-32768, 14573,-32768,-32768,
  1470, 15437,  1465,-32768, 15437,  1489,  1512,  1555,-32768, 14573,
-32768, 14573,-32768, 14573,  1414,  8383,-32768,-32768,  8383,-32768,
   102,  1414,  1483,  1484,-32768,  1495, 10966,   127,-32768,   127,
  9648,-32768, 15822,  1498, 13709, 13709,  6501,  1238,  1500, 14681,
  1502,  7934,  3422,  2461,  1173,  1504,-32768,-32768, 14573,-32768,
  1292,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 14573,
  1371,  1486,  1319,-32768, 16026,-32768, 16026,  3607,  1505, 15005,
-32768,  1494,  1540,-32768,   401,-32768,-32768,-32768,-32768,-32768,
  3412, 15814,-32768, 10966, 14357,  3403,  3403,  4490,-32768,-32768,
-32768,-32768,  3298,-32768,-32768,-32768,  1164, 14573,-32768,-32768,
-32768,-32768,   330,-32768,  1573,-32768,  1120,   538,  2329,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  1257,  3271,  8256,  1257,
   812,-32768,-32768,  1315,-32768,-32768, 15765,-32768,  1315, 10682,
-32768,-32768, 15822,-32768,  1371,-32768,-32768,-32768,-32768,-32768,
   547,-32768,   765,-32768,   749,   767, 14573,  1559,-32768,   691,
   698,   734,  1263,-32768,   117,-32768,   154,-32768,-32768,-32768,
-32768,-32768,-32768, 13601,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,  1397,  1557,-32768,-32768,-32768, 10966,   498,   498,  1041,
-32768,-32768,-32768,  1560,-32768,-32768, 14465,-32768,-32768,-32768,
-32768,  1276,-32768, 15822,  1640, 16026,-32768,  3118,-32768,   712,
   712,-32768,-32768,-32768,-32768,-32768, 15822,   505,   952, 14573,
  1257,-32768,  1572,-32768,-32768,-32768,   548,   856,  2672,   873,
   911,   247,  1576,-32768,  1048,  1575,   712,  5721,-32768,-32768,
-32768,   712,-32768,  1533,   401,   401,   401,-32768,  1534,   127,
 15822,   127, 15822,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,  1551,  1554,  1566,  1567,-32768,-32768,  1471,
-32768,-32768,-32768,  1326,-32768, 12007, 11526,  1539,-32768,-32768,
 14573,-32768,-32768,-32768,  1552,  1562,  1564, 10966,-32768,-32768,
  1568,   138,   410,   410,  1570,   410,-32768,-32768, 15437,-32768,
  1668, 14357,-32768,  1569,  1574,  1579,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,   127,  1582,-32768,  1580,  7934,
-32768,-32768,  3475,  3475,  5280,  3597,-32768,-32768,-32768,-32768,
-32768,-32768, 16026,-32768,-32768,  1587,-32768,-32768,   387,  1589,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  4695,  3833,  3833,
   330,  4884,  4884,  4490,  6649,   159,  3298,-32768,  5165,  9643,
-32768,-32768,-32768,   559,-32768,-32768,  1631,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,  4104,  1618,   630,  1120,  8498,
  8498,  1257,  1257,  2944,-32768,-32768,-32768, 10154, 15765,  1623,
  1638, 10059,-32768,-32768, 15941, 10727,   163,-32768,-32768,   163,
-32768,  1594,-32768,   610,-32768, 14573,-32768, 14573,-32768, 14573,
-32768,  1371,-32768,-32768, 11064,  1684,-32768, 11652,-32768, 13817,
 13817,  7089,   175,  1600,   198,-32768, 12007, 11778,-32768,-32768,
   457,  3080,  3080,  1599,  1599, 12007,-32768,-32768,  1601,  1602,
  1879,-32768,-32768,-32768,   127,  1605,  1608,-32768,  1643,  1643,
   127,  1615, 14573, 14573, 10725,   712,  7515,   712,   712,  1267,
   712,  9230,-32768,-32768,  5878,  1643,-32768,-32768,  1683,-32768,
-32768,-32768,  1617,-32768,  1620, 14573, 14573, 14573, 14573,-32768,
  1664,-32768,-32768, 16026,-32768,-32768,-32768,   622,  1564,-32768,
-32768,-32768,-32768,-32768,-32768,  1619,-32768,  1706,   401,-32768,
-32768,-32768,   127,-32768,-32768,-32768,-32768,-32768,-32768, 14573,
-32768,-32768,  6649,  3833,  3833,  6186,  6186,  5429,-32768,   201,
  5165,  1120,-32768,   804,-32768,  2857,  8491,  8491,-32768,-32768,
  1700,-32768,-32768,-32768,-32768,-32768, 10154,-32768,-32768,  2953,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1637,  1639,  1641,
  1650,-32768,  1189,   480,  1686,   971,  1030,-32768,-32768,-32768,
-32768,-32768, 14573,  1693,  1697,  1698, 14033,  1100,  1371,   827,
   632,-32768,-32768, 14141,  1764,-32768,-32768,-32768,  1701,-32768,
  8319,  8680,  8887,  6764,-32768,-32768,  1758,-32768,-32768,-32768,
 13036,-32768,-32768,  1654,  1293,-32768,-32768,-32768,-32768, 10966,
-32768,-32768, 12007,-32768,-32768,-32768,-32768,-32768,  1714,-32768,
-32768,-32768,-32768, 10725, 10725,-32768,  1643,   764,  1058, 14573,
-32768,-32768,-32768,  1257,  1257,  1643,  1643,   579,  1643,-32768,
-32768,-32768,   127,   127,-32768,-32768,  1667,  1670,  1671,  1673,
 12007, 14573,-32768,   622,-32768,-32768,-32768,-32768,   127,  1675,
  4245,  4245,  1165,  5249,  1740,  1120,-32768, 14573,  1723,  1728,
-32768,  1728,-32768,   116,   116,-32768,  4069,  4069,  6009,-32768,
-32768,-32768,  1202,-32768,-32768,-32768,-32768,-32768,  1650,-32768,
  1371,-32768,-32768,-32768,-32768,-32768,   740,   740,  1263,  1699,
  1705,  9768,-32768,-32768,-32768,-32768,  1741, 14573,  1744,  1736,
  1775,  2245,  2297,-32768,  1263,-32768,-32768,  1712,-32768,-32768,
  1239,-32768,  1269, 14249,  1278,   491,-32768,-32768,-32768,-32768,
-32768,-32768,   221,-32768,-32768,   127,-32768,   127,-32768,-32768,
-32768, 14573, 14573, 10725,   712,   712,-32768,-32768,-32768, 10829,
-32768,-32768,   127,   127,-32768,-32768,-32768,-32768,-32768,  1716,
-32768,-32768,-32768,  7359,  7359,  9350,  9465,-32768,  1773,  1120,
 16026, 14573,  8491,-32768,-32768,-32768,-32768,  8045,  5479,  5479,
  7498,  7498,  6009,-32768,  7654,  2953,-32768,  1737,-32768,-32768,
-32768, 14465,-32768,-32768,-32768,  1826, 13384, 11176, 14465, 14573,
-32768, 13160,-32768,  1774,-32768,-32768,  1794,-32768,  1775,  2245,
-32768,-32768,   123,-32768,-32768, 15113, 15113, 11895,-32768,-32768,
  1263,-32768,-32768, 10725, 10725,-32768,  1643,  1643,-32768, 12803,
-32768,-32768,-32768,-32768,-32768,  9465,-32768,  1792, 16026,-32768,
  5479,  5479,  7654,-32768, 15892,-32768,-32768,  1730,   460,  8754,
  1263, 13272,-32768,-32768,   117,-32768,-32768,  1779,  1732, 16004,
 13160,-32768,-32768,-32768,-32768,  1650,   106,-32768,-32768,-32768,
-32768,-32768,  1735, 15936,  1746,-32768,  1745,  1748,  1263,-32768,
  1257,-32768,-32768,-32768,-32768,   742,-32768, 12343,-32768,-32768,
-32768,-32768,  1650,  1847,  1785,-32768,-32768,-32768,   665,   547,
-32768,-32768,-32768,   712,   117,-32768, 14573,  1798,-32768,  1803,
-32768,  1263, 13160,  1776,    57,  1817,-32768,-32768,   218,-32768,
  1813,-32768,  1770,-32768,-32768,-32768,-32768, 14573,  1847,  1819,
  1847,-32768,   163,-32768,-32768,-32768, 12455,  1772,   333,-32768,
-32768,-32768, 12007,  1777,-32768,  1886,  1824,-32768,-32768,-32768,
   503,-32768, 13272,  1892,  1832,-32768,-32768,-32768,  1909,  1917,
-32768
};

static const short yypgoto[] = {-32768,
  1920,-32768,  -339,  1717,  -467,     7,    -1,  1925,-32768,  1877,
-32768,-32768,   172,-32768,   273,-32768,   308,-32768,   185,  1136,
    47,     8,-32768,-32768,  -750,-32768,-32768,   798,    55,  1729,
  1386,  -175,  -853,    11,  -203,    19,   -27,-32768,-32768,-32768,
-32768,-32768,   994,-32768,-32768,-32768,-32768,-32768,-32768,   500,
  3896,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  1831,  -773,  7381,  1674,   -70,  -711,  -280,   -58,
  1778,  -619,-32768,   407,-32768,   220,-32768, -1695,-32768, -1576,
   -37,-32768,  1874,  -198,  -304,   426,  -644,-32768,  -976,  9191,
   682,  7170,  6084,  1625,  -360,   -72,   -99,  1517,  -173,   -67,
    29,-32768,-32768,-32768,  -368,-32768,  -194,-32768,-32768,-32768,
 -1528,    27,  -382,  8860,   331,  1808,  -156,    21,   613,  -240,
    -4,  -159,  -196,  -188,    -5,   121,  -432,-32768,  -423,-32768,
-32768,-32768,-32768,-32768,   502,  1900,   896,-32768,   844,-32768,
-32768, -1394,  -314,  1094,-32768,-32768,-32768,-32768,-32768,   -50,
-32768,-32768,-32768,-32768,-32768,-32768,   864,  -417,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,  1703,-32768,   508,   741,-32768,
-32768,-32768,   703,  -860,-32768,-32768,-32768,-32768,-32768,-32768,
  1052,-32768,   482,  1215,   875,  1279,  2916,   249,    51,  -195,
    10,  1761,  1687,   190,-32768,  -556,  1327,    15,   399,    94,
  -157,   927,   -95,  6859,  1614,-32768,  8749,  3052,   -76,   -18,
  -118,-32768,  1859,   -65,-32768,  8213,  4612,  -322,-32768,  3585,
   920,-32768,-32768, -1322,-32768,-32768,   552, -1373,  -526,-32768,
-32768,-32768,-32768, -1741,-32768, -1483, -1709,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,    60,-32768,-32768,-32768,-32768,-32768,   110, -1635,-32768,
-32768,   -51,-32768,-32768,-32768,-32768, -1724,    52,-32768,    49,
-32768,  -764,  -492,   791,-32768,-32768,-32768,-32768,  -442,-32768,
  -435,  -151,-32768,  1068,   375,-32768,   550,-32768,  -241, -1076,
-32768,    35,-32768,-32768,-32768,  1986,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -1048,
-32768,   605,-32768,   451,   222,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  -784,-32768,-32768,-32768,   315,   851,-32768,-32768,
-32768,-32768,  -437,  -779,  1177,-32768,  -163,  1179,-32768,-32768,
   592,-32768,   212, -1339,-32768, -1090, -1075,  -364,-32768,  -493,
-32768,-32768,   930,  1268,-32768,  1652,-32768,  1280,-32768,-32768,
-32768,  1055,-32768,-32768,  -380
};


#define	YYLAST		16126


static const short yytable[] = {    69,
   538,   212,    46,   594,   546,   722,   144,   814,   745,  1203,
    45,    52,   547,   293,   815,   515,   535,   845,   256,   288,
   112,   548,   291,   542,    67,   523,   526,   569,   755,   440,
   125,   867,   812,   760,   642,   645,   754,  1155,   649,   243,
    69,   613,   333,    46,   620,  1152,   211,    69,   403,   293,
   404,    45,    52,  1104,   926,   446,   447,   998,   203,    52,
   448,  1146,   244,  1584,  1329,    67,  1585,   167,   835,  1039,
   208,   189,   210,   681,  1247,   856,  1249,   282,   293,   884,
   439,   791,   445,  1819,  1279,  1746,  1427,   593,  1575,   331,
   632,   231,   599,   602,  1650,  1651,   601,    86,   204,   293,
   391,  1428,   391,  1888,   391,  1404,   205,   295,   291,  1898,
   469,  1672,  1418,  1583,   224,  1211,  1804,  1884,   721,   197,
  1173,   721,   764,   765,   391,   391,   611,   721,    -1,  1276,
   451,  -600,  1625,  1889,  1959,   338,  -147,   623,    86,  1912,
  1759,   570,   412,   992,   405,    86,   844,  1762,   110,   721,
   632,  1452,   212,   454,   905,   758,   704,   722,   236,   198,
   248,   293,   911,   864,   391,  -622,   391,   555,   355,   458,
   291,   355,  1915,   912,  -600,    48,  1212,   355,   453,  1213,
  1960,  -309,   243,  1924,   571,   355,  1284,   733,   832,   833,
   949,  1805,  1289,   256,    69,  1216,   293,   211,    69,   355,
  1956,   256,   256,   889,  -648,   244,   284,  -621,  -622,   203,
    52,   189,   189,   189,  1277,   705,    48,   543,  1962,    67,
   293,   208,  1941,   210,  -309,   993,   627,  -311,  1458,  1925,
  -302,   256,   853,  -600,   223,   231,   865,  1706,  1192,   224,
  -371,  1453,  1974,   572,   556,   621,   970,  -648,   871,   204,
  -621,   455,    82,  1082,   234,   704,  1217,   205,   189,  1218,
   971,  1531,  1771,   257,   258,   471,   750,  -622,  -622,  -146,
  -311,  1777,  1778,  1915,  1779,    17,    49,   557,  1459,  -432,
   256,   110,  -622,  -309,  -309,   224,   173,  1819,   729,   180,
   982,  -371,    86,    82,   103,   556,    86,   295,  -302,  1886,
    82,  1758,   236,   248,   622,  1201,  -648,  -648,  1917,  -621,
  -621,    50,  1083,  1084,   705,   728,   106,    49,  1357,   293,
  1118,  -648,  -432,  -600,  -621,   751,  -432,   282,   557,  -311,
  -311,   717,  1369,   960,    65,  1372,    -2,  1204,  1576,  1568,
   256,  -602,   332,   104,  -305,   799,   733,   767,  1892,   107,
   236,   586,    50,  1577,  1580,   760,   861,  1564,  1952,   115,
   132,   133,   118,   119,   391,   873,  -600,   794,   597,  1119,
  1252,  -432,  1407,   880,   105,    65,  1401,  1402,   331,   768,
  1384,   110,   209,   106,  1131,   562,  1280,   282,   755,  1190,
  1191,   108,   961,   907,  1426,  1328,   293,  1101,   234,  1429,
  -602,   391,   770,   256,  -142,   970,    82,  1922,   835,   535,
  1976,   295,  1042,   149,   150,   563,   107,  1253,  1438,   110,
   623,  1254,   523,   526,   109,  -600,   589,   453,   134,   135,
  1059,   522,   525,   599,   602,  1281,  1240,   910,   779,   181,
   968,   599,  1043,   814,   564,   811,   234,    82,   244,   113,
  1222,    82,  1122,   602,  1255,   335,  1977,   802,   884,  1957,
    12,  1550,  1901,  1902,   884,   507,    28,  1241,   823,   250,
   251,  1044,   602,   995,   114,    16,   575,   578,   817,  1486,
   722,   152,   153,  1211,   620,    20,  1105,  1319,   452,  1060,
   170,   674,  1492,   675,   212,  1046,    23,   827,    22,   745,
   771,     8,     9,   839,   226,  1047,  1035,    25,   281,   733,
  1551,  -145,  1036,   615,  1061,  1387,   335,   442,   443,  1048,
   108,    12,  -144,  1478,   529,   530,  1513,   129,  1515,    65,
    20,  1640,   293,   209,   169,   414,   418,   130,   531,   211,
    69,   941,   256,   256,  1212,   236,   914,  1213,   532,  -853,
   256,  1683,  1096,   109,    28,  1578,    42,    23,   293,   465,
  1097,   533,   256,   858,   286,   210,  1578,   882,   970,   152,
   153,   472,   616,  1062,  -380,   766,    17,  1984,   516,   967,
  1641,   256,  1493,  1472,   938,    35,   359,   131,   275,  1972,
   884,  1063,   276,  1473,   105,   460,  1547,  1548,   632,   456,
   391,  1408,  1409,  1410,  1723,   422,  1474,    69,   189,   189,
   189,   423,  1193,   916,   917,  1850,    68,    42,   935,  1310,
  1226,  -380,  1408,  1409,  1410,  -380,  1985,   181,   958,   157,
   461,   332,   943,   391,  1571,   108,   391,   195,    86,   391,
  1256,   234,   169,   391,  1279,   391,   839,   839,   839,   839,
  1064,   839,  1189,  1166,   293,    82,    17,    68,  -380,  1194,
  -432,   391,  1411,   717,    68,   196,    28,   471,   109,   213,
   293,  1042,   391,   149,   150,   391,  1451,     8,   625,  1227,
   236,  1195,  1196,  1563,  -418,   926,  1297,   959,   236,   814,
   884,   217,   624,  1408,  1409,  1410,   815,   799,   813,  1257,
  1127,  1043,  -432,  -432,  1128,   948,   330,  1791,  1243,  1744,
   331,   335,     8,     9,   812,   108,    12,   552,  1197,   256,
   170,   169,  1132,   913,   411,   755,    28,   221,  1330,   222,
  1044,  1682,   811,   754,     8,     9,  1125,   769,  1133,   882,
  1445,   152,   153,  -418,    20,   152,   153,  1447,   109,   278,
   599,   884,    23,   171,  1570,  1046,   335,   442,   443,   286,
   256,    12,   295,   891,   884,  1047,  1236,  1244,  1238,   626,
    68,   170,   891,  1242,   425,   280,   234,  1695,   334,  1048,
    35,   359,   144,  1449,   234,   681,   149,   150,   256,  1821,
   391,  1936,   408,    82,   426,  1107,   410,    23,   884,  1446,
   884,  1167,   152,   153,   244,   427,  1448,   107,   282,   440,
    28,    68,    42,   465,   466,    68,   138,   139,   140,   420,
   813,   424,   293,   428,    69,    35,   359,   109,   894,   895,
   839,   256,   429,   411,  1139,   839,  1144,  1145,   169,  1325,
  1326,  1772,  1450,  1202,  1383,  1331,   465,   467,  1822,  1169,
  1937,   449,   758,   105,   152,   153,  -302,    42,   528,   256,
    82,  1344,   236,  1345,   941,  1346,   941,  1408,  1409,  1410,
    28,  -968,   941,   151,   941,   209,   149,   150,   626,   257,
   549,   811,  -381,    28,    17,   141,   142,  1201,  1359,   223,
   335,   442,   443,  1285,  1286,    12,  1287,  -911,  -911,  1741,
  1097,   236,  1142,   236,   236,  1164,  1165,   938,  1145,   938,
   867,  1799,   463,   867,  1261,  1271,   536,   938,   535,  -643,
   848,  1380,  1170,   849,   926,   149,   150,    -7,  1697,  -381,
    69,    23,    69,  -381,   845,   852,   550,  -121,   244,    17,
    69,   935,   942,   935,   152,   153,   811,   391,   391,   971,
   391,   935,   811,   198,   677,   943,   108,   943,   234,    35,
   359,   587,   588,   332,   344,   943,  -381,   259,  1262,   192,
   674,   551,   675,   472,   875,   236,   516,  -143,    28,  1220,
    28,   554,  1066,  1069,  -121,   813,   567,  1441,  -121,   109,
   624,    42,   813,   152,   153,   330,   566,   234,  1442,   234,
   234,  1520,  1522,   605,  1508,  1509,  1510,   633,   106,   630,
  1532,  1533,   112,  1535,   628,  1868,   293,   634,   293,    68,
   631,  -121,   646,   647,   138,   139,   140,   106,   948,  1494,
   948,   149,   150,   639,   391,  1268,  1275,   629,   948,  1332,
   651,   107,   650,   660,     8,     9,   661,   226,  1725,   662,
   652,   623,   653,   673,   149,   150,   974,   678,  1250,  1251,
   107,   654,   810,   844,   465,   719,   293,   259,  1282,     8,
     9,   234,   839,    20,  -119,   291,    17,    82,   811,   677,
  1162,   655,   882,   845,    28,   259,   108,  1481,  1482,  1483,
  1014,   595,   596,   141,   142,  1963,   656,    28,   723,   152,
   153,   411,   115,   132,   133,   118,   119,  1726,   295,   192,
   192,   192,   152,   153,   106,   657,   411,   775,  1037,   109,
   456,  -119,   152,   153,  1053,  -119,  1472,   811,   779,   839,
   391,  1267,   110,   811,   813,  1773,  1473,   152,   153,   802,
   796,  1536,   259,  1522,  1228,  1229,   287,   107,   778,  1474,
   259,   457,  1636,  1638,   331,   781,   192,    68,  -119,  1168,
   782,  1642,  1403,   783,   244,   795,   189,   259,     8,     9,
   821,   134,   135,  -186,   826,    69,     8,     9,   811,  -966,
   249,   250,   251,    82,   810,    82,   535,    16,   169,  -186,
   831,  -186,   293,    82,  1422,  1738,   587,   859,   288,   813,
  1432,   291,  1825,   846,    20,   813,   107,   941,   109,   882,
    22,   850,   844,   149,   150,   411,   595,   860,  1842,    25,
  1261,   535,   839,   411,    68,   702,   703,   115,   132,   133,
   118,   119,   391,    -6,   523,   526,   152,   153,   -53,   811,
   971,   877,   189,   -53,   152,   153,   901,  1588,  1574,  1589,
   938,  1590,   811,   605,   -53,   854,  1572,  1573,  1687,   733,
   287,   236,  1423,  1721,  1722,   942,    28,  1248,   626,   876,
   149,  1668,   906,    69,  1262,   942,  1816,  1817,   138,   916,
   917,   152,   153,  1539,   935,    17,   811,   952,   811,   293,
   284,   954,   848,   849,   953,   734,   159,   135,   943,  -311,
   852,   955,   523,   526,   962,   735,  -311,   919,   963,   742,
   746,   749,    17,   587,  1844,   736,  -432,   411,   737,   738,
   293,  -311,   988,   839,  1825,  -311,   990,   330,  1765,   291,
   991,   813,    28,  1066,  1069,   813,   865,   391,   152,   153,
   993,  1268,  -311,   595,  1845,   660,   661,   141,   142,   810,
  1056,  1690,   587,  1849,  1825,  1058,   810,   234,  -432,  -432,
   811,  1077,   626,  -432,  1075,  1079,  1789,  -311,  -311,  1099,
  -311,   948,  -311,   115,   132,   133,   118,   119,  1054,   535,
   813,  1496,  1933,  1110,  1389,  1390,   813,  1498,  1499,   811,
  1120,  1496,  1501,  1111,  1121,  1499,  1167,  1124,  1126,    22,
   112,  -311,  -311,  1134,  1135,   149,   150,  1416,  1148,  1153,
  1156,   282,   623,  1160,  1234,  1825,  -311,   149,   150,    69,
   189,   189,   189,   293,  1751,  1202,  1755,   244,    82,   627,
    69,   813,   814,  1753,   941,  1163,   867,  1267,  1176,  1908,
  1180,    68,   134,   135,  1169,  1182,    20,  1188,   259,  -305,
  1623,  1187,   556,  1615,  1335,  1432,  1208,   882,    28,  1209,
  -852,  1614,   813,   733,   430,   431,   432,   118,   119,   259,
    28,  1210,  1215,   152,   153,  1622,  1224,   938,   259,  1231,
  1232,   471,   138,   916,   917,   152,   153,   633,   189,   189,
   189,  1235,   813,  1237,  1239,   259,   971,   634,   810,   734,
    69,  -596,  1245,  1298,  -596,   813,   192,   192,   192,   735,
  1431,   935,   433,  1294,  1295,  1296,   722,  1170,  1299,   736,
  1304,  1300,   737,   738,  1305,   943,    82,   115,   116,   117,
   118,   119,  1301,   434,   435,   181,  1302,  1306,  1303,   813,
  1079,   813,   586,   597,   250,   251,  1307,    68,  1308,    68,
    16,   141,   142,   811,  1309,  -141,  1312,    68,  1313,   187,
  1314,   331,  1315,   810,  1316,  -596,  1317,  -596,  -596,   810,
  -596,  1320,   256,    22,  1321,   411,  1322,   891,  1323,  1337,
  1324,  -596,    25,  -596,   891,   699,   700,   701,   702,   703,
  1665,  1339,  1341,  1699,  1699,  1665,   120,   121,   948,  -596,
  -596,  1342,     8,     9,  1343,   226,  1350,  1351,   942,  1623,
  1375,  1066,  1069,   813,  -596,  1382,   293,   244,  1381,  1623,
  1614,  1352,  1615,  1361,  1358,  1362,  1623,  1367,  1378,  1615,
  1614,    20,  1405,  1444,  1622,   839,  1467,  1614,   632,  1477,
  1554,  1555,   813,  1479,  1622,  1487,  1497,  1422,  1897,  1422,
  1502,  1622,  1503,   523,   526,    28,  1507,  1511,  1978,  1516,
   236,   236,  1517,  1523,   891,   430,   431,   432,   118,   119,
   152,   153,    82,  1710,  1518,  1519,  1525,  1538,   115,   132,
   133,   118,   119,    82,  1472,  1526,  1664,  1527,   523,   526,
  1565,  1530,  1540,  1569,  1473,   810,  1534,  1541,  1578,   810,
   524,   527,  1542,    82,   811,  1545,  1546,  1474,  1554,  1555,
   813,  1549,  1552,  1579,   236,  1423,   236,  1586,  1452,    28,
  1228,  1229,   563,  1635,  1644,  1645,  1950,  1141,  1648,   742,
   746,  1649,   749,  1338,   434,   435,  1340,   189,  1653,  -685,
  1675,  1681,   891,  1676,   810,  1685,   187,   134,   135,   136,
   810,  1489,  1490,    82,  1168,  1686,   234,   234,   746,  1703,
  1715,  1718,  1716,  1724,  1717,  1431,   660,   661,   149,   150,
  1733,  1415,  1734,  1735,  1747,  1760,  1749,  1763,  1504,   249,
   250,   251,   189,  1506,  1775,  1776,    16,   472,   516,  1767,
  1785,   811,    68,  1786,  1787,   810,  1788,   624,  1793,  1798,
  1802,   746,  1803,    20,  1691,  1692,   813,  1828,   811,    22,
   234,   151,   234,  1829,  1416,   423,  1833,  1879,    25,  1835,
  1843,    28,  1623,  1623,  1879,  1615,   810,  1623,   256,  1699,
  1615,  1836,  1867,  1614,  1614,   942,   152,   153,  1614,   189,
   189,   189,  1865,   391,  1883,  1875,   818,  1622,  1622,  1893,
  1894,  1906,  1622,  1910,  1919,  1920,   810,  1926,  1928,  1944,
  1948,  1619,    82,   115,   116,   117,   118,   119,  1931,   810,
   811,  1932,    82,  1954,   189,   189,   189,  1623,  1955,    82,
  1615,   138,   916,   917,  1958,   669,  1623,   918,  1614,  1615,
    68,  1961,  1965,  1966,  1970,  1975,   236,  1614,  1980,  1982,
  1979,   471,  1622,   810,  1987,   810,  1911,  1988,  1990,  1710,
   919,  1622,   706,  1879,   576,   579,  1991,    28,   920,     1,
   545,   194,  1677,  1678,  1679,  1680,     5,  1840,  1123,  1385,
   857,   544,   120,   121,   122,    28,  1272,   172,  1623,  1949,
   172,  1615,   190,  1587,   407,  1986,   607,  1824,   470,  1614,
   141,   142,   848,   849,  1684,  1809,  1810,   813,   638,   852,
   259,  1377,  1207,  1622,   707,   708,   247,   259,   255,   709,
   710,   711,   712,   236,   272,  1233,  1376,   810,  1623,   610,
  1505,  1615,  1484,  1670,  1347,  1374,   891,   259,  1646,  1614,
  1113,  1347,   234,  1041,  1274,   590,  1656,  1657,   996,  1666,
  1667,   730,  1669,  1622,   438,  1923,   810,  1632,  1964,  1971,
  1969,  1347,  1466,  1737,  1764,   163,  1566,  1283,  1702,  1807,
  1537,  1425,  1185,  1288,  1870,  1186,  1582,  1874,  1368,  1102,
  1619,  1934,   249,   250,   251,   720,    68,  1619,  1311,    16,
  1100,     0,  1691,  1692,   813,     0,     0,    68,   524,   851,
     0,     0,   335,   149,   150,   891,    20,    12,     0,  1871,
  1872,   813,    22,     0,   192,     0,     0,    68,     0,   234,
   332,    25,   172,     0,   810,    82,    82,   332,     0,   172,
    82,     0,   190,   190,   190,     0,     0,     0,  1790,     0,
     0,     0,     0,    23,   894,   895,     0,   524,   527,  1108,
   286,     0,     0,     0,     0,     0,   181,     0,     0,   247,
   115,   517,   518,   118,   119,   553,     0,    68,     0,   149,
   150,    35,   359,   813,     0,   250,   251,   574,   574,   583,
    82,    16,     0,   115,   132,   133,   118,   119,   617,    82,
   192,   660,   661,   255,  1834,  1353,     0,  1354,     0,     0,
     0,   600,   255,    42,    22,  1769,  1770,   669,     0,     0,
   669,     0,     0,    25,   669,   733,   332,     0,     0,     0,
   810,     0,    28,     0,    23,     0,     0,     0,  1415,   120,
   135,   524,   989,     0,     0,     0,     0,   152,   153,     0,
     0,    82,     0,   172,     0,     0,   669,     0,     0,     0,
     0,   734,   134,   135,     0,     0,     0,   472,   516,     0,
     0,   735,     0,   624,     0,   115,   116,   117,   118,   119,
     0,   736,     0,     0,   744,   738,    68,     0,  1877,     0,
     0,    82,     0,  1619,  1014,  1877,    68,   724,  1619,   335,
   442,   443,     0,    68,    12,     0,   725,   115,   132,   133,
   118,   119,     0,     0,     0,   259,     0,   808,     0,     0,
  1091,   892,     0,     0,   893,     0,   576,   579,   190,   848,
   849,   852,     0,     0,     0,  1856,  1857,  1858,   909,  1347,
    23,     0,     0,   259,   120,   121,     0,   726,  1619,     0,
   259,     0,     0,    28,     0,   673,     0,  1619,     0,   115,
   132,   133,   118,   119,     0,     0,     0,  1347,    35,   359,
     0,     0,     0,     0,  1347,     0,   134,  1837,   192,   192,
   192,   810,     0,     0,  1877,     0,     0,     0,     0,  1413,
     0,     0,     8,     9,    10,    11,     0,     0,    14,    15,
   727,     0,     0,  1953,    16,     0,     0,     0,     0,  1619,
     0,     0,   247,   255,     0,  1899,  1900,  1512,    18,  1514,
    19,     0,     0,     0,  1968,     0,     0,    22,   134,  1839,
   259,     0,     0,  1014,     0,     0,    25,     0,     0,   808,
     0,     0,     0,     0,     0,    28,   192,   192,   192,  1619,
     0,     0,  -942,  -942,  -942,     0,     0,     0,     0,     0,
   152,   153,     0,     0,  1414,     0,     0,     0,   810,     0,
     0,     0,     0,   524,   851,     0,     0,     0,     0,     0,
     0,   172,     0,  1544,   172,   810,     0,     0,     0,     0,
   190,   190,   190,     0,   330,  1951,   172,   872,     0,    68,
    68,   330,     0,     0,    68,   872,     0,     0,   259,     0,
     0,     0,     0,  -942,   115,   116,   117,   118,   119,     0,
   260,   261,   262,   752,     8,     9,     0,     0,    12,     0,
     0,     0,  1347,     0,   574,     0,     0,   574,     0,   583,
   583,   583,     0,     0,    20,   553,  1091,   810,     0,     0,
   263,   574,   600,   255,    68,     0,   553,     0,     0,  1712,
   600,   344,   753,    68,    23,     0,     0,     0,    28,     0,
     0,     0,   872,   553,     0,     0,     0,    28,     0,     0,
     0,     0,     0,   120,   121,   264,     0,   660,   661,     0,
   330,     0,   152,   153,     0,     0,     7,   149,   150,     0,
   190,    12,     0,   190,   808,   872,     0,   190,     0,     0,
     0,   808,  1647,  1009,     0,    68,     0,     0,  1652,     0,
     0,     0,     0,   190,   190,   190,    20,     0,     0,     0,
   265,   266,   267,     0,     0,     0,     0,    23,   872,   190,
   892,   893,   576,   579,   872,     0,     0,     0,   909,     0,
    28,   598,   250,   251,     0,    68,     0,     0,    16,     0,
     0,     0,   524,   989,     0,    35,    36,     0,     0,     0,
  1688,     0,     0,     0,     0,    20,     0,   872,     0,   183,
     0,    22,     0,     0,   872,     0,     0,     0,     0,   184,
    25,     0,   872,  1065,  1065,   192,  1072,    42,     0,     0,
     0,     0,   185,  1092,   695,   696,   697,   698,   699,   700,
   701,   702,   703,     0,   187,     0,     0,   200,     0,     7,
     8,     9,    10,    11,    12,   201,    14,    15,     0,   255,
     0,     0,    16,     0,     7,     8,   285,     0,     0,    12,
   192,     0,     0,     0,     0,     0,    18,     0,    19,    20,
    21,     0,   259,   808,     0,    22,     0,     0,     0,     0,
    23,     0,     0,   259,    25,     0,     0,   202,   247,     0,
   255,   272,     0,    28,     0,    23,  1347,     0,     0,     0,
     0,     0,   286,     0,     0,     0,     0,  1347,    35,    36,
  1464,     0,     0,     0,     0,  1712,     0,   192,   192,   192,
  1781,  1782,    38,    35,    36,     0,     7,     8,     9,     0,
   226,    12,    41,     0,    15,     0,  1792,     0,   808,     0,
    42,   259,     0,     0,   808,    43,     0,   287,     0,     0,
    44,     0,   192,   192,   192,    42,    20,     0,     0,     0,
     0,   255,     0,     0,     0,  1347,     0,    23,     0,     0,
     0,     0,     0,   574,   574,   583,   583,   583,     0,     0,
    28,   574,     0,     0,     0,     7,   149,   150,     0,   600,
    12,     0,   553,     0,     0,    35,    36,     0,     0,     0,
     0,     0,   576,   579,     0,     0,     0,     0,     0,   228,
     0,     0,     0,  1852,     0,  1853,     0,     0,     0,   229,
     0,     0,   247,   872,     0,     0,    23,    42,     0,     0,
  1863,  1864,   230,   286,     0,     0,     0,  1413,     0,     0,
     8,     9,    10,    11,     0,     0,    14,    15,     0,   190,
     0,     0,    16,     0,    35,    36,     0,     0,     0,     0,
   524,   851,     0,     0,     0,     0,    18,     0,    19,     0,
   808,     0,     0,     0,   808,    22,     0,     0,   287,     0,
     0,     0,     0,     0,    25,     0,    42,     0,     0,   524,
   527,   872,   872,    28,   892,   893,   909,   872,     0,     0,
  -941,  -941,  -941,     0,     0,     0,     0,     0,   152,   153,
     0,     0,  1414,   872,     0,   872,     0,   872,     0,   808,
     0,     0,     0,     0,     6,   808,     7,     8,     9,    10,
    11,    12,    13,    14,    15,     7,   149,   150,     0,    16,
    12,     0,     0,     0,     0,  1065,     0,     0,  1065,     0,
     0,     0,   872,    18,     0,    19,    20,   524,  1634,     0,
  1065,  -941,    22,     0,  1360,  1360,  1092,    23,     0,     0,
   808,    25,     0,   872,   541,     0,    23,     0,     0,     0,
    28,     0,   733,     0,     0,     0,     0,   294,     0,    28,
     0,     0,     0,     0,     0,    35,    36,     0,     0,    37,
     0,   808,     0,     0,    35,    36,     0,     0,     0,    38,
   272,     0,     0,     0,     0,  1388,  1388,  1395,  1707,    41,
   697,   698,   699,   700,   701,   702,   703,    42,  1708,     0,
     0,   808,    43,     0,     0,    90,    42,     0,   736,     0,
     0,  1709,   738,     0,   808,     0,     0,   126,   247,     0,
   872,     0,     0,   524,   851,   892,   893,   155,   576,   579,
     0,     0,     0,     8,     9,   909,   226,   872,     0,   176,
    15,     0,   176,     0,   176,     0,    90,     0,   808,     0,
   808,     0,     0,    90,     0,     0,     0,     0,   537,     0,
     0,     0,    20,  1395,     0,     0,   238,     0,    90,     0,
  1258,  1259,     9,     0,   226,    12,   273,  1475,  1475,  1475,
     0,     0,     0,   126,     0,     0,    28,     0,     0,     0,
   573,     0,     0,     0,   297,   126,   576,   579,     0,   553,
   553,   152,   153,     0,   592,     0,     0,     0,   576,   579,
     0,    23,     0,     0,     0,  1472,     0,     0,     0,     0,
     0,     0,   808,     0,    28,  1473,   553,     0,     0,   126,
     0,   553,     0,     0,     0,     0,     0,     0,  1474,    35,
    36,     0,     0,  1488,     0,  1260,     0,     0,     0,     0,
     0,   808,     0,   228,     0,     0,     0,   155,     0,    90,
     0,     0,     0,   229,     7,     8,     9,     0,   226,    12,
     0,    42,   281,   176,   176,   187,   230,     0,   473,     0,
     0,   176,     0,     0,   176,   176,   176,     0,     0,     0,
   892,   893,   576,   579,    20,     0,     0,   909,     0,     0,
    90,     0,     0,     0,    90,    23,     0,     0,     0,     0,
   238,    90,  1360,  1360,  1092,     0,     0,     0,    28,   808,
  1464,     0,     0,     7,     8,     9,     0,   226,    12,   238,
   238,   238,     0,    35,    36,     0,     0,     0,  1388,  1388,
     0,  1553,  1553,  1395,     0,     0,     0,   228,  1388,     0,
     7,     8,     9,     0,     0,    12,     0,   229,   238,     0,
     0,     0,     0,     0,    23,    42,     0,     0,     0,   872,
   230,   872,     0,   872,     0,   609,     0,    28,   524,   527,
     0,   247,     0,     0,   126,     0,     0,     0,     0,     0,
     0,    23,    35,    36,     0,   176,   227,     0,   286,     0,
     0,     0,     0,     0,     0,     0,   228,     0,     0,  1553,
  1553,  1395,     0,   524,  1634,   808,   229,     0,     0,    35,
    36,  1475,  1475,  1475,    42,     0,     0,   892,   893,   230,
   909,     0,     0,   126,   635,     0,     0,     0,     0,     0,
     0,     0,     0,   287,   553,   553,     0,   553,   553,     0,
   553,    42,     0,     0,     0,     7,     8,     9,     0,   226,
    12,     0,     0,    15,   115,   132,   133,   118,   119,     0,
   260,   261,   262,   872,   335,     8,     9,     0,     0,    12,
     0,     0,     0,     0,   126,    20,     0,     0,     0,   731,
     0,   635,   635,   747,    20,     0,    23,     0,     0,     0,
   263,     0,   733,  1388,  1388,  1553,  1553,  1395,    90,    28,
  1388,     0,     0,     0,     0,    23,     0,     0,     0,     0,
     0,     0,   286,     0,    35,    36,     0,   335,   149,   150,
   576,   579,    12,   134,   135,    15,     0,     0,  1136,     0,
     0,     0,   155,    35,   359,     0,     0,     0,  1137,     0,
   902,   126,     0,   238,   126,   908,    42,    20,   736,     0,
     0,  1138,   738,     0,     0,     0,   808,   287,    23,     0,
     0,   247,   255,     0,   733,    42,     0,     0,     0,     0,
   950,    28,   576,   579,     0,     0,   956,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    35,   359,   964,   965,
     0,   966,     0,   553,   553,     0,     0,     0,     0,   126,
  1363,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1364,     0,     0,   176,     0,     0,   176,     0,    42,     0,
   736,     0,     0,  1365,   738,     0,     0,     0,   176,     0,
  1797,  1797,     0,  1797,     0,     0,    90,     0,     0,   335,
     8,     9,     0,   808,    12,     0,  1808,  1808,  1092,   115,
   132,   133,   118,   119,     0,   784,   785,   786,     0,     0,
   808,     0,     0,     0,     0,   238,   238,   872,     0,   238,
     0,   238,   238,   238,   899,     0,     0,     0,   238,     0,
    23,     0,     0,   238,     0,     0,   238,   286,     0,     0,
     0,     0,     0,   583,     0,  1080,  1081,     0,     0,     0,
  1080,     0,     0,    90,     0,     0,     0,     0,    35,   359,
     0,     0,     0,   553,   553,   553,     0,     0,   134,   135,
     0,     0,   808,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   626,  1797,  1797,  1866,     0,     0,     0,     0,
    42,     0,   126,   126,   126,   126,     0,   126,  1808,  1808,
  1360,  1360,  1092,     0,  1808,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   929,     0,     7,     8,
   930,    10,    11,    12,   201,    14,    15,     0,     0,     0,
     0,    16,     0,     0,     0,   583,   583,   583,     0,     0,
     0,     0,     0,   553,   553,    18,     0,    19,    20,    21,
     0,     0,     0,     0,    22,  -540,   126,     0,   635,    23,
  1808,  1808,  1808,    25,   931,     0,   202,     0,     0,     0,
     0,     0,    28,   731,     0,   635,   635,   932,   747,     0,
     0,     0,     0,     0,     0,  1093,     0,    35,    36,  1095,
     0,   933,     0,   934,     0,     0,     0,     0,     0,     0,
     0,    38,     0,     0,     0,  1230,     0,     0,     0,     0,
   238,    41,     0,     0,     0,     0,     0,     0,     0,    42,
     0,     0,     0,   553,    43,     7,     8,     9,     0,   226,
    12,     0,     0,   281,   155,     0,     0,     0,     0,     0,
  -540,   155,     0,     0,     0,     0,     0,     0,     0,   238,
  1143,   238,   238,   273,   747,    20,     0,     0,     0,     0,
     0,     0,     0,  1290,     0,  1292,    23,     0,     0,     0,
    90,     0,   733,     0,     0,     0,   126,     0,     0,    28,
   635,   126,   692,   693,   694,   695,   696,   697,   698,   699,
   700,   701,   702,   703,    35,    36,     0,     0,     0,     0,
     0,   123,     0,     0,     0,     0,     0,     0,  1136,   137,
     0,     0,     0,     0,   160,   162,     0,   164,  1137,   168,
     0,     0,     0,   238,     0,     0,    42,  1143,   736,     0,
     0,  1138,   738,     0,     0,   238,   238,   899,   899,   899,
     0,     0,     0,   238,     0,     0,     0,     0,     0,     0,
     0,  1333,  1334,     0,  1336,     0,     0,     0,     0,     0,
   268,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   155,     0,     0,     0,    90,     0,    90,     0,
     0,     0,     0,  1269,    90,     0,    90,  1356,     0,     7,
     8,     9,   126,   226,    12,     0,   474,   475,   126,   476,
   477,     0,   478,   479,     0,   635,   635,   635,   480,   481,
   482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
   492,   493,   494,   495,   496,     0,     0,     0,     0,     0,
    23,   436,   497,   498,   499,   500,   733,   501,     0,     0,
   502,     0,   503,    28,   504,  1399,   459,     0,   462,     0,
     0,     0,     0,   468,     0,     0,     0,     0,    35,    36,
     0,     7,   149,   150,     0,   505,    12,   519,     0,    15,
     0,   759,  1136,     0,     0,     0,     0,     0,     0,     0,
     0,     0,  1137,     0,     0,     0,     0,     0,     0,     0,
    42,    20,   736,     0,     0,  1138,   738,     8,     9,    10,
    11,     0,    23,    14,   281,     0,   635,   635,   733,    16,
   635,     0,     0,   635,     0,    28,     0,     0,   126,     0,
  1054,     0,   635,    18,   126,    19,  1093,  1093,  1093,     0,
    35,    36,    22,   635,     0,  1366,     0,     0,     0,     0,
     0,    25,     0,     0,  1707,     0,     0,     0,  1485,     0,
    28,     0,     0,     0,  1708,     0,     0,     0,   606,   608,
     0,  1491,    42,     0,   736,   152,   153,  1709,   738,     0,
     0,   618,     0,   126,     0,   126,     0,   238,   238,  1397,
     0,     0,     7,     8,     9,     0,   226,    12,     0,     7,
     8,     9,    10,    11,    12,   201,    14,    15,     0,     0,
   126,     0,    16,     0,     0,     0,     0,     0,     0,   238,
  1143,     0,    20,     0,     0,     0,    18,     0,    19,    20,
    21,   126,     0,    23,   126,    22,     0,     0,     0,     0,
    23,     0,     0,     0,    25,     0,    28,   202,     8,     9,
     0,   226,     0,    28,     0,   281,   659,     0,     0,     0,
     0,    35,    36,     0,     0,  1397,  1543,     0,    35,    36,
     0,     0,     0,     0,     0,   580,     0,    20,   126,   899,
   899,   899,    38,     0,     0,   581,     0,     0,     0,     0,
     0,     0,    41,    42,   733,   126,     0,     0,   582,  1269,
    42,    28,     0,     0,   772,    43,   777,     0,   126,     0,
    44,     0,     0,  1561,     0,   787,   152,   153,  1067,  1070,
     0,  1500,     0,     0,     0,     0,     0,     0,   777,    90,
  1794,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1795,     0,   126,     0,   126,     0,     0,     0,     0,     0,
   736,     0,   820,  1796,   738,     0,   825,     0,     0,     0,
   830,     0,     6,     0,     7,     8,     9,    10,    11,    12,
    13,    14,    15,     0,     0,     0,     0,    16,     0,   126,
     0,     0,     0,     0,   635,   635,     0,   635,     0,     0,
     0,    18,     0,    19,    20,     0,     0,     0,     0,     0,
    22,   834,     0,     0,     0,    23,     0,     0,     0,    25,
     0,   635,   541,     0,   635,   635,   747,     0,    28,     0,
     0,     0,  1673,     0,     0,     0,  1674,     0,     0,     0,
     0,     0,     0,    35,    36,     0,     0,    37,     0,   238,
   238,   238,     0,   238,   238,  1397,   899,    38,     0,     0,
   238,     0,     0,     0,     0,  1164,  1165,    41,     0,     0,
  1689,     0,     0,     0,     0,    42,     0,   126,     0,     0,
    43,     0,     0,     0,  1694,    90,     0,     0,     0,     0,
     0,     0,     0,   126,     0,     0,   126,     0,     0,     0,
     0,     0,     7,     8,     9,    10,  1391,    12,   201,    14,
    15,     0,     0,   879,   915,    16,     0,     0,     0,     0,
     0,  1397,  1397,  1397,     0,     0,     0,     0,     0,    18,
     0,    19,    20,   899,   899,   899,   899,     0,    22,     0,
     0,     0,     0,    23,     0,     0,     0,    25,     0,   733,
     0,     0,     0,     0,     0,     0,    28,     0,   238,     0,
     0,     0,   987,   176,     0,     0,    90,     0,     0,     0,
     0,    35,    36,  1766,     0,     0,     0,     0,  1768,     0,
     0,     0,     0,     0,  1006,  1392,     0,     0,     0,     0,
     0,     0,     0,     0,     0,  1393,     0,     0,     0,     0,
  1783,  1784,     0,    42,     0,   736,     0,     0,  1394,   738,
     0,     0,     0,     0,   899,   238,   238,   899,   899,  1693,
     0,     0,   238,     0,     0,    93,     0,   126,   238,   238,
     0,  1057,     0,     0,     0,     0,  1815,   128,     0,     0,
     0,   176,     0,     0,     0,     0,   148,   156,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
  1348,     0,   177,  1349,   177,     0,    93,     0,     0,     0,
     0,     0,     0,    93,     0,  1355,     0,     0,     0,  1067,
  1070,   772,   238,  1143,   238,     0,   177,     0,    93,     0,
     0,     0,     0,     0,     0,     0,   274,     0,     0,     0,
     0,   126,     0,   283,     0,     0,  1130,     7,     8,     9,
     0,   226,    12,     0,     0,   283,     0,  1147,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1067,  1070,     0,     0,     0,     0,     0,    20,     0,  1873,
     0,  1175,     7,     8,     9,     0,   226,    12,    23,     0,
    15,  1184,   899,   899,   733,   899,     0,     0,     0,     0,
     0,    28,     0,     0,     0,     0,     0,     0,   176,   176,
  1143,     0,    20,     0,  1006,     0,    35,    36,     0,    93,
     0,     0,     0,    23,     0,     0,     0,     0,     0,     0,
  1136,     0,     0,   177,   177,     0,    28,     0,     0,     0,
  1137,   177,     0,     0,   177,   177,   177,     0,    42,     0,
   736,    35,    36,  1138,   738,  1397,     0,     0,     0,     0,
    93,     0,     0,     0,    93,   580,     0,     0,     0,     0,
   177,    93,     0,     0,     0,   581,     0,     0,     0,     0,
     0,     0,     0,    42,     0,     0,     0,     0,   582,   177,
   177,   177,     0,     0,     0,   899,   899,  1693,   899,     0,
     0,     0,     0,     0,   238,     0,     0,     0,     0,   176,
   176,   176,   176,   176,  1143,     0,   176,   176,   177,   687,
   688,   689,   690,   691,   692,   693,   694,   695,   696,   697,
   698,   699,   700,   701,   702,   703,     7,     8,     9,     0,
   226,    12,     0,     0,    15,     0,     0,  1397,  1397,  1397,
     0,     0,     0,     0,     0,   177,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    20,   899,     0,     0,
     0,     0,   176,   176,   176,     0,   126,    23,     0,     0,
     0,   238,     0,   733,     0,     0,     0,     0,     0,     0,
    28,     0,     0,   283,   177,     0,     0,  1067,  1070,     0,
     0,     0,     0,     0,     0,    35,    36,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1392,
     0,     0,     0,  1348,  1349,     0,  1067,  1070,     0,  1393,
     0,     0,     0,  1355,     0,     0,     0,    42,     0,   736,
     0,     0,  1394,   738,   283,     0,     0,     0,     0,   732,
     0,   177,   177,   748,     0,     0,   772,     0,   757,     0,
     0,     0,     0,   787,     0,     0,     0,     0,    93,   298,
     0,     0,     8,     9,    10,    11,  1130,     0,    14,    15,
     0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
     0,     0,     0,     0,  1067,  1070,     0,     0,    18,     0,
    19,     0,   800,     0,     0,     0,     0,    22,     0,   299,
   300,   283,     0,   177,   283,     0,    25,     0,   301,     0,
     0,     0,     0,     0,     0,    28,     0,  1258,  1259,     9,
  1439,   226,    12,     0,     0,     0,     0,     0,     0,     0,
   152,   153,     0,   302,     0,     0,     0,   303,   304,   305,
   306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
   316,   317,   318,   319,   320,   321,   322,   323,    23,   283,
   324,   325,   326,     0,     0,   327,     0,     0,   328,     0,
     0,    28,     0,   177,     0,     0,   177,     0,  1348,  1349,
  1067,  1070,     0,     0,   329,  1355,    35,    36,   177,     0,
     0,     0,  1260,     0,     0,     0,    93,     0,     0,     0,
   228,     0,     0,     0,     0,     0,     0,     7,     8,     9,
   229,   226,    12,     0,     0,   623,     0,     0,    42,     0,
     0,     0,     0,   230,     0,   177,   177,     0,     0,   177,
     0,   177,   177,   177,   177,     0,     0,    20,   177,     0,
     0,     0,     0,   177,     0,     0,   177,     0,    23,     0,
     0,     0,  1521,     0,   733,     0,     0,     0,     0,     0,
     0,    28,   928,    93,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    35,    36,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1136,     0,     8,     9,     0,   226,     0,     0,     0,   623,
  1137,     0,   283,   283,   283,   283,     0,   283,    42,     0,
   736,     0,     0,  1138,   738,  1348,  1349,     0,  1355,     0,
     0,    20,   335,     8,     9,    10,    11,    12,   201,    14,
    15,  1067,  1070,   879,     0,    16,     0,     0,   733,     0,
     0,     0,     0,     0,     0,    28,     0,     0,     0,    18,
     0,    19,    20,     0,     0,     0,     0,     0,    22,     0,
   152,   153,     0,    23,     0,     0,   283,    25,   177,   733,
     0,     0,     0,     0,  1794,     0,    28,     0,     0,     0,
     0,     0,     0,     0,  1795,   177,   177,  1592,   748,     0,
     0,    35,   359,  1521,   736,  1094,     0,  1796,   738,     0,
     0,     0,     0,     0,     0,  1363,     0,     0,   757,     0,
     0,     0,     0,     0,     0,  1364,     0,     0,  1067,  1070,
   177,     0,     0,    42,     0,   736,     0,     0,  1365,   738,
     0,     0,     0,  1348,  1349,  1067,  1070,     0,     0,  1355,
     0,     0,     0,     0,   800,     0,     0,     0,     0,     0,
     0,     0,   148,     0,     0,     0,     0,     0,     0,   177,
   748,   177,   177,   274,   748,     0,     0,     0,     0,     0,
     0,   335,     8,     9,    10,  1391,    12,   201,    14,    15,
    93,     0,   879,     0,    16,     0,   283,     0,     0,     0,
   177,   283,     0,     0,     0,  1348,  1349,  1355,    18,     0,
    19,    20,     0,     0,     0,     0,     0,    22,     0,     0,
     0,     0,    23,   928,     0,     0,    25,     0,   733,     0,
     0,     7,   149,   150,     0,    28,    12,     0,     0,   281,
     0,     0,     0,   177,     0,     0,     0,   748,     0,     0,
    35,   359,     0,  1739,  1740,   177,   177,   177,   177,   177,
     0,    20,     0,   177,  1556,     0,     0,     0,     0,     0,
     0,     0,    23,     0,  1557,     7,     8,     9,   733,   226,
    12,     0,    42,   623,   736,    28,     0,  1558,   738,     0,
     0,     0,   156,     0,     0,     0,    93,     0,    93,     0,
    35,    36,     0,  1270,    93,    20,    93,     0,     0,     0,
     0,     0,   283,     0,  1707,     0,    23,     0,   283,     0,
     0,     0,     0,     0,  1708,   177,   177,   177,     0,    28,
     0,     0,    42,     0,   736,     0,     0,  1709,   738,     0,
     0,     0,     0,     0,    35,    36,   929,     0,     7,     8,
   930,    10,    11,    12,   201,    14,    15,     0,   228,     0,
     0,    16,     0,     0,     0,     0,  1820,     0,   229,     0,
     0,     0,     0,     0,     0,    18,    42,    19,    20,    21,
     0,   230,     0,     0,    22,  -541,     0,  1838,  1841,    23,
     0,     0,     0,    25,   931,     0,   202,     0,     0,     0,
     0,     0,    28,   690,   691,   692,   693,   694,   695,   696,
   697,   698,   699,   700,   701,   702,   703,    35,    36,     0,
     0,   933,     0,   934,     0,     0,   177,   177,     0,     0,
   177,    38,     0,   177,     0,     0,     0,     0,   283,     0,
     0,    41,   177,     0,   283,     0,  1094,  1094,  1094,    42,
     0,     0,     0,   177,    43,   757,   691,   692,   693,   694,
   695,   696,   697,   698,   699,   700,   701,   702,   703,     0,
  -541,   929,     0,     7,     8,   930,    10,    11,    12,   201,
    14,    15,     0,     0,     0,  1895,    16,     0,     0,     0,
     0,     0,     0,   283,     0,   283,     0,   177,   177,   748,
    18,     0,    19,    20,    21,     0,     0,     0,     0,    22,
  -543,     0,     0,     0,    23,     0,     0,     0,    25,   931,
   283,   202,     0,     0,     0,     0,     0,    28,     0,   177,
   748,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   283,    35,    36,   283,     0,   933,     0,   934,     0,
     0,     0,     0,     0,     0,     0,    38,     7,     8,     9,
    10,    11,    12,   201,    14,    15,    41,     0,  1219,     0,
    16,     0,     0,     0,    42,  1094,     0,     0,     0,    43,
     0,     0,     0,     0,    18,     0,    19,    20,   283,   177,
   177,   177,     0,    22,     0,  -543,     0,     0,    23,     0,
     0,     0,    25,   928,     0,   283,     0,     0,     0,  1270,
     0,    28,     0,     0,     0,     0,     0,     0,   283,     0,
     0,     0,     0,     0,     0,     0,    35,    36,   929,     0,
     7,     8,   930,    10,    11,    12,   201,    14,    15,    93,
    38,     0,     0,    16,     0,     0,     0,     0,     0,     0,
    41,     0,   283,     0,   283,     0,     0,    18,    42,    19,
    20,    21,     0,    43,     0,     0,    22,  -542,     0,     0,
     0,    23,     0,     0,     0,    25,   931,     0,   202,     0,
     0,     0,     0,     0,    28,     0,     0,     0,     0,   283,
     0,     0,     0,     0,   177,   177,     0,   177,     0,    35,
    36,     0,     0,   933,     0,   934,     0,     0,     0,     0,
     0,     0,     0,    38,     0,     0,     0,     0,     0,     0,
     0,   177,     0,    41,   177,   177,   748,     0,     0,     0,
     0,    42,     0,     0,     0,     0,    43,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
   177,   177,  -542,   177,   177,   748,   177,     0,     0,     0,
   177,     7,     8,     9,    10,    11,    12,   201,    14,    15,
     0,     0,   879,     0,    16,     0,     0,   283,     0,     0,
     0,     0,     0,     0,     0,    93,     0,     0,    18,     0,
    19,    20,     0,   283,     0,     0,   283,    22,     0,     0,
     0,     0,    23,     0,     0,   928,    25,     0,   733,     0,
     0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
     0,  1094,  1094,  1094,     0,     0,     0,     0,     0,     0,
    35,    36,     0,   177,   177,   177,   177,    61,     0,     0,
     0,     0,   928,     0,  1811,     0,     0,     0,     0,     0,
     0,   335,     8,     9,  1812,   226,    12,     0,   177,    15,
     0,     0,    42,   177,   736,     0,    93,  1813,   738,     0,
     0,    61,     0,     0,    61,     0,   186,     0,    61,     0,
     0,    20,     0,     0,     0,    61,     0,     0,     0,     0,
     0,     0,    23,     0,     7,   149,   150,     0,    61,    12,
    61,     0,    15,     0,     0,    28,     0,     0,     0,     0,
     0,     0,     0,     0,   177,   177,   177,   177,   177,   748,
    35,   359,   177,   289,    20,     0,     0,   283,   177,   177,
     0,     0,     0,     0,   896,    23,     0,     0,   335,     8,
     9,   177,   226,    12,   897,     0,    15,     0,    28,     0,
     0,     0,    42,     0,     0,     0,     0,   898,     0,     0,
     0,     0,     0,    35,    36,     0,     0,     0,    20,     0,
     0,  1743,     0,     0,     0,     0,     0,    38,     0,    23,
     0,     0,   177,   748,   177,   733,     0,    41,   444,   444,
     0,    61,    28,     0,     0,    42,     0,     0,     0,     0,
    43,   283,     0,     0,     0,    61,    61,    35,   359,   289,
     0,     0,     0,    61,     0,     0,   186,   186,   186,     0,
     0,  1556,     0,   534,     0,     0,     0,     0,     0,     0,
     0,  1557,    61,     0,     0,     0,    61,     0,     0,    42,
     0,   736,    61,    61,  1558,   738,     0,     0,     0,     0,
     0,     0,   177,   177,     0,   177,     0,     0,     0,     0,
     0,    61,    61,   186,     0,     0,     0,     0,   177,   177,
   748,   289,   686,   687,   688,   689,   690,   691,   692,   693,
   694,   695,   696,   697,   698,   699,   700,   701,   702,   703,
    61,     0,  -402,     8,     9,    10,    11,  -402,  -402,    14,
   281,     0,     0,     0,     0,    16,     0,     0,     0,     0,
     0,     7,   149,   150,     0,  1094,    12,     0,     0,    18,
     0,    19,  -402,     0,     0,     0,     0,    61,    22,     0,
     0,     0,     0,  -402,     0,     0,     0,    25,     0,   733,
     0,    20,     0,     0,     0,     0,    28,     0,     0,     0,
     0,     0,    23,     0,     0,   177,   177,   748,   177,     0,
     0,   152,   153,     0,   177,    28,     0,     0,     0,   177,
   177,   177,   177,   177,   748,   734,   177,   177,     0,     0,
    35,    36,     0,     0,     0,   735,     0,     0,     0,     0,
     0,     0,     0,  -402,    38,   736,     0,     0,   737,   738,
     0,     0,   668,     0,    41,     0,     0,  1094,  1094,  1094,
     0,     0,    42,     0,     0,     0,     0,    43,     0,     0,
     0,   444,     0,     0,     0,     0,     0,   177,     0,   289,
     0,     0,   177,   177,   177,     0,   283,     0,     0,     0,
    61,   177,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   663,     0,   335,     8,     9,    10,    11,    12,   201,
    14,   336,   337,   338,   879,   339,    16,     0,     0,     0,
     0,     0,     0,     0,   444,     0,     0,     0,     0,     0,
    18,   340,    19,    20,    21,    61,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
   733,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,  -319,     0,     0,   360,     0,     0,
     0,     0,     0,   361,     0,     0,  1085,     0,     0,     0,
     0,     0,     0,     0,   363,   364,  1086,     0,     0,     0,
     0,     0,   366,   367,   368,    61,   736,     0,    61,  1087,
  1088,     0,     0,     0,   534,   534,   534,     0,     0,     0,
    61,     0,     0,     0,     0,     0,   371,     0,    61,     0,
     0,     0,     7,     8,     9,     0,   226,    12,   249,   250,
   251,     0,     0,     0,     0,    16,     0,     0,     0,     0,
     0,   335,     8,     9,     0,   226,    12,    61,    61,     0,
     0,    61,    20,   186,   186,   186,   534,     0,    22,     0,
    61,     0,     0,    23,     0,    61,     0,    25,    61,   733,
     0,    20,     0,     0,     0,     0,    28,     0,     0,     0,
     0,     0,    23,     0,     0,    61,     0,     0,   733,     0,
     0,    35,    36,     0,     0,    28,     0,     0,     0,     0,
     0,     0,     0,     0,     0,  1136,     0,     0,     0,     0,
    35,   359,     0,     0,   668,  1137,     0,   668,     0,     0,
     0,   668,     0,    42,  1556,   736,     0,     0,  1138,   738,
     0,     0,     0,     0,  1557,     0,     0,   668,   668,   668,
     0,     0,    42,     0,   736,     0,     0,  1558,   738,     0,
     0,     0,     0,   668,  1756,     0,  1595,  1596,  1597,    10,
    11,    12,   201,    14,   336,   337,   338,     0,   339,    16,
  1598,     0,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
  1607,  1608,    17,    18,   340,    19,    20,    21,     0,   341,
   342,   343,    22,     0,   344,   345,   346,    23,   347,   348,
  1609,    25,  1610,     0,   289,   349,   350,   351,   352,   353,
    28,     0,     0,     0,   354,     0,   355,   668,     0,     0,
   356,     0,     0,   357,     0,  1611,   359,   865,     0,  1612,
   360,     0,     0,     0,     0,     0,   361,     0,     0,   362,
     0,     0,    61,     0,     0,     0,     0,   363,   364,   365,
     0,     0,    88,     0,     0,   366,   367,   368,     0,     0,
     0,     0,   369,   370,  1613,     0,   444,     0,     0,     0,
     0,     0,     0,   444,     0,     0,     0,     0,  1757,   371,
     0,    61,    61,    61,    61,     0,    88,     0,     0,    88,
     0,    88,     0,    88,     0,     0,     0,     0,     0,     0,
    88,   929,    61,     7,     8,   930,    10,    11,    12,   201,
    14,    15,     0,    88,     0,    88,    16,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,     0,    19,    20,    21,     0,     0,     0,     0,    22,
     0,     0,     0,     0,    23,     0,     0,     0,    25,   931,
     0,   202,     0,     0,     0,    61,     0,    28,     0,    61,
     0,     0,     0,     0,     0,     0,     0,    61,    61,   534,
   534,   534,    35,    36,     0,    61,   933,     0,   934,     0,
     0,     0,     0,     0,     0,     0,    38,     0,     0,     0,
     0,     8,     9,    10,    11,     0,    41,    14,    15,     0,
     0,     0,     0,    16,    42,     0,    88,     0,    61,    43,
    61,     0,     0,     0,     0,    61,    61,    18,    61,    19,
    88,    88,     0,     0,     0,     0,    22,     0,    88,     0,
     0,    88,    88,    88,     0,    25,     0,     0,     0,     0,
     0,     0,     0,   668,    28,     0,     0,    88,     0,     0,
     0,    88,     0,     0,     0,     0,     0,    88,    88,   152,
   153,   713,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    88,    88,    88,   663,
     0,     7,     8,     9,    10,  1391,    12,   201,    14,   336,
   337,   338,   879,   339,    16,     0,   714,     0,     0,     0,
     0,     0,     0,     0,     0,    88,     0,     0,    18,   340,
    19,    20,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,   733,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,    88,     0,     0,   356,     0,     0,   357,     0,
    35,    36,  -319,     0,     0,   360,     0,     0,   668,   668,
   668,   361,     0,     0,  1460,   534,   289,     0,     0,     0,
     0,     0,   363,   364,  1461,     0,     0,     0,     0,     0,
   366,   367,   368,     0,   736,     0,     0,  1462,  1088,     0,
     6,     0,     7,     8,     9,    10,    11,    12,    13,    14,
    15,     0,     0,     0,   371,    16,     0,     0,     0,    61,
    61,   186,     0,     0,     0,     0,   289,     0,    17,    18,
     0,    19,    20,    21,     0,     0,     0,     0,    22,     0,
     0,     0,     0,    23,     0,     0,    24,    25,    26,     0,
    27,    61,    61,     0,     0,   756,    28,    29,    30,    31,
     0,     0,     0,     0,     0,    88,    32,    33,    34,     0,
     0,    35,    36,     0,   380,    37,   380,     0,   380,     0,
     0,     0,     0,     0,     0,    38,     0,     0,     0,     0,
     0,     0,     0,    39,    40,    41,     0,  1463,     0,     0,
     0,     0,     0,    42,     0,     0,     0,     0,    43,     0,
    88,     0,     0,    44,     0,     0,     0,     0,     0,     7,
     8,     9,     0,   226,    12,   249,   250,   251,     0,     0,
     0,    61,    16,     0,     0,     0,     0,     0,   380,     0,
   380,     0,     0,     0,     0,     0,     0,     0,     0,    20,
     0,     0,   289,     0,     0,    22,     0,     0,     0,     0,
    23,    61,     8,     9,    25,   226,   733,     0,     0,    15,
     0,     0,     0,    28,     0,     0,     0,     0,     0,     0,
    88,     0,     0,    88,     0,     0,     0,     0,    35,    36,
     0,    20,     0,     0,     0,    88,   124,     0,     0,     0,
     0,     0,  1136,    88,     0,   143,   124,     0,   733,     0,
     0,     0,  1137,     0,     0,    28,     0,     0,   124,     0,
    42,   124,   736,   124,     0,  1214,   738,     0,     0,     0,
   152,   153,    88,    88,     0,     0,    88,     0,    88,    88,
    88,     0,     0,   534,  1794,    88,   534,   534,   534,   289,
    88,     0,     0,    88,  1795,   270,     0,     0,     0,     0,
     0,     0,     0,     0,   736,     0,     0,  1796,   738,     0,
    88,    61,    61,    61,     0,   186,   186,   186,   534,     0,
   289,     0,    61,   688,   689,   690,   691,   692,   693,   694,
   695,   696,   697,   698,   699,   700,   701,   702,   703,     0,
     7,   149,   150,     0,     0,    12,     0,    61,    15,     0,
     0,     0,     0,     0,     0,     0,     0,  1658,  1659,     9,
     0,   226,    12,     0,     0,     0,   437,     0,   143,   658,
    20,     0,     0,     0,     0,   124,   124,     0,     0,     0,
     0,    23,     0,  1463,  1463,  1463,     0,   733,     0,     0,
     0,     0,   124,   124,    28,     0,   124,   124,    23,     0,
   124,     0,   520,   124,   124,   124,     0,     0,     0,    35,
    36,    28,     0,     0,     0,   380,     0,     0,     0,     0,
    61,     0,     0,  1811,     0,    61,    35,    36,    61,     0,
   756,     0,  1660,  1812,     0,     0,     0,     0,     0,     0,
   228,    42,     0,   736,     0,     0,  1813,   738,     0,     0,
   229,     0,     0,     0,     0,     0,     0,     0,    42,     0,
     0,     0,     0,   230,     0,     0,     0,    88,     0,     7,
     8,     9,     0,   226,    12,     0,   534,    61,    61,   534,
   534,   534,     0,     0,    61,     0,     0,     0,     0,     0,
    61,    61,     0,   270,   124,     0,     7,   149,   150,    20,
     0,    12,     0,    61,   623,     0,    88,    88,    88,    88,
    23,     0,     0,     0,   124,     0,     0,     0,     0,     0,
     0,     0,     0,    28,     0,     0,    20,    88,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    23,    35,    36,
     0,     0,     0,   733,    61,    61,    61,     0,     0,     0,
    28,     0,   228,   124,     0,     0,     0,     0,     0,     0,
     0,     0,   229,     0,     0,    35,    36,     0,     0,     0,
    42,     0,   870,   874,     0,   230,     0,     0,     0,  1707,
    88,   874,     0,     0,    88,     0,     0,     0,     0,  1708,
     0,     0,    88,    88,     0,     0,     0,    42,     0,   736,
    88,     0,  1709,   738,     0,     0,     0,     0,   124,     0,
   124,   124,     0,     0,   380,     0,     8,     9,    10,    11,
     0,     0,    14,    15,     0,     0,     0,     0,    16,     0,
    61,    61,   186,    88,     0,    88,     0,     0,     0,     0,
    88,    88,    18,    88,    19,     0,     0,   380,   874,     0,
     0,    22,     0,     0,     0,     0,     0,     0,     0,     0,
    25,   124,     0,     0,     0,     0,     0,     0,     0,    28,
     0,     0,     0,     0,     0,     0,     0,  1463,     0,     0,
     0,   874,     0,     0,   152,   153,   380,     0,   870,     0,
     0,  1011,  1012,   124,  1016,  1017,  1018,  1019,  1020,  1021,
  1022,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1031,
  1032,  1033,  1034,     0,   874,     0,     0,     0,     0,     0,
   874,  1040,     0,     0,     0,     0,    61,     0,     0,     0,
     0,    61,    61,    61,   186,   186,   186,     0,    61,    61,
     0,     0,   124,     0,     0,   124,     0,     0,     0,     0,
     0,     0,     0,   874,     0,     0,     0,   124,     0,     0,
   874,     0,     0,     0,     0,     0,     0,     0,   874,  1463,
  1463,  1463,     0,     0,     0,     0,   335,   149,   150,   149,
   150,    12,     0,     0,     0,     0,    15,     0,  1115,  1117,
     0,     0,   756,     0,    61,    61,    61,     0,     0,     0,
     0,     0,     0,    61,   380,     0,    20,     0,    20,     0,
     0,     0,     0,     0,     0,     0,     0,    23,     0,     0,
     0,     0,     0,   733,     0,   733,     0,     0,     0,   124,
    28,   921,    28,     0,    88,    88,    88,     0,     0,     0,
     0,     0,     0,     0,     0,    35,   359,   152,   153,     0,
     0,     0,     0,     0,     0,   124,     0,     0,     0,  1363,
     0,   734,     0,     0,     0,     0,    88,    88,     0,  1364,
     0,   735,     0,     0,     0,     0,     0,    42,   870,   736,
     0,   736,  1365,   738,   737,   738,     0,     7,   149,   150,
     0,     0,    12,     0,     0,     0,     0,     0,     0,     7,
   149,   150,     0,     0,    12,     0,     0,   281,     0,     0,
     0,     0,  1465,     0,     0,     0,     0,    20,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    23,    20,
     0,     0,     0,     0,   733,     0,     0,   124,     0,     0,
    23,    28,     0,  1246,     0,     0,    88,     0,     0,     0,
     0,   124,   124,    28,   124,   124,    35,    36,     0,     0,
     0,   380,   380,     0,   380,     0,     0,     0,    35,    36,
  1707,     0,     0,     7,   149,   150,    88,     0,    12,   874,
  1708,    15,    38,     0,     0,     0,     0,     0,    42,     0,
   736,     0,    41,  1709,   738,     0,     0,     0,     0,     0,
    42,     0,     0,    20,     0,    43,     0,     0,     0,     0,
     0,     0,     0,   124,    23,     0,     0,     0,     0,     0,
   124,   143,     0,     0,     0,     0,     0,    28,     0,     0,
     0,     0,   270,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    35,    36,     0,     0,     0,   874,   874,     0,
     0,     0,   870,   874,     0,     0,   183,     0,     0,   124,
     0,     0,     0,     0,     0,     0,   184,     0,     0,   874,
     0,   874,     0,   874,    42,     0,     0,     0,     0,   185,
     0,     0,   921,     0,     0,     0,    88,    88,    88,     0,
    88,    88,    88,     0,     0,   193,     0,    88,     7,     8,
     9,    10,    11,    12,   240,    14,   241,     0,   874,     0,
     0,    16,     0,     0,     0,     0,     0,   239,     0,  1373,
     0,     0,    88,     0,     0,    18,     0,    19,    20,   874,
     0,     0,     0,     0,    22,     0,     0,     0,     0,    23,
     0,     0,     0,    25,   380,     0,     0,     0,   921,     0,
     0,   124,    28,     0,     0,     0,     0,  1400,  1465,  1465,
  1465,     7,     8,     9,     0,   226,    12,    35,    36,     0,
     0,   242,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    38,     0,     0,   124,   124,   124,     0,     0,     0,
     0,    41,     0,     0,     0,    88,     0,     0,     0,    42,
    88,     0,    23,    88,    43,     0,   874,     0,     0,     0,
     0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
     0,     0,     0,   874,     0,     0,   149,   150,     0,     0,
    35,    36,     0,   281,  1750,   193,   193,   193,     0,     0,
     0,     0,     0,     0,   228,     0,     0,     0,     0,     0,
     0,     0,    88,    88,   229,    20,     0,     0,     0,    88,
     0,   239,    42,     0,     0,    88,    88,   230,     0,  1495,
     0,     0,   733,     0,     0,     0,     0,     0,    88,    28,
   239,   239,   585,     0,     0,   124,   124,     0,     0,   124,
     0,     0,   124,     0,   152,   153,     0,     0,     0,     0,
     0,   124,     0,     0,     0,     0,     0,     0,   734,   239,
     0,     0,   124,     0,     0,     0,     0,     0,   735,    88,
    88,    88,     0,     0,     0,   870,   870,     0,   736,     0,
  1524,   737,   738,     7,     8,     9,     0,   226,    12,     0,
   474,   475,     0,   476,   477,     0,   478,   479,     0,     0,
     0,   380,   480,   481,   482,   483,   484,   485,   486,   487,
   488,   489,   490,   491,   492,   493,   494,   495,   496,     0,
     0,     0,     0,     0,    23,     0,   497,   498,   499,   500,
     0,   501,     0,     0,   502,   636,   503,    28,   504,     0,
     0,  1258,     8,   930,    10,    11,    12,   240,    14,   241,
     0,     0,    35,    36,    16,    88,    88,    88,  1698,   505,
     0,     0,     0,     0,     0,   506,   228,     0,    18,     0,
    19,    20,     0,     0,     0,     0,   229,    22,     0,     0,
     0,     0,    23,     0,    42,     0,    25,     0,     0,   230,
     0,     0,   741,   741,   741,    28,   507,     0,     0,     0,
     0,     0,  1465,     0,     0,   874,     0,   874,     0,   874,
    35,    36,   921,     0,     0,     0,  1260,   870,     0,     0,
     0,     0,     0,     0,    38,     0,   870,   870,     0,     0,
     0,     0,     0,     0,    41,   870,     0,     0,     0,     0,
   124,     0,    42,     0,     0,     0,     0,    43,     0,     0,
     0,    88,  1654,  1655,   239,     0,    88,    88,    88,    88,
    88,    88,     0,    88,    88,     0,     0,     0,     0,     0,
     0,     0,     7,     8,     9,    10,    11,    12,   240,    14,
   241,     0,     0,     0,     0,    16,     0,     0,     0,     0,
     0,     0,     0,     0,  1465,  1465,  1465,     0,     0,    18,
     0,    19,    20,   124,   124,     0,   124,     0,    22,   874,
     0,     0,     0,    23,     0,     0,     0,    25,     0,    88,
    88,    88,     0,     0,     0,     0,    28,     0,    88,     0,
   124,     0,     0,   124,   124,     0,     0,     0,     0,     0,
     0,    35,    36,     0,     0,  1752,     7,     8,     9,     0,
   226,    12,     0,     0,     0,    38,     0,     0,     0,     0,
     0,     0,  1732,     0,     0,    41,     0,     0,     0,     0,
     0,     0,     0,    42,     0,     0,   239,   239,    43,     0,
   239,     0,   585,   585,   585,   900,     0,    23,     0,   239,
     0,     0,     0,     0,   239,     0,     0,   239,     0,     0,
    28,     0,   870,   237,     0,     7,     8,     9,    10,    11,
    12,   201,    14,    15,   921,    35,    36,     0,    16,  1774,
     0,     0,     0,     0,     0,     0,     0,     0,   292,   228,
     0,   296,    18,     0,    19,    20,     0,     0,     0,   229,
   870,    22,     0,     0,     0,     0,    23,    42,     0,     0,
    25,   921,   230,     0,     0,     0,     0,  1801,     0,    28,
     0,     0,     0,     0,   292,     0,   413,     0,     0,     0,
   124,     0,   124,     0,    35,    36,     0,     0,     0,     7,
     8,     9,     0,   226,    12,   249,   250,   251,    38,     0,
     0,     0,    16,     0,     0,     0,     0,     0,    41,     0,
     7,   149,   150,     0,     0,    12,    42,     0,   623,    20,
     0,    43,     0,   874,     0,    22,     0,     0,     0,  1049,
    23,     0,     0,     0,    25,     0,   733,     0,     0,     0,
    20,  1854,  1855,    28,     0,     0,   741,   741,     0,   741,
     0,    23,     0,     0,     0,     0,   741,   237,    35,    36,
   124,     0,     0,     0,    28,     0,     0,     0,     0,     0,
     0,  1869,   228,     0,     0,     0,   237,   237,   237,    35,
    36,   239,   229,     0,     0,     0,   591,     0,   417,   419,
    42,     0,     0,    38,     0,  1754,     0,     0,     0,  1890,
     0,     0,     0,    41,     0,   237,     0,     0,     0,     0,
     0,    42,     0,     0,     0,     0,    43,     0,     0,     0,
  1140,     0,  1140,  1140,     0,   741,     0,     0,     0,  1904,
     0,   296,     0,     0,     0,     7,     8,     9,    10,    11,
    12,   240,    14,   241,     0,   292,     0,     0,    16,     0,
     0,   741,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,     0,    19,    20,     0,     0,     0,     0,
     0,    22,     0,     0,     0,     0,    23,     0,     0,     0,
    25,     0,     0,     0,     0,     0,     0,   124,   124,    28,
     0,     0,     0,     0,  1140,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    35,    36,   239,   239,   900,   900,
   900,     0,     0,     0,   239,     0,     0,     0,    38,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    41,     0,
     0,     0,     0,     0,     0,     0,    42,     0,     0,     0,
     0,    43,   870,     0,   292,   296,     0,     0,     0,     0,
     0,     0,     0,     0,   239,     0,     0,     0,     8,     9,
    10,    11,     0,   201,    14,    15,     0,     0,   879,     0,
    16,     0,     0,     0,     0,     0,   636,   636,   636,     0,
     0,     0,     0,     0,    18,     0,    19,    20,   124,   124,
   124,   124,   124,    22,     0,   124,   124,     0,     0,     0,
   237,     0,    25,     0,   733,     0,     0,     0,     0,     0,
     0,    28,     0,   335,     8,     9,     0,   226,    12,     0,
     0,     0,     0,     0,     0,     0,   152,   153,   671,     0,
     0,     0,  1658,   149,   150,     0,     0,    12,     0,     0,
   734,     0,     0,    20,     0,     0,     0,     0,     0,     0,
   735,   124,   124,   124,    23,     0,     0,     0,     0,     0,
   736,     0,     0,   737,   738,     0,     0,    28,     0,     0,
     0,     0,     0,    23,     0,     0,     0,   741,   741,     0,
     0,   741,    35,   359,   741,     0,    28,     0,     0,     0,
     0,     0,     0,   741,     0,     0,   896,   741,   741,   741,
     0,    35,    36,     0,   741,     0,   897,  1660,     0,   807,
     0,     0,     0,     0,    42,    38,     0,     0,     0,   898,
     0,     0,   237,   237,     0,    41,   237,     0,   237,   237,
   237,   237,     0,    42,     0,   237,     0,     0,    43,     0,
   237,     0,     0,   237,     0,     0,     0,     0,  1140,  1140,
  1398,     0,     0,     8,     9,    10,  1391,     0,   201,    14,
    15,     0,     0,   879,     0,    16,     0,   838,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
   239,    19,    20,     8,     9,    10,    11,     0,    22,    14,
   281,     0,     0,     0,     0,    16,     0,    25,     0,   733,
     0,     0,     0,     0,     0,     0,    28,     0,     0,    18,
     0,    19,     0,     0,     0,     0,     0,     0,    22,     0,
     0,   152,   153,     0,     0,     0,  1398,    25,     0,   733,
     0,   881,     0,     0,     0,  1794,    28,     0,     0,     0,
   900,   900,   900,     0,     0,  1795,     0,     0,     0,     0,
     0,   152,   153,     0,     0,   736,     0,     0,  1796,   738,
   239,     0,     0,     0,     0,   734,     0,     0,     8,     9,
     0,   226,     0,     0,     0,   735,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   736,     0,     0,   737,   738,
     0,     0,     0,     0,     0,   292,   296,    20,     0,     0,
   969,     0,     0,   972,     0,     0,     0,   973,     0,   975,
   976,   977,   978,   979,   733,   986,     0,   237,     0,     0,
     0,    28,     0,     0,     0,   671,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   152,   153,     0,  1010,
     0,     0,     0,     0,     0,  1049,  1049,     0,  1049,     0,
  1794,     0,     0,     0,     0,     0,   237,     0,   237,   237,
  1795,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   736,     0,   741,  1796,   738,   741,   741,   741,     0,     0,
   739,   739,   739,     0,     0,     0,     0,   149,   150,     0,
     0,     0,     0,   250,   251,     0,  1071,     0,     0,    16,
  1140,  1140,  1140,  1071,  1398,  1398,  1398,  1559,     0,     0,
     0,  1140,     0,     8,     9,    10,    11,     0,   837,    14,
    15,     0,    22,     0,     0,    16,     0,     0,     0,     0,
   237,    25,     0,   733,     0,     0,     0,     0,     0,    18,
    28,    19,   237,   237,   237,   237,   237,   591,    22,     0,
   237,   149,   150,     0,     0,   152,   153,    25,   623,     0,
     0,     0,     0,     0,     0,     0,    28,     0,     0,   734,
     0,     0,  1398,  1398,  1398,     0,   296,     0,     0,   735,
    20,   152,   153,     0,   900,   900,   900,   900,     0,   736,
   237,     0,   737,   738,  1174,     0,     0,   733,     0,  1179,
     0,     0,     0,     0,    28,     0,     0,     0,     0,   239,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   152,
   153,   682,   683,   684,   685,   686,   687,   688,   689,   690,
   691,   692,   693,   734,   695,   696,   697,   698,   699,   700,
   701,   702,   703,   735,     0,   807,     0,     0,     0,     0,
     0,     0,     0,   736,     0,     0,   737,   738,     0,     0,
     0,     0,     0,     0,     0,  1559,  1140,  1140,  1559,  1559,
  1559,     0,     0,  1140,     0,     0,     0,     0,     0,   239,
   239,  1830,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,  1711,   689,   690,   691,   692,   693,   694,   695,
   696,   697,   698,   699,   700,   701,   702,   703,     0,     0,
   881,     0,     0,     0,     0,     0,   881,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   239,     0,   239,     0,     0,     0,     0,
     0,   292,   296,   292,     0,  1831,   682,   683,   684,   685,
   686,   687,   688,   689,   690,   691,   692,   693,   694,   695,
   696,   697,   698,   699,   700,   701,   702,   703,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   237,   237,  1396,     8,     9,    10,
    11,   292,  1178,    14,    15,     0,     0,     0,  1327,    16,
     0,     0,     0,  1559,  1559,     0,  1559,     0,     0,     0,
     0,     0,     0,    18,     0,    19,   237,     0,     0,  1711,
  1711,  1814,    22,     0,   739,   739,     0,   739,     0,     0,
     0,    25,     0,     0,  1090,     0,  1010,     0,     0,     0,
    28,     0,   881,     0,     0,     0,  1071,     0,     0,     0,
     0,     0,     0,     0,     0,   152,   153,     0,     0,     0,
     0,     0,  1396,     0,     0,     0,   585,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   237,   237,   237,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   807,     0,  1386,     0,     0,   237,  1071,   739,     0,
   739,   739,     0,   739,     0,     0,  1559,  1559,  1559,  1559,
     0,     0,     0,     0,     0,   239,     0,   591,     0,     0,
  1711,  1711,  1711,  1814,  1814,  1814,     0,  1711,  1711,   739,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   881,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   585,   585,
   585,     0,     8,     9,    10,    11,     0,   240,    14,   241,
     0,     0,   739,  1071,    16,     0,     0,     0,  1559,     0,
     0,     0,     0,  1711,  1711,  1711,  1469,     0,    18,     0,
    19,    20,   239,     0,     0,     0,  1480,    22,     0,     0,
     0,     0,     0,   881,     0,     0,    25,     0,     0,     0,
     0,     0,     0,     0,   292,    28,   881,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   152,   153,     0,     0,  1581,     0,   237,   237,   237,     0,
   237,   237,  1396,   237,     0,  1560,     0,   237,     0,     0,
   881,     0,   881,     0,     0,     0,   474,   475,     0,   476,
   477,     0,   478,   479,     0,     0,     0,     0,   480,   481,
   482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
   492,   493,   494,   495,   496,     0,     0,  1529,     0,     0,
     0,     0,   497,   498,   499,   500,     0,   501,     0,     0,
   502,     0,   503,     0,   504,     0,     0,     0,  1396,  1396,
  1396,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   237,   237,   237,   237,  1071,   505,     0,     0,   842,     0,
     0,   506,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   237,     0,     0,     0,     0,
     0,     0,     0,  1071,     0,   739,   739,     0,     0,   739,
     0,     0,   739,     0,     0,     0,     0,     0,     0,     0,
     0,   739,     0,     0,     0,  1090,  1090,  1090,     0,     0,
     0,     0,   739,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   237,   237,   237,   237,   237,  1396,     0,     0,   237,
     0,     0,     0,     0,     0,   237,   237,     0,     0,     0,
     0,  1071,     0,     0,     0,     0,   739,   739,   739,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   878,     0,   335,     8,     9,    10,    11,
    12,   201,    14,   336,   337,   338,   879,   339,    16,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   237,
     0,   237,    18,   340,    19,    20,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,  1090,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,  1071,     0,   360,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,   237,
   237,  1560,   237,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   370,     0,     0,     0,     0,   474,   475,     0,
   476,   477,     0,   478,   479,     0,  -823,     0,   371,   480,
   481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
   491,   492,   493,   494,   495,   496,     0,     0,     0,     0,
     0,     0,     0,   497,   498,   499,   500,     0,   501,  1469,
     0,   502,  1396,   503,     0,   504,     0,     0,     0,     0,
     0,   980,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
     0,     0,   981,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   237,   237,  1396,   237,     0,     0,     0,     0,
   739,   237,     0,   739,   739,   739,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,  1071,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   739,   739,
   739,     0,   739,   739,   739,   739,     0,     0,     0,   739,
     0,     0,     0,     0,  1396,  1396,  1396,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   237,     0,     0,     0,     0,     0,
   474,   475,     0,   476,   477,     0,   478,   479,   237,     0,
     0,     0,   480,   481,   482,   483,   484,   485,   486,   487,
   488,   489,   490,   491,   492,   493,   494,   495,   496,     0,
  1090,  1090,  1090,     0,     0,  1071,   497,   498,   499,   500,
     0,   501,     0,     0,   502,     0,   503,     0,   504,     0,
     0,     0,  1071,     0,     0,     0,     0,     0,     0,     0,
     0,     0,  1430,     0,     0,     8,     9,    10,    11,   505,
   201,    14,    15,     0,     0,   759,     0,    16,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   671,     0,     0,
     0,    18,     0,    19,    20,     0,     0,     0,     0,     0,
    22,     0,     0,     0,     0,     0,     0,  1430,     0,    25,
  -997,  -997,  -997,  -997,   807,  -997,  -997,  -997,    28,     0,
     0,     0,  -997,   739,   739,   739,   739,   739,   739,     0,
     0,   739,     0,   152,   153,  -995,  -997,    20,  -997,  -997,
     0,     0,     0,     0,     0,  -997,     0,     0,     0,     0,
   739,     0,     0,     0,  -997,     0,     0,     0,     0,     0,
     0,     0,     0,  -997,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,  -997,  -997,
  -997,     0,     0,   682,   683,   684,   685,   686,   687,   688,
   689,   690,   691,   692,   693,   694,   695,   696,   697,   698,
   699,   700,   701,   702,   703,     0,     0,     0,     0,  1859,
     0,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
     0,     0,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
     0,  -496,     0,     0,     0,     0,     0,  -496,  -496,  -496,
  -496,     0,  -496,     0,     0,  -496,  -496,  -496,  -496,  -496,
     0,   739,   739,     0,   739,  -496,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   739,   739,   739,
  -496,  -496,  -496,  -496,  -496,     0,  -496,  -496,  -496,  -496,
  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,     0,
  -496,  -496,  -496,     0,  -496,  -496,  -496,  -496,  -496,  -496,
     0,  -496,     0,     0,     0,     0,  1860,     0,     0,     0,
     0,  -496,  -496,  -496,     0,  -496,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
     9,    10,    11,     0,     0,    14,    15,     0,     0,     0,
     0,    16,     0,     0,   739,   739,   739,   739,     0,     0,
     0,     0,     0,     0,     0,    18,     0,    19,   739,   739,
   739,   739,   739,   739,    22,   739,   739,     0,     0,     0,
     0,     0,     0,    25,     0,     0,     0,     0,     0,     0,
     0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   152,   153,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   739,     0,     0,     0,
     0,   739,   739,   739,  1594,     0,  1595,  1596,  1597,    10,
    11,    12,   201,    14,   336,   337,   338,     0,   339,    16,
  1598,     0,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
  1607,  1608,    17,    18,   340,    19,    20,    21,     0,   341,
   342,   343,    22,     0,   344,   345,   346,    23,   347,   348,
  1609,    25,  1610,     0,     0,   349,   350,   351,   352,   353,
    28,     0,     0,     0,   354,     0,   355,     0,     0,     0,
   356,     0,     0,   357,     0,  1611,   359,   865,     0,  1612,
   360,     0,     0,     0,     0,     0,   361,     0,     0,   362,
     0,     0,     0,     0,     0,     0,     0,   363,   364,   365,
     0,     0,     0,     0,     0,   366,   367,   368,     0,     0,
     0,     0,   369,   370,  1613,     0,  1013,     0,   335,     8,
     9,    10,    11,    12,   201,    14,   336,   337,   338,   371,
   339,    16,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    18,   340,    19,    20,    21,
     0,   341,   342,   343,    22,     0,   344,   345,   346,    23,
   347,   348,     0,    25,     0,     0,     0,   349,   350,   351,
   352,   353,    28,     0,     0,     0,   354,     0,   355,     0,
     0,     0,   356,     0,     0,   357,     0,    35,   359,  1885,
     0,  -813,   360,     0,     0,     0,     0,     0,   361,     0,
     0,   362,     0,     0,     0,     0,     0,     0,     0,   363,
   364,   365,     0,     0,     0,     0,     0,   366,   367,   368,
     0,     0,     0,     0,   369,   370,     0,     0,   663,     0,
   335,     8,     9,    10,    11,    12,     0,    14,   336,   337,
   338,   371,   339,    16,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    18,   340,    19,
    20,    21,     0,   341,   342,   343,    22,     0,   344,   345,
   346,    23,   347,   348,     0,    25,     0,     0,     0,   349,
   350,   351,   352,   353,    28,     0,     0,     0,   354,     0,
   355,     0,     0,     0,   356,     0,     0,   357,     0,    35,
   359,  -319,     0,     0,   360,     0,     0,     0,     0,     0,
   361,     0,     0,   664,     0,     0,     0,     0,     0,     0,
     0,   363,   364,   665,     0,     0,     0,     0,     0,   366,
   367,   368,     0,     0,     0,     0,   666,   370,     0,     0,
   868,     0,   999,  1000,  1001,  1002,  1003,    12,     0,    14,
   640,   337,   338,   371,   339,    16,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,    18,
   340,    19,     0,    21,     0,   341,   342,   343,    22,     0,
   344,   345,   346,    23,   347,   348,     0,    25,     0,     0,
     0,   349,   350,   351,   352,   353,    28,     0,     0,     0,
   354,     0,   355,     0,     0,     0,   356,     0,     0,   357,
     0,  1004,  1005,   869,     0,     0,   360,     0,     0,     0,
     0,     0,   361,     0,     0,   362,     0,     0,     0,     0,
     0,     0,     0,   363,   364,   365,     0,     0,     0,     0,
     0,   366,   367,   368,     0,     0,     0,     0,   369,   370,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,  1206,   371,   868,     0,   999,  1000,
  1001,  1002,  1003,    12,     0,    14,   640,   337,   338,     0,
   339,    16,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,    18,   340,    19,     0,    21,
     0,   341,   342,   343,    22,     0,   344,   345,   346,    23,
   347,   348,     0,    25,     0,     0,     0,   349,   350,   351,
   352,   353,    28,     0,     0,     0,   354,     0,   355,     0,
     0,     0,   356,     0,     0,   357,     0,  1004,  1005,   869,
     0,     0,   360,     0,     0,     0,     0,     0,   361,     0,
     0,   362,     0,     0,     0,     0,     0,     0,     0,   363,
   364,   365,     0,     0,     0,     0,     0,   366,   367,   368,
     0,     0,     0,     0,   369,   370,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  -500,   371,   868,     0,   999,  1000,  1001,  1002,  1003,    12,
     0,    14,   640,   337,   338,     0,   339,    16,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,    18,   340,    19,     0,    21,     0,   341,   342,   343,
    22,     0,   344,   345,   346,    23,   347,   348,     0,    25,
     0,     0,     0,   349,   350,   351,   352,   353,    28,     0,
     0,     0,   354,     0,   355,     0,     0,     0,   356,     0,
     0,   357,     0,  1004,  1005,   869,     0,     0,   360,     0,
     0,     0,     0,     0,   361,     0,     0,   362,     0,     0,
     0,     0,     0,     0,     0,   363,   364,   365,     0,     0,
     0,     0,     0,   366,   367,   368,     0,     0,     0,     0,
   369,   370,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,  1633,   371,   868,     0,
   335,     8,     9,    10,    11,    12,     0,    14,   640,   337,
   338,     0,   339,    16,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,    18,   340,    19,
     0,    21,     0,   341,   342,   343,    22,     0,   344,   345,
   346,    23,   347,   348,     0,    25,     0,     0,     0,   349,
   350,   351,   352,   353,    28,     0,     0,     0,   354,     0,
   355,     0,     0,     0,   356,     0,     0,   357,     0,    35,
   359,   869,     0,     0,   360,     0,     0,     0,     0,     0,
   361,     0,     0,   362,     0,     0,     0,     0,     0,     0,
     0,   363,   364,   365,     0,     0,     0,     0,     0,   366,
   367,   368,     0,     0,     0,     0,   369,   370,     0,     0,
     0,     0,     0,     0,  1637,   663,     0,     7,     8,     9,
    10,  1391,    12,   371,    14,   336,   337,   338,     0,   339,
    16,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,    20,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,    36,  -319,     0,
     0,   360,     0,     0,     0,     0,     0,   361,     0,     0,
  1846,     0,     0,     0,     0,     0,     0,     0,   363,   364,
  1847,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,  1848,   370,     0,     0,   868,     0,   335,
     8,     9,    10,    11,    12,     0,    14,   640,   337,   338,
   371,   339,    16,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    18,   340,    19,     0,
    21,     0,   341,   342,   343,    22,     0,   344,   345,   346,
    23,   347,   348,     0,    25,     0,     0,     0,   349,   350,
   351,   352,   353,    28,     0,     0,     0,   354,     0,   355,
     0,     0,     0,   356,     0,     0,   357,     0,    35,   359,
   869,     0,     0,   360,     0,     0,     0,     0,     0,   361,
     0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
   363,   364,   365,     0,     0,     0,     0,     0,   366,   367,
   368,     0,     0,     0,     0,   369,   370,     0,     0,   868,
     0,   999,  1000,  1001,  1002,  1003,    12,     0,    14,   640,
   337,   338,   371,   339,    16,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,     0,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,     0,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
  1004,  1005,   869,     0,     0,   360,     0,     0,     0,     0,
     0,   361,     0,     0,   362,     0,     0,     0,     0,     0,
     0,     0,   363,   364,   365,     0,     0,     0,     0,     0,
   366,   367,   368,     0,     0,     0,     0,   369,   370,     0,
     0,  1013,     0,   335,     8,     9,    10,    11,    12,     0,
    14,   640,   337,   338,   371,   339,    16,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,     0,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,     0,     0,     0,   360,  -813,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   369,
   370,     0,     0,  1939,     0,   335,     8,     9,    10,    11,
    12,     0,    14,   336,   337,   338,   371,   339,    16,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,     0,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,  -199,   360,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   370,     0,     0,  1013,     0,   335,     8,     9,
    10,    11,    12,     0,    14,   640,   337,   338,   371,   339,
    16,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,     0,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,   359,     0,     0,
     0,   360,     0,     0,     0,     0,     0,   361,     0,     0,
   362,     0,     0,     0,     0,     0,     0,     0,   363,   364,
   365,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,   369,   370,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,  -813,  1114,
   371,   335,     8,     9,    10,    11,    12,     0,    14,   640,
   337,   338,     0,   339,    16,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,     0,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,     0,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
    35,   359,     0,     0,     0,   360,     0,     0,     0,     0,
     0,   361,     0,     0,   362,     0,     0,     0,     0,     0,
     0,     0,   363,   364,   365,     0,     0,     0,     0,     0,
   366,   367,   368,     0,     0,     0,     0,   369,   370,     0,
     0,  1116,     0,   335,     8,     9,    10,    11,    12,     0,
    14,   640,   337,   338,   371,   339,    16,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,     0,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,     0,     0,     0,   360,     0,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   369,
   370,     0,     0,  1903,     0,   335,     8,     9,    10,    11,
    12,     0,    14,   640,   337,   338,   371,   339,    16,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,     0,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,     0,   360,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   370,   335,     8,     9,    10,    11,    12,     0,
    14,   640,   337,   338,     0,   339,    16,     0,   371,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,     0,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,     0,     0,     0,   360,     0,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   369,
   370,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   371,  1052,  1595,  1596,
  1597,    10,    11,    12,   201,    14,   336,   337,   338,     0,
   339,    16,  1598,     0,  1599,  1600,  1601,  1602,  1603,  1604,
  1605,  1606,  1607,  1608,    17,    18,   340,    19,    20,    21,
     0,   341,   342,   343,    22,     0,   344,   345,   346,    23,
   347,   348,  1609,    25,  1610,     0,     0,   349,   350,   351,
   352,   353,    28,     0,     0,     0,   354,     0,   355,     0,
     0,     0,   356,     0,     0,   357,     0,  1611,   359,   865,
     0,  1612,   360,     0,     0,     0,     0,     0,   361,     0,
     0,   362,     0,     0,     0,     0,     0,     0,     0,   363,
   364,   365,     0,     0,     0,     0,     0,   366,   367,   368,
     0,     0,     0,     0,   369,   370,  1613,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  1761,   371,  1595,  1596,  1597,    10,    11,    12,   201,    14,
   336,   337,   338,     0,   339,    16,  1598,     0,  1599,  1600,
  1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,    17,    18,
   340,    19,    20,    21,     0,   341,   342,   343,    22,     0,
   344,   345,   346,    23,   347,   348,  1609,    25,  1610,     0,
     0,   349,   350,   351,   352,   353,    28,     0,     0,     0,
   354,     0,   355,     0,     0,     0,   356,     0,     0,   357,
     0,  1611,   359,   865,     0,  1612,   360,     0,     0,     0,
     0,     0,   361,     0,     0,   362,     0,     0,     0,     0,
     0,     0,     0,   363,   364,   365,     0,     0,     0,     0,
     0,   366,   367,   368,     0,     0,     0,     0,   369,   370,
  1613,     0,     0,     0,  1595,  1596,  1597,    10,    11,    12,
   201,    14,   336,   337,   338,   371,   339,    16,  1598,     0,
  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,
    17,    18,   340,    19,    20,    21,     0,   341,   342,   343,
    22,     0,   344,   345,   346,    23,   347,   348,  1609,    25,
  1610,     0,     0,   349,   350,   351,   352,   353,    28,     0,
     0,     0,   354,     0,   355,     0,     0,     0,   356,     0,
     0,   357,     0,  1611,   359,  1913,     0,  1612,   360,     0,
     0,     0,     0,     0,   361,     0,     0,   362,     0,     0,
     0,     0,     0,     0,     0,   363,   364,   365,     0,     0,
     0,     0,     0,   366,   367,   368,     0,     0,     0,     0,
   369,   370,  1613,     0,     0,     0,  1595,  1596,  1597,    10,
    11,    12,   201,    14,   336,   337,   338,   371,   339,    16,
  1598,     0,  1599,  1600,  1601,  1602,  1603,  1604,  1605,  1606,
  1607,  1608,    17,    18,   340,    19,    20,    21,     0,   341,
   342,   343,    22,     0,   344,   345,   346,    23,   347,   348,
  1609,    25,  1610,     0,     0,   349,   350,   351,   352,   353,
    28,     0,     0,     0,   354,     0,   355,     0,     0,     0,
   356,     0,     0,   357,     0,  1611,   359,     0,     0,  1612,
   360,     0,     0,     0,     0,     0,   361,     0,     0,   362,
     0,     0,     0,     0,     0,     0,     0,   363,   364,   365,
     0,     0,     0,     0,     0,   366,   367,   368,     0,     0,
     0,     0,   369,   370,  1613,   335,     8,     9,    10,    11,
    12,   201,    14,   336,   337,   338,   879,   339,    16,   371,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,    20,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,   733,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,     0,   360,
     0,     0,     0,     0,     0,   361,     0,     0,  1085,     0,
     0,     0,     0,     0,     0,     0,   363,   364,  1086,     0,
     0,     0,     0,     0,   366,   367,   368,     0,   736,     0,
     0,  1087,  1088,     7,     8,     9,    10,  1391,    12,   201,
    14,   336,   337,   338,   879,   339,    16,     0,   371,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,    20,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
   733,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,    36,     0,     0,     0,   360,     0,     0,
     0,     0,     0,   361,     0,     0,  1460,     0,     0,     0,
     0,     0,     0,     0,   363,   364,  1461,     0,     0,     0,
     0,     0,   366,   367,   368,     0,   736,     0,     0,  1462,
  1088,   335,     8,     9,    10,    11,    12,     0,    14,   336,
   337,   338,     0,   339,    16,     0,   371,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,    20,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,   733,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
    35,   359,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   361,     0,     0,  1085,     0,     0,     0,     0,     0,
     0,     0,   363,   364,  1086,     0,     0,     0,     0,     0,
   366,   367,   368,     0,   736,     0,     0,  1087,  1088,     7,
     8,     9,    10,  1391,    12,     0,    14,   336,   337,   338,
     0,   339,    16,     0,   371,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    18,   340,    19,    20,
    21,     0,   341,   342,   343,    22,     0,   344,   345,   346,
    23,   347,   348,     0,    25,     0,   733,     0,   349,   350,
   351,   352,   353,    28,     0,     0,     0,   354,     0,   355,
     0,     0,     0,   356,     0,     0,   357,     0,    35,    36,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   361,
     0,     0,  1460,     0,     0,     0,     0,     0,     0,     0,
   363,   364,  1461,     0,     0,     0,     0,     0,   366,   367,
   368,     0,   736,     0,     0,  1462,  1088,   335,     8,     9,
    10,    11,    12,     0,    14,   640,   337,   338,     0,   339,
    16,     0,   371,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,    20,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,   359,     0,     0,
     0,   360,     0,     0,     0,     0,     0,   361,     0,     0,
   664,     0,     0,     0,     0,     0,     0,     0,   363,   364,
   665,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,   666,   370,   335,     8,     9,    10,    11,
    12,     0,    14,   640,   337,   338,     0,   339,    16,     0,
   371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,     0,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,  1736,   360,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   370,   335,     8,     9,    10,    11,    12,   201,
    14,   336,   337,   338,     0,   339,    16,     0,   371,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,    20,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   369,
   370,     7,     8,     9,    10,  1391,    12,     0,    14,   640,
   337,   338,     0,   339,    16,     0,   371,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,    20,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,     0,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
    35,    36,     0,     0,     0,   360,     0,     0,     0,     0,
     0,   361,     0,     0,  1846,     0,     0,     0,     0,     0,
     0,     0,   363,   364,  1847,     0,     0,     0,     0,     0,
   366,   367,   368,     0,     0,     0,     0,  1848,   370,   335,
     8,     9,    10,    11,    12,     0,    14,   336,   337,   338,
     0,   339,    16,     0,   371,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    18,   340,    19,     0,
    21,     0,   341,   342,   343,    22,     0,   344,   345,   346,
    23,   347,   348,     0,    25,     0,     0,     0,   349,   350,
   351,   352,   353,    28,     0,     0,     0,   354,     0,   355,
     0,     0,     0,   356,     0,     0,   357,     0,   358,   359,
     0,     0,     0,   360,     0,     0,     0,     0,     0,   361,
     0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
   363,   364,   365,     0,     0,     0,     0,     0,   366,   367,
   368,     0,     0,     0,     0,   369,   370,   335,     8,     9,
    10,    11,    12,     0,    14,   336,   337,   338,     0,   339,
    16,     0,   371,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,     0,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,   359,     0,     0,
     0,   360,     0,     0,     0,     0,     0,   361,     0,     0,
   362,     0,     0,     0,     0,     0,     0,     0,   363,   364,
   365,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,   369,   370,   335,     8,     9,    10,    11,
    12,     0,    14,   640,   337,   338,     0,   339,    16,     0,
   371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,     0,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,     0,   360,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   370,   335,     8,     9,    10,    11,    12,     0,
    14,   640,   337,   338,     0,   339,    16,     0,   371,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,     0,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,   679,     0,     0,     0,     0,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   680,
   370,   335,     8,     9,    10,    11,    12,     0,    14,   640,
   337,   338,     0,   339,    16,     0,   371,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,    20,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,     0,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
    35,   359,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   361,     0,     0,   664,     0,     0,     0,     0,     0,
     0,     0,   363,   364,   665,     0,     0,     0,     0,     0,
   366,   367,   368,     0,     0,     0,     0,   666,   370,   335,
     8,     9,   994,    11,    12,     0,    14,   640,   337,   338,
     0,   339,    16,     0,   371,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    18,   340,    19,     0,
    21,     0,   341,   342,   343,    22,     0,   344,   345,   346,
    23,   347,   348,     0,    25,     0,     0,     0,   349,   350,
   351,   352,   353,    28,     0,     0,     0,   354,     0,   355,
     0,     0,     0,   356,     0,     0,   357,     0,    35,   359,
     0,     0,     0,   360,     0,     0,     0,     0,     0,   361,
     0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
   363,   364,   365,     0,     0,     0,     0,     0,   366,   367,
   368,     0,     0,     0,     0,   369,   370,  1379,     8,     9,
    10,    11,    12,     0,    14,   640,   337,   338,     0,   339,
    16,     0,   371,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,     0,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,   359,     0,     0,
     0,   360,     0,     0,     0,     0,     0,   361,     0,     0,
   362,     0,     0,     0,     0,     0,     0,     0,   363,   364,
   365,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,   369,   370,     7,     8,     9,    10,  1391,
    12,     0,    14,   336,   337,   338,     0,   339,    16,     0,
   371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,    20,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,    36,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   361,     0,     0,  1846,     0,
     0,     0,     0,     0,     0,     0,   363,   364,  1847,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,  1848,   370,   335,     8,     9,    10,    11,    12,     0,
    14,   640,   337,   338,     0,   339,    16,     0,   371,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    18,   340,    19,     0,    21,     0,   341,   342,   343,    22,
     0,   344,   345,   346,    23,   347,   348,     0,    25,     0,
     0,     0,   349,   350,   351,   352,   353,    28,     0,     0,
     0,   354,     0,   355,     0,     0,     0,   356,     0,     0,
   357,     0,    35,   359,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   361,     0,     0,   362,     0,     0,     0,
     0,     0,     0,     0,   363,   364,   365,     0,     0,     0,
     0,     0,   366,   367,   368,     0,     0,     0,     0,   641,
   370,   335,     8,     9,    10,    11,    12,     0,    14,   640,
   337,   338,     0,   339,    16,     0,   371,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    18,   340,
    19,     0,    21,     0,   341,   342,   343,    22,     0,   344,
   345,   346,    23,   347,   348,     0,    25,     0,     0,     0,
   349,   350,   351,   352,   353,    28,     0,     0,     0,   354,
     0,   355,     0,     0,     0,   356,     0,     0,   357,     0,
    35,   359,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   361,     0,     0,   362,     0,     0,     0,     0,     0,
     0,     0,   363,   364,   365,     0,     0,     0,     0,     0,
   366,   367,   368,     0,     0,     0,     0,   644,   370,   335,
     8,     9,    10,    11,    12,     0,    14,   640,   337,   338,
     0,   339,    16,     0,   371,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    18,   340,    19,     0,
    21,     0,   341,   342,   343,    22,     0,   344,   345,   346,
    23,   347,   348,     0,    25,     0,     0,     0,   349,   350,
   351,   352,   353,    28,     0,     0,     0,   354,     0,   355,
     0,     0,     0,   356,     0,     0,   357,     0,    35,   359,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   361,
     0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
   363,   364,   365,     0,     0,     0,     0,     0,   366,   367,
   368,     0,     0,     0,     0,   369,   370,   335,     8,     9,
    10,    11,    12,     0,    14,   640,   337,   338,     0,   339,
    16,     0,   371,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,    18,   340,    19,     0,    21,     0,
   341,   342,   343,    22,     0,   344,   345,   346,    23,   347,
   348,     0,    25,     0,     0,     0,   349,   350,   351,   352,
   353,    28,     0,     0,     0,   354,     0,   355,     0,     0,
     0,   356,     0,     0,   357,     0,    35,   359,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   361,     0,     0,
   362,     0,     0,     0,     0,     0,     0,     0,   363,   364,
   365,     0,     0,     0,     0,     0,   366,   367,   368,     0,
     0,     0,     0,   648,   370,   335,     8,     9,    10,    11,
    12,     0,    14,   640,   337,   338,     0,   339,    16,     0,
   371,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,    18,   340,    19,     0,    21,     0,   341,   342,
   343,    22,     0,   344,   345,   346,    23,   347,   348,     0,
    25,     0,     0,     0,   349,   350,   351,   352,   353,    28,
     0,     0,     0,   354,     0,   355,     0,     0,     0,   356,
     0,     0,   357,     0,    35,   359,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   361,     0,     0,   362,     0,
     0,     0,     0,     0,     0,     0,   363,   364,   365,     0,
     0,     0,     0,     0,   366,   367,   368,     0,     0,     0,
     0,   369,   718,     0,     0,     0,     0,   474,   475,     0,
   476,   477,     0,   478,   479,     0,     0,     0,   371,   480,
   481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
   491,   492,   493,   494,   495,   496,     0,     0,     0,     0,
     0,     0,     0,   497,   498,   499,   500,     0,   501,     0,
     0,   502,     0,   503,     0,   504,     0,     8,     9,    10,
    11,     0,   201,    14,    15,     8,     9,    10,    11,    16,
   201,    14,    15,     0,     0,   879,   505,    16,     0,     0,
     0,     0,   506,    18,     0,    19,    20,     0,     0,     0,
     0,    18,    22,    19,    20,     0,     0,     0,     0,     0,
    22,   801,     0,     0,   202,     0,     0,     0,     0,    25,
    28,     0,     0,     0,     0,     0,     0,     0,    28,     0,
     0,     0,     0,     0,     0,   152,   153,     0,     0,     0,
     0,     0,     0,   152,   153,     8,     9,    10,    11,     0,
   201,    14,    15,     0,     0,  1907,     0,    16,     8,     9,
    10,    11,     0,   240,    14,   241,     0,     0,     0,     0,
    16,    18,     0,    19,    20,     0,     0,     0,     0,     0,
    22,     0,     0,     0,    18,     0,    19,    20,     0,    25,
     0,     0,     0,    22,     8,     9,    10,    11,    28,   201,
    14,    15,    25,     0,     0,     0,    16,     0,     0,     0,
     0,    28,     0,   152,   153,     0,     0,     0,     0,     0,
    18,     0,    19,    20,     0,     0,   152,   153,     0,    22,
     0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
     0,     0,     0,     0,     0,     0,     0,    28,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   152,   153,   682,   683,   684,   685,   686,   687,
   688,   689,   690,   691,   692,   693,   694,   695,   696,   697,
   698,   699,   700,   701,   702,   703,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   780,     0,     0,  1927,   682,
   683,   684,   685,   686,   687,   688,   689,   690,   691,   692,
   693,   694,   695,   696,   697,   698,   699,   700,   701,   702,
   703,  1921,   682,   683,   684,   685,   686,   687,   688,   689,
   690,   691,   692,   693,   694,   695,   696,   697,   698,   699,
   700,   701,   702,   703,   682,   683,   684,   685,   686,   687,
   688,   689,   690,   691,   692,   693,   694,   695,   696,   697,
   698,   699,   700,   701,   702,   703
};

static const short yycheck[] = {     4,
   195,    52,     4,   244,   208,   386,    25,   450,   391,   863,
     4,     4,   209,    90,   450,   179,   190,   511,    69,    90,
    11,   210,    90,   199,     4,   183,   184,   223,   397,   148,
    16,   558,   450,   398,   339,   340,   397,   822,   343,    67,
    45,   282,    94,    45,   286,   819,    52,    52,   107,   126,
   109,    45,    45,   765,   611,   155,   156,   677,    52,    52,
   156,   812,    67,  1437,  1041,    45,  1440,    33,   506,   714,
    52,    43,    52,   378,   935,   543,   937,    82,   155,   572,
   146,   421,   155,  1719,   945,  1614,  1177,   244,  1428,    94,
   331,    65,   252,   253,  1489,  1490,   253,     4,    52,   176,
   105,  1177,   107,  1828,   109,  1154,    52,    93,   176,  1851,
   169,  1506,  1161,  1436,    64,    14,     1,  1827,    13,    74,
   832,    13,   403,   404,   129,   130,   278,    13,     0,    40,
   158,     7,  1455,  1829,    78,    13,    78,    11,    45,  1881,
  1624,     7,   128,   670,   110,    52,   511,  1631,    90,    13,
   391,    35,   203,   158,   587,   397,    50,   538,    65,   114,
    67,   238,   595,     1,   169,     7,   171,     1,    63,   160,
   238,    63,  1882,   597,    50,     4,    75,    63,   158,    78,
   124,     7,   210,    78,    50,    63,   951,    50,   469,   470,
   614,    76,   957,   244,   199,    14,   273,   203,   203,    63,
  1942,   252,   253,    77,     7,   210,    86,     7,    50,   203,
   203,   183,   184,   185,   125,   109,    45,   199,     1,   199,
   297,   203,  1918,   203,    50,   124,   297,     7,    75,   124,
   124,   282,   124,   109,   110,   209,    74,  1577,   124,   189,
    74,   125,  1967,   109,    78,    50,   109,    50,   563,   203,
    50,   158,     4,    50,    65,    50,    75,   203,   230,    78,
   643,   124,  1657,    75,    76,   172,    50,   109,   110,    78,
    50,  1666,  1667,  1983,  1669,    29,     4,   111,   125,    33,
   331,    90,   124,   109,   110,   235,    38,  1923,   388,    41,
   655,    74,   199,    45,    76,    78,   203,   283,   124,  1828,
    52,  1624,   209,   210,   109,   862,   109,   110,  1885,   109,
   110,     4,   109,   110,   109,   388,    57,    45,  1083,   396,
    75,   124,    76,     7,   124,   109,    80,   332,   111,   109,
   110,   383,  1106,    50,     4,  1109,     0,   864,  1429,  1416,
   391,    50,    94,   125,   124,   441,    50,   406,  1832,    90,
   257,   231,    45,  1429,  1431,   720,   551,  1406,  1935,     3,
     4,     5,     6,     7,   369,   564,    50,   433,   248,   124,
    27,   125,  1157,   572,    90,    45,  1150,  1151,   383,   407,
  1131,    90,    52,    57,   802,    50,    76,   392,   757,   857,
   858,    57,   109,   589,  1174,  1040,   473,   762,   209,  1179,
   109,   406,   407,   454,    78,   109,   158,  1891,   846,   583,
    78,   397,    50,     4,     5,    80,    90,    74,  1183,    90,
    11,    78,   580,   581,    90,   109,   110,   407,    72,    73,
    50,   183,   184,   593,   594,   125,     9,   594,    75,    41,
   639,   601,    80,   886,   109,   450,   257,   199,   453,    90,
   886,   203,   792,   613,   111,     3,   124,   450,   951,  1943,
     8,    75,  1857,  1858,   957,   109,    57,    40,   459,    10,
    11,   109,   632,   672,    51,    16,   228,   229,   452,  1244,
   861,    72,    73,    14,   726,    33,   767,   124,   158,   109,
    57,    91,  1257,    93,   545,    86,    44,   463,    39,   882,
   407,     4,     5,   508,     7,    96,   705,    48,    11,    50,
   124,    78,   711,    50,    50,  1135,     3,     4,     5,   110,
    57,     8,    78,  1235,    72,    73,  1291,   109,  1293,   199,
    33,    75,   609,   203,    90,   129,   130,   109,    86,   545,
   545,   612,   593,   594,    75,   452,   605,    78,    96,    80,
   601,  1528,   751,    90,    57,    76,   104,    44,   635,    75,
   759,   109,   613,   545,    51,   545,    76,   572,   109,    72,
    73,   173,   109,   109,    27,    91,    29,    75,   180,   638,
   124,   632,    78,    86,   612,    72,    73,   109,    74,  1963,
  1083,    50,    78,    96,    90,    74,  1370,  1371,   839,    78,
   605,    64,    65,    66,   125,    74,   109,   612,   580,   581,
   582,    80,     3,     4,     5,   125,     4,   104,   612,   984,
    50,    74,    64,    65,    66,    78,   124,   229,    50,    90,
   109,   383,   612,   638,  1419,    57,   641,   109,   545,   644,
    50,   452,    90,   648,  1505,   650,   651,   652,   653,   654,
   109,   656,   856,   829,   731,   407,    29,    45,   111,    50,
    33,   666,   125,   715,    52,    76,    57,   574,    90,   123,
   747,    50,   677,     4,     5,   680,  1203,     4,     5,   109,
   587,    72,    73,   125,    50,  1242,   967,   109,   595,  1132,
  1183,    27,   294,    64,    65,    66,  1132,   793,   450,   109,
   800,    80,    75,    76,   800,   612,    94,  1684,    50,    78,
   715,     3,     4,     5,  1132,    57,     8,   216,   109,   770,
    57,    90,    75,   603,    51,  1094,    57,    76,  1043,    57,
   109,   110,   737,  1094,     4,     5,   795,   407,    91,   744,
    50,    72,    73,   109,    33,    72,    73,    50,    90,    78,
   910,  1244,    44,    90,   125,    86,     3,     4,     5,    51,
   811,     8,   748,   574,  1257,    96,   918,   109,   920,    96,
   158,    57,   583,   925,    57,    74,   587,  1562,    90,   110,
    72,    73,   801,    50,   595,  1090,     4,     5,   839,    50,
   795,    50,   125,   545,    57,   769,    74,    44,  1291,   109,
  1293,   829,    72,    73,   809,    57,   109,    90,   813,   928,
    57,   199,   104,    75,    76,   203,     3,     4,     5,   109,
   572,    57,   899,    57,   829,    72,    73,    90,   580,   581,
   835,   882,    57,    51,   808,   840,   810,   811,    90,  1038,
  1039,    78,   109,   862,  1125,  1044,    75,    76,   109,   829,
   109,    91,  1094,    90,    72,    73,   124,   104,   124,   910,
   612,  1060,   769,  1062,   935,  1064,   937,    64,    65,    66,
    57,    60,   943,    47,   945,   545,     4,     5,    96,    75,
    76,   886,    27,    57,    29,    72,    73,  1444,  1084,   110,
     3,     4,     5,   952,   953,     8,   955,    75,    76,    73,
  1099,   808,   809,   810,   811,    94,    95,   935,   882,   937,
  1437,  1696,    90,  1440,   942,   943,   124,   945,  1092,   124,
   522,  1120,   829,   525,  1481,     4,     5,   125,   125,    74,
   935,    44,   937,    78,  1428,   537,    76,    27,   943,    29,
   945,   935,   612,   937,    72,    73,   951,   952,   953,  1332,
   955,   945,   957,   114,    75,   935,    57,   937,   769,    72,
    73,    75,    76,   715,    41,   945,   111,    72,   942,    43,
    91,   109,    93,   575,   568,   882,   578,    78,    57,   886,
    57,     3,   734,   735,    74,   737,   127,  1191,    78,    90,
   592,   104,   744,    72,    73,   383,    76,   808,  1197,   810,
   811,  1316,  1317,    90,  1285,  1286,  1287,    86,    57,    78,
  1333,  1334,  1003,  1336,   110,  1800,  1093,    96,  1095,   407,
   127,   111,   341,   342,     3,     4,     5,    57,   935,    78,
   937,     4,     5,   109,  1039,   942,   943,   110,   945,  1044,
    90,    90,   109,   362,     4,     5,   365,     7,    78,   368,
    90,    11,    90,   372,     4,     5,   650,   376,   938,   939,
    90,    90,   450,  1428,    75,   384,  1143,   172,   948,     4,
     5,   882,  1077,    33,    27,  1143,    29,   829,  1083,    75,
    91,   109,  1087,  1577,    57,   190,    57,  1239,  1240,  1241,
   684,    75,    76,    72,    73,  1949,   109,    57,    70,    72,
    73,    51,     3,     4,     5,     6,     7,    78,  1094,   183,
   184,   185,    72,    73,    57,   109,    51,   125,   712,    90,
    78,    74,    72,    73,   718,    78,    86,  1132,    75,  1134,
  1135,   942,    90,  1138,   886,    78,    96,    72,    73,  1132,
    57,  1337,   247,  1458,   896,   897,    96,    90,   124,   109,
   255,   109,  1467,  1468,  1159,   124,   230,   545,   111,   829,
   124,  1476,  1153,   124,  1169,    90,  1138,   272,     4,     5,
    74,    72,    73,    75,    74,  1180,     4,     5,  1183,    60,
     9,    10,    11,   935,   572,   937,  1360,    16,    90,    91,
    76,    93,  1269,   945,  1168,    96,    75,    76,  1269,   951,
  1180,  1269,  1729,    78,    33,   957,    90,  1278,    90,  1214,
    39,   124,  1577,     4,     5,    51,    75,    76,  1745,    48,
  1248,  1395,  1227,    51,   612,    99,   100,     3,     4,     5,
     6,     7,  1237,   125,  1392,  1393,    72,    73,    75,  1244,
  1623,    50,  1214,    80,    72,    73,   124,  1446,  1424,  1448,
  1278,  1450,  1257,    90,    91,   125,  1420,  1421,  1539,    50,
    96,  1168,  1169,    75,    76,   935,    57,   937,    96,   127,
     4,     5,   127,  1278,  1248,   945,    75,    76,     3,     4,
     5,    72,    73,  1342,  1278,    29,  1291,    90,  1293,  1366,
  1170,    57,   894,   895,    90,    86,    72,    73,  1278,     7,
   902,    90,  1460,  1461,   127,    96,    14,    32,   127,   390,
   391,   392,    29,    75,    76,   106,    33,    51,   109,   110,
  1397,    29,   124,  1328,  1851,    33,   124,   715,  1643,  1397,
   124,  1083,    57,  1085,  1086,  1087,    74,  1342,    72,    73,
   124,  1248,    50,    75,    76,   664,   665,    72,    73,   737,
    57,  1550,    75,    76,  1881,    10,   744,  1168,    75,    76,
  1365,   109,    96,    80,   127,    50,  1681,    75,    76,    78,
    78,  1278,    80,     3,     4,     5,     6,     7,   127,  1553,
  1132,  1261,  1909,    80,  1136,  1137,  1138,  1267,  1268,  1394,
   109,  1271,  1272,    75,   125,  1275,  1424,    57,    76,    39,
  1391,   109,   110,    80,    80,     4,     5,  1159,    80,   124,
    74,  1416,    11,   124,   913,  1942,   124,     4,     5,  1424,
  1392,  1393,  1394,  1500,  1621,  1444,  1623,  1432,  1180,  1500,
  1435,  1183,  1875,  1622,  1505,    60,  1963,  1248,   124,  1875,
    76,   829,    72,    73,  1424,    14,    33,    76,   553,   124,
  1455,   124,    78,  1455,  1048,  1435,   124,  1462,    57,   124,
    80,  1455,  1214,    50,     3,     4,     5,     6,     7,   574,
    57,   124,   124,    72,    73,  1455,    80,  1505,   583,    80,
   127,  1388,     3,     4,     5,    72,    73,    86,  1460,  1461,
  1462,    91,  1244,   109,    75,   600,  1879,    96,   886,    86,
  1505,    11,   109,   124,    14,  1257,   580,   581,   582,    96,
  1180,  1505,    51,   964,   965,   966,  1897,  1424,   124,   106,
    91,   124,   109,   110,    91,  1505,  1278,     3,     4,     5,
     6,     7,   124,    72,    73,  1137,   124,    91,   124,  1291,
    50,  1293,  1422,  1423,    10,    11,    91,   935,    78,   937,
    16,    72,    73,  1558,   124,    78,   124,   945,   124,    43,
   124,  1566,   124,   951,    78,    75,    75,    77,    78,   957,
    80,   124,  1623,    39,    78,    51,   124,  1388,   124,   110,
   127,    91,    48,    93,  1395,    96,    97,    98,    99,   100,
  1497,   127,   104,  1567,  1568,  1502,    72,    73,  1505,   109,
   110,    90,     4,     5,    50,     7,   124,   124,  1278,  1614,
   125,  1363,  1364,  1365,   124,    76,  1693,  1622,   125,  1624,
  1614,   127,  1624,   124,   127,   124,  1631,   124,   124,  1631,
  1624,    33,    60,    75,  1614,  1640,    80,  1631,  1879,    80,
  1392,  1393,  1394,  1237,  1624,     6,    75,  1621,  1843,  1623,
    75,  1631,    78,  1811,  1812,    57,   124,   124,  1973,   109,
  1567,  1568,   109,   125,  1475,     3,     4,     5,     6,     7,
    72,    73,  1424,  1580,   109,   109,   125,    10,     3,     4,
     5,     6,     7,  1435,    86,   124,  1497,   124,  1846,  1847,
    60,   124,   124,    76,    96,  1083,   127,   124,    76,  1087,
   184,   185,   124,  1455,  1709,   124,   127,   109,  1460,  1461,
  1462,   125,   124,    76,  1621,  1622,  1623,   124,    35,    57,
  1472,  1473,    80,   124,   124,   124,  1930,   808,   124,   810,
   811,   124,   813,  1052,    72,    73,  1055,  1709,   124,    57,
   124,    78,  1553,   124,  1132,   127,   230,    72,    73,    74,
  1138,  1250,  1251,  1505,  1424,    50,  1567,  1568,   839,    60,
   124,   112,   124,    78,   124,  1435,  1085,  1086,     4,     5,
    78,  1159,    76,    76,    11,    18,    76,   124,  1277,     9,
    10,    11,  1754,  1282,  1664,  1665,    16,  1389,  1390,    76,
   124,  1796,  1180,   124,   124,  1183,   124,  1399,   124,    60,
    78,   882,    75,    33,  1556,  1557,  1558,   109,  1813,    39,
  1621,    47,  1623,   109,  1566,    80,    76,  1822,    48,    76,
   109,    57,  1827,  1828,  1829,  1827,  1214,  1832,  1879,  1803,
  1832,    57,    60,  1827,  1828,  1505,    72,    73,  1832,  1811,
  1812,  1813,   127,  1848,    19,   109,    76,  1827,  1828,    76,
    57,    60,  1832,   124,    76,   124,  1244,   123,   113,    13,
    76,  1455,  1614,     3,     4,     5,     6,     7,   124,  1257,
  1875,   124,  1624,    76,  1846,  1847,  1848,  1882,    76,  1631,
  1882,     3,     4,     5,   109,   369,  1891,     9,  1882,  1891,
  1278,    75,    80,   124,    76,   124,  1803,  1891,    13,    76,
   124,  1808,  1882,  1291,    13,  1293,  1880,    76,     0,  1816,
    32,  1891,    50,  1918,   228,   229,     0,    57,    40,     0,
   204,    45,  1516,  1517,  1518,  1519,     2,  1743,   793,  1132,
   545,   203,    72,    73,    74,    57,   943,    38,  1943,  1929,
    41,  1943,    43,  1444,   114,  1983,   273,  1728,   171,  1943,
    72,    73,  1554,  1555,  1529,  1707,  1708,  1709,   334,  1561,
  1065,  1118,   869,  1943,   102,   103,    67,  1072,    69,   107,
   108,   109,   110,  1880,    75,   908,  1113,  1365,  1983,   277,
  1278,  1983,  1242,  1502,  1065,  1111,  1797,  1092,  1481,  1983,
   776,  1072,  1803,   715,   943,   235,  1495,  1496,   672,  1498,
  1499,   388,  1501,  1983,   146,  1896,  1394,  1456,  1949,  1961,
  1959,  1092,  1222,  1607,  1640,    30,  1412,   950,  1568,  1705,
  1339,  1171,   846,   956,  1803,   847,  1435,  1816,  1099,   762,
  1624,  1911,     9,    10,    11,   384,  1424,  1631,   984,    16,
   761,    -1,  1794,  1795,  1796,    -1,    -1,  1435,   532,   533,
    -1,    -1,     3,     4,     5,  1866,    33,     8,    -1,  1811,
  1812,  1813,    39,    -1,  1138,    -1,    -1,  1455,    -1,  1880,
  1822,    48,   173,    -1,  1462,  1827,  1828,  1829,    -1,   180,
  1832,    -1,   183,   184,   185,    -1,    -1,    -1,  1682,    -1,
    -1,    -1,    -1,    44,  1846,  1847,    -1,   581,   582,    76,
    51,    -1,    -1,    -1,    -1,    -1,  1708,    -1,    -1,   210,
     3,     4,     5,     6,     7,   216,    -1,  1505,    -1,     4,
     5,    72,    73,  1875,    -1,    10,    11,   228,   229,   230,
  1882,    16,    -1,     3,     4,     5,     6,     7,     8,  1891,
  1214,  1460,  1461,   244,  1738,  1078,    -1,  1080,    -1,    -1,
    -1,   252,   253,   104,    39,  1654,  1655,   641,    -1,    -1,
   644,    -1,    -1,    48,   648,    50,  1918,    -1,    -1,    -1,
  1558,    -1,    57,    -1,    44,    -1,    -1,    -1,  1566,    72,
    73,   665,   666,    -1,    -1,    -1,    -1,    72,    73,    -1,
    -1,  1943,    -1,   294,    -1,    -1,   680,    -1,    -1,    -1,
    -1,    86,    72,    73,    -1,    -1,    -1,  1809,  1810,    -1,
    -1,    96,    -1,  1815,    -1,     3,     4,     5,     6,     7,
    -1,   106,    -1,    -1,   109,   110,  1614,    -1,  1822,    -1,
    -1,  1983,    -1,  1827,  1828,  1829,  1624,     1,  1832,     3,
     4,     5,    -1,  1631,     8,    -1,    10,     3,     4,     5,
     6,     7,    -1,    -1,    -1,  1360,    -1,   450,    -1,    -1,
   744,   575,    -1,    -1,   578,    -1,   580,   581,   369,  1871,
  1872,  1873,    -1,    -1,    -1,  1774,  1775,  1776,   592,  1360,
    44,    -1,    -1,  1388,    72,    73,    -1,    51,  1882,    -1,
  1395,    -1,    -1,    57,    -1,  1614,    -1,  1891,    -1,     3,
     4,     5,     6,     7,    -1,    -1,    -1,  1388,    72,    73,
    -1,    -1,    -1,    -1,  1395,    -1,    72,    73,  1392,  1393,
  1394,  1709,    -1,    -1,  1918,    -1,    -1,    -1,    -1,     1,
    -1,    -1,     4,     5,     6,     7,    -1,    -1,    10,    11,
   104,    -1,    -1,  1937,    16,    -1,    -1,    -1,    -1,  1943,
    -1,    -1,   453,   454,    -1,  1854,  1855,  1290,    30,  1292,
    32,    -1,    -1,    -1,  1958,    -1,    -1,    39,    72,    73,
  1475,    -1,    -1,  1967,    -1,    -1,    48,    -1,    -1,   572,
    -1,    -1,    -1,    -1,    -1,    57,  1460,  1461,  1462,  1983,
    -1,    -1,    64,    65,    66,    -1,    -1,    -1,    -1,    -1,
    72,    73,    -1,    -1,    76,    -1,    -1,    -1,  1796,    -1,
    -1,    -1,    -1,   897,   898,    -1,    -1,    -1,    -1,    -1,
    -1,   522,    -1,  1356,   525,  1813,    -1,    -1,    -1,    -1,
   531,   532,   533,    -1,  1822,  1934,   537,   564,    -1,  1827,
  1828,  1829,    -1,    -1,  1832,   572,    -1,    -1,  1553,    -1,
    -1,    -1,    -1,   125,     3,     4,     5,     6,     7,    -1,
     9,    10,    11,     3,     4,     5,    -1,    -1,     8,    -1,
    -1,    -1,  1553,    -1,   575,    -1,    -1,   578,    -1,   580,
   581,   582,    -1,    -1,    33,   586,   970,  1875,    -1,    -1,
    39,   592,   593,   594,  1882,    -1,   597,    -1,    -1,  1580,
   601,    41,    42,  1891,    44,    -1,    -1,    -1,    57,    -1,
    -1,    -1,   639,   614,    -1,    -1,    -1,    57,    -1,    -1,
    -1,    -1,    -1,    72,    73,    74,    -1,  1846,  1847,    -1,
  1918,    -1,    72,    73,    -1,    -1,     3,     4,     5,    -1,
   641,     8,    -1,   644,   737,   672,    -1,   648,    -1,    -1,
    -1,   744,  1485,   680,    -1,  1943,    -1,    -1,  1491,    -1,
    -1,    -1,    -1,   664,   665,   666,    33,    -1,    -1,    -1,
   119,   120,   121,    -1,    -1,    -1,    -1,    44,   705,   680,
   894,   895,   896,   897,   711,    -1,    -1,    -1,   902,    -1,
    57,     9,    10,    11,    -1,  1983,    -1,    -1,    16,    -1,
    -1,    -1,  1086,  1087,    -1,    72,    73,    -1,    -1,    -1,
  1543,    -1,    -1,    -1,    -1,    33,    -1,   744,    -1,    86,
    -1,    39,    -1,    -1,   751,    -1,    -1,    -1,    -1,    96,
    48,    -1,   759,   734,   735,  1709,   737,   104,    -1,    -1,
    -1,    -1,   109,   744,    92,    93,    94,    95,    96,    97,
    98,    99,   100,    -1,  1138,    -1,    -1,     1,    -1,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    -1,   770,
    -1,    -1,    16,    -1,     3,     4,     5,    -1,    -1,     8,
  1754,    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,    33,
    34,    -1,  1797,   886,    -1,    39,    -1,    -1,    -1,    -1,
    44,    -1,    -1,  1808,    48,    -1,    -1,    51,   809,    -1,
   811,   812,    -1,    57,    -1,    44,  1797,    -1,    -1,    -1,
    -1,    -1,    51,    -1,    -1,    -1,    -1,  1808,    72,    73,
  1214,    -1,    -1,    -1,    -1,  1816,    -1,  1811,  1812,  1813,
  1673,  1674,    86,    72,    73,    -1,     3,     4,     5,    -1,
     7,     8,    96,    -1,    11,    -1,  1689,    -1,   951,    -1,
   104,  1866,    -1,    -1,   957,   109,    -1,    96,    -1,    -1,
   114,    -1,  1846,  1847,  1848,   104,    33,    -1,    -1,    -1,
    -1,   882,    -1,    -1,    -1,  1866,    -1,    44,    -1,    -1,
    -1,    -1,    -1,   894,   895,   896,   897,   898,    -1,    -1,
    57,   902,    -1,    -1,    -1,     3,     4,     5,    -1,   910,
     8,    -1,   913,    -1,    -1,    72,    73,    -1,    -1,    -1,
    -1,    -1,  1136,  1137,    -1,    -1,    -1,    -1,    -1,    86,
    -1,    -1,    -1,  1766,    -1,  1768,    -1,    -1,    -1,    96,
    -1,    -1,   943,   970,    -1,    -1,    44,   104,    -1,    -1,
  1783,  1784,   109,    51,    -1,    -1,    -1,     1,    -1,    -1,
     4,     5,     6,     7,    -1,    -1,    10,    11,    -1,   970,
    -1,    -1,    16,    -1,    72,    73,    -1,    -1,    -1,    -1,
  1364,  1365,    -1,    -1,    -1,    -1,    30,    -1,    32,    -1,
  1083,    -1,    -1,    -1,  1087,    39,    -1,    -1,    96,    -1,
    -1,    -1,    -1,    -1,    48,    -1,   104,    -1,    -1,  1393,
  1394,  1038,  1039,    57,  1228,  1229,  1230,  1044,    -1,    -1,
    64,    65,    66,    -1,    -1,    -1,    -1,    -1,    72,    73,
    -1,    -1,    76,  1060,    -1,  1062,    -1,  1064,    -1,  1132,
    -1,    -1,    -1,    -1,     1,  1138,     3,     4,     5,     6,
     7,     8,     9,    10,    11,     3,     4,     5,    -1,    16,
     8,    -1,    -1,    -1,    -1,  1066,    -1,    -1,  1069,    -1,
    -1,    -1,  1099,    30,    -1,    32,    33,  1461,  1462,    -1,
  1081,   125,    39,    -1,  1085,  1086,  1087,    44,    -1,    -1,
  1183,    48,    -1,  1120,    51,    -1,    44,    -1,    -1,    -1,
    57,    -1,    50,    -1,    -1,    -1,    -1,    92,    -1,    57,
    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    76,
    -1,  1214,    -1,    -1,    72,    73,    -1,    -1,    -1,    86,
  1131,    -1,    -1,    -1,    -1,  1136,  1137,  1138,    86,    96,
    94,    95,    96,    97,    98,    99,   100,   104,    96,    -1,
    -1,  1244,   109,    -1,    -1,     4,   104,    -1,   106,    -1,
    -1,   109,   110,    -1,  1257,    -1,    -1,    16,  1169,    -1,
  1197,    -1,    -1,  1557,  1558,  1389,  1390,    26,  1392,  1393,
    -1,    -1,    -1,     4,     5,  1399,     7,  1214,    -1,    38,
    11,    -1,    41,    -1,    43,    -1,    45,    -1,  1291,    -1,
  1293,    -1,    -1,    52,    -1,    -1,    -1,    -1,   193,    -1,
    -1,    -1,    33,  1214,    -1,    -1,    65,    -1,    67,    -1,
     3,     4,     5,    -1,     7,     8,    75,  1228,  1229,  1230,
    -1,    -1,    -1,    82,    -1,    -1,    57,    -1,    -1,    -1,
   225,    -1,    -1,    -1,    93,    94,  1460,  1461,    -1,  1250,
  1251,    72,    73,    -1,   239,    -1,    -1,    -1,  1472,  1473,
    -1,    44,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    -1,    -1,  1365,    -1,    57,    96,  1277,    -1,    -1,   128,
    -1,  1282,    -1,    -1,    -1,    -1,    -1,    -1,   109,    72,
    73,    -1,    -1,    76,    -1,    78,    -1,    -1,    -1,    -1,
    -1,  1394,    -1,    86,    -1,    -1,    -1,   156,    -1,   158,
    -1,    -1,    -1,    96,     3,     4,     5,    -1,     7,     8,
    -1,   104,    11,   172,   173,  1709,   109,    -1,   177,    -1,
    -1,   180,    -1,    -1,   183,   184,   185,    -1,    -1,    -1,
  1554,  1555,  1556,  1557,    33,    -1,    -1,  1561,    -1,    -1,
   199,    -1,    -1,    -1,   203,    44,    -1,    -1,    -1,    -1,
   209,   210,  1363,  1364,  1365,    -1,    -1,    -1,    57,  1462,
  1754,    -1,    -1,     3,     4,     5,    -1,     7,     8,   228,
   229,   230,    -1,    72,    73,    -1,    -1,    -1,  1389,  1390,
    -1,  1392,  1393,  1394,    -1,    -1,    -1,    86,  1399,    -1,
     3,     4,     5,    -1,    -1,     8,    -1,    96,   257,    -1,
    -1,    -1,    -1,    -1,    44,   104,    -1,    -1,    -1,  1446,
   109,  1448,    -1,  1450,    -1,   274,    -1,    57,  1812,  1813,
    -1,  1432,    -1,    -1,   283,    -1,    -1,    -1,    -1,    -1,
    -1,    44,    72,    73,    -1,   294,    76,    -1,    51,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    86,    -1,    -1,  1460,
  1461,  1462,    -1,  1847,  1848,  1558,    96,    -1,    -1,    72,
    73,  1472,  1473,  1474,   104,    -1,    -1,  1691,  1692,   109,
  1694,    -1,    -1,   332,   333,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    96,  1495,  1496,    -1,  1498,  1499,    -1,
  1501,   104,    -1,    -1,    -1,     3,     4,     5,    -1,     7,
     8,    -1,    -1,    11,     3,     4,     5,     6,     7,    -1,
     9,    10,    11,  1550,     3,     4,     5,    -1,    -1,     8,
    -1,    -1,    -1,    -1,   383,    33,    -1,    -1,    -1,   388,
    -1,   390,   391,   392,    33,    -1,    44,    -1,    -1,    -1,
    39,    -1,    50,  1554,  1555,  1556,  1557,  1558,   407,    57,
  1561,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,
    -1,    -1,    51,    -1,    72,    73,    -1,     3,     4,     5,
  1794,  1795,     8,    72,    73,    11,    -1,    -1,    86,    -1,
    -1,    -1,   441,    72,    73,    -1,    -1,    -1,    96,    -1,
   585,   450,    -1,   452,   453,   590,   104,    33,   106,    -1,
    -1,   109,   110,    -1,    -1,    -1,  1709,    96,    44,    -1,
    -1,  1622,  1623,    -1,    50,   104,    -1,    -1,    -1,    -1,
   615,    57,  1846,  1847,    -1,    -1,   621,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,   633,   634,
    -1,   636,    -1,  1654,  1655,    -1,    -1,    -1,    -1,   508,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    96,    -1,    -1,   522,    -1,    -1,   525,    -1,   104,    -1,
   106,    -1,    -1,   109,   110,    -1,    -1,    -1,   537,    -1,
  1691,  1692,    -1,  1694,    -1,    -1,   545,    -1,    -1,     3,
     4,     5,    -1,  1796,     8,    -1,  1707,  1708,  1709,     3,
     4,     5,     6,     7,    -1,     9,    10,    11,    -1,    -1,
  1813,    -1,    -1,    -1,    -1,   574,   575,  1754,    -1,   578,
    -1,   580,   581,   582,   583,    -1,    -1,    -1,   587,    -1,
    44,    -1,    -1,   592,    -1,    -1,   595,    51,    -1,    -1,
    -1,    -1,    -1,  1754,    -1,   740,   741,    -1,    -1,    -1,
   745,    -1,    -1,   612,    -1,    -1,    -1,    -1,    72,    73,
    -1,    -1,    -1,  1774,  1775,  1776,    -1,    -1,    72,    73,
    -1,    -1,  1875,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    96,  1794,  1795,  1796,    -1,    -1,    -1,    -1,
   104,    -1,   651,   652,   653,   654,    -1,   656,  1809,  1810,
  1811,  1812,  1813,    -1,  1815,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    -1,    -1,
    -1,    16,    -1,    -1,    -1,  1846,  1847,  1848,    -1,    -1,
    -1,    -1,    -1,  1854,  1855,    30,    -1,    32,    33,    34,
    -1,    -1,    -1,    -1,    39,    40,   715,    -1,   717,    44,
  1871,  1872,  1873,    48,    49,    -1,    51,    -1,    -1,    -1,
    -1,    -1,    57,   732,    -1,   734,   735,    62,   737,    -1,
    -1,    -1,    -1,    -1,    -1,   744,    -1,    72,    73,   748,
    -1,    76,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    86,    -1,    -1,    -1,   900,    -1,    -1,    -1,    -1,
   769,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,
    -1,    -1,    -1,  1934,   109,     3,     4,     5,    -1,     7,
     8,    -1,    -1,    11,   793,    -1,    -1,    -1,    -1,    -1,
   125,   800,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   808,
   809,   810,   811,   812,   813,    33,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   958,    -1,   960,    44,    -1,    -1,    -1,
   829,    -1,    50,    -1,    -1,    -1,   835,    -1,    -1,    57,
   839,   840,    89,    90,    91,    92,    93,    94,    95,    96,
    97,    98,    99,   100,    72,    73,    -1,    -1,    -1,    -1,
    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,    86,    24,
    -1,    -1,    -1,    -1,    29,    30,    -1,    32,    96,    34,
    -1,    -1,    -1,   882,    -1,    -1,   104,   886,   106,    -1,
    -1,   109,   110,    -1,    -1,   894,   895,   896,   897,   898,
    -1,    -1,    -1,   902,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1046,  1047,    -1,  1049,    -1,    -1,    -1,    -1,    -1,
    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   931,    -1,    -1,    -1,   935,    -1,   937,    -1,
    -1,    -1,    -1,   942,   943,    -1,   945,  1082,    -1,     3,
     4,     5,   951,     7,     8,    -1,     3,     4,   957,     6,
     7,    -1,     9,    10,    -1,   964,   965,   966,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    44,   146,    39,    40,    41,    42,    50,    44,    -1,    -1,
    47,    -1,    49,    57,    51,  1140,   161,    -1,   163,    -1,
    -1,    -1,    -1,   168,    -1,    -1,    -1,    -1,    72,    73,
    -1,     3,     4,     5,    -1,    72,     8,   182,    -1,    11,
    -1,    78,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   104,    33,   106,    -1,    -1,   109,   110,     4,     5,     6,
     7,    -1,    44,    10,    11,    -1,  1065,  1066,    50,    16,
  1069,    -1,    -1,  1072,    -1,    57,    -1,    -1,  1077,    -1,
   127,    -1,  1081,    30,  1083,    32,  1085,  1086,  1087,    -1,
    72,    73,    39,  1092,    -1,  1094,    -1,    -1,    -1,    -1,
    -1,    48,    -1,    -1,    86,    -1,    -1,    -1,  1243,    -1,
    57,    -1,    -1,    -1,    96,    -1,    -1,    -1,   273,   274,
    -1,  1256,   104,    -1,   106,    72,    73,   109,   110,    -1,
    -1,   286,    -1,  1132,    -1,  1134,    -1,  1136,  1137,  1138,
    -1,    -1,     3,     4,     5,    -1,     7,     8,    -1,     3,
     4,     5,     6,     7,     8,     9,    10,    11,    -1,    -1,
  1159,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,  1168,
  1169,    -1,    33,    -1,    -1,    -1,    30,    -1,    32,    33,
    34,  1180,    -1,    44,  1183,    39,    -1,    -1,    -1,    -1,
    44,    -1,    -1,    -1,    48,    -1,    57,    51,     4,     5,
    -1,     7,    -1,    57,    -1,    11,   361,    -1,    -1,    -1,
    -1,    72,    73,    -1,    -1,  1214,  1351,    -1,    72,    73,
    -1,    -1,    -1,    -1,    -1,    86,    -1,    33,  1227,  1228,
  1229,  1230,    86,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    -1,    96,   104,    50,  1244,    -1,    -1,   109,  1248,
   104,    57,    -1,    -1,   409,   109,   411,    -1,  1257,    -1,
   114,    -1,    -1,  1398,    -1,   420,    72,    73,   734,   735,
    -1,  1270,    -1,    -1,    -1,    -1,    -1,    -1,   433,  1278,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    96,    -1,  1291,    -1,  1293,    -1,    -1,    -1,    -1,    -1,
   106,    -1,   457,   109,   110,    -1,   461,    -1,    -1,    -1,
   465,    -1,     1,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    -1,    -1,    -1,    -1,    16,    -1,  1328,
    -1,    -1,    -1,    -1,  1333,  1334,    -1,  1336,    -1,    -1,
    -1,    30,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
    39,   506,    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,
    -1,  1360,    51,    -1,  1363,  1364,  1365,    -1,    57,    -1,
    -1,    -1,  1507,    -1,    -1,    -1,  1511,    -1,    -1,    -1,
    -1,    -1,    -1,    72,    73,    -1,    -1,    76,    -1,  1388,
  1389,  1390,    -1,  1392,  1393,  1394,  1395,    86,    -1,    -1,
  1399,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
  1545,    -1,    -1,    -1,    -1,   104,    -1,  1416,    -1,    -1,
   109,    -1,    -1,    -1,  1559,  1424,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1432,    -1,    -1,  1435,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    -1,    -1,    14,   609,    16,    -1,    -1,    -1,    -1,
    -1,  1460,  1461,  1462,    -1,    -1,    -1,    -1,    -1,    30,
    -1,    32,    33,  1472,  1473,  1474,  1475,    -1,    39,    -1,
    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,    -1,    50,
    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,  1497,    -1,
    -1,    -1,   657,  1502,    -1,    -1,  1505,    -1,    -1,    -1,
    -1,    72,    73,  1648,    -1,    -1,    -1,    -1,  1653,    -1,
    -1,    -1,    -1,    -1,   679,    86,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
  1675,  1676,    -1,   104,    -1,   106,    -1,    -1,   109,   110,
    -1,    -1,    -1,    -1,  1553,  1554,  1555,  1556,  1557,  1558,
    -1,    -1,  1561,    -1,    -1,     4,    -1,  1566,  1567,  1568,
    -1,   726,    -1,    -1,    -1,    -1,  1711,    16,    -1,    -1,
    -1,  1580,    -1,    -1,    -1,    -1,    25,    26,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,
  1066,    -1,    41,  1069,    43,    -1,    45,    -1,    -1,    -1,
    -1,    -1,    -1,    52,    -1,  1081,    -1,    -1,    -1,  1085,
  1086,   776,  1621,  1622,  1623,    -1,    65,    -1,    67,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,
    -1,  1640,    -1,    82,    -1,    -1,   801,     3,     4,     5,
    -1,     7,     8,    -1,    -1,    94,    -1,   812,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1136,  1137,    -1,    -1,    -1,    -1,    -1,    33,    -1,  1814,
    -1,   836,     3,     4,     5,    -1,     7,     8,    44,    -1,
    11,   846,  1691,  1692,    50,  1694,    -1,    -1,    -1,    -1,
    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,  1707,  1708,
  1709,    -1,    33,    -1,   869,    -1,    72,    73,    -1,   158,
    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,
    86,    -1,    -1,   172,   173,    -1,    57,    -1,    -1,    -1,
    96,   180,    -1,    -1,   183,   184,   185,    -1,   104,    -1,
   106,    72,    73,   109,   110,  1754,    -1,    -1,    -1,    -1,
   199,    -1,    -1,    -1,   203,    86,    -1,    -1,    -1,    -1,
   209,   210,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,   109,   228,
   229,   230,    -1,    -1,    -1,  1794,  1795,  1796,  1797,    -1,
    -1,    -1,    -1,    -1,  1803,    -1,    -1,    -1,    -1,  1808,
  1809,  1810,  1811,  1812,  1813,    -1,  1815,  1816,   257,    84,
    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    95,    96,    97,    98,    99,   100,     3,     4,     5,    -1,
     7,     8,    -1,    -1,    11,    -1,    -1,  1846,  1847,  1848,
    -1,    -1,    -1,    -1,    -1,   294,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    33,  1866,    -1,    -1,
    -1,    -1,  1871,  1872,  1873,    -1,  1875,    44,    -1,    -1,
    -1,  1880,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
    57,    -1,    -1,   332,   333,    -1,    -1,  1363,  1364,    -1,
    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
    -1,    -1,    -1,  1389,  1390,    -1,  1392,  1393,    -1,    96,
    -1,    -1,    -1,  1399,    -1,    -1,    -1,   104,    -1,   106,
    -1,    -1,   109,   110,   383,    -1,    -1,    -1,    -1,   388,
    -1,   390,   391,   392,    -1,    -1,  1111,    -1,   397,    -1,
    -1,    -1,    -1,  1118,    -1,    -1,    -1,    -1,   407,     1,
    -1,    -1,     4,     5,     6,     7,  1131,    -1,    10,    11,
    -1,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1460,  1461,    -1,    -1,    30,    -1,
    32,    -1,   441,    -1,    -1,    -1,    -1,    39,    -1,    41,
    42,   450,    -1,   452,   453,    -1,    48,    -1,    50,    -1,
    -1,    -1,    -1,    -1,    -1,    57,    -1,     3,     4,     5,
  1185,     7,     8,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    72,    73,    -1,    75,    -1,    -1,    -1,    79,    80,    81,
    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    92,    93,    94,    95,    96,    97,    98,    99,    44,   508,
   102,   103,   104,    -1,    -1,   107,    -1,    -1,   110,    -1,
    -1,    57,    -1,   522,    -1,    -1,   525,    -1,  1554,  1555,
  1556,  1557,    -1,    -1,   126,  1561,    72,    73,   537,    -1,
    -1,    -1,    78,    -1,    -1,    -1,   545,    -1,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
    96,     7,     8,    -1,    -1,    11,    -1,    -1,   104,    -1,
    -1,    -1,    -1,   109,    -1,   574,   575,    -1,    -1,   578,
    -1,   580,   581,   582,   583,    -1,    -1,    33,   587,    -1,
    -1,    -1,    -1,   592,    -1,    -1,   595,    -1,    44,    -1,
    -1,    -1,  1317,    -1,    50,    -1,    -1,    -1,    -1,    -1,
    -1,    57,   611,   612,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    86,    -1,     4,     5,    -1,     7,    -1,    -1,    -1,    11,
    96,    -1,   651,   652,   653,   654,    -1,   656,   104,    -1,
   106,    -1,    -1,   109,   110,  1691,  1692,    -1,  1694,    -1,
    -1,    33,     3,     4,     5,     6,     7,     8,     9,    10,
    11,  1707,  1708,    14,    -1,    16,    -1,    -1,    50,    -1,
    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    30,
    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    72,    73,    -1,    44,    -1,    -1,   715,    48,   717,    50,
    -1,    -1,    -1,    -1,    86,    -1,    57,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    96,   734,   735,  1452,   737,    -1,
    -1,    72,    73,  1458,   106,   744,    -1,   109,   110,    -1,
    -1,    -1,    -1,    -1,    -1,    86,    -1,    -1,   757,    -1,
    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,  1794,  1795,
   769,    -1,    -1,   104,    -1,   106,    -1,    -1,   109,   110,
    -1,    -1,    -1,  1809,  1810,  1811,  1812,    -1,    -1,  1815,
    -1,    -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,    -1,   808,
   809,   810,   811,   812,   813,    -1,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
   829,    -1,    14,    -1,    16,    -1,   835,    -1,    -1,    -1,
   839,   840,    -1,    -1,    -1,  1871,  1872,  1873,    30,    -1,
    32,    33,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    -1,    -1,    44,   862,    -1,    -1,    48,    -1,    50,    -1,
    -1,     3,     4,     5,    -1,    57,     8,    -1,    -1,    11,
    -1,    -1,    -1,   882,    -1,    -1,    -1,   886,    -1,    -1,
    72,    73,    -1,  1608,  1609,   894,   895,   896,   897,   898,
    -1,    33,    -1,   902,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    44,    -1,    96,     3,     4,     5,    50,     7,
     8,    -1,   104,    11,   106,    57,    -1,   109,   110,    -1,
    -1,    -1,   931,    -1,    -1,    -1,   935,    -1,   937,    -1,
    72,    73,    -1,   942,   943,    33,   945,    -1,    -1,    -1,
    -1,    -1,   951,    -1,    86,    -1,    44,    -1,   957,    -1,
    -1,    -1,    -1,    -1,    96,   964,   965,   966,    -1,    57,
    -1,    -1,   104,    -1,   106,    -1,    -1,   109,   110,    -1,
    -1,    -1,    -1,    -1,    72,    73,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,    86,    -1,
    -1,    16,    -1,    -1,    -1,    -1,  1721,    -1,    96,    -1,
    -1,    -1,    -1,    -1,    -1,    30,   104,    32,    33,    34,
    -1,   109,    -1,    -1,    39,    40,    -1,  1742,  1743,    44,
    -1,    -1,    -1,    48,    49,    -1,    51,    -1,    -1,    -1,
    -1,    -1,    57,    87,    88,    89,    90,    91,    92,    93,
    94,    95,    96,    97,    98,    99,   100,    72,    73,    -1,
    -1,    76,    -1,    78,    -1,    -1,  1065,  1066,    -1,    -1,
  1069,    86,    -1,  1072,    -1,    -1,    -1,    -1,  1077,    -1,
    -1,    96,  1081,    -1,  1083,    -1,  1085,  1086,  1087,   104,
    -1,    -1,    -1,  1092,   109,  1094,    88,    89,    90,    91,
    92,    93,    94,    95,    96,    97,    98,    99,   100,    -1,
   125,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    -1,    -1,  1840,    16,    -1,    -1,    -1,
    -1,    -1,    -1,  1132,    -1,  1134,    -1,  1136,  1137,  1138,
    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    39,
    40,    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,    49,
  1159,    51,    -1,    -1,    -1,    -1,    -1,    57,    -1,  1168,
  1169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1180,    72,    73,  1183,    -1,    76,    -1,    78,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    86,     3,     4,     5,
     6,     7,     8,     9,    10,    11,    96,    -1,    14,    -1,
    16,    -1,    -1,    -1,   104,  1214,    -1,    -1,    -1,   109,
    -1,    -1,    -1,    -1,    30,    -1,    32,    33,  1227,  1228,
  1229,  1230,    -1,    39,    -1,   125,    -1,    -1,    44,    -1,
    -1,    -1,    48,  1242,    -1,  1244,    -1,    -1,    -1,  1248,
    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,  1257,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,     1,    -1,
     3,     4,     5,     6,     7,     8,     9,    10,    11,  1278,
    86,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,
    96,    -1,  1291,    -1,  1293,    -1,    -1,    30,   104,    32,
    33,    34,    -1,   109,    -1,    -1,    39,    40,    -1,    -1,
    -1,    44,    -1,    -1,    -1,    48,    49,    -1,    51,    -1,
    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,  1328,
    -1,    -1,    -1,    -1,  1333,  1334,    -1,  1336,    -1,    72,
    73,    -1,    -1,    76,    -1,    78,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1360,    -1,    96,  1363,  1364,  1365,    -1,    -1,    -1,
    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1388,
  1389,  1390,   125,  1392,  1393,  1394,  1395,    -1,    -1,    -1,
  1399,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    -1,    -1,    14,    -1,    16,    -1,    -1,  1416,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1424,    -1,    -1,    30,    -1,
    32,    33,    -1,  1432,    -1,    -1,  1435,    39,    -1,    -1,
    -1,    -1,    44,    -1,    -1,  1444,    48,    -1,    50,    -1,
    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,
    -1,  1460,  1461,  1462,    -1,    -1,    -1,    -1,    -1,    -1,
    72,    73,    -1,  1472,  1473,  1474,  1475,     4,    -1,    -1,
    -1,    -1,  1481,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,    96,     7,     8,    -1,  1497,    11,
    -1,    -1,   104,  1502,   106,    -1,  1505,   109,   110,    -1,
    -1,    38,    -1,    -1,    41,    -1,    43,    -1,    45,    -1,
    -1,    33,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,
    -1,    -1,    44,    -1,     3,     4,     5,    -1,    65,     8,
    67,    -1,    11,    -1,    -1,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1553,  1554,  1555,  1556,  1557,  1558,
    72,    73,  1561,    90,    33,    -1,    -1,  1566,  1567,  1568,
    -1,    -1,    -1,    -1,    86,    44,    -1,    -1,     3,     4,
     5,  1580,     7,     8,    96,    -1,    11,    -1,    57,    -1,
    -1,    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,    33,    -1,
    -1,  1610,    -1,    -1,    -1,    -1,    -1,    86,    -1,    44,
    -1,    -1,  1621,  1622,  1623,    50,    -1,    96,   155,   156,
    -1,   158,    57,    -1,    -1,   104,    -1,    -1,    -1,    -1,
   109,  1640,    -1,    -1,    -1,   172,   173,    72,    73,   176,
    -1,    -1,    -1,   180,    -1,    -1,   183,   184,   185,    -1,
    -1,    86,    -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    96,   199,    -1,    -1,    -1,   203,    -1,    -1,   104,
    -1,   106,   209,   210,   109,   110,    -1,    -1,    -1,    -1,
    -1,    -1,  1691,  1692,    -1,  1694,    -1,    -1,    -1,    -1,
    -1,   228,   229,   230,    -1,    -1,    -1,    -1,  1707,  1708,
  1709,   238,    83,    84,    85,    86,    87,    88,    89,    90,
    91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
   257,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    -1,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,    -1,  1754,     8,    -1,    -1,    30,
    -1,    32,    33,    -1,    -1,    -1,    -1,   294,    39,    -1,
    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,    -1,    50,
    -1,    33,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    -1,    -1,    44,    -1,    -1,  1794,  1795,  1796,  1797,    -1,
    -1,    72,    73,    -1,  1803,    57,    -1,    -1,    -1,  1808,
  1809,  1810,  1811,  1812,  1813,    86,  1815,  1816,    -1,    -1,
    72,    73,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   104,    86,   106,    -1,    -1,   109,   110,
    -1,    -1,   369,    -1,    96,    -1,    -1,  1846,  1847,  1848,
    -1,    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    -1,   388,    -1,    -1,    -1,    -1,    -1,  1866,    -1,   396,
    -1,    -1,  1871,  1872,  1873,    -1,  1875,    -1,    -1,    -1,
   407,  1880,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    15,    16,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    33,    34,   452,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    74,    -1,    -1,    77,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,   522,   106,    -1,   525,   109,
   110,    -1,    -1,    -1,   531,   532,   533,    -1,    -1,    -1,
   537,    -1,    -1,    -1,    -1,    -1,   126,    -1,   545,    -1,
    -1,    -1,     3,     4,     5,    -1,     7,     8,     9,    10,
    11,    -1,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
    -1,     3,     4,     5,    -1,     7,     8,   574,   575,    -1,
    -1,   578,    33,   580,   581,   582,   583,    -1,    39,    -1,
   587,    -1,    -1,    44,    -1,   592,    -1,    48,   595,    50,
    -1,    33,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,
    -1,    -1,    44,    -1,    -1,   612,    -1,    -1,    50,    -1,
    -1,    72,    73,    -1,    -1,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    72,    73,    -1,    -1,   641,    96,    -1,   644,    -1,    -1,
    -1,   648,    -1,   104,    86,   106,    -1,    -1,   109,   110,
    -1,    -1,    -1,    -1,    96,    -1,    -1,   664,   665,   666,
    -1,    -1,   104,    -1,   106,    -1,    -1,   109,   110,    -1,
    -1,    -1,    -1,   680,     1,    -1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
    17,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
    37,    38,    39,    -1,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    -1,   731,    52,    53,    54,    55,    56,
    57,    -1,    -1,    -1,    61,    -1,    63,   744,    -1,    -1,
    67,    -1,    -1,    70,    -1,    72,    73,    74,    -1,    76,
    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,
    -1,    -1,   769,    -1,    -1,    -1,    -1,    94,    95,    96,
    -1,    -1,     4,    -1,    -1,   102,   103,   104,    -1,    -1,
    -1,    -1,   109,   110,   111,    -1,   793,    -1,    -1,    -1,
    -1,    -1,    -1,   800,    -1,    -1,    -1,    -1,   125,   126,
    -1,   808,   809,   810,   811,    -1,    38,    -1,    -1,    41,
    -1,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
    52,     1,   829,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    -1,    65,    -1,    67,    16,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    39,
    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,    49,
    -1,    51,    -1,    -1,    -1,   882,    -1,    57,    -1,   886,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   894,   895,   896,
   897,   898,    72,    73,    -1,   902,    76,    -1,    78,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,
    -1,     4,     5,     6,     7,    -1,    96,    10,    11,    -1,
    -1,    -1,    -1,    16,   104,    -1,   158,    -1,   935,   109,
   937,    -1,    -1,    -1,    -1,   942,   943,    30,   945,    32,
   172,   173,    -1,    -1,    -1,    -1,    39,    -1,   180,    -1,
    -1,   183,   184,   185,    -1,    48,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   970,    57,    -1,    -1,   199,    -1,    -1,
    -1,   203,    -1,    -1,    -1,    -1,    -1,   209,   210,    72,
    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   228,   229,   230,     1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    12,    13,    14,    15,    16,    -1,   109,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,    30,    31,
    32,    33,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    50,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,   294,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    74,    -1,    -1,    77,    -1,    -1,  1085,  1086,
  1087,    83,    -1,    -1,    86,  1092,  1093,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,   106,    -1,    -1,   109,   110,    -1,
     1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    -1,    -1,    -1,   126,    16,    -1,    -1,    -1,  1136,
  1137,  1138,    -1,    -1,    -1,    -1,  1143,    -1,    29,    30,
    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,
    -1,    -1,    -1,    44,    -1,    -1,    47,    48,    49,    -1,
    51,  1168,  1169,    -1,    -1,   397,    57,    58,    59,    60,
    -1,    -1,    -1,    -1,    -1,   407,    67,    68,    69,    -1,
    -1,    72,    73,    -1,   105,    76,   107,    -1,   109,    -1,
    -1,    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    94,    95,    96,    -1,  1214,    -1,    -1,
    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,
   452,    -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,     3,
     4,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
    -1,  1248,    16,    -1,    -1,    -1,    -1,    -1,   169,    -1,
   171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    33,
    -1,    -1,  1269,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    44,  1278,     4,     5,    48,     7,    50,    -1,    -1,    11,
    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,
   522,    -1,    -1,   525,    -1,    -1,    -1,    -1,    72,    73,
    -1,    33,    -1,    -1,    -1,   537,    16,    -1,    -1,    -1,
    -1,    -1,    86,   545,    -1,    25,    26,    -1,    50,    -1,
    -1,    -1,    96,    -1,    -1,    57,    -1,    -1,    38,    -1,
   104,    41,   106,    43,    -1,   109,   110,    -1,    -1,    -1,
    72,    73,   574,   575,    -1,    -1,   578,    -1,   580,   581,
   582,    -1,    -1,  1360,    86,   587,  1363,  1364,  1365,  1366,
   592,    -1,    -1,   595,    96,    75,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,   110,    -1,
   612,  1388,  1389,  1390,    -1,  1392,  1393,  1394,  1395,    -1,
  1397,    -1,  1399,    85,    86,    87,    88,    89,    90,    91,
    92,    93,    94,    95,    96,    97,    98,    99,   100,    -1,
     3,     4,     5,    -1,    -1,     8,    -1,  1424,    11,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
    -1,     7,     8,    -1,    -1,    -1,   146,    -1,   148,   360,
    33,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
    -1,    44,    -1,  1460,  1461,  1462,    -1,    50,    -1,    -1,
    -1,    -1,   172,   173,    57,    -1,   176,   177,    44,    -1,
   180,    -1,   182,   183,   184,   185,    -1,    -1,    -1,    72,
    73,    57,    -1,    -1,    -1,   406,    -1,    -1,    -1,    -1,
  1497,    -1,    -1,    86,    -1,  1502,    72,    73,  1505,    -1,
   732,    -1,    78,    96,    -1,    -1,    -1,    -1,    -1,    -1,
    86,   104,    -1,   106,    -1,    -1,   109,   110,    -1,    -1,
    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,
    -1,    -1,    -1,   109,    -1,    -1,    -1,   769,    -1,     3,
     4,     5,    -1,     7,     8,    -1,  1553,  1554,  1555,  1556,
  1557,  1558,    -1,    -1,  1561,    -1,    -1,    -1,    -1,    -1,
  1567,  1568,    -1,   273,   274,    -1,     3,     4,     5,    33,
    -1,     8,    -1,  1580,    11,    -1,   808,   809,   810,   811,
    44,    -1,    -1,    -1,   294,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    57,    -1,    -1,    33,   829,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    72,    73,
    -1,    -1,    -1,    50,  1621,  1622,  1623,    -1,    -1,    -1,
    57,    -1,    86,   333,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    96,    -1,    -1,    72,    73,    -1,    -1,    -1,
   104,    -1,   563,   564,    -1,   109,    -1,    -1,    -1,    86,
   882,   572,    -1,    -1,   886,    -1,    -1,    -1,    -1,    96,
    -1,    -1,   894,   895,    -1,    -1,    -1,   104,    -1,   106,
   902,    -1,   109,   110,    -1,    -1,    -1,    -1,   388,    -1,
   390,   391,    -1,    -1,   605,    -1,     4,     5,     6,     7,
    -1,    -1,    10,    11,    -1,    -1,    -1,    -1,    16,    -1,
  1707,  1708,  1709,   935,    -1,   937,    -1,    -1,    -1,    -1,
   942,   943,    30,   945,    32,    -1,    -1,   638,   639,    -1,
    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    48,   441,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1754,    -1,    -1,
    -1,   672,    -1,    -1,    72,    73,   677,    -1,   679,    -1,
    -1,   682,   683,   473,   685,   686,   687,   688,   689,   690,
   691,   692,   693,   694,   695,   696,   697,   698,   699,   700,
   701,   702,   703,    -1,   705,    -1,    -1,    -1,    -1,    -1,
   711,   109,    -1,    -1,    -1,    -1,  1803,    -1,    -1,    -1,
    -1,  1808,  1809,  1810,  1811,  1812,  1813,    -1,  1815,  1816,
    -1,    -1,   522,    -1,    -1,   525,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   744,    -1,    -1,    -1,   537,    -1,    -1,
   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   759,  1846,
  1847,  1848,    -1,    -1,    -1,    -1,     3,     4,     5,     4,
     5,     8,    -1,    -1,    -1,    -1,    11,    -1,   779,   780,
    -1,    -1,  1094,    -1,  1871,  1872,  1873,    -1,    -1,    -1,
    -1,    -1,    -1,  1880,   795,    -1,    33,    -1,    33,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,    -1,
    -1,    -1,    -1,    50,    -1,    50,    -1,    -1,    -1,   609,
    57,   611,    57,    -1,  1136,  1137,  1138,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    72,    73,    72,    73,    -1,
    -1,    -1,    -1,    -1,    -1,   635,    -1,    -1,    -1,    86,
    -1,    86,    -1,    -1,    -1,    -1,  1168,  1169,    -1,    96,
    -1,    96,    -1,    -1,    -1,    -1,    -1,   104,   869,   106,
    -1,   106,   109,   110,   109,   110,    -1,     3,     4,     5,
    -1,    -1,     8,    -1,    -1,    -1,    -1,    -1,    -1,     3,
     4,     5,    -1,    -1,     8,    -1,    -1,    11,    -1,    -1,
    -1,    -1,  1214,    -1,    -1,    -1,    -1,    33,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    33,
    -1,    -1,    -1,    -1,    50,    -1,    -1,   717,    -1,    -1,
    44,    57,    -1,   934,    -1,    -1,  1248,    -1,    -1,    -1,
    -1,   731,   732,    57,   734,   735,    72,    73,    -1,    -1,
    -1,   952,   953,    -1,   955,    -1,    -1,    -1,    72,    73,
    86,    -1,    -1,     3,     4,     5,  1278,    -1,     8,   970,
    96,    11,    86,    -1,    -1,    -1,    -1,    -1,   104,    -1,
   106,    -1,    96,   109,   110,    -1,    -1,    -1,    -1,    -1,
   104,    -1,    -1,    33,    -1,   109,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   793,    44,    -1,    -1,    -1,    -1,    -1,
   800,   801,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
    -1,    -1,   812,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    72,    73,    -1,    -1,    -1,  1038,  1039,    -1,
    -1,    -1,  1043,  1044,    -1,    -1,    86,    -1,    -1,   839,
    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,  1060,
    -1,  1062,    -1,  1064,   104,    -1,    -1,    -1,    -1,   109,
    -1,    -1,   862,    -1,    -1,    -1,  1388,  1389,  1390,    -1,
  1392,  1393,  1394,    -1,    -1,    43,    -1,  1399,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    -1,  1099,    -1,
    -1,    16,    -1,    -1,    -1,    -1,    -1,    65,    -1,  1110,
    -1,    -1,  1424,    -1,    -1,    30,    -1,    32,    33,  1120,
    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    44,
    -1,    -1,    -1,    48,  1135,    -1,    -1,    -1,   928,    -1,
    -1,   931,    57,    -1,    -1,    -1,    -1,  1148,  1460,  1461,
  1462,     3,     4,     5,    -1,     7,     8,    72,    73,    -1,
    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    86,    -1,    -1,   964,   965,   966,    -1,    -1,    -1,
    -1,    96,    -1,    -1,    -1,  1497,    -1,    -1,    -1,   104,
  1502,    -1,    44,  1505,   109,    -1,  1197,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1214,    -1,    -1,     4,     5,    -1,    -1,
    72,    73,    -1,    11,    76,   183,   184,   185,    -1,    -1,
    -1,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1554,  1555,    96,    33,    -1,    -1,    -1,  1561,
    -1,   209,   104,    -1,    -1,  1567,  1568,   109,    -1,  1260,
    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,  1580,    57,
   228,   229,   230,    -1,    -1,  1065,  1066,    -1,    -1,  1069,
    -1,    -1,  1072,    -1,    72,    73,    -1,    -1,    -1,    -1,
    -1,  1081,    -1,    -1,    -1,    -1,    -1,    -1,    86,   257,
    -1,    -1,  1092,    -1,    -1,    -1,    -1,    -1,    96,  1621,
  1622,  1623,    -1,    -1,    -1,  1316,  1317,    -1,   106,    -1,
  1321,   109,   110,     3,     4,     5,    -1,     7,     8,    -1,
     3,     4,    -1,     6,     7,    -1,     9,    10,    -1,    -1,
    -1,  1342,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
    -1,    -1,    -1,    -1,    44,    -1,    39,    40,    41,    42,
    -1,    44,    -1,    -1,    47,   333,    49,    57,    51,    -1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    -1,    -1,    72,    73,    16,  1707,  1708,  1709,    78,    72,
    -1,    -1,    -1,    -1,    -1,    78,    86,    -1,    30,    -1,
    32,    33,    -1,    -1,    -1,    -1,    96,    39,    -1,    -1,
    -1,    -1,    44,    -1,   104,    -1,    48,    -1,    -1,   109,
    -1,    -1,   390,   391,   392,    57,   109,    -1,    -1,    -1,
    -1,    -1,  1754,    -1,    -1,  1446,    -1,  1448,    -1,  1450,
    72,    73,  1242,    -1,    -1,    -1,    78,  1458,    -1,    -1,
    -1,    -1,    -1,    -1,    86,    -1,  1467,  1468,    -1,    -1,
    -1,    -1,    -1,    -1,    96,  1476,    -1,    -1,    -1,    -1,
  1270,    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,    -1,
    -1,  1803,  1493,  1494,   452,    -1,  1808,  1809,  1810,  1811,
  1812,  1813,    -1,  1815,  1816,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    -1,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1846,  1847,  1848,    -1,    -1,    30,
    -1,    32,    33,  1333,  1334,    -1,  1336,    -1,    39,  1550,
    -1,    -1,    -1,    44,    -1,    -1,    -1,    48,    -1,  1871,
  1872,  1873,    -1,    -1,    -1,    -1,    57,    -1,  1880,    -1,
  1360,    -1,    -1,  1363,  1364,    -1,    -1,    -1,    -1,    -1,
    -1,    72,    73,    -1,    -1,    76,     3,     4,     5,    -1,
     7,     8,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    -1,    -1,  1603,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   104,    -1,    -1,   574,   575,   109,    -1,
   578,    -1,   580,   581,   582,   583,    -1,    44,    -1,   587,
    -1,    -1,    -1,    -1,   592,    -1,    -1,   595,    -1,    -1,
    57,    -1,  1643,    65,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,  1444,    72,    73,    -1,    16,  1660,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    86,
    -1,    93,    30,    -1,    32,    33,    -1,    -1,    -1,    96,
  1681,    39,    -1,    -1,    -1,    -1,    44,   104,    -1,    -1,
    48,  1481,   109,    -1,    -1,    -1,    -1,  1698,    -1,    57,
    -1,    -1,    -1,    -1,   126,    -1,   128,    -1,    -1,    -1,
  1500,    -1,  1502,    -1,    72,    73,    -1,    -1,    -1,     3,
     4,     5,    -1,     7,     8,     9,    10,    11,    86,    -1,
    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    96,    -1,
     3,     4,     5,    -1,    -1,     8,   104,    -1,    11,    33,
    -1,   109,    -1,  1754,    -1,    39,    -1,    -1,    -1,   717,
    44,    -1,    -1,    -1,    48,    -1,    50,    -1,    -1,    -1,
    33,  1772,  1773,    57,    -1,    -1,   734,   735,    -1,   737,
    -1,    44,    -1,    -1,    -1,    -1,   744,   209,    72,    73,
  1580,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
    -1,  1802,    86,    -1,    -1,    -1,   228,   229,   230,    72,
    73,   769,    96,    -1,    -1,    -1,   238,    -1,   129,   130,
   104,    -1,    -1,    86,    -1,   109,    -1,    -1,    -1,  1830,
    -1,    -1,    -1,    96,    -1,   257,    -1,    -1,    -1,    -1,
    -1,   104,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
   808,    -1,   810,   811,    -1,   813,    -1,    -1,    -1,  1860,
    -1,   283,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    -1,   297,    -1,    -1,    16,    -1,
    -1,   839,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    -1,    32,    33,    -1,    -1,    -1,    -1,
    -1,    39,    -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,
    48,    -1,    -1,    -1,    -1,    -1,    -1,  1707,  1708,    57,
    -1,    -1,    -1,    -1,   882,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    72,    73,   894,   895,   896,   897,
   898,    -1,    -1,    -1,   902,    -1,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
    -1,   109,  1973,    -1,   396,   397,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   942,    -1,    -1,    -1,     4,     5,
     6,     7,    -1,     9,    10,    11,    -1,    -1,    14,    -1,
    16,    -1,    -1,    -1,    -1,    -1,   964,   965,   966,    -1,
    -1,    -1,    -1,    -1,    30,    -1,    32,    33,  1808,  1809,
  1810,  1811,  1812,    39,    -1,  1815,  1816,    -1,    -1,    -1,
   452,    -1,    48,    -1,    50,    -1,    -1,    -1,    -1,    -1,
    -1,    57,    -1,     3,     4,     5,    -1,     7,     8,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,   369,    -1,
    -1,    -1,     3,     4,     5,    -1,    -1,     8,    -1,    -1,
    86,    -1,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,
    96,  1871,  1872,  1873,    44,    -1,    -1,    -1,    -1,    -1,
   106,    -1,    -1,   109,   110,    -1,    -1,    57,    -1,    -1,
    -1,    -1,    -1,    44,    -1,    -1,    -1,  1065,  1066,    -1,
    -1,  1069,    72,    73,  1072,    -1,    57,    -1,    -1,    -1,
    -1,    -1,    -1,  1081,    -1,    -1,    86,  1085,  1086,  1087,
    -1,    72,    73,    -1,  1092,    -1,    96,    78,    -1,   450,
    -1,    -1,    -1,    -1,   104,    86,    -1,    -1,    -1,   109,
    -1,    -1,   574,   575,    -1,    96,   578,    -1,   580,   581,
   582,   583,    -1,   104,    -1,   587,    -1,    -1,   109,    -1,
   592,    -1,    -1,   595,    -1,    -1,    -1,    -1,  1136,  1137,
  1138,    -1,    -1,     4,     5,     6,     7,    -1,     9,    10,
    11,    -1,    -1,    14,    -1,    16,    -1,   508,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
  1168,    32,    33,     4,     5,     6,     7,    -1,    39,    10,
    11,    -1,    -1,    -1,    -1,    16,    -1,    48,    -1,    50,
    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    30,
    -1,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,
    -1,    72,    73,    -1,    -1,    -1,  1214,    48,    -1,    50,
    -1,   572,    -1,    -1,    -1,    86,    57,    -1,    -1,    -1,
  1228,  1229,  1230,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    72,    73,    -1,    -1,   106,    -1,    -1,   109,   110,
  1248,    -1,    -1,    -1,    -1,    86,    -1,    -1,     4,     5,
    -1,     7,    -1,    -1,    -1,    96,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,   110,
    -1,    -1,    -1,    -1,    -1,   747,   748,    33,    -1,    -1,
   641,    -1,    -1,   644,    -1,    -1,    -1,   648,    -1,   650,
   651,   652,   653,   654,    50,   656,    -1,   769,    -1,    -1,
    -1,    57,    -1,    -1,    -1,   666,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,   680,
    -1,    -1,    -1,    -1,    -1,  1333,  1334,    -1,  1336,    -1,
    86,    -1,    -1,    -1,    -1,    -1,   808,    -1,   810,   811,
    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   106,    -1,  1360,   109,   110,  1363,  1364,  1365,    -1,    -1,
   390,   391,   392,    -1,    -1,    -1,    -1,     4,     5,    -1,
    -1,    -1,    -1,    10,    11,    -1,   737,    -1,    -1,    16,
  1388,  1389,  1390,   744,  1392,  1393,  1394,  1395,    -1,    -1,
    -1,  1399,    -1,     4,     5,     6,     7,    -1,     9,    10,
    11,    -1,    39,    -1,    -1,    16,    -1,    -1,    -1,    -1,
   882,    48,    -1,    50,    -1,    -1,    -1,    -1,    -1,    30,
    57,    32,   894,   895,   896,   897,   898,   899,    39,    -1,
   902,     4,     5,    -1,    -1,    72,    73,    48,    11,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    86,
    -1,    -1,  1460,  1461,  1462,    -1,   928,    -1,    -1,    96,
    33,    72,    73,    -1,  1472,  1473,  1474,  1475,    -1,   106,
   942,    -1,   109,   110,   835,    -1,    -1,    50,    -1,   840,
    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,  1497,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    73,    79,    80,    81,    82,    83,    84,    85,    86,    87,
    88,    89,    90,    86,    92,    93,    94,    95,    96,    97,
    98,    99,   100,    96,    -1,   886,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   106,    -1,    -1,   109,   110,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1553,  1554,  1555,  1556,  1557,
  1558,    -1,    -1,  1561,    -1,    -1,    -1,    -1,    -1,  1567,
  1568,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1580,    86,    87,    88,    89,    90,    91,    92,
    93,    94,    95,    96,    97,    98,    99,   100,    -1,    -1,
   951,    -1,    -1,    -1,    -1,    -1,   957,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1621,    -1,  1623,    -1,    -1,    -1,    -1,
    -1,  1093,  1094,  1095,    -1,    78,    79,    80,    81,    82,
    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
    93,    94,    95,    96,    97,    98,    99,   100,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1136,  1137,  1138,     4,     5,     6,
     7,  1143,     9,    10,    11,    -1,    -1,    -1,  1039,    16,
    -1,    -1,    -1,  1691,  1692,    -1,  1694,    -1,    -1,    -1,
    -1,    -1,    -1,    30,    -1,    32,  1168,    -1,    -1,  1707,
  1708,  1709,    39,    -1,   734,   735,    -1,   737,    -1,    -1,
    -1,    48,    -1,    -1,   744,    -1,  1077,    -1,    -1,    -1,
    57,    -1,  1083,    -1,    -1,    -1,  1087,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
    -1,    -1,  1214,    -1,    -1,    -1,  1754,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1228,  1229,  1230,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1132,    -1,  1134,    -1,    -1,  1248,  1138,   808,    -1,
   810,   811,    -1,   813,    -1,    -1,  1794,  1795,  1796,  1797,
    -1,    -1,    -1,    -1,    -1,  1803,    -1,  1269,    -1,    -1,
  1808,  1809,  1810,  1811,  1812,  1813,    -1,  1815,  1816,   839,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1183,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1846,  1847,
  1848,    -1,     4,     5,     6,     7,    -1,     9,    10,    11,
    -1,    -1,   882,  1214,    16,    -1,    -1,    -1,  1866,    -1,
    -1,    -1,    -1,  1871,  1872,  1873,  1227,    -1,    30,    -1,
    32,    33,  1880,    -1,    -1,    -1,  1237,    39,    -1,    -1,
    -1,    -1,    -1,  1244,    -1,    -1,    48,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1366,    57,  1257,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    72,    73,    -1,    -1,    76,    -1,  1388,  1389,  1390,    -1,
  1392,  1393,  1394,  1395,    -1,  1397,    -1,  1399,    -1,    -1,
  1291,    -1,  1293,    -1,    -1,    -1,     3,     4,    -1,     6,
     7,    -1,     9,    10,    -1,    -1,    -1,    -1,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    -1,    -1,  1328,    -1,    -1,
    -1,    -1,    39,    40,    41,    42,    -1,    44,    -1,    -1,
    47,    -1,    49,    -1,    51,    -1,    -1,    -1,  1460,  1461,
  1462,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
  1472,  1473,  1474,  1475,  1365,    72,    -1,    -1,    75,    -1,
    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,  1497,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1394,    -1,  1065,  1066,    -1,    -1,  1069,
    -1,    -1,  1072,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1081,    -1,    -1,    -1,  1085,  1086,  1087,    -1,    -1,
    -1,    -1,  1092,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1553,  1554,  1555,  1556,  1557,  1558,    -1,    -1,  1561,
    -1,    -1,    -1,    -1,    -1,  1567,  1568,    -1,    -1,    -1,
    -1,  1462,    -1,    -1,    -1,    -1,  1136,  1137,  1138,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    13,    14,    15,    16,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1621,
    -1,  1623,    30,    31,    32,    33,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,  1214,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,  1558,    -1,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,  1691,
  1692,  1693,  1694,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,    -1,    -1,    -1,    -1,     3,     4,    -1,
     6,     7,    -1,     9,    10,    -1,   124,    -1,   126,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    39,    40,    41,    42,    -1,    44,  1640,
    -1,    47,  1754,    49,    -1,    51,    -1,    -1,    -1,    -1,
    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,  1794,  1795,  1796,  1797,    -1,    -1,    -1,    -1,
  1360,  1803,    -1,  1363,  1364,  1365,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1709,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1388,  1389,
  1390,    -1,  1392,  1393,  1394,  1395,    -1,    -1,    -1,  1399,
    -1,    -1,    -1,    -1,  1846,  1847,  1848,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,  1866,    -1,    -1,    -1,    -1,    -1,
     3,     4,    -1,     6,     7,    -1,     9,    10,  1880,    -1,
    -1,    -1,    15,    16,    17,    18,    19,    20,    21,    22,
    23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
  1460,  1461,  1462,    -1,    -1,  1796,    39,    40,    41,    42,
    -1,    44,    -1,    -1,    47,    -1,    49,    -1,    51,    -1,
    -1,    -1,  1813,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,     1,    -1,    -1,     4,     5,     6,     7,    72,
     9,    10,    11,    -1,    -1,    78,    -1,    16,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1848,    -1,    -1,
    -1,    30,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
    39,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    48,
     4,     5,     6,     7,  1875,     9,    10,    11,    57,    -1,
    -1,    -1,    16,  1553,  1554,  1555,  1556,  1557,  1558,    -1,
    -1,  1561,    -1,    72,    73,    74,    30,    33,    32,    33,
    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
  1580,    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,
    74,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
    96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,     1,
    -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    -1,    -1,    14,    15,    16,    17,    18,    19,    20,    21,
    22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    -1,    33,    -1,    -1,    -1,    -1,    -1,    39,    40,    41,
    42,    -1,    44,    -1,    -1,    47,    48,    49,    50,    51,
    -1,  1691,  1692,    -1,  1694,    57,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1707,  1708,  1709,
    72,    73,    74,    75,    76,    -1,    78,    79,    80,    81,
    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    92,    93,    94,    95,    96,    97,    98,    99,   100,    -1,
   102,   103,   104,    -1,   106,   107,   108,   109,   110,   111,
    -1,   113,    -1,    -1,    -1,    -1,   118,    -1,    -1,    -1,
    -1,   123,   124,   125,    -1,   127,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,
     5,     6,     7,    -1,    -1,    10,    11,    -1,    -1,    -1,
    -1,    16,    -1,    -1,  1794,  1795,  1796,  1797,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    30,    -1,    32,  1808,  1809,
  1810,  1811,  1812,  1813,    39,  1815,  1816,    -1,    -1,    -1,
    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,  1866,    -1,    -1,    -1,
    -1,  1871,  1872,  1873,     1,    -1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
    17,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
    37,    38,    39,    -1,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    72,    73,    74,    -1,    76,
    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,
    -1,    -1,   109,   110,   111,    -1,     1,    -1,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    12,    13,   126,
    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,
    -1,    36,    37,    38,    39,    -1,    41,    42,    43,    44,
    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,
    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,    74,
    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,
    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
    -1,    -1,    -1,    -1,   109,   110,    -1,    -1,     1,    -1,
     3,     4,     5,     6,     7,     8,    -1,    10,    11,    12,
    13,   126,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
    33,    34,    -1,    36,    37,    38,    39,    -1,    41,    42,
    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,
    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,
    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,
    73,    74,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,
   103,   104,    -1,    -1,    -1,    -1,   109,   110,    -1,    -1,
     1,    -1,     3,     4,     5,     6,     7,     8,    -1,    10,
    11,    12,    13,   126,    15,    16,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
    31,    32,    -1,    34,    -1,    36,    37,    38,    39,    -1,
    41,    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,
    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    72,    73,    74,    -1,    -1,    77,    -1,    -1,    -1,
    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,
    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,   125,   126,     1,    -1,     3,     4,
     5,     6,     7,     8,    -1,    10,    11,    12,    13,    -1,
    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    -1,    34,
    -1,    36,    37,    38,    39,    -1,    41,    42,    43,    44,
    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,
    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,    74,
    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,
    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
    -1,    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   125,   126,     1,    -1,     3,     4,     5,     6,     7,     8,
    -1,    10,    11,    12,    13,    -1,    15,    16,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,    38,
    39,    -1,    41,    42,    43,    44,    45,    46,    -1,    48,
    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,
    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    -1,
    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,
   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,     1,    -1,
     3,     4,     5,     6,     7,     8,    -1,    10,    11,    12,
    13,    -1,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,
    -1,    34,    -1,    36,    37,    38,    39,    -1,    41,    42,
    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,
    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,
    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,
    73,    74,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,
   103,   104,    -1,    -1,    -1,    -1,   109,   110,    -1,    -1,
    -1,    -1,    -1,    -1,   117,     1,    -1,     3,     4,     5,
     6,     7,     8,   126,    10,    11,    12,    13,    -1,    15,
    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,    -1,    -1,     1,    -1,     3,
     4,     5,     6,     7,     8,    -1,    10,    11,    12,    13,
   126,    15,    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    -1,
    34,    -1,    36,    37,    38,    39,    -1,    41,    42,    43,
    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,
    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,
    74,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,
    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,
   104,    -1,    -1,    -1,    -1,   109,   110,    -1,    -1,     1,
    -1,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,   126,    15,    16,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    -1,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    74,    -1,    -1,    77,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,    -1,
    -1,     1,    -1,     3,     4,     5,     6,     7,     8,    -1,
    10,    11,    12,    13,   126,    15,    16,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    -1,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    77,    78,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,   126,    15,    16,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    76,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,    -1,    -1,     1,    -1,     3,     4,     5,
     6,     7,     8,    -1,    10,    11,    12,    13,   126,    15,
    16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,     1,
   126,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,    -1,    15,    16,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    -1,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,    -1,
    -1,     1,    -1,     3,     4,     5,     6,     7,     8,    -1,
    10,    11,    12,    13,   126,    15,    16,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    -1,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    77,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,    -1,    -1,     1,    -1,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,   126,    15,    16,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    -1,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,     3,     4,     5,     6,     7,     8,    -1,
    10,    11,    12,    13,    -1,    15,    16,    -1,   126,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    -1,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    77,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,   126,   127,     3,     4,
     5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
    15,    16,    17,    -1,    19,    20,    21,    22,    23,    24,
    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    -1,    36,    37,    38,    39,    -1,    41,    42,    43,    44,
    45,    46,    47,    48,    49,    -1,    -1,    52,    53,    54,
    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,
    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,    74,
    -1,    76,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,
    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,
    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,
    -1,    -1,    -1,    -1,   109,   110,   111,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
   125,   126,     3,     4,     5,     6,     7,     8,     9,    10,
    11,    12,    13,    -1,    15,    16,    17,    -1,    19,    20,
    21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    31,    32,    33,    34,    -1,    36,    37,    38,    39,    -1,
    41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,
    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,
    -1,    72,    73,    74,    -1,    76,    77,    -1,    -1,    -1,
    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,
    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,
   111,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     9,    10,    11,    12,    13,   126,    15,    16,    17,    -1,
    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
    39,    -1,    41,    42,    43,    44,    45,    46,    47,    48,
    49,    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,
    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,
    -1,    70,    -1,    72,    73,    74,    -1,    76,    77,    -1,
    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,
   109,   110,   111,    -1,    -1,    -1,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,   126,    15,    16,
    17,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
    27,    28,    29,    30,    31,    32,    33,    34,    -1,    36,
    37,    38,    39,    -1,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,
    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    76,
    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,
    -1,    -1,   109,   110,   111,     3,     4,     5,     6,     7,
     8,     9,    10,    11,    12,    13,    14,    15,    16,   126,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    33,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    50,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    -1,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,   106,    -1,
    -1,   109,   110,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    14,    15,    16,    -1,   126,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    50,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    77,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,   106,    -1,    -1,   109,
   110,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,    -1,    15,    16,    -1,   126,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    33,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    50,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,   106,    -1,    -1,   109,   110,     3,
     4,     5,     6,     7,     8,    -1,    10,    11,    12,    13,
    -1,    15,    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
    34,    -1,    36,    37,    38,    39,    -1,    41,    42,    43,
    44,    45,    46,    -1,    48,    -1,    50,    -1,    52,    53,
    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,
   104,    -1,   106,    -1,    -1,   109,   110,     3,     4,     5,
     6,     7,     8,    -1,    10,    11,    12,    13,    -1,    15,
    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,    -1,    15,    16,    -1,
   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    76,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,     3,     4,     5,     6,     7,     8,     9,
    10,    11,    12,    13,    -1,    15,    16,    -1,   126,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,    -1,    15,    16,    -1,   126,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    33,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,     3,
     4,     5,     6,     7,     8,    -1,    10,    11,    12,    13,
    -1,    15,    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    -1,
    34,    -1,    36,    37,    38,    39,    -1,    41,    42,    43,
    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,
    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,
    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,
    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,
   104,    -1,    -1,    -1,    -1,   109,   110,     3,     4,     5,
     6,     7,     8,    -1,    10,    11,    12,    13,    -1,    15,
    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,    -1,    15,    16,    -1,
   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    -1,    77,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,     3,     4,     5,     6,     7,     8,    -1,
    10,    11,    12,    13,    -1,    15,    16,    -1,   126,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    -1,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,    -1,    15,    16,    -1,   126,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    33,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,     3,
     4,     5,     6,     7,     8,    -1,    10,    11,    12,    13,
    -1,    15,    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    -1,
    34,    -1,    36,    37,    38,    39,    -1,    41,    42,    43,
    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,
    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,
    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,
    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,
   104,    -1,    -1,    -1,    -1,   109,   110,     3,     4,     5,
     6,     7,     8,    -1,    10,    11,    12,    13,    -1,    15,
    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    -1,    77,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,    -1,    15,    16,    -1,
   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    33,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,     3,     4,     5,     6,     7,     8,    -1,
    10,    11,    12,    13,    -1,    15,    16,    -1,   126,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    30,    31,    32,    -1,    34,    -1,    36,    37,    38,    39,
    -1,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,    -1,
    -1,    61,    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,
    70,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    -1,
    -1,    -1,   102,   103,   104,    -1,    -1,    -1,    -1,   109,
   110,     3,     4,     5,     6,     7,     8,    -1,    10,    11,
    12,    13,    -1,    15,    16,    -1,   126,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,
    32,    -1,    34,    -1,    36,    37,    38,    39,    -1,    41,
    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
    52,    53,    54,    55,    56,    57,    -1,    -1,    -1,    61,
    -1,    63,    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,
    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    94,    95,    96,    -1,    -1,    -1,    -1,    -1,
   102,   103,   104,    -1,    -1,    -1,    -1,   109,   110,     3,
     4,     5,     6,     7,     8,    -1,    10,    11,    12,    13,
    -1,    15,    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    -1,
    34,    -1,    36,    37,    38,    39,    -1,    41,    42,    43,
    44,    45,    46,    -1,    48,    -1,    -1,    -1,    52,    53,
    54,    55,    56,    57,    -1,    -1,    -1,    61,    -1,    63,
    -1,    -1,    -1,    67,    -1,    -1,    70,    -1,    72,    73,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    94,    95,    96,    -1,    -1,    -1,    -1,    -1,   102,   103,
   104,    -1,    -1,    -1,    -1,   109,   110,     3,     4,     5,
     6,     7,     8,    -1,    10,    11,    12,    13,    -1,    15,
    16,    -1,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    30,    31,    32,    -1,    34,    -1,
    36,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
    46,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,
    56,    57,    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,
    -1,    67,    -1,    -1,    70,    -1,    72,    73,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,
    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
    96,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,    -1,
    -1,    -1,    -1,   109,   110,     3,     4,     5,     6,     7,
     8,    -1,    10,    11,    12,    13,    -1,    15,    16,    -1,
   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    30,    31,    32,    -1,    34,    -1,    36,    37,
    38,    39,    -1,    41,    42,    43,    44,    45,    46,    -1,
    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,    57,
    -1,    -1,    -1,    61,    -1,    63,    -1,    -1,    -1,    67,
    -1,    -1,    70,    -1,    72,    73,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    83,    -1,    -1,    86,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
    -1,    -1,    -1,    -1,   102,   103,   104,    -1,    -1,    -1,
    -1,   109,   110,    -1,    -1,    -1,    -1,     3,     4,    -1,
     6,     7,    -1,     9,    10,    -1,    -1,    -1,   126,    15,
    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    39,    40,    41,    42,    -1,    44,    -1,
    -1,    47,    -1,    49,    -1,    51,    -1,     4,     5,     6,
     7,    -1,     9,    10,    11,     4,     5,     6,     7,    16,
     9,    10,    11,    -1,    -1,    14,    72,    16,    -1,    -1,
    -1,    -1,    78,    30,    -1,    32,    33,    -1,    -1,    -1,
    -1,    30,    39,    32,    33,    -1,    -1,    -1,    -1,    -1,
    39,    48,    -1,    -1,    51,    -1,    -1,    -1,    -1,    48,
    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
    -1,    -1,    -1,    72,    73,     4,     5,     6,     7,    -1,
     9,    10,    11,    -1,    -1,    14,    -1,    16,     4,     5,
     6,     7,    -1,     9,    10,    11,    -1,    -1,    -1,    -1,
    16,    30,    -1,    32,    33,    -1,    -1,    -1,    -1,    -1,
    39,    -1,    -1,    -1,    30,    -1,    32,    33,    -1,    48,
    -1,    -1,    -1,    39,     4,     5,     6,     7,    57,     9,
    10,    11,    48,    -1,    -1,    -1,    16,    -1,    -1,    -1,
    -1,    57,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
    30,    -1,    32,    33,    -1,    -1,    72,    73,    -1,    39,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    72,    73,    79,    80,    81,    82,    83,    84,
    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    95,    96,    97,    98,    99,   100,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,   123,    79,
    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
    90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
   100,    78,    79,    80,    81,    82,    83,    84,    85,    86,
    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
    97,    98,    99,   100,    79,    80,    81,    82,    83,    84,
    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    95,    96,    97,    98,    99,   100
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/share/bison.simple"
/* This file comes from bison-1.28.  */

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C.  */
/* This used to test MSDOS, but that is a bad idea
   since that symbol is in the user namespace.  */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
	 instead, just don't use alloca.  */
#include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace.
   So I turned it off.   rms, 2 May 1997.  */
/* #include <malloc.h>  */
 #pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
		 and on HPUX 10.  Eventually we can turn this on.  */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */
#endif /* not GNU C */
#endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */

#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	goto yyacceptlab
#define YYABORT 	goto yyabortlab
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYPURE
#define YYLEX		yylex()
#endif

#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* Define __yy_memcpy.  Note that the size argument
   should be passed with type unsigned int, because that is what the non-GCC
   definitions require.  With GCC, __builtin_memcpy takes an arg
   of type size_t, but it can handle unsigned int.  */

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (to, from, count)
     char *to;
     char *from;
     unsigned int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#else /* __cplusplus */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (char *to, char *from, unsigned int count)
{
  register char *t = to;
  register char *f = from;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#endif
#endif

#line 217 "/usr/share/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif

int
yyparse(YYPARSE_PARAM_ARG)
     YYPARSE_PARAM_DECL
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  int yystacksize = YYINITDEPTH;
  int yyfree_stacks = 0;

#ifdef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
#ifdef YYLSP_NEEDED
      /* This used to be a conditional around just the two extra args,
	 but that might be undefined if yyoverflow is a macro.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yystacksize);
#else
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yystacksize);
#endif

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("parser stack overflow");
	  if (yyfree_stacks)
	    {
	      free (yyss);
	      free (yyvs);
#ifdef YYLSP_NEEDED
	      free (yyls);
#endif
	    }
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
      yyfree_stacks = 1;
#endif
      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss, (char *)yyss1,
		   size * (unsigned int) sizeof (*yyssp));
      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
		   size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1,
		   size * (unsigned int) sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

  goto yybackup;
 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Reading a token: ");
#endif
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	{
	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise meaning
	     of a token, for further debugging info.  */
#ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
#endif
	  fprintf (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  if (yylen > 0)
    yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      int i;

      fprintf (stderr, "Reducing via rule %d (line %d), ",
	       yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif


  switch (yyn) {

case 2:
#line 400 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_translation_unit (); ;
    break;}
case 3:
#line 408 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 4:
#line 410 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 5:
#line 412 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 8:
#line 421 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ have_extern_spec = 1;
		  used_extern_spec = 0;
		  yyval.ttype = NULL_TREE; ;
    break;}
case 9:
#line 426 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ have_extern_spec = 0; ;
    break;}
case 10:
#line 431 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = pedantic;
		  pedantic = 0; ;
    break;}
case 12:
#line 440 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_lang_change) do_pending_lang_change(); ;
    break;}
case 13:
#line 442 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (! toplevel_bindings_p () && ! pseudo_global_level_p())
		  pop_everything (); ;
    break;}
case 14:
#line 448 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 15:
#line 450 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 17:
#line 453 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 18:
#line 455 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
		  assemble_asm (yyvsp[-2].ttype); ;
    break;}
case 19:
#line 458 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pop_lang_context (); ;
    break;}
case 20:
#line 460 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 21:
#line 463 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 22:
#line 466 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ push_namespace (yyvsp[-1].ttype); ;
    break;}
case 23:
#line 468 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pop_namespace (); ;
    break;}
case 24:
#line 470 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ push_namespace (NULL_TREE); ;
    break;}
case 25:
#line 472 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pop_namespace (); ;
    break;}
case 27:
#line 475 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_toplevel_using_decl (yyvsp[-1].ttype); ;
    break;}
case 29:
#line 478 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 30:
#line 483 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 31:
#line 485 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  end_only_namespace_names ();
		  if (lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_namespace_alias (yyvsp[-4].ttype, yyvsp[-1].ttype);
		;
    break;}
case 32:
#line 495 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 33:
#line 497 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 34:
#line 499 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 35:
#line 504 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 36:
#line 506 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, global_namespace, yyvsp[0].ttype); ;
    break;}
case 37:
#line 508 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 38:
#line 513 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_only_namespace_names (); ;
    break;}
case 39:
#line 515 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  end_only_namespace_names ();
		  /* If no declaration was found, the using-directive is
		     invalid. Since that was not reported, we need the
		     identifier for the error message. */
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl)
		    yyvsp[-1].ttype = lastiddecl;
		  do_using_directive (yyvsp[-1].ttype);
		;
    break;}
case 40:
#line 528 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 41:
#line 534 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 44:
#line 545 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 45:
#line 547 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 46:
#line 552 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ push_lang_context (yyvsp[0].ttype); ;
    break;}
case 47:
#line 554 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (current_lang_name != yyvsp[0].ttype)
		    cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name);
		  pop_lang_context (); push_lang_context (yyvsp[0].ttype); ;
    break;}
case 48:
#line 561 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_template_parm_list (); ;
    break;}
case 49:
#line 563 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ;
    break;}
case 50:
#line 565 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_specialization(); 
		  yyval.ttype = NULL_TREE; ;
    break;}
case 51:
#line 571 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 52:
#line 573 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 53:
#line 578 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 54:
#line 580 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 55:
#line 584 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 56:
#line 586 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ;
    break;}
case 57:
#line 591 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 58:
#line 603 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 59:
#line 605 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ;
    break;}
case 60:
#line 607 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 61:
#line 609 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ;
    break;}
case 62:
#line 611 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 63:
#line 613 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL
		      && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM
		      && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL)
		    {
		      error ("invalid default template argument");
		      yyvsp[0].ttype = error_mark_node;
		    }
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype);
		;
    break;}
case 64:
#line 627 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 65:
#line 629 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_template_decl (yyvsp[-1].ttype); ;
    break;}
case 66:
#line 634 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 67:
#line 636 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 68:
#line 638 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines (); ;
    break;}
case 69:
#line 640 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 70:
#line 643 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pending_inlines) do_pending_inlines ();
		  pop_lang_context (); ;
    break;}
case 71:
#line 646 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 73:
#line 652 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{;
    break;}
case 74:
#line 654 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 75:
#line 656 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ maybe_process_partial_specialization (yyvsp[-1].ftype.t);
		  note_got_semicolon (yyvsp[-1].ftype.t); ;
    break;}
case 77:
#line 663 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{;
    break;}
case 78:
#line 665 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ note_list_got_semicolon (yyvsp[-2].ftype.t); ;
    break;}
case 79:
#line 667 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pedwarn ("empty declaration"); ;
    break;}
case 81:
#line 670 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  tree t, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs);
		  shadow_tag (t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 85:
#line 683 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 86:
#line 685 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 1; ;
    break;}
case 92:
#line 701 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_function (lineno, (int)yyvsp[-1].itype, 0); ;
    break;}
case 93:
#line 703 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype, nested); 
		;
    break;}
case 94:
#line 709 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ ;
    break;}
case 95:
#line 714 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 96:
#line 716 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 97:
#line 718 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 98:
#line 722 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 99:
#line 724 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 100:
#line 726 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 101:
#line 730 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 102:
#line 732 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 103:
#line 734 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype);
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 104:
#line 738 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 105:
#line 740 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 106:
#line 742 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); 
		  yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 107:
#line 749 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 108:
#line 752 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 109:
#line 755 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 110:
#line 758 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 111:
#line 761 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype))
		    YYERROR1; ;
    break;}
case 112:
#line 767 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 113:
#line 769 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 114:
#line 771 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 115:
#line 773 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 116:
#line 780 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs);
		 rest_of_mdef:
		  if (! yyval.ttype)
		    YYERROR1;
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  reinit_parse_for_method (yychar, yyval.ttype); ;
    break;}
case 117:
#line 791 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 118:
#line 794 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ftype.t, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 119:
#line 799 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 120:
#line 804 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 121:
#line 807 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-1].ttype, &specs, &attrs);
		  attrs = build_tree_list (attrs, NULL_TREE);
		  yyval.ttype = start_method (specs, yyvsp[0].ttype, attrs); goto rest_of_mdef; ;
    break;}
case 122:
#line 812 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = start_method (NULL_TREE, yyval.ttype, NULL_TREE); 
		  goto rest_of_mdef; ;
    break;}
case 123:
#line 818 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 124:
#line 827 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ store_return_init (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 125:
#line 829 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ store_return_init (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 126:
#line 831 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ store_return_init (yyval.ttype, NULL_TREE); ;
    break;}
case 127:
#line 836 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (yyvsp[0].itype == 0)
		    error ("no base initializers given following ':'");
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 128:
#line 849 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();

		  if (DECL_CONSTRUCTOR_P (current_function_decl))
		    {
		      /* Make a contour for the initializer list.  */
		      pushlevel (0);
		      clear_last_expr ();
		      expand_start_bindings (0);
		    }
		  else if (current_class_type == NULL_TREE)
		    error ("base initializers not allowed for non-member functions");
		  else if (! DECL_CONSTRUCTOR_P (current_function_decl))
		    error ("only constructors take base initializers");
		;
    break;}
case 129:
#line 869 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 130:
#line 871 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 1; ;
    break;}
case 133:
#line 878 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype);
		;
    break;}
case 134:
#line 884 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (current_class_name)
		    pedwarn ("anachronistic old style base class initializer");
		  expand_member_init (current_class_ref, NULL_TREE, void_type_node);
		;
    break;}
case 135:
#line 890 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 136:
#line 892 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 137:
#line 894 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 138:
#line 896 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ;
    break;}
case 139:
#line 898 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype),
				      yyvsp[-1].ttype); ;
    break;}
case 140:
#line 901 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype),
				      void_type_node); ;
    break;}
case 154:
#line 929 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE);
		  yyungetc (';', 1); ;
    break;}
case 156:
#line 933 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 158:
#line 937 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 160:
#line 940 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 162:
#line 943 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype);
		  yyungetc (';', 1); ;
    break;}
case 164:
#line 948 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ;
    break;}
case 166:
#line 952 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 168:
#line 955 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ;
    break;}
case 170:
#line 960 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_explicit_instantiation(); ;
    break;}
case 171:
#line 963 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ end_explicit_instantiation(); ;
    break;}
case 172:
#line 972 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 173:
#line 975 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 176:
#line 983 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 177:
#line 988 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 178:
#line 992 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (yychar == YYEMPTY)
		    yychar = YYLEX;

		  yyval.ttype = finish_template_type (yyvsp[-3].ttype, yyvsp[-1].ttype, 
					     yychar == SCOPE);
		;
    break;}
case 180:
#line 1003 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Handle `Class<Class<Type>>' without space in the `>>' */
		  pedwarn ("`>>' should be `> >' in template class name");
		  yyungetc ('>', 1);
		;
    break;}
case 181:
#line 1012 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 183:
#line 1018 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 184:
#line 1020 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 185:
#line 1025 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = groktypename (yyvsp[0].ftype.t); ;
    break;}
case 186:
#line 1027 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lastiddecl; ;
    break;}
case 188:
#line 1033 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.code = NEGATE_EXPR; ;
    break;}
case 189:
#line 1035 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.code = CONVERT_EXPR; ;
    break;}
case 190:
#line 1037 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.code = PREINCREMENT_EXPR; ;
    break;}
case 191:
#line 1039 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.code = PREDECREMENT_EXPR; ;
    break;}
case 192:
#line 1041 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.code = TRUTH_NOT_EXPR; ;
    break;}
case 193:
#line 1046 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_compound_expr (yyval.ttype); ;
    break;}
case 195:
#line 1052 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 196:
#line 1056 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 197:
#line 1061 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("ANSI C++ forbids an empty condition for `%s'",
			 cond_stmt_keyword);
		  yyval.ttype = integer_zero_node; ;
    break;}
case 198:
#line 1065 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 199:
#line 1070 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 201:
#line 1073 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 202:
#line 1078 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ {
		  tree d;
		  for (d = getdecls (); d; d = TREE_CHAIN (d))
		    if (TREE_CODE (d) == TYPE_DECL) {
		      tree s = TREE_TYPE (d);
		      if (TREE_CODE (s) == RECORD_TYPE)
			cp_error ("definition of class `%T' in condition", s);
		      else if (TREE_CODE (s) == ENUMERAL_TYPE)
			cp_error ("definition of enum `%T' in condition", s);
		    }
		  }
		  current_declspecs = yyvsp[-4].ftype.t;
		  yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE);
		;
    break;}
case 203:
#line 1095 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING);
		  resume_momentary (yyvsp[-2].itype);
		  yyval.ttype = convert_from_reference (yyvsp[-1].ttype); 
		  if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE)
		    cp_error ("definition of array `%#D' in condition", yyval.ttype); 
		;
    break;}
case 209:
#line 1114 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_compound_stmt (1); ;
    break;}
case 210:
#line 1116 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_compound_stmt (1, yyvsp[-1].ttype); ;
    break;}
case 212:
#line 1123 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 213:
#line 1126 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, 
		                  build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 214:
#line 1129 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 215:
#line 1131 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ;
    break;}
case 216:
#line 1136 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ;
    break;}
case 218:
#line 1142 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 219:
#line 1145 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 220:
#line 1148 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ;
    break;}
case 221:
#line 1150 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 222:
#line 1152 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 223:
#line 1154 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 224:
#line 1157 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids `&&'");
  		  yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ;
    break;}
case 225:
#line 1161 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = expr_sizeof (yyvsp[0].ttype); ;
    break;}
case 226:
#line 1163 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t));
		  check_for_new_type ("sizeof", yyvsp[-1].ftype); ;
    break;}
case 227:
#line 1166 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grok_alignof (yyvsp[0].ttype); ;
    break;}
case 228:
#line 1168 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); 
		  check_for_new_type ("alignof", yyvsp[-1].ftype); ;
    break;}
case 229:
#line 1171 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = c_vec_step_expr (yyvsp[0].ttype); ;
    break;}
case 230:
#line 1173 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = c_vec_step (groktypename (yyvsp[-1].ftype.t)); ;
    break;}
case 231:
#line 1178 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 232:
#line 1181 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 233:
#line 1184 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); 
		  check_for_new_type ("new", yyvsp[0].ftype); ;
    break;}
case 234:
#line 1187 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 235:
#line 1200 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t),
				  NULL_TREE, yyvsp[-4].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 236:
#line 1205 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 237:
#line 1209 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); 
		  check_for_new_type ("new", yyvsp[-1].ftype); ;
    break;}
case 238:
#line 1213 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); 
		  check_for_new_type ("new", yyvsp[-2].ftype); ;
    break;}
case 239:
#line 1217 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ;
    break;}
case 240:
#line 1219 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 241:
#line 1223 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 242:
#line 1227 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-3].itype);
		  if (yychar == YYEMPTY)
		    yychar = YYLEX; ;
    break;}
case 243:
#line 1231 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 244:
#line 1233 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ;
    break;}
case 245:
#line 1243 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_new_placement (NULL_TREE, yyvsp[-2].itype); ;
    break;}
case 246:
#line 1246 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = begin_new_placement (); ;
    break;}
case 247:
#line 1250 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 248:
#line 1252 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ cp_pedwarn ("old style placement syntax, use () instead");
		  yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ;
    break;}
case 249:
#line 1258 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 250:
#line 1260 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 251:
#line 1262 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t);
		  yyval.ttype = error_mark_node;
		;
    break;}
case 252:
#line 1270 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids initialization of new expression with `='");
		  if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST
		      && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR)
		    yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 253:
#line 1284 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0);
		  yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 254:
#line 1288 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); 
		  yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE);
		  check_for_new_type ("cast", yyvsp[-1].ftype); ;
    break;}
case 256:
#line 1296 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = reparse_absdcl_as_casts_or_vector_constant (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 257:
#line 1298 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = reparse_absdcl_as_casts_or_vector_constant (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 258:
#line 1300 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  tree init = build_nt (CONSTRUCTOR, NULL_TREE,
					nreverse (yyvsp[-2].ttype)); 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids constructor-expressions");
		  /* Indicate that this was a GNU C constructor expression.  */
		  TREE_HAS_CONSTRUCTOR (init) = 1;

		  yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init);
		;
    break;}
case 260:
#line 1316 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 261:
#line 1318 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 262:
#line 1320 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 263:
#line 1322 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 264:
#line 1324 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 265:
#line 1326 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 266:
#line 1328 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 267:
#line 1330 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 268:
#line 1332 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 269:
#line 1334 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 270:
#line 1336 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 271:
#line 1338 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 272:
#line 1340 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 273:
#line 1342 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 274:
#line 1344 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 275:
#line 1346 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 276:
#line 1348 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 277:
#line 1350 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 278:
#line 1352 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 279:
#line 1354 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 280:
#line 1356 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype);
		  if (yyval.ttype != error_mark_node)
                    C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
    break;}
case 281:
#line 1360 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ;
    break;}
case 282:
#line 1362 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_throw (NULL_TREE); ;
    break;}
case 283:
#line 1364 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_throw (yyvsp[0].ttype); ;
    break;}
case 284:
#line 1382 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 285:
#line 1384 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ;
    break;}
case 291:
#line 1393 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* If lastiddecl is a TREE_LIST, it's a baselink, which
		     means that we're in an expression like S::f<int>, so
		     don't do_identifier; we only do that for unqualified
		     identifiers.  */
		  if (lastiddecl && TREE_CODE (lastiddecl) != TREE_LIST)
		    yyval.ttype = do_identifier (yyvsp[-1].ttype, 1, NULL_TREE);
		  else
		    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 292:
#line 1406 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 293:
#line 1408 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 294:
#line 1413 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 295:
#line 1415 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 296:
#line 1418 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 301:
#line 1430 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 303:
#line 1440 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ;
    break;}
case 304:
#line 1442 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ;
    break;}
case 305:
#line 1444 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 306:
#line 1449 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 307:
#line 1451 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 311:
#line 1461 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ;
    break;}
case 312:
#line 1466 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR)
		    yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0));
		  else 
		    yyval.ttype = finish_id_expr (yyvsp[0].ttype);
		;
    break;}
case 315:
#line 1475 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (processing_template_decl)
		    push_obstacks (&permanent_obstack, &permanent_obstack);
		  yyval.ttype = combine_strings (yyval.ttype);
		  /* combine_strings doesn't set up TYPE_MAIN_VARIANT of
		     a const array the way we want, so fix it.  */
		  if (flag_const_strings)
		    TREE_TYPE (yyval.ttype) = build_cplus_array_type
		      (TREE_TYPE (TREE_TYPE (yyval.ttype)),
		       TYPE_DOMAIN (TREE_TYPE (yyval.ttype)));
		  if (processing_template_decl)
		    pop_obstacks ();
		;
    break;}
case 316:
#line 1489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 317:
#line 1491 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype);
		  yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ;
    break;}
case 318:
#line 1494 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = error_mark_node; ;
    break;}
case 319:
#line 1496 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree scope = current_scope ();
		  if (!scope || TREE_CODE (scope) != FUNCTION_DECL)
		    {
		      error ("braced-group within expression allowed only inside a function");
		      YYERROR;
		    }
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids braced-groups within expressions");  
		  yyval.ttype = begin_stmt_expr (); 
		;
    break;}
case 320:
#line 1507 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 321:
#line 1512 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 1); ;
    break;}
case 322:
#line 1514 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 1); ;
    break;}
case 323:
#line 1516 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype, 0); ;
    break;}
case 324:
#line 1518 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE, 0); ;
    break;}
case 325:
#line 1520 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 326:
#line 1522 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ;
    break;}
case 327:
#line 1524 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ;
    break;}
case 328:
#line 1527 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_this_expr (); ;
    break;}
case 329:
#line 1529 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* This is a C cast in C++'s `functional' notation
		     using the "implicit int" extension so that:
		     `const (3)' is equivalent to `const int (3)'.  */
		  tree type;

		  if (yyvsp[-1].ttype == error_mark_node)
		    {
		      yyval.ttype = error_mark_node;
		      break;
		    }

		  type = cp_build_qualified_type (integer_type_node,
						  cp_type_qual_from_rid (yyvsp[-3].ttype));
		  yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype));
		;
    break;}
case 331:
#line 1547 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("dynamic_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ;
    break;}
case 332:
#line 1551 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("static_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ;
    break;}
case 333:
#line 1555 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ;
    break;}
case 334:
#line 1559 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-4].ftype.t);
		  check_for_new_type ("const_cast", yyvsp[-4].ftype);
		  yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ;
    break;}
case 335:
#line 1563 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ;
    break;}
case 336:
#line 1565 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);
		  check_for_new_type ("typeid", yyvsp[-1].ftype);
		  yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ;
    break;}
case 337:
#line 1569 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ;
    break;}
case 338:
#line 1571 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 339:
#line 1573 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  got_scope = NULL_TREE;
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 340:
#line 1581 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ;
    break;}
case 341:
#line 1583 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 342:
#line 1585 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_qualified_call_expr (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 343:
#line 1587 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); 
		;
    break;}
case 344:
#line 1591 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 345:
#line 1593 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 346:
#line 1595 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ;
    break;}
case 347:
#line 1597 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (processing_template_decl)
		    yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype));
		  else
		    yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ;
    break;}
case 348:
#line 1602 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 349:
#line 1604 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 350:
#line 1606 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 351:
#line 1608 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 352:
#line 1611 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 353:
#line 1613 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ;
    break;}
case 354:
#line 1616 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
    break;}
case 355:
#line 1618 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
    break;}
case 356:
#line 1620 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
    break;}
case 357:
#line 1622 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
    break;}
case 358:
#line 1624 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = error_mark_node;
		;
    break;}
case 359:
#line 1669 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 360:
#line 1671 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 361:
#line 1676 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 362:
#line 1678 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE; yyval.itype = 1; ;
    break;}
case 363:
#line 1683 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = boolean_true_node; ;
    break;}
case 364:
#line 1685 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = boolean_false_node; ;
    break;}
case 366:
#line 1692 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 367:
#line 1694 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
    break;}
case 368:
#line 1696 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_encode_expr (yyvsp[-1].ttype)); ;
    break;}
case 370:
#line 1704 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 371:
#line 1709 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  setup_vtbl_ptr ();
		  /* Always keep the BLOCK node associated with the outermost
		     pair of curley braces of a function.  These are needed
		     for correct operation of dwarfout.c.  */
		  keep_next_level ();
		;
    break;}
case 372:
#line 1722 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_object = TREE_TYPE (yyval.ttype); ;
    break;}
case 373:
#line 1724 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_x_arrow (yyval.ttype); 
		  got_object = TREE_TYPE (yyval.ttype);
		;
    break;}
case 374:
#line 1732 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t)))
		    note_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 375:
#line 1738 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  resume_momentary (yyvsp[-1].itype);
		  note_list_got_semicolon (yyvsp[-2].ftype.t);
		;
    break;}
case 376:
#line 1743 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary (yyvsp[-1].itype); ;
    break;}
case 377:
#line 1745 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  shadow_tag (yyvsp[-1].ftype.t);
		  note_list_got_semicolon (yyvsp[-1].ftype.t);
		;
    break;}
case 378:
#line 1750 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ warning ("empty declaration"); ;
    break;}
case 379:
#line 1752 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ pedantic = yyvsp[-1].itype; ;
    break;}
case 382:
#line 1766 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (),
					     NULL_TREE, NULL_TREE); ;
    break;}
case 383:
#line 1769 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE,
					     NULL_TREE); ;
    break;}
case 384:
#line 1776 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 385:
#line 1779 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 386:
#line 1782 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 387:
#line 1786 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 388:
#line 1789 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 391:
#line 1805 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 392:
#line 1808 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 393:
#line 1811 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 394:
#line 1814 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 395:
#line 1817 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 396:
#line 1820 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t,
					 chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 397:
#line 1827 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyval.ttype));
		  yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ;
    break;}
case 398:
#line 1832 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ;
    break;}
case 399:
#line 1834 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (extra_warnings)
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 400:
#line 1839 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 401:
#line 1841 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 402:
#line 1860 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 403:
#line 1862 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 404:
#line 1864 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = 1; ;
    break;}
case 405:
#line 1867 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (extra_warnings && TREE_STATIC (yyval.ttype))
		    warning ("`%s' is not at beginning of declaration",
			     IDENTIFIER_POINTER (yyvsp[0].ttype));
		  yyval.ttype = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype);
		  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
    break;}
case 406:
#line 1873 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 407:
#line 1875 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = hash_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
    break;}
case 408:
#line 1886 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 409:
#line 1889 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 410:
#line 1892 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 411:
#line 1895 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); 
		  yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ;
    break;}
case 412:
#line 1901 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 413:
#line 1903 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 415:
#line 1913 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; 
                  if(!processing_template_parmlist) objc_need_raw_identifier = 1; ;
    break;}
case 416:
#line 1916 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 417:
#line 1919 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = get_object_reference (yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 418:
#line 1922 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 419:
#line 1924 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = finish_typeof (yyvsp[-1].ttype);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 420:
#line 1927 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = groktypename (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 421:
#line 1930 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = TREE_TYPE (yyvsp[-1].ttype);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error ("`sigof' applied to non-aggregate expression");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 422:
#line 1945 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree type = groktypename (yyvsp[-1].ftype.t);

                  yyval.ftype.new_type_flag = 0;
		  if (IS_AGGR_TYPE (type))
		    {
		      sorry ("sigof type specifier");
		      yyval.ftype.t = type;
		    }
		  else
		    {
		      error("`sigof' applied to non-aggregate type");
		      yyval.ftype.t = error_mark_node;
		    }
		;
    break;}
case 423:
#line 1965 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 424:
#line 1967 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ;
    break;}
case 427:
#line 1974 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 429:
#line 1980 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 431:
#line 1986 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_multiple_declarators (); ;
    break;}
case 432:
#line 1991 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 433:
#line 1993 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 434:
#line 1998 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
					  yyvsp[-1].ttype, prefix_attributes); ;
    break;}
case 435:
#line 2002 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ;
    break;}
case 436:
#line 2004 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
					  yyvsp[0].ttype, prefix_attributes);
		  cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 437:
#line 2017 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, 
					   yyvsp[-1].ttype, 1, &yyval.ttype); ;
    break;}
case 438:
#line 2022 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1,
				  LOOKUP_ONLYCONVERTING);
		  yyval.itype = yyvsp[-2].itype; ;
    break;}
case 439:
#line 2026 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree d;
		  yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 440:
#line 2033 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 441:
#line 2037 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = yyvsp[0].itype; ;
    break;}
case 442:
#line 2042 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ /* Set things up as initdcl0_innards expects.  */
	      yyvsp[0].ttype = yyvsp[-1].ttype; 
              yyvsp[-1].ttype = NULL_TREE; ;
    break;}
case 443:
#line 2046 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{;
    break;}
case 444:
#line 2048 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree d;
		  parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d);
		  cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ;
    break;}
case 445:
#line 2057 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 446:
#line 2059 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 447:
#line 2064 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 448:
#line 2066 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 449:
#line 2071 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-2].ttype; ;
    break;}
case 450:
#line 2076 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 451:
#line 2078 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 452:
#line 2083 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 453:
#line 2085 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 454:
#line 2087 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
    break;}
case 455:
#line 2089 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
    break;}
case 456:
#line 2091 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 461:
#line 2107 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 462:
#line 2109 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 463:
#line 2114 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 464:
#line 2116 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 466:
#line 2124 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE);
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 467:
#line 2127 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 468:
#line 2130 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype));
		  TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ;
    break;}
case 469:
#line 2133 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 470:
#line 2140 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ;
    break;}
case 471:
#line 2142 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 472:
#line 2149 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 473:
#line 2151 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 474:
#line 2156 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype),
				  NULL_TREE, 2);
		  reinit_parse_for_function (); ;
    break;}
case 475:
#line 2162 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[-1].itype | 2, nested);
		  process_next_inline (yyvsp[-3].ttype);
		;
    break;}
case 476:
#line 2169 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  int nested = (hack_decl_function_context
				(current_function_decl) != NULL_TREE);
		  finish_function (lineno, (int)yyvsp[0].itype | 2, nested); 
                  process_next_inline (yyvsp[-2].ttype);
		;
    break;}
case 477:
#line 2176 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ process_next_inline (yyvsp[-2].ttype); ;
    break;}
case 480:
#line 2188 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 481:
#line 2190 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ replace_defarg (yyvsp[-2].ttype, error_mark_node); ;
    break;}
case 483:
#line 2195 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_pending_defargs (); ;
    break;}
case 484:
#line 2197 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_pending_defargs (); ;
    break;}
case 485:
#line 2202 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (yyvsp[-1].ttype); ;
    break;}
case 486:
#line 2206 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-4].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 487:
#line 2213 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 488:
#line 2217 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[0].itype = suspend_momentary ();
		  yyval.ttype = current_enum_type;
		  current_enum_type = start_enum (make_anon_name ()); ;
    break;}
case 489:
#line 2221 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ TYPE_VALUES (current_enum_type) = yyvsp[-2].ttype;
		  yyval.ftype.t = finish_enum (current_enum_type);
		  yyval.ftype.new_type_flag = 1;
		  current_enum_type = yyvsp[-3].ttype;
		  resume_momentary ((int) yyvsp[-5].itype);
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 490:
#line 2228 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = finish_enum (start_enum (make_anon_name()));
		  yyval.ftype.new_type_flag = 1;
		  check_for_missing_semicolon (yyval.ftype.t); ;
    break;}
case 491:
#line 2232 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 492:
#line 2235 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 493:
#line 2238 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0; 
		  if (!processing_template_decl)
		    cp_pedwarn ("using `typename' outside of template"); ;
    break;}
case 494:
#line 2244 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyvsp[-1].ftype.t = begin_class_definition (yyvsp[-1].ftype.t); ;
    break;}
case 495:
#line 2246 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  int semi;

		  if (yychar == YYEMPTY)
		    yychar = YYLEX;
		  semi = yychar == ';';

		  yyval.ttype = finish_class_definition (yyvsp[-5].ftype.t, yyvsp[0].ttype, semi,
						       yyvsp[-5].ftype.new_type_flag); 
		;
    break;}
case 496:
#line 2257 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  begin_inline_definitions ();
		;
    break;}
case 497:
#line 2261 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  finish_inline_definitions ();
		  yyval.ftype.t = yyvsp[-3].ttype;
		  yyval.ftype.new_type_flag = 1; 
		;
    break;}
case 498:
#line 2267 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (yyvsp[0].ftype.new_type_flag)
		    pop_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (yyvsp[0].ftype.t)));
		  yyval.ftype.new_type_flag = 0;
		  if (TYPE_BINFO (yyvsp[0].ftype.t) == NULL_TREE)
		    {
		      cp_error ("%T is not a class type", yyvsp[0].ftype.t);
		      yyval.ftype.t = error_mark_node;
		    } 
		  else
		    {
		      yyval.ftype.t = yyvsp[0].ftype.t;
		      /* struct B: public A; is not accepted by the WP grammar.  */
		      if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t)
			  && ! TYPE_BEING_DEFINED (yyval.ftype.t))
			cp_error ("base clause without member specification for `%#T'",
				  yyval.ftype.t);
		    }
		;
    break;}
case 502:
#line 2296 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pedantic && !in_system_header)
		    pedwarn ("comma at end of enumerator list"); ;
    break;}
case 504:
#line 2303 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 505:
#line 2305 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 506:
#line 2307 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ;
    break;}
case 507:
#line 2309 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("no body nor ';' separates two class, struct or union declarations"); ;
    break;}
case 508:
#line 2311 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_decl_list (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 509:
#line 2316 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ttype = yyvsp[0].ttype; 
		;
    break;}
case 510:
#line 2324 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 511:
#line 2326 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyungetc ('{', 1); ;
    break;}
case 512:
#line 2328 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyungetc (':', 1); ;
    break;}
case 513:
#line 2333 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 514:
#line 2339 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  current_aggr = yyvsp[-3].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 515:
#line 2345 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  current_aggr = yyvsp[-2].ttype;
		  yyval.ftype.t = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 516:
#line 2351 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  current_aggr = yyvsp[-1].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 517:
#line 2357 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  current_aggr = yyvsp[-2].ttype; 
		  yyval.ftype.t = yyvsp[0].ttype;
		  if (CP_DECL_CONTEXT (yyval.ftype.t))
		    push_scope (CP_DECL_CONTEXT (yyval.ftype.t));
		  yyval.ftype.new_type_flag = 1;
		;
    break;}
case 518:
#line 2368 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ftype.t = xref_tag (current_aggr, yyvsp[0].ttype, 1); 
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 519:
#line 2373 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, 0); ;
    break;}
case 520:
#line 2377 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ftype.t = yyvsp[-1].ttype;
		  yyval.ftype.new_type_flag = 0;
		  if (yyvsp[0].ttype)
                    xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); 
		;
    break;}
case 521:
#line 2385 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (yyvsp[-1].ftype.t != error_mark_node)
		    {
		      yyval.ftype.t = TREE_TYPE (yyvsp[-1].ftype.t);
		      yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		      if (current_aggr == union_type_node
			  && TREE_CODE (yyval.ftype.t) != UNION_TYPE)
			cp_pedwarn ("`union' tag used in declaring `%#T'", 
				    yyval.ftype.t);
		      else if (TREE_CODE (yyval.ftype.t) == UNION_TYPE
			       && current_aggr != union_type_node)
			cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ftype);
		      else if (TREE_CODE (yyval.ftype.t) == RECORD_TYPE)
			/* We might be specializing a template with a different
			   class-key; deal.  */
			CLASSTYPE_DECLARED_CLASS (yyval.ftype.t) 
			  = (current_aggr == class_type_node);
		      if (yyvsp[0].ttype)
			{
			  maybe_process_partial_specialization (yyval.ftype.t);
			  xref_basetypes (current_aggr, yyvsp[-1].ftype.t, yyval.ftype.t, yyvsp[0].ttype); 
			}
		    }
		;
    break;}
case 522:
#line 2413 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), 0);
		  yyungetc ('{', 1); ;
    break;}
case 523:
#line 2423 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ftype.t = yyvsp[0].ttype;
		  yyval.ftype.new_type_flag = 0;
		;
    break;}
case 525:
#line 2432 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 526:
#line 2434 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyungetc(':', 1); yyval.ttype = NULL_TREE; ;
    break;}
case 527:
#line 2436 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 529:
#line 2442 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 530:
#line 2447 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_base_specifier (access_default_node, yyvsp[0].ttype,
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 531:
#line 2451 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_base_specifier (yyvsp[-2].ttype, yyvsp[0].ttype, 
					      current_aggr 
					      == signature_type_node); ;
    break;}
case 532:
#line 2458 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ;
    break;}
case 534:
#line 2461 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = TREE_TYPE (yyvsp[-1].ttype);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 535:
#line 2482 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t)))
			{
			  sorry ("`sigof' as base signature specifier");
			  yyval.ttype = groktypename (yyvsp[-1].ftype.t);
			}
		      else
			{
			  error ("`sigof' applied to non-aggregate expression");
			  yyval.ttype = error_mark_node;
			}
		    }
		  else
		    {
		      error ("`sigof' in struct or class declaration");
		      yyval.ttype = error_mark_node;
		    }
		;
    break;}
case 537:
#line 2507 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  yyval.ttype = access_default_virtual_node; ;
    break;}
case 538:
#line 2511 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (yyvsp[-2].ttype != access_default_virtual_node)
		    error ("multiple access specifiers");
		  else if (yyvsp[-1].ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyvsp[-1].ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else /* $2 == access_private_node */
		    yyval.ttype = access_private_virtual_node;
		;
    break;}
case 539:
#line 2522 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL])
		    cp_error ("`%D' access", yyvsp[-1].ttype);
		  else if (yyval.ttype == access_public_node)
		    yyval.ttype = access_public_virtual_node;
		  else if (yyval.ttype == access_protected_node)
		    yyval.ttype = access_protected_virtual_node;
		  else if (yyval.ttype == access_private_node)
		    yyval.ttype = access_private_virtual_node;
		  else
		    error ("multiple `virtual' specifiers");
		;
    break;}
case 544:
#line 2542 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ emit_class_ivars(yyvsp[-1].ttype); ;
    break;}
case 545:
#line 2544 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ emit_class_ivars(yyvsp[-2].ttype); ;
    break;}
case 546:
#line 2549 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (current_aggr == signature_type_node)
		    {
		      error ("access specifier not allowed in signature");
		      yyvsp[-1].ttype = access_public_node;
		    }

		  current_access_specifier = yyvsp[-1].ttype;
                ;
    break;}
case 547:
#line 2564 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 548:
#line 2568 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_member_declaration (yyvsp[0].ttype);
		;
    break;}
case 550:
#line 2576 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("missing ';' before right brace");
		  yyungetc ('}', 0); ;
    break;}
case 551:
#line 2581 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 552:
#line 2583 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 553:
#line 2585 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 554:
#line 2587 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
    break;}
case 555:
#line 2589 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 556:
#line 2591 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype;
		  pedantic = yyvsp[-1].itype; ;
    break;}
case 557:
#line 2594 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{  
		  if (yyvsp[0].ttype)
		    yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
		  else
		    /* The component was already processed.  */
		    yyval.ttype = NULL_TREE;

		  finish_template_decl (yyvsp[-1].ttype);
		;
    break;}
case 558:
#line 2604 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t); 
		  finish_template_decl (yyvsp[-2].ttype);
		;
    break;}
case 559:
#line 2615 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Most of the productions for component_decl only
		     allow the creation of one new member, so we call
		     finish_member_declaration in component_decl_list.
		     For this rule and the next, however, there can be
		     more than one member, e.g.:

		       int i, j;

		     and we need the first member to be fully
		     registered before the second is processed.
		     Therefore, the rules for components take care of
		     this processing.  To avoid registering the
		     components more than once, we send NULL_TREE up
		     here; that lets finish_member_declaration know
		     that there is nothing to do.  */
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ftype.t);
		  yyval.ttype = NULL_TREE;
		;
    break;}
case 560:
#line 2636 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (!yyvsp[0].itype)
		    grok_x_components (yyvsp[-1].ttype);
		  yyval.ttype = NULL_TREE; 
		;
    break;}
case 561:
#line 2642 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 562:
#line 2645 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 563:
#line 2648 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 564:
#line 2650 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 565:
#line 2661 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs, attrs;
		  split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
		  yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, attrs)); ;
    break;}
case 566:
#line 2666 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
    break;}
case 567:
#line 2669 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
    break;}
case 568:
#line 2675 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 569:
#line 2677 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 1;
		;
    break;}
case 570:
#line 2684 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 2;
		;
    break;}
case 571:
#line 2695 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = 0; ;
    break;}
case 572:
#line 2697 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype);
		  yyval.itype = 1;
		;
    break;}
case 573:
#line 2704 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  check_multiple_declarators ();
		  if (PROCESSING_REAL_TEMPLATE_DECL_P ())
		    yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
		  finish_member_declaration (yyvsp[0].ttype); 
		  yyval.itype = 2;
		;
    break;}
case 578:
#line 2725 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 579:
#line 2731 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 580:
#line 2740 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 581:
#line 2746 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 582:
#line 2752 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-4].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 583:
#line 2758 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
				     &prefix_attributes);
		  yyvsp[-3].ttype = current_declspecs;
		  yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 584:
#line 2767 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 585:
#line 2770 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 586:
#line 2776 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
				  build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
    break;}
case 587:
#line 2779 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 588:
#line 2782 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
		  cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
    break;}
case 590:
#line 2793 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 591:
#line 2798 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
    break;}
case 592:
#line 2800 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
    break;}
case 593:
#line 2806 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 594:
#line 2809 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 595:
#line 2816 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
		  yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype);
		  yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
		;
    break;}
case 596:
#line 2827 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 597:
#line 2829 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 598:
#line 2834 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 599:
#line 2837 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = hash_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 600:
#line 2846 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.itype = suspend_momentary (); ;
    break;}
case 601:
#line 2852 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 602:
#line 2864 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  yyval.ttype = NULL_TREE;
                ;
    break;}
case 603:
#line 2868 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                    yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 604:
#line 2876 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 605:
#line 2878 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 606:
#line 2880 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-2].itype); yyval.ttype = empty_parms (); ;
    break;}
case 607:
#line 2882 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
    break;}
case 608:
#line 2884 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
    break;}
case 610:
#line 2892 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 611:
#line 2902 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 612:
#line 2904 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 613:
#line 2906 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 614:
#line 2908 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 615:
#line 2910 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 617:
#line 2918 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 618:
#line 2920 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 619:
#line 2922 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 620:
#line 2924 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 621:
#line 2926 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
		  TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
    break;}
case 624:
#line 2935 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lookup_name (yyvsp[0].ttype, 1);
		      maybe_note_name_used_in_class (yyvsp[0].ttype, yyval.ttype);
		    }
		  else
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 625:
#line 2945 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 628:
#line 2958 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 629:
#line 2963 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
    break;}
case 631:
#line 2972 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 632:
#line 2981 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 633:
#line 2983 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 634:
#line 2985 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 635:
#line 2987 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 636:
#line 2989 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 638:
#line 2997 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 639:
#line 2999 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 640:
#line 3001 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 641:
#line 3003 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 642:
#line 3005 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 644:
#line 3013 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 645:
#line 3015 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 646:
#line 3017 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 647:
#line 3019 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 648:
#line 3021 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
    break;}
case 649:
#line 3023 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
		  enter_scope_of (yyval.ttype);
		;
    break;}
case 650:
#line 3031 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 651:
#line 3034 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE;
 		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 652:
#line 3040 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 653:
#line 3043 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE;
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 655:
#line 3050 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 656:
#line 3055 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 657:
#line 3057 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
    break;}
case 658:
#line 3059 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 663:
#line 3070 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 664:
#line 3072 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 665:
#line 3079 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    {
		      yyval.ttype = lastiddecl;
		      maybe_note_name_used_in_class (yyvsp[-1].ttype, yyval.ttype);
		    }
		  got_scope = yyval.ttype =
		    complete_type (TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype)));
		;
    break;}
case 666:
#line 3089 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
		;
    break;}
case 667:
#line 3095 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 668:
#line 3101 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
    break;}
case 670:
#line 3117 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 671:
#line 3122 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 672:
#line 3135 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
    break;}
case 673:
#line 3137 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 674:
#line 3139 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
    break;}
case 675:
#line 3144 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		;
    break;}
case 676:
#line 3149 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
		    yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
		  else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
		  else
		    {
		      yyval.ttype = yyvsp[0].ttype;
		      if (TREE_CODE (yyval.ttype) == TYPE_DECL)
			yyval.ttype = TREE_TYPE (yyval.ttype);
		    }
		;
    break;}
case 677:
#line 3162 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
    break;}
case 678:
#line 3164 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 679:
#line 3169 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyvsp[-1].ttype = lastiddecl;

		  /* Retrieve the type for the identifier, which might involve
		     some computation. */
		  got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype));

		  if (yyval.ttype == error_mark_node)
		    cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
		;
    break;}
case 680:
#line 3181 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
		;
    break;}
case 681:
#line 3187 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
    break;}
case 684:
#line 3191 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
		    yyval.ttype = lastiddecl;
		  got_scope = yyval.ttype;
		;
    break;}
case 685:
#line 3200 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 686:
#line 3205 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
		    yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
		  else
		    yyval.ttype = yyvsp[0].ttype;
		  got_scope = NULL_TREE;
		;
    break;}
case 688:
#line 3214 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 689:
#line 3219 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 690:
#line 3221 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
    break;}
case 691:
#line 3228 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = void_type_node; ;
    break;}
case 692:
#line 3234 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 693:
#line 3236 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 694:
#line 3238 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 695:
#line 3240 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 696:
#line 3242 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 697:
#line 3246 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 699:
#line 3255 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 700:
#line 3257 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 702:
#line 3263 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* Provide support for '(' attributes '*' declarator ')'
		     etc */
		  yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 703:
#line 3273 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 704:
#line 3275 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 705:
#line 3277 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 706:
#line 3279 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 707:
#line 3281 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 708:
#line 3283 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 709:
#line 3285 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
    break;}
case 710:
#line 3287 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
    break;}
case 711:
#line 3289 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
		;
    break;}
case 712:
#line 3293 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 714:
#line 3302 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 716:
#line 3306 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 717:
#line 3308 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 718:
#line 3310 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 719:
#line 3312 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
    break;}
case 720:
#line 3314 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 721:
#line 3316 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 722:
#line 3318 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 723:
#line 3320 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
    break;}
case 724:
#line 3322 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
    break;}
case 731:
#line 3345 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids label declarations"); ;
    break;}
case 734:
#line 3356 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree link;
		  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
		    {
		      tree label = shadow_label (TREE_VALUE (link));
		      C_DECLARED_LABEL_FLAG (label) = 1;
		      declare_nonlocal_label (label);
		    }
		;
    break;}
case 735:
#line 3370 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{;
    break;}
case 737:
#line 3376 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_compound_stmt (0); 
                  if(objc_method_context) add_objc_super_decl();  ;
    break;}
case 738:
#line 3379 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 739:
#line 3384 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = begin_if_stmt ();
		  cond_stmt_keyword = "if";
		;
    break;}
case 740:
#line 3389 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 741:
#line 3391 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
    break;}
case 743:
#line 3396 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
    break;}
case 744:
#line 3398 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
    break;}
case 745:
#line 3403 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{;
    break;}
case 747:
#line 3409 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_stmt (); ;
    break;}
case 748:
#line 3411 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 749:
#line 3413 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_else_clause (); ;
    break;}
case 750:
#line 3415 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_else_clause (yyvsp[-3].ttype); 
		  finish_if_stmt ();
		;
    break;}
case 751:
#line 3420 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_if_stmt (); ;
    break;}
case 752:
#line 3422 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = begin_while_stmt ();
		  cond_stmt_keyword = "while";
		;
    break;}
case 753:
#line 3427 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 754:
#line 3429 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
    break;}
case 755:
#line 3431 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_do_stmt (); ;
    break;}
case 756:
#line 3433 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  finish_do_body (yyvsp[-2].ttype);
		  cond_stmt_keyword = "do";
		;
    break;}
case 757:
#line 3438 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 758:
#line 3440 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_for_stmt (); ;
    break;}
case 759:
#line 3442 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
    break;}
case 760:
#line 3444 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
    break;}
case 761:
#line 3446 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
    break;}
case 762:
#line 3448 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
    break;}
case 763:
#line 3450 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ begin_switch_stmt (); ;
    break;}
case 764:
#line 3452 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
    break;}
case 765:
#line 3454 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 766:
#line 3456 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
    break;}
case 768:
#line 3459 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
    break;}
case 770:
#line 3462 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
    break;}
case 772:
#line 3465 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_break_stmt (); ;
    break;}
case 773:
#line 3467 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_continue_stmt (); ;
    break;}
case 774:
#line 3469 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_return_stmt (NULL_TREE); ;
    break;}
case 775:
#line 3471 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
    break;}
case 776:
#line 3473 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 777:
#line 3479 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
				   NULL_TREE); 
		;
    break;}
case 778:
#line 3485 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
    break;}
case 779:
#line 3489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
    break;}
case 780:
#line 3491 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (pedantic)
		    pedwarn ("ANSI C++ forbids computed gotos");
		  finish_goto_stmt (yyvsp[-1].ttype);
		;
    break;}
case 781:
#line 3497 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
    break;}
case 782:
#line 3499 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_stmt (); ;
    break;}
case 783:
#line 3501 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ error ("label must be followed by statement");
		  yyungetc ('}', 0);
		  finish_stmt (); ;
    break;}
case 784:
#line 3505 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_stmt (); ;
    break;}
case 787:
#line 3509 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
    break;}
case 789:
#line 3515 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (! current_function_parms_stored)
		    store_parm_decls ();
		  expand_start_early_try_stmts ();
		;
    break;}
case 790:
#line 3521 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  end_protect_partials ();
                  expand_start_all_catch (); 
                ;
    break;}
case 791:
#line 3526 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  expand_end_all_catch ();
		  yyval.itype = yyvsp[-3].itype;
		;
    break;}
case 792:
#line 3534 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_try_block (); ;
    break;}
case 793:
#line 3536 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
    break;}
case 794:
#line 3538 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
    break;}
case 797:
#line 3548 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = begin_handler(); ;
    break;}
case 798:
#line 3550 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
    break;}
case 799:
#line 3552 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
    break;}
case 802:
#line 3562 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
    break;}
case 803:
#line 3578 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
		  expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
					    TREE_VALUE (yyvsp[-1].ftype.t)); ;
    break;}
case 804:
#line 3585 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree label;
		do_label:
		  label = define_label (input_filename, lineno, yyvsp[-1].ttype);
		  if (label && ! minimal_parse_mode)
		    expand_label (label);
		;
    break;}
case 805:
#line 3592 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ goto do_label; ;
    break;}
case 806:
#line 3594 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ goto do_label; ;
    break;}
case 807:
#line 3596 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ goto do_label; ;
    break;}
case 808:
#line 3601 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
    break;}
case 810:
#line 3604 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ if (pedantic)
		    pedwarn ("ANSI C++ forbids compound statements inside for initializations");
		;
    break;}
case 811:
#line 3613 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ emit_line_note (input_filename, lineno);
		  yyval.ttype = NULL_TREE; ;
    break;}
case 812:
#line 3616 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ emit_line_note (input_filename, lineno); ;
    break;}
case 813:
#line 3621 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 815:
#line 3624 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 816:
#line 3631 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 819:
#line 3638 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
    break;}
case 820:
#line 3643 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
    break;}
case 821:
#line 3648 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
    break;}
case 822:
#line 3650 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
    break;}
case 823:
#line 3661 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = empty_parms();
		;
    break;}
case 825:
#line 3666 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
		  check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
    break;}
case 826:
#line 3674 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
    break;}
case 827:
#line 3676 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 828:
#line 3679 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
    break;}
case 829:
#line 3681 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 1); ;
    break;}
case 830:
#line 3684 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
    break;}
case 831:
#line 3686 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0);
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 832:
#line 3696 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* This helps us recover from really nasty
		     parse errors, for example, a missing right
		     parenthesis.  */
		  yyerror ("possibly missing ')'");
		  yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
							 yyvsp[-1].ftype.t), 0); 
		  yyungetc (':', 0);
		  yychar = ')';
		;
    break;}
case 833:
#line 3711 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ maybe_snarf_defarg (); ;
    break;}
case 834:
#line 3713 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 837:
#line 3724 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
    break;}
case 838:
#line 3727 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
    break;}
case 839:
#line 3730 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
		  yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
    break;}
case 840:
#line 3733 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 841:
#line 3735 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
    break;}
case 843:
#line 3741 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
    break;}
case 844:
#line 3751 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
    break;}
case 845:
#line 3755 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 846:
#line 3758 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_tree_list (build_decl_list (NULL_TREE, yyvsp[-1].ftype.t),
					  yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 847:
#line 3762 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
    break;}
case 848:
#line 3766 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
		  yyval.ftype.t = build_tree_list (specs, NULL_TREE); 
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
    break;}
case 849:
#line 3770 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
		  yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); 
		  yyval.ftype.new_type_flag = 0; ;
    break;}
case 850:
#line 3777 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag;  ;
    break;}
case 851:
#line 3780 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
		  yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;  ;
    break;}
case 854:
#line 3791 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ see_typename (); ;
    break;}
case 855:
#line 3796 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  error ("type specifier omitted for parameter");
		  yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
		;
    break;}
case 856:
#line 3801 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  error ("type specifier omitted for parameter");
		  if (TREE_CODE (yyval.ttype) == SCOPE_REF
		      && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM
			  || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM))
		    cp_error ("  perhaps you want `typename %E' to make it a type", yyval.ttype);
		  yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
		;
    break;}
case 857:
#line 3813 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 858:
#line 3815 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
    break;}
case 859:
#line 3817 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
    break;}
case 860:
#line 3822 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
    break;}
case 862:
#line 3828 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
		  yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 863:
#line 3836 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 864:
#line 3838 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 865:
#line 3840 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
    break;}
case 866:
#line 3842 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
		  yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
		;
    break;}
case 867:
#line 3849 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ got_scope = NULL_TREE; ;
    break;}
case 868:
#line 3854 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
    break;}
case 869:
#line 3856 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
    break;}
case 870:
#line 3858 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
    break;}
case 871:
#line 3860 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
    break;}
case 872:
#line 3862 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
    break;}
case 873:
#line 3864 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
    break;}
case 874:
#line 3866 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
    break;}
case 875:
#line 3868 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
    break;}
case 876:
#line 3870 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
    break;}
case 877:
#line 3872 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
    break;}
case 878:
#line 3874 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 879:
#line 3876 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
    break;}
case 880:
#line 3878 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
    break;}
case 881:
#line 3880 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 882:
#line 3882 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
    break;}
case 883:
#line 3884 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
    break;}
case 884:
#line 3886 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 885:
#line 3888 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 886:
#line 3890 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
    break;}
case 887:
#line 3892 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
    break;}
case 888:
#line 3894 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
    break;}
case 889:
#line 3896 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
    break;}
case 890:
#line 3898 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
    break;}
case 891:
#line 3900 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
    break;}
case 892:
#line 3902 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
    break;}
case 893:
#line 3904 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
    break;}
case 894:
#line 3906 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
    break;}
case 895:
#line 3908 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
    break;}
case 896:
#line 3910 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
    break;}
case 897:
#line 3912 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
    break;}
case 898:
#line 3914 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
    break;}
case 899:
#line 3916 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
    break;}
case 900:
#line 3918 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
    break;}
case 901:
#line 3921 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
    break;}
case 902:
#line 3923 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
    break;}
case 903:
#line 3934 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ current_declspecs = yyvsp[0].ttype;
		  yyval.itype = suspend_momentary (); ;
    break;}
case 910:
#line 3946 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  if (objc_implementation_context)
                    {
		    finish_class(objc_implementation_context);    
		    objc_ivar_chain = NULL_TREE;
		    objc_implementation_context = NULL_TREE;
		    }
		  else
		    warning("`@end' must appear in an implementation context");
		;
    break;}
case 911:
#line 3961 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
    break;}
case 912:
#line 3963 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
    break;}
case 913:
#line 3968 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_declare_class (yyvsp[-1].ttype);
		;
    break;}
case 914:
#line 3974 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_declare_protocols (yyvsp[-1].ttype);
		;
    break;}
case 915:
#line 3980 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
		;
    break;}
case 916:
#line 3987 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ttype ;
    break;}
case 918:
#line 3993 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_interface_context = objc_ivar_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
                  objc_public_flag = 0;
		;
    break;}
case 919:
#line 3999 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 920:
#line 4004 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 921:
#line 4010 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_interface_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 922:
#line 4017 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_class(objc_interface_context);    
		  objc_interface_context = NULL_TREE; 
		;
    break;}
case 923:
#line 4023 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_interface_context = objc_ivar_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
                  objc_public_flag = 0;
		;
    break;}
case 924:
#line 4029 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  continue_class (objc_interface_context);
		;
    break;}
case 925:
#line 4034 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_class(objc_interface_context);    
		  objc_interface_context = NULL_TREE; 
		;
    break;}
case 926:
#line 4040 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_interface_context
		    = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 927:
#line 4047 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 928:
#line 4053 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_implementation_context = objc_ivar_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
                  objc_public_flag = 0;
		;
    break;}
case 929:
#line 4059 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 930:
#line 4065 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_implementation_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 931:
#line 4073 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_implementation_context = objc_ivar_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[-1].ttype, NULL_TREE);
                  objc_public_flag = 0;
		;
    break;}
case 932:
#line 4079 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 933:
#line 4085 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_implementation_context
		    = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 934:
#line 4093 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_interface_context
		    = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
                  continue_class (objc_interface_context);
		;
    break;}
case 935:
#line 4100 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  finish_class (objc_interface_context);
		  objc_interface_context = NULL_TREE;
		;
    break;}
case 936:
#line 4106 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  objc_implementation_context
		    = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
                  objc_ivar_chain
		    = continue_class (objc_implementation_context);
		;
    break;}
case 937:
#line 4116 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		objc_interface_context = 
			start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype);
		;
    break;}
case 938:
#line 4122 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		finish_protocol(objc_interface_context);
		objc_interface_context = NULL_TREE;
		;
    break;}
case 939:
#line 4127 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		objc_interface_context = 
			start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[0].ttype, NULL_TREE);
		;
    break;}
case 940:
#line 4133 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		finish_protocol(objc_interface_context);
		objc_interface_context = NULL_TREE;
		;
    break;}
case 943:
#line 4145 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_public_flag = 1; ;
    break;}
case 944:
#line 4146 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_public_flag = 2; ;
    break;}
case 945:
#line 4147 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_public_flag = 0; ;
    break;}
case 946:
#line 4152 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                  yyval.ttype = NULL_TREE; 
                ;
    break;}
case 948:
#line 4157 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                  if (pedantic) 
		    warning ("extra semicolon in struct or union specified"); 
                ;
    break;}
case 949:
#line 4165 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                  yyval.ttype = yyvsp[0].ttype;
		  resume_momentary (yyvsp[-1].itype);
                ;
    break;}
case 950:
#line 4170 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                  yyval.ttype = yyvsp[0].ttype;
		  resume_momentary (yyvsp[-1].itype);
                ;
    break;}
case 951:
#line 4175 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 952:
#line 4180 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = NULL_TREE; ;
    break;}
case 955:
#line 4187 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                yyval.ttype = add_instance_variable(objc_ivar_context, objc_public_flag,
                           yyvsp[0].ttype, current_declspecs, NULL_TREE); 
                ;
    break;}
case 956:
#line 4192 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                yyval.ttype = add_instance_variable(objc_ivar_context, objc_public_flag,
                           yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype); 
                ;
    break;}
case 957:
#line 4197 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
                yyval.ttype = add_instance_variable(objc_ivar_context, objc_public_flag,
                           NULL_TREE, current_declspecs, yyvsp[0].ttype); 
                ;
    break;}
case 958:
#line 4205 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  if (flag_dump_symbols)
                    printf ("++m");
                  if (flag_gen_index)
                    dump_symbol_info ("++m ", NULL, -1);
		  if (objc_implementation_context)
		    objc_inherit_code = CLASS_METHOD_DECL;
                  else
		    fatal("Illegal method definition - must be in a class context.");
                  objc_in_method_signature = 1;  
		;
    break;}
case 959:
#line 4217 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  add_class_method(objc_implementation_context,yyvsp[0].ttype);
		  start_method_def (yyvsp[0].ttype);
		  objc_method_context = yyvsp[0].ttype;
                  objc_in_method_signature = 0;  
		;
    break;}
case 960:
#line 4224 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  continue_method_def();
		;
    break;}
case 961:
#line 4228 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_method_def (); 
		  objc_method_context = NULL_TREE; 
                  if (flag_dump_symbols)
                    printf ("--m %u\n", lineno);
                  if (flag_gen_index)
                    dump_symbol_info ("--m ", NULL, lineno);
		;
    break;}
case 962:
#line 4238 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  if (flag_dump_symbols)
                    printf ("+-m");
                  if (flag_gen_index)
                    dump_symbol_info ("+-m ", NULL, -1);
		  if (objc_implementation_context)
		    objc_inherit_code = INSTANCE_METHOD_DECL;
                  else
		    fatal("Illegal method definition - must be in a class context.");
                  objc_in_method_signature = 1;  
		;
    break;}
case 963:
#line 4250 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  add_instance_method(objc_implementation_context,yyvsp[0].ttype);
		  start_method_def (yyvsp[0].ttype); 
		  objc_method_context = yyvsp[0].ttype;
                  objc_in_method_signature = 0;  
		;
    break;}
case 964:
#line 4257 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  continue_method_def();
		;
    break;}
case 965:
#line 4261 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  finish_method_def (); 
		  objc_method_context = NULL_TREE; 
                  if (flag_dump_symbols)
                    printf ("--m %u\n", lineno);
                  if (flag_gen_index)
                    dump_symbol_info ("--m ", NULL, lineno);
		;
    break;}
case 967:
#line 4277 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 972:
#line 4284 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{yyval.ttype = NULL_TREE; ;
    break;}
case 976:
#line 4294 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  if (flag_dump_symbols)
                    printf ("++h");
                  if (flag_gen_index)
                    dump_symbol_info ("++h ", NULL, -1);
		  objc_inherit_code = CLASS_METHOD_DECL;
                  objc_in_method_signature = 1;  
		;
    break;}
case 977:
#line 4303 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  add_class_method(objc_interface_context,yyvsp[0].ttype);
                  objc_in_method_signature = 0;  
		;
    break;}
case 979:
#line 4310 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
                  if (flag_dump_symbols)
                    printf ("+-h");
                  if (flag_gen_index)
                    dump_symbol_info ("+-h ", NULL, -1);
		  objc_inherit_code = INSTANCE_METHOD_DECL;
                  objc_in_method_signature = 1;  
		;
    break;}
case 980:
#line 4319 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  add_instance_method(objc_interface_context,yyvsp[0].ttype);
                  objc_in_method_signature = 0;  
		;
    break;}
case 982:
#line 4327 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ remember_protocol_qualifiers (); ;
    break;}
case 983:
#line 4330 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ forget_protocol_qualifiers (); ;
    break;}
case 984:
#line 4334 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yyvsp[-1].ftype.t; ;
    break;}
case 985:
#line 4338 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
    break;}
case 986:
#line 4340 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
    break;}
case 987:
#line 4345 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ftype.t, yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		;
    break;}
case 988:
#line 4351 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		;
    break;}
case 989:
#line 4356 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); 
		;
    break;}
case 990:
#line 4362 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-4].ttype, yyvsp[-3].ftype.t, yyvsp[-1].ttype, yyvsp[0].ttype); 
		;
    break;}
case 991:
#line 4367 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ftype.t, yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); 
		;
    break;}
case 992:
#line 4372 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE); 
		;
    break;}
case 1001:
#line 4403 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ resume_momentary (yyvsp[-2].itype); ;
    break;}
case 1002:
#line 4405 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ shadow_tag (yyvsp[-1].ftype.t); ;
    break;}
case 1003:
#line 4407 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ warning ("empty declaration"); ;
    break;}
case 1004:
#line 4414 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objcplus_push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 1005:
#line 4416 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objcplus_push_parm_decl (yyvsp[0].ttype); ;
    break;}
case 1006:
#line 4424 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype)	; ;
    break;}
case 1007:
#line 4426 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = build_tree_list (current_declspecs, yyvsp[0].ttype)	; ;
    break;}
case 1008:
#line 4431 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
	    	  yyval.ttype = NULL_TREE; 
		;
    break;}
case 1009:
#line 4435 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  /* oh what a kludge! */
		  yyval.ttype = (tree)1;	
		;
    break;}
case 1010:
#line 4440 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  pushlevel (0); 
		;
    break;}
case 1011:
#line 4444 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
	  	  /* returns a tree list node generated by `get_parm_info()' */
		  yyval.ttype = yyvsp[0].ttype; 
		  poplevel(0,0,0);
		;
    break;}
case 1014:
#line 4458 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = chainon(yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 1021:
#line 4473 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ looking_for_typename = 0; yyval.ttype = get_identifier("enum"); ;
    break;}
case 1022:
#line 4475 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
	    looking_for_typename = 0;
            if (yylval.ttype == class_type_node)
              yyval.ttype = get_identifier("class");
            else if (yylval.ttype == record_type_node)
              yyval.ttype = get_identifier("struct");
            else if (yylval.ttype == union_type_node)
              yyval.ttype = get_identifier("union");
	    else if (yylval.ttype == enum_type_node)
              yyval.ttype = get_identifier("enum");
            else
              abort ();
          ;
    break;}
case 1023:
#line 4488 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("if"); ;
    break;}
case 1024:
#line 4489 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("else"); ;
    break;}
case 1025:
#line 4490 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("while"); ;
    break;}
case 1026:
#line 4491 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("do"); ;
    break;}
case 1027:
#line 4492 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("for"); ;
    break;}
case 1028:
#line 4493 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("switch"); ;
    break;}
case 1029:
#line 4494 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("case"); ;
    break;}
case 1030:
#line 4495 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("default"); ;
    break;}
case 1031:
#line 4496 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("break"); ;
    break;}
case 1032:
#line 4497 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("continue"); ;
    break;}
case 1033:
#line 4498 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("return"); ;
    break;}
case 1034:
#line 4499 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("goto"); ;
    break;}
case 1035:
#line 4500 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("asm"); ;
    break;}
case 1036:
#line 4501 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("sizeof"); ;
    break;}
case 1037:
#line 4502 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("typeof"); ;
    break;}
case 1038:
#line 4503 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("alignof"); ;
    break;}
case 1039:
#line 4504 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("new"); ;
    break;}
case 1040:
#line 4505 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("delete"); ;
    break;}
case 1041:
#line 4506 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("operator"); ;
    break;}
case 1042:
#line 4507 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("using"); ;
    break;}
case 1043:
#line 4508 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("namespace"); ;
    break;}
case 1044:
#line 4509 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = get_identifier("template"); ;
    break;}
case 1045:
#line 4510 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		    if (yyvsp[0].ttype == access_private_node)
		      yyval.ttype = get_identifier ("private");
		    else if (yyvsp[0].ttype == access_public_node)
		      yyval.ttype = get_identifier ("public");
		    else if (yyvsp[0].ttype == access_protected_node)
		      yyval.ttype = get_identifier ("protected");
		    else
		      abort ();
		  ;
    break;}
case 1046:
#line 4520 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yylval.ttype; ;
    break;}
case 1047:
#line 4521 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ yyval.ttype = yylval.ttype; ;
    break;}
case 1048:
#line 4526 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = build_keyword_decl (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 1049:
#line 4531 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 1050:
#line 4536 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 1051:
#line 4541 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 1055:
#line 4554 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = chainon(yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 1056:
#line 4562 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
		    /* just return the expr., remove a level of indirection */
		    yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
                  else
		    /* we have a comma expr., we will collapse later */
		    yyval.ttype = yyvsp[0].ttype;
		;
    break;}
case 1057:
#line 4574 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
		;
    break;}
case 1058:
#line 4578 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
		;
    break;}
case 1059:
#line 4585 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_x_compound_expr (yyvsp[0].ttype);
		;
    break;}
case 1060:
#line 4589 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
		;
    break;}
case 1061:
#line 4593 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = get_class_reference (yyvsp[0].ttype);
		;
    break;}
case 1062:
#line 4600 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_receiver_context = 1; objc_msg_context += 1; ;
    break;}
case 1063:
#line 4602 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_receiver_context = 0; yyval.ttype = yyvsp[0].ttype; ;
    break;}
case 1064:
#line 4607 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ objc_msg_context -= 1; ;
    break;}
case 1065:
#line 4614 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_tree_list(yyvsp[-2].ttype, yyvsp[-1].ttype);
                  TREE_TYPE (yyval.ttype) = NULL_TREE;
		;
    break;}
case 1069:
#line 4639 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{ 
		  yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
		;
    break;}
case 1070:
#line 4646 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
		;
    break;}
case 1071:
#line 4650 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = build_tree_list (NULL_TREE,NULL_TREE);
		;
    break;}
case 1072:
#line 4654 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = chainon (build_tree_list (NULL_TREE,NULL_TREE),
		       	        build_tree_list (NULL_TREE,NULL_TREE));
		;
    break;}
case 1073:
#line 4662 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 1074:
#line 4669 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = yyvsp[-1].ttype;
		;
    break;}
case 1075:
#line 4678 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"
{
		  yyval.ttype = groktypename(yyvsp[-1].ftype.t);
		;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/share/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
	  for (x = (yyn < 0 ? -yyn : 0);
	       x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) malloc(size + 15);
	  if (msg != 0)
	    {
	      strcpy(msg, "parse error");

	      if (count < 5)
		{
		  count = 0;
		  for (x = (yyn < 0 ? -yyn : 0);
		       x < (sizeof(yytname) / sizeof(char *)); x++)
		    if (yycheck[x + yyn] == x)
		      {
			strcat(msg, count == 0 ? ", expecting `" : " or `");
			strcat(msg, yytname[x]);
			strcat(msg, "'");
			count++;
		      }
		}
	      yyerror(msg);
	      free(msg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exceeded");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("parse error");
    }

  goto yyerrlab1;
yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "Error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;

 yyacceptlab:
  /* YYACCEPT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 0;

 yyabortlab:
  /* YYABORT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 1;
}
#line 4683 "/Volumes/build/darwin-apple/compiler.roots/compiler/gcc/obcp/parse.y"


#ifdef SPEW_DEBUG
const char *
debug_yytranslate (value)
    int value;
{
  return yytname[YYTRANSLATE (value)];
}

#endif