Changeset 2acf5fc


Ignore:
Timestamp:
Aug 22, 2016, 3:11:00 PM (6 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
837a17c, bd9f8be, c1c1112
Parents:
ab57786 (diff), 8d2844a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg2:software/cfa/cfa-cc

Conflicts:

src/Parser/parser.cc
src/Parser/parser.yy

Location:
src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/Common/utility.h

    rab57786 r2acf5fc  
    5656}
    5757
    58 
    5958template< typename Input_iterator >
    6059void printEnums( Input_iterator begin, Input_iterator end, const char * const *name_array, std::ostream &os ) {
  • src/Parser/DeclarationNode.cc

    rab57786 r2acf5fc  
    230230        DeclarationNode *newnode = new DeclarationNode;
    231231        newnode->name = assign_strptr( name );
    232         newnode->enumeratorValue = constant;
     232        newnode->enumeratorValue.reset( constant );
    233233        typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
    234234        return newnode;
  • src/Parser/ExpressionNode.cc

    rab57786 r2acf5fc  
    191191
    192192Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
    193         Type *targetType = decl_node->buildType();
     193        Type *targetType = maybeMoveBuildType( decl_node );
    194194        if ( dynamic_cast< VoidType * >( targetType ) ) {
    195195                delete targetType;
     
    221221}
    222222Expression *build_sizeOftype( DeclarationNode *decl_node ) {
    223         Expression* ret = new SizeofExpr( decl_node->buildType() );
    224         delete decl_node;
    225         return ret;
     223        return new SizeofExpr( maybeMoveBuildType( decl_node ) );
    226224}
    227225Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    229227}
    230228Expression *build_alignOftype( DeclarationNode *decl_node ) {
    231         return new AlignofExpr( decl_node->buildType() );
     229        return new AlignofExpr( maybeMoveBuildType( decl_node) );
    232230}
    233231Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) {
    234         Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
    235         delete decl_node;
     232        Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() );
    236233        delete member;
    237234        return ret;
     
    277274}
    278275Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
    279         return new AttrExpr( var, decl_node->buildType() );
     276        return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
    280277}
    281278
     
    304301}
    305302Expression *build_typevalue( DeclarationNode *decl ) {
    306         return new TypeExpr( decl->buildType() );
     303        return new TypeExpr( maybeMoveBuildType( decl ) );
    307304}
    308305
  • src/Parser/InitializerNode.cc

    rab57786 r2acf5fc  
    4545InitializerNode::~InitializerNode() {
    4646        delete expr;
     47        delete designator;
     48        delete kids;
    4749}
    4850
  • src/Parser/ParseNode.h

    rab57786 r2acf5fc  
    280280        LinkageSpec::Spec get_linkage() const { return linkage; }
    281281        DeclarationNode *extractAggregate() const;
    282         ExpressionNode *get_enumeratorValue() const { return enumeratorValue; }
     282        bool has_enumeratorValue() const { return (bool)enumeratorValue; }
     283        ExpressionNode *consume_enumeratorValue() const { return const_cast<DeclarationNode*>(this)->enumeratorValue.release(); }
    283284
    284285        bool get_extension() const { return extension; }
     
    295296        std::list< std::string > attributes;
    296297        ExpressionNode *bitfieldWidth;
    297         ExpressionNode *enumeratorValue;
     298        std::unique_ptr<ExpressionNode> enumeratorValue;
    298299        InitializerNode *initializer;
    299300        bool hasEllipsis;
     
    306307
    307308Type *buildType( TypeData *type );
     309
     310static inline Type * maybeMoveBuildType( const DeclarationNode *orig ) {
     311        Type* ret = orig ? orig->buildType() : nullptr;
     312        delete orig;
     313        return ret;
     314}
    308315
    309316//##############################################################################
  • src/Parser/StatementNode.cc

    rab57786 r2acf5fc  
    5454        // find end of list and maintain previous pointer
    5555        for ( StatementNode * curr = prev; curr != nullptr; curr = (StatementNode *)curr->get_next() ) {
    56                 StatementNode *node = dynamic_cast< StatementNode * >(curr);
    57                 assert( node );
     56                StatementNode *node = safe_dynamic_cast< StatementNode * >(curr);
    5857                assert( dynamic_cast< CaseStmt * >(node->stmt.get()) );
    5958                prev = curr;
     
    166165        std::list< Statement * > branches;
    167166        buildMoveList< Statement, StatementNode >( catch_stmt, branches );
    168         CompoundStmt *tryBlock = dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt));
    169         assert( tryBlock );
     167        CompoundStmt *tryBlock = safe_dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt));
    170168        FinallyStmt *finallyBlock = dynamic_cast< FinallyStmt * >(maybeMoveBuild< Statement >(finally_stmt) );
    171169        return new TryStmt( noLabels, tryBlock, branches, finallyBlock );
  • src/Parser/TypeData.cc

    rab57786 r2acf5fc  
    909909        std::list< Declaration * >::iterator members = ret->get_members().begin();
    910910        for ( const DeclarationNode *cur = enumeration->constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) {
    911                 if ( cur->get_enumeratorValue() != nullptr ) {
     911                if ( cur->has_enumeratorValue() ) {
    912912                        ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members);
    913                         member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) );
     913                        member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) );
    914914                } // if
    915915        } // for
  • src/Parser/parser.cc

    rab57786 r2acf5fc  
    975975     208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
    976976     318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
    977       -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
     977      -1,    64,   109,   142,   110,   312,    -1,    -1,   313,    -1,
    978978     314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
    979979     110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
     
    11161116    2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
    11171117    2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
    1118     2144,  2145,  2149,  2153,  2155,  2160,  2161,  2165,  2166,  2171,
    1119     2177,  2178,  2181,  2183,  2184,  2188,  2189,  2190,  2191,  2225,
    1120     2227,  2228,  2230,  2235,  2240,  2245,  2247,  2249,  2254,  2256,
    1121     2258,  2260,  2265,  2267,  2276,  2278,  2279,  2284,  2286,  2288,
    1122     2293,  2295,  2297,  2302,  2304,  2306,  2315,  2316,  2317,  2321,
    1123     2323,  2325,  2330,  2332,  2334,  2339,  2341,  2343,  2358,  2360,
    1124     2361,  2363,  2368,  2369,  2374,  2376,  2378,  2383,  2385,  2387,
    1125     2389,  2394,  2396,  2398,  2408,  2410,  2411,  2413,  2418,  2420,
    1126     2422,  2427,  2429,  2431,  2433,  2438,  2440,  2442,  2473,  2475,
    1127     2476,  2478,  2483,  2488,  2496,  2498,  2500,  2505,  2507,  2512,
    1128     2514,  2528,  2529,  2531,  2536,  2538,  2540,  2542,  2544,  2549,
    1129     2550,  2552,  2554,  2559,  2561,  2563,  2569,  2571,  2573,  2577,
    1130     2579,  2581,  2583,  2597,  2598,  2600,  2605,  2607,  2609,  2611,
    1131     2613,  2618,  2619,  2621,  2623,  2628,  2630,  2632,  2638,  2639,
    1132     2641,  2650,  2653,  2655,  2658,  2660,  2662,  2675,  2676,  2678,
    1133     2683,  2685,  2687,  2689,  2691,  2696,  2697,  2699,  2701,  2706,
    1134     2708,  2716,  2717,  2718,  2723,  2724,  2728,  2730,  2732,  2734,
    1135     2736,  2738,  2745,  2747,  2749,  2751,  2753,  2755,  2757,  2759,
    1136     2761,  2763,  2768,  2770,  2772,  2777,  2803,  2804,  2806,  2810,
    1137     2811,  2815,  2817,  2819,  2821,  2823,  2825,  2832,  2834,  2836,
    1138     2838,  2840,  2842,  2847,  2852,  2854,  2856,  2874,  2876,  2881,
    1139     2882
     1118    2144,  2145,  2149,  2153,  2155,  2161,  2162,  2166,  2167,  2172,
     1119    2178,  2179,  2182,  2184,  2185,  2190,  2191,  2192,  2193,  2227,
     1120    2229,  2230,  2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,
     1121    2260,  2262,  2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,
     1122    2295,  2297,  2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,
     1123    2325,  2327,  2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,
     1124    2363,  2365,  2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,
     1125    2391,  2396,  2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,
     1126    2424,  2429,  2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,
     1127    2478,  2480,  2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,
     1128    2516,  2530,  2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,
     1129    2552,  2554,  2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,
     1130    2581,  2583,  2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,
     1131    2615,  2620,  2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,
     1132    2643,  2652,  2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,
     1133    2685,  2687,  2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,
     1134    2710,  2718,  2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,
     1135    2738,  2740,  2747,  2749,  2751,  2753,  2755,  2757,  2759,  2761,
     1136    2763,  2765,  2770,  2772,  2774,  2779,  2805,  2806,  2808,  2812,
     1137    2813,  2817,  2819,  2821,  2823,  2825,  2827,  2834,  2836,  2838,
     1138    2840,  2842,  2844,  2849,  2854,  2856,  2858,  2876,  2878,  2883,
     1139    2884
    11401140};
    11411141#endif
     
    16331633/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16341634   STATE-NUM.  */
    1635 #define YYPACT_NINF -1390
     1635#define YYPACT_NINF -1282
    16361636static const yytype_int16 yypact[] =
    16371637{
    1638     7429,  6461, -1390,    -8, -1390, -1390, -1390, -1390, -1390, -1390,
    1639    -1390,   -23, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
    1640    -1390, -1390, -1390, -1390, -1390, -1390,    91,    91,    91,  1566,
    1641      744,    60,  7661,   126, -1390, -1390, -1390, -1390, -1390,   146,
    1642    -1390, -1390, -1390,   775,   200, -1390, -1390, -1390, -1390,  5932,
    1643    -1390, -1390, -1390, -1390,   110,   203, -1390,  1684, -1390, -1390,
    1644    -1390, -1390,   214,  2010,   360,   114,  7777, -1390, -1390,  9536,
    1645     1247, -1390, -1390,  1362,   444,  2238,   717,   552,  1362,  1870,
    1646    -1390, -1390,   837,   759, -1390,  1362,  1917, -1390,   226, -1390,
    1647      415,   453, -1390, -1390, -1390, -1390,   349,   203,    91, -1390,
    1648       91, -1390, -1390, -1390, -1390,  2963,  1684, -1390, -1390,  1684,
    1649    -1390,   342, -1390,  8264, -1390, -1390,  2329,  9075, -1390,  1671,
    1650     1671,  1671, -1390, -1390, -1390,    91, -1390, -1390, -1390,   422,
    1651      442,   463, -1390, -1390, -1390,   475, -1390, -1390, -1390, -1390,
    1652    -1390,   487,   492, -1390, -1390,    41,  9044,  2498,   571,   409,
    1653      496,   499,   523,   533,   543,  5546,  6949,   548,   579, -1390,
    1654     9574, -1390, -1390, -1390, -1390,   586, -1390,   116,  4885,  4885,
    1655    -1390,   602,   204, -1390, -1390, -1390, -1390,   626,   243,   344,
    1656      351,    91,   531, -1390, -1390,  2010,  3286,   695, -1390,    42,
    1657    -1390,    91,    91,   203, -1390, -1390,    65, -1390,    91,    91,
    1658    -1390,  3459,   673,   690,  1671,  6742, -1390, -1390,   702,  5932,
    1659    -1390, -1390,  1362, -1390, -1390, -1390,   203, -1390,  1684,   110,
    1660    -1390,  8115, -1390,  1671,  1671,  1671,   203, -1390,  1566, -1390,
    1661     4853, -1390, -1390,   703,  1671, -1390,  1671, -1390,   146,  9044,
    1662    -1390,   726, -1390,   744,   749,  1671, -1390,  1566,   724,   743,
    1663    -1390,  7661,   590, -1390, -1390, -1390,  9503, -1390, -1390,  5769,
    1664    -1390,   695,   158, 10287,  9075,  2329,  3459, -1390,    80, -1390,
    1665    -1390,  8264,  1684,   765,  7808, -1390, -1390,   362, -1390, 10539,
    1666      797,   846,  3526,   825,  3896,  4720, -1390,   843, -1390, -1390,
    1667    -1390, -1390, 10420, 10420,  8818,   845, -1390, -1390, -1390, -1390,
    1668    -1390, -1390, -1390,   883, -1390,  1119,  1947,  9157,  3896, -1390,
    1669      619,   651,   614,   309,   714,   823,   850,   853,   891,   100,
    1670    -1390, -1390,   866,   558, -1390,   120, -1390, -1390,  2498, -1390,
    1671    -1390,   443,   892, -1390,   450,   892,   895,   146, -1390, -1390,
    1672      900,  2963, -1390,   898,   901,  9270, -1390, -1390,  1091,  1646,
    1673     8533,  6742,  1362, -1390,  1362,  1671,  1671, -1390, -1390, -1390,
    1674    -1390, -1390, -1390,  1671,  2963,  1684, -1390, -1390,  9188,  1515,
    1675    -1390,  4463, -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,
    1676     6164,  3896, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
    1677    -1390, -1390, -1390, -1390, -1390, -1390,  2329, -1390,   814,   908,
    1678      913,   916,   859,   918,   921,   922,  3286, -1390, -1390,   927,
    1679      110,   905, -1390, -1390,   926, -1390, -1390, -1390,  9503, -1390,
    1680    -1390, -1390, -1390, -1390,  3459, -1390,  9044,  9044, -1390,  1671,
    1681     2329,  6861,  1684,  8606, -1390, -1390, -1390, -1390,  9503,   158,
    1682    -1390, -1390,  1362,   203, -1390, -1390,  9503, -1390,  5584, -1390,
    1683    -1390,  1671,  1671,   300,  4617,   934,   933,   925,   950,  1671,
    1684    -1390, -1390, -1390, -1390,  9803, -1390,   408,  6623, -1390,   203,
    1685      965, -1390,  2329, 10621, 10344, -1390, -1390, -1390, -1390,   932,
    1686     3459, -1390,  8679,   695,  7545, -1390, -1390, -1390,   907,   412,
    1687      866,   744,  7808,   994,  8264, -1390,  7808, -1390, -1390, -1390,
    1688    -1390,   554, -1390,   953,   846,   236,  8818, -1390,  9301, -1390,
    1689    -1390,  8818, -1390,  8931,  8818, -1390, -1390,   969, -1390,   637,
    1690      972,   583,   973, -1390, -1390,  9650,  6592, -1390,   268, -1390,
    1691    -1390, 10287, -1390,   318, 10287, -1390, -1390, -1390, -1390, -1390,
    1692    -1390, -1390, -1390, -1390, -1390, -1390, 10287, -1390, -1390,  3896,
     1638    7429,  6461, -1282,    36, -1282, -1282, -1282, -1282, -1282, -1282,
     1639   -1282,    83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
     1640   -1282, -1282, -1282, -1282, -1282, -1282,   131,   131,   131,  1844,
     1641     994,   124,  7661,   230, -1282, -1282, -1282, -1282, -1282,   175,
     1642   -1282, -1282, -1282,   965,   193, -1282, -1282, -1282, -1282,  5932,
     1643   -1282, -1282, -1282, -1282,   122,   216, -1282,  1880, -1282, -1282,
     1644   -1282, -1282,   251,  1298,   387,    61,  7777, -1282, -1282,  9536,
     1645    1247, -1282, -1282,   557,   425,  3682,   886,   409,   557,  1203,
     1646   -1282, -1282,   744,   941, -1282,   557,  1708, -1282,   342, -1282,
     1647     478,   483, -1282, -1282, -1282, -1282,   384,   216,   131, -1282,
     1648     131, -1282, -1282, -1282, -1282,  2963,  1880, -1282, -1282,  1880,
     1649   -1282,   381, -1282,  8264, -1282, -1282,  1830,  9075, -1282,   713,
     1650     713,   713, -1282, -1282, -1282,   131, -1282, -1282, -1282,   410,
     1651     433,   443, -1282, -1282, -1282,   470, -1282, -1282, -1282, -1282,
     1652   -1282,   487,   492, -1282, -1282,    90,  9044,  2201,   567,   421,
     1653     477,   513,   520,   554,   575,  5546,  6949,   504,   495, -1282,
     1654    9574, -1282, -1282, -1282, -1282,   558, -1282,   116,  4885,  4885,
     1655   -1282,   577,   253, -1282, -1282, -1282, -1282,   613,   284,   302,
     1656     335,   131,   616, -1282, -1282,  1298,  2031,   692, -1282,    65,
     1657   -1282,   131,   131,   216, -1282, -1282,   103, -1282,   131,   131,
     1658   -1282,  3459,   673,   678,   713,  6742, -1282, -1282,   702,  5932,
     1659   -1282, -1282,   557, -1282, -1282, -1282,   216, -1282,  1880,   122,
     1660   -1282,  8115, -1282,   713,   713,   713,   216, -1282,  1844, -1282,
     1661    4853, -1282, -1282,   627,   713, -1282,   713, -1282,   175,  9044,
     1662   -1282,   738, -1282,   994,   742,   713, -1282,  1844,   706,   717,
     1663   -1282,  7661,   598, -1282, -1282, -1282,  9503, -1282, -1282,  5769,
     1664   -1282,   692,    43, 10287,  9075,  1830,  3459, -1282,   197, -1282,
     1665   -1282,  8264,  1880,   745,  7808, -1282, -1282,   441, -1282, 10539,
     1666     754,   784,  3526,   766,  3896,  4720, -1282,   770, -1282, -1282,
     1667   -1282, -1282, 10420, 10420,  8818,   772, -1282, -1282, -1282, -1282,
     1668   -1282, -1282, -1282,   805, -1282,  1317,  2104,  9157,  3896, -1282,
     1669     619,   651,   733,   206,   860,   791,   775,   785,   823,   -65,
     1670   -1282, -1282,   794,   596, -1282,   337, -1282, -1282,  2201, -1282,
     1671   -1282,   290,   810, -1282,   298,   810,   819,   175, -1282, -1282,
     1672     836,  2963, -1282,   844,   858,  9270, -1282, -1282,  1515,  1616,
     1673    8533,  6742,   557, -1282,   557,   713,   713, -1282, -1282, -1282,
     1674   -1282, -1282, -1282,   713,  2963,  1880, -1282, -1282,  9188,  1765,
     1675   -1282,  4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,
     1676    6164,  3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
     1677   -1282, -1282, -1282, -1282, -1282, -1282,  1830, -1282,   592,   881,
     1678     887,   907,   977,   913,   918,   926,  2031, -1282, -1282,   917,
     1679     122,   952, -1282, -1282,   968, -1282, -1282, -1282,  9503, -1282,
     1680   -1282, -1282, -1282, -1282,  3459, -1282,  9044,  9044, -1282,   713,
     1681    1830,  6861,  1880,  8606, -1282, -1282, -1282, -1282,  9503,    43,
     1682   -1282, -1282,   557,   216, -1282, -1282,  9503, -1282,  5584, -1282,
     1683   -1282,   713,   713,   429,  4617,   967,   975,   972,   982,   713,
     1684   -1282, -1282, -1282, -1282,  9803, -1282,   430,  6623, -1282,   216,
     1685     991, -1282,  1830, 10621, 10344, -1282, -1282, -1282, -1282,   984,
     1686    3459, -1282,  8679,   692,  7545, -1282, -1282, -1282,  1025,   534,
     1687     794,   994,  7808,  1044,  8264, -1282,  7808, -1282, -1282, -1282,
     1688   -1282,   539, -1282,   997,   784,    70,  8818, -1282,  9301, -1282,
     1689   -1282,  8818, -1282,  8931,  8818, -1282, -1282,   999, -1282,   564,
     1690    1000,   689,  1003, -1282, -1282,  9650,  6592, -1282,   291, -1282,
     1691   -1282, 10287, -1282,   331, 10287, -1282, -1282, -1282, -1282, -1282,
     1692   -1282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282,  3896,
    16931693    3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
    1694     3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1390,
    1695      558,  1665, -1390, -1390,    91,    91, -1390, -1390,  9044, -1390,
    1696    -1390,   926,   590, -1390,   926, 10363, -1390, -1390, -1390,  5001,
    1697     6592,   974,   975, -1390,  9075, -1390, -1390,   586, -1390,   976,
    1698      286,   979,  1959,    99,   866, -1390,    91,    91,   866,   122,
    1699    -1390,    91,    91,   926, -1390, -1390,    91,    91, -1390,   892,
    1700     9421,  1684, 10766,   260,   339,  9421, -1390,  5769, -1390,   866,
    1701    -1390,  2963, -1390,   183,  8230,  8230,  8230,  1684, -1390, 10173,
    1702      963,   903,   538,   964,   967, -1390,   985,  4885,   427, -1390,
    1703     1073,  1684,  8230,   590,  2329,   590,   695,   727,   892, -1390,
    1704    -1390,   771,   892, -1390, -1390, -1390,   846, -1390,   892,   203,
    1705     9803, -1390,   647,   995,   650,   996, -1390,   997,   203, -1390,
    1706    -1390,  9503,   203,   998,  9301,   999, -1390,  1616, -1390,   384,
    1707      407,   744, -1390,   744,  1002,  3896, -1390,   744, 10766, -1390,
    1708    -1390,  1000, -1390, -1390, -1390,   590, -1390, 10694,   901, -1390,
    1709     8230,   596,  8533, -1390, -1390,   586,  1003,  1004,   907,  2842,
    1710    -1390, -1390,  7808, -1390, -1390,  1007, -1390, -1390,  1018, -1390,
    1711     1007,  1019, 10539, 10287,   983,  1009,    88,  1022,  1012,  1023,
    1712     1025, -1390,  1026,  1032,  9688,  6711, -1390, 10287, -1390,   583,
    1713     1835, -1390, -1390, -1390,    91,    91, 10230, 10287,  1027, -1390,
    1714    -1390,   657, -1390, 10287, -1390, -1390,   706, -1390, -1390, -1390,
    1715    -1390,   619,   619,   651,   651,   614,   614,   614,   614,   309,
    1716      309,   714,   823,   850,   853,   891,  3896,   237, -1390,  9803,
    1717     1035,  1038,  1041,  1665, -1390, -1390, -1390, -1390, -1390,  9803,
    1718      664,  8230, -1390,  2963, -1390,  7068,  9383, -1390,  4463,  6949,
    1719    -1390, -1390,   286,  9803,   944,  1045,  1046,  1048,  1049,  1050,
    1720     1052,  1054, -1390,  3725,  1959, -1390, -1390, -1390, -1390, -1390,
    1721    -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
    1722    -1390, -1390,   926, -1390, -1390, -1390,   866, -1390, -1390, -1390,
    1723    -1390, -1390, -1390, -1390, -1390,  1060, -1390,  1061,  1068, -1390,
    1724    -1390,   110,  1027, 10173, -1390, -1390, -1390,  6164,  1064, -1390,
    1725    -1390, -1390, -1390,   744,  6295,  1153, -1390, -1390, -1390, -1390,
    1726     1053,   110, -1390, -1390,   926, -1390, -1390,   926,  1076,   926,
    1727    -1390, -1390, -1390, -1390, -1390, -1390,  9612, -1390,   203, -1390,
    1728    -1390,   437,   460,  9188,  7187,  1990,  3896,  3131, -1390, -1390,
    1729     1063,    87,  1063, -1390,   744, -1390,    91, -1390, -1390,  8451,
    1730      925, -1390, -1390, -1390,   933,  1080,  1067, -1390, -1390,  1084,
    1731     1097, -1390,   596,  1850, -1390,   502, -1390,  2842,   866, -1390,
    1732     1088,  7808,  9721,  9044,  1100, -1390, -1390,  1096,  1104,  1085,
    1733    -1390,  3896,  1107,   250,  1102, -1390,  1105,   590,  1105, -1390,
    1734    -1390,  1105,  1108, -1390,  1111,  1112,  1114,  1835, -1390, -1390,
    1735    -1390,  6164, -1390, -1390, -1390, -1390,  1122, 10287,  1115,   590,
    1736    -1390, 10287, -1390,   590, -1390, -1390, 10287, -1390,   776,   892,
    1737    -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,   901,  9270,
    1738    -1390, -1390,  7306,  1125, -1390,   791,   892, -1390,   804,   829,
    1739      892, -1390,  1671,  4154, -1390, -1390, -1390,  9803,  9803, -1390,
    1740     8606,  8606, -1390,  1126,  1127,  1135,  1137, -1390,  1146,   615,
    1741      233,  1027, -1390,   590, -1390,  4885, -1390, 10287,   491, -1390,
    1742     6430,  1140,  1150, 10116,  1152,  1157,    46,    55,   198, 10287,
    1743     1158,   203, 10287, 10287,  1132,  1156,   335,  1138, -1390, -1390,
    1744    -1390,  1161, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
    1745    -1390,   744,  1172, 10287, -1390,  9803,  9803,    91,  1174, -1390,
    1746     8962, -1390, -1390,   742, -1390,  3131, -1390, -1390, -1390, -1390,
    1747     1616, -1390, -1390,  1175, -1390, -1390, -1390, -1390,  1177,  1850,
    1748    -1390, -1390,  1143, -1390,  1007, -1390, -1390,  2329,  1176, -1390,
    1749    -1390, -1390,   669,  1183, -1390,    88,  1180,  3896,  1168,    88,
    1750       88,  1192,  9650,   836,   892, -1390, -1390,   985, 10287,  1193,
    1751     1122,   467,   193,  1188, -1390, -1390,  1200,  1188, -1390, -1390,
    1752     1207, -1390, -1390,   926,  1209,  1213,  6830,  1212,  1215,  1218,
    1753    -1390, -1390,  1221, -1390, -1390,   926, -1390, -1390, -1390, -1390,
    1754      926, 10287, 10287,   901,  1225, -1390, -1390, -1390, -1390, -1390,
    1755    -1390, -1390, -1390, -1390, -1390, -1390, -1390,  3896,  3896,  1234,
    1756     1237,  1188, -1390, -1390,   744, -1390, -1390, -1390,  8042,  9721,
    1757    10287, 10287,  1305, 10287, -1390,  1226, -1390,  1231, -1390,  1240,
    1758    10287,  1241, 10287,  1001,  1242,    20,    91,  5155,  1894, -1390,
    1759    -1390,  6295,  1260,   500, -1390, -1390, -1390, -1390, -1390, -1390,
    1760    -1390, -1390, -1390,  9936, -1390,  8679,  1269, -1390, -1390,  9721,
    1761      512,   513, -1390,  1272,  1227,   846,  1278, -1390,   312, -1390,
    1762    -1390, -1390, -1390,   926,  1274, -1390, -1390,  1279,   337,   462,
    1763      590,  1280, -1390,  1281, -1390,  9803, -1390, -1390, -1390, -1390,
    1764    -1390,  1283, -1390,  9803,  9803,  9803, -1390, -1390,  1285, -1390,
    1765     1286,  1290,  1292,   640,  8303,  8418, -1390, -1390,   474, -1390,
    1766     1291,  1295, -1390,  8752,   682,   684,  1299,   686,  6096, -1390,
    1767    -1390, -1390,   534, -1390,   707,  1302,  1306,   203,  1344,   831,
    1768    -1390, -1390, 10287, -1390, 10116, 10287, -1390, -1390, -1390,  1304,
    1769     1315, -1390, -1390, -1390,  1312, -1390, -1390, -1390, -1390, -1390,
    1770    -1390,  9721,   846,  1319, -1390,  1297,   846,  9803, -1390, -1390,
    1771    -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
    1772    -1390, -1390,  1318,  1322, -1390, -1390, -1390, -1390, -1390, -1390,
    1773    -1390,  1334, -1390,  1333, -1390, -1390, 10116,   104, 10287, 10116,
    1774    -1390,  1336, 10287, -1390,   264,  1351,  1360, -1390, -1390,  1349,
    1775     1350,  1328, -1390,   779, -1390, -1390, -1390,  1684,  2329,  1346,
    1776    -1390,   298,  3896, -1390,   716, -1390,   590,   590,  1353,  1358,
    1777     1364,  1366, -1390, -1390,  8606,  1363, -1390,  1438,  3896,  1352,
    1778    -1390, -1390, 10028, -1390,   729, -1390,  1355, 10116,  1359, -1390,
    1779    -1390,  1373, -1390,  1374, -1390,  1389,  1394, -1390,  1365,  9721,
    1780    -1390, -1390, -1390,   846,   590,  1384,  1369,  1386,  1188,  1188,
    1781    -1390, -1390, -1390, -1390, -1390, 10116,   235, -1390,   348, -1390,
    1782    -1390,  7893, -1390, -1390,  1370, 10287, -1390, 10287,  7893,   203,
    1783     9301,   203,  9301,  1388, -1390,  1393, -1390, -1390,  1395, -1390,
    1784    -1390,   756, -1390, -1390, -1390,  1392,  1397, -1390,  3896,  3896,
    1785    -1390, -1390,   873,   135, -1390, -1390,  1382, -1390,   873, -1390,
    1786    -1390,  2111,   590, -1390, -1390,   203,  9301,   203,  9301,  1410,
    1787     1391,   590, -1390, -1390, -1390, -1390, 10028,  1405,   873,  7969,
    1788    10287,  9940,  1406,   873,  1415,  2111,  3145, -1390, -1390, -1390,
    1789     1416, -1390, -1390, -1390, -1390,  9044, -1390, -1390, -1390,  9807,
    1790    -1390, 10028, -1390, -1390,  1400,  5404, -1390, -1390,  9940,   203,
    1791     3145,   203,  1417,  1425,   760, -1390,  9807, -1390, -1390, -1390,
    1792     5404, -1390, -1390, -1390,   203,   203, -1390, -1390, -1390, -1390,
    1793    -1390, -1390, -1390, -1390
     1694    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1282,
     1695     596,  1665, -1282, -1282,   131,   131, -1282, -1282,  9044, -1282,
     1696   -1282,   968,   598, -1282,   968, 10363, -1282, -1282, -1282,  5001,
     1697    6592,  1005,  1011, -1282,  9075, -1282, -1282,   558, -1282,  1017,
     1698     501,  1020,  3131,   211,   794, -1282,   131,   131,   794,   231,
     1699   -1282,   131,   131,   968, -1282, -1282,   131,   131, -1282,   810,
     1700    9421,  1880, 10766,    79,   605,  9421, -1282,  5769, -1282,   794,
     1701   -1282,  2963, -1282,   183,  8230,  8230,  8230,  1880, -1282, 10173,
     1702    1006,   869,   840,  1015,  1018, -1282,  1008,  4885,   242, -1282,
     1703    1104,  1880,  8230,   598,  1830,   598,   692,   448,   810, -1282,
     1704   -1282,   771,   810, -1282, -1282, -1282,   784, -1282,   810,   216,
     1705    9803, -1282,   637,  1041,   647,  1049, -1282,  1023,   216, -1282,
     1706   -1282,  9503,   216,  1046,  9301,  1053, -1282,   759, -1282,   357,
     1707     422,   994, -1282,   994,  1051,  3896, -1282,   994, 10766, -1282,
     1708   -1282,  1057, -1282, -1282, -1282,   598, -1282, 10694,   858, -1282,
     1709    8230,   851,  8533, -1282, -1282,   558,  1055,  1056,  1025,  2498,
     1710   -1282, -1282,  7808, -1282, -1282,  1062, -1282, -1282,  1070, -1282,
     1711    1062,  1072, 10539, 10287,  1060,  1061,   100,  1073,  1071,  1088,
     1712    1090, -1282,  1094,  1095,  9688,  6711, -1282, 10287, -1282,   689,
     1713    1753, -1282, -1282, -1282,   131,   131, 10230, 10287,  1080, -1282,
     1714   -1282,   650, -1282, 10287, -1282, -1282,   885, -1282, -1282, -1282,
     1715   -1282,   619,   619,   651,   651,   733,   733,   733,   733,   206,
     1716     206,   860,   791,   775,   785,   823,  3896,    14, -1282,  9803,
     1717    1099,  1100,  1102,  1665, -1282, -1282, -1282, -1282, -1282,  9803,
     1718     657,  8230, -1282,  2963, -1282,  7068,  9383, -1282,  4463,  6949,
     1719   -1282, -1282,   501,  9803,  1030,  1108,  1109,  1110,  1111,  1112,
     1720    1114,  1117, -1282,  3725,  3131, -1282, -1282, -1282, -1282, -1282,
     1721   -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
     1722   -1282, -1282,   968, -1282, -1282, -1282,   794, -1282, -1282, -1282,
     1723   -1282, -1282, -1282, -1282, -1282,  1118, -1282,  1120,  1122, -1282,
     1724   -1282,   122,  1080, 10173, -1282, -1282, -1282,  6164,  1123, -1282,
     1725   -1282, -1282, -1282,   994,  6295,  1204, -1282, -1282, -1282, -1282,
     1726    1116,   122, -1282, -1282,   968, -1282, -1282,   968,   125,   968,
     1727   -1282, -1282, -1282, -1282, -1282, -1282,  9612, -1282,   216, -1282,
     1728   -1282,   460,   467,  9188,  7187,  1951,  3896,  3145, -1282, -1282,
     1729    1105,    87,  1105, -1282,   994, -1282,   131, -1282, -1282,  8451,
     1730     972, -1282, -1282, -1282,   975,  1133,  1129, -1282, -1282,  1137,
     1731    1146, -1282,   851,  1870, -1282,   683, -1282,  2498,   794, -1282,
     1732    1149,  7808,  9721,  9044,  1151, -1282, -1282,  1150,  1152,  1138,
     1733   -1282,  3896,  1158,   250,  1153, -1282,  1157,   598,  1157, -1282,
     1734   -1282,  1157,  1160, -1282,  1166,  1169,  1172,  1753, -1282, -1282,
     1735   -1282,  6164, -1282, -1282, -1282, -1282,  1168, 10287,  1175,   598,
     1736   -1282, 10287, -1282,   598, -1282, -1282, 10287, -1282,   809,   810,
     1737   -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,   858,  9270,
     1738   -1282, -1282,  7306,  1180, -1282,   829,   810, -1282,   854,   868,
     1739     810, -1282,   713,  4154, -1282, -1282, -1282,  9803,  9803, -1282,
     1740    8606,  8606, -1282,  1176,  1181,  1183,  1189, -1282,  1179,   724,
     1741     -22,  1080, -1282,   598, -1282,  4885, -1282, 10287,   475, -1282,
     1742    6430,  1191,  1192, 10116,  1193,  1195,    21,    55,   195, 10287,
     1743    1196,   216, 10287, 10287,  1182,  1205,   579,  1209, -1282, -1282,
     1744   -1282,  1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
     1745   -1282,   994,  1213, 10287, -1282,  9803,  9803,   131,  1214, -1282,
     1746    8962, -1282, -1282,   893, -1282,  3145, -1282, -1282, -1282, -1282,
     1747     759, -1282, -1282,  1218, -1282, -1282, -1282, -1282,  1227,  1870,
     1748   -1282, -1282,  1215, -1282,  1062, -1282, -1282,  1830,  1231, -1282,
     1749   -1282, -1282,   669,  1234, -1282,   100,  1237,  3896,  1220,   100,
     1750     100,  1248,  9650,   876,   810, -1282, -1282,  1008, 10287,  1251,
     1751    1168,   563,   204,  1250, -1282, -1282,  1255,  1250, -1282, -1282,
     1752    1258, -1282, -1282,   968,  1259,  1261,  6830,  1263,  1265,  1267,
     1753   -1282, -1282,  1273, -1282, -1282,   968, -1282, -1282, -1282, -1282,
     1754     968, 10287, 10287,   858,  1275, -1282, -1282, -1282, -1282, -1282,
     1755   -1282, -1282, -1282, -1282, -1282, -1282, -1282,  3896,  3896,  1278,
     1756    1279,  1250, -1282, -1282,   994, -1282, -1282, -1282,  8042,  9721,
     1757   10287, 10287,  1345, 10287, -1282,  1266, -1282,  1268, -1282,  1276,
     1758   10287,  1282, 10287,  1096,  1293,    49,   131,  5155,  1347, -1282,
     1759   -1282,  6295,  1280,   482, -1282, -1282, -1282, -1282, -1282, -1282,
     1760   -1282, -1282, -1282,  9936, -1282,  8679,  1287, -1282, -1282,  9721,
     1761     490,   497, -1282,  1290,  1281,   784,  1319, -1282,   334, -1282,
     1762   -1282, -1282, -1282,   968,  1323, -1282, -1282,  1327,   444,   549,
     1763     598,  1332, -1282,  1333, -1282,  9803, -1282, -1282, -1282, -1282,
     1764   -1282,  1334, -1282,  9803,  9803,  9803, -1282, -1282,  1335, -1282,
     1765    1337,  1341,  1343,   735,  8303,  8418, -1282, -1282,   248, -1282,
     1766    1351,  1356, -1282,  8752,   676,   686,  1350,   707,  6096, -1282,
     1767   -1282, -1282,   537, -1282,   716,  1365,  1367,   216,  1419,   951,
     1768   -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282,  1370,
     1769    1372, -1282, -1282, -1282,  1369, -1282, -1282, -1282, -1282, -1282,
     1770   -1282,  9721,   784,  1375, -1282,  1353,   784,  9803, -1282, -1282,
     1771   -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
     1772   -1282, -1282,  1378,  1379, -1282, -1282, -1282, -1282, -1282, -1282,
     1773   -1282,  1377, -1282,  1382, -1282, -1282, 10116,   104, 10287, 10116,
     1774   -1282,  1387, 10287, -1282,   243,  1402,  1405, -1282, -1282,  1393,
     1775    1394,  1388, -1282,   916, -1282, -1282, -1282,  1880,  1830,  1389,
     1776   -1282,   246,  3896, -1282,   729, -1282,   598,   598,  1399,  1400,
     1777    1404,  1409, -1282, -1282,  8606,  1407, -1282,  1479,  3896,  1395,
     1778   -1282, -1282, 10028, -1282,   757, -1282,  1401, 10116,  1403, -1282,
     1779   -1282,  1416, -1282,  1417, -1282,  1436,  1440, -1282,  1408,  9721,
     1780   -1282, -1282, -1282,   784,   598,  1429,  1411,  1431,  1250,  1250,
     1781   -1282, -1282, -1282, -1282, -1282, 10116,    10, -1282,   370, -1282,
     1782   -1282,  7893, -1282, -1282,  1412, 10287, -1282, 10287,  7893,   216,
     1783    9301,   216,  9301,  1437, -1282,  1438, -1282, -1282,  1434, -1282,
     1784   -1282,   790, -1282, -1282, -1282,  1441,  1442, -1282,  3896,  3896,
     1785   -1282, -1282,   998,    93, -1282, -1282,  1424, -1282,   998, -1282,
     1786   -1282,  2145,   598, -1282, -1282,   216,  9301,   216,  9301,  1446,
     1787    1425,   598, -1282, -1282, -1282, -1282, 10028,  1443,   998,  7969,
     1788   10287,  9940,  1455,   998,  1463,  2145,  3286, -1282, -1282, -1282,
     1789    1465, -1282, -1282, -1282, -1282,  9044, -1282, -1282, -1282,  9807,
     1790   -1282, 10028, -1282, -1282,  1453,  5404, -1282, -1282,  9940,   216,
     1791    3286,   216,  1476,  1478,   831, -1282,  9807, -1282, -1282, -1282,
     1792    5404, -1282, -1282, -1282,   216,   216, -1282, -1282, -1282, -1282,
     1793   -1282, -1282, -1282, -1282
    17941794};
    17951795
     
    17971797static const yytype_int16 yypgoto[] =
    17981798{
    1799    -1390,  4519,  3402, -1390,   393, -1390,   353,   929,  -255, -1390,
    1800    -1390,   477,  -524,  -492,  -901,  -176,  4763,     0, -1390,   832,
    1801      410,   433,   417,   440,   977,   978,   980,   971,   981, -1390,
    1802     -348,  -520,  3026,  -946, -1390,  -709,   563,   620,  -590,   -87,
    1803    -1390,   172, -1390,   332, -1116, -1390, -1390,    79, -1390, -1281,
    1804    -1176,   189, -1390, -1390, -1390, -1390,     9, -1389, -1390, -1390,
    1805    -1390, -1390, -1390, -1390,   256, -1199,    33, -1390,  -324, -1390,
    1806      435,   230, -1390,   109, -1390,  -343, -1390, -1390, -1390,   490,
    1807     -651, -1390, -1390,     8, -1002,    97,  1423, -1390, -1390, -1390,
    1808     -125, -1390,    23,  1201,  -202,  1925,  4332, -1390, -1390,    52,
    1809      224,   459,  1086, -1390,  1865, -1390, -1390,    25,  2362, -1390,
    1810     2640,  1529, -1390, -1390, -1390,  -612, -1390,   878,   879,   478,
    1811      658,    43, -1390, -1390, -1390,   876,   655,  -464, -1390,   -94,
    1812      -89,   948, -1390, -1390,  -942,  -971,   -24,    78,  1010,   368,
    1813    -1390,  1732,   171,  -317,  -213,  -127,   605,   710, -1390,   930,
    1814    -1390,  3077,  1178,  -438,   863, -1390, -1390,   654, -1390,  -234,
    1815    -1390,   -47, -1390, -1390, -1390, -1275,   357, -1390, -1390, -1390,
    1816     1110, -1390,    32, -1390, -1390,  -837,  -105, -1257,  -126,  2286,
    1817    -1390,  2146, -1390,   865, -1390,  -146,    59,  -177,  -171,  -166,
    1818        7,   -40,   -28,   -27,  1230,    28,    29,    57,   -63,  -154,
    1819     -151,  -150,  -141,  -329,  -513,  -511,  -507,  -589,  -320,  -515,
    1820    -1390, -1390,  -518,  1034,  1036,  1037,  1371,  5065,  -572,  -555,
    1821     -549,  -540,  -441, -1390,  -497,  -722,  -721,  -701,  -608,  -309,
    1822     -346, -1390, -1390,   185,   133,   -15, -1390,  3702,   -45,  -629,
    1823       22
     1799   -1282,  4519,  3402, -1282,   393, -1282,   353,   929,  -255,   927,
     1800   -1282,   536,  -524,  -496,  -864,   -86,  4763,     0, -1282,  1012,
     1801     494,   506,   417,   512,  1032,  1034,  1040,  1042,  1039, -1282,
     1802    -348,  -520,  3026,  -967, -1282,  -684,   629,   -16,  -590,   453,
     1803   -1282,   172, -1282,   397, -1192, -1282, -1282,   141, -1282, -1281,
     1804   -1043,   247, -1282, -1282, -1282, -1282,    72, -1149, -1282, -1282,
     1805   -1282, -1282, -1282, -1282,   315,  -843,    50, -1282,  -384, -1282,
     1806     498,   288, -1282,   167, -1282,  -343, -1282, -1282, -1282,   546,
     1807    -651, -1282, -1282,     8, -1002,    97,  1423, -1282, -1282, -1282,
     1808    -125, -1282,    23,  1201,  -202,  1925,  4332, -1282, -1282,    52,
     1809     224,   459,  1086, -1282,  1865, -1282, -1282,    25,  2362, -1282,
     1810    2640,  1529, -1282, -1282, -1282,  -646, -1282,   935,   945,   535,
     1811     718,    78, -1282, -1282, -1282,   934,   722,  -464, -1282,   -94,
     1812     -89,   313, -1282, -1282,  -870,  -942,   -24,  1177,  1054,   368,
     1813   -1282,  1732,   548,  -317,  -213,  -127,   662,   776, -1282,   990,
     1814   -1282,  3077,  1178,  -438,   923, -1282, -1282,   710, -1282,  -234,
     1815   -1282,    99, -1282, -1282, -1282, -1240,   423, -1282, -1282, -1282,
     1816    1170, -1282,   -20, -1282, -1282,  -853,  -105, -1239,  -126,  2286,
     1817   -1282,  2146, -1282,   921, -1282,  -146,    59,  -177,  -171,  -166,
     1818       7,   -40,   -28,   -27,   725,     4,    28,    37,   -63,  -154,
     1819    -151,  -150,  -141,  -271,  -540,  -513,  -508,  -569,  -320,  -517,
     1820   -1282, -1282,  -518,  1092,  1093,  1097,  1371,  5065,  -582,  -555,
     1821    -549,  -535,  -441, -1282,  -497,  -722,  -721,  -701,  -607,  -309,
     1822    -346, -1282, -1282,   185,   133,   -15, -1282,  3702,   -45,  -609,
     1823    -238
    18241824};
    18251825
     
    18311831{
    18321832      49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
    1833      766,   267,   844,   826,   400,   150,   151,   868,   628,   401,
    1834      604,   740,   632,    63,   752,    76,   505,   964,   965,   609,
    1835      827,   402,    49,    50,   403,   404,   596,  1070,  1187,    97,
    1836      407,   383,   384,   147,   405,   819,  1379,   973,   966,    49,
    1837     1171,   820,    69,   794,   725,    63,   161,    76,   730,    96,
    1838      821,   410,   357,   186,   143,    50,   209,   358,   166,    49,
    1839      193,   152,   153,   216,   122,   669,   226,   219,  1169,  1170,
    1840      919,    31,  1137,  1302,    69,   818,   123,   815,   399,   816,
    1841      260,    96,   280,   817,   400,   678,   425,    56,   115,   401,
    1842      154,   327,   148,   682,    31,   113,  1204,  1205,    96,   673,
    1843      675,   402,  1526,   113,   403,   404,   266,   271,  1195,    31,
     1833     766,   267,   143,   844,   400,   150,   151,   740,   628,   401,
     1834     827,  1070,   632,    63,   752,    76,   505,   964,   965,   609,
     1835     566,   402,    49,   826,   403,   404,   596,   868,  1187,    97,
     1836     407,   383,   384,   147,   405,   819,   919,   152,   966,    49,
     1837      50,   820,    69,   794,   725,    63,   161,    76,   730,    96,
     1838     815,   410,   357,   186,   567,   821,   209,   358,   166,    49,
     1839     193,   153,   973,   216,  1177,   669,   226,   219,   604,  1171,
     1840     154,  1379,    50,   818,    69,  1204,  1205,   816,   399,   202,
     1841     260,    96,   817,  1195,   400,   678,   425,    56,   115,   401,
     1842    1178,   327,   148,   682,    31,   113,  1468,   409,    96,   673,
     1843     675,   402,  1302,   113,   403,   404,   266,   271,   122,  1137,
    18441844     407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
    1845       31,   471,  1181,   106,   106,   475,   477,   144,    31,  1541,
    1846      342,  1439,   202,   948,  1458,   149,   307,   147,  1398,  1399,
    1847      281,   252,  1303,   411,   161,   113,   345,   150,   151,   720,
    1848      209,    31,   830,   210,   436,   106,   220,   373,   837,   142,
    1849      291,   859,   860,   714,   419,   923,   411,   729,  1196,  -232,
    1850     -232,   447,  1245,   964,   965,   186,   186,  1198,   877,   481,
    1851      913,   411,   203,   161,   327,   566,   742,   667,   411,   951,
    1852      460,   266,   106,   408,   966,   815,    96,   816,   828,    49,
    1853      601,   817,  1439,   152,   153,  1443,   161,   168,  1400,    96,
    1854     1443,   209,   409,  1069,    70,   149,   436,   173,   443,   567,
    1855      577,   835,   377,   601,   163,  1015,   578,   150,   151,   307,
    1856     1443,   169,   154,   804,   398,   189,   931,  1443,   378,   734,
    1857     -232,    49,  1016,  1484,  1171,   146,    70,   819,    97,   271,
    1858      664,   798,   166,   820,   271,   266,   266,   476,    96,   253,
    1859     1199,   113,   821,   161,    63,   991,    76,  1139,  1248,   472,
    1860       96,    76,   609,   463,    50,   853,  1187,  1512,  1080,  1514,
    1861      212,   656,   476,   471,   307,  1093,  1496,  1003,   163,   815,
    1862      598,   816,  1501,    69,  1171,   817,  1249,   307,  1398,  1399,
    1863       96,   596,   155,   471,   568,  1200,   596,   171,   441,   671,
    1864      387,   471,  1521,   571,   479,   676,   588,  1528,   147,  1177,
    1865      181,  1468,  1169,  1170,   664,   373,   388,   994,   898,   357,
    1866      110,   113,   247,   665,   358,   345,   735,   922,    56,   602,
    1867      620,    41,    42,   747,   111,  1178,   342,  1178,    37,   390,
    1868     1118,   827,    40,   201,   625,   417,   736,   986,   625,    41,
    1869       42,   113,   847,   830,  1070,   391,   848,   819,  1409,   759,
    1870     1119,   327,   327,   820,   106,  1525,  1084,    96,   437,  1186,
    1871      110,   844,   821,   713,   435,   812,   266,   601,   445,   556,
    1872      557,    41,    42,    45,    46,  1536,   186,   286,   603,   110,
    1873      683,   888,  1540,   373,  1423,   250,   578,   665,    41,    42,
    1874       41,    42,  1325,  1171,   266,   177,   307,   307,  1424,   764,
    1875      266,  1116,   357,   625,   558,   559,   714,   358,   985,  1187,
    1876      702,   472,  1326,    76,   514,   442,  1187,  -288,  1330,   327,
    1877      176,   849,  1434,  -516,   113,   850,   435,   996,   252,  1201,
    1878      392,   472,   804,    76,  1469,   189,   520,   394,   327,   472,
    1879     1126,    76,   266,   263,   261,    70,   393,   262,  1470,   523,
    1880      266,   952,   625,   395,    49,  1428,  1429,   373,   719,  1135,
    1881      493,    97,   163,   494,   113,  1014,   357,  1187,  1244,   176,
    1882      914,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
    1883      342,   307,   723,   307,   307,  1029,   915,    50,   704,   330,
    1884      869,   750,   721,   916,   705,   113,   345,  1016,   722,   229,
    1885      881,   -10,   230,   327,   110,   234,    69,   236,   870,   917,
    1886      642,   910,   703,    96,   245,    41,    42,   603,   176,   879,
    1887      804,  -440,   579,   914,   411,  -289,   471,   871,   922,   582,
    1888     1069,   411,     8,     9,    10,    11,    12,  1157,  1159,  1081,
    1889      571,   571,  -441,  1332,   212,   845,   916,  -120,   307,  -120,
    1890      598,    56,   928,  -120,   276,  -467,   439,  -467,  1126,   625,
    1891      345,    31,  1082,   913,   620,   714,   278,  1236,  -120,  -120,
    1892      602,   279,   602,   922,  -467,   465,   331,  1184,  1014,   332,
    1893      110,   176,   139,   140,   849,   680,  1184,   106,  1100,    34,
    1894      625,    41,    42,  1185,   912,   625,   831,   620,  1316,  1318,
    1895      834,   625,  1308,   333,   625,   625,   625,  1362,  1138,   691,
    1896      483,   706,   806,   334,  1317,  1319,   702,   500,  1027,   864,
    1897      747,   851,   625,   335,   266,   854,   713,  1276,  1277,   814,
    1898      371,   603,   110,   397,   731,   176,  1363,   570,  1074,   411,
    1899      732,   229,   176,    41,    42,    45,    46,   737,   520,   738,
    1900      252,   329,   739,   520,   113,   743,   520,   907,   372,  1029,
    1901      596,   523,   749,   523,   411,   376,   523,   212,  1360,   523,
    1902       45,    46,   554,   555,   472,   932,    76,   601,    70,  1112,
    1903      625,   933,   620,    45,    46,   357,   177,   385,   719,   719,
    1904      358,     2,   206,     4,     5,     6,     7,  -103,   399,   342,
    1905      472,  -103,    76,   629,   400,   389,   549,   633,   498,   401,
    1906     1034,   176,   550,   551,   113,   345,   911,   746,   703,   750,
    1907      750,   402,  1348,   747,   403,   404,  1349,   892,   176,   409,
    1908      894,   407,   176,   747,   405,   702,   747,   980,   711,   922,
    1909      552,   553,  1408,   981,   993,   702,   804,   814,   603,  1232,
    1910      705,  1373,   426,   964,   965,   578,    35,  1058,    36,   702,
    1911     1474,  1234,  1356,   571,  1357,  1238,  1359,  1474,   747,   427,
    1912      747,   625,   747,   625,   966,   999,   560,   561,   625,   345,
    1913     1161,   229,   602,   234,   432,   713,   110,  1364,   139,   140,
    1914      111,   984,   981,   747,   602,   176,  1426,    41,    42,   922,
    1915      922,   110,  1423,   139,   140,   450,   882,   714,   411,  1444,
    1916     -364,   890,    41,    42,   408,   747,   442,    37,  1522,    -3,
    1917      897,    40,   329,   411,   899,  1476,   461,  1477,    41,    42,
    1918      952,   806,  1425,  -393,   952,   952,  1490,   703,  1019,   691,
    1919     1546,   814,  1491,   243,   307,   462,   578,   703,  1436,   484,
    1920      885,   760,   411,   603,    43,  1141,   765,   411,   342,  1369,
    1921     1370,   703,    45,    46,  1418,   981,   625,    63,   327,    76,
    1922     1153,   229,   411,   113,   345,   907,   504,   907,  1182,   110,
    1923     1523,   139,   238,  1156,   519,   601,   714,  1398,  1399,   113,
    1924       41,    42,   212,   252,   329,   411,    69,   711,   291,    48,
    1925      112,  1168,   933,   933,   508,   465,   212,   719,  1158,   664,
    1926      601,   562,   113,   307,   910,  1241,   239,   411,  1494,  1436,
    1927     1105,   240,   513,  1087,   845,  1087,  1192,   525,   112,   112,
    1928     1101,    48,   771,   772,  1083,   527,   911,   750,   419,   660,
    1929      411,    56,    48,   775,   776,   777,   778,   563,    48,    37,
    1930     1323,   564,   176,    40,  1508,   565,    48,   773,   774,   846,
    1931       41,    42,    48,   702,   702,    48,   603,   568,    48,   345,
    1932      779,   780,  1227,   338,  -437,   861,   878,   106,   880,   586,
    1933      589,   112,   112,    -3,   176,   638,   718,   668,   657,   876,
    1934      625,   625,   665,   658,    45,    46,   659,   912,   661,   212,
    1935      176,   662,   663,  1126,   922,    48,   666,   257,    48,  1106,
    1936      307,   481,   329,   411,   176,    48,   672,   674,   692,   693,
    1937      922,   702,   702,   828,   329,   601,   695,   713,   927,  1295,
    1938     1296,  1297,   733,   472,   697,    76,   110,  1380,   139,   140,
    1939     1079,  1380,  1331,  1333,  1334,   106,    48,    41,    42,  -236,
    1940      113,   744,   748,   756,    48,   907,   807,   808,   811,    48,
    1941      907,   822,  1189,   -12,   -13,   703,   703,   866,    70,   933,
    1942      500,   867,   873,   726,   691,   893,   895,   266,   727,   896,
    1943     -414,   903,   900,   949,    48,    48,   510,   921,  -520,   936,
    1944      922,   922,   625,   722,  1058,   176,   519,   943,   957,   945,
    1945       48,   519,   956,   958,   519,   959,   960,    56,    48,   547,
    1946      548,   950,   961,   977,   911,   988,   345,    48,   989,   911,
    1947       48,   990,   213,   703,   703,  1005,  1006,   112,  1007,  1008,
    1948     1009,   232,  1010,    37,  1011,   174,   175,    40,  1459,   711,
    1949     1022,  -402,   112,   106,    41,    42,   112,   547,  -401,  1036,
    1950       48,   112,  1071,  1095,  1073,  1351,  1077,   787,   271,   113,
    1951     1094,   498,   342,   906,    48,    48,  1096,   219,  1103,  1312,
    1952      372,    48,   116,   213,   528,   529,   530,   113,    48,  1097,
    1953     1113,   307,   747,   547,  1114,  1115,  1117,  1372,  1120,   971,
    1954     1122,  1123,  1124,  1203,  1125,   625,   442,  1131,   531,   113,
    1955      532,   702,   533,   534,    63,  1151,    76,  1105,  1128,   702,
    1956      702,   702,  1172,  1173,   215,  1174,   213,  1175,   711,  1190,
    1957      159,     2,   206,     4,     5,     6,     7,    48,  1176,  1191,
    1958      242,  1193,  1206,    69,    70,   691,  1194,  1202,  1207,  1397,
    1959     1209,   493,  1405,  1421,   625,   625,    -3,    48,    48,   162,
    1960      228,  1534,  1214,   271,  1219,   210,   220,  1224,   307,   176,
    1961     1222,  1228,  1235,   194,    48,   215,   217,  1233,    48,   227,
    1962     1237,  1313,  1240,   702,  1250,  1246,   258,   213,    56,   643,
    1963     1121,   472,  1252,    76,   159,  1442,    35,  1254,    36,  1256,
    1964     1446,   113,   106,  1257,  1258,    48,  1106,  1259,   399,  1105,
    1965     1260,  1262,  1132,   703,   400,    48,  1132,  1269,   215,   401,
    1966     1189,   703,   703,   703,   106,   213,  1278,   323,  1467,  1279,
    1967      213,   402,  1286,    48,   403,   404,   339,  1322,  1289,    48,
    1968      407,    48,   106,  1290,   405,   499,     2,   206,     4,     5,
    1969        6,     7,  1291,  1293,  1301,  1307,  1507,   162,   266,  1314,
    1970      441,   768,   769,   770,   664,    56,  1132,  1320,  1324,  1328,
    1971      374,  1329,  1335,  1336,   625,  1338,   112,  1344,  1345,   215,
    1972     1346,    48,  1347,  1354,  1297,   703,   430,  1355,  1358,    48,
    1973      434,  1365,   212,    48,  1374,  1366,   162,    48,  1106,   113,
    1974      112,   106,   112,    57,    57,  1375,  1376,  1105,  1382,  1383,
    1975     1392,    35,  1535,    36,  1393,    70,   213,   215,  1535,   162,
    1976      323,   113,   215,   408,  -403,  1396,  1407,  1411,   113,  1535,
    1977      113,   444,   113,  1535,   106,    57,  1413,   112,  1415,  1416,
    1978     1417,  1422,   112,  1430,   472,   149,    76,   665,  1431,  1367,
    1979      327,   472,   434,    76,  1432,   488,  1433,   150,   151,  1349,
    1980     1435,  1506,  1440,  1449,  1451,  1453,   113,  1445,   113,    57,
    1981     1455,  1447,    57,  1189,  1462,   521,  1464,  1457,  1485,   113,
    1982     1189,  1463,  1475,  1487,  1492,  1506,  1506,   442,   159,  1493,
    1983     1489,   112,    70,   161,  1500,   307,  1106,   213,    48,  1515,
    1984     1520,  1527,   472,  1516,    76,  1529,  1531,  1544,   215,    48,
    1985     1506,    48,  1537,  1208,   213,  1545,   784,   373,    56,   781,
    1986     1130,   782,   587,  1306,   783,    56,   593,   785,  1495,  1547,
    1987       48,  1189,   106,  1410,  1368,  1239,  1384,  1478,   374,   213,
    1988      413,  1213,   901,   902,   479,   626,    48,   421,  1221,   630,
    1989     1088,   112,   339,   924,   106,  1092,  1127,  1035,   872,   348,
    1990       48,   106,   112,    48,   112,   938,  1315,    37,   972,   174,
    1991      175,    40,   800,  1102,   716,   214,    56,   946,    41,    42,
    1992      176,  1132,  1132,  1132,   790,     0,   791,   792,     0,   215,
    1993        0,     0,     0,     0,     0,     0,    48,     0,   891,     0,
    1994      112,  1479,   112,  1483,   376,     0,   112,   323,   323,     0,
    1995        0,     0,   106,     0,   112,  1482,   374,  1482,   129,   413,
    1996      130,   131,   132,     0,    57,     0,   214,    48,    48,    41,
    1997       42,   215,     0,     0,     0,   687,     0,  1511,     0,  1513,
    1998        0,    48,     0,     0,     0,    70,     0,     0,   116,     0,
     1845     747,   471,  1178,   106,   106,   475,   477,  -232,  -232,   203,
     1846     342,   280,    31,   948,   986,   149,   307,   147,  1398,  1399,
     1847    1169,  1170,   476,  1196,   161,   113,   345,   150,   151,  1439,
     1848     209,  1245,   830,   210,   436,   106,   220,   373,   837,  1181,
     1849      31,   859,   860,   714,   252,   923,   411,   729,   815,  1458,
     1850     735,  1303,   291,   964,   965,   186,   186,  1198,   877,   152,
     1851     913,   847,   123,   161,   327,   848,   742,   667,   411,   281,
     1852     736,   266,   106,   408,   966,   816,    96,   527,  -232,    49,
     1853     817,   951,   419,   153,   411,  1443,   161,   720,  1400,    96,
     1854    1443,   209,   154,  1069,    70,   149,   436,   173,   443,   168,
     1855    1439,   463,   377,   142,   163,  1077,    31,   150,   151,   307,
     1856    1443,   144,  1016,   804,   398,   189,   931,  1443,   378,   734,
     1857      31,    49,   723,   169,  1080,  1015,    70,   819,    97,   271,
     1858     664,   798,   166,   820,   271,   266,   266,  1199,    96,   253,
     1859      31,   113,   815,   161,    63,   991,    76,   821,   519,   472,
     1860      96,    76,   609,  1171,   146,   853,  1187,  1398,  1399,  1248,
     1861     212,   656,   476,   471,   307,  1003,   556,   557,   163,   816,
     1862     598,    50,  1139,    69,   817,   155,   481,   307,   411,  1525,
     1863      96,   596,  1200,   471,   568,  1093,   596,  1249,   441,   671,
     1864     828,   471,   601,   571,   479,   676,   588,   447,   147,  1536,
     1865     171,   558,   559,  1171,   664,   373,  1540,   994,   898,   357,
     1866     835,   113,   601,   665,   358,   345,   460,   922,    56,   602,
     1867     620,   827,  1526,   870,   111,   642,   342,  1409,  1070,  -467,
     1868    1118,  -467,  1423,   110,   625,   417,   831,   181,   625,   387,
     1869     834,   113,   871,   830,    41,    42,  1424,   819,  -467,  1541,
     1870    1119,   327,   327,   820,   106,   388,  1084,    96,   437,  1186,
     1871     201,   851,   844,   713,   435,   854,   266,   821,   445,   579,
     1872     390,   411,   759,   110,  1169,  1170,   186,   582,   603,   411,
     1873     672,   674,  -289,   373,    41,    42,   391,   665,   392,     8,
     1874       9,    10,    11,    12,   266,   177,   307,   307,  -288,  1496,
     1875     266,  1116,   357,   625,   393,  1501,   714,   358,   985,  1187,
     1876     702,   472,   764,    76,  1325,   442,  1187,   577,    31,   327,
     1877     176,   394,  1171,   578,   113,  1521,   435,   996,   247,  1201,
     1878    1528,   472,   804,    76,  1326,   189,   520,   395,   327,   472,
     1879    1126,    76,   266,   914,   261,    70,    34,   262,   250,   523,
     1880     266,   952,   625,  -516,    49,  1135,  1469,   373,   719,   915,
     1881     519,    97,   163,   252,   113,   519,   357,  1187,   519,   176,
     1882    1470,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
     1883     342,   307,   263,   307,   307,  1029,   110,  1016,  1244,   -10,
     1884     869,   750,  1428,  1429,  1434,   113,   345,    41,    42,   229,
     1885     881,   330,   230,   327,    50,   234,    69,   236,   916,   683,
     1886     704,   910,  -440,    96,   245,   578,   705,   603,   176,   879,
     1887     804,   787,  -441,  1014,   917,  1330,   471,   882,   922,   411,
     1888    1069,     2,   206,     4,     5,     6,     7,  1157,  1159,   493,
     1889     571,   571,   494,    37,   212,   845,   914,    40,   307,   276,
     1890     598,    56,   928,   916,    41,    42,   439,   331,  1126,   625,
     1891     345,  1184,  1081,   913,   620,   714,   278,  1236,  1184,  1082,
     1892     602,   279,   602,   922,   372,   465,  1316,  1185,  1019,  1484,
     1893     812,   176,   601,  1318,  1308,   680,   371,   106,    45,    46,
     1894     625,   110,  1317,   332,   912,   625,    35,   620,    36,  1319,
     1895     333,   625,    41,    42,   625,   625,   625,  1362,  1138,   691,
     1896     483,   706,   806,  1512,   721,  1514,   702,   500,  1027,   731,
     1897     722,   286,   625,   747,   266,   732,   713,  1276,  1277,   814,
     1898    1332,   603,    41,    42,   334,   176,  1014,   376,  1074,  1363,
     1899     110,   229,   176,  -120,   746,  -120,   252,   329,   520,  -120,
     1900     747,    41,    42,   520,   113,   335,   520,   907,   514,  1029,
     1901     596,   523,   385,   523,  -120,  -120,   523,   212,  1360,   523,
     1902    1101,   252,   329,   411,   472,   570,    76,   411,    70,  1112,
     1903     625,   933,   620,    45,    46,   357,   177,   849,   719,   719,
     1904     358,   850,   389,     8,     9,    10,    11,    12,   399,   342,
     1905     472,  1234,    76,   629,   400,  1238,   549,   633,   498,   401,
     1906    1034,   176,   550,   551,   113,   345,   911,   892,   397,   750,
     1907     750,   402,    31,   747,   403,   404,   409,   894,   176,   450,
     1908     980,   407,   176,   747,   405,   702,   981,   993,   711,   922,
     1909     552,   553,  1408,   705,   162,   702,   804,   814,   603,  1232,
     1910      34,  1373,   426,   964,   965,   578,  1356,   427,   194,   702,
     1911    1474,   217,   747,   571,   227,   849,  1357,  1474,   749,  1100,
     1912     411,   625,   747,   625,   966,   999,    45,    46,   625,   345,
     1913    1161,   229,   602,   234,   432,   713,   110,  1359,   139,   238,
     1914     111,   554,   555,   747,   602,   176,  1364,    41,    42,   922,
     1915     922,    37,   747,   183,   184,    40,  -103,   714,   461,  1426,
     1916    -103,   890,    41,    42,   408,  1423,   442,  1348,  1522,   462,
     1917     897,  1349,  -364,   239,   899,  1476,  -393,  1477,   240,   484,
     1918     952,   806,  1425,   504,   952,   952,   291,  1444,   905,   691,
     1919     411,   814,   162,   747,   307,   508,    45,    46,  1436,   513,
     1920     885,   760,   411,   603,   525,   374,   765,   527,   342,   906,
     1921       2,   206,     4,     5,     6,     7,   625,    63,   327,    76,
     1922    1490,   229,   563,   113,   345,   907,  1491,   907,  1182,   562,
     1923    1523,   162,   110,   564,   139,   140,   714,   565,  1141,   113,
     1924     411,   338,   212,    41,    42,   568,    69,   711,  -437,    48,
     1925     112,  1168,   933,   933,   162,   465,   212,   719,  1153,   664,
     1926     411,  1546,   113,   307,   910,   586,   444,   578,  1494,  1436,
     1927    1105,   864,   560,   561,   845,    35,   589,    36,   112,   112,
     1928     932,    48,   601,  1156,  1083,   601,   911,   750,    45,    46,
     1929      -3,    56,    48,   775,   776,   777,   778,  1158,    48,   601,
     1930    1323,   638,   176,   891,  1508,  1241,    48,   411,  1087,   846,
     1931    1087,   657,    48,   702,   702,    48,   603,   658,    48,   345,
     1932     984,   981,  1227,   329,   411,   861,   878,   106,   880,  1369,
     1933    1370,   112,   112,   110,   176,   139,   140,   659,    -3,   876,
     1934     625,   625,   665,   661,    41,    42,   666,   912,   662,   212,
     1935     176,  1418,   981,  1126,   922,    48,   663,    37,    48,  1106,
     1936     307,    40,  1398,  1399,   176,    48,   771,   772,    41,    42,
     1937     922,   702,   702,   374,   737,   243,   738,   713,   927,   739,
     1938     773,   774,   743,   472,   668,    76,   110,  1380,   139,   140,
     1939    1079,  1380,   779,   780,    43,   106,    48,    41,    42,   257,
     1940     113,   692,    45,    46,    48,   907,   419,   660,   411,    48,
     1941     907,   693,  1189,   481,   329,   411,   697,    37,    70,   933,
     1942     500,    40,   987,   695,   691,  -236,   733,   266,    41,    42,
     1943     748,   744,   992,   756,    48,    48,   110,   807,   139,   140,
     1944     922,   922,   625,   808,   867,   176,  1004,    41,    42,   811,
     1945      48,   374,   822,   873,   718,   896,   -12,    56,    48,   828,
     1946     329,   601,    45,    46,   911,   -13,   345,    48,   866,   911,
     1947      48,   893,   213,   726,  1295,  1296,  1297,   112,   727,   895,
     1948     900,   232,  1331,  1333,  1334,   903,   921,  -414,  1459,   711,
     1949    -520,   936,   112,   106,  1284,  1285,   112,  1287,   722,   943,
     1950      48,   112,   945,   956,  1292,  1351,  1294,   957,   271,   113,
     1951     949,   498,   342,   950,    48,    48,   977,   219,   958,  1312,
     1952     959,    48,   116,   213,   960,   961,  -290,   113,    48,   988,
     1953     989,   307,   990,     8,     9,    10,    11,    12,  1005,  1006,
     1954    1007,  1008,  1009,  1203,  1010,   625,   442,  1011,  1022,   113,
     1955    -402,   702,  -401,  1071,    63,   906,    76,  1105,  1036,   702,
     1956     702,   702,    31,  1094,   215,  1095,   213,  1073,   711,  1096,
     1957     159,     2,   206,     4,     5,     6,     7,    48,  1097,  1103,
     1958     242,  1113,  1114,    69,    70,   691,   747,  1117,  1115,  1120,
     1959      34,   971,  1122,  1421,   625,   625,  1123,    48,    48,  1124,
     1960     228,  1534,  1125,   271,  1128,   210,   220,  1131,   307,   176,
     1961    1151,  1176,  1172,  1174,    48,   215,   510,  1173,    48,  1175,
     1962    1190,  1191,  1193,   702,  1194,  1202,   258,   213,    56,   643,
     1963    1121,   472,  1206,    76,   159,    -3,    35,  1207,    36,   547,
     1964     548,   113,   106,  1214,  1219,    48,  1106,  1058,   399,  1105,
     1965    1166,  1167,  1132,  1222,   400,    48,  1132,  1224,   215,   401,
     1966    1189,  1209,  1404,   493,   106,   213,  1228,   323,  1233,  1235,
     1967     213,   402,  1237,    48,   403,   404,   339,   547,  1240,    48,
     1968     407,    48,   106,  1246,   405,   499,  1250,  1252,  1254,  1256,
     1969      37,  1257,   183,   184,    40,  1258,  1507,  1259,   266,  1260,
     1970     441,    41,    42,  1262,   664,    56,  1132,  1269,  1216,  1217,
     1971    1278,  1279,  1286,   547,   625,  1307,   112,  1314,  1289,   215,
     1972    1290,    48,   528,   529,   530,  1320,   430,   185,  1291,    48,
     1973     434,  1322,   212,    48,  1293,    45,    46,    48,  1106,   113,
     1974     112,   106,   112,    57,    57,  1301,   531,  1105,   532,  1324,
     1975     533,   534,   528,   529,   530,    70,   213,   215,  1328,  1329,
     1976     323,   113,   215,   408,  1335,  1336,  1338,  1344,   113,  1345,
     1977     113,  1346,   113,  1347,   106,    57,   531,   112,   532,  1358,
     1978     533,  1305,   112,  1354,   472,   149,    76,   665,  1355,  1367,
     1979     327,   472,   434,    76,  1365,   488,  1366,   150,   151,  1297,
     1980    1374,  1506,  1375,  1376,  1382,  1383,   113,  -403,   113,    57,
     1981    1392,  1393,    57,  1189,  1396,   521,  1192,  1407,  1411,   113,
     1982    1189,  1413,  1415,  1416,  1422,  1506,  1506,   442,   159,  1430,
     1983    1431,   112,    70,   161,  1432,   307,  1106,   213,    48,  1433,
     1984    1417,  1435,   472,  1349,    76,  1440,  1449,  1451,   215,    48,
     1985    1506,    48,  1453,  1445,   213,  1447,  1455,   373,    56,  1462,
     1986    1457,  1464,   587,  1463,  1475,    56,   593,  1485,  1487,  1489,
     1987      48,  1189,   106,  1492,  1493,  1515,  1500,  1516,  1520,   213,
     1988     413,   768,   769,   770,   479,   626,    48,   421,  1337,   630,
     1989    1527,   112,   339,  1529,   106,  1531,  1339,  1340,  1341,   348,
     1990      48,   106,   112,    48,   112,  1537,  1544,    37,  1545,   174,
     1991     175,    40,  1208,   888,   781,   214,    56,   782,    41,    42,
     1992     176,  1132,  1132,  1132,   783,   785,  1130,   784,  1306,   215,
     1993    1495,  1410,  1547,  1368,  1384,  1478,    48,  1213,  1239,   901,
     1994     112,  1479,   112,  1483,   372,  1221,   112,   323,   323,   902,
     1995    1088,   924,   106,  1127,   112,  1482,   800,  1482,   872,   413,
     1996    1385,   703,  1092,  1035,    57,   938,   214,    48,    48,  1102,
     1997       0,   215,  1315,   946,   716,   687,     0,  1511,     0,  1513,
     1998       0,    48,   790,   791,  1058,    70,     0,   792,   116,     0,
    19991999       0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
    2000      213,     8,     9,    10,    11,    12,     0,     0,    37,   214,
     2000     213,     0,     0,     0,     0,     0,     0,     0,    37,   214,
    20012001     183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
    20022002      42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
    2003       31,     0,   521,   213,   323,   521,  1550,  1551,    37,     0,
    2004      183,   184,    40,    70,     0,   905,   339,   411,     0,    41,
    2005       42,     0,    34,    45,    46,     0,     0,   987,    34,  1132,
    2006     1132,    48,     0,     0,     0,  1420,   906,   992,     0,     0,
    2007      214,     0,     0,    48,     0,   600,    37,   601,   174,   175,
    2008       40,  1004,   141,    45,    46,     0,     0,    41,    42,   413,
    2009      176,     0,   215,   421,   570,     0,   411,  1460,     0,   323,
     2003       0,  -291,   521,   213,   323,   521,  1550,  1551,     8,     9,
     2004      10,    11,    12,    70,     0,   600,   339,   601,     0,     0,
     2005       0,     0,    34,    45,    46,     0,     0,     0,     0,  1132,
     2006    1132,    48,     0,     0,     0,  1420,     0,    31,     0,     0,
     2007     214,     0,     0,    48,     0,     0,     0,  1372,     0,     0,
     2008       0,     0,   141,     8,     9,    10,    11,    12,   972,   413,
     2009     176,     0,   215,   421,   570,    34,   411,  1460,     0,   323,
    20102010       0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
    2011      802,     0,     0,   214,     0,     0,   643,     0,   213,     0,
    2012      215,     0,   112,     0,     0,   215,     0,     0,     0,     0,
    2013     1284,  1285,     0,  1287,   241,   244,     0,     0,   499,     0,
    2014     1292,   843,  1294,     0,     0,    48,   593,     0,     0,     0,
    2015        0,   547,   852,     0,    48,  1509,    48,     0,     0,     0,
    2016        0,     0,     0,   112,  1517,     8,     9,    10,    11,    12,
    2017      413,     0,     0,     0,     0,     0,   348,     0,     0,     0,
    2018        8,     9,    10,    11,    12,    74,    48,     0,     0,     0,
    2019        0,     0,   510,  -290,    31,     0,   215,     0,     0,   214,
    2020        8,     9,    10,    11,    12,   687,   112,     0,     0,    31,
     2011     802,     0,    31,   214,     0,     0,   643,     0,   213,     0,
     2012     215,     0,   112,     0,     0,   215,     0,     0,     0,  1397,
     2013       0,     0,  1405,     0,   241,   244,     0,     0,   499,     0,
     2014      34,   843,     0,     0,     0,    48,   593,     0,     0,     0,
     2015       0,     0,   852,     0,    48,  1509,    48,    37,     0,   174,
     2016     175,    40,     0,   112,  1517,     0,     0,   703,    41,    42,
     2017     413,     0,     0,     0,     0,  1442,   348,     0,     0,     0,
     2018    1446,     0,   749,     0,   411,    74,    48,     0,     0,     0,
     2019      45,    46,     0,     0,   376,     0,   215,     0,     0,   214,
     2020       8,     9,    10,    11,    12,   687,   112,     0,  1467,     0,
    20212021     215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
    2022      643,     0,    34,     0,     0,     0,     0,    57,   112,    31,
    2023        0,     0,   112,     0,     0,     0,     0,    34,     0,     0,
    2024     -291,     0,     0,   488,     0,    66,   117,     8,     9,    10,
    2025       11,    12,     0,     0,   222,     0,     0,    34,     0,     0,
    2026        0,   576,   576,     0,   749,   339,   411,     0,     0,   348,
    2027        0,     0,    45,    46,     0,     0,    31,    66,     0,   932,
    2028      214,   601,   112,     0,     0,  1166,  1167,    45,    46,     8,
    2029        9,    10,    11,    12,   160,   457,     0,     0,  1404,   528,
    2030      529,   530,     0,   215,    34,     0,     0,     0,     0,     0,
    2031        0,     0,     0,     0,   221,     0,     0,     0,    31,     0,
    2032      112,     0,   214,   531,   995,   532,     0,   533,  1305,   802,
    2033        0,     0,     0,   348,    48,     0,     0,     0,     0,    48,
    2034        0,   353,     0,  1216,  1217,     0,    34,     0,   883,     0,
    2035      259,    37,   886,   183,   184,    40,    48,     0,     0,     0,
    2036        0,     0,    41,    42,   535,   536,   537,   538,   539,   540,
    2037      541,   542,   543,   544,     0,     0,     0,   348,   348,   348,
    2038        0,     0,    37,     0,   183,   184,    40,     0,   600,     0,
    2039      601,     0,   328,    41,    42,   348,    45,    46,   545,     0,
    2040      259,   350,    37,     0,   183,   184,    40,     0,   213,     0,
    2041        0,     0,     0,    41,    42,   449,     0,   802,     0,   905,
    2042        0,   411,     0,     0,   339,     0,     0,    45,    46,     0,
    2043        0,   406,   644,   112,     0,     0,    74,     0,     0,   185,
    2044      687,    74,     0,   214,     0,     0,   424,    45,    46,   429,
     2022     643,     0,    37,     0,   183,   184,    40,    57,   112,    31,
     2023       0,     0,   112,    41,    42,     0,   129,     0,   130,   131,
     2024     132,     0,     0,   488,     0,    66,   117,    41,    42,     0,
     2025       0,     0,     0,     0,   222,     0,     0,    34,     0,   265,
     2026       0,   576,   576,     0,     0,   339,     0,    45,    46,   348,
     2027       0,     0,    37,     0,   174,   175,    40,    66,     0,     0,
     2028     214,     0,   112,    41,    42,     0,   703,     0,     0,     0,
     2029       0,     0,  1535,     0,   160,   457,   703,     0,  1535,   932,
     2030       0,   601,     0,   215,     0,     0,     0,    45,    46,  1535,
     2031     703,     0,     0,  1535,   221,     0,     0,     0,     0,     0,
     2032     112,     0,   214,     0,   995,     0,     0,     0,     0,   802,
     2033       0,   547,     0,   348,    48,     0,     0,     0,     0,    48,
     2034       0,   353,     0,    37,     0,   183,   184,    40,   883,     0,
     2035     259,     0,   886,     0,    41,    42,    48,     0,     0,     0,
     2036       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
     2037       0,     0,   510,     0,     0,     0,     0,   348,   348,   348,
     2038     905,     0,   411,     0,     0,     0,     0,     0,    45,    46,
     2039      31,     0,   328,     0,     0,   348,     0,     0,     0,     0,
     2040     259,   350,     0,     0,     0,     0,     0,     0,   213,     0,
     2041       0,     0,     0,     0,     0,   449,     0,   802,    34,     0,
     2042       0,     0,     0,    37,   339,   183,   184,    40,     0,     0,
     2043       0,   406,   644,   112,    41,    42,    74,     0,     0,     0,
     2044     687,    74,     0,   214,     0,     0,   424,     0,     0,   429,
    20452045     431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
    2046        0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
     2046     185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
    20472047       0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
    20482048       0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
    20492049     459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
    2050      215,   473,     0,    37,     0,   183,   184,    40,     0,     0,
    2051        0,   480,     0,     0,    41,    42,     0,     0,     0,   431,
    2052      843,     0,     0,  1337,     0,     0,     0,     0,     0,     0,
    2053        0,  1339,  1340,  1341,     0,     0,   222,     0,     0,     0,
    2054     1505,     0,   411,   724,   348,   728,     0,   214,    45,    46,
    2055        0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
    2056        0,   214,     0,     0,   126,     0,   126,     0,     8,     9,
    2057       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2058       20,    21,    22,    23,    24,    25,   259,     0,     0,     0,
    2059      594,   275,     0,     0,   213,  1385,   622,    31,     0,     0,
    2060        0,   687,   413,    74,     0,     0,     0,     0,     0,   627,
     2050     215,   473,     0,     0,     0,     0,     0,     0,     0,     0,
     2051       0,   480,     0,     0,   703,   703,     0,     0,     0,   431,
     2052     843,   535,   536,   537,   538,   539,   540,   541,   542,   543,
     2053     544,     8,     9,    10,    11,    12,   222,    37,     0,   183,
     2054     184,    40,     0,   724,   348,   728,     0,   214,    41,    42,
     2055       0,     0,   348,     0,     0,   545,     0,     0,     0,     0,
     2056      31,   214,     0,     0,   126,     0,   126,     0,     0,     0,
     2057       0,     0,   703,   703,  1505,     0,   411,     0,     0,     0,
     2058       0,     0,    45,    46,     0,     0,   259,     0,    34,     0,
     2059     594,   275,     0,    37,   213,     0,   622,    40,     0,     0,
     2060       0,   687,   413,    74,    41,    42,     0,     0,     0,   627,
    20612061       0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
    2062        0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
    2063        0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
     2062       0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
     2063      43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
    20642064       0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
    20652065       0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
     
    20702070       0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
    20712071       0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
    2072        0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
    2073       48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
     2072    1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
     2073      48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
    20742074     112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
    2075     1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
    2076        0,     0,     0,   348,   348,     0,    45,    46,     0,     0,
     2075    1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
     2076     703,   703,   703,   348,   348,     0,     0,     0,     0,     0,
    20772077     259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
    20782078       0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
     
    20802080       0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
    20812081       0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
    2082      353,   353,     0,     0,     0,     0,     0,     0,     8,     9,
     2082     353,   353,     0,     0,   703,     0,     0,     0,     8,     9,
    20832083      10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
    20842084       0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
     
    20902090       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    20912091       0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
    2092        0,     0,     0,     0,     0,  1039,   473,    43,     0,     0,
     2092       0,     0,     0,     0,     0,  1039,   473,   718,     0,     0,
    20932093     353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
    20942094    1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    21152115       0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
    21162116       0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
    2117        0,     0,     8,     9,    10,    11,    12,     0,  1099,     0,
     2117       0,     0,     0,     0,     0,     0,     0,     0,  1099,     0,
    21182118     795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
    21192119       0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
    2120        0,    31,   353,   353,     0,   353,   353,     0,   355,   829,
     2120       0,     0,   353,   353,     0,   353,   353,     0,   355,   829,
    21212121       0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
    2122      126,   126,   840,   841,     0,    74,     0,     0,     0,    34,
    2123        0,     0,     0,     0,    37,     0,  1282,     0,    40,     0,
    2124        0,     0,    57,     0,   594,    41,    42,     0,     0,     0,
     2122     126,   126,   840,   841,     0,    74,     0,     0,     0,     0,
     2123       0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
     2124       0,     0,    57,     0,   594,     0,     0,     0,     0,     0,
    21252125       0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
    21262126     353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
    2127        0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
    2128       46,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
     2127       0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
     2128       0,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
    21292129       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    21302130      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    21542154     184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
    21552155     356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
    2156      905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
    2157        0,     0,   698,     0,  1505,     0,   411,     0,     0,   353,
     2156     600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
     2157       0,     0,   698,     0,   905,     0,   411,     0,     0,   353,
    21582158       0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
    21592159       0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
     
    21692169      42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
    21702170     355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
    2171        0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
     2171       0,     0,     0,     0,     0,  1505,     0,   411,     0,     0,
    21722172       0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
    21732173       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    21992199       0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
    22002200      79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
    2201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2202        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2201       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
     2202      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    22032203       0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
    2204        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
     2204       0,    31,     0,     0,     0,     0,     0,     0,     0,   363,
    22052205       0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
    2206        0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
     2206       0,     0,     0,     0,     0,     0,   591,   363,   599,    34,
    22072207       0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
    22082208     624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
     
    29182918
    29192919#define yypact_value_is_default(yystate) \
    2920   ((yystate) == (-1390))
     2920  ((yystate) == (-1282))
    29212921
    29222922#define yytable_value_is_error(yytable_value) \
     
    29262926{
    29272927       0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
    2928      534,   116,   620,   602,   185,    43,    43,   646,   364,   185,
    2929      349,   513,   368,     0,   521,     0,   281,   749,   749,   349,
    2930      602,   185,    32,     0,   185,   185,   345,   874,  1040,    32,
    2931      186,   168,   169,    43,   185,   600,  1321,   756,   749,    49,
    2932     1021,   600,     0,   571,   492,    32,    49,    32,   496,     0,
    2933      600,   187,   156,    63,    32,    32,    66,   156,   113,    69,
    2934       63,    43,    43,    66,    82,   418,    69,    69,  1020,  1021,
    2935      692,    39,   983,    63,    32,   600,   109,   600,   265,   600,
    2936      105,    32,    51,   600,   265,   438,   201,     0,     1,   265,
    2937       43,   146,    43,   446,    39,   105,  1052,  1053,    49,   426,
    2938      427,   265,  1501,   113,   265,   265,   116,   117,    72,    39,
     2928     534,   116,    32,   620,   185,    43,    43,   513,   364,   185,
     2929     602,   874,   368,     0,   521,     0,   281,   749,   749,   349,
     2930      95,   185,    32,   602,   185,   185,   345,   646,  1040,    32,
     2931     186,   168,   169,    43,   185,   600,   692,    43,   749,    49,
     2932       0,   600,     0,   571,   492,    32,    49,    32,   496,     0,
     2933     600,   187,   156,    63,   129,   600,    66,   156,   113,    69,
     2934      63,    43,   756,    66,    96,   418,    69,    69,   349,  1021,
     2935      43,  1321,    32,   600,    32,  1052,  1053,   600,   265,    28,
     2936     105,    32,   600,    72,   265,   438,   201,     0,     1,   265,
     2937     122,   146,    43,   446,    39,   105,    96,    64,    49,   426,
     2938     427,   265,    63,   113,   265,   265,   116,   117,    82,   983,
    29392939     266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
    2940       39,   256,  1033,     0,     1,   261,   262,    11,    39,  1528,
    2941      155,  1398,    28,   733,  1419,   185,   146,   147,    44,    45,
    2942      109,   109,   132,   111,   147,   155,   156,   185,   185,   488,
    2943      160,    39,   603,    66,   209,    32,    69,   160,   609,   109,
    2944       82,   635,   636,   482,   109,   695,   111,   494,   132,    44,
    2945       45,   228,  1128,   905,   905,   185,   186,   132,   652,   109,
    2946      687,   111,    78,   186,   239,    95,   513,   410,   111,   111,
    2947      247,   201,    69,   266,   905,   718,   147,   718,   109,   209,
    2948      111,   718,  1469,   185,   185,  1496,   209,   107,   114,   160,
    2949     1501,   221,    64,   874,     0,   265,   271,    55,   221,   129,
    2950      110,   109,   116,   111,    49,   824,   116,   265,   265,   239,
    2951     1521,   131,   185,   589,   185,   186,   710,  1528,   132,   504,
    2952      115,   251,   824,  1452,  1225,   109,    32,   812,   251,   259,
    2953      406,   578,   307,   812,   264,   265,   266,   109,   209,    97,
    2954       72,   271,   812,   266,   251,   793,   251,   986,    85,   256,
    2955      221,   256,   602,   251,   251,   631,  1288,  1486,   900,  1488,
    2956       66,   396,   109,   418,   294,   924,  1472,   812,   113,   812,
    2957      345,   812,  1478,   251,  1275,   812,   113,   307,    44,    45,
    2958      251,   620,   112,   438,   131,   117,   625,   114,   221,   424,
    2959      116,   446,  1498,   323,   265,   430,   341,  1503,   328,    96,
    2960      116,    96,  1274,  1275,   480,   328,   132,   801,   681,   433,
    2961       72,   341,   116,   406,   433,   345,   110,   695,   251,   349,
    2962      350,    83,    84,   116,     1,   122,   371,   122,    72,   116,
    2963      110,   933,    76,     3,   364,   193,   130,   130,   368,    83,
    2964       84,   371,   112,   814,  1211,   132,   116,   932,   114,   111,
    2965      130,   426,   427,   932,   251,  1501,   906,   328,   216,  1040,
    2966       72,   999,   932,   482,   209,   109,   396,   111,   226,    90,
    2967       91,    83,    84,   117,   118,  1521,   406,    72,   349,    72,
    2968      110,   666,  1528,   406,   116,     0,   116,   480,    83,    84,
    2969       83,    84,   110,  1394,   424,    57,   426,   427,   130,   111,
    2970      430,   951,   526,   433,   125,   126,   745,   526,   786,  1441,
    2971      464,   418,   130,   418,   109,   221,  1448,     3,   111,   494,
    2972       57,   112,  1394,     0,   454,   116,   271,   803,   109,  1049,
    2973      116,   438,   808,   438,   116,   406,   294,   116,   513,   446,
    2974      967,   446,   472,   131,   106,   251,   132,   109,   130,   294,
    2975      480,   736,   482,   132,   484,  1386,  1387,   480,   488,   981,
    2976      128,   484,   307,   131,   494,   824,   590,  1499,  1127,   106,
    2977      116,   590,   109,   941,   824,   482,   506,   484,   508,   484,
    2978      525,   511,   490,   513,   514,   863,   132,   484,   110,   110,
    2979      647,   521,   110,   116,   116,   525,   526,  1099,   116,    70,
    2980      656,   109,    73,   578,    72,    76,   484,    78,   111,   132,
    2981      113,   687,   464,   484,    85,    83,    84,   488,   155,   654,
    2982      896,   109,   109,   116,   111,     3,   681,   130,   906,   109,
    2983     1211,   111,    10,    11,    12,    13,    14,  1008,  1009,   132,
    2984      570,   571,   109,   111,   350,   620,   116,   110,   578,   112,
    2985      625,   484,   707,   116,   109,   111,   218,   113,  1085,   589,
    2986      590,    39,   132,  1090,   594,   904,   109,  1117,   131,   132,
    2987      600,   109,   602,   951,   130,   252,   110,   116,   937,   110,
    2988       72,   218,    74,    75,   112,   443,   116,   484,   116,    67,
    2989      620,    83,    84,   132,   687,   625,   604,   627,   116,   116,
    2990      608,   631,   132,   110,   634,   635,   636,  1288,   986,   454,
    2991      272,   469,   590,   110,   132,   132,   670,   279,   861,   111,
    2992      116,   629,   652,   110,   654,   633,   745,  1177,  1178,   600,
    2993      112,   602,    72,   132,   110,   272,   132,   109,   881,   111,
    2994      116,   212,   279,    83,    84,   117,   118,   506,   506,   508,
    2995      109,   110,   511,   511,   684,   514,   514,   687,   109,  1037,
    2996      999,   506,   109,   508,   111,   109,   511,   473,  1288,   514,
    2997      117,   118,    88,    89,   681,   109,   681,   111,   484,   943,
    2998      710,   711,   712,   117,   118,   809,   348,   115,   718,   719,
    2999      809,     4,     5,     6,     7,     8,     9,   112,   905,   744,
    3000      707,   116,   707,   365,   905,   109,   117,   369,   279,   905,
    3001      867,   348,   123,   124,   744,   745,   687,   110,   670,   749,
    3002      750,   905,   112,   116,   905,   905,   116,   110,   365,    64,
     2940     116,   256,   122,     0,     1,   261,   262,    44,    45,    78,
     2941     155,    51,    39,   733,   130,   185,   146,   147,    44,    45,
     2942    1020,  1021,   109,   132,   147,   155,   156,   185,   185,  1398,
     2943     160,  1128,   603,    66,   209,    32,    69,   160,   609,  1033,
     2944      39,   635,   636,   482,   109,   695,   111,   494,   718,  1419,
     2945     110,   132,    82,   905,   905,   185,   186,   132,   652,   185,
     2946     687,   112,   109,   186,   239,   116,   513,   410,   111,   109,
     2947     130,   201,    69,   266,   905,   718,   147,    82,   115,   209,
     2948     718,   111,   109,   185,   111,  1496,   209,   488,   114,   160,
     2949    1501,   221,   185,   874,     0,   265,   271,    55,   221,   107,
     2950    1469,   251,   116,   109,    49,   110,    39,   265,   265,   239,
     2951    1521,    11,   824,   589,   185,   186,   710,  1528,   132,   504,
     2952      39,   251,   490,   131,   900,   824,    32,   812,   251,   259,
     2953     406,   578,   307,   812,   264,   265,   266,    72,   209,    97,
     2954      39,   271,   812,   266,   251,   793,   251,   812,   294,   256,
     2955     221,   256,   602,  1225,   109,   631,  1288,    44,    45,    85,
     2956      66,   396,   109,   418,   294,   812,    90,    91,   113,   812,
     2957     345,   251,   986,   251,   812,   112,   109,   307,   111,  1501,
     2958     251,   620,   117,   438,   131,   924,   625,   113,   221,   424,
     2959     109,   446,   111,   323,   265,   430,   341,   228,   328,  1521,
     2960     114,   125,   126,  1275,   480,   328,  1528,   801,   681,   433,
     2961     109,   341,   111,   406,   433,   345,   247,   695,   251,   349,
     2962     350,   933,  1501,   111,     1,   113,   371,   114,  1211,   111,
     2963     110,   113,   116,    72,   364,   193,   604,   116,   368,   116,
     2964     608,   371,   130,   814,    83,    84,   130,   932,   130,  1528,
     2965     130,   426,   427,   932,   251,   132,   906,   328,   216,  1040,
     2966       3,   629,   999,   482,   209,   633,   396,   932,   226,   109,
     2967     116,   111,   111,    72,  1274,  1275,   406,   109,   349,   111,
     2968     426,   427,     3,   406,    83,    84,   132,   480,   116,    10,
     2969      11,    12,    13,    14,   424,    57,   426,   427,     3,  1472,
     2970     430,   951,   526,   433,   132,  1478,   745,   526,   786,  1441,
     2971     464,   418,   111,   418,   110,   221,  1448,   110,    39,   494,
     2972      57,   116,  1394,   116,   454,  1498,   271,   803,   116,  1049,
     2973    1503,   438,   808,   438,   130,   406,   294,   132,   513,   446,
     2974     967,   446,   472,   116,   106,   251,    67,   109,     0,   294,
     2975     480,   736,   482,     0,   484,   981,   116,   480,   488,   132,
     2976     506,   484,   307,   109,   494,   511,   590,  1499,   514,   106,
     2977     130,   590,   109,   941,   824,   482,   506,   484,   508,   484,
     2978     525,   511,   131,   513,   514,   863,    72,  1099,  1127,   109,
     2979     647,   521,  1386,  1387,  1394,   525,   526,    83,    84,    70,
     2980     656,   110,    73,   578,   484,    76,   484,    78,   116,   110,
     2981     110,   687,   109,   484,    85,   116,   116,   488,   155,   654,
     2982     896,   567,   109,   824,   132,   111,   681,   109,   906,   111,
     2983    1211,     4,     5,     6,     7,     8,     9,  1008,  1009,   128,
     2984     570,   571,   131,    72,   350,   620,   116,    76,   578,   109,
     2985     625,   484,   707,   116,    83,    84,   218,   110,  1085,   589,
     2986     590,   116,   132,  1090,   594,   904,   109,  1117,   116,   132,
     2987     600,   109,   602,   951,   109,   252,   116,   132,   846,  1452,
     2988     109,   218,   111,   116,   132,   443,   112,   484,   117,   118,
     2989     620,    72,   132,   110,   687,   625,    69,   627,    71,   132,
     2990     110,   631,    83,    84,   634,   635,   636,  1288,   986,   454,
     2991     272,   469,   590,  1486,   110,  1488,   670,   279,   861,   110,
     2992     116,    72,   652,   116,   654,   116,   745,  1177,  1178,   600,
     2993     111,   602,    83,    84,   110,   272,   937,   109,   881,   132,
     2994      72,   212,   279,   110,   110,   112,   109,   110,   506,   116,
     2995     116,    83,    84,   511,   684,   110,   514,   687,   109,  1037,
     2996     999,   506,   115,   508,   131,   132,   511,   473,  1288,   514,
     2997     938,   109,   110,   111,   681,   109,   681,   111,   484,   943,
     2998     710,   711,   712,   117,   118,   809,   348,   112,   718,   719,
     2999     809,   116,   109,    10,    11,    12,    13,    14,   905,   744,
     3000     707,  1115,   707,   365,   905,  1119,   117,   369,   279,   905,
     3001     867,   348,   123,   124,   744,   745,   687,   110,   132,   749,
     3002     750,   905,    39,   116,   905,   905,    64,   110,   365,   132,
    30033003     110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
    3004      119,   120,  1362,   116,   110,   799,  1122,   718,   719,   110,
    3005      116,  1305,   109,  1505,  1505,   116,    69,   874,    71,   813,
    3006     1441,  1115,   110,   793,   110,  1119,   110,  1448,   116,   109,
    3007      116,   801,   116,   803,  1505,   805,    92,    93,   808,   809,
     3004     119,   120,  1362,   116,    49,   799,  1122,   718,   719,   110,
     3005      67,  1305,   109,  1505,  1505,   116,   110,   109,    63,   813,
     3006    1441,    66,   116,   793,    69,   112,   110,  1448,   109,   116,
     3007     111,   801,   116,   803,  1505,   805,   117,   118,   808,   809,
    30083008    1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
    3009      467,   115,   116,   116,   824,   432,   110,    83,    84,  1177,
    3010     1178,    72,   116,    74,    75,   132,   109,  1146,   111,   110,
    3011      114,   669,    83,    84,   907,   116,   622,    72,  1499,   132,
    3012      678,    76,   110,   111,   682,  1445,   132,  1447,    83,    84,
    3013     1115,   809,  1382,   114,  1119,  1120,   110,   789,   846,   684,
    3014      110,   812,   116,   114,   874,   132,   116,   799,  1398,   114,
    3015      109,   528,   111,   824,   109,   109,   533,   111,   903,    58,
    3016       59,   813,   117,   118,   115,   116,   896,   874,   943,   874,
    3017      109,   442,   111,   903,   904,   905,   109,   907,  1035,    72,
    3018     1500,    74,    75,   109,   294,   111,  1225,    44,    45,   919,
    3019       83,    84,   698,   109,   110,   111,   874,   904,    82,     0,
    3020        1,  1020,   932,   933,   109,   582,   712,   937,   109,  1085,
    3021      111,   118,   942,   943,  1090,   109,   109,   111,  1468,  1469,
    3022      942,   114,   109,   910,   999,   912,  1043,   112,    29,    30,
    3023      938,    32,   552,   553,   905,    82,   907,   967,   109,   110,
    3024      111,   874,    43,   556,   557,   558,   559,   127,    49,    72,
    3025     1235,   128,   589,    76,  1481,    94,    57,   554,   555,   621,
    3026       83,    84,    63,  1017,  1018,    66,   937,   131,    69,   999,
    3027      560,   561,  1107,   111,   109,   637,   653,   874,   655,   109,
    3028      112,    82,    83,   112,   621,   112,   109,   112,   110,   651,
    3029     1020,  1021,  1085,   110,   117,   118,   110,  1090,   110,   805,
    3030      637,   110,   110,  1530,  1382,   106,   109,   111,   109,   942,
    3031     1040,   109,   110,   111,   651,   116,   426,   427,   114,   116,
    3032     1398,  1075,  1076,   109,   110,   111,   131,  1146,   705,    58,
    3033       59,    60,   109,  1040,   114,  1040,    72,  1322,    74,    75,
    3034      898,  1326,  1248,  1249,  1250,   942,   147,    83,    84,   114,
    3035     1080,   112,   110,   110,   155,  1085,   112,   112,   112,   160,
    3036     1090,   112,  1040,   130,   130,  1017,  1018,   130,   874,  1099,
    3037      732,   116,    29,   109,   919,   110,   110,  1107,   114,   112,
    3038      110,   112,   114,   130,   185,   186,   284,   115,   115,   115,
    3039     1468,  1469,  1122,   116,  1211,   732,   506,   109,   116,   110,
    3040      201,   511,   110,   110,   514,   110,   110,  1040,   209,   307,
    3041      308,   132,   110,   116,  1085,   110,  1146,   218,   110,  1090,
    3042      221,   110,    66,  1075,  1076,   110,   110,   228,   110,   110,
    3043      110,    75,   110,    72,   110,    74,    75,    76,  1423,  1146,
    3044      110,   110,   243,  1040,    83,    84,   247,   345,   110,   115,
    3045      251,   252,    29,   116,   131,  1274,   110,   567,  1188,  1189,
    3046      110,   732,  1207,   130,   265,   266,   112,  1189,   110,  1223,
    3047      109,   272,     1,   117,    85,    86,    87,  1207,   279,   112,
    3048      110,  1211,   116,   381,   110,   130,   109,  1304,   116,   114,
    3049      112,   110,   110,  1051,   110,  1225,  1002,   112,   109,  1229,
    3050      111,  1255,   113,   114,  1211,   110,  1211,  1229,   116,  1263,
    3051     1264,  1265,   116,   116,    66,   110,   160,   110,  1225,   109,
    3052       49,     4,     5,     6,     7,     8,     9,   328,   112,   109,
    3053       82,   109,   130,  1211,  1040,  1080,   109,   109,   112,  1356,
    3054      132,   128,  1359,  1378,  1274,  1275,   115,   348,   349,    49,
    3055       33,  1515,   110,  1283,   110,  1188,  1189,   110,  1288,   896,
    3056      115,   115,   112,    63,   365,   117,    66,   114,   369,    69,
    3057      132,  1223,   110,  1327,   116,   112,   105,   221,  1211,   380,
    3058      957,  1288,   112,  1288,   113,  1402,    69,   110,    71,   110,
    3059     1407,  1321,  1189,   110,   112,   396,  1229,   112,  1505,  1321,
    3060      112,   110,   979,  1255,  1505,   406,   983,   112,   160,  1505,
    3061     1288,  1263,  1264,  1265,  1211,   259,   112,   146,  1435,   112,
    3062      264,  1505,    47,   424,  1505,  1505,   155,   130,   132,   430,
    3063     1506,   432,  1229,   132,  1505,   279,     4,     5,     6,     7,
    3064        8,     9,   132,   132,   132,   115,  1481,   147,  1378,   110,
    3065     1283,   549,   550,   551,  1530,  1288,  1033,   115,   110,   115,
    3066      160,   112,   112,   112,  1394,   112,   467,   112,   112,   221,
    3067      110,   472,   110,   112,    60,  1327,   205,   112,   109,   480,
    3068      209,   109,  1188,   484,   110,   109,   186,   488,  1321,  1419,
    3069      491,  1288,   493,     0,     1,   110,   114,  1419,   109,   132,
    3070      112,    69,  1519,    71,   112,  1211,   350,   259,  1525,   209,
    3071      239,  1441,   264,  1506,   110,   112,   110,    96,  1448,  1536,
    3072     1450,   221,  1452,  1540,  1321,    32,    96,   528,   109,   109,
    3073      132,   115,   533,   110,  1441,  1505,  1441,  1530,   110,  1297,
    3074     1515,  1448,   271,  1448,   110,   274,   110,  1505,  1505,   116,
    3075       42,  1481,   130,   110,   110,    96,  1486,   132,  1488,    66,
    3076       96,   132,    69,  1441,   110,   294,   110,   132,   110,  1499,
    3077     1448,   132,   132,   110,   112,  1505,  1506,  1283,   307,   112,
    3078      115,   582,  1288,  1506,   132,  1515,  1419,   431,   589,   109,
    3079      115,   115,  1499,   132,  1499,   110,   110,   110,   350,   600,
    3080     1530,   602,   132,  1056,   448,   110,   565,  1530,  1441,   562,
    3081      977,   563,   341,  1211,   564,  1448,   345,   566,  1469,  1540,
    3082      621,  1499,  1419,  1364,  1298,  1120,  1326,  1448,   328,   473,
    3083      189,  1071,   684,   684,  1505,   364,   637,   196,  1090,   368,
    3084      912,   642,   371,   697,  1441,   920,   971,   867,   648,   156,
    3085      651,  1448,   653,   654,   655,   722,  1229,    72,   756,    74,
    3086       75,    76,   582,   939,   484,    66,  1499,   732,    83,    84,
    3087     1207,  1248,  1249,  1250,   570,    -1,   570,   570,    -1,   431,
    3088       -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,   670,    -1,
    3089      691,  1449,   693,  1451,   109,    -1,   697,   426,   427,    -1,
    3090       -1,    -1,  1499,    -1,   705,  1450,   406,  1452,    72,   268,
    3091       74,    75,    76,    -1,   221,    -1,   117,   718,   719,    83,
    3092       84,   473,    -1,    -1,    -1,   454,    -1,  1485,    -1,  1487,
    3093       -1,   732,    -1,    -1,    -1,  1441,    -1,    -1,   467,    -1,
     3009     467,    88,    89,   116,   824,   432,   110,    83,    84,  1177,
     3010    1178,    72,   116,    74,    75,    76,   112,  1146,   132,   110,
     3011     116,   669,    83,    84,   907,   116,   622,   112,  1499,   132,
     3012     678,   116,   114,   109,   682,  1445,   114,  1447,   114,   114,
     3013    1115,   809,  1382,   109,  1119,  1120,    82,   110,   109,   684,
     3014     111,   812,   147,   116,   874,   109,   117,   118,  1398,   109,
     3015     109,   528,   111,   824,   112,   160,   533,    82,   903,   130,
     3016       4,     5,     6,     7,     8,     9,   896,   874,   943,   874,
     3017     110,   442,   127,   903,   904,   905,   116,   907,  1035,   118,
     3018    1500,   186,    72,   128,    74,    75,  1225,    94,   109,   919,
     3019     111,   111,   698,    83,    84,   131,   874,   904,   109,     0,
     3020       1,  1020,   932,   933,   209,   582,   712,   937,   109,  1085,
     3021     111,   110,   942,   943,  1090,   109,   221,   116,  1468,  1469,
     3022     942,   111,    92,    93,   999,    69,   112,    71,    29,    30,
     3023     109,    32,   111,   109,   905,   111,   907,   967,   117,   118,
     3024     112,   874,    43,   556,   557,   558,   559,   109,    49,   111,
     3025    1235,   112,   589,   670,  1481,   109,    57,   111,   910,   621,
     3026     912,   110,    63,  1017,  1018,    66,   937,   110,    69,   999,
     3027     115,   116,  1107,   110,   111,   637,   653,   874,   655,    58,
     3028      59,    82,    83,    72,   621,    74,    75,   110,   132,   651,
     3029    1020,  1021,  1085,   110,    83,    84,   109,  1090,   110,   805,
     3030     637,   115,   116,  1530,  1382,   106,   110,    72,   109,   942,
     3031    1040,    76,    44,    45,   651,   116,   552,   553,    83,    84,
     3032    1398,  1075,  1076,   328,   506,   114,   508,  1146,   705,   511,
     3033     554,   555,   514,  1040,   112,  1040,    72,  1322,    74,    75,
     3034     898,  1326,   560,   561,   109,   942,   147,    83,    84,   111,
     3035    1080,   114,   117,   118,   155,  1085,   109,   110,   111,   160,
     3036    1090,   116,  1040,   109,   110,   111,   114,    72,   874,  1099,
     3037     732,    76,   789,   131,   919,   114,   109,  1107,    83,    84,
     3038     110,   112,   799,   110,   185,   186,    72,   112,    74,    75,
     3039    1468,  1469,  1122,   112,   116,   732,   813,    83,    84,   112,
     3040     201,   406,   112,    29,   109,   112,   130,  1040,   209,   109,
     3041     110,   111,   117,   118,  1085,   130,  1146,   218,   130,  1090,
     3042     221,   110,    66,   109,    58,    59,    60,   228,   114,   110,
     3043     114,    75,  1248,  1249,  1250,   112,   115,   110,  1423,  1146,
     3044     115,   115,   243,  1040,  1190,  1191,   247,  1193,   116,   109,
     3045     251,   252,   110,   110,  1200,  1274,  1202,   116,  1188,  1189,
     3046     130,   732,  1207,   132,   265,   266,   116,  1189,   110,  1223,
     3047     110,   272,     1,   117,   110,   110,     3,  1207,   279,   110,
     3048     110,  1211,   110,    10,    11,    12,    13,    14,   110,   110,
     3049     110,   110,   110,  1051,   110,  1225,  1002,   110,   110,  1229,
     3050     110,  1255,   110,    29,  1211,   130,  1211,  1229,   115,  1263,
     3051    1264,  1265,    39,   110,    66,   116,   160,   131,  1225,   112,
     3052      49,     4,     5,     6,     7,     8,     9,   328,   112,   110,
     3053      82,   110,   110,  1211,  1040,  1080,   116,   109,   130,   116,
     3054      67,   114,   112,  1378,  1274,  1275,   110,   348,   349,   110,
     3055      33,  1515,   110,  1283,   116,  1188,  1189,   112,  1288,   896,
     3056     110,   112,   116,   110,   365,   117,   284,   116,   369,   110,
     3057     109,   109,   109,  1327,   109,   109,   105,   221,  1211,   380,
     3058     957,  1288,   130,  1288,   113,   115,    69,   112,    71,   307,
     3059     308,  1321,  1189,   110,   110,   396,  1229,   874,  1505,  1321,
     3060    1017,  1018,   979,   115,  1505,   406,   983,   110,   160,  1505,
     3061    1288,   132,  1358,   128,  1211,   259,   115,   146,   114,   112,
     3062     264,  1505,   132,   424,  1505,  1505,   155,   345,   110,   430,
     3063    1506,   432,  1229,   112,  1505,   279,   116,   112,   110,   110,
     3064      72,   110,    74,    75,    76,   112,  1481,   112,  1378,   112,
     3065    1283,    83,    84,   110,  1530,  1288,  1033,   112,  1075,  1076,
     3066     112,   112,    47,   381,  1394,   115,   467,   110,   132,   221,
     3067     132,   472,    85,    86,    87,   115,   205,   109,   132,   480,
     3068     209,   130,  1188,   484,   132,   117,   118,   488,  1321,  1419,
     3069     491,  1288,   493,     0,     1,   132,   109,  1419,   111,   110,
     3070     113,   114,    85,    86,    87,  1211,   350,   259,   115,   112,
     3071     239,  1441,   264,  1506,   112,   112,   112,   112,  1448,   112,
     3072    1450,   110,  1452,   110,  1321,    32,   109,   528,   111,   109,
     3073     113,   114,   533,   112,  1441,  1505,  1441,  1530,   112,  1297,
     3074    1515,  1448,   271,  1448,   109,   274,   109,  1505,  1505,    60,
     3075     110,  1481,   110,   114,   109,   132,  1486,   110,  1488,    66,
     3076     112,   112,    69,  1441,   112,   294,  1043,   110,    96,  1499,
     3077    1448,    96,   109,   109,   115,  1505,  1506,  1283,   307,   110,
     3078     110,   582,  1288,  1506,   110,  1515,  1419,   431,   589,   110,
     3079     132,    42,  1499,   116,  1499,   130,   110,   110,   350,   600,
     3080    1530,   602,    96,   132,   448,   132,    96,  1530,  1441,   110,
     3081     132,   110,   341,   132,   132,  1448,   345,   110,   110,   115,
     3082     621,  1499,  1419,   112,   112,   109,   132,   132,   115,   473,
     3083     189,   549,   550,   551,  1505,   364,   637,   196,  1255,   368,
     3084     115,   642,   371,   110,  1441,   110,  1263,  1264,  1265,   156,
     3085     651,  1448,   653,   654,   655,   132,   110,    72,   110,    74,
     3086      75,    76,  1056,   666,   562,    66,  1499,   563,    83,    84,
     3087    1207,  1248,  1249,  1250,   564,   566,   977,   565,  1211,   431,
     3088    1469,  1364,  1540,  1298,  1326,  1448,   687,  1071,  1120,   684,
     3089     691,  1449,   693,  1451,   109,  1090,   697,   426,   427,   684,
     3090     912,   697,  1499,   971,   705,  1450,   582,  1452,   648,   268,
     3091    1327,   464,   920,   867,   221,   722,   117,   718,   719,   939,
     3092      -1,   473,  1229,   732,   484,   454,    -1,  1485,    -1,  1487,
     3093      -1,   732,   570,   570,  1211,  1441,    -1,   570,   467,    -1,
    30943094      -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
    3095      594,    10,    11,    12,    13,    14,    -1,    -1,    72,   160,
     3095     594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,   160,
    30963096      74,    75,    76,   492,   323,   494,    -1,   496,    -1,    83,
    30973097      84,  1529,   331,  1531,    39,   334,    -1,   506,   622,   508,
    3098       39,    -1,   511,   627,   513,   514,  1544,  1545,    72,    -1,
    3099       74,    75,    76,  1499,    -1,   109,   525,   111,    -1,    83,
    3100       84,    -1,    67,   117,   118,    -1,    -1,   789,    67,  1386,
    3101     1387,   812,    -1,    -1,    -1,  1377,   130,   799,    -1,    -1,
    3102      221,    -1,    -1,   824,    -1,   109,    72,   111,    74,    75,
    3103       76,   813,    30,   117,   118,    -1,    -1,    83,    84,   398,
    3104     1377,    -1,   594,   402,   109,    -1,   111,  1424,    -1,   578,
     3098      -1,     3,   511,   627,   513,   514,  1544,  1545,    10,    11,
     3099      12,    13,    14,  1499,    -1,   109,   525,   111,    -1,    -1,
     3100      -1,    -1,    67,   117,   118,    -1,    -1,    -1,    -1,  1386,
     3101    1387,   812,    -1,    -1,    -1,  1377,    -1,    39,    -1,    -1,
     3102     221,    -1,    -1,   824,    -1,    -1,    -1,  1304,    -1,    -1,
     3103      -1,    -1,    30,    10,    11,    12,    13,    14,   756,   398,
     3104    1377,    -1,   594,   402,   109,    67,   111,  1424,    -1,   578,
    31053105      -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
    3106      589,    -1,    -1,   264,    -1,    -1,   867,    -1,   712,    -1,
    3107      622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,    -1,
    3108     1190,  1191,    -1,  1193,    82,    83,    -1,    -1,   732,    -1,
    3109     1200,   620,  1202,    -1,    -1,   896,   625,    -1,    -1,    -1,
    3110       -1,   999,   631,    -1,   905,  1482,   907,    -1,    -1,    -1,
    3111       -1,    -1,    -1,   914,  1491,    10,    11,    12,    13,    14,
    3112      479,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
    3113       10,    11,    12,    13,    14,     0,   937,    -1,    -1,    -1,
    3114       -1,    -1,  1040,     3,    39,    -1,   698,    -1,    -1,   350,
    3115       10,    11,    12,    13,    14,   684,   957,    -1,    -1,    39,
     3106     589,    -1,    39,   264,    -1,    -1,   867,    -1,   712,    -1,
     3107     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,  1356,
     3108      -1,    -1,  1359,    -1,    82,    83,    -1,    -1,   732,    -1,
     3109      67,   620,    -1,    -1,    -1,   896,   625,    -1,    -1,    -1,
     3110      -1,    -1,   631,    -1,   905,  1482,   907,    72,    -1,    74,
     3111      75,    76,    -1,   914,  1491,    -1,    -1,   670,    83,    84,
     3112     479,    -1,    -1,    -1,    -1,  1402,   433,    -1,    -1,    -1,
     3113    1407,    -1,   109,    -1,   111,     0,   937,    -1,    -1,    -1,
     3114     117,   118,    -1,    -1,   109,    -1,   698,    -1,    -1,   350,
     3115      10,    11,    12,    13,    14,   684,   957,    -1,  1435,    -1,
    31163116     712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
    3117      971,    -1,    67,    -1,    -1,    -1,    -1,   484,   979,    39,
    3118       -1,    -1,   983,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3119        3,    -1,    -1,   722,    -1,     0,     1,    10,    11,    12,
    3120       13,    14,    -1,    -1,    69,    -1,    -1,    67,    -1,    -1,
    3121       -1,   570,   571,    -1,   109,   744,   111,    -1,    -1,   526,
    3122       -1,    -1,   117,   118,    -1,    -1,    39,    32,    -1,   109,
    3123      431,   111,  1033,    -1,    -1,  1017,  1018,   117,   118,    10,
    3124       11,    12,    13,    14,    49,   243,    -1,    -1,  1358,    85,
    3125       86,    87,    -1,   805,    67,    -1,    -1,    -1,    -1,    -1,
    3126       -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    39,    -1,
    3127     1071,    -1,   473,   109,   803,   111,    -1,   113,   114,   808,
    3128       -1,    -1,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
    3129       -1,   156,    -1,  1075,  1076,    -1,    67,    -1,   657,    -1,
    3130      105,    72,   661,    74,    75,    76,  1107,    -1,    -1,    -1,
    3131       -1,    -1,    83,    84,    97,    98,    99,   100,   101,   102,
    3132      103,   104,   105,   106,    -1,    -1,    -1,   634,   635,   636,
    3133       -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
    3134      111,    -1,   147,    83,    84,   652,   117,   118,   131,    -1,
    3135      155,   156,    72,    -1,    74,    75,    76,    -1,  1002,    -1,
    3136       -1,    -1,    -1,    83,    84,   230,    -1,   896,    -1,   109,
    3137       -1,   111,    -1,    -1,   903,    -1,    -1,   117,   118,    -1,
    3138       -1,   186,   380,  1184,    -1,    -1,   251,    -1,    -1,   109,
    3139      919,   256,    -1,   594,    -1,    -1,   201,   117,   118,   204,
     3117     971,    -1,    72,    -1,    74,    75,    76,   484,   979,    39,
     3118      -1,    -1,   983,    83,    84,    -1,    72,    -1,    74,    75,
     3119      76,    -1,    -1,   722,    -1,     0,     1,    83,    84,    -1,
     3120      -1,    -1,    -1,    -1,    69,    -1,    -1,    67,    -1,   109,
     3121      -1,   570,   571,    -1,    -1,   744,    -1,   117,   118,   526,
     3122      -1,    -1,    72,    -1,    74,    75,    76,    32,    -1,    -1,
     3123     431,    -1,  1033,    83,    84,    -1,   789,    -1,    -1,    -1,
     3124      -1,    -1,  1519,    -1,    49,   243,   799,    -1,  1525,   109,
     3125      -1,   111,    -1,   805,    -1,    -1,    -1,   117,   118,  1536,
     3126     813,    -1,    -1,  1540,    69,    -1,    -1,    -1,    -1,    -1,
     3127    1071,    -1,   473,    -1,   803,    -1,    -1,    -1,    -1,   808,
     3128      -1,   999,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
     3129      -1,   156,    -1,    72,    -1,    74,    75,    76,   657,    -1,
     3130     105,    -1,   661,    -1,    83,    84,  1107,    -1,    -1,    -1,
     3131      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
     3132      -1,    -1,  1040,    -1,    -1,    -1,    -1,   634,   635,   636,
     3133     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
     3134      39,    -1,   147,    -1,    -1,   652,    -1,    -1,    -1,    -1,
     3135     155,   156,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
     3136      -1,    -1,    -1,    -1,    -1,   230,    -1,   896,    67,    -1,
     3137      -1,    -1,    -1,    72,   903,    74,    75,    76,    -1,    -1,
     3138      -1,   186,   380,  1184,    83,    84,   251,    -1,    -1,    -1,
     3139     919,   256,    -1,   594,    -1,    -1,   201,    -1,    -1,   204,
    31403140     205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
    3141       -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
     3141     109,    -1,   941,   942,   943,    -1,    -1,    -1,   117,   118,
    31423142      -1,   622,    -1,    -1,    -1,   230,   627,    -1,    -1,   234,
    31433143      -1,   236,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
    31443144     245,    -1,    26,    27,    28,    -1,   251,  1248,  1249,  1250,
    3145     1002,   256,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3146       -1,   266,    -1,    -1,    83,    84,    -1,    -1,    -1,   274,
    3147      999,    -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,    -1,
    3148       -1,  1263,  1264,  1265,    -1,    -1,   351,    -1,    -1,    -1,
    3149      109,    -1,   111,   491,   801,   493,    -1,   698,   117,   118,
    3150       -1,    -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3151       -1,   712,    -1,    -1,    98,    -1,   100,    -1,    10,    11,
    3152       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3153       22,    23,    24,    25,    26,    27,   341,    -1,    -1,    -1,
    3154      345,   125,    -1,    -1,  1188,  1327,   351,    39,    -1,    -1,
    3155       -1,  1080,   911,   418,    -1,    -1,    -1,    -1,    -1,   364,
     3145    1002,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3146      -1,   266,    -1,    -1,  1017,  1018,    -1,    -1,    -1,   274,
     3147     999,    97,    98,    99,   100,   101,   102,   103,   104,   105,
     3148     106,    10,    11,    12,    13,    14,   351,    72,    -1,    74,
     3149      75,    76,    -1,   491,   801,   493,    -1,   698,    83,    84,
     3150      -1,    -1,   809,    -1,    -1,   131,    -1,    -1,    -1,    -1,
     3151      39,   712,    -1,    -1,    98,    -1,   100,    -1,    -1,    -1,
     3152      -1,    -1,  1075,  1076,   109,    -1,   111,    -1,    -1,    -1,
     3153      -1,    -1,   117,   118,    -1,    -1,   341,    -1,    67,    -1,
     3154     345,   125,    -1,    72,  1188,    -1,   351,    76,    -1,    -1,
     3155      -1,  1080,   911,   418,    83,    84,    -1,    -1,    -1,   364,
    31563156      -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
    3157       -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
    3158       -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
     3157      -1,    -1,    -1,   438,    -1,    -1,  1377,  1378,    -1,    -1,
     3158     109,   446,    26,    27,    28,  1386,  1387,    -1,   117,   118,
    31593159      -1,    -1,    -1,  1122,    -1,    -1,    -1,   181,    -1,   464,
    31603160      -1,    -1,    -1,    -1,   805,   189,    -1,   191,   192,    -1,
     
    31653165      -1,    -1,    -1,    -1,    98,    -1,   100,    -1,    -1,   464,
    31663166      -1,   526,   467,    -1,    32,    -1,    -1,    -1,    -1,    -1,
    3167       -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
    3168     1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
     3167    1223,    -1,    -1,    -1,    -1,    -1,    -1,   482,  1207,   484,
     3168    1481,  1482,    -1,    -1,   268,    -1,    -1,   492,    -1,    -1,
    31693169    1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
    3170     1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
    3171       -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -1,    -1,
     3170    1229,    69,  1255,    -1,  1505,  1506,    -1,    -1,    -1,    -1,
     3171    1263,  1264,  1265,  1020,  1021,    -1,    -1,    -1,    -1,    -1,
    31723172     525,   526,    -1,    -1,  1083,   590,    -1,    -1,    -1,  1530,
    31733173      -1,  1283,    -1,  1040,    -1,    -1,    -1,   181,    -1,    -1,
     
    31753175      -1,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,    -1,
    31763176      -1,    -1,    -1,    -1,  1123,    -1,   571,    -1,    -1,   634,
    3177      635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
     3177     635,   636,    -1,    -1,  1327,    -1,    -1,    -1,    10,    11,
    31783178      12,    13,    14,    -1,   589,   590,    -1,   652,   156,    -1,
    31793179      -1,    -1,  1321,    -1,    -1,    -1,    -1,   602,    -1,    -1,
     
    32103210      -1,    -1,   907,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32113211      -1,    -1,  1419,    -1,   482,    -1,   484,    -1,    -1,    -1,
    3212       -1,    -1,    10,    11,    12,    13,    14,    -1,   933,    -1,
     3212      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   933,    -1,
    32133213     574,   575,    -1,    -1,  1441,    -1,   941,   942,    -1,    -1,
    32143214      -1,  1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3215       -1,    39,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
     3215      -1,    -1,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
    32163216      -1,   251,   606,   607,    -1,   609,   256,   611,   612,    -1,
    3217      754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    67,
    3218       -1,    -1,    -1,    -1,    72,    -1,  1184,    -1,    76,    -1,
    3219       -1,    -1,  1499,    -1,   999,    83,    84,    -1,    -1,    -1,
     3217     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    -1,
     3218      -1,    -1,    -1,    -1,    -1,    -1,  1184,    -1,    -1,    -1,
     3219      -1,    -1,  1499,    -1,   999,    -1,    -1,    -1,    -1,    -1,
    32203220      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
    32213221    1075,  1076,  1017,  1018,    -1,  1020,  1021,    -1,    -1,    -1,
    3222       -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3223      118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
     3222      -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3223      -1,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
    32243224      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    32253225      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    32643264      84,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1017,
    32653265    1018,    -1,  1020,  1021,    -1,   745,    -1,    -1,    -1,    -1,
    3266       -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    32673267      -1,    -1,  1040,   117,   118,    -1,   380,    -1,    -1,    -1,
    32683268      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     
    32943294      -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
    32953295    1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,
    3296       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3296      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
     3297      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    32983298      -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
    3299       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
     3299      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
    33003300      -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3301       -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
     3301      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    67,
    33023302      -1,    49,    -1,    -1,    -1,    -1,  1394,    -1,   681,   357,
    33033303     358,    -1,    37,    38,    39,    40,    -1,    -1,    66,    -1,
     
    41044104     260,   272,   165,   134,   111,   274,   130,   116,   372,   278,
    41054105     111,   130,   282,    29,   210,   211,   272,   260,   139,   309,
    4106      139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
     4106     139,   311,   109,   349,   350,   109,   349,   350,   142,   350,
    41074107     174,   264,   110,   110,   110,   110,   112,   174,   208,   174,
    41084108     114,   250,   251,   112,   134,   109,   130,   150,   252,   254,
     
    79887988    break;
    79897989
     7990  case 544:
     7991
     7992/* Line 1806 of yacc.c  */
     7993#line 2156 "parser.yy"
     7994    { delete (yyvsp[(3) - (5)].str); }
     7995    break;
     7996
    79907997  case 545:
    79917998
    79927999/* Line 1806 of yacc.c  */
    7993 #line 2160 "parser.yy"
     8000#line 2161 "parser.yy"
    79948001    { (yyval.decl) = 0; }
    79958002    break;
     
    79988005
    79998006/* Line 1806 of yacc.c  */
    8000 #line 2167 "parser.yy"
     8007#line 2168 "parser.yy"
    80018008    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80028009    break;
     
    80058012
    80068013/* Line 1806 of yacc.c  */
    8007 #line 2173 "parser.yy"
     8014#line 2174 "parser.yy"
    80088015    { (yyval.decl) = 0; }
    80098016    break;
    80108017
     8018  case 554:
     8019
     8020/* Line 1806 of yacc.c  */
     8021#line 2186 "parser.yy"
     8022    { delete (yyvsp[(3) - (4)].en); }
     8023    break;
     8024
    80118025  case 555:
    80128026
    80138027/* Line 1806 of yacc.c  */
    8014 #line 2188 "parser.yy"
     8028#line 2190 "parser.yy"
    80158029    { delete (yyvsp[(1) - (1)].tok); }
    80168030    break;
    80178031
    80188032  case 556:
    8019 
    8020 /* Line 1806 of yacc.c  */
    8021 #line 2189 "parser.yy"
    8022     { delete (yyvsp[(1) - (1)].decl); }
    8023     break;
    8024 
    8025   case 557:
    8026 
    8027 /* Line 1806 of yacc.c  */
    8028 #line 2190 "parser.yy"
    8029     { delete (yyvsp[(1) - (1)].decl); }
    8030     break;
    8031 
    8032   case 558:
    80338033
    80348034/* Line 1806 of yacc.c  */
     
    80378037    break;
    80388038
     8039  case 557:
     8040
     8041/* Line 1806 of yacc.c  */
     8042#line 2192 "parser.yy"
     8043    { delete (yyvsp[(1) - (1)].decl); }
     8044    break;
     8045
     8046  case 558:
     8047
     8048/* Line 1806 of yacc.c  */
     8049#line 2193 "parser.yy"
     8050    { delete (yyvsp[(1) - (1)].decl); }
     8051    break;
     8052
    80398053  case 559:
    80408054
    80418055/* Line 1806 of yacc.c  */
    8042 #line 2226 "parser.yy"
     8056#line 2228 "parser.yy"
    80438057    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80448058    break;
    80458059
    80468060  case 561:
    8047 
    8048 /* Line 1806 of yacc.c  */
    8049 #line 2229 "parser.yy"
    8050     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8051     break;
    8052 
    8053   case 562:
    80548061
    80558062/* Line 1806 of yacc.c  */
     
    80588065    break;
    80598066
     8067  case 562:
     8068
     8069/* Line 1806 of yacc.c  */
     8070#line 2233 "parser.yy"
     8071    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8072    break;
     8073
    80608074  case 563:
    80618075
    80628076/* Line 1806 of yacc.c  */
    8063 #line 2236 "parser.yy"
     8077#line 2238 "parser.yy"
    80648078    {
    80658079                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80718085
    80728086/* Line 1806 of yacc.c  */
    8073 #line 2241 "parser.yy"
     8087#line 2243 "parser.yy"
    80748088    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80758089    break;
     
    80788092
    80798093/* Line 1806 of yacc.c  */
    8080 #line 2246 "parser.yy"
     8094#line 2248 "parser.yy"
    80818095    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80828096    break;
     
    80858099
    80868100/* Line 1806 of yacc.c  */
    8087 #line 2248 "parser.yy"
     8101#line 2250 "parser.yy"
    80888102    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80898103    break;
     
    80928106
    80938107/* Line 1806 of yacc.c  */
    8094 #line 2250 "parser.yy"
     8108#line 2252 "parser.yy"
    80958109    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80968110    break;
     
    80998113
    81008114/* Line 1806 of yacc.c  */
    8101 #line 2255 "parser.yy"
     8115#line 2257 "parser.yy"
    81028116    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81038117    break;
    81048118
    81058119  case 569:
    8106 
    8107 /* Line 1806 of yacc.c  */
    8108 #line 2257 "parser.yy"
    8109     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8110     break;
    8111 
    8112   case 570:
    81138120
    81148121/* Line 1806 of yacc.c  */
     
    81178124    break;
    81188125
     8126  case 570:
     8127
     8128/* Line 1806 of yacc.c  */
     8129#line 2261 "parser.yy"
     8130    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8131    break;
     8132
    81198133  case 571:
    81208134
    81218135/* Line 1806 of yacc.c  */
    8122 #line 2261 "parser.yy"
     8136#line 2263 "parser.yy"
    81238137    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81248138    break;
     
    81278141
    81288142/* Line 1806 of yacc.c  */
    8129 #line 2266 "parser.yy"
     8143#line 2268 "parser.yy"
    81308144    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81318145    break;
     
    81348148
    81358149/* Line 1806 of yacc.c  */
    8136 #line 2268 "parser.yy"
     8150#line 2270 "parser.yy"
    81378151    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81388152    break;
     
    81418155
    81428156/* Line 1806 of yacc.c  */
    8143 #line 2277 "parser.yy"
     8157#line 2279 "parser.yy"
    81448158    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81458159    break;
     
    81488162
    81498163/* Line 1806 of yacc.c  */
    8150 #line 2280 "parser.yy"
     8164#line 2282 "parser.yy"
    81518165    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81528166    break;
     
    81558169
    81568170/* Line 1806 of yacc.c  */
    8157 #line 2285 "parser.yy"
     8171#line 2287 "parser.yy"
    81588172    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81598173    break;
     
    81628176
    81638177/* Line 1806 of yacc.c  */
    8164 #line 2287 "parser.yy"
     8178#line 2289 "parser.yy"
    81658179    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81668180    break;
     
    81698183
    81708184/* Line 1806 of yacc.c  */
    8171 #line 2289 "parser.yy"
     8185#line 2291 "parser.yy"
    81728186    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81738187    break;
     
    81768190
    81778191/* Line 1806 of yacc.c  */
    8178 #line 2294 "parser.yy"
     8192#line 2296 "parser.yy"
    81798193    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81808194    break;
     
    81838197
    81848198/* Line 1806 of yacc.c  */
    8185 #line 2296 "parser.yy"
     8199#line 2298 "parser.yy"
    81868200    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81878201    break;
     
    81908204
    81918205/* Line 1806 of yacc.c  */
    8192 #line 2298 "parser.yy"
     8206#line 2300 "parser.yy"
    81938207    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81948208    break;
    81958209
    81968210  case 583:
    8197 
    8198 /* Line 1806 of yacc.c  */
    8199 #line 2303 "parser.yy"
    8200     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8201     break;
    8202 
    8203   case 584:
    82048211
    82058212/* Line 1806 of yacc.c  */
     
    82088215    break;
    82098216
     8217  case 584:
     8218
     8219/* Line 1806 of yacc.c  */
     8220#line 2307 "parser.yy"
     8221    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8222    break;
     8223
    82108224  case 585:
    82118225
    82128226/* Line 1806 of yacc.c  */
    8213 #line 2307 "parser.yy"
     8227#line 2309 "parser.yy"
    82148228    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82158229    break;
     
    82188232
    82198233/* Line 1806 of yacc.c  */
    8220 #line 2322 "parser.yy"
     8234#line 2324 "parser.yy"
    82218235    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82228236    break;
     
    82258239
    82268240/* Line 1806 of yacc.c  */
    8227 #line 2324 "parser.yy"
     8241#line 2326 "parser.yy"
    82288242    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82298243    break;
     
    82328246
    82338247/* Line 1806 of yacc.c  */
    8234 #line 2326 "parser.yy"
     8248#line 2328 "parser.yy"
    82358249    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82368250    break;
     
    82398253
    82408254/* Line 1806 of yacc.c  */
    8241 #line 2331 "parser.yy"
     8255#line 2333 "parser.yy"
    82428256    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82438257    break;
     
    82468260
    82478261/* Line 1806 of yacc.c  */
    8248 #line 2333 "parser.yy"
     8262#line 2335 "parser.yy"
    82498263    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82508264    break;
     
    82538267
    82548268/* Line 1806 of yacc.c  */
    8255 #line 2335 "parser.yy"
     8269#line 2337 "parser.yy"
    82568270    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82578271    break;
    82588272
    82598273  case 595:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2340 "parser.yy"
    8263     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8264     break;
    8265 
    8266   case 596:
    82678274
    82688275/* Line 1806 of yacc.c  */
     
    82718278    break;
    82728279
     8280  case 596:
     8281
     8282/* Line 1806 of yacc.c  */
     8283#line 2344 "parser.yy"
     8284    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8285    break;
     8286
    82738287  case 597:
    82748288
    82758289/* Line 1806 of yacc.c  */
    8276 #line 2344 "parser.yy"
     8290#line 2346 "parser.yy"
    82778291    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82788292    break;
     
    82818295
    82828296/* Line 1806 of yacc.c  */
    8283 #line 2359 "parser.yy"
     8297#line 2361 "parser.yy"
    82848298    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82858299    break;
    82868300
    82878301  case 600:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2362 "parser.yy"
    8291     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8292     break;
    8293 
    8294   case 601:
    82958302
    82968303/* Line 1806 of yacc.c  */
     
    82998306    break;
    83008307
     8308  case 601:
     8309
     8310/* Line 1806 of yacc.c  */
     8311#line 2366 "parser.yy"
     8312    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8313    break;
     8314
    83018315  case 603:
    83028316
    83038317/* Line 1806 of yacc.c  */
    8304 #line 2370 "parser.yy"
     8318#line 2372 "parser.yy"
    83058319    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83068320    break;
     
    83098323
    83108324/* Line 1806 of yacc.c  */
    8311 #line 2375 "parser.yy"
     8325#line 2377 "parser.yy"
    83128326    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83138327    break;
     
    83168330
    83178331/* Line 1806 of yacc.c  */
    8318 #line 2377 "parser.yy"
     8332#line 2379 "parser.yy"
    83198333    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83208334    break;
     
    83238337
    83248338/* Line 1806 of yacc.c  */
    8325 #line 2379 "parser.yy"
     8339#line 2381 "parser.yy"
    83268340    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83278341    break;
     
    83308344
    83318345/* Line 1806 of yacc.c  */
    8332 #line 2384 "parser.yy"
     8346#line 2386 "parser.yy"
    83338347    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83348348    break;
    83358349
    83368350  case 608:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2386 "parser.yy"
    8340     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8341     break;
    8342 
    8343   case 609:
    83448351
    83458352/* Line 1806 of yacc.c  */
     
    83488355    break;
    83498356
     8357  case 609:
     8358
     8359/* Line 1806 of yacc.c  */
     8360#line 2390 "parser.yy"
     8361    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8362    break;
     8363
    83508364  case 610:
    83518365
    83528366/* Line 1806 of yacc.c  */
    8353 #line 2390 "parser.yy"
     8367#line 2392 "parser.yy"
    83548368    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83558369    break;
     
    83588372
    83598373/* Line 1806 of yacc.c  */
    8360 #line 2395 "parser.yy"
     8374#line 2397 "parser.yy"
    83618375    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83628376    break;
     
    83658379
    83668380/* Line 1806 of yacc.c  */
    8367 #line 2397 "parser.yy"
     8381#line 2399 "parser.yy"
    83688382    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83698383    break;
     
    83728386
    83738387/* Line 1806 of yacc.c  */
    8374 #line 2399 "parser.yy"
     8388#line 2401 "parser.yy"
    83758389    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83768390    break;
     
    83798393
    83808394/* Line 1806 of yacc.c  */
    8381 #line 2409 "parser.yy"
     8395#line 2411 "parser.yy"
    83828396    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83838397    break;
    83848398
    83858399  case 616:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2412 "parser.yy"
    8389     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8390     break;
    8391 
    8392   case 617:
    83938400
    83948401/* Line 1806 of yacc.c  */
     
    83978404    break;
    83988405
     8406  case 617:
     8407
     8408/* Line 1806 of yacc.c  */
     8409#line 2416 "parser.yy"
     8410    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8411    break;
     8412
    83998413  case 618:
    84008414
    84018415/* Line 1806 of yacc.c  */
    8402 #line 2419 "parser.yy"
     8416#line 2421 "parser.yy"
    84038417    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84048418    break;
     
    84078421
    84088422/* Line 1806 of yacc.c  */
    8409 #line 2421 "parser.yy"
     8423#line 2423 "parser.yy"
    84108424    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84118425    break;
     
    84148428
    84158429/* Line 1806 of yacc.c  */
    8416 #line 2423 "parser.yy"
     8430#line 2425 "parser.yy"
    84178431    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84188432    break;
     
    84218435
    84228436/* Line 1806 of yacc.c  */
    8423 #line 2428 "parser.yy"
     8437#line 2430 "parser.yy"
    84248438    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84258439    break;
    84268440
    84278441  case 622:
    8428 
    8429 /* Line 1806 of yacc.c  */
    8430 #line 2430 "parser.yy"
    8431     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8432     break;
    8433 
    8434   case 623:
    84358442
    84368443/* Line 1806 of yacc.c  */
     
    84398446    break;
    84408447
     8448  case 623:
     8449
     8450/* Line 1806 of yacc.c  */
     8451#line 2434 "parser.yy"
     8452    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8453    break;
     8454
    84418455  case 624:
    84428456
    84438457/* Line 1806 of yacc.c  */
    8444 #line 2434 "parser.yy"
     8458#line 2436 "parser.yy"
    84458459    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84468460    break;
     
    84498463
    84508464/* Line 1806 of yacc.c  */
    8451 #line 2439 "parser.yy"
     8465#line 2441 "parser.yy"
    84528466    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84538467    break;
     
    84568470
    84578471/* Line 1806 of yacc.c  */
    8458 #line 2441 "parser.yy"
     8472#line 2443 "parser.yy"
    84598473    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84608474    break;
     
    84638477
    84648478/* Line 1806 of yacc.c  */
    8465 #line 2443 "parser.yy"
     8479#line 2445 "parser.yy"
    84668480    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84678481    break;
     
    84708484
    84718485/* Line 1806 of yacc.c  */
    8472 #line 2474 "parser.yy"
     8486#line 2476 "parser.yy"
    84738487    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84748488    break;
    84758489
    84768490  case 630:
    8477 
    8478 /* Line 1806 of yacc.c  */
    8479 #line 2477 "parser.yy"
    8480     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8481     break;
    8482 
    8483   case 631:
    84848491
    84858492/* Line 1806 of yacc.c  */
     
    84888495    break;
    84898496
     8497  case 631:
     8498
     8499/* Line 1806 of yacc.c  */
     8500#line 2481 "parser.yy"
     8501    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8502    break;
     8503
    84908504  case 632:
    84918505
    84928506/* Line 1806 of yacc.c  */
    8493 #line 2484 "parser.yy"
     8507#line 2486 "parser.yy"
    84948508    {
    84958509                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85018515
    85028516/* Line 1806 of yacc.c  */
    8503 #line 2489 "parser.yy"
     8517#line 2491 "parser.yy"
    85048518    {
    85058519                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85118525
    85128526/* Line 1806 of yacc.c  */
    8513 #line 2497 "parser.yy"
     8527#line 2499 "parser.yy"
    85148528    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85158529    break;
     
    85188532
    85198533/* Line 1806 of yacc.c  */
    8520 #line 2499 "parser.yy"
     8534#line 2501 "parser.yy"
    85218535    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85228536    break;
     
    85258539
    85268540/* Line 1806 of yacc.c  */
    8527 #line 2501 "parser.yy"
     8541#line 2503 "parser.yy"
    85288542    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85298543    break;
     
    85328546
    85338547/* Line 1806 of yacc.c  */
    8534 #line 2506 "parser.yy"
     8548#line 2508 "parser.yy"
    85358549    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85368550    break;
     
    85398553
    85408554/* Line 1806 of yacc.c  */
    8541 #line 2508 "parser.yy"
     8555#line 2510 "parser.yy"
    85428556    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85438557    break;
     
    85468560
    85478561/* Line 1806 of yacc.c  */
    8548 #line 2513 "parser.yy"
     8562#line 2515 "parser.yy"
    85498563    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85508564    break;
     
    85538567
    85548568/* Line 1806 of yacc.c  */
    8555 #line 2515 "parser.yy"
     8569#line 2517 "parser.yy"
    85568570    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85578571    break;
    85588572
    85598573  case 642:
    8560 
    8561 /* Line 1806 of yacc.c  */
    8562 #line 2530 "parser.yy"
    8563     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8564     break;
    8565 
    8566   case 643:
    85678574
    85688575/* Line 1806 of yacc.c  */
     
    85718578    break;
    85728579
     8580  case 643:
     8581
     8582/* Line 1806 of yacc.c  */
     8583#line 2534 "parser.yy"
     8584    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8585    break;
     8586
    85738587  case 644:
    85748588
    85758589/* Line 1806 of yacc.c  */
    8576 #line 2537 "parser.yy"
     8590#line 2539 "parser.yy"
    85778591    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85788592    break;
     
    85818595
    85828596/* Line 1806 of yacc.c  */
    8583 #line 2539 "parser.yy"
     8597#line 2541 "parser.yy"
    85848598    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    85858599    break;
     
    85888602
    85898603/* Line 1806 of yacc.c  */
    8590 #line 2541 "parser.yy"
     8604#line 2543 "parser.yy"
    85918605    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85928606    break;
     
    85958609
    85968610/* Line 1806 of yacc.c  */
    8597 #line 2543 "parser.yy"
     8611#line 2545 "parser.yy"
    85988612    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85998613    break;
     
    86028616
    86038617/* Line 1806 of yacc.c  */
    8604 #line 2545 "parser.yy"
     8618#line 2547 "parser.yy"
    86058619    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86068620    break;
    86078621
    86088622  case 650:
    8609 
    8610 /* Line 1806 of yacc.c  */
    8611 #line 2551 "parser.yy"
    8612     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8613     break;
    8614 
    8615   case 651:
    86168623
    86178624/* Line 1806 of yacc.c  */
     
    86208627    break;
    86218628
     8629  case 651:
     8630
     8631/* Line 1806 of yacc.c  */
     8632#line 2555 "parser.yy"
     8633    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8634    break;
     8635
    86228636  case 652:
    86238637
    86248638/* Line 1806 of yacc.c  */
    8625 #line 2555 "parser.yy"
     8639#line 2557 "parser.yy"
    86268640    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86278641    break;
     
    86308644
    86318645/* Line 1806 of yacc.c  */
    8632 #line 2560 "parser.yy"
     8646#line 2562 "parser.yy"
    86338647    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    86348648    break;
     
    86378651
    86388652/* Line 1806 of yacc.c  */
    8639 #line 2562 "parser.yy"
     8653#line 2564 "parser.yy"
    86408654    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86418655    break;
     
    86448658
    86458659/* Line 1806 of yacc.c  */
    8646 #line 2564 "parser.yy"
     8660#line 2566 "parser.yy"
    86478661    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86488662    break;
     
    86518665
    86528666/* Line 1806 of yacc.c  */
    8653 #line 2570 "parser.yy"
     8667#line 2572 "parser.yy"
    86548668    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86558669    break;
     
    86588672
    86598673/* Line 1806 of yacc.c  */
    8660 #line 2572 "parser.yy"
     8674#line 2574 "parser.yy"
    86618675    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86628676    break;
     
    86658679
    86668680/* Line 1806 of yacc.c  */
    8667 #line 2578 "parser.yy"
     8681#line 2580 "parser.yy"
    86688682    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86698683    break;
     
    86728686
    86738687/* Line 1806 of yacc.c  */
    8674 #line 2580 "parser.yy"
     8688#line 2582 "parser.yy"
    86758689    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86768690    break;
     
    86798693
    86808694/* Line 1806 of yacc.c  */
    8681 #line 2582 "parser.yy"
     8695#line 2584 "parser.yy"
    86828696    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    86838697    break;
     
    86868700
    86878701/* Line 1806 of yacc.c  */
    8688 #line 2584 "parser.yy"
     8702#line 2586 "parser.yy"
    86898703    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    86908704    break;
    86918705
    86928706  case 664:
    8693 
    8694 /* Line 1806 of yacc.c  */
    8695 #line 2599 "parser.yy"
    8696     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8697     break;
    8698 
    8699   case 665:
    87008707
    87018708/* Line 1806 of yacc.c  */
     
    87048711    break;
    87058712
     8713  case 665:
     8714
     8715/* Line 1806 of yacc.c  */
     8716#line 2603 "parser.yy"
     8717    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8718    break;
     8719
    87068720  case 666:
    87078721
    87088722/* Line 1806 of yacc.c  */
    8709 #line 2606 "parser.yy"
     8723#line 2608 "parser.yy"
    87108724    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87118725    break;
     
    87148728
    87158729/* Line 1806 of yacc.c  */
    8716 #line 2608 "parser.yy"
     8730#line 2610 "parser.yy"
    87178731    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87188732    break;
     
    87218735
    87228736/* Line 1806 of yacc.c  */
    8723 #line 2610 "parser.yy"
     8737#line 2612 "parser.yy"
    87248738    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87258739    break;
     
    87288742
    87298743/* Line 1806 of yacc.c  */
    8730 #line 2612 "parser.yy"
     8744#line 2614 "parser.yy"
    87318745    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87328746    break;
     
    87358749
    87368750/* Line 1806 of yacc.c  */
    8737 #line 2614 "parser.yy"
     8751#line 2616 "parser.yy"
    87388752    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87398753    break;
    87408754
    87418755  case 672:
    8742 
    8743 /* Line 1806 of yacc.c  */
    8744 #line 2620 "parser.yy"
    8745     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8746     break;
    8747 
    8748   case 673:
    87498756
    87508757/* Line 1806 of yacc.c  */
     
    87538760    break;
    87548761
     8762  case 673:
     8763
     8764/* Line 1806 of yacc.c  */
     8765#line 2624 "parser.yy"
     8766    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8767    break;
     8768
    87558769  case 674:
    87568770
    87578771/* Line 1806 of yacc.c  */
    8758 #line 2624 "parser.yy"
     8772#line 2626 "parser.yy"
    87598773    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87608774    break;
     
    87638777
    87648778/* Line 1806 of yacc.c  */
    8765 #line 2629 "parser.yy"
     8779#line 2631 "parser.yy"
    87668780    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    87678781    break;
     
    87708784
    87718785/* Line 1806 of yacc.c  */
    8772 #line 2631 "parser.yy"
     8786#line 2633 "parser.yy"
    87738787    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87748788    break;
     
    87778791
    87788792/* Line 1806 of yacc.c  */
    8779 #line 2633 "parser.yy"
     8793#line 2635 "parser.yy"
    87808794    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87818795    break;
     
    87848798
    87858799/* Line 1806 of yacc.c  */
    8786 #line 2640 "parser.yy"
     8800#line 2642 "parser.yy"
    87878801    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87888802    break;
     
    87918805
    87928806/* Line 1806 of yacc.c  */
    8793 #line 2651 "parser.yy"
     8807#line 2653 "parser.yy"
    87948808    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    87958809    break;
     
    87988812
    87998813/* Line 1806 of yacc.c  */
    8800 #line 2654 "parser.yy"
     8814#line 2656 "parser.yy"
    88018815    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88028816    break;
     
    88058819
    88068820/* Line 1806 of yacc.c  */
    8807 #line 2656 "parser.yy"
     8821#line 2658 "parser.yy"
    88088822    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88098823    break;
     
    88128826
    88138827/* Line 1806 of yacc.c  */
    8814 #line 2659 "parser.yy"
     8828#line 2661 "parser.yy"
    88158829    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88168830    break;
     
    88198833
    88208834/* Line 1806 of yacc.c  */
    8821 #line 2661 "parser.yy"
     8835#line 2663 "parser.yy"
    88228836    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88238837    break;
     
    88268840
    88278841/* Line 1806 of yacc.c  */
    8828 #line 2663 "parser.yy"
     8842#line 2665 "parser.yy"
    88298843    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88308844    break;
    88318845
    88328846  case 688:
    8833 
    8834 /* Line 1806 of yacc.c  */
    8835 #line 2677 "parser.yy"
    8836     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8837     break;
    8838 
    8839   case 689:
    88408847
    88418848/* Line 1806 of yacc.c  */
     
    88448851    break;
    88458852
     8853  case 689:
     8854
     8855/* Line 1806 of yacc.c  */
     8856#line 2681 "parser.yy"
     8857    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8858    break;
     8859
    88468860  case 690:
    88478861
    88488862/* Line 1806 of yacc.c  */
    8849 #line 2684 "parser.yy"
     8863#line 2686 "parser.yy"
    88508864    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88518865    break;
     
    88548868
    88558869/* Line 1806 of yacc.c  */
    8856 #line 2686 "parser.yy"
     8870#line 2688 "parser.yy"
    88578871    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88588872    break;
     
    88618875
    88628876/* Line 1806 of yacc.c  */
    8863 #line 2688 "parser.yy"
     8877#line 2690 "parser.yy"
    88648878    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88658879    break;
     
    88688882
    88698883/* Line 1806 of yacc.c  */
    8870 #line 2690 "parser.yy"
     8884#line 2692 "parser.yy"
    88718885    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88728886    break;
     
    88758889
    88768890/* Line 1806 of yacc.c  */
    8877 #line 2692 "parser.yy"
     8891#line 2694 "parser.yy"
    88788892    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88798893    break;
    88808894
    88818895  case 696:
    8882 
    8883 /* Line 1806 of yacc.c  */
    8884 #line 2698 "parser.yy"
    8885     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8886     break;
    8887 
    8888   case 697:
    88898896
    88908897/* Line 1806 of yacc.c  */
     
    88938900    break;
    88948901
     8902  case 697:
     8903
     8904/* Line 1806 of yacc.c  */
     8905#line 2702 "parser.yy"
     8906    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8907    break;
     8908
    88958909  case 698:
    88968910
    88978911/* Line 1806 of yacc.c  */
    8898 #line 2702 "parser.yy"
     8912#line 2704 "parser.yy"
    88998913    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89008914    break;
     
    89038917
    89048918/* Line 1806 of yacc.c  */
    8905 #line 2707 "parser.yy"
     8919#line 2709 "parser.yy"
    89068920    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    89078921    break;
     
    89108924
    89118925/* Line 1806 of yacc.c  */
    8912 #line 2709 "parser.yy"
     8926#line 2711 "parser.yy"
    89138927    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89148928    break;
     
    89178931
    89188932/* Line 1806 of yacc.c  */
    8919 #line 2719 "parser.yy"
     8933#line 2721 "parser.yy"
    89208934    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89218935    break;
     
    89248938
    89258939/* Line 1806 of yacc.c  */
    8926 #line 2729 "parser.yy"
     8940#line 2731 "parser.yy"
    89278941    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89288942    break;
     
    89318945
    89328946/* Line 1806 of yacc.c  */
    8933 #line 2731 "parser.yy"
     8947#line 2733 "parser.yy"
    89348948    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89358949    break;
     
    89388952
    89398953/* Line 1806 of yacc.c  */
    8940 #line 2733 "parser.yy"
     8954#line 2735 "parser.yy"
    89418955    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89428956    break;
     
    89458959
    89468960/* Line 1806 of yacc.c  */
    8947 #line 2735 "parser.yy"
     8961#line 2737 "parser.yy"
    89488962    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89498963    break;
     
    89528966
    89538967/* Line 1806 of yacc.c  */
    8954 #line 2737 "parser.yy"
     8968#line 2739 "parser.yy"
    89558969    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89568970    break;
     
    89598973
    89608974/* Line 1806 of yacc.c  */
    8961 #line 2739 "parser.yy"
     8975#line 2741 "parser.yy"
    89628976    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89638977    break;
     
    89668980
    89678981/* Line 1806 of yacc.c  */
    8968 #line 2746 "parser.yy"
     8982#line 2748 "parser.yy"
    89698983    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89708984    break;
     
    89738987
    89748988/* Line 1806 of yacc.c  */
    8975 #line 2748 "parser.yy"
     8989#line 2750 "parser.yy"
    89768990    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89778991    break;
     
    89808994
    89818995/* Line 1806 of yacc.c  */
    8982 #line 2750 "parser.yy"
     8996#line 2752 "parser.yy"
    89838997    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89848998    break;
     
    89879001
    89889002/* Line 1806 of yacc.c  */
    8989 #line 2752 "parser.yy"
     9003#line 2754 "parser.yy"
    89909004    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    89919005    break;
     
    89949008
    89959009/* Line 1806 of yacc.c  */
    8996 #line 2754 "parser.yy"
     9010#line 2756 "parser.yy"
    89979011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89989012    break;
     
    90019015
    90029016/* Line 1806 of yacc.c  */
    9003 #line 2756 "parser.yy"
     9017#line 2758 "parser.yy"
    90049018    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90059019    break;
     
    90089022
    90099023/* Line 1806 of yacc.c  */
    9010 #line 2758 "parser.yy"
     9024#line 2760 "parser.yy"
    90119025    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90129026    break;
     
    90159029
    90169030/* Line 1806 of yacc.c  */
    9017 #line 2760 "parser.yy"
     9031#line 2762 "parser.yy"
    90189032    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90199033    break;
     
    90229036
    90239037/* Line 1806 of yacc.c  */
    9024 #line 2762 "parser.yy"
     9038#line 2764 "parser.yy"
    90259039    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90269040    break;
     
    90299043
    90309044/* Line 1806 of yacc.c  */
    9031 #line 2764 "parser.yy"
     9045#line 2766 "parser.yy"
    90329046    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90339047    break;
     
    90369050
    90379051/* Line 1806 of yacc.c  */
    9038 #line 2769 "parser.yy"
     9052#line 2771 "parser.yy"
    90399053    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90409054    break;
     
    90439057
    90449058/* Line 1806 of yacc.c  */
    9045 #line 2771 "parser.yy"
     9059#line 2773 "parser.yy"
    90469060    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90479061    break;
     
    90509064
    90519065/* Line 1806 of yacc.c  */
    9052 #line 2776 "parser.yy"
     9066#line 2778 "parser.yy"
    90539067    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90549068    break;
     
    90579071
    90589072/* Line 1806 of yacc.c  */
    9059 #line 2778 "parser.yy"
     9073#line 2780 "parser.yy"
    90609074    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90619075    break;
     
    90649078
    90659079/* Line 1806 of yacc.c  */
    9066 #line 2805 "parser.yy"
     9080#line 2807 "parser.yy"
    90679081    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90689082    break;
     
    90719085
    90729086/* Line 1806 of yacc.c  */
    9073 #line 2816 "parser.yy"
     9087#line 2818 "parser.yy"
    90749088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90759089    break;
     
    90789092
    90799093/* Line 1806 of yacc.c  */
    9080 #line 2818 "parser.yy"
     9094#line 2820 "parser.yy"
    90819095    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90829096    break;
     
    90859099
    90869100/* Line 1806 of yacc.c  */
    9087 #line 2820 "parser.yy"
     9101#line 2822 "parser.yy"
    90889102    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90899103    break;
     
    90929106
    90939107/* Line 1806 of yacc.c  */
    9094 #line 2822 "parser.yy"
     9108#line 2824 "parser.yy"
    90959109    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    90969110    break;
     
    90999113
    91009114/* Line 1806 of yacc.c  */
    9101 #line 2824 "parser.yy"
     9115#line 2826 "parser.yy"
    91029116    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91039117    break;
     
    91069120
    91079121/* Line 1806 of yacc.c  */
    9108 #line 2826 "parser.yy"
     9122#line 2828 "parser.yy"
    91099123    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91109124    break;
     
    91139127
    91149128/* Line 1806 of yacc.c  */
    9115 #line 2833 "parser.yy"
     9129#line 2835 "parser.yy"
    91169130    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91179131    break;
     
    91209134
    91219135/* Line 1806 of yacc.c  */
    9122 #line 2835 "parser.yy"
     9136#line 2837 "parser.yy"
    91239137    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91249138    break;
     
    91279141
    91289142/* Line 1806 of yacc.c  */
    9129 #line 2837 "parser.yy"
     9143#line 2839 "parser.yy"
    91309144    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91319145    break;
     
    91349148
    91359149/* Line 1806 of yacc.c  */
    9136 #line 2839 "parser.yy"
     9150#line 2841 "parser.yy"
    91379151    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91389152    break;
     
    91419155
    91429156/* Line 1806 of yacc.c  */
    9143 #line 2841 "parser.yy"
     9157#line 2843 "parser.yy"
    91449158    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91459159    break;
     
    91489162
    91499163/* Line 1806 of yacc.c  */
    9150 #line 2843 "parser.yy"
     9164#line 2845 "parser.yy"
    91519165    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91529166    break;
     
    91559169
    91569170/* Line 1806 of yacc.c  */
    9157 #line 2848 "parser.yy"
     9171#line 2850 "parser.yy"
    91589172    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91599173    break;
     
    91629176
    91639177/* Line 1806 of yacc.c  */
    9164 #line 2853 "parser.yy"
     9178#line 2855 "parser.yy"
    91659179    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    91669180    break;
    91679181
    91689182  case 745:
    9169 
    9170 /* Line 1806 of yacc.c  */
    9171 #line 2855 "parser.yy"
    9172     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9173     break;
    9174 
    9175   case 746:
    91769183
    91779184/* Line 1806 of yacc.c  */
     
    91809187    break;
    91819188
     9189  case 746:
     9190
     9191/* Line 1806 of yacc.c  */
     9192#line 2859 "parser.yy"
     9193    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9194    break;
     9195
    91829196  case 749:
    91839197
    91849198/* Line 1806 of yacc.c  */
    9185 #line 2881 "parser.yy"
     9199#line 2883 "parser.yy"
    91869200    { (yyval.en) = 0; }
    91879201    break;
     
    91909204
    91919205/* Line 1806 of yacc.c  */
    9192 #line 2883 "parser.yy"
     9206#line 2885 "parser.yy"
    91939207    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91949208    break;
     
    91979211
    91989212/* Line 1806 of yacc.c  */
    9199 #line 9200 "Parser/parser.cc"
     9213#line 9214 "Parser/parser.cc"
    92009214      default: break;
    92019215    }
     
    94289442
    94299443/* Line 2067 of yacc.c  */
    9430 #line 2886 "parser.yy"
     9444#line 2888 "parser.yy"
    94319445
    94329446// ----end of grammar----
  • src/Parser/parser.yy

    rab57786 r2acf5fc  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 22 14:15:15 2016
    13 // Update Count     : 1943
     12// Last Modified On : Mon Aug 22 14:30:56 2016
     13// Update Count     : 1944
    1414//
    1515
     
    21532153asm_name_opt:                                                                                   // GCC
    21542154        // empty
    2155         | ASM '(' string_literal ')' attribute_list_opt
     2155        | ASM '(' string_literal_list ')' attribute_list_opt
     2156                { delete $3; }
    21562157        ;
    21572158
     
    21832184        | any_word
    21842185        | any_word '(' comma_expression_opt ')'
     2186                { delete $3; }
    21852187        ;
    21862188
  • src/SynTree/Expression.cc

    rab57786 r2acf5fc  
    385385UntypedExpr::~UntypedExpr() {
    386386        delete function;
     387        // deleteAll( args );  //TODO FIXME the arguments are leaked but they seem to be shared in some way
    387388}
    388389
  • src/include/assert.h

    rab57786 r2acf5fc  
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // assert.h -- 
    8 // 
     6//
     7// assert.h --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Thu Aug 18 13:19:26 2016
     
    1212// Last Modified On : Thu Aug 18 13:25:55 2016
    1313// Update Count     : 4
    14 //
     14//
     15
     16#pragma once
    1517
    1618#include_next <assert.h>
     
    2224void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... );
    2325
     26template<typename T, typename U>
     27static inline T safe_dynamic_cast(const U& src) {
     28        T ret = dynamic_cast<T>(src);
     29        assert(ret);
     30        return ret;
     31}
     32
    2433// Local Variables: //
    2534// tab-width: 4 //
Note: See TracChangeset for help on using the changeset viewer.