Changes in / [2acf5fc:ab57786]


Ignore:
Location:
src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • src/Common/utility.h

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

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

    r2acf5fc rab57786  
    191191
    192192Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
    193         Type *targetType = maybeMoveBuildType( decl_node );
     193        Type *targetType = decl_node->buildType();
    194194        if ( dynamic_cast< VoidType * >( targetType ) ) {
    195195                delete targetType;
     
    221221}
    222222Expression *build_sizeOftype( DeclarationNode *decl_node ) {
    223         return new SizeofExpr( maybeMoveBuildType( decl_node ) );
     223        Expression* ret = new SizeofExpr( decl_node->buildType() );
     224        delete decl_node;
     225        return ret;
    224226}
    225227Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    227229}
    228230Expression *build_alignOftype( DeclarationNode *decl_node ) {
    229         return new AlignofExpr( maybeMoveBuildType( decl_node) );
     231        return new AlignofExpr( decl_node->buildType() );
    230232}
    231233Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) {
    232         Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() );
     234        Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
     235        delete decl_node;
    233236        delete member;
    234237        return ret;
     
    274277}
    275278Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
    276         return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
     279        return new AttrExpr( var, decl_node->buildType() );
    277280}
    278281
     
    301304}
    302305Expression *build_typevalue( DeclarationNode *decl ) {
    303         return new TypeExpr( maybeMoveBuildType( decl ) );
     306        return new TypeExpr( decl->buildType() );
    304307}
    305308
  • src/Parser/InitializerNode.cc

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

    r2acf5fc rab57786  
    280280        LinkageSpec::Spec get_linkage() const { return linkage; }
    281281        DeclarationNode *extractAggregate() const;
    282         bool has_enumeratorValue() const { return (bool)enumeratorValue; }
    283         ExpressionNode *consume_enumeratorValue() const { return const_cast<DeclarationNode*>(this)->enumeratorValue.release(); }
     282        ExpressionNode *get_enumeratorValue() const { return enumeratorValue; }
    284283
    285284        bool get_extension() const { return extension; }
     
    296295        std::list< std::string > attributes;
    297296        ExpressionNode *bitfieldWidth;
    298         std::unique_ptr<ExpressionNode> enumeratorValue;
     297        ExpressionNode *enumeratorValue;
    299298        InitializerNode *initializer;
    300299        bool hasEllipsis;
     
    307306
    308307Type *buildType( TypeData *type );
    309 
    310 static inline Type * maybeMoveBuildType( const DeclarationNode *orig ) {
    311         Type* ret = orig ? orig->buildType() : nullptr;
    312         delete orig;
    313         return ret;
    314 }
    315308
    316309//##############################################################################
  • src/Parser/StatementNode.cc

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

    r2acf5fc rab57786  
    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->has_enumeratorValue() ) {
     911                if ( cur->get_enumeratorValue() != nullptr ) {
    912912                        ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members);
    913                         member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) );
     913                        member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) );
    914914                } // if
    915915        } // for
  • src/Parser/parser.cc

    r2acf5fc rab57786  
    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,   142,   110,   312,    -1,    -1,   313,    -1,
     977      -1,    64,   109,   141,   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,  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
     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
    11401140};
    11411141#endif
     
    16331633/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    16341634   STATE-NUM.  */
    1635 #define YYPACT_NINF -1282
     1635#define YYPACT_NINF -1390
    16361636static const yytype_int16 yypact[] =
    16371637{
    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,
     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,
    16931693    3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
    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
     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
    17941794};
    17951795
     
    17971797static const yytype_int16 yypgoto[] =
    17981798{
    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
     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
    18241824};
    18251825
     
    18311831{
    18321832      49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
    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,
     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,
    18441844     407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
    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,
     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,
    19991999       0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
    2000      213,     0,     0,     0,     0,     0,     0,     0,    37,   214,
     2000     213,     8,     9,    10,    11,    12,     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        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,
     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,
    20102010       0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
    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,
     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,
    20212021     215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
    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,
     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,
    20452045     431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
    2046      185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
     2046       0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
    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,     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,
     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,
    20612061       0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
    2062        0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
    2063       43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
     2062       0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
     2063       0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
    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     1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
    2073       48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
     2072       0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
     2073      48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
    20742074     112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
    2075     1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
    2076      703,   703,   703,   348,   348,     0,     0,     0,     0,     0,
     2075    1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
     2076       0,     0,     0,   348,   348,     0,    45,    46,     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,   703,     0,     0,     0,     8,     9,
     2082     353,   353,     0,     0,     0,     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,   718,     0,     0,
     2092       0,     0,     0,     0,     0,  1039,   473,    43,     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,     0,     0,     0,     0,     0,     0,  1099,     0,
     2117       0,     0,     8,     9,    10,    11,    12,     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,     0,   353,   353,     0,   353,   353,     0,   355,   829,
     2120       0,    31,   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,     0,
    2123        0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
    2124        0,     0,    57,     0,   594,     0,     0,     0,     0,     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,
    21252125       0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
    21262126     353,   353,   698,   698,     0,   350,   350,     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,
     2127       0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
     2128      46,     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      600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
    2157        0,     0,   698,     0,   905,     0,   411,     0,     0,   353,
     2156     905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
     2157       0,     0,   698,     0,  1505,     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,  1505,     0,   411,     0,     0,
     2171       0,     0,     0,     0,     0,   185,     0,     0,     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,     8,     9,    10,    11,    12,    13,    14,    15,
    2202       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2201       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2202       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    22032203       0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
    2204        0,    31,     0,     0,     0,     0,     0,     0,     0,   363,
     2204       0,     0,     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,    34,
     2206       0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
    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) == (-1282))
     2920  ((yystate) == (-1390))
    29212921
    29222922#define yytable_value_is_error(yytable_value) \
     
    29262926{
    29272927       0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
    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,
     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,
    29392939     266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
    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,
     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,
    30033003     110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
    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,
     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,
    30083008    1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
    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,
     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,
    30943094      -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
    3095      594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,   160,
     3095     594,    10,    11,    12,    13,    14,    -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       -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,
     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,
    31053105      -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
    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,
     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,
    31163116     712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
    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,
     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,
    31403140     205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
    3141      109,    -1,   941,   942,   943,    -1,    -1,    -1,   117,   118,
     3141      -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
    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,    -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,
     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,
    31563156      -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
    3157       -1,    -1,    -1,   438,    -1,    -1,  1377,  1378,    -1,    -1,
    3158      109,   446,    26,    27,    28,  1386,  1387,    -1,   117,   118,
     3157      -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
     3158      -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
    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     1223,    -1,    -1,    -1,    -1,    -1,    -1,   482,  1207,   484,
    3168     1481,  1482,    -1,    -1,   268,    -1,    -1,   492,    -1,    -1,
     3167      -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
     3168    1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
    31693169    1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
    3170     1229,    69,  1255,    -1,  1505,  1506,    -1,    -1,    -1,    -1,
    3171     1263,  1264,  1265,  1020,  1021,    -1,    -1,    -1,    -1,    -1,
     3170    1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
     3171      -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -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,  1327,    -1,    -1,    -1,    10,    11,
     3177     635,   636,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,    -1,    -1,   933,    -1,
     3212      -1,    -1,    10,    11,    12,    13,    14,    -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,    -1,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
     3215      -1,    39,  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,    -1,
    3218       -1,    -1,    -1,    -1,    -1,    -1,  1184,    -1,    -1,    -1,
    3219       -1,    -1,  1499,    -1,   999,    -1,    -1,    -1,    -1,    -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,
    32203220      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
    32213221    1075,  1076,  1017,  1018,    -1,  1020,  1021,    -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,
     3222      -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
     3223     118,    -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,   111,    -1,    -1,
     3266      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -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,    10,    11,    12,    13,    14,    15,    16,    17,
    3297       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3296      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32983298      -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
    3299       -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
     3299      -1,    -1,    -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,    67,
     3301      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
    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,   142,   350,
     4106     139,   311,   109,   349,   350,   109,   349,   350,   141,   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 
    79977990  case 545:
    79987991
    79997992/* Line 1806 of yacc.c  */
    8000 #line 2161 "parser.yy"
     7993#line 2160 "parser.yy"
    80017994    { (yyval.decl) = 0; }
    80027995    break;
     
    80057998
    80067999/* Line 1806 of yacc.c  */
    8007 #line 2168 "parser.yy"
     8000#line 2167 "parser.yy"
    80088001    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    80098002    break;
     
    80128005
    80138006/* Line 1806 of yacc.c  */
    8014 #line 2174 "parser.yy"
     8007#line 2173 "parser.yy"
    80158008    { (yyval.decl) = 0; }
    80168009    break;
    80178010
    8018   case 554:
    8019 
    8020 /* Line 1806 of yacc.c  */
    8021 #line 2186 "parser.yy"
    8022     { delete (yyvsp[(3) - (4)].en); }
    8023     break;
    8024 
    80258011  case 555:
    80268012
    80278013/* Line 1806 of yacc.c  */
     8014#line 2188 "parser.yy"
     8015    { delete (yyvsp[(1) - (1)].tok); }
     8016    break;
     8017
     8018  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  */
    80288028#line 2190 "parser.yy"
    8029     { delete (yyvsp[(1) - (1)].tok); }
    8030     break;
    8031 
    8032   case 556:
     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 
    80538039  case 559:
    80548040
    80558041/* Line 1806 of yacc.c  */
    8056 #line 2228 "parser.yy"
     8042#line 2226 "parser.yy"
    80578043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80588044    break;
    80598045
    80608046  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:
    80618054
    80628055/* Line 1806 of yacc.c  */
     
    80658058    break;
    80668059
    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 
    80748060  case 563:
    80758061
    80768062/* Line 1806 of yacc.c  */
    8077 #line 2238 "parser.yy"
     8063#line 2236 "parser.yy"
    80788064    {
    80798065                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80858071
    80868072/* Line 1806 of yacc.c  */
    8087 #line 2243 "parser.yy"
     8073#line 2241 "parser.yy"
    80888074    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80898075    break;
     
    80928078
    80938079/* Line 1806 of yacc.c  */
     8080#line 2246 "parser.yy"
     8081    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8082    break;
     8083
     8084  case 566:
     8085
     8086/* Line 1806 of yacc.c  */
    80948087#line 2248 "parser.yy"
    8095     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8096     break;
    8097 
    8098   case 566:
     8088    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8089    break;
     8090
     8091  case 567:
    80998092
    81008093/* Line 1806 of yacc.c  */
    81018094#line 2250 "parser.yy"
    8102     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8103     break;
    8104 
    8105   case 567:
    8106 
    8107 /* Line 1806 of yacc.c  */
    8108 #line 2252 "parser.yy"
    81098095    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81108096    break;
     
    81138099
    81148100/* Line 1806 of yacc.c  */
     8101#line 2255 "parser.yy"
     8102    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8103    break;
     8104
     8105  case 569:
     8106
     8107/* Line 1806 of yacc.c  */
    81158108#line 2257 "parser.yy"
    8116     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8117     break;
    8118 
    8119   case 569:
     8109    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8110    break;
     8111
     8112  case 570:
    81208113
    81218114/* Line 1806 of yacc.c  */
     
    81248117    break;
    81258118
    8126   case 570:
     8119  case 571:
    81278120
    81288121/* Line 1806 of yacc.c  */
    81298122#line 2261 "parser.yy"
     8123    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8124    break;
     8125
     8126  case 572:
     8127
     8128/* Line 1806 of yacc.c  */
     8129#line 2266 "parser.yy"
     8130    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8131    break;
     8132
     8133  case 573:
     8134
     8135/* Line 1806 of yacc.c  */
     8136#line 2268 "parser.yy"
     8137    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8138    break;
     8139
     8140  case 574:
     8141
     8142/* Line 1806 of yacc.c  */
     8143#line 2277 "parser.yy"
     8144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8145    break;
     8146
     8147  case 576:
     8148
     8149/* Line 1806 of yacc.c  */
     8150#line 2280 "parser.yy"
     8151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8152    break;
     8153
     8154  case 577:
     8155
     8156/* Line 1806 of yacc.c  */
     8157#line 2285 "parser.yy"
     8158    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8159    break;
     8160
     8161  case 578:
     8162
     8163/* Line 1806 of yacc.c  */
     8164#line 2287 "parser.yy"
     8165    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8166    break;
     8167
     8168  case 579:
     8169
     8170/* Line 1806 of yacc.c  */
     8171#line 2289 "parser.yy"
     8172    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8173    break;
     8174
     8175  case 580:
     8176
     8177/* Line 1806 of yacc.c  */
     8178#line 2294 "parser.yy"
     8179    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8180    break;
     8181
     8182  case 581:
     8183
     8184/* Line 1806 of yacc.c  */
     8185#line 2296 "parser.yy"
     8186    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8187    break;
     8188
     8189  case 582:
     8190
     8191/* Line 1806 of yacc.c  */
     8192#line 2298 "parser.yy"
     8193    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8194    break;
     8195
     8196  case 583:
     8197
     8198/* Line 1806 of yacc.c  */
     8199#line 2303 "parser.yy"
    81308200    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81318201    break;
    81328202
    8133   case 571:
    8134 
    8135 /* Line 1806 of yacc.c  */
    8136 #line 2263 "parser.yy"
    8137     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8138     break;
    8139 
    8140   case 572:
    8141 
    8142 /* Line 1806 of yacc.c  */
    8143 #line 2268 "parser.yy"
    8144     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8145     break;
    8146 
    8147   case 573:
    8148 
    8149 /* Line 1806 of yacc.c  */
    8150 #line 2270 "parser.yy"
    8151     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8152     break;
    8153 
    8154   case 574:
    8155 
    8156 /* Line 1806 of yacc.c  */
    8157 #line 2279 "parser.yy"
    8158     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8159     break;
    8160 
    8161   case 576:
    8162 
    8163 /* Line 1806 of yacc.c  */
    8164 #line 2282 "parser.yy"
    8165     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8166     break;
    8167 
    8168   case 577:
    8169 
    8170 /* Line 1806 of yacc.c  */
    8171 #line 2287 "parser.yy"
    8172     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8173     break;
    8174 
    8175   case 578:
    8176 
    8177 /* Line 1806 of yacc.c  */
    8178 #line 2289 "parser.yy"
    8179     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8180     break;
    8181 
    8182   case 579:
    8183 
    8184 /* Line 1806 of yacc.c  */
    8185 #line 2291 "parser.yy"
    8186     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8187     break;
    8188 
    8189   case 580:
    8190 
    8191 /* Line 1806 of yacc.c  */
    8192 #line 2296 "parser.yy"
    8193     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8194     break;
    8195 
    8196   case 581:
    8197 
    8198 /* Line 1806 of yacc.c  */
    8199 #line 2298 "parser.yy"
    8200     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8201     break;
    8202 
    8203   case 582:
    8204 
    8205 /* Line 1806 of yacc.c  */
    8206 #line 2300 "parser.yy"
    8207     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8208     break;
    8209 
    8210   case 583:
     8203  case 584:
    82118204
    82128205/* Line 1806 of yacc.c  */
     
    82158208    break;
    82168209
    8217   case 584:
     8210  case 585:
    82188211
    82198212/* Line 1806 of yacc.c  */
    82208213#line 2307 "parser.yy"
     8214    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8215    break;
     8216
     8217  case 589:
     8218
     8219/* Line 1806 of yacc.c  */
     8220#line 2322 "parser.yy"
     8221    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8222    break;
     8223
     8224  case 590:
     8225
     8226/* Line 1806 of yacc.c  */
     8227#line 2324 "parser.yy"
     8228    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8229    break;
     8230
     8231  case 591:
     8232
     8233/* Line 1806 of yacc.c  */
     8234#line 2326 "parser.yy"
     8235    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8236    break;
     8237
     8238  case 592:
     8239
     8240/* Line 1806 of yacc.c  */
     8241#line 2331 "parser.yy"
     8242    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8243    break;
     8244
     8245  case 593:
     8246
     8247/* Line 1806 of yacc.c  */
     8248#line 2333 "parser.yy"
     8249    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8250    break;
     8251
     8252  case 594:
     8253
     8254/* Line 1806 of yacc.c  */
     8255#line 2335 "parser.yy"
     8256    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8257    break;
     8258
     8259  case 595:
     8260
     8261/* Line 1806 of yacc.c  */
     8262#line 2340 "parser.yy"
    82218263    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82228264    break;
    82238265
    8224   case 585:
    8225 
    8226 /* Line 1806 of yacc.c  */
    8227 #line 2309 "parser.yy"
    8228     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8229     break;
    8230 
    8231   case 589:
    8232 
    8233 /* Line 1806 of yacc.c  */
    8234 #line 2324 "parser.yy"
    8235     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8236     break;
    8237 
    8238   case 590:
    8239 
    8240 /* Line 1806 of yacc.c  */
    8241 #line 2326 "parser.yy"
    8242     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8243     break;
    8244 
    8245   case 591:
    8246 
    8247 /* Line 1806 of yacc.c  */
    8248 #line 2328 "parser.yy"
    8249     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8250     break;
    8251 
    8252   case 592:
    8253 
    8254 /* Line 1806 of yacc.c  */
    8255 #line 2333 "parser.yy"
    8256     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8257     break;
    8258 
    8259   case 593:
    8260 
    8261 /* Line 1806 of yacc.c  */
    8262 #line 2335 "parser.yy"
    8263     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8264     break;
    8265 
    8266   case 594:
    8267 
    8268 /* Line 1806 of yacc.c  */
    8269 #line 2337 "parser.yy"
    8270     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8271     break;
    8272 
    8273   case 595:
     8266  case 596:
    82748267
    82758268/* Line 1806 of yacc.c  */
     
    82788271    break;
    82798272
    8280   case 596:
     8273  case 597:
    82818274
    82828275/* Line 1806 of yacc.c  */
    82838276#line 2344 "parser.yy"
    8284     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8285     break;
    8286 
    8287   case 597:
    8288 
    8289 /* Line 1806 of yacc.c  */
    8290 #line 2346 "parser.yy"
    82918277    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82928278    break;
     
    82958281
    82968282/* Line 1806 of yacc.c  */
    8297 #line 2361 "parser.yy"
     8283#line 2359 "parser.yy"
    82988284    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82998285    break;
    83008286
    83018287  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:
    83028295
    83038296/* Line 1806 of yacc.c  */
     
    83068299    break;
    83078300
    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 
    83158301  case 603:
    83168302
    83178303/* Line 1806 of yacc.c  */
    8318 #line 2372 "parser.yy"
     8304#line 2370 "parser.yy"
    83198305    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83208306    break;
     
    83238309
    83248310/* Line 1806 of yacc.c  */
     8311#line 2375 "parser.yy"
     8312    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8313    break;
     8314
     8315  case 605:
     8316
     8317/* Line 1806 of yacc.c  */
    83258318#line 2377 "parser.yy"
    8326     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8327     break;
    8328 
    8329   case 605:
     8319    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8320    break;
     8321
     8322  case 606:
    83308323
    83318324/* Line 1806 of yacc.c  */
    83328325#line 2379 "parser.yy"
    8333     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8334     break;
    8335 
    8336   case 606:
    8337 
    8338 /* Line 1806 of yacc.c  */
    8339 #line 2381 "parser.yy"
    83408326    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83418327    break;
     
    83448330
    83458331/* Line 1806 of yacc.c  */
     8332#line 2384 "parser.yy"
     8333    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8334    break;
     8335
     8336  case 608:
     8337
     8338/* Line 1806 of yacc.c  */
    83468339#line 2386 "parser.yy"
    8347     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8348     break;
    8349 
    8350   case 608:
     8340    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8341    break;
     8342
     8343  case 609:
    83518344
    83528345/* Line 1806 of yacc.c  */
     
    83558348    break;
    83568349
    8357   case 609:
     8350  case 610:
    83588351
    83598352/* Line 1806 of yacc.c  */
    83608353#line 2390 "parser.yy"
    8361     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8362     break;
    8363 
    8364   case 610:
    8365 
    8366 /* Line 1806 of yacc.c  */
    8367 #line 2392 "parser.yy"
    83688354    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83698355    break;
     
    83728358
    83738359/* Line 1806 of yacc.c  */
     8360#line 2395 "parser.yy"
     8361    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8362    break;
     8363
     8364  case 612:
     8365
     8366/* Line 1806 of yacc.c  */
    83748367#line 2397 "parser.yy"
    8375     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8376     break;
    8377 
    8378   case 612:
     8368    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8369    break;
     8370
     8371  case 613:
    83798372
    83808373/* Line 1806 of yacc.c  */
    83818374#line 2399 "parser.yy"
    8382     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8383     break;
    8384 
    8385   case 613:
    8386 
    8387 /* Line 1806 of yacc.c  */
    8388 #line 2401 "parser.yy"
    83898375    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83908376    break;
     
    83938379
    83948380/* Line 1806 of yacc.c  */
    8395 #line 2411 "parser.yy"
     8381#line 2409 "parser.yy"
    83968382    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83978383    break;
    83988384
    83998385  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:
    84008393
    84018394/* Line 1806 of yacc.c  */
     
    84048397    break;
    84058398
    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 
    84138399  case 618:
    84148400
    84158401/* Line 1806 of yacc.c  */
     8402#line 2419 "parser.yy"
     8403    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8404    break;
     8405
     8406  case 619:
     8407
     8408/* Line 1806 of yacc.c  */
    84168409#line 2421 "parser.yy"
    8417     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8418     break;
    8419 
    8420   case 619:
     8410    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8411    break;
     8412
     8413  case 620:
    84218414
    84228415/* Line 1806 of yacc.c  */
    84238416#line 2423 "parser.yy"
    8424     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8425     break;
    8426 
    8427   case 620:
    8428 
    8429 /* Line 1806 of yacc.c  */
    8430 #line 2425 "parser.yy"
    84318417    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84328418    break;
     
    84358421
    84368422/* Line 1806 of yacc.c  */
     8423#line 2428 "parser.yy"
     8424    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8425    break;
     8426
     8427  case 622:
     8428
     8429/* Line 1806 of yacc.c  */
    84378430#line 2430 "parser.yy"
    8438     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8439     break;
    8440 
    8441   case 622:
     8431    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8432    break;
     8433
     8434  case 623:
    84428435
    84438436/* Line 1806 of yacc.c  */
     
    84468439    break;
    84478440
    8448   case 623:
     8441  case 624:
    84498442
    84508443/* Line 1806 of yacc.c  */
    84518444#line 2434 "parser.yy"
    8452     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8453     break;
    8454 
    8455   case 624:
    8456 
    8457 /* Line 1806 of yacc.c  */
    8458 #line 2436 "parser.yy"
    84598445    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84608446    break;
     
    84638449
    84648450/* Line 1806 of yacc.c  */
     8451#line 2439 "parser.yy"
     8452    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8453    break;
     8454
     8455  case 626:
     8456
     8457/* Line 1806 of yacc.c  */
    84658458#line 2441 "parser.yy"
    8466     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8467     break;
    8468 
    8469   case 626:
     8459    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8460    break;
     8461
     8462  case 627:
    84708463
    84718464/* Line 1806 of yacc.c  */
    84728465#line 2443 "parser.yy"
    8473     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8474     break;
    8475 
    8476   case 627:
    8477 
    8478 /* Line 1806 of yacc.c  */
    8479 #line 2445 "parser.yy"
    84808466    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84818467    break;
     
    84848470
    84858471/* Line 1806 of yacc.c  */
    8486 #line 2476 "parser.yy"
     8472#line 2474 "parser.yy"
    84878473    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84888474    break;
    84898475
    84908476  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:
    84918484
    84928485/* Line 1806 of yacc.c  */
     
    84958488    break;
    84968489
    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 
    85048490  case 632:
    85058491
    85068492/* Line 1806 of yacc.c  */
    8507 #line 2486 "parser.yy"
     8493#line 2484 "parser.yy"
    85088494    {
    85098495                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85158501
    85168502/* Line 1806 of yacc.c  */
    8517 #line 2491 "parser.yy"
     8503#line 2489 "parser.yy"
    85188504    {
    85198505                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85258511
    85268512/* Line 1806 of yacc.c  */
     8513#line 2497 "parser.yy"
     8514    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8515    break;
     8516
     8517  case 635:
     8518
     8519/* Line 1806 of yacc.c  */
    85278520#line 2499 "parser.yy"
    8528     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8529     break;
    8530 
    8531   case 635:
     8521    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8522    break;
     8523
     8524  case 636:
    85328525
    85338526/* Line 1806 of yacc.c  */
    85348527#line 2501 "parser.yy"
    8535     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8536     break;
    8537 
    8538   case 636:
    8539 
    8540 /* Line 1806 of yacc.c  */
    8541 #line 2503 "parser.yy"
    85428528    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85438529    break;
     
    85468532
    85478533/* Line 1806 of yacc.c  */
     8534#line 2506 "parser.yy"
     8535    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8536    break;
     8537
     8538  case 638:
     8539
     8540/* Line 1806 of yacc.c  */
    85488541#line 2508 "parser.yy"
    8549     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8550     break;
    8551 
    8552   case 638:
    8553 
    8554 /* Line 1806 of yacc.c  */
    8555 #line 2510 "parser.yy"
    85568542    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85578543    break;
     
    85608546
    85618547/* Line 1806 of yacc.c  */
     8548#line 2513 "parser.yy"
     8549    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8550    break;
     8551
     8552  case 640:
     8553
     8554/* Line 1806 of yacc.c  */
    85628555#line 2515 "parser.yy"
    8563     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8564     break;
    8565 
    8566   case 640:
    8567 
    8568 /* Line 1806 of yacc.c  */
    8569 #line 2517 "parser.yy"
    85708556    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85718557    break;
    85728558
    85738559  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:
    85748567
    85758568/* Line 1806 of yacc.c  */
     
    85788571    break;
    85798572
    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 
    85878573  case 644:
    85888574
    85898575/* Line 1806 of yacc.c  */
     8576#line 2537 "parser.yy"
     8577    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8578    break;
     8579
     8580  case 645:
     8581
     8582/* Line 1806 of yacc.c  */
    85908583#line 2539 "parser.yy"
    8591     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8592     break;
    8593 
    8594   case 645:
     8584    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8585    break;
     8586
     8587  case 646:
    85958588
    85968589/* Line 1806 of yacc.c  */
    85978590#line 2541 "parser.yy"
    8598     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8599     break;
    8600 
    8601   case 646:
     8591    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8592    break;
     8593
     8594  case 647:
    86028595
    86038596/* Line 1806 of yacc.c  */
    86048597#line 2543 "parser.yy"
    8605     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8606     break;
    8607 
    8608   case 647:
     8598    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8599    break;
     8600
     8601  case 648:
    86098602
    86108603/* Line 1806 of yacc.c  */
    86118604#line 2545 "parser.yy"
    8612     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8613     break;
    8614 
    8615   case 648:
    8616 
    8617 /* Line 1806 of yacc.c  */
    8618 #line 2547 "parser.yy"
    86198605    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86208606    break;
    86218607
    86228608  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:
    86238616
    86248617/* Line 1806 of yacc.c  */
     
    86278620    break;
    86288621
    8629   case 651:
     8622  case 652:
    86308623
    86318624/* Line 1806 of yacc.c  */
    86328625#line 2555 "parser.yy"
    8633     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8634     break;
    8635 
    8636   case 652:
    8637 
    8638 /* Line 1806 of yacc.c  */
    8639 #line 2557 "parser.yy"
    86408626    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86418627    break;
     
    86448630
    86458631/* Line 1806 of yacc.c  */
     8632#line 2560 "parser.yy"
     8633    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8634    break;
     8635
     8636  case 654:
     8637
     8638/* Line 1806 of yacc.c  */
    86468639#line 2562 "parser.yy"
    8647     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8648     break;
    8649 
    8650   case 654:
     8640    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8641    break;
     8642
     8643  case 655:
    86518644
    86528645/* Line 1806 of yacc.c  */
    86538646#line 2564 "parser.yy"
    8654     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8655     break;
    8656 
    8657   case 655:
    8658 
    8659 /* Line 1806 of yacc.c  */
    8660 #line 2566 "parser.yy"
    86618647    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86628648    break;
     
    86658651
    86668652/* Line 1806 of yacc.c  */
     8653#line 2570 "parser.yy"
     8654    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8655    break;
     8656
     8657  case 657:
     8658
     8659/* Line 1806 of yacc.c  */
    86678660#line 2572 "parser.yy"
    8668     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8669     break;
    8670 
    8671   case 657:
    8672 
    8673 /* Line 1806 of yacc.c  */
    8674 #line 2574 "parser.yy"
    86758661    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86768662    break;
     
    86798665
    86808666/* Line 1806 of yacc.c  */
     8667#line 2578 "parser.yy"
     8668    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8669    break;
     8670
     8671  case 660:
     8672
     8673/* Line 1806 of yacc.c  */
    86818674#line 2580 "parser.yy"
    8682     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8683     break;
    8684 
    8685   case 660:
     8675    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8676    break;
     8677
     8678  case 661:
    86868679
    86878680/* Line 1806 of yacc.c  */
    86888681#line 2582 "parser.yy"
    8689     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8690     break;
    8691 
    8692   case 661:
     8682    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8683    break;
     8684
     8685  case 662:
    86938686
    86948687/* Line 1806 of yacc.c  */
    86958688#line 2584 "parser.yy"
    8696     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8697     break;
    8698 
    8699   case 662:
    8700 
    8701 /* Line 1806 of yacc.c  */
    8702 #line 2586 "parser.yy"
    87038689    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    87048690    break;
    87058691
    87068692  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:
    87078700
    87088701/* Line 1806 of yacc.c  */
     
    87118704    break;
    87128705
    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 
    87208706  case 666:
    87218707
    87228708/* Line 1806 of yacc.c  */
     8709#line 2606 "parser.yy"
     8710    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8711    break;
     8712
     8713  case 667:
     8714
     8715/* Line 1806 of yacc.c  */
    87238716#line 2608 "parser.yy"
    8724     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8725     break;
    8726 
    8727   case 667:
     8717    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8718    break;
     8719
     8720  case 668:
    87288721
    87298722/* Line 1806 of yacc.c  */
    87308723#line 2610 "parser.yy"
    8731     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8732     break;
    8733 
    8734   case 668:
     8724    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8725    break;
     8726
     8727  case 669:
    87358728
    87368729/* Line 1806 of yacc.c  */
    87378730#line 2612 "parser.yy"
    8738     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8739     break;
    8740 
    8741   case 669:
     8731    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8732    break;
     8733
     8734  case 670:
    87428735
    87438736/* Line 1806 of yacc.c  */
    87448737#line 2614 "parser.yy"
    8745     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8746     break;
    8747 
    8748   case 670:
    8749 
    8750 /* Line 1806 of yacc.c  */
    8751 #line 2616 "parser.yy"
    87528738    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87538739    break;
    87548740
    87558741  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:
    87568749
    87578750/* Line 1806 of yacc.c  */
     
    87608753    break;
    87618754
    8762   case 673:
     8755  case 674:
    87638756
    87648757/* Line 1806 of yacc.c  */
    87658758#line 2624 "parser.yy"
    8766     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8767     break;
    8768 
    8769   case 674:
    8770 
    8771 /* Line 1806 of yacc.c  */
    8772 #line 2626 "parser.yy"
    87738759    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87748760    break;
     
    87778763
    87788764/* Line 1806 of yacc.c  */
     8765#line 2629 "parser.yy"
     8766    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8767    break;
     8768
     8769  case 676:
     8770
     8771/* Line 1806 of yacc.c  */
    87798772#line 2631 "parser.yy"
    8780     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8781     break;
    8782 
    8783   case 676:
     8773    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8774    break;
     8775
     8776  case 677:
    87848777
    87858778/* Line 1806 of yacc.c  */
    87868779#line 2633 "parser.yy"
    8787     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8788     break;
    8789 
    8790   case 677:
    8791 
    8792 /* Line 1806 of yacc.c  */
    8793 #line 2635 "parser.yy"
    87948780    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87958781    break;
     
    87988784
    87998785/* Line 1806 of yacc.c  */
    8800 #line 2642 "parser.yy"
     8786#line 2640 "parser.yy"
    88018787    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    88028788    break;
     
    88058791
    88068792/* Line 1806 of yacc.c  */
    8807 #line 2653 "parser.yy"
     8793#line 2651 "parser.yy"
    88088794    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88098795    break;
     
    88128798
    88138799/* Line 1806 of yacc.c  */
     8800#line 2654 "parser.yy"
     8801    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8802    break;
     8803
     8804  case 683:
     8805
     8806/* Line 1806 of yacc.c  */
    88148807#line 2656 "parser.yy"
    8815     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8816     break;
    8817 
    8818   case 683:
    8819 
    8820 /* Line 1806 of yacc.c  */
    8821 #line 2658 "parser.yy"
    88228808    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88238809    break;
     
    88268812
    88278813/* Line 1806 of yacc.c  */
     8814#line 2659 "parser.yy"
     8815    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8816    break;
     8817
     8818  case 685:
     8819
     8820/* Line 1806 of yacc.c  */
    88288821#line 2661 "parser.yy"
    8829     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8830     break;
    8831 
    8832   case 685:
     8822    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8823    break;
     8824
     8825  case 686:
    88338826
    88348827/* Line 1806 of yacc.c  */
    88358828#line 2663 "parser.yy"
    8836     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8837     break;
    8838 
    8839   case 686:
    8840 
    8841 /* Line 1806 of yacc.c  */
    8842 #line 2665 "parser.yy"
    88438829    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88448830    break;
    88458831
    88468832  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:
    88478840
    88488841/* Line 1806 of yacc.c  */
     
    88518844    break;
    88528845
    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 
    88608846  case 690:
    88618847
    88628848/* Line 1806 of yacc.c  */
     8849#line 2684 "parser.yy"
     8850    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8851    break;
     8852
     8853  case 691:
     8854
     8855/* Line 1806 of yacc.c  */
    88638856#line 2686 "parser.yy"
    8864     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8865     break;
    8866 
    8867   case 691:
     8857    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8858    break;
     8859
     8860  case 692:
    88688861
    88698862/* Line 1806 of yacc.c  */
    88708863#line 2688 "parser.yy"
    8871     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8872     break;
    8873 
    8874   case 692:
     8864    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8865    break;
     8866
     8867  case 693:
    88758868
    88768869/* Line 1806 of yacc.c  */
    88778870#line 2690 "parser.yy"
    8878     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8879     break;
    8880 
    8881   case 693:
     8871    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8872    break;
     8873
     8874  case 694:
    88828875
    88838876/* Line 1806 of yacc.c  */
    88848877#line 2692 "parser.yy"
    8885     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8886     break;
    8887 
    8888   case 694:
    8889 
    8890 /* Line 1806 of yacc.c  */
    8891 #line 2694 "parser.yy"
    88928878    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88938879    break;
    88948880
    88958881  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:
    88968889
    88978890/* Line 1806 of yacc.c  */
     
    89008893    break;
    89018894
    8902   case 697:
     8895  case 698:
    89038896
    89048897/* Line 1806 of yacc.c  */
    89058898#line 2702 "parser.yy"
    8906     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8907     break;
    8908 
    8909   case 698:
    8910 
    8911 /* Line 1806 of yacc.c  */
    8912 #line 2704 "parser.yy"
    89138899    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89148900    break;
     
    89178903
    89188904/* Line 1806 of yacc.c  */
     8905#line 2707 "parser.yy"
     8906    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8907    break;
     8908
     8909  case 700:
     8910
     8911/* Line 1806 of yacc.c  */
    89198912#line 2709 "parser.yy"
    8920     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8921     break;
    8922 
    8923   case 700:
    8924 
    8925 /* Line 1806 of yacc.c  */
    8926 #line 2711 "parser.yy"
    89278913    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89288914    break;
     
    89318917
    89328918/* Line 1806 of yacc.c  */
    8933 #line 2721 "parser.yy"
     8919#line 2719 "parser.yy"
    89348920    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89358921    break;
     
    89388924
    89398925/* Line 1806 of yacc.c  */
     8926#line 2729 "parser.yy"
     8927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8928    break;
     8929
     8930  case 707:
     8931
     8932/* Line 1806 of yacc.c  */
    89408933#line 2731 "parser.yy"
     8934    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8935    break;
     8936
     8937  case 708:
     8938
     8939/* Line 1806 of yacc.c  */
     8940#line 2733 "parser.yy"
    89418941    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89428942    break;
    89438943
    8944   case 707:
    8945 
    8946 /* Line 1806 of yacc.c  */
    8947 #line 2733 "parser.yy"
     8944  case 709:
     8945
     8946/* Line 1806 of yacc.c  */
     8947#line 2735 "parser.yy"
    89488948    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89498949    break;
    89508950
    8951   case 708:
    8952 
    8953 /* Line 1806 of yacc.c  */
    8954 #line 2735 "parser.yy"
     8951  case 710:
     8952
     8953/* Line 1806 of yacc.c  */
     8954#line 2737 "parser.yy"
    89558955    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89568956    break;
    89578957
    8958   case 709:
    8959 
    8960 /* Line 1806 of yacc.c  */
    8961 #line 2737 "parser.yy"
     8958  case 711:
     8959
     8960/* Line 1806 of yacc.c  */
     8961#line 2739 "parser.yy"
    89628962    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89638963    break;
    89648964
    8965   case 710:
    8966 
    8967 /* Line 1806 of yacc.c  */
    8968 #line 2739 "parser.yy"
     8965  case 712:
     8966
     8967/* Line 1806 of yacc.c  */
     8968#line 2746 "parser.yy"
     8969    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8970    break;
     8971
     8972  case 713:
     8973
     8974/* Line 1806 of yacc.c  */
     8975#line 2748 "parser.yy"
     8976    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8977    break;
     8978
     8979  case 714:
     8980
     8981/* Line 1806 of yacc.c  */
     8982#line 2750 "parser.yy"
     8983    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8984    break;
     8985
     8986  case 715:
     8987
     8988/* Line 1806 of yacc.c  */
     8989#line 2752 "parser.yy"
     8990    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8991    break;
     8992
     8993  case 716:
     8994
     8995/* Line 1806 of yacc.c  */
     8996#line 2754 "parser.yy"
     8997    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8998    break;
     8999
     9000  case 717:
     9001
     9002/* Line 1806 of yacc.c  */
     9003#line 2756 "parser.yy"
     9004    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9005    break;
     9006
     9007  case 718:
     9008
     9009/* Line 1806 of yacc.c  */
     9010#line 2758 "parser.yy"
     9011    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9012    break;
     9013
     9014  case 719:
     9015
     9016/* Line 1806 of yacc.c  */
     9017#line 2760 "parser.yy"
     9018    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9019    break;
     9020
     9021  case 720:
     9022
     9023/* Line 1806 of yacc.c  */
     9024#line 2762 "parser.yy"
     9025    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9026    break;
     9027
     9028  case 721:
     9029
     9030/* Line 1806 of yacc.c  */
     9031#line 2764 "parser.yy"
     9032    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9033    break;
     9034
     9035  case 722:
     9036
     9037/* Line 1806 of yacc.c  */
     9038#line 2769 "parser.yy"
     9039    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9040    break;
     9041
     9042  case 723:
     9043
     9044/* Line 1806 of yacc.c  */
     9045#line 2771 "parser.yy"
     9046    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9047    break;
     9048
     9049  case 724:
     9050
     9051/* Line 1806 of yacc.c  */
     9052#line 2776 "parser.yy"
     9053    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9054    break;
     9055
     9056  case 725:
     9057
     9058/* Line 1806 of yacc.c  */
     9059#line 2778 "parser.yy"
     9060    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9061    break;
     9062
     9063  case 727:
     9064
     9065/* Line 1806 of yacc.c  */
     9066#line 2805 "parser.yy"
     9067    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     9068    break;
     9069
     9070  case 731:
     9071
     9072/* Line 1806 of yacc.c  */
     9073#line 2816 "parser.yy"
    89699074    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89709075    break;
    89719076
    8972   case 711:
    8973 
    8974 /* Line 1806 of yacc.c  */
    8975 #line 2741 "parser.yy"
     9077  case 732:
     9078
     9079/* Line 1806 of yacc.c  */
     9080#line 2818 "parser.yy"
    89769081    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89779082    break;
    89789083
    8979   case 712:
    8980 
    8981 /* Line 1806 of yacc.c  */
    8982 #line 2748 "parser.yy"
     9084  case 733:
     9085
     9086/* Line 1806 of yacc.c  */
     9087#line 2820 "parser.yy"
     9088    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9089    break;
     9090
     9091  case 734:
     9092
     9093/* Line 1806 of yacc.c  */
     9094#line 2822 "parser.yy"
     9095    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9096    break;
     9097
     9098  case 735:
     9099
     9100/* Line 1806 of yacc.c  */
     9101#line 2824 "parser.yy"
     9102    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9103    break;
     9104
     9105  case 736:
     9106
     9107/* Line 1806 of yacc.c  */
     9108#line 2826 "parser.yy"
     9109    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9110    break;
     9111
     9112  case 737:
     9113
     9114/* Line 1806 of yacc.c  */
     9115#line 2833 "parser.yy"
    89839116    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89849117    break;
    89859118
    8986   case 713:
    8987 
    8988 /* Line 1806 of yacc.c  */
    8989 #line 2750 "parser.yy"
     9119  case 738:
     9120
     9121/* Line 1806 of yacc.c  */
     9122#line 2835 "parser.yy"
     9123    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9124    break;
     9125
     9126  case 739:
     9127
     9128/* Line 1806 of yacc.c  */
     9129#line 2837 "parser.yy"
    89909130    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89919131    break;
    89929132
    8993   case 714:
    8994 
    8995 /* Line 1806 of yacc.c  */
    8996 #line 2752 "parser.yy"
     9133  case 740:
     9134
     9135/* Line 1806 of yacc.c  */
     9136#line 2839 "parser.yy"
     9137    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9138    break;
     9139
     9140  case 741:
     9141
     9142/* Line 1806 of yacc.c  */
     9143#line 2841 "parser.yy"
    89979144    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89989145    break;
    89999146
    9000   case 715:
    9001 
    9002 /* Line 1806 of yacc.c  */
    9003 #line 2754 "parser.yy"
    9004     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9005     break;
    9006 
    9007   case 716:
    9008 
    9009 /* Line 1806 of yacc.c  */
    9010 #line 2756 "parser.yy"
     9147  case 742:
     9148
     9149/* Line 1806 of yacc.c  */
     9150#line 2843 "parser.yy"
    90119151    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90129152    break;
    90139153
    9014   case 717:
    9015 
    9016 /* Line 1806 of yacc.c  */
    9017 #line 2758 "parser.yy"
    9018     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9019     break;
    9020 
    9021   case 718:
    9022 
    9023 /* Line 1806 of yacc.c  */
    9024 #line 2760 "parser.yy"
    9025     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9026     break;
    9027 
    9028   case 719:
    9029 
    9030 /* Line 1806 of yacc.c  */
    9031 #line 2762 "parser.yy"
    9032     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9033     break;
    9034 
    9035   case 720:
    9036 
    9037 /* Line 1806 of yacc.c  */
    9038 #line 2764 "parser.yy"
    9039     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9040     break;
    9041 
    9042   case 721:
    9043 
    9044 /* Line 1806 of yacc.c  */
    9045 #line 2766 "parser.yy"
    9046     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9047     break;
    9048 
    9049   case 722:
    9050 
    9051 /* Line 1806 of yacc.c  */
    9052 #line 2771 "parser.yy"
    9053     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9054     break;
    9055 
    9056   case 723:
    9057 
    9058 /* Line 1806 of yacc.c  */
    9059 #line 2773 "parser.yy"
    9060     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9061     break;
    9062 
    9063   case 724:
    9064 
    9065 /* Line 1806 of yacc.c  */
    9066 #line 2778 "parser.yy"
    9067     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9068     break;
    9069 
    9070   case 725:
    9071 
    9072 /* Line 1806 of yacc.c  */
    9073 #line 2780 "parser.yy"
    9074     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9075     break;
    9076 
    9077   case 727:
    9078 
    9079 /* Line 1806 of yacc.c  */
    9080 #line 2807 "parser.yy"
    9081     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9082     break;
    9083 
    9084   case 731:
    9085 
    9086 /* Line 1806 of yacc.c  */
    9087 #line 2818 "parser.yy"
    9088     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9089     break;
    9090 
    9091   case 732:
    9092 
    9093 /* Line 1806 of yacc.c  */
    9094 #line 2820 "parser.yy"
    9095     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9096     break;
    9097 
    9098   case 733:
    9099 
    9100 /* Line 1806 of yacc.c  */
    9101 #line 2822 "parser.yy"
    9102     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9103     break;
    9104 
    9105   case 734:
    9106 
    9107 /* Line 1806 of yacc.c  */
    9108 #line 2824 "parser.yy"
    9109     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9110     break;
    9111 
    9112   case 735:
    9113 
    9114 /* Line 1806 of yacc.c  */
    9115 #line 2826 "parser.yy"
    9116     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9117     break;
    9118 
    9119   case 736:
    9120 
    9121 /* Line 1806 of yacc.c  */
    9122 #line 2828 "parser.yy"
    9123     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9124     break;
    9125 
    9126   case 737:
    9127 
    9128 /* Line 1806 of yacc.c  */
    9129 #line 2835 "parser.yy"
    9130     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9131     break;
    9132 
    9133   case 738:
    9134 
    9135 /* Line 1806 of yacc.c  */
    9136 #line 2837 "parser.yy"
    9137     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9138     break;
    9139 
    9140   case 739:
    9141 
    9142 /* Line 1806 of yacc.c  */
    9143 #line 2839 "parser.yy"
    9144     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9145     break;
    9146 
    9147   case 740:
    9148 
    9149 /* Line 1806 of yacc.c  */
    9150 #line 2841 "parser.yy"
    9151     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9152     break;
    9153 
    9154   case 741:
    9155 
    9156 /* Line 1806 of yacc.c  */
    9157 #line 2843 "parser.yy"
    9158     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9159     break;
    9160 
    9161   case 742:
    9162 
    9163 /* Line 1806 of yacc.c  */
    9164 #line 2845 "parser.yy"
    9165     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9166     break;
    9167 
    91689154  case 743:
    91699155
    91709156/* Line 1806 of yacc.c  */
    9171 #line 2850 "parser.yy"
     9157#line 2848 "parser.yy"
    91729158    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91739159    break;
     
    91769162
    91779163/* Line 1806 of yacc.c  */
     9164#line 2853 "parser.yy"
     9165    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     9166    break;
     9167
     9168  case 745:
     9169
     9170/* Line 1806 of yacc.c  */
    91789171#line 2855 "parser.yy"
    9179     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9180     break;
    9181 
    9182   case 745:
     9172    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
     9173    break;
     9174
     9175  case 746:
    91839176
    91849177/* Line 1806 of yacc.c  */
     
    91879180    break;
    91889181
    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 
    91969182  case 749:
    91979183
    91989184/* Line 1806 of yacc.c  */
     9185#line 2881 "parser.yy"
     9186    { (yyval.en) = 0; }
     9187    break;
     9188
     9189  case 750:
     9190
     9191/* Line 1806 of yacc.c  */
    91999192#line 2883 "parser.yy"
    9200     { (yyval.en) = 0; }
    9201     break;
    9202 
    9203   case 750:
    9204 
    9205 /* Line 1806 of yacc.c  */
    9206 #line 2885 "parser.yy"
    92079193    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92089194    break;
     
    92119197
    92129198/* Line 1806 of yacc.c  */
    9213 #line 9214 "Parser/parser.cc"
     9199#line 9200 "Parser/parser.cc"
    92149200      default: break;
    92159201    }
     
    94429428
    94439429/* Line 2067 of yacc.c  */
    9444 #line 2888 "parser.yy"
     9430#line 2886 "parser.yy"
    94459431
    94469432// ----end of grammar----
  • src/Parser/parser.yy

    r2acf5fc rab57786  
    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:30:56 2016
    13 // Update Count     : 1944
     12// Last Modified On : Mon Aug 22 14:15:15 2016
     13// Update Count     : 1943
    1414//
    1515
     
    21532153asm_name_opt:                                                                                   // GCC
    21542154        // empty
    2155         | ASM '(' string_literal_list ')' attribute_list_opt
    2156                 { delete $3; }
     2155        | ASM '(' string_literal ')' attribute_list_opt
    21572156        ;
    21582157
     
    21842183        | any_word
    21852184        | any_word '(' comma_expression_opt ')'
    2186                 { delete $3; }
    21872185        ;
    21882186
  • src/SynTree/Expression.cc

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

    r2acf5fc rab57786  
    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 //
    15 
    16 #pragma once
     14//
    1715
    1816#include_next <assert.h>
     
    2422void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... );
    2523
    26 template<typename T, typename U>
    27 static inline T safe_dynamic_cast(const U& src) {
    28         T ret = dynamic_cast<T>(src);
    29         assert(ret);
    30         return ret;
    31 }
    32 
    3324// Local Variables: //
    3425// tab-width: 4 //
Note: See TracChangeset for help on using the changeset viewer.