Changeset bd85400


Ignore:
Timestamp:
Feb 5, 2016, 5:09:04 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
52f85e0, 6ed1d4b, d41280e, d63eeb0
Parents:
4789f44
Message:

remove offsetof keyword, parser 0/1 names as structure fields, update examples to new stdlib, rename algorithms to stdlib, extend stdlib, use correct type for box parameters

Location:
src
Files:
2 added
2 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/Box.cc

    r4789f44 rbd85400  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Fri Feb 05 12:23:10 2016
    13 // Update Count     : 280
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Feb  5 16:45:07 2016
     13// Update Count     : 286
    1414//
    1515
     
    549549                                        arg = new AddressExpr( arg );
    550550                                } else {
    551                                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
     551                                        // use type computed in unification to declare boxed variables
     552                                        Type * newType = param->clone();
     553                                        if ( env ) env->apply( newType );
     554                                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, newType, 0 );
    552555                                        newObj->get_type()->get_qualifiers() = Type::Qualifiers(); // TODO: is this right???
    553556                                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
  • src/Parser/lex.cc

    r4789f44 rbd85400  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 180
    385 #define YY_END_OF_BUFFER 181
     384#define YY_NUM_RULES 179
     385#define YY_END_OF_BUFFER 180
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[884] =
     393static yyconst flex_int16_t yy_accept[876] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  115,  115,  118,  118,
    396       181,  179,    7,    9,    8,  138,  117,  102,  143,  146,
    397       114,  125,  126,  141,  139,  129,  140,  132,  142,  107,
    398       108,  109,  130,  131,  148,  150,  149,  151,  179,  102,
    399       123,  179,  124,  144,  102,  104,  102,  102,  102,  102,
    400       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    401       102,  102,  127,  147,  128,  145,    7,  179,    4,    4,
    402       180,  105,  180,  106,  115,  116,  122,  118,  119,    7,
    403         9,    0,    8,  155,  174,  102,    0,  167,  137,  160,
    404       168,  165,  152,  163,  153,  164,  162,    0,  112,    3,
    405 
    406         0,  166,  112,  110,    0,    0,  110,  110,    0,    0,
    407       110,  109,  109,  109,    0,  109,  135,  136,  134,  156,
    408       158,  154,  159,  157,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
    410       173,    0,  117,  114,  102,    0,    0,  170,    0,  102,
    411       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    412       102,  102,  102,  102,  102,  102,   39,  102,  102,  102,
    413       102,  102,  102,  102,  102,  102,  102,   57,  102,  102,
    414       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    415       102,  102,  102,  102,  169,  161,    7,    0,    0,    0,
    416 
    417         2,    0,    5,  105,    0,    0,    0,  115,    0,  121,
    418       120,  120,    0,    0,    0,  118,    0,    0,    0,    0,
     395        0,    0,    0,    0,    0,    0,  114,  114,  117,  117,
     396      180,  178,    7,    9,    8,  137,  116,  101,  142,  145,
     397      113,  124,  125,  140,  138,  128,  139,  131,  141,  106,
     398      107,  108,  129,  130,  147,  149,  148,  150,  178,  101,
     399      122,  178,  123,  143,  101,  103,  101,  101,  101,  101,
     400      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     401      101,  126,  146,  127,  144,    7,  178,    4,    4,  179,
     402      104,  179,  105,  114,  115,  121,  117,  118,    7,    9,
     403        0,    8,  154,  173,  101,    0,  166,  136,  159,  167,
     404      164,  151,  162,  152,  163,  161,    0,  111,    3,    0,
     405
     406      165,  111,  109,    0,    0,  109,  109,    0,    0,  109,
     407      108,  108,  108,    0,  108,  134,  135,  133,  155,  157,
     408      153,  158,  156,    0,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,  102,  172,
     410        0,  116,  113,  101,    0,    0,  169,    0,  101,  101,
     411      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     412      101,  101,  101,  101,  101,   39,  101,  101,  101,  101,
     413      101,  101,  101,  101,  101,  101,   57,  101,  101,  101,
     414      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     415      101,  101,  168,  160,    7,    0,    0,    0,    2,    0,
     416
     417        5,  104,    0,    0,    0,  114,    0,  120,  119,  119,
     418        0,    0,    0,  117,    0,    0,    0,    0,    0,    0,
     419        0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
     420      111,  111,    0,  111,  111,  111,    0,    6,  111,  109,
     421        0,    0,    0,  111,    0,  109,  109,  109,  109,    0,
     422      110,    0,    0,  108,  108,  108,  108,    0,  170,  171,
     423        0,  176,  174,    0,    0,    0,  102,    0,    0,    0,
     424        0,    0,    0,    0,    0,  101,   17,  101,  101,  101,
     425      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     426      101,  101,  101,  101,  101,   14,  101,  101,  101,  101,
     427
     428      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     429      101,  101,  101,  101,   51,  101,  101,  101,   64,  101,
     430      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     431      101,   88,  101,  101,  101,  101,  101,  101,  101,    0,
     432        0,    0,    0,    0,    0,    0,    0,  119,    0,    0,
     433        0,    0,    0,  119,    0,    0,  177,    0,    0,    0,
     434        0,    0,    0,    0,  111,    0,  111,    0,  111,    0,
     435        0,  111,  111,  109,  109,    0,    0,  110,  110,    0,
     436      110,    0,  110,  108,  108,    0,    0,    0,    0,    0,
     437        0,    0,    0,    0,    0,  175,  101,  101,  101,  101,
     438
     439      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     440      101,  101,  101,  101,  101,  101,  101,  101,  101,   21,
     441      101,   24,  101,   27,  101,  101,  101,  101,  101,  101,
     442      101,   42,  101,   44,  101,  101,  101,  101,  101,  101,
     443      101,   56,  101,   67,  101,  101,  101,  101,  101,  101,
     444      101,  101,  101,  101,  101,   89,  101,  101,   96,  101,
     445      101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     446        0,    0,    0,    0,    0,  119,    0,    0,    0,    0,
     447        0,  111,  111,    0,    0,    0,    0,    0,  110,  110,
     448        0,  112,    0,  110,  110,    0,    0,    0,    0,    0,
     449
     450        0,    0,    0,    0,    0,    0,    0,    0,  101,  101,
     451       22,  101,  101,  101,  101,  101,  101,  101,   15,  101,
     452      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     453      101,  101,  101,   23,   25,  101,   32,  101,  101,  101,
     454      101,  101,   41,  101,  101,  101,  101,   49,  101,  101,
     455       54,  101,  101,  101,  101,  101,   76,  101,  101,  101,
     456      101,  101,   86,  101,  101,   94,  101,  101,  100,    0,
    419457        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  133,  112,  112,    0,  112,  112,  112,    0,    6,
    421       112,  110,    0,    0,    0,  112,    0,  110,  110,  110,
    422       110,    0,  111,    0,    0,  109,  109,  109,  109,    0,
    423       171,  172,    0,  177,  175,    0,    0,    0,  103,    0,
    424         0,    0,    0,    0,    0,    0,    0,  102,   17,  102,
    425       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    426       102,  102,  102,  102,  102,  102,  102,   14,  102,  102,
    427 
    428       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    429       102,  102,  102,  102,  102,  102,   51,  102,  102,  102,
    430        64,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    431       102,  102,  102,  102,   89,  102,  102,  102,  102,  102,
    432       102,  102,    0,    0,    0,    0,    0,    0,    0,    0,
    433       120,    0,    0,    0,    0,    0,  120,    0,    0,  178,
    434         0,    0,    0,    0,    0,    0,    0,  112,    0,  112,
    435         0,  112,    0,    0,  112,  112,  110,  110,    0,    0,
    436       111,  111,    0,  111,    0,  111,  109,  109,    0,    0,
    437         0,    0,    0,    0,    0,    0,    0,    0,  176,  102,
    438 
    439       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    440       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    441       102,  102,   21,  102,   24,  102,   27,  102,  102,  102,
    442       102,  102,  102,  102,   42,  102,   44,  102,  102,  102,
    443       102,  102,  102,  102,   56,  102,   67,  102,  102,  102,
    444       102,  102,  102,  102,  102,  102,  102,  102,  102,   90,
    445       102,  102,   97,  102,  102,    0,    0,    0,    0,    0,
    446         0,    0,    0,    0,    0,    0,    0,    0,    0,  120,
    447         0,    0,    0,    0,    0,  112,  112,    0,    0,    0,
    448         0,    0,  111,  111,    0,  113,    0,  111,  111,    0,
    449 
    450         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,  102,  102,   22,  102,  102,  102,  102,  102,
    452       102,  102,   15,  102,  102,  102,  102,  102,  102,  102,
    453       102,  102,  102,  102,  102,  102,  102,   23,   25,  102,
    454        32,  102,  102,  102,  102,  102,   41,  102,  102,  102,
    455       102,   49,  102,  102,   54,  102,  102,  102,  102,  102,
    456       102,   77,  102,  102,  102,  102,  102,   87,  102,  102,
    457        95,  102,  102,  101,    0,    0,    0,    0,    0,    0,
    458         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,  113,    0,    0,  111,  113,  113,  113,
    460 
    461       113,  113,  111,    0,    0,    0,    0,    0,    0,    0,
    462         0,    0,    0,  102,    0,  102,  102,  102,  102,  102,
    463       102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
    464       102,   59,  102,  102,  102,  102,  102,  102,  102,  102,
    465        28,  102,  102,  102,  102,   40,   43,   46,  102,  102,
    466        52,  102,   61,   68,  102,  102,  102,   76,   78,   81,
    467        82,   84,   85,  102,  102,   92,  102,  102,    0,    1,
    468         0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
    469       120,    0,    0,    0,    0,  113,  113,  113,  113,    0,
    470         0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
    471 
    472        18,  102,  102,  102,  102,  102,  102,  102,   16,  102,
    473       102,  102,   33,  102,  102,  102,  102,  102,  102,  102,
    474       102,  102,  102,  102,   35,  102,   37,   38,  102,   48,
    475        53,  102,  102,  102,  102,   91,  102,  102,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    477         0,   10,   11,   29,   55,  102,  102,  102,  102,  102,
    478       102,  102,  102,  102,  102,  102,   60,   62,   65,  102,
    479       102,   79,   93,  102,  102,   36,   47,   70,   72,   73,
    480       102,   96,   98,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,    0,    0,    0,  102,   69,  102,  102,   12,
    482 
    483       102,  102,   30,   34,  102,  102,  102,   66,  102,  102,
    484       102,  102,  102,  102,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,    0,    0,    0,   58,  102,  102,
    486       102,  102,  102,  102,  102,   50,   63,   74,   80,   94,
    487        99,  102,  102,    0,    0,    0,    0,    0,    0,    0,
    488         0,  102,  102,   13,   19,  102,   31,  102,  102,  102,
    489        26,   88,    0,    0,  102,  102,  102,  102,  102,   75,
    490       100,  102,   86,   20,  102,   45,   83,  102,  102,  102,
    491       102,   71,    0
     458        0,    0,    0,    0,    0,    0,    0,    0,  112,    0,
     459        0,  110,  112,  112,  112,  112,  112,  110,    0,    0,
     460
     461        0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
     462      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
     463      101,  101,  101,  101,  101,  101,   59,  101,  101,  101,
     464      101,  101,  101,  101,  101,   28,  101,  101,  101,  101,
     465       40,   43,   46,  101,  101,   52,  101,   61,   68,  101,
     466      101,   75,   77,   80,   81,   83,   84,  101,  101,   91,
     467      101,  101,    0,    1,    0,    0,    0,    0,    0,    0,
     468      104,    0,    0,    0,  119,    0,    0,    0,    0,  112,
     469      112,  112,  112,    0,    0,    0,    0,    0,    0,    0,
     470        0,    0,  101,  101,   18,  101,  101,  101,  101,  101,
     471
     472      101,  101,   16,  101,  101,  101,   33,  101,  101,  101,
     473      101,  101,  101,  101,  101,  101,  101,  101,   35,  101,
     474       37,   38,  101,   48,   53,  101,  101,  101,   90,  101,
     475      101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     476        0,    0,    0,    0,   10,   11,   29,   55,  101,  101,
     477      101,  101,  101,  101,  101,  101,  101,  101,  101,   60,
     478       62,   65,  101,  101,   78,   92,  101,  101,   36,   47,
     479       71,   72,  101,   95,   97,    0,    0,    0,    0,    0,
     480        0,    0,    0,    0,    0,    0,    0,  101,   69,  101,
     481      101,   12,  101,  101,   30,   34,  101,  101,  101,   66,
     482
     483      101,  101,  101,  101,  101,  101,    0,    0,    0,    0,
     484        0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
     485      101,  101,  101,  101,  101,  101,  101,   50,   63,   73,
     486       79,   93,   98,  101,  101,    0,    0,    0,    0,    0,
     487        0,    0,    0,  101,  101,   13,   19,  101,   31,  101,
     488      101,  101,   26,   87,    0,    0,  101,  101,  101,  101,
     489      101,   74,   99,  101,   85,   20,  101,   45,   82,  101,
     490      101,  101,  101,   70,    0
    492491    } ;
    493492
     
    537536    } ;
    538537
    539 static yyconst flex_int16_t yy_base[1058] =
     538static yyconst flex_int16_t yy_base[1050] =
    540539    {   0,
    541         0,   83, 2252, 2249,   93,    0,  175,  176,  177,  178,
    542      2263, 2799,  189, 2799,  195,   54, 2799, 2210,   59,  171,
    543      2799, 2799, 2799,   55,  186, 2799,  189,  187,  202,  214,
    544       272,    0, 2228, 2799,  214, 2227,  150,  340,  153,  222,
    545      2799,  157, 2799,  215,  224, 2799,  207,  181,  221,  249,
    546       235,  289,  155,  255,  218,  196,  257,  312,  256,  323,
    547       259,  192, 2799,  185, 2799, 2222,  377,  342, 2799, 2231,
    548      2799, 2200,  241, 2799,    0, 2799,  421,    0, 2799,  393,
    549      2799,  399,  405, 2799,  492, 2199,  256, 2799, 2799, 2799,
    550      2799, 2799, 2215, 2799, 2212, 2799, 2799, 2222,  552, 2799,
    551 
    552      2239, 2799,  413,  393,  437,  493,  377,  263,  195,  430,
    553       276,    0,  382,  318,  231,  400, 2799, 2799, 2799, 2209,
    554      2799, 2799, 2799, 2207, 2204,  302,  306, 2217,  356,  395,
    555       422,  400,  455,  440,  469, 2198,  494, 2148,  495, 2177,
    556      2799,  384, 2799, 2799,  521, 2171, 2168, 2799, 2141,  414,
    557       424,  463,  470,  274,  480,  341,  485,  495,  401,  432,
    558       484,  490,  513,  482,  520,  486,  506,  487,  488,  533,
    559       532,  534,  535,  541,  231,  536,  544, 2169,  553,  547,
    560       545,  548,  569,  570,  546,  572,  571,  573,  551,  576,
    561       622,  581,  583,  586, 2799, 2799,  653,  659, 2216,  665,
    562 
    563      2799,  692, 2799, 2164,  590, 2158, 2157,    0,  668, 2799,
    564      2799,  655, 2156, 2154, 2134,    0, 2155,  664,  668,  671,
    565       679,  689,  672,  693,  680,  696, 2152,  699,  700, 2128,
    566      2125, 2799,    0,  599,  717,  707,  611, 2124, 2175, 2799,
    567       715,    0,  486,  738,  760,  777,  803,  673, 2799, 2133,
    568      2106,    0,  791, 2149,  783,  677, 2799, 2126, 2101,  824,
    569      2799, 2799, 2132, 2799, 2799,  704,  715, 2110, 2108,  704,
    570      2104, 2103, 2101,    0, 2098,    0, 2067,  708,  582,  719,
    571       729,  687,  738,  597,  739,  742,  801,  740,  765,  746,
    572       766,  791,  804,  707,  789,  793,  803, 2097,  811,  812,
    573 
    574       761,  818,  813,  819,  824,  826,  830,  828,  699,  832,
    575       836,  838,  839,  840,  844,  847,  851,  843,  850,  853,
    576      2096,  492,  857,  858,  861,  859,  860,  864,  863,  867,
    577       865,  869,  871,  870, 2094,  877,  918,  878,  882,  889,
    578       885,  891,  948,  943, 2088, 2087, 2086,    0, 2084,    0,
    579       936,  940, 2081,    0, 2080,    0, 2079,    0, 2098, 2799,
    580       922,  935, 2076, 2070,    0, 2066,    0, 2799,  948,  969,
    581       959, 2799,  975,  990, 1014, 2064, 2799, 2799,  933,  935,
    582      1001,  976, 1034,  938, 1028,  960, 2799, 2799, 2062, 2059,
    583      2057,    0, 2055,    0, 2052,    0, 2049,    0, 2799,  958,
    584 
    585       955,  901,  976, 1003,  980, 1013,  974, 1014,  968, 1011,
    586      1018, 1015, 1029, 1026, 1032, 1030, 1034, 1033, 1036, 1041,
    587      1042, 1038, 2051, 1044, 2050, 1054, 2048, 1055, 1059, 1060,
    588      1062, 1064, 1063, 1065, 2045, 1067, 2042, 1068, 1071, 1072,
    589      1075, 1077, 1079, 1080, 2041, 1083, 2040, 1084, 1086, 1090,
    590      1094, 1096, 1091, 1101, 1102, 1104, 1098, 1108, 1103, 1118,
    591      1106, 1119, 2038, 1109, 1112, 1176, 2032,    0, 2029,    0,
    592      2028,    0, 2027,    0, 1166, 2025,    0, 2022,    0, 2019,
    593      2018, 2017,    0, 2015,    0, 1170, 2012, 1176, 1162, 1196,
    594      1163, 1139, 1166, 2799, 1219, 1229, 1255, 2021, 1996, 2007,
    595 
    596      2005,    0, 2002,    0, 1999,    0, 1998,    0, 1997,    0,
    597      1995,    0, 1159, 1122, 1995, 1196, 1134, 1174, 1153, 1184,
    598      1124, 1177, 1206, 1198, 1207, 1214, 1213, 1208, 1210, 1224,
    599      1212, 1264, 1238, 1240, 1241, 1243, 1245, 1992, 1254, 1246,
    600      1991, 1249, 1251, 1256, 1257, 1260, 1990, 1261, 1259, 1253,
    601      1263, 1988, 1266, 1274, 1985, 1273, 1277, 1267, 1280, 1283,
    602      1284, 1984, 1285,  805, 1287, 1288, 1291, 1298, 1290, 1295,
    603      1983, 1297, 1300, 1981, 2027, 1974,    0, 1973,    0, 1971,
    604         0, 1938,    0, 1936,    0, 1935,    0, 1932,    0, 1929,
    605         0, 1344, 1350, 1377, 1361, 1928, 2799, 1367, 1317, 1367,
    606 
    607      1318, 1927, 2799, 1925,    0, 1922,    0, 1919,    0, 1918,
    608         0,    0,    0, 1920,    0, 1355, 1304, 1356, 1344, 1328,
    609      1346, 1359, 1363, 1361, 1306, 1376, 1362, 1379, 1374, 1381,
    610      1383, 1388, 1386, 1399, 1393, 1395, 1397, 1400, 1401, 1402,
    611      1918, 1404, 1407, 1409, 1410, 1915, 1914, 1913, 1412, 1413,
    612      1911, 1416, 1908, 1907, 1417, 1420, 1414, 1906, 1904, 1901,
    613      1897, 1893, 1889, 1425, 1427, 1873, 1436, 1424, 1921, 2799,
    614      1868,    0, 1866,    0,    0,    0, 1866,    0,    0,    0,
    615      2799,    0,    0,    0,    0, 1475, 1862, 2799, 2799, 1481,
    616      1861,    0, 1859,    0,    0,    0,    0, 1856, 1422, 1428,
    617 
    618      1858, 1441, 1461, 1458, 1444, 1469, 1470, 1442, 1857, 1471,
    619      1474, 1480, 1476, 1475, 1509, 1491, 1486, 1507, 1497, 1492,
    620      1493, 1498, 1499, 1502, 1855, 1504, 1852, 1851, 1503, 1850,
    621      1848, 1506, 1510, 1511, 1514, 1845, 1517, 1515,    0,    0,
    622         0, 1841, 1840, 1838, 1565,    0, 1835, 1834, 1833, 1831,
    623      1828, 1830, 1829, 1827, 1824, 1522, 1527, 1529, 1528, 1521,
    624      1532, 1545, 1520, 1547, 1548, 1576, 1823, 1551, 1822, 1553,
    625      1552, 1557, 1563, 1558, 1564, 1820, 1817, 1816, 1815, 1813,
    626      1565, 1806, 1804, 1800, 1797, 1796, 1795, 1793, 1776, 1767,
    627      1766, 1763, 1756, 1753, 1746, 1567, 1747, 1569, 1571, 1572,
    628 
    629      1570, 1574, 1578, 1746, 1579, 1605, 1582, 1725, 1584, 1583,
    630      1593, 1591, 1595, 1598, 1721, 1720, 1713, 1711, 1710, 1668,
    631      1664, 1663, 1662, 1661, 1660, 1659, 1657, 1657, 1599, 1601,
    632      1604, 1603, 1609, 1610, 1602, 1655, 1654, 1615, 1519, 1518,
    633      1621, 1616, 1617, 1456, 1309, 1183, 1122,  998,  934,  770,
    634       653, 1622, 1623,  655, 1629, 1630,  621, 1633, 1634, 1635,
    635       585,  537,  436,  395, 1639, 1641, 1642, 1643, 1644,  362,
    636       322, 1646,  270,  232, 1648,  203,  199, 1649, 1650, 1652,
    637      1651,  136, 2799, 1724, 1737, 1750, 1760, 1770, 1783, 1793,
    638      1806, 1819, 1832, 1840, 1850, 1857, 1864, 1871, 1878, 1885,
    639 
    640      1892, 1899, 1906, 1913, 1926, 1933, 1937, 1945, 1948, 1955,
    641      1962, 1969, 1972, 1979, 1985, 1998, 2011, 2018, 2025, 2032,
    642      2039, 2042, 2049, 2052, 2059, 2062, 2069, 2072, 2079, 2082,
    643      2089, 2092, 2099, 2102, 2109, 2117, 2124, 2131, 2138, 2145,
    644      2148, 2155, 2158, 2165, 2168, 2175, 2181, 2194, 2201, 2208,
    645      2211, 2218, 2221, 2228, 2231, 2238, 2241, 2248, 2251, 2258,
    646      2261, 2268, 2275, 2278, 2285, 2288, 2295, 2302, 2309, 2312,
    647      2319, 2322, 2329, 2332, 2339, 2342, 2349, 2352, 2359, 2365,
    648      2378, 2385, 2392, 2395, 2402, 2405, 2412, 2415, 2422, 2425,
    649      2432, 2435, 2442, 2445, 2452, 2455, 2462, 2465, 2472, 2479,
    650 
    651      2482, 2489, 2492, 2499, 2502, 2509, 2512, 2515, 2521, 2528,
    652      2537, 2544, 2551, 2554, 2561, 2564, 2567, 2573, 2580, 2583,
    653      2586, 2589, 2592, 2595, 2598, 2601, 2608, 2611, 2618, 2621,
    654      2624, 2627, 2630, 2640, 2647, 2650, 2653, 2656, 2663, 2670,
    655      2677, 2680, 2687, 2694, 2701, 2708, 2715, 2722, 2729, 2736,
    656      2743, 2750, 2757, 2764, 2771, 2778, 2785
     540        0,   83, 2238, 2237,   93,    0,  175,  176,  177,  178,
     541     2252, 2782,  189, 2782,  195,   54, 2782, 2197,   59,  171,
     542     2782, 2782, 2782,   55,  186, 2782,  189,  187,  202,  214,
     543      272,    0, 2213, 2782,  214, 2213,  150,  340,  153,  222,
     544     2782,  157, 2782,  215,  224, 2782,  207,  181,  221,  249,
     545      235,  289,  155,  255,  218,  206,  266,  256,  323,  259,
     546      192, 2782,  223, 2782, 2210,  377,  342, 2782, 2220, 2782,
     547     2187,  234, 2782,    0, 2782,  421,    0, 2782,  393, 2782,
     548      399,  405, 2782,  492, 2184,  241, 2782, 2782, 2782, 2782,
     549     2782, 2201, 2782, 2200, 2782, 2782, 2211,  552, 2782, 2226,
     550
     551     2782,  413,  393,  437,  493,  377,  318,  195,  430,  382,
     552        0,  384,  321,  196,  427, 2782, 2782, 2782, 2194, 2782,
     553     2782, 2782, 2193, 2192,  252,  302, 2206,  342,  435,  422,
     554      381,  455,  400,  494, 2185,  440, 2133,  469, 2163, 2782,
     555      276, 2782, 2782,  520, 2159, 2157, 2782, 2128,  414,  463,
     556      470,  325,  254,  479,  432,  274,  480,  423,  483,  498,
     557      492,  503,  499,  509,  341,  455,  484,  377,  510,  512,
     558      517,  518,  529,  530,  531,  537, 2154,  541,  536,  544,
     559      557,  546,  566,  569,  538,  552,  548,  554,  588,  571,
     560      570,  580, 2782, 2782,  645,  651, 2202,  657, 2782,  663,
     561
     562     2782, 2152,  593, 2147, 2144,    0,  631, 2782, 2782,  669,
     563     2141, 2140, 2139,    0, 2160,  629,  635,  639,  678,  677,
     564      666,  670,  671,  674, 2138,  681,  682, 2115, 2114, 2782,
     565        0,  597,  702,  678,  676, 2111, 2160, 2782,  693,    0,
     566      710,  723,  743,  762,  788,  707, 2782, 2119, 2094,    0,
     567      776, 2138,  768,  723, 2782, 2113, 2086,  809, 2782, 2782,
     568     2118, 2782, 2782,  705,  710, 2098, 2097,  724, 2091, 2088,
     569     2087,    0, 2086,    0, 2056,  709,  682,  707,  712,  710,
     570      724,  647,  750,  671,  786,  751,  748,  731,  778,  787,
     571      789,  788,  792,  790,  758, 2084,  796,  806,  800,  813,
     572
     573      798,  810,  802,  816,  822,  819,  815,  826,  830,  829,
     574      831,  832,  833,  837,  839,  841,  846,  843, 2081,  848,
     575      850,  849,  851,  852,  854,  853,  857,  855,  858,  863,
     576      868, 2080,  867,  912,  871,  878,  872,  879,  882,  937,
     577      939, 2076, 2074, 2071,    0, 2070,    0,  927,  931, 2069,
     578        0, 2067,    0, 2064,    0, 2084, 2782,  913,  926, 2064,
     579     2060,    0, 2057,    0, 2782,  942,  960,  953, 2782,  966,
     580      981, 1005, 2053, 2782, 2782,  955,  968,  995,  968, 1028,
     581      892, 1014,  970, 2782, 2782, 2049, 2047, 2045,    0, 2042,
     582        0, 2040,    0, 2038,    0, 2782,  909,  944,  982,  943,
     583
     584     1006,  911, 1012,  923, 1013, 1019, 1009, 1016, 1023, 1024,
     585     1020,  972, 1030, 1028,  989, 1026, 1034, 1027, 1039, 2038,
     586     1044, 2035, 1048, 2034, 1049, 1051, 1052, 1053, 1056, 1057,
     587     1055, 2033, 1059, 2031,  946, 1063, 1066, 1067, 1068, 1071,
     588     1069, 2028, 1075, 2025, 1077, 1080, 1079, 1082, 1084, 1086,
     589     1087, 1090, 1097, 1107, 1088, 1108, 1093, 1098, 2024, 1096,
     590     1111, 1164, 2020,    0, 2018,    0, 2015,    0, 2012,    0,
     591     1151, 2011,    0, 2010,    0, 2008, 2005, 2002,    0, 2001,
     592        0, 1156, 2000, 1162, 1148, 1182, 1149, 1126, 1147, 2782,
     593     1201, 1215, 1241, 2010, 1983, 1992, 1991,    0, 1990,    0,
     594
     595     1988,    0, 1985,    0, 1982,    0, 1981,    0, 1161, 1149,
     596     1983, 1179, 1140, 1180, 1117, 1182, 1192, 1199, 1181, 1163,
     597     1196, 1200, 1201, 1220, 1198, 1221, 1224,  604, 1226, 1227,
     598     1231, 1233, 1234, 1981, 1244, 1236, 1978, 1240, 1241, 1246,
     599     1247, 1243, 1975, 1250, 1251, 1253, 1254, 1974, 1255, 1267,
     600     1973, 1264, 1271, 1256, 1263, 1257, 1971, 1275, 1277, 1279,
     601     1260, 1281, 1290, 1285, 1288, 1968, 1289, 1291, 1967, 2015,
     602     1961,    0, 1958,    0, 1957,    0, 1956,    0, 1954,    0,
     603     1921,    0, 1919,    0, 1918,    0, 1336, 1342, 1369, 1353,
     604     1915, 2782, 1359, 1307, 1359, 1309, 1912, 2782, 1911,    0,
     605
     606     1910,    0, 1908,    0, 1905,    0,    0,    0, 1905,    0,
     607     1347, 1295, 1292, 1323, 1337, 1338, 1296, 1349, 1351, 1355,
     608     1353, 1348, 1363, 1364, 1371, 1373, 1380, 1375, 1403, 1381,
     609     1385, 1389, 1094, 1387, 1390, 1904, 1391, 1393, 1397, 1401,
     610     1903, 1901, 1898, 1394, 1400, 1897, 1404, 1896, 1894, 1402,
     611     1408, 1891, 1890, 1889, 1887, 1884, 1880, 1417, 1412, 1876,
     612     1420, 1418, 1921, 2782, 1853,    0, 1852,    0,    0,    0,
     613     1854,    0,    0,    0, 2782,    0,    0,    0,    0, 1463,
     614     1849, 2782, 2782, 1469, 1846,    0, 1845,    0,    0,    0,
     615        0, 1844, 1407, 1446, 1845, 1406, 1423, 1300, 1431, 1449,
     616
     617     1455, 1447, 1842, 1457, 1448, 1459, 1464, 1460, 1490, 1474,
     618     1470, 1494, 1480, 1475, 1484, 1485, 1486, 1482, 1841, 1487,
     619     1840, 1838, 1489, 1835, 1834, 1491, 1493, 1497, 1833, 1498,
     620     1500,    0,    0,    0, 1828, 1825, 1824, 1548,    0, 1823,
     621     1821, 1818, 1817, 1816, 1817, 1814, 1813, 1812, 1505, 1510,
     622     1502, 1501, 1504, 1508, 1513, 1517, 1526, 1528, 1559, 1810,
     623     1533, 1807, 1534, 1535, 1544, 1545, 1538, 1539, 1806, 1805,
     624     1803, 1800, 1540, 1799, 1798, 1793, 1786, 1784, 1783, 1780,
     625     1779, 1778, 1776, 1759, 1750, 1749, 1746, 1546, 1742, 1549,
     626     1550, 1552, 1554, 1557, 1558, 1739, 1556, 1589, 1566, 1732,
     627
     628     1565, 1572, 1577, 1579, 1567, 1578, 1727, 1726, 1705, 1704,
     629     1703, 1696, 1694, 1693, 1650, 1649, 1647, 1645, 1644, 1646,
     630     1571, 1584, 1582, 1581, 1586, 1593, 1595, 1645, 1644, 1597,
     631     1642, 1641, 1598, 1599, 1602, 1636, 1635, 1633, 1422, 1421,
     632     1205, 1201,  946, 1605, 1610,  910, 1603, 1607,  768, 1613,
     633     1618, 1619,  723,  605,  503,  370, 1609, 1620, 1623, 1624,
     634     1625,  338,  337, 1627,  290,  251, 1630,  200,  196, 1631,
     635     1632, 1637, 1633,  136, 2782, 1707, 1720, 1733, 1743, 1753,
     636     1766, 1776, 1789, 1802, 1815, 1823, 1833, 1840, 1847, 1854,
     637     1861, 1868, 1875, 1882, 1889, 1896, 1909, 1916, 1920, 1928,
     638
     639     1931, 1938, 1945, 1952, 1955, 1962, 1968, 1981, 1994, 2001,
     640     2008, 2015, 2022, 2025, 2032, 2035, 2042, 2045, 2052, 2055,
     641     2062, 2065, 2072, 2075, 2082, 2085, 2092, 2100, 2107, 2114,
     642     2121, 2128, 2131, 2138, 2141, 2148, 2151, 2158, 2164, 2177,
     643     2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2224, 2231,
     644     2234, 2241, 2244, 2251, 2258, 2261, 2268, 2271, 2278, 2285,
     645     2292, 2295, 2302, 2305, 2312, 2315, 2322, 2325, 2332, 2335,
     646     2342, 2348, 2361, 2368, 2375, 2378, 2385, 2388, 2395, 2398,
     647     2405, 2408, 2415, 2418, 2425, 2428, 2435, 2438, 2445, 2448,
     648     2455, 2462, 2465, 2472, 2475, 2482, 2485, 2492, 2495, 2498,
     649
     650     2504, 2511, 2520, 2527, 2534, 2537, 2544, 2547, 2550, 2556,
     651     2563, 2566, 2569, 2572, 2575, 2578, 2581, 2584, 2591, 2594,
     652     2601, 2604, 2607, 2610, 2613, 2623, 2630, 2633, 2636, 2639,
     653     2646, 2653, 2660, 2663, 2670, 2677, 2684, 2691, 2698, 2705,
     654     2712, 2719, 2726, 2733, 2740, 2747, 2754, 2761, 2768
    657655    } ;
    658656
    659 static yyconst flex_int16_t yy_def[1058] =
     657static yyconst flex_int16_t yy_def[1050] =
    660658    {   0,
    661       883,    1,  884,  884,  883,    5,  885,  885,  886,  886,
    662       883,  883,  883,  883,  883,  883,  883,  887,  883,  883,
    663       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    664       883,   31,  883,  883,  883,  883,  883,  883,  888,  887,
    665       883,  883,  883,  883,  887,  883,  887,  887,  887,  887,
    666       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    667       887,  887,  883,  883,  883,  883,  883,  889,  883,  883,
    668       883,  890,  883,  883,  891,  883,  883,  892,  883,  883,
    669       883,  883,  883,  883,  883,  887,  883,  883,  883,  883,
    670       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    671 
    672       893,  883,   99,   30,  883,  883,  883,  883,  894,   30,
    673       883,   31,  883,  883,   31,  883,  883,  883,  883,  883,
    674       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    675       883,  883,  883,  883,  883,  883,  883,  883,  883,  895,
    676       883,  883,  883,  883,  887,  896,  897,  883,  883,  887,
    677       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    678       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    679       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    680       887,  887,  887,  887,  887,  887,  887,  887,  887,  887,
    681       887,  887,  887,  887,  883,  883,  883,  889,  889,  889,
    682 
    683       883,  889,  883,  890,  883,  898,  899,  891,  883,  883,
    684       883,  883,  900,  901,  902,  892,  883,  883,  883,  883,
    685       883,  883,  883,  883,  883,  883,  883,  883,  883,  903,
    686       904,  883,   99,  883,  883,  883,  883,   99,  905,  883,
    687       883,  104,  104,  883,  883,  883,  883,  883,  883,  883,
    688       883,  906,  907,  908,  883,  883,  883,  883,  883,  883,
    689       883,  883,  883,  883,  883,  883,  883,  883,  895,  883,
    690       909,  910,  911,  912,  913,  914,  883,  915,  915,  915,
    691       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    692       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    693 
    694       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    695       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    696       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    697       915,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    698       915,  915,  916,  917,  918,  919,  920,  921,  922,  923,
    699       883,  883,  924,  925,  926,  927,  928,  929,  883,  883,
    700       883,  883,  883,  930,  931,  932,  933,  883,  883,  883,
    701       883,  883,  883,  883,  370,  375,  883,  883,  934,  935,
    702       936,  883,  883,  883,  936,  883,  883,  883,  937,  938,
    703       939,  940,  941,  942,  943,  944,  945,  946,  883,  947,
    704 
    705       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    706       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    707       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    708       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    709       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    710       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    711       947,  947,  947,  947,  947,  948,  949,  950,  951,  952,
    712       953,  954,  955,  956,  883,  957,  958,  959,  960,  961,
    713       961,  962,  963,  964,  965,  883,  486,  883,  966,  883,
    714       966,  883,  883,  883,  883,  883,  883,  883,  883,  967,
    715 
    716       968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    717       978,  979,  980,  980,  980,  980,  980,  980,  980,  980,
    718       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    719       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    720       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    721       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    722       980,  980,  980,  980,  980,  980,  980,  980,  980,  980,
    723       980,  980,  980,  980,  981,  982,  983,  984,  985,  986,
    724       987,  988,  989,  990,  991,  992,  993,  994,  995,  996,
    725       997,  883,  883,  883,  883,  998,  883,  594,  883,  883,
    726 
    727       883,  598,  883,  999, 1000, 1001, 1002, 1003, 1004, 1005,
    728      1006, 1007, 1008, 1009, 1010, 1009, 1009, 1009, 1009, 1009,
    729      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    730      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    731      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    732      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009,
    733      1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1011,  883,
    734      1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
    735       883, 1022, 1023, 1024, 1025,  883,  686,  883,  883,  883,
    736      1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1034,
    737 
    738      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    739      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    740      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    741      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1036,
    742      1037, 1038, 1039, 1040,  883, 1041, 1026, 1028, 1042, 1043,
    743      1033, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    744      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    745      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    746      1034, 1034, 1034, 1044, 1045, 1038, 1046, 1039, 1047, 1040,
    747      1048, 1049, 1042, 1050, 1043, 1034, 1034, 1034, 1034, 1034,
    748 
    749      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    750      1034, 1034, 1034, 1034, 1051, 1044, 1052, 1045, 1053, 1046,
    751      1054, 1047, 1055, 1048, 1056, 1049, 1050, 1034, 1034, 1034,
    752      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    753      1034, 1034, 1034, 1057, 1051, 1052, 1053, 1054, 1028, 1055,
    754      1056, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    755      1034, 1034, 1057, 1028, 1034, 1034, 1034, 1034, 1034, 1034,
    756      1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
    757      1034, 1034,    0,  883,  883,  883,  883,  883,  883,  883,
    758       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    759 
    760       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    761       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    762       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    763       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    764       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    765       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    766       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    767       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    768       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    769       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    770 
    771       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    772       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    773       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    774       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    775       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    776       883,  883,  883,  883,  883,  883,  883
     659      875,    1,  876,  876,  875,    5,  877,  877,  878,  878,
     660      875,  875,  875,  875,  875,  875,  875,  879,  875,  875,
     661      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     662      875,   31,  875,  875,  875,  875,  875,  875,  880,  879,
     663      875,  875,  875,  875,  879,  875,  879,  879,  879,  879,
     664      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     665      879,  875,  875,  875,  875,  875,  881,  875,  875,  875,
     666      882,  875,  875,  883,  875,  875,  884,  875,  875,  875,
     667      875,  875,  875,  875,  879,  875,  875,  875,  875,  875,
     668      875,  875,  875,  875,  875,  875,  875,  875,  875,  885,
     669
     670      875,   98,   30,  875,  875,  875,  875,  886,   30,  875,
     671       31,  875,  875,   31,  875,  875,  875,  875,  875,  875,
     672      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     673      875,  875,  875,  875,  875,  875,  875,  875,  887,  875,
     674      875,  875,  875,  879,  888,  889,  875,  875,  879,  879,
     675      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     676      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     677      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     678      879,  879,  879,  879,  879,  879,  879,  879,  879,  879,
     679      879,  879,  875,  875,  875,  881,  881,  881,  875,  881,
     680
     681      875,  882,  875,  890,  891,  883,  875,  875,  875,  875,
     682      892,  893,  894,  884,  875,  875,  875,  875,  875,  875,
     683      875,  875,  875,  875,  875,  875,  875,  895,  896,  875,
     684       98,  875,  875,  875,  875,   98,  897,  875,  875,  103,
     685      103,  875,  875,  875,  875,  875,  875,  875,  875,  898,
     686      899,  900,  875,  875,  875,  875,  875,  875,  875,  875,
     687      875,  875,  875,  875,  875,  875,  887,  875,  901,  902,
     688      903,  904,  905,  906,  875,  907,  907,  907,  907,  907,
     689      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     690      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     691
     692      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     693      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     694      907,  907,  907,  907,  907,  907,  907,  907,  907,  907,
     695      907,  907,  907,  907,  907,  907,  907,  907,  907,  908,
     696      909,  910,  911,  912,  913,  914,  915,  875,  875,  916,
     697      917,  918,  919,  920,  921,  875,  875,  875,  875,  875,
     698      922,  923,  924,  925,  875,  875,  875,  875,  875,  875,
     699      875,  367,  372,  875,  875,  926,  927,  928,  875,  875,
     700      875,  928,  875,  875,  875,  929,  930,  931,  932,  933,
     701      934,  935,  936,  937,  938,  875,  939,  939,  939,  939,
     702
     703      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     704      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     705      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     706      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     707      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     708      939,  939,  939,  939,  939,  939,  939,  939,  939,  939,
     709      939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
     710      875,  949,  950,  951,  952,  953,  953,  954,  955,  956,
     711      957,  875,  482,  875,  958,  875,  958,  875,  875,  875,
     712      875,  875,  875,  875,  875,  959,  960,  961,  962,  963,
     713
     714      964,  965,  966,  967,  968,  969,  970,  971,  972,  972,
     715      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     716      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     717      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     718      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     719      972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
     720      972,  972,  972,  972,  972,  972,  972,  972,  972,  973,
     721      974,  975,  976,  977,  978,  979,  980,  981,  982,  983,
     722      984,  985,  986,  987,  988,  989,  875,  875,  875,  875,
     723      990,  875,  589,  875,  875,  875,  593,  875,  991,  992,
     724
     725      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
     726     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     727     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     728     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     729     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     730     1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
     731     1001, 1001, 1003,  875, 1004, 1005, 1006, 1007, 1008, 1009,
     732     1010, 1011, 1012, 1013,  875, 1014, 1015, 1016, 1017,  875,
     733      680,  875,  875,  875, 1018, 1019, 1020, 1021, 1022, 1023,
     734     1024, 1025, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     735
     736     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     737     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     738     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     739     1026, 1027, 1028, 1029, 1030, 1031, 1032,  875, 1033, 1018,
     740     1020, 1034, 1035, 1025, 1026, 1026, 1026, 1026, 1026, 1026,
     741     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     742     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     743     1026, 1026, 1026, 1026, 1026, 1036, 1037, 1030, 1038, 1031,
     744     1039, 1032, 1040, 1041, 1034, 1042, 1035, 1026, 1026, 1026,
     745     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     746
     747     1026, 1026, 1026, 1026, 1026, 1026, 1043, 1036, 1044, 1037,
     748     1045, 1038, 1046, 1039, 1047, 1040, 1048, 1041, 1042, 1026,
     749     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     750     1026, 1026, 1026, 1026, 1026, 1049, 1043, 1044, 1045, 1046,
     751     1020, 1047, 1048, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     752     1026, 1026, 1026, 1026, 1049, 1020, 1026, 1026, 1026, 1026,
     753     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
     754     1026, 1026, 1026, 1026,    0,  875,  875,  875,  875,  875,
     755      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     756      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     757
     758      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     759      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     760      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     761      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     762      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     763      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     764      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     765      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     766      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     767      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     768
     769      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     770      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     771      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     772      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     773      875,  875,  875,  875,  875,  875,  875,  875,  875
    777774    } ;
    778775
    779 static yyconst flex_int16_t yy_nxt[2884] =
     776static yyconst flex_int16_t yy_nxt[2867] =
    780777    {   0,
    781778       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    785782       18,   18,   40,   18,   18,   18,   18,   18,   40,   18,
    786783       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
    787        51,   52,   53,   18,   54,   18,   55,   18,   18,   56,
    788        18,   57,   58,   59,   60,   61,   62,   18,   18,   18,
    789        63,   64,   65,   66,   67,   84,   92,   85,   85,   67,
    790        88,   89,   68,   71,   71,   71,   71,   71,   71,   71,
    791 
    792        71,   71,   71,   72,   71,   71,   71,   71,   71,   71,
     784       51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
     785       18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
     786       62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
     787       87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
     788
     789       70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
     790       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
     791       70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
    793792       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    794        71,   71,   71,   71,   71,   71,   71,   71,   72,   72,
    795        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    796        72,   72,   72,   71,   73,   71,   71,   72,   74,   72,
    797        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    798        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
    799        72,   72,   72,   71,   71,   71,   71,   76,   76,   79,
    800        79,  123,  124,   90,  141,   79,   79,   87,   76,   76,
    801        80,   81,   82,   82,   82,   80,   82,   81,   83,   83,
    802 
    803        83,   82,   91,   93,  142,  146,   87,   98,   95,   99,
    804        99,   99,   99,   99,   99,  252,  195,   94,  100,   85,
    805        96,   97,   85,  101,  177,  118,   77,   77,   77,   77,
    806       143,  147,   87,  102,  103,  144,  104,  104,  104,  104,
    807       105,  105,  119,   87,  120,  121,  148,   87,  149,  254,
    808        87,  883,  161,  106,   87,  194,  107,  182,   87,  150,
    809       151,  152,  108,  109,  153,  154,  196,  155,  110,   87,
    810       156,  157,   87,   87,  106,   87,  145,  162,  158,  159,
    811       111,  160,   87,   87,  163,  260,   87,  180,  108,  206,
    812       164,  109,  103,  181,  112,  112,  112,  112,  112,  112,
    813 
    814        87,  169,  317,  170,  230,  250,   87,   87,   87,  165,
    815        87,  106,  171,  166,  113,  207,  178,  183,  167,  188,
    816       114,   87,  168,  179,  249,   87,  115,  189,  193,  251,
    817       231,  143,  106,  263,  190,  264,  144,  263,  116,  264,
    818        87,  283,  248,  200,  201,  172,  114,  125,  200,  191,
    819       249,  126,  127,  173,  128,  174,  129,  130,  175,  131,
    820       258,  132,  176,   87,  202,  202,  202,  202,  202,  202,
    821       133,  134,  135,   87,   87,  184,  185,  145,  197,   81,
    822        82,   82,   82,  197,  259,  186,  198,  263,  187,  264,
    823       136,  192,   87,  137,   80,   81,   82,   82,   82,   80,
    824 
    825        82,   81,   82,   82,   82,   82,   82,   81,   83,   83,
    826        83,   82,  265,   87,  285,  242,  242,  242,  242,  248,
    827       138,  139,  209,  210,  256,  249,  263,  209,  264,  211,
    828       257,  263,  271,  264,  211,   99,   99,   99,   99,   99,
    829        99,  265,  883,  212,  212,  212,  212,  243,  257,  883,
    830       883,  249,   87,  263,  211,  264,  257,  103,  272,  105,
    831       105,  105,  105,  105,  105,   87,  256,  241,  298,  213,
    832       883,  263,  211,  264,  257,   87,  106,  211,  211,  883,
    833       278,  211,  211,   87,  255,  266,  263,  279,  264,  211,
    834       883,  244,  211,  280,  211,  214,  211,  106,  215,  217,
    835 
    836       263,  267,  264,  218,  219,  299,  883,  883,  220,  221,
    837       245,  222,  245,  223,   87,  246,  246,  246,  246,  246,
    838       246,   87,  224,  225,  226,  263,  263,  264,  264,  143,
    839       282,   87,  281,   87,  144,   87,   87,   87,   87,   87,
    840       374,   87,  227,   87,  300,  228,   87,  247,  286,  284,
    841       305,  287,  288,  289,  447,  290,  291,   87,  307,  292,
    842       310,  293,  301,  302,   87,  309,  294,  295,  296,  303,
    843       297,   87,   87,  229,  233,  233,  233,  233,  233,  233,
    844       308,  306,  304,   87,   87,   87,   87,   87,   87,  311,
    845       234,  235,   87,  236,  237,   87,   87,   87,   87,   87,
    846 
    847       314,  323,   87,  315,   87,  313,  238,  312,  329,  324,
    848       316,  234,  235,  234,  318,  322,  236,  319,  237,  320,
    849        87,   87,   87,   87,   87,  330,  321,   87,  331,  335,
    850       143,  325,   87,   87,   87,  333,   87,   87,  345,  328,
    851       368,  326,  327,  332,  334,  338,  336,  340,   87,  341,
    852       342,  401,  368,  339,  197,   81,   82,   82,   82,  197,
    853       200,  201,  198,  368,  346,  200,  200,  201,  406,  209,
    854       210,  200,   87,   87,  209,  368,  337,  351,  351,  351,
    855       351,  202,  202,  202,  202,  202,  202,  202,  202,  202,
    856       202,  202,  202,  343,  201,  359,  360,  360,  343,  359,
    857 
    858       344,  360,  359,  359,  360,  360,   87,  883,  360,  352,
    859       359,  359,  360,  360,  202,  202,  202,  202,  202,  202,
    860       359,  377,  360,  361,  359,  387,  360,  359,  362,  360,
    861       359,  359,  360,  360,  369,  263,  369,  264,   87,  370,
    862       370,  370,  370,  370,  370,  372,  263,  377,  264,  372,
    863        87,  387,  389,  234,  235,  404,  236,  237,   87,   87,
    864       105,  105,  105,  105,  105,  105,  372,  419,  372,  434,
    865        87,  371,  400,  372,  234,  235,  234,  106,  390,  236,
    866        87,  237,  246,  246,  246,  246,  246,  246,  402,   87,
    867        87,   87,  255,   87,  405,  407,  403,   87,  106,  375,
    868 
    869       375,  375,  375,  375,  375,  105,  105,  105,  105,  105,
    870       105,  380,   87,  408,  412,  234,   87,   87,  236,  237,
    871       245,  425,  245,  414,  883,  246,  246,  246,  246,  246,
    872       246,  376,  415,  382,  413,  383,  234,  255,  234,  384,
    873        87,  236,   87,  237,   87,  385,  112,  112,  112,  112,
    874       112,  112,   87,  420,   87,   87,   87,  386,  416,  417,
    875       418,  383,   87,   87,   87,  384,  660,  409,  424,   87,
    876        87,  421,  422,  410,  411,   87,  426,   87,  260,   87,
    877       423,   87,  431,   87,  427,  433,  432,   87,  428,   87,
    878        87,   87,  435,  436,   87,   87,  429,  430,   87,  438,
    879 
    880       440,   87,   87,  441,   87,  437,  439,  442,   87,   87,
    881        87,   87,   87,  444,   87,   87,   87,  446,   87,  445,
    882        87,   87,   87,  448,  443,  450,  143,  455,   87,   87,
    883       449,  454,  451,   87,  452,  453,   87,  460,  456,  459,
    884        87,  464,   87,  457,  458,  201,  462,  461,  463,  343,
    885       201,  199,   87,  359,  343,  360,  344,  465,  211,  211,
    886       211,  211,  351,  351,  351,  351,  359,  515,  360,   87,
    887       370,  370,  370,  370,  370,  370,  369,  490,  369,  490,
    888       498,  370,  370,  370,  370,  370,  370,  491,  864,  492,
    889       475,  486,  486,  486,  486,  486,  486,  233,  233,  233,
    890 
    891       233,  233,  233,  490,  499,  490,   87,  234,  494,   87,
    892       236,  237,  242,  242,  242,  242,  105,  105,  493,   87,
    893       513,  380,  514,  487,  494,   87,  493,   87,  234,  373,
    894       234,   87,  522,  236,  494,  237,  375,  375,  375,  375,
    895       375,  375,  518,  382,  374,  383,  516,  520,  883,  384,
    896       494,  495,  883,  495,   87,  385,  496,  496,  496,  496,
    897       496,  496,   87,  517,   87,   87,   87,  386,  376,   87,
    898       382,  383,  383,  519,  521,  384,  384,   87,  523,  525,
    899        87,   87,  500,   87,   87,   87,  530,   87,  497,   87,
    900       533,  524,   87,   87,  386,   87,  526,  527,  383,  528,
    901 
    902       531,  529,  384,  535,  537,   87,   87,  532,  534,  538,
    903        87,   87,  536,   87,   87,   87,   87,  539,   87,   87,
    904       542,  545,   87,   87,  543,  547,   87,  540,   87,  546,
    905        87,   87,  541,  548,   87,   87,  544,   87,  551,  549,
    906       555,   87,   87,  553,  550,   87,  558,   87,  552,   87,
    907       554,  556,   87,   87,   87,   87,  566,   87,  557,   87,
    908        87,  563,  559,   87,  562,  560,  567,  561,  565,   87,
    909        87,  564,  574,   87,  571,   87,  883,  569,  201,  568,
    910       623,  572,  573,  490,  575,   87,  617,  570,  211,  211,
    911       211,  211,  486,  486,  486,  486,  486,  486,  375,  375,
    912 
    913       375,  375,  375,  375,   87,  619,  490,  490,  234,  490,
    914        87,  236,  237,  593,  597,  593,  491,  596,  594,  594,
    915       594,  594,  594,  594,  487,   87,  621,  616,   87,  234,
    916       488,  234,  490,  490,  236,   87,  237,  883,  620,  624,
    917       597,  496,  496,  496,  496,  496,  496,   87,  622,   87,
    918       595,  598,  598,  598,  598,  598,  598,   87,   87,   87,
    919       625,   87,  618,   87,   87,   87,  631,  599,  630,  626,
    920       600,  601,  495,  627,  495,   87,  633,  496,  496,  496,
    921       496,  496,  496,  602,  628,  629,  632,  634,  599,   87,
    922       599,   87,   87,  600,   87,  601,   87,   87,  635,  640,
    923 
    924        87,  639,   87,  638,   87,   87,  641,   87,   87,  637,
    925        87,   87,   87,  636,   87,   87,  649,   87,   87,  643,
    926       646,  647,  644,  645,   87,   87,  642,  648,   87,  650,
    927       652,   87,  651,  653,   87,   87,   87,  654,   87,   87,
    928       655,   87,   87,  664,  659,  661,   87,  657,   87,   87,
    929       665,   87,  658,  656,  663,   87,  666,   87,  688,  688,
    930       709,  662,  701,  883,  668,  667,  486,  486,  486,  486,
    931       486,  486,  594,  594,  594,  594,  594,  594,  593,   87,
    932       593,  688,  688,  594,  594,  594,  594,  594,  594,  598,
    933       598,  598,  598,  598,  598,   87,  704,   87,  592,  686,
    934 
    935       686,  686,  686,  686,  686,  689,   87,   87,  703,  689,
    936        87,  699,   87,   87,   87,  599,  702,  706,  600,  601,
    937       705,  602,  707,  718,  700,   87,  689,   87,  689,  708,
    938        87,  687,   87,  689,   87,  711,  599,   87,  599,   87,
    939       710,  600,  716,  601,   87,  712,   87,  713,   87,  714,
    940        87,   87,   87,   87,  717,   87,  715,  721,   87,  719,
    941        87,   87,  724,   87,   87,   87,  720,   87,   87,  722,
    942       728,   87,  734,   87,  723,   87,   87,  725,   87,   87,
    943       733,  726,  727,  729,  731,  735,  732,   87,  736,  753,
    944       738,  730,   87,   87,  752,   87,  737,  686,  686,  686,
    945 
    946       686,  686,  686,  598,  598,  598,  598,  598,  598,   87,
    947       863,  760,   87,  599,  756,  757,  600,  601,  754,  755,
    948        87,   87,   87,  758,  759,   87,   87,   87,  761,  687,
    949       764,   87,  766,  769,  599,  690,  599,   87,  762,  600,
    950       763,  601,   87,   87,   87,  767,  768,  765,   87,   87,
    951        87,  770,  772,   87,   87,   87,  771,   87,   87,  773,
    952        87,   87,   87,  774,  776,   87,   87,  778,   87,   87,
    953        87,   87,   87,   87,  775,  783,  782,  777,   87,   87,
    954        87,  779,  800,   87,  780,  798,  781,  686,  686,  686,
    955       686,  686,  686,  796,  799,  797,   87,  803,   87,   87,
    956 
    957       806,  804,   87,   87,   87,  807,  801,  808,   87,   87,
    958       809,  810,  805,  802,   87,   87,   87,  811,   87,  745,
    959        87,   87,   87,   87,  812,   87,  831,   87,  833,   87,
    960        87,  836,  834,   87,   87,   87,  837,  839,  813,  814,
    961       830,  829,   87,  832,   87,  828,   87,  840,  835,   87,
    962        87,  841,   87,   87,   87,   87,   87,  838,  854,  853,
    963        87,   87,  842,  855,  857,  843,   87,   87,   87,  859,
    964       858,  852,   87,   87,   87,  860,  861,  862,  856,  866,
    965        87,   87,  865,  867,   87,   87,   87,  869,  870,  871,
    966        87,  868,   87,   87,   87,   87,  874,   87,  876,   87,
    967 
    968        87,   87,   87,   87,  875,   87,   87,  873,   87,  879,
    969       872,  883,  882,  883,  851,  883,  850,  883,  848,  877,
    970       878,  881,  883,  880,   69,   69,   69,   69,   69,   69,
    971        69,   69,   69,   69,   69,   69,   69,   75,   75,   75,
    972        75,   75,   75,   75,   75,   75,   75,   75,   75,   75,
    973        78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
    974        78,   78,   78,   86,  847,  883,   86,  846,   86,   86,
    975        86,   86,   86,  140,  883,  845,   87,  140,  140,  140,
    976       140,  140,  140,  199,  199,  199,  199,  199,  199,  199,
    977       199,  199,  199,  199,  199,  199,  204,   87,   87,  204,
    978 
    979       883,  204,  204,  204,  204,  204,  208,  827,  208,  208,
    980       883,  208,  208,  208,  208,  208,  208,  826,  208,  216,
    981       824,  883,  216,  216,  216,  216,  216,  216,  216,  216,
    982       822,  216,  239,  239,  239,  239,  239,  239,  239,  239,
    983       239,  239,  239,  239,  239,  253,  253,  883,  253,  820,
    984       883,  818,  253,  269,  816,   87,  269,   87,  269,  269,
    985       269,  269,  269,  273,   87,  273,   87,   87,   87,  273,
    986       275,   87,  275,   87,   87,   87,  275,  347,   87,  347,
    987        87,   87,  883,  347,  349,  795,  349,  793,  883,  883,
    988       349,  353,  790,  353,  788,  786,   87,  353,  355,   87,
    989 
    990       355,   87,   87,   87,  355,  357,   87,  357,   87,   87,
    991       751,  357,  364,  748,  364,  747,  745,  205,  364,  366,
    992       741,  366,  740,  670,   87,  366,  239,  239,  239,  239,
    993       239,  239,  239,  239,  239,  239,  239,  239,  239,  379,
    994        87,  379,  381,  381,   87,  381,  381,  381,   87,  381,
    995       253,  253,   87,  253,  391,   87,  391,   87,   87,   87,
    996       391,  393,   87,  393,   87,   87,   87,  393,  395,   87,
    997       395,   87,  697,  696,  395,  273,  694,  273,  397,  692,
    998       397,  690,  596,  685,  397,  275,  684,  275,   86,  682,
    999       680,   86,  678,   86,   86,   86,   86,   86,  199,  199,
    1000 
    1001       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    1002       199,  466,  466,  466,  466,  466,  466,  466,  466,  466,
    1003       466,  466,  466,  466,  467,  676,  467,  674,  672,  670,
    1004       467,  469,   87,  469,   87,   87,   87,  469,  471,   87,
    1005       471,   87,   87,   87,  471,  347,   87,  347,  473,  615,
    1006       473,  613,  611,  609,  473,  349,  607,  349,  476,  605,
    1007       476,  500,  603,  603,  476,  353,  592,  353,  478,  591,
    1008       478,  589,  481,  481,  478,  355,  587,  355,  480,  585,
    1009       480,  583,  581,  579,  480,  357,  577,  357,  482,   87,
    1010       482,   87,   87,   87,  482,  364,   87,  364,  484,   87,
    1011 
    1012       484,   87,   87,  512,  484,  366,  510,  366,  489,  508,
    1013       489,  506,  489,  504,  489,  379,  502,  379,  488,  379,
    1014       485,  379,  381,  381,  483,  381,  381,  381,  360,  381,
    1015       501,  360,  501,  481,  479,  477,  501,  503,  474,  503,
    1016       472,  470,  468,  503,  505,   87,  505,   87,   87,  399,
    1017       505,  391,  398,  391,  507,  396,  507,  394,  392,  270,
    1018       507,  393,  265,  393,  509,  264,  509,  388,  388,  252,
    1019       509,  395,  378,  395,  511,  378,  511,  240,  373,  367,
    1020       511,  397,  365,  397,   86,  363,  359,   86,  358,   86,
    1021        86,   86,   86,   86,  466,  466,  466,  466,  466,  466,
    1022 
    1023       466,  466,  466,  466,  466,  466,  466,  576,  356,  576,
    1024       354,  350,  348,  576,  467,  205,  467,  578,  201,  578,
    1025        87,  277,  276,  578,  469,  274,  469,  580,  270,  580,
    1026       265,  268,  265,  580,  471,  263,  471,  582,  262,  582,
    1027       261,  240,  232,  582,  473,   85,  473,  584,   85,  584,
    1028        87,  205,  203,  584,  476,   85,  476,  586,  122,  586,
    1029       117,   87,  883,  586,  478,   70,  478,  480,   70,  480,
    1030       883,  883,  883,  480,  588,  883,  588,  883,  883,  883,
    1031       588,  482,  883,  482,  590,  883,  590,  883,  883,  883,
    1032       590,  484,  883,  484,  489,  883,  489,  883,  489,  883,
    1033 
    1034       489,  381,  883,  381,  883,  883,  883,  381,  604,  883,
    1035       604,  883,  883,  883,  604,  501,  883,  501,  606,  883,
    1036       606,  883,  883,  883,  606,  503,  883,  503,  608,  883,
    1037       608,  883,  883,  883,  608,  505,  883,  505,  610,  883,
    1038       610,  883,  883,  883,  610,  507,  883,  507,  612,  883,
    1039       612,  883,  883,  883,  612,  509,  883,  509,  614,  883,
    1040       614,  883,  883,  883,  614,  511,  883,  511,   86,  883,
    1041       883,   86,  883,   86,   86,   86,   86,   86,  669,  669,
    1042       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    1043       669,  671,  883,  671,  883,  883,  883,  671,  576,  883,
    1044 
    1045       576,  673,  883,  673,  883,  883,  883,  673,  578,  883,
    1046       578,  675,  883,  675,  883,  883,  883,  675,  580,  883,
    1047       580,  677,  883,  677,  883,  883,  883,  677,  582,  883,
    1048       582,  679,  883,  679,  883,  883,  883,  679,  584,  883,
    1049       584,  681,  883,  681,  883,  883,  883,  681,  586,  883,
    1050       586,  683,  883,  683,  883,  883,  883,  683,  588,  883,
    1051       588,   86,  883,   86,  883,  883,  883,   86,  590,  883,
    1052       590,  489,  883,  489,  883,  883,  883,  489,  691,  883,
    1053       691,  883,  883,  883,  691,  604,  883,  604,  693,  883,
    1054       693,  883,  883,  883,  693,  606,  883,  606,  695,  883,
    1055 
    1056       695,  883,  883,  883,  695,  608,  883,  608,  140,  883,
    1057       140,  883,  883,  883,  140,  610,  883,  610,  698,  883,
    1058       698,  612,  883,  612,   86,  883,  883,   86,  883,   86,
    1059        86,   86,   86,   86,  614,  883,  614,  669,  669,  669,
    1060       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    1061       739,  883,  739,  883,  883,  883,  739,  671,  883,  671,
    1062       204,  883,  204,  883,  883,  883,  204,  673,  883,  673,
    1063       742,  883,  742,  675,  883,  675,  204,  883,  883,  204,
    1064       883,  204,  204,  204,  204,  204,  677,  883,  677,  743,
    1065       883,  743,  679,  883,  679,  681,  883,  681,  744,  883,
    1066 
    1067       744,  683,  883,  683,   86,  883,   86,  746,  883,  746,
    1068       883,  883,  883,  746,  691,  883,  691,  269,  883,  269,
    1069       883,  883,  883,  269,  693,  883,  693,  749,  883,  749,
    1070       695,  883,  695,  140,  883,  140,  750,  883,  750,  883,
    1071       883,  883,  750,   86,  883,  883,   86,  883,   86,   86,
    1072        86,   86,   86,  784,  883,  784,  739,  883,  739,  204,
    1073       883,  204,  785,  883,  785,  883,  883,  883,  785,  787,
    1074       883,  787,  883,  883,  883,  787,  789,  883,  789,  883,
    1075       883,  883,  789,  791,  883,  791,  792,  883,  792,  883,
    1076       883,  883,  792,  794,  883,  794,  883,  883,  883,  794,
    1077 
    1078       815,  883,  815,  883,  883,  883,  815,  817,  883,  817,
    1079       883,  883,  883,  817,  819,  883,  819,  883,  883,  883,
    1080       819,  821,  883,  821,  883,  883,  883,  821,  823,  883,
    1081       823,  883,  883,  883,  823,  825,  883,  825,  883,  883,
    1082       883,  825,  614,  883,  614,  883,  883,  883,  614,  844,
    1083       883,  844,  883,  883,  883,  844,  677,  883,  677,  883,
    1084       883,  883,  677,  681,  883,  681,  883,  883,  883,  681,
    1085        86,  883,   86,  883,  883,  883,   86,  849,  883,  849,
    1086       883,  883,  883,  849,  140,  883,  140,  883,  883,  883,
    1087       140,  204,  883,  204,  883,  883,  883,  204,   11,  883,
    1088 
    1089       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1090       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1091       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1092       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1093       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1094       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1095       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1096       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1097       883,  883,  883
     793       71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
     794       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     795       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     796       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
     797       78,  122,  123,   89,  140,   78,   78,   86,   75,   75,
     798       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
     799
     800       82,   81,   90,   92,  141,  145,   86,   97,   94,   98,
     801       98,   98,   98,   98,   98,  250,  875,   93,   99,   84,
     802       95,   96,   84,  100,  176,  117,   76,   76,   76,   76,
     803      142,  146,   86,  101,  102,  143,  103,  103,  103,  103,
     804      104,  104,  118,   86,  119,  120,  147,   86,  148,  252,
     805      258,   86,  160,  105,  193,  192,  106,   86,   86,  149,
     806      150,  151,  107,  108,  152,  153,  181,  154,  109,   86,
     807      155,  156,   86,   86,  105,   86,  144,  161,  157,  158,
     808      110,  159,  204,  261,  162,  262,   86,  179,  107,  228,
     809      163,  108,  102,  180,  111,  111,  111,  111,  111,  111,
     810
     811       86,  168,   86,  169,  194,   86,   86,   86,  205,  164,
     812       86,  105,  170,  165,  112,  229,  177,   86,  166,  186,
     813      113,  281,  167,  178,  269,   86,  114,  187,  191,  182,
     814      183,  142,  105,  261,  188,  262,  143,  284,  115,  184,
     815       86,   86,  185,  198,  199,  171,  113,  124,  198,  189,
     816      270,  125,  126,  172,  127,  173,  128,  129,  174,  130,
     817      248,  131,  175,  256,  200,  200,  200,  200,  200,  200,
     818      132,  133,  134,  261,   86,  262,   86,  144,  195,   80,
     819       81,   81,   81,  195,  249,  280,  196,  257,   86,   86,
     820      135,  190,   86,  136,   79,   80,   81,   81,   81,   79,
     821
     822       81,   80,   81,   81,   81,   81,   81,   80,   82,   82,
     823       82,   81,  261,  305,  262,  240,  240,  240,  240,  246,
     824      137,  138,  207,  208,  875,  247,  254,  207,   86,  209,
     825      247,  261,  255,  262,  209,   98,   98,   98,   98,   98,
     826       98,  263,  875,  210,  210,  210,  210,  241,  246,  308,
     827      875,  247,  263,  261,  209,  262,  247,  102,  255,  104,
     828      104,  104,  104,  104,  104,   86,  261,  239,  262,  211,
     829      875,  261,  209,  262,   86,  255,  105,  209,  209,  875,
     830      276,  209,  209,   86,  253,  264,  261,  277,  262,  209,
     831      296,  242,  209,  254,  209,  212,  209,  105,  213,  215,
     832
     833      261,  255,  262,  216,  217,  283,   86,  875,  218,  219,
     834      243,  220,  243,  221,   86,  244,  244,  244,  244,  244,
     835      244,   86,  222,  223,  224,  261,  265,  262,  142,  306,
     836       86,   86,  278,  143,   86,   86,  285,  286,  287,  279,
     837      288,  289,  225,   86,  290,  226,  291,  245,  282,   86,
     838       86,  292,  293,  294,   86,  295,  297,  875,  298,  301,
     839       86,   86,  307,   86,  299,  300,  309,  303,   86,   86,
     840      304,   86,  302,  227,  231,  231,  231,  231,  231,  231,
     841       86,   86,   86,  312,  310,  311,  313,   86,   86,   86,
     842      232,  233,   86,  234,  235,   86,  142,   86,  314,   86,
     843
     844      321,  315,  330,   86,  320,   86,  236,  318,   86,  316,
     845      317,  232,  233,  232,  319,  325,  234,   86,  235,  322,
     846       86,   86,   86,  331,  333,  328,  332,  629,  326,  323,
     847      324,   86,  207,  208,  337,  335,  338,  207,  365,   86,
     848      329,  342,  334,  336,  339,  327,  195,   80,   81,   81,
     849       81,  195,  198,  199,  196,   86,   86,  198,  198,  199,
     850      356,  365,  357,  198,  340,  199,  356,  343,  357,  340,
     851      356,  341,  357,  200,  200,  200,  200,  200,  200,  200,
     852      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
     853      200,  348,  348,  348,  348,  357,  357,  356,   86,  357,
     854
     855      358,  356,  356,  357,  357,  356,  359,  357,  356,  356,
     856      357,  357,  356,  356,  357,  357,  369,  365,  403,  366,
     857      369,  366,   86,  349,  367,  367,  367,  367,  367,  367,
     858      875,  232,  233,   86,  234,  235,  261,  369,  262,  369,
     859      365,  261,  405,  262,  369,  104,  104,  104,  104,  104,
     860      104,  398,  232,  233,  232,  374,  368,  234,   86,  235,
     861       86,   86,  105,   86,  371,  244,  244,  244,  244,  244,
     862      244,  384,  386,  397,   86,   86,  399,  253,  401,  400,
     863      402,  374,   86,  105,  372,  372,  372,  372,  372,  372,
     864      104,  104,  104,  104,  104,  104,  377,  384,  387,   86,
     865
     866      232,   86,   86,  234,  235,  243,  404,  243,  411,   86,
     867      244,  244,  244,  244,  244,  244,  373,  410,  379,   86,
     868      380,  232,  253,  232,  381,  409,  234,  419,  235,   86,
     869      382,  111,  111,  111,  111,  111,  111,   86,   86,   86,
     870       86,   86,  383,   86,  412,  415,  380,   86,  416,   86,
     871      381,   86,  406,   86,  413,  414,  417,   86,  407,  408,
     872      422,   86,  421,  258,   86,  420,   86,   86,  418,  424,
     873       86,  423,  428,   86,  426,  427,  430,   86,  429,  425,
     874       86,   86,   86,   86,   86,  431,  432,  433,   86,  437,
     875       86,  435,   86,  438,   86,  439,  434,   86,  436,   86,
     876
     877       86,   86,   86,   86,   86,   86,   86,  443,   86,   86,
     878      444,  441,  440,  446,   86,  442,  445,  451,   86,   86,
     879      142,  450,   86,   86,  447,  449,  448,  456,  452,   86,
     880       86,  459,  453,   86,  494,  460,  454,  455,  340,  199,
     881      457,  199,  458,  340,  356,  341,  357,  197,  461,  209,
     882      209,  209,  209,  348,  348,  348,  348,  356,  495,  357,
     883       86,   86,   86,   86,  367,  367,  367,  367,  367,  367,
     884      366,  509,  366,  514,   86,  367,  367,  367,  367,  367,
     885      367,  471,  482,  482,  482,  482,  482,  482,  231,  231,
     886      231,  231,  231,  231,   86,   86,  516,   86,  232,  486,
     887
     888      875,  234,  235,  240,  240,  240,  240,  104,  104,  487,
     889      489,  510,  486,  512,  483,  377,  490,  545,  490,  232,
     890      370,  232,  488,   86,  234,  486,  235,  372,  372,  372,
     891      372,  372,  372,   86,  875,  371,  489,  379,  486,  380,
     892       86,  525,  490,  381,  490,  491,  529,  491,  511,  382,
     893      492,  492,  492,  492,  492,  492,  379,   86,  380,  373,
     894       86,  383,  381,   86,   86,  380,  513,   86,  496,  381,
     895       86,   86,  515,  517,   86,   86,  519,   86,   86,   86,
     896      383,   86,  493,  518,  380,   86,  526,  521,  381,  520,
     897       86,  522,  523,  524,  527,   86,  531,  532,  530,   86,
     898
     899       86,  528,   86,   86,   86,  533,   86,   86,   86,  534,
     900       86,  535,  538,  541,   86,  543,  539,   86,   86,   86,
     901       86,  536,   86,  542,  537,  544,   86,  540,   86,  551,
     902       86,   86,  547,   86,  549,   86,  546,   86,   86,   86,
     903      548,   86,  550,  552,   86,   86,  558,   86,   86,   86,
     904      555,  553,  554,  556,  560,  561,  559,  557,   86,   86,
     905      567,  566,   86,  716,  563,  562,  199,  564,   86,  568,
     906      486,  569,  570,  209,  209,  209,  209,  565,  482,  482,
     907      482,  482,  482,  482,  372,  372,  372,  372,  372,  372,
     908      616,   86,  486,  486,  232,  592,  486,  234,  235,  588,
     909
     910       86,  588,  487,  591,  589,  589,  589,  589,  589,  589,
     911      483,  614,   86,  612,   86,  232,  484,  232,  486,  486,
     912      234,  592,  235,  492,  492,  492,  492,  492,  492,  611,
     913       86,   86,   86,   86,  621,  620,  590,  593,  593,  593,
     914      593,  593,  593,   86,  615,  613,  617,   86,  618,   86,
     915       86,   86,   86,  594,  626,  875,  595,  596,  491,  856,
     916      491,  619,  622,  492,  492,  492,  492,  492,  492,  597,
     917      623,   86,   86,  624,  594,   86,  594,   86,   86,  595,
     918      625,  596,   86,  627,   86,   86,  630,   86,  628,  635,
     919      634,   86,   86,  633,   86,   86,  636,   86,   86,  632,
     920
     921      631,   86,   86,  641,   86,   86,   86,   86,   86,  638,
     922      642,   86,  639,  640,   86,   86,  644,  637,   86,  643,
     923      645,  646,   86,  647,  648,  652,   86,  651,   86,  650,
     924       86,  649,   86,  656,  653,  658,   86,  655,  654,   86,
     925       86,   86,   86,   86,  657,  659,   86,   86,  682,  660,
     926      682,   86,  696,  695,  700,  662,  749,  661,  482,  482,
     927      482,  482,  482,  482,  589,  589,  589,  589,  589,  589,
     928      588,  682,  588,  682,   86,  589,  589,  589,  589,  589,
     929      589,  593,  593,  593,  593,  593,  593,  697,   86,   86,
     930      587,  680,  680,  680,  680,  680,  680,  683,   86,   86,
     931
     932       86,  683,   86,  693,   86,  698,   86,  594,  701,  703,
     933      595,  596,  699,  597,   86,   86,  694,  704,  683,  702,
     934      683,  705,   86,  681,   86,  683,   86,  712,  594,  706,
     935      594,   86,   86,  595,  710,  596,   86,  707,   86,  708,
     936       86,   86,   86,  711,   86,   86,  709,  713,   86,  715,
     937      718,   86,   86,   86,   86,   86,  714,   86,   86,   86,
     938      717,  722,  726,   86,  719,  723,  727,  720,   86,   86,
     939      721,   86,  725,  729,   86,  875,  875,  728,  724,  745,
     940      730,  748,   86,  747,  731,  680,  680,  680,  680,  680,
     941      680,  593,  593,  593,  593,  593,  593,   86,   86,   86,
     942
     943       86,  594,  750,  751,  595,  596,   86,  746,   86,  752,
     944       86,   86,  755,  759,  754,   86,  753,  681,  757,  756,
     945      762,   86,  594,  684,  594,   86,   86,  595,  760,  596,
     946      761,   86,  758,   86,  763,   86,   86,   86,   86,  764,
     947       86,   86,   86,  765,   86,   86,  766,  769,   86,   86,
     948      767,   86,   86,   86,  768,   86,   86,  774,  790,   86,
     949      775,   86,  771,  770,   86,  792,  772,  791,   86,  773,
     950      680,  680,  680,  680,  680,  680,  788,   86,  789,   86,
     951      796,  794,  793,  798,   86,   86,   86,  799,  800,   86,
     952       86,   86,  797,  801,  795,   86,   86,   86,  802,  803,
     953
     954       86,   86,  738,   86,  804,   86,  823,   86,   86,   86,
     955       86,  825,  826,  805,  806,  828,   86,   86,   86,  822,
     956      829,  821,   86,   86,  820,  827,  831,  824,   86,   86,
     957       86,  832,   86,   86,  834,   86,  846,   86,  830,  833,
     958       86,  847,  845,  844,   86,  835,   86,  849,   86,   86,
     959       86,  851,  852,   86,   86,  848,   86,  859,   86,  853,
     960       86,   86,  854,  850,   86,  857,  858,  861,  860,   86,
     961       86,   86,  862,  863,   86,   86,   86,  866,   86,  868,
     962      864,   86,   86,   86,   86,  867,  865,  875,   86,  875,
     963      855,  871,   86,   86,  874,   86,   86,   86,  875,  875,
     964
     965      869,  843,  870,  875,  842,  872,  873,   68,   68,   68,
     966       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
     967       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     968       74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
     969       77,   77,   77,   77,   77,   77,   85,  875,  840,   85,
     970      875,   85,   85,   85,   85,   85,  139,  839,  875,  838,
     971      139,  139,  139,  139,  139,  139,  197,  197,  197,  197,
     972      197,  197,  197,  197,  197,  197,  197,  197,  197,  202,
     973      875,  837,  202,   86,  202,  202,  202,  202,  202,  206,
     974       86,  206,  206,   86,  206,  206,  206,  206,  206,  206,
     975
     976      875,  206,  214,  819,  875,  214,  214,  214,  214,  214,
     977      214,  214,  214,  818,  214,  237,  237,  237,  237,  237,
     978      237,  237,  237,  237,  237,  237,  237,  237,  251,  251,
     979      816,  251,  875,  814,  875,  251,  267,  812,  875,  267,
     980      810,  267,  267,  267,  267,  267,  271,  808,  271,   86,
     981       86,   86,  271,  273,   86,  273,   86,   86,   86,  273,
     982      344,   86,  344,   86,   86,   86,  344,  346,   86,  346,
     983      875,  787,  785,  346,  350,  875,  350,  875,  782,  780,
     984      350,  352,  778,  352,   86,   86,   86,  352,  354,   86,
     985      354,   86,   86,   86,  354,  361,   86,  361,  744,  741,
     986
     987      740,  361,  363,  738,  363,  203,  734,  733,  363,  237,
     988      237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
     989      237,  237,  376,  664,  376,  378,  378,   86,  378,  378,
     990      378,   86,  378,  251,  251,   86,  251,  388,   86,  388,
     991       86,   86,   86,  388,  390,   86,  390,   86,   86,   86,
     992      390,  392,   86,  392,   86,   86,   86,  392,  271,  691,
     993      271,  394,  690,  394,  688,  686,  684,  394,  273,  591,
     994      273,   85,  679,  678,   85,  676,   85,   85,   85,   85,
     995       85,  197,  197,  197,  197,  197,  197,  197,  197,  197,
     996      197,  197,  197,  197,  462,  462,  462,  462,  462,  462,
     997
     998      462,  462,  462,  462,  462,  462,  462,  463,  674,  463,
     999      672,  670,  668,  463,  465,  666,  465,  664,   86,   86,
     1000      465,  467,   86,  467,   86,   86,   86,  467,  344,   86,
     1001      344,  469,   86,  469,   86,  610,  608,  469,  346,  606,
     1002      346,  472,  604,  472,  602,  600,  496,  472,  350,  598,
     1003      350,  474,  598,  474,  587,  586,  584,  474,  352,  477,
     1004      352,  476,  477,  476,  582,  580,  578,  476,  354,  576,
     1005      354,  478,  574,  478,  572,   86,   86,  478,  361,   86,
     1006      361,  480,   86,  480,   86,   86,   86,  480,  363,   86,
     1007      363,  485,  508,  485,  506,  485,  504,  485,  376,  502,
     1008
     1009      376,  500,  376,  498,  376,  378,  378,  484,  378,  378,
     1010      378,  481,  378,  497,  479,  497,  357,  357,  477,  497,
     1011      499,  475,  499,  473,  470,  468,  499,  501,  466,  501,
     1012      464,   86,   86,  501,  388,   86,  388,  503,  396,  503,
     1013      395,  393,  391,  503,  390,  389,  390,  505,  268,  505,
     1014      263,  262,  385,  505,  392,  385,  392,  507,  250,  507,
     1015      375,  375,  238,  507,  394,  370,  394,   85,  364,  362,
     1016       85,  360,   85,   85,   85,   85,   85,  462,  462,  462,
     1017      462,  462,  462,  462,  462,  462,  462,  462,  462,  462,
     1018      571,  356,  571,  355,  353,  351,  571,  463,  347,  463,
     1019
     1020      573,  345,  573,  203,  199,   86,  573,  465,  275,  465,
     1021      575,  274,  575,  272,  268,  263,  575,  467,  266,  467,
     1022      577,  263,  577,  261,  260,  259,  577,  469,  238,  469,
     1023      579,  230,  579,   84,   84,   86,  579,  472,  203,  472,
     1024      581,  201,  581,   84,  121,  116,  581,  474,   86,  474,
     1025      476,  875,  476,   69,   69,  875,  476,  583,  875,  583,
     1026      875,  875,  875,  583,  478,  875,  478,  585,  875,  585,
     1027      875,  875,  875,  585,  480,  875,  480,  485,  875,  485,
     1028      875,  485,  875,  485,  378,  875,  378,  875,  875,  875,
     1029      378,  599,  875,  599,  875,  875,  875,  599,  497,  875,
     1030
     1031      497,  601,  875,  601,  875,  875,  875,  601,  499,  875,
     1032      499,  603,  875,  603,  875,  875,  875,  603,  501,  875,
     1033      501,  605,  875,  605,  875,  875,  875,  605,  503,  875,
     1034      503,  607,  875,  607,  875,  875,  875,  607,  505,  875,
     1035      505,  609,  875,  609,  875,  875,  875,  609,  507,  875,
     1036      507,   85,  875,  875,   85,  875,   85,   85,   85,   85,
     1037       85,  663,  663,  663,  663,  663,  663,  663,  663,  663,
     1038      663,  663,  663,  663,  665,  875,  665,  875,  875,  875,
     1039      665,  571,  875,  571,  667,  875,  667,  875,  875,  875,
     1040      667,  573,  875,  573,  669,  875,  669,  875,  875,  875,
     1041
     1042      669,  575,  875,  575,  671,  875,  671,  875,  875,  875,
     1043      671,  577,  875,  577,  673,  875,  673,  875,  875,  875,
     1044      673,  579,  875,  579,  675,  875,  675,  875,  875,  875,
     1045      675,  581,  875,  581,  677,  875,  677,  875,  875,  875,
     1046      677,  583,  875,  583,   85,  875,   85,  875,  875,  875,
     1047       85,  585,  875,  585,  485,  875,  485,  875,  875,  875,
     1048      485,  685,  875,  685,  875,  875,  875,  685,  599,  875,
     1049      599,  687,  875,  687,  875,  875,  875,  687,  601,  875,
     1050      601,  689,  875,  689,  875,  875,  875,  689,  603,  875,
     1051      603,  139,  875,  139,  875,  875,  875,  139,  605,  875,
     1052
     1053      605,  692,  875,  692,  607,  875,  607,   85,  875,  875,
     1054       85,  875,   85,   85,   85,   85,   85,  609,  875,  609,
     1055      663,  663,  663,  663,  663,  663,  663,  663,  663,  663,
     1056      663,  663,  663,  732,  875,  732,  875,  875,  875,  732,
     1057      665,  875,  665,  202,  875,  202,  875,  875,  875,  202,
     1058      667,  875,  667,  735,  875,  735,  669,  875,  669,  202,
     1059      875,  875,  202,  875,  202,  202,  202,  202,  202,  671,
     1060      875,  671,  736,  875,  736,  673,  875,  673,  675,  875,
     1061      675,  737,  875,  737,  677,  875,  677,   85,  875,   85,
     1062      739,  875,  739,  875,  875,  875,  739,  685,  875,  685,
     1063
     1064      267,  875,  267,  875,  875,  875,  267,  687,  875,  687,
     1065      742,  875,  742,  689,  875,  689,  139,  875,  139,  743,
     1066      875,  743,  875,  875,  875,  743,   85,  875,  875,   85,
     1067      875,   85,   85,   85,   85,   85,  776,  875,  776,  732,
     1068      875,  732,  202,  875,  202,  777,  875,  777,  875,  875,
     1069      875,  777,  779,  875,  779,  875,  875,  875,  779,  781,
     1070      875,  781,  875,  875,  875,  781,  783,  875,  783,  784,
     1071      875,  784,  875,  875,  875,  784,  786,  875,  786,  875,
     1072      875,  875,  786,  807,  875,  807,  875,  875,  875,  807,
     1073      809,  875,  809,  875,  875,  875,  809,  811,  875,  811,
     1074
     1075      875,  875,  875,  811,  813,  875,  813,  875,  875,  875,
     1076      813,  815,  875,  815,  875,  875,  875,  815,  817,  875,
     1077      817,  875,  875,  875,  817,  609,  875,  609,  875,  875,
     1078      875,  609,  836,  875,  836,  875,  875,  875,  836,  671,
     1079      875,  671,  875,  875,  875,  671,  675,  875,  675,  875,
     1080      875,  875,  675,   85,  875,   85,  875,  875,  875,   85,
     1081      841,  875,  841,  875,  875,  875,  841,  139,  875,  139,
     1082      875,  875,  875,  139,  202,  875,  202,  875,  875,  875,
     1083      202,   11,  875,  875,  875,  875,  875,  875,  875,  875,
     1084      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1085
     1086      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1087      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1088      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1089      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1090      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1091      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1092      875,  875,  875,  875,  875,  875
    10981093    } ;
    10991094
    1100 static yyconst flex_int16_t yy_chk[2884] =
     1095static yyconst flex_int16_t yy_chk[2867] =
    11011096    {   0,
    11021097        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11191114        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11201115        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1121        10,   37,   37,   20,   39,    9,   10,  882,    7,    8,
     1116       10,   37,   37,   20,   39,    9,   10,  874,    7,    8,
    11221117       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    11231118
    11241119       15,   15,   20,   25,   39,   42,   53,   28,   27,   28,
    1125        28,   28,   28,   28,   28,  109,   64,   25,   29,   25,
     1120       28,   28,   28,   28,   28,  108,  114,   25,   29,   25,
    11261121       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    11271122       40,   42,   48,   29,   30,   40,   30,   30,   30,   30,
    1128        30,   30,   35,   62,   35,   35,   44,   56,   44,  109,
    1129       877,  115,   48,   30,  876,   62,   30,   56,   47,   45,
    1130        45,   45,   30,   30,   45,   45,   64,   45,   30,   55,
     1123       30,   30,   35,   61,   35,   35,   44,  869,   44,  108,
     1124      114,  868,   48,   30,   63,   61,   30,   56,   47,   45,
     1125       45,   45,   30,   30,   45,   45,   56,   45,   30,   55,
    11311126       45,   45,   49,   40,   30,   45,   40,   49,   45,   47,
    1132        30,   47,  175,  874,   49,  115,   51,   55,   30,   73,
     1127       30,   47,   72,  125,   49,  125,   51,   55,   30,   86,
    11331128       49,   30,   31,   55,   31,   31,   31,   31,   31,   31,
    11341129
    1135        50,   51,  175,   51,   87,  108,   54,   59,   57,   50,
    1136        61,   31,   51,   50,   31,   73,   54,   57,   50,   59,
    1137        31,  873,   50,   54,  111,  154,   31,   59,   61,  108,
    1138        87,   60,   31,  126,   59,  126,   60,  127,   31,  127,
    1139        52,  154,  111,   68,   68,   52,   31,   38,   68,   60,
    1140       111,   38,   38,   52,   38,   52,   38,   38,   52,   38,
    1141       114,   38,   52,   58,   68,   68,   68,   68,   68,   68,
    1142        38,   38,   38,  871,   60,   58,   58,   60,   67,   67,
    1143        67,   67,   67,   67,  114,   58,   67,  129,   58,  129,
    1144        38,   60,  156,   38,   80,   80,   80,   80,   80,   80,
    1145 
    1146        82,   82,   82,   82,   82,   82,   83,   83,   83,   83,
    1147        83,   83,  130,  870,  156,  104,  104,  104,  104,  107,
    1148        38,   38,   77,   77,  113,  107,  130,   77,  130,   77,
    1149       113,  132,  142,  132,   77,  103,  103,  103,  103,  103,
    1150       103,  131,  104,   77,   77,   77,   77,  104,  116,  864,
    1151       110,  107,  159,  131,   77,  131,  113,  105,  142,  105,
    1152       105,  105,  105,  105,  105,  150,  116,  103,  159,   77,
    1153       104,  134,   77,  134,  116,  151,  105,   77,   77,  110,
    1154       150,   77,   77,  160,  110,  133,  133,  150,  133,   77,
    1155       863,  105,   77,  151,   77,   77,   77,  105,   77,   85,
    1156 
    1157       135,  135,  135,   85,   85,  160,  243,  110,   85,   85,
    1158       106,   85,  106,   85,  152,  106,  106,  106,  106,  106,
    1159       106,  153,   85,   85,   85,  137,  139,  137,  139,  145,
    1160       153,  155,  152,  164,  145,  161,  157,  166,  168,  169,
    1161       243,  162,   85,  322,  161,   85,  158,  106,  157,  155,
    1162       164,  158,  158,  158,  322,  158,  158,  167,  166,  158,
    1163       169,  158,  162,  162,  163,  168,  158,  158,  158,  163,
    1164       158,  165,  145,   85,   99,   99,   99,   99,   99,   99,
    1165       167,  165,  163,  171,  170,  172,  173,  176,  862,  170,
    1166        99,   99,  174,   99,   99,  177,  181,  185,  180,  182,
    1167 
    1168       172,  181,  189,  173,  179,  171,   99,  170,  185,  182,
    1169       174,   99,   99,   99,  176,  180,   99,  177,   99,  179,
    1170       183,  184,  187,  186,  188,  185,  179,  190,  186,  189,
    1171       191,  183,  192,  279,  193,  187,  861,  194,  205,  184,
    1172       234,  183,  183,  186,  188,  192,  190,  193,  284,  193,
    1173       194,  279,  237,  192,  197,  197,  197,  197,  197,  197,
    1174       198,  198,  197,  234,  205,  198,  200,  200,  284,  209,
    1175       209,  200,  857,  191,  209,  237,  191,  212,  212,  212,
    1176       212,  198,  198,  198,  198,  198,  198,  200,  200,  200,
    1177       200,  200,  200,  202,  202,  218,  221,  218,  202,  219,
    1178 
    1179       202,  219,  220,  223,  220,  223,  854,  851,  222,  212,
    1180       221,  225,  221,  225,  202,  202,  202,  202,  202,  202,
    1181       222,  248,  222,  224,  224,  256,  224,  226,  226,  226,
    1182       228,  229,  228,  229,  235,  266,  235,  266,  282,  235,
    1183       235,  235,  235,  235,  235,  236,  267,  248,  267,  236,
    1184       309,  256,  270,  241,  241,  282,  241,  241,  294,  278,
    1185       244,  244,  244,  244,  244,  244,  236,  294,  236,  309,
    1186       280,  235,  278,  236,  241,  241,  241,  244,  270,  241,
    1187       281,  241,  245,  245,  245,  245,  245,  245,  280,  283,
    1188       285,  288,  244,  286,  283,  285,  281,  290,  244,  246,
    1189 
    1190       246,  246,  246,  246,  246,  255,  255,  255,  255,  255,
    1191       255,  253,  301,  286,  288,  246,  289,  291,  246,  246,
    1192       247,  301,  247,  290,  850,  247,  247,  247,  247,  247,
    1193       247,  246,  291,  253,  289,  253,  246,  255,  246,  253,
    1194       295,  246,  292,  246,  296,  253,  260,  260,  260,  260,
    1195       260,  260,  287,  295,  297,  293,  564,  253,  292,  292,
    1196       293,  253,  299,  300,  303,  253,  564,  287,  300,  302,
    1197       304,  296,  297,  287,  287,  305,  302,  306,  260,  308,
    1198       299,  307,  306,  310,  303,  308,  307,  311,  304,  312,
    1199       313,  314,  310,  311,  318,  315,  305,  305,  316,  313,
    1200 
    1201       315,  319,  317,  316,  320,  312,  314,  317,  323,  324,
    1202       326,  327,  325,  318,  329,  328,  331,  320,  330,  319,
    1203       332,  334,  333,  323,  317,  325,  337,  330,  336,  338,
    1204       324,  329,  326,  339,  327,  328,  341,  336,  331,  334,
    1205       340,  341,  342,  332,  333,  344,  339,  338,  340,  343,
    1206       343,  344,  402,  361,  343,  361,  343,  342,  351,  351,
    1207       351,  351,  352,  352,  352,  352,  362,  402,  362,  337,
    1208       369,  369,  369,  369,  369,  369,  371,  379,  371,  380,
    1209       384,  371,  371,  371,  371,  371,  371,  379,  849,  380,
    1210       351,  370,  370,  370,  370,  370,  370,  373,  373,  373,
    1211 
    1212       373,  373,  373,  379,  384,  380,  401,  370,  386,  400,
    1213       370,  370,  374,  374,  374,  374,  374,  374,  382,  409,
    1214       400,  381,  401,  370,  382,  407,  386,  403,  370,  373,
    1215       370,  405,  409,  370,  386,  370,  375,  375,  375,  375,
    1216       375,  375,  405,  381,  374,  381,  403,  407,  385,  381,
    1217       382,  383,  848,  383,  404,  381,  383,  383,  383,  383,
    1218       383,  383,  410,  404,  406,  408,  412,  381,  375,  411,
    1219       385,  381,  385,  406,  408,  381,  385,  414,  410,  412,
    1220       413,  416,  385,  415,  418,  417,  416,  419,  383,  422,
    1221       418,  411,  420,  421,  385,  424,  413,  413,  385,  414,
    1222 
    1223       417,  415,  385,  420,  422,  426,  428,  417,  419,  424,
    1224       429,  430,  421,  431,  433,  432,  434,  426,  436,  438,
    1225       430,  432,  439,  440,  430,  434,  441,  428,  442,  433,
    1226       443,  444,  429,  436,  446,  448,  431,  449,  440,  438,
    1227       444,  450,  453,  442,  439,  451,  449,  452,  441,  457,
    1228       443,  446,  454,  455,  459,  456,  457,  461,  448,  458,
    1229       464,  454,  450,  465,  453,  451,  458,  452,  456,  460,
    1230       462,  455,  465,  514,  461,  521,  847,  460,  466,  459,
    1231       521,  462,  464,  492,  466,  517,  514,  460,  475,  475,
    1232       475,  475,  486,  486,  486,  486,  486,  486,  488,  488,
    1233 
    1234       488,  488,  488,  488,  519,  517,  489,  491,  486,  492,
    1235       513,  486,  486,  490,  493,  490,  489,  491,  490,  490,
    1236       490,  490,  490,  490,  486,  518,  519,  513,  522,  486,
    1237       488,  486,  489,  491,  486,  520,  486,  846,  518,  522,
    1238       493,  495,  495,  495,  495,  495,  495,  516,  520,  524,
    1239       490,  496,  496,  496,  496,  496,  496,  523,  525,  528,
    1240       523,  529,  516,  531,  527,  526,  529,  496,  528,  524,
    1241       496,  496,  497,  525,  497,  530,  531,  497,  497,  497,
    1242       497,  497,  497,  496,  526,  527,  530,  532,  496,  533,
    1243       496,  534,  535,  496,  536,  496,  537,  540,  533,  539,
    1244 
    1245       542,  537,  543,  536,  550,  539,  540,  544,  545,  535,
    1246       549,  546,  548,  534,  551,  532,  550,  553,  558,  543,
    1247       546,  548,  544,  545,  556,  554,  542,  549,  557,  551,
    1248       554,  559,  553,  556,  560,  561,  563,  557,  565,  566,
    1249       558,  569,  567,  568,  563,  565,  570,  560,  572,  568,
    1250       569,  573,  561,  559,  567,  617,  570,  625,  599,  601,
    1251       625,  566,  617,  845,  573,  572,  592,  592,  592,  592,
    1252       592,  592,  593,  593,  593,  593,  593,  593,  595,  620,
    1253       595,  599,  601,  595,  595,  595,  595,  595,  595,  598,
    1254       598,  598,  598,  598,  598,  619,  620,  621,  592,  594,
    1255 
    1256       594,  594,  594,  594,  594,  600,  616,  618,  619,  600,
    1257       622,  616,  624,  627,  623,  594,  618,  622,  594,  594,
    1258       621,  598,  623,  634,  616,  629,  600,  626,  600,  624,
    1259       628,  594,  630,  600,  631,  627,  594,  633,  594,  632,
    1260       626,  594,  632,  594,  635,  628,  636,  629,  637,  630,
    1261       634,  638,  639,  640,  633,  642,  631,  637,  643,  635,
    1262       644,  645,  640,  649,  650,  657,  636,  652,  655,  638,
    1263       645,  656,  657,  699,  639,  668,  664,  642,  665,  700,
    1264       656,  643,  644,  649,  652,  664,  655,  667,  665,  700,
    1265       668,  650,  702,  708,  699,  705,  667,  686,  686,  686,
    1266 
    1267       686,  686,  686,  690,  690,  690,  690,  690,  690,  704,
    1268       844,  708,  703,  686,  704,  705,  686,  686,  702,  703,
    1269       706,  707,  710,  706,  707,  711,  714,  713,  710,  686,
    1270       713,  712,  715,  718,  686,  690,  686,  717,  711,  686,
    1271       712,  686,  716,  720,  721,  716,  717,  714,  719,  722,
    1272       723,  719,  721,  724,  729,  726,  720,  732,  718,  722,
    1273       715,  733,  734,  723,  726,  735,  738,  732,  737,  840,
    1274       839,  763,  760,  756,  724,  738,  737,  729,  757,  759,
    1275       758,  733,  760,  761,  734,  758,  735,  745,  745,  745,
    1276       745,  745,  745,  756,  759,  757,  762,  763,  764,  765,
    1277 
    1278       766,  764,  768,  771,  770,  768,  761,  770,  772,  774,
    1279       771,  772,  765,  762,  773,  775,  781,  773,  796,  745,
    1280       798,  801,  799,  800,  774,  802,  800,  766,  802,  803,
    1281       805,  806,  803,  807,  810,  809,  807,  810,  775,  781,
    1282       799,  798,  812,  801,  811,  796,  813,  811,  805,  814,
    1283       829,  812,  830,  835,  832,  831,  806,  809,  831,  830,
    1284       833,  834,  813,  832,  834,  814,  838,  842,  843,  838,
    1285       835,  829,  841,  852,  853,  841,  842,  843,  833,  853,
    1286       855,  856,  852,  855,  858,  859,  860,  858,  859,  860,
    1287       865,  856,  866,  867,  868,  869,  867,  872,  869,  875,
    1288 
    1289       878,  879,  881,  880,  868,  837,  836,  866,  828,  878,
    1290       865,  827,  881,  826,  825,  824,  823,  822,  821,  872,
    1291       875,  880,  820,  879,  884,  884,  884,  884,  884,  884,
    1292       884,  884,  884,  884,  884,  884,  884,  885,  885,  885,
    1293       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    1294       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
    1295       886,  886,  886,  887,  819,  818,  887,  817,  887,  887,
    1296       887,  887,  887,  888,  816,  815,  808,  888,  888,  888,
    1297       888,  888,  888,  889,  889,  889,  889,  889,  889,  889,
    1298       889,  889,  889,  889,  889,  889,  890,  804,  797,  890,
    1299 
    1300       795,  890,  890,  890,  890,  890,  891,  794,  891,  891,
    1301       793,  891,  891,  891,  891,  891,  891,  792,  891,  892,
    1302       791,  790,  892,  892,  892,  892,  892,  892,  892,  892,
    1303       789,  892,  893,  893,  893,  893,  893,  893,  893,  893,
    1304       893,  893,  893,  893,  893,  894,  894,  788,  894,  787,
    1305       786,  785,  894,  895,  784,  783,  895,  782,  895,  895,
    1306       895,  895,  895,  896,  780,  896,  779,  778,  777,  896,
    1307       897,  776,  897,  769,  767,  755,  897,  898,  754,  898,
    1308       753,  752,  751,  898,  899,  750,  899,  749,  748,  747,
    1309       899,  900,  744,  900,  743,  742,  736,  900,  901,  731,
    1310 
    1311       901,  730,  728,  727,  901,  902,  725,  902,  709,  701,
    1312       698,  902,  903,  693,  903,  691,  687,  677,  903,  904,
    1313       673,  904,  671,  669,  666,  904,  905,  905,  905,  905,
    1314       905,  905,  905,  905,  905,  905,  905,  905,  905,  906,
    1315       663,  906,  907,  907,  662,  907,  907,  907,  661,  907,
    1316       908,  908,  660,  908,  909,  659,  909,  658,  654,  653,
    1317       909,  910,  651,  910,  648,  647,  646,  910,  911,  641,
    1318       911,  614,  610,  608,  911,  912,  606,  912,  913,  604,
    1319       913,  602,  596,  590,  913,  914,  588,  914,  915,  586,
    1320       584,  915,  582,  915,  915,  915,  915,  915,  916,  916,
    1321 
    1322       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
    1323       916,  917,  917,  917,  917,  917,  917,  917,  917,  917,
    1324       917,  917,  917,  917,  918,  580,  918,  578,  576,  575,
    1325       918,  919,  574,  919,  571,  562,  555,  919,  920,  552,
    1326       920,  547,  541,  538,  920,  921,  515,  921,  922,  511,
    1327       922,  509,  507,  505,  922,  923,  503,  923,  924,  501,
    1328       924,  500,  499,  498,  924,  925,  487,  925,  926,  484,
    1329       926,  482,  481,  480,  926,  927,  478,  927,  928,  476,
    1330       928,  473,  471,  469,  928,  929,  467,  929,  930,  463,
    1331       930,  447,  445,  437,  930,  931,  435,  931,  932,  427,
    1332 
    1333       932,  425,  423,  397,  932,  933,  395,  933,  934,  393,
    1334       934,  391,  934,  390,  934,  935,  389,  935,  376,  935,
    1335       366,  935,  936,  936,  364,  936,  936,  936,  363,  936,
    1336       937,  359,  937,  357,  355,  353,  937,  938,  349,  938,
    1337       347,  346,  345,  938,  939,  335,  939,  321,  298,  277,
    1338       939,  940,  275,  940,  941,  273,  941,  272,  271,  269,
    1339       941,  942,  268,  942,  943,  263,  943,  259,  258,  254,
    1340       943,  944,  251,  944,  945,  250,  945,  239,  238,  231,
    1341       945,  946,  230,  946,  947,  227,  217,  947,  215,  947,
    1342       947,  947,  947,  947,  948,  948,  948,  948,  948,  948,
    1343 
    1344       948,  948,  948,  948,  948,  948,  948,  949,  214,  949,
    1345       213,  207,  206,  949,  950,  204,  950,  951,  199,  951,
    1346       178,  149,  147,  951,  952,  146,  952,  953,  140,  953,
    1347       138,  136,  128,  953,  954,  125,  954,  955,  124,  955,
    1348       120,  101,   98,  955,  956,   95,  956,  957,   93,  957,
    1349        86,   72,   70,  957,  958,   66,  958,  959,   36,  959,
    1350        33,   18,   11,  959,  960,    4,  960,  961,    3,  961,
    1351         0,    0,    0,  961,  962,    0,  962,    0,    0,    0,
    1352       962,  963,    0,  963,  964,    0,  964,    0,    0,    0,
    1353       964,  965,    0,  965,  966,    0,  966,    0,  966,    0,
    1354 
    1355       966,  967,    0,  967,    0,    0,    0,  967,  968,    0,
    1356       968,    0,    0,    0,  968,  969,    0,  969,  970,    0,
    1357       970,    0,    0,    0,  970,  971,    0,  971,  972,    0,
    1358       972,    0,    0,    0,  972,  973,    0,  973,  974,    0,
    1359       974,    0,    0,    0,  974,  975,    0,  975,  976,    0,
    1360       976,    0,    0,    0,  976,  977,    0,  977,  978,    0,
    1361       978,    0,    0,    0,  978,  979,    0,  979,  980,    0,
    1362         0,  980,    0,  980,  980,  980,  980,  980,  981,  981,
    1363       981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
    1364       981,  982,    0,  982,    0,    0,    0,  982,  983,    0,
    1365 
    1366       983,  984,    0,  984,    0,    0,    0,  984,  985,    0,
    1367       985,  986,    0,  986,    0,    0,    0,  986,  987,    0,
    1368       987,  988,    0,  988,    0,    0,    0,  988,  989,    0,
    1369       989,  990,    0,  990,    0,    0,    0,  990,  991,    0,
    1370       991,  992,    0,  992,    0,    0,    0,  992,  993,    0,
    1371       993,  994,    0,  994,    0,    0,    0,  994,  995,    0,
    1372       995,  996,    0,  996,    0,    0,    0,  996,  997,    0,
    1373       997,  998,    0,  998,    0,    0,    0,  998,  999,    0,
    1374       999,    0,    0,    0,  999, 1000,    0, 1000, 1001,    0,
    1375      1001,    0,    0,    0, 1001, 1002,    0, 1002, 1003,    0,
    1376 
    1377      1003,    0,    0,    0, 1003, 1004,    0, 1004, 1005,    0,
    1378      1005,    0,    0,    0, 1005, 1006,    0, 1006, 1007,    0,
    1379      1007, 1008,    0, 1008, 1009,    0,    0, 1009,    0, 1009,
    1380      1009, 1009, 1009, 1009, 1010,    0, 1010, 1011, 1011, 1011,
    1381      1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
    1382      1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
    1383      1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
    1384      1016,    0, 1016, 1017,    0, 1017, 1018,    0,    0, 1018,
    1385         0, 1018, 1018, 1018, 1018, 1018, 1019,    0, 1019, 1020,
    1386         0, 1020, 1021,    0, 1021, 1022,    0, 1022, 1023,    0,
    1387 
    1388      1023, 1024,    0, 1024, 1025,    0, 1025, 1026,    0, 1026,
    1389         0,    0,    0, 1026, 1027,    0, 1027, 1028,    0, 1028,
    1390         0,    0,    0, 1028, 1029,    0, 1029, 1030,    0, 1030,
    1391      1031,    0, 1031, 1032,    0, 1032, 1033,    0, 1033,    0,
    1392         0,    0, 1033, 1034,    0,    0, 1034,    0, 1034, 1034,
    1393      1034, 1034, 1034, 1035,    0, 1035, 1036,    0, 1036, 1037,
    1394         0, 1037, 1038,    0, 1038,    0,    0,    0, 1038, 1039,
    1395         0, 1039,    0,    0,    0, 1039, 1040,    0, 1040,    0,
    1396         0,    0, 1040, 1041,    0, 1041, 1042,    0, 1042,    0,
    1397         0,    0, 1042, 1043,    0, 1043,    0,    0,    0, 1043,
    1398 
    1399      1044,    0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,
    1400         0,    0,    0, 1045, 1046,    0, 1046,    0,    0,    0,
    1401      1046, 1047,    0, 1047,    0,    0,    0, 1047, 1048,    0,
    1402      1048,    0,    0,    0, 1048, 1049,    0, 1049,    0,    0,
    1403         0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
    1404         0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
    1405         0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
    1406      1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
    1407         0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
    1408      1056, 1057,    0, 1057,    0,    0,    0, 1057,  883,  883,
    1409 
    1410       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1411       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1412       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1413       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1414       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1415       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1416       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1417       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
    1418       883,  883,  883
     1130       50,   51,  866,   51,   63,  153,   54,   58,   72,   50,
     1131       60,   31,   51,   50,   31,   86,   54,   57,   50,   58,
     1132       31,  153,   50,   54,  141,  156,   31,   58,   60,   57,
     1133       57,   59,   31,  126,   58,  126,   59,  156,   31,   57,
     1134       52,  865,   57,   67,   67,   52,   31,   38,   67,   59,
     1135      141,   38,   38,   52,   38,   52,   38,   38,   52,   38,
     1136      107,   38,   52,  113,   67,   67,   67,   67,   67,   67,
     1137       38,   38,   38,  128,   59,  128,  152,   59,   66,   66,
     1138       66,   66,   66,   66,  107,  152,   66,  113,  863,  862,
     1139       38,   59,  165,   38,   79,   79,   79,   79,   79,   79,
     1140
     1141       81,   81,   81,   81,   81,   81,   82,   82,   82,   82,
     1142       82,   82,  131,  165,  131,  103,  103,  103,  103,  106,
     1143       38,   38,   76,   76,  856,  106,  112,   76,  168,   76,
     1144      110,  133,  112,  133,   76,  102,  102,  102,  102,  102,
     1145      102,  130,  103,   76,   76,   76,   76,  103,  110,  168,
     1146      109,  106,  129,  130,   76,  130,  110,  104,  112,  104,
     1147      104,  104,  104,  104,  104,  149,  129,  102,  129,   76,
     1148      103,  136,   76,  136,  158,  115,  104,   76,   76,  109,
     1149      149,   76,   76,  155,  109,  132,  132,  149,  132,   76,
     1150      158,  104,   76,  115,   76,   76,   76,  104,   76,   84,
     1151
     1152      138,  115,  138,   84,   84,  155,  166,  109,   84,   84,
     1153      105,   84,  105,   84,  150,  105,  105,  105,  105,  105,
     1154      105,  151,   84,   84,   84,  134,  134,  134,  144,  166,
     1155      154,  157,  150,  144,  159,  167,  157,  157,  157,  151,
     1156      157,  157,   84,  161,  157,   84,  157,  105,  154,  160,
     1157      163,  157,  157,  157,  162,  157,  159,  855,  160,  162,
     1158      164,  169,  167,  170,  161,  161,  169,  163,  171,  172,
     1159      164,  144,  162,   84,   98,   98,   98,   98,   98,   98,
     1160      173,  174,  175,  171,  169,  170,  172,  179,  176,  185,
     1161       98,   98,  178,   98,   98,  180,  189,  182,  173,  187,
     1162
     1163      180,  174,  185,  186,  179,  188,   98,  178,  181,  175,
     1164      176,   98,   98,   98,  178,  182,   98,  183,   98,  181,
     1165      184,  191,  190,  186,  188,  184,  187,  528,  183,  181,
     1166      181,  192,  207,  207,  191,  190,  191,  207,  232,  189,
     1167      184,  203,  189,  190,  192,  183,  195,  195,  195,  195,
     1168      195,  195,  196,  196,  195,  528,  854,  196,  198,  198,
     1169      216,  232,  216,  198,  200,  200,  217,  203,  217,  200,
     1170      218,  200,  218,  196,  196,  196,  196,  196,  196,  198,
     1171      198,  198,  198,  198,  198,  200,  200,  200,  200,  200,
     1172      200,  210,  210,  210,  210,  219,  220,  221,  282,  221,
     1173
     1174      222,  222,  223,  222,  223,  224,  224,  224,  220,  219,
     1175      220,  219,  226,  227,  226,  227,  234,  235,  282,  233,
     1176      234,  233,  284,  210,  233,  233,  233,  233,  233,  233,
     1177      241,  239,  239,  277,  239,  239,  264,  234,  264,  234,
     1178      235,  265,  284,  265,  234,  242,  242,  242,  242,  242,
     1179      242,  277,  239,  239,  239,  246,  233,  239,  278,  239,
     1180      276,  280,  242,  279,  241,  243,  243,  243,  243,  243,
     1181      243,  254,  268,  276,  853,  281,  278,  242,  280,  279,
     1182      281,  246,  288,  242,  244,  244,  244,  244,  244,  244,
     1183      253,  253,  253,  253,  253,  253,  251,  254,  268,  287,
     1184
     1185      244,  283,  286,  244,  244,  245,  283,  245,  288,  295,
     1186      245,  245,  245,  245,  245,  245,  244,  287,  251,  849,
     1187      251,  244,  253,  244,  251,  286,  244,  295,  244,  289,
     1188      251,  258,  258,  258,  258,  258,  258,  285,  290,  292,
     1189      291,  294,  251,  293,  289,  291,  251,  297,  292,  301,
     1190      251,  299,  285,  303,  290,  290,  293,  298,  285,  285,
     1191      299,  302,  298,  258,  300,  297,  307,  304,  294,  301,
     1192      306,  300,  304,  305,  303,  303,  306,  308,  305,  302,
     1193      310,  309,  311,  312,  313,  307,  308,  309,  314,  313,
     1194      315,  311,  316,  314,  318,  315,  310,  317,  312,  320,
     1195
     1196      322,  321,  323,  324,  326,  325,  328,  318,  327,  329,
     1197      320,  316,  315,  322,  330,  317,  321,  327,  333,  331,
     1198      334,  326,  335,  337,  323,  325,  324,  333,  328,  336,
     1199      338,  337,  329,  339,  381,  338,  330,  331,  340,  340,
     1200      335,  341,  336,  340,  358,  340,  358,  341,  339,  348,
     1201      348,  348,  348,  349,  349,  349,  349,  359,  381,  359,
     1202      397,  846,  402,  334,  366,  366,  366,  366,  366,  366,
     1203      368,  397,  368,  402,  404,  368,  368,  368,  368,  368,
     1204      368,  348,  367,  367,  367,  367,  367,  367,  370,  370,
     1205      370,  370,  370,  370,  400,  398,  404,  435,  367,  376,
     1206
     1207      843,  367,  367,  371,  371,  371,  371,  371,  371,  376,
     1208      379,  398,  377,  400,  367,  378,  379,  435,  383,  367,
     1209      370,  367,  377,  412,  367,  376,  367,  372,  372,  372,
     1210      372,  372,  372,  399,  382,  371,  383,  378,  377,  378,
     1211      415,  412,  379,  378,  383,  380,  415,  380,  399,  378,
     1212      380,  380,  380,  380,  380,  380,  382,  401,  382,  372,
     1213      407,  378,  382,  403,  405,  378,  401,  408,  382,  378,
     1214      406,  411,  403,  405,  409,  410,  407,  416,  418,  414,
     1215      382,  413,  380,  406,  382,  417,  413,  409,  382,  408,
     1216      419,  410,  410,  411,  414,  421,  417,  418,  416,  423,
     1217
     1218      425,  414,  426,  427,  428,  419,  431,  429,  430,  421,
     1219      433,  423,  427,  429,  436,  431,  427,  437,  438,  439,
     1220      441,  425,  440,  430,  426,  433,  443,  428,  445,  441,
     1221      447,  446,  437,  448,  439,  449,  436,  450,  451,  455,
     1222      438,  452,  440,  443,  457,  633,  450,  460,  453,  458,
     1223      447,  445,  446,  448,  452,  453,  451,  449,  454,  456,
     1224      458,  457,  461,  633,  455,  454,  462,  456,  515,  460,
     1225      488,  461,  462,  471,  471,  471,  471,  456,  482,  482,
     1226      482,  482,  482,  482,  484,  484,  484,  484,  484,  484,
     1227      515,  513,  485,  487,  482,  489,  488,  482,  482,  486,
     1228
     1229      510,  486,  485,  487,  486,  486,  486,  486,  486,  486,
     1230      482,  513,  509,  510,  520,  482,  484,  482,  485,  487,
     1231      482,  489,  482,  491,  491,  491,  491,  491,  491,  509,
     1232      512,  514,  519,  516,  520,  519,  486,  492,  492,  492,
     1233      492,  492,  492,  517,  514,  512,  516,  521,  517,  525,
     1234      518,  522,  523,  492,  525,  842,  492,  492,  493,  841,
     1235      493,  518,  521,  493,  493,  493,  493,  493,  493,  492,
     1236      522,  524,  526,  523,  492,  527,  492,  529,  530,  492,
     1237      524,  492,  531,  526,  532,  533,  529,  536,  527,  535,
     1238      533,  538,  539,  532,  542,  535,  536,  540,  541,  531,
     1239
     1240      530,  544,  545,  542,  546,  547,  549,  554,  556,  539,
     1241      544,  561,  540,  541,  555,  552,  546,  538,  550,  545,
     1242      547,  549,  553,  550,  552,  556,  558,  555,  559,  554,
     1243      560,  553,  562,  561,  558,  563,  564,  560,  559,  565,
     1244      567,  563,  568,  613,  562,  564,  612,  617,  594,  565,
     1245      596,  698,  613,  612,  617,  568,  698,  567,  587,  587,
     1246      587,  587,  587,  587,  588,  588,  588,  588,  588,  588,
     1247      590,  594,  590,  596,  614,  590,  590,  590,  590,  590,
     1248      590,  593,  593,  593,  593,  593,  593,  614,  615,  616,
     1249      587,  589,  589,  589,  589,  589,  589,  595,  611,  622,
     1250
     1251      618,  595,  619,  611,  621,  615,  620,  589,  618,  620,
     1252      589,  589,  616,  593,  623,  624,  611,  621,  595,  619,
     1253      595,  622,  625,  589,  626,  595,  628,  629,  589,  623,
     1254      589,  627,  630,  589,  627,  589,  631,  624,  634,  625,
     1255      632,  635,  637,  628,  638,  644,  626,  630,  639,  632,
     1256      635,  645,  640,  650,  629,  647,  631,  696,  693,  651,
     1257      634,  640,  650,  659,  637,  644,  651,  638,  658,  662,
     1258      639,  661,  647,  659,  697,  840,  839,  658,  645,  693,
     1259      661,  697,  699,  696,  662,  680,  680,  680,  680,  680,
     1260      680,  684,  684,  684,  684,  684,  684,  694,  702,  705,
     1261
     1262      700,  680,  699,  700,  680,  680,  701,  694,  704,  701,
     1263      706,  708,  705,  709,  704,  707,  702,  680,  707,  706,
     1264      712,  711,  680,  684,  680,  710,  714,  680,  710,  680,
     1265      711,  713,  708,  718,  713,  715,  716,  717,  720,  714,
     1266      723,  709,  726,  715,  727,  712,  716,  720,  728,  730,
     1267      717,  731,  752,  751,  718,  753,  749,  730,  751,  754,
     1268      731,  750,  726,  723,  755,  753,  727,  752,  756,  728,
     1269      738,  738,  738,  738,  738,  738,  749,  757,  750,  758,
     1270      757,  755,  754,  759,  761,  763,  764,  761,  763,  767,
     1271      768,  773,  758,  764,  756,  765,  766,  788,  765,  766,
     1272
     1273      790,  791,  738,  792,  767,  793,  792,  797,  794,  795,
     1274      759,  794,  795,  768,  773,  798,  801,  799,  805,  791,
     1275      799,  790,  821,  802,  788,  797,  802,  793,  803,  806,
     1276      804,  803,  824,  823,  805,  822,  823,  825,  801,  804,
     1277      798,  824,  822,  821,  826,  806,  827,  826,  830,  833,
     1278      834,  830,  833,  835,  847,  825,  844,  847,  848,  834,
     1279      857,  845,  835,  827,  850,  844,  845,  850,  848,  851,
     1280      852,  858,  851,  852,  859,  860,  861,  859,  864,  861,
     1281      857,  867,  870,  871,  873,  860,  858,  838,  872,  837,
     1282      836,  870,  832,  831,  873,  829,  828,  820,  819,  818,
     1283
     1284      864,  817,  867,  816,  815,  871,  872,  876,  876,  876,
     1285      876,  876,  876,  876,  876,  876,  876,  876,  876,  876,
     1286      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
     1287      877,  877,  877,  878,  878,  878,  878,  878,  878,  878,
     1288      878,  878,  878,  878,  878,  878,  879,  814,  813,  879,
     1289      812,  879,  879,  879,  879,  879,  880,  811,  810,  809,
     1290      880,  880,  880,  880,  880,  880,  881,  881,  881,  881,
     1291      881,  881,  881,  881,  881,  881,  881,  881,  881,  882,
     1292      808,  807,  882,  800,  882,  882,  882,  882,  882,  883,
     1293      796,  883,  883,  789,  883,  883,  883,  883,  883,  883,
     1294
     1295      787,  883,  884,  786,  785,  884,  884,  884,  884,  884,
     1296      884,  884,  884,  784,  884,  885,  885,  885,  885,  885,
     1297      885,  885,  885,  885,  885,  885,  885,  885,  886,  886,
     1298      783,  886,  782,  781,  780,  886,  887,  779,  778,  887,
     1299      777,  887,  887,  887,  887,  887,  888,  776,  888,  775,
     1300      774,  772,  888,  889,  771,  889,  770,  769,  762,  889,
     1301      890,  760,  890,  748,  747,  746,  890,  891,  745,  891,
     1302      744,  743,  742,  891,  892,  741,  892,  740,  737,  736,
     1303      892,  893,  735,  893,  729,  725,  724,  893,  894,  722,
     1304      894,  721,  719,  703,  894,  895,  695,  895,  692,  687,
     1305
     1306      685,  895,  896,  681,  896,  671,  667,  665,  896,  897,
     1307      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
     1308      897,  897,  898,  663,  898,  899,  899,  660,  899,  899,
     1309      899,  657,  899,  900,  900,  656,  900,  901,  655,  901,
     1310      654,  653,  652,  901,  902,  649,  902,  648,  646,  643,
     1311      902,  903,  642,  903,  641,  636,  609,  903,  904,  605,
     1312      904,  905,  603,  905,  601,  599,  597,  905,  906,  591,
     1313      906,  907,  585,  583,  907,  581,  907,  907,  907,  907,
     1314      907,  908,  908,  908,  908,  908,  908,  908,  908,  908,
     1315      908,  908,  908,  908,  909,  909,  909,  909,  909,  909,
     1316
     1317      909,  909,  909,  909,  909,  909,  909,  910,  579,  910,
     1318      577,  575,  573,  910,  911,  571,  911,  570,  569,  566,
     1319      911,  912,  557,  912,  551,  548,  543,  912,  913,  537,
     1320      913,  914,  534,  914,  511,  507,  505,  914,  915,  503,
     1321      915,  916,  501,  916,  499,  497,  496,  916,  917,  495,
     1322      917,  918,  494,  918,  483,  480,  478,  918,  919,  477,
     1323      919,  920,  476,  920,  474,  472,  469,  920,  921,  467,
     1324      921,  922,  465,  922,  463,  459,  444,  922,  923,  442,
     1325      923,  924,  434,  924,  432,  424,  422,  924,  925,  420,
     1326      925,  926,  394,  926,  392,  926,  390,  926,  927,  388,
     1327
     1328      927,  387,  927,  386,  927,  928,  928,  373,  928,  928,
     1329      928,  363,  928,  929,  361,  929,  360,  356,  354,  929,
     1330      930,  352,  930,  350,  346,  344,  930,  931,  343,  931,
     1331      342,  332,  319,  931,  932,  296,  932,  933,  275,  933,
     1332      273,  271,  270,  933,  934,  269,  934,  935,  267,  935,
     1333      266,  261,  257,  935,  936,  256,  936,  937,  252,  937,
     1334      249,  248,  237,  937,  938,  236,  938,  939,  229,  228,
     1335      939,  225,  939,  939,  939,  939,  939,  940,  940,  940,
     1336      940,  940,  940,  940,  940,  940,  940,  940,  940,  940,
     1337      941,  215,  941,  213,  212,  211,  941,  942,  205,  942,
     1338
     1339      943,  204,  943,  202,  197,  177,  943,  944,  148,  944,
     1340      945,  146,  945,  145,  139,  137,  945,  946,  135,  946,
     1341      947,  127,  947,  124,  123,  119,  947,  948,  100,  948,
     1342      949,   97,  949,   94,   92,   85,  949,  950,   71,  950,
     1343      951,   69,  951,   65,   36,   33,  951,  952,   18,  952,
     1344      953,   11,  953,    4,    3,    0,  953,  954,    0,  954,
     1345        0,    0,    0,  954,  955,    0,  955,  956,    0,  956,
     1346        0,    0,    0,  956,  957,    0,  957,  958,    0,  958,
     1347        0,  958,    0,  958,  959,    0,  959,    0,    0,    0,
     1348      959,  960,    0,  960,    0,    0,    0,  960,  961,    0,
     1349
     1350      961,  962,    0,  962,    0,    0,    0,  962,  963,    0,
     1351      963,  964,    0,  964,    0,    0,    0,  964,  965,    0,
     1352      965,  966,    0,  966,    0,    0,    0,  966,  967,    0,
     1353      967,  968,    0,  968,    0,    0,    0,  968,  969,    0,
     1354      969,  970,    0,  970,    0,    0,    0,  970,  971,    0,
     1355      971,  972,    0,    0,  972,    0,  972,  972,  972,  972,
     1356      972,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     1357      973,  973,  973,  973,  974,    0,  974,    0,    0,    0,
     1358      974,  975,    0,  975,  976,    0,  976,    0,    0,    0,
     1359      976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
     1360
     1361      978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
     1362      980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
     1363      982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
     1364      984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
     1365      986,  987,    0,  987,  988,    0,  988,    0,    0,    0,
     1366      988,  989,    0,  989,  990,    0,  990,    0,    0,    0,
     1367      990,  991,    0,  991,    0,    0,    0,  991,  992,    0,
     1368      992,  993,    0,  993,    0,    0,    0,  993,  994,    0,
     1369      994,  995,    0,  995,    0,    0,    0,  995,  996,    0,
     1370      996,  997,    0,  997,    0,    0,    0,  997,  998,    0,
     1371
     1372      998,  999,    0,  999, 1000,    0, 1000, 1001,    0,    0,
     1373     1001,    0, 1001, 1001, 1001, 1001, 1001, 1002,    0, 1002,
     1374     1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
     1375     1003, 1003, 1003, 1004,    0, 1004,    0,    0,    0, 1004,
     1376     1005,    0, 1005, 1006,    0, 1006,    0,    0,    0, 1006,
     1377     1007,    0, 1007, 1008,    0, 1008, 1009,    0, 1009, 1010,
     1378        0,    0, 1010,    0, 1010, 1010, 1010, 1010, 1010, 1011,
     1379        0, 1011, 1012,    0, 1012, 1013,    0, 1013, 1014,    0,
     1380     1014, 1015,    0, 1015, 1016,    0, 1016, 1017,    0, 1017,
     1381     1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
     1382
     1383     1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
     1384     1022,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
     1385        0, 1025,    0,    0,    0, 1025, 1026,    0,    0, 1026,
     1386        0, 1026, 1026, 1026, 1026, 1026, 1027,    0, 1027, 1028,
     1387        0, 1028, 1029,    0, 1029, 1030,    0, 1030,    0,    0,
     1388        0, 1030, 1031,    0, 1031,    0,    0,    0, 1031, 1032,
     1389        0, 1032,    0,    0,    0, 1032, 1033,    0, 1033, 1034,
     1390        0, 1034,    0,    0,    0, 1034, 1035,    0, 1035,    0,
     1391        0,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
     1392     1037,    0, 1037,    0,    0,    0, 1037, 1038,    0, 1038,
     1393
     1394        0,    0,    0, 1038, 1039,    0, 1039,    0,    0,    0,
     1395     1039, 1040,    0, 1040,    0,    0,    0, 1040, 1041,    0,
     1396     1041,    0,    0,    0, 1041, 1042,    0, 1042,    0,    0,
     1397        0, 1042, 1043,    0, 1043,    0,    0,    0, 1043, 1044,
     1398        0, 1044,    0,    0,    0, 1044, 1045,    0, 1045,    0,
     1399        0,    0, 1045, 1046,    0, 1046,    0,    0,    0, 1046,
     1400     1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
     1401        0,    0,    0, 1048, 1049,    0, 1049,    0,    0,    0,
     1402     1049,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1403      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1404
     1405      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1406      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1407      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1408      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1409      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1410      875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
     1411      875,  875,  875,  875,  875,  875
    14191412    } ;
    14201413
    14211414/* Table of booleans, true if rule could match eol. */
    1422 static yyconst flex_int32_t yy_rule_can_match_eol[181] =
     1415static yyconst flex_int32_t yy_rule_can_match_eol[180] =
    14231416    {   0,
    142414171, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14271420    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14281421    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1429     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
    1430     0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1422    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,
     1423    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14311424    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14321425    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1433     0,     };
     1426        };
    14341427
    14351428static yy_state_type yy_last_accepting_state;
     
    14591452 * Created On       : Sat Sep 22 08:58:10 2001
    14601453 * Last Modified By : Peter A. Buhr
    1461  * Last Modified On : Sat Jan 30 19:54:39 2016
    1462  * Update Count     : 425
     1454 * Last Modified On : Tue Feb  2 15:06:54 2016
     1455 * Update Count     : 426
    14631456 */
    14641457#line 20 "lex.ll"
     
    15181511
    15191512
    1520 #line 1521 "Parser/lex.cc"
     1513#line 1514 "Parser/lex.cc"
    15211514
    15221515#define INITIAL 0
     
    17131706
    17141707                                   /* line directives */
    1715 #line 1716 "Parser/lex.cc"
     1708#line 1709 "Parser/lex.cc"
    17161709
    17171710        if ( !(yy_init) )
     
    17671760                                {
    17681761                                yy_current_state = (int) yy_def[yy_current_state];
    1769                                 if ( yy_current_state >= 884 )
     1762                                if ( yy_current_state >= 876 )
    17701763                                        yy_c = yy_meta[(unsigned int) yy_c];
    17711764                                }
     
    17731766                        ++yy_cp;
    17741767                        }
    1775                 while ( yy_base[yy_current_state] != 2799 );
     1768                while ( yy_base[yy_current_state] != 2782 );
    17761769
    17771770yy_find_action:
     
    21852178YY_RULE_SETUP
    21862179#line 238 "lex.ll"
    2187 { KEYWORD_RETURN(OFFSETOF); }                   // GCC
     2180{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    21882181        YY_BREAK
    21892182case 71:
    21902183YY_RULE_SETUP
    21912184#line 239 "lex.ll"
    2192 { KEYWORD_RETURN(OFFSETOF); }           // GCC
     2185{ KEYWORD_RETURN(REGISTER); }
    21932186        YY_BREAK
    21942187case 72:
    21952188YY_RULE_SETUP
    21962189#line 240 "lex.ll"
    2197 { KEYWORD_RETURN(REGISTER); }
     2190{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21982191        YY_BREAK
    21992192case 73:
    22002193YY_RULE_SETUP
    22012194#line 241 "lex.ll"
    2202 { KEYWORD_RETURN(RESTRICT); }                   // C99
     2195{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22032196        YY_BREAK
    22042197case 74:
     
    22102203YY_RULE_SETUP
    22112204#line 243 "lex.ll"
    2212 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2205{ KEYWORD_RETURN(RETURN); }
    22132206        YY_BREAK
    22142207case 76:
    22152208YY_RULE_SETUP
    22162209#line 244 "lex.ll"
    2217 { KEYWORD_RETURN(RETURN); }
     2210{ KEYWORD_RETURN(SHORT); }
    22182211        YY_BREAK
    22192212case 77:
    22202213YY_RULE_SETUP
    22212214#line 245 "lex.ll"
    2222 { KEYWORD_RETURN(SHORT); }
     2215{ KEYWORD_RETURN(SIGNED); }
    22232216        YY_BREAK
    22242217case 78:
    22252218YY_RULE_SETUP
    22262219#line 246 "lex.ll"
    2227 { KEYWORD_RETURN(SIGNED); }
     2220{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22282221        YY_BREAK
    22292222case 79:
     
    22352228YY_RULE_SETUP
    22362229#line 248 "lex.ll"
    2237 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2230{ KEYWORD_RETURN(SIZEOF); }
    22382231        YY_BREAK
    22392232case 81:
    22402233YY_RULE_SETUP
    22412234#line 249 "lex.ll"
    2242 { KEYWORD_RETURN(SIZEOF); }
     2235{ KEYWORD_RETURN(STATIC); }
    22432236        YY_BREAK
    22442237case 82:
    22452238YY_RULE_SETUP
    22462239#line 250 "lex.ll"
    2247 { KEYWORD_RETURN(STATIC); }
     2240{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22482241        YY_BREAK
    22492242case 83:
    22502243YY_RULE_SETUP
    22512244#line 251 "lex.ll"
    2252 { KEYWORD_RETURN(STATICASSERT); }               // C11
     2245{ KEYWORD_RETURN(STRUCT); }
    22532246        YY_BREAK
    22542247case 84:
    22552248YY_RULE_SETUP
    22562249#line 252 "lex.ll"
    2257 { KEYWORD_RETURN(STRUCT); }
     2250{ KEYWORD_RETURN(SWITCH); }
    22582251        YY_BREAK
    22592252case 85:
    22602253YY_RULE_SETUP
    22612254#line 253 "lex.ll"
    2262 { KEYWORD_RETURN(SWITCH); }
     2255{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22632256        YY_BREAK
    22642257case 86:
    22652258YY_RULE_SETUP
    22662259#line 254 "lex.ll"
    2267 { KEYWORD_RETURN(THREADLOCAL); }                // C11
     2260{ KEYWORD_RETURN(THROW); }                              // CFA
    22682261        YY_BREAK
    22692262case 87:
    22702263YY_RULE_SETUP
    22712264#line 255 "lex.ll"
    2272 { KEYWORD_RETURN(THROW); }                              // CFA
     2265{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22732266        YY_BREAK
    22742267case 88:
    22752268YY_RULE_SETUP
    22762269#line 256 "lex.ll"
    2277 { KEYWORD_RETURN(THROWRESUME); }                // CFA
     2270{ KEYWORD_RETURN(TRY); }                                // CFA
    22782271        YY_BREAK
    22792272case 89:
    22802273YY_RULE_SETUP
    22812274#line 257 "lex.ll"
    2282 { KEYWORD_RETURN(TRY); }                                // CFA
     2275{ KEYWORD_RETURN(TYPE); }                               // CFA
    22832276        YY_BREAK
    22842277case 90:
    22852278YY_RULE_SETUP
    22862279#line 258 "lex.ll"
    2287 { KEYWORD_RETURN(TYPE); }                               // CFA
     2280{ KEYWORD_RETURN(TYPEDEF); }
    22882281        YY_BREAK
    22892282case 91:
    22902283YY_RULE_SETUP
    22912284#line 259 "lex.ll"
    2292 { KEYWORD_RETURN(TYPEDEF); }
     2285{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22932286        YY_BREAK
    22942287case 92:
     
    23052298YY_RULE_SETUP
    23062299#line 262 "lex.ll"
    2307 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2300{ KEYWORD_RETURN(UNION); }
    23082301        YY_BREAK
    23092302case 95:
    23102303YY_RULE_SETUP
    23112304#line 263 "lex.ll"
    2312 { KEYWORD_RETURN(UNION); }
     2305{ KEYWORD_RETURN(UNSIGNED); }
    23132306        YY_BREAK
    23142307case 96:
    23152308YY_RULE_SETUP
    23162309#line 264 "lex.ll"
    2317 { KEYWORD_RETURN(UNSIGNED); }
     2310{ KEYWORD_RETURN(VOID); }
    23182311        YY_BREAK
    23192312case 97:
    23202313YY_RULE_SETUP
    23212314#line 265 "lex.ll"
    2322 { KEYWORD_RETURN(VOID); }
     2315{ KEYWORD_RETURN(VOLATILE); }
    23232316        YY_BREAK
    23242317case 98:
    23252318YY_RULE_SETUP
    23262319#line 266 "lex.ll"
    2327 { KEYWORD_RETURN(VOLATILE); }
     2320{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23282321        YY_BREAK
    23292322case 99:
     
    23352328YY_RULE_SETUP
    23362329#line 268 "lex.ll"
    2337 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2338         YY_BREAK
     2330{ KEYWORD_RETURN(WHILE); }
     2331        YY_BREAK
     2332/* identifier */
    23392333case 101:
    23402334YY_RULE_SETUP
    2341 #line 269 "lex.ll"
    2342 { KEYWORD_RETURN(WHILE); }
    2343         YY_BREAK
    2344 /* identifier */
     2335#line 271 "lex.ll"
     2336{ IDENTIFIER_RETURN(); }
     2337        YY_BREAK
    23452338case 102:
    23462339YY_RULE_SETUP
    23472340#line 272 "lex.ll"
     2341{ ATTRIBUTE_RETURN(); }
     2342        YY_BREAK
     2343case 103:
     2344YY_RULE_SETUP
     2345#line 273 "lex.ll"
     2346{ BEGIN BKQUOTE; }
     2347        YY_BREAK
     2348case 104:
     2349YY_RULE_SETUP
     2350#line 274 "lex.ll"
    23482351{ IDENTIFIER_RETURN(); }
    23492352        YY_BREAK
    2350 case 103:
    2351 YY_RULE_SETUP
    2352 #line 273 "lex.ll"
    2353 { ATTRIBUTE_RETURN(); }
    2354         YY_BREAK
    2355 case 104:
    2356 YY_RULE_SETUP
    2357 #line 274 "lex.ll"
    2358 { BEGIN BKQUOTE; }
    2359         YY_BREAK
    23602353case 105:
    23612354YY_RULE_SETUP
    23622355#line 275 "lex.ll"
    2363 { IDENTIFIER_RETURN(); }
    2364         YY_BREAK
     2356{ BEGIN 0; }
     2357        YY_BREAK
     2358/* numeric constants */
    23652359case 106:
    23662360YY_RULE_SETUP
    2367 #line 276 "lex.ll"
    2368 { BEGIN 0; }
    2369         YY_BREAK
    2370 /* numeric constants */
     2361#line 278 "lex.ll"
     2362{ NUMERIC_RETURN(ZERO); }                               // CFA
     2363        YY_BREAK
    23712364case 107:
    23722365YY_RULE_SETUP
    23732366#line 279 "lex.ll"
    2374 { NUMERIC_RETURN(ZERO); }                               // CFA
     2367{ NUMERIC_RETURN(ONE); }                                // CFA
    23752368        YY_BREAK
    23762369case 108:
    23772370YY_RULE_SETUP
    23782371#line 280 "lex.ll"
    2379 { NUMERIC_RETURN(ONE); }                                // CFA
     2372{ NUMERIC_RETURN(INTEGERconstant); }
    23802373        YY_BREAK
    23812374case 109:
     
    23922385YY_RULE_SETUP
    23932386#line 283 "lex.ll"
    2394 { NUMERIC_RETURN(INTEGERconstant); }
     2387{ NUMERIC_RETURN(FLOATINGconstant); }
    23952388        YY_BREAK
    23962389case 112:
     
    23992392{ NUMERIC_RETURN(FLOATINGconstant); }
    24002393        YY_BREAK
     2394/* character constant, allows empty value */
    24012395case 113:
    24022396YY_RULE_SETUP
    2403 #line 285 "lex.ll"
    2404 { NUMERIC_RETURN(FLOATINGconstant); }
    2405         YY_BREAK
    2406 /* character constant, allows empty value */
     2397#line 287 "lex.ll"
     2398{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2399        YY_BREAK
    24072400case 114:
    24082401YY_RULE_SETUP
    24092402#line 288 "lex.ll"
    2410 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2403{ *strtext += std::string( yytext ); }
    24112404        YY_BREAK
    24122405case 115:
     2406/* rule 115 can match eol */
    24132407YY_RULE_SETUP
    24142408#line 289 "lex.ll"
    2415 { *strtext += std::string( yytext ); }
    2416         YY_BREAK
    2417 case 116:
    2418 /* rule 116 can match eol */
    2419 YY_RULE_SETUP
    2420 #line 290 "lex.ll"
    24212409{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    24222410        YY_BREAK
    24232411/* ' stop highlighting */
    24242412/* string constant */
     2413case 116:
     2414YY_RULE_SETUP
     2415#line 293 "lex.ll"
     2416{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2417        YY_BREAK
    24252418case 117:
    24262419YY_RULE_SETUP
    24272420#line 294 "lex.ll"
    2428 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     2421{ *strtext += std::string( yytext ); }
    24292422        YY_BREAK
    24302423case 118:
     2424/* rule 118 can match eol */
    24312425YY_RULE_SETUP
    24322426#line 295 "lex.ll"
    2433 { *strtext += std::string( yytext ); }
    2434         YY_BREAK
    2435 case 119:
    2436 /* rule 119 can match eol */
    2437 YY_RULE_SETUP
    2438 #line 296 "lex.ll"
    24392427{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    24402428        YY_BREAK
    24412429/* " stop highlighting */
    24422430/* common character/string constant */
     2431case 119:
     2432YY_RULE_SETUP
     2433#line 299 "lex.ll"
     2434{ rm_underscore(); *strtext += std::string( yytext ); }
     2435        YY_BREAK
    24432436case 120:
     2437/* rule 120 can match eol */
    24442438YY_RULE_SETUP
    24452439#line 300 "lex.ll"
    2446 { rm_underscore(); *strtext += std::string( yytext ); }
     2440{}                                              // continuation (ALSO HANDLED BY CPP)
    24472441        YY_BREAK
    24482442case 121:
    2449 /* rule 121 can match eol */
    24502443YY_RULE_SETUP
    24512444#line 301 "lex.ll"
    2452 {}                                              // continuation (ALSO HANDLED BY CPP)
    2453         YY_BREAK
     2445{ *strtext += std::string( yytext ); } // unknown escape character
     2446        YY_BREAK
     2447/* punctuation */
    24542448case 122:
    24552449YY_RULE_SETUP
    2456 #line 302 "lex.ll"
    2457 { *strtext += std::string( yytext ); } // unknown escape character
    2458         YY_BREAK
    2459 /* punctuation */
     2450#line 304 "lex.ll"
     2451{ ASCIIOP_RETURN(); }
     2452        YY_BREAK
    24602453case 123:
    24612454YY_RULE_SETUP
     
    24862479YY_RULE_SETUP
    24872480#line 310 "lex.ll"
     2481{ ASCIIOP_RETURN(); }                                   // also operator
     2482        YY_BREAK
     2483case 129:
     2484YY_RULE_SETUP
     2485#line 311 "lex.ll"
    24882486{ ASCIIOP_RETURN(); }
    2489         YY_BREAK
    2490 case 129:
    2491 YY_RULE_SETUP
    2492 #line 311 "lex.ll"
    2493 { ASCIIOP_RETURN(); }                                   // also operator
    24942487        YY_BREAK
    24952488case 130:
     
    25012494YY_RULE_SETUP
    25022495#line 313 "lex.ll"
     2496{ ASCIIOP_RETURN(); }                                   // also operator
     2497        YY_BREAK
     2498case 132:
     2499YY_RULE_SETUP
     2500#line 314 "lex.ll"
     2501{ NAMEDOP_RETURN(ELLIPSIS); }
     2502        YY_BREAK
     2503/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
     2504case 133:
     2505YY_RULE_SETUP
     2506#line 317 "lex.ll"
     2507{ RETURN_VAL('['); }
     2508        YY_BREAK
     2509case 134:
     2510YY_RULE_SETUP
     2511#line 318 "lex.ll"
     2512{ RETURN_VAL(']'); }
     2513        YY_BREAK
     2514case 135:
     2515YY_RULE_SETUP
     2516#line 319 "lex.ll"
     2517{ RETURN_VAL('{'); }
     2518        YY_BREAK
     2519case 136:
     2520YY_RULE_SETUP
     2521#line 320 "lex.ll"
     2522{ RETURN_VAL('}'); }
     2523        YY_BREAK
     2524/* operators */
     2525case 137:
     2526YY_RULE_SETUP
     2527#line 323 "lex.ll"
    25032528{ ASCIIOP_RETURN(); }
    25042529        YY_BREAK
    2505 case 132:
    2506 YY_RULE_SETUP
    2507 #line 314 "lex.ll"
    2508 { ASCIIOP_RETURN(); }                                   // also operator
    2509         YY_BREAK
    2510 case 133:
    2511 YY_RULE_SETUP
    2512 #line 315 "lex.ll"
    2513 { NAMEDOP_RETURN(ELLIPSIS); }
    2514         YY_BREAK
    2515 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2516 case 134:
    2517 YY_RULE_SETUP
    2518 #line 318 "lex.ll"
    2519 { RETURN_VAL('['); }
    2520         YY_BREAK
    2521 case 135:
    2522 YY_RULE_SETUP
    2523 #line 319 "lex.ll"
    2524 { RETURN_VAL(']'); }
    2525         YY_BREAK
    2526 case 136:
    2527 YY_RULE_SETUP
    2528 #line 320 "lex.ll"
    2529 { RETURN_VAL('{'); }
    2530         YY_BREAK
    2531 case 137:
    2532 YY_RULE_SETUP
    2533 #line 321 "lex.ll"
    2534 { RETURN_VAL('}'); }
    2535         YY_BREAK
    2536 /* operators */
    25372530case 138:
    25382531YY_RULE_SETUP
     
    26022595case 151:
    26032596YY_RULE_SETUP
    2604 #line 337 "lex.ll"
    2605 { ASCIIOP_RETURN(); }
     2597#line 338 "lex.ll"
     2598{ NAMEDOP_RETURN(ICR); }
    26062599        YY_BREAK
    26072600case 152:
    26082601YY_RULE_SETUP
    26092602#line 339 "lex.ll"
    2610 { NAMEDOP_RETURN(ICR); }
     2603{ NAMEDOP_RETURN(DECR); }
    26112604        YY_BREAK
    26122605case 153:
    26132606YY_RULE_SETUP
    26142607#line 340 "lex.ll"
    2615 { NAMEDOP_RETURN(DECR); }
     2608{ NAMEDOP_RETURN(EQ); }
    26162609        YY_BREAK
    26172610case 154:
    26182611YY_RULE_SETUP
    26192612#line 341 "lex.ll"
    2620 { NAMEDOP_RETURN(EQ); }
     2613{ NAMEDOP_RETURN(NE); }
    26212614        YY_BREAK
    26222615case 155:
    26232616YY_RULE_SETUP
    26242617#line 342 "lex.ll"
    2625 { NAMEDOP_RETURN(NE); }
     2618{ NAMEDOP_RETURN(LS); }
    26262619        YY_BREAK
    26272620case 156:
    26282621YY_RULE_SETUP
    26292622#line 343 "lex.ll"
    2630 { NAMEDOP_RETURN(LS); }
     2623{ NAMEDOP_RETURN(RS); }
    26312624        YY_BREAK
    26322625case 157:
    26332626YY_RULE_SETUP
    26342627#line 344 "lex.ll"
    2635 { NAMEDOP_RETURN(RS); }
     2628{ NAMEDOP_RETURN(LE); }
    26362629        YY_BREAK
    26372630case 158:
    26382631YY_RULE_SETUP
    26392632#line 345 "lex.ll"
    2640 { NAMEDOP_RETURN(LE); }
     2633{ NAMEDOP_RETURN(GE); }
    26412634        YY_BREAK
    26422635case 159:
    26432636YY_RULE_SETUP
    26442637#line 346 "lex.ll"
    2645 { NAMEDOP_RETURN(GE); }
     2638{ NAMEDOP_RETURN(ANDAND); }
    26462639        YY_BREAK
    26472640case 160:
    26482641YY_RULE_SETUP
    26492642#line 347 "lex.ll"
    2650 { NAMEDOP_RETURN(ANDAND); }
     2643{ NAMEDOP_RETURN(OROR); }
    26512644        YY_BREAK
    26522645case 161:
    26532646YY_RULE_SETUP
    26542647#line 348 "lex.ll"
    2655 { NAMEDOP_RETURN(OROR); }
     2648{ NAMEDOP_RETURN(ARROW); }
    26562649        YY_BREAK
    26572650case 162:
    26582651YY_RULE_SETUP
    26592652#line 349 "lex.ll"
    2660 { NAMEDOP_RETURN(ARROW); }
     2653{ NAMEDOP_RETURN(PLUSassign); }
    26612654        YY_BREAK
    26622655case 163:
    26632656YY_RULE_SETUP
    26642657#line 350 "lex.ll"
    2665 { NAMEDOP_RETURN(PLUSassign); }
     2658{ NAMEDOP_RETURN(MINUSassign); }
    26662659        YY_BREAK
    26672660case 164:
    26682661YY_RULE_SETUP
    26692662#line 351 "lex.ll"
    2670 { NAMEDOP_RETURN(MINUSassign); }
     2663{ NAMEDOP_RETURN(MULTassign); }
    26712664        YY_BREAK
    26722665case 165:
    26732666YY_RULE_SETUP
    26742667#line 352 "lex.ll"
    2675 { NAMEDOP_RETURN(MULTassign); }
     2668{ NAMEDOP_RETURN(DIVassign); }
    26762669        YY_BREAK
    26772670case 166:
    26782671YY_RULE_SETUP
    26792672#line 353 "lex.ll"
    2680 { NAMEDOP_RETURN(DIVassign); }
     2673{ NAMEDOP_RETURN(MODassign); }
    26812674        YY_BREAK
    26822675case 167:
    26832676YY_RULE_SETUP
    26842677#line 354 "lex.ll"
    2685 { NAMEDOP_RETURN(MODassign); }
     2678{ NAMEDOP_RETURN(ANDassign); }
    26862679        YY_BREAK
    26872680case 168:
    26882681YY_RULE_SETUP
    26892682#line 355 "lex.ll"
    2690 { NAMEDOP_RETURN(ANDassign); }
     2683{ NAMEDOP_RETURN(ORassign); }
    26912684        YY_BREAK
    26922685case 169:
    26932686YY_RULE_SETUP
    26942687#line 356 "lex.ll"
    2695 { NAMEDOP_RETURN(ORassign); }
     2688{ NAMEDOP_RETURN(ERassign); }
    26962689        YY_BREAK
    26972690case 170:
    26982691YY_RULE_SETUP
    26992692#line 357 "lex.ll"
    2700 { NAMEDOP_RETURN(ERassign); }
     2693{ NAMEDOP_RETURN(LSassign); }
    27012694        YY_BREAK
    27022695case 171:
    27032696YY_RULE_SETUP
    27042697#line 358 "lex.ll"
    2705 { NAMEDOP_RETURN(LSassign); }
     2698{ NAMEDOP_RETURN(RSassign); }
    27062699        YY_BREAK
    27072700case 172:
    27082701YY_RULE_SETUP
    2709 #line 359 "lex.ll"
    2710 { NAMEDOP_RETURN(RSassign); }
    2711         YY_BREAK
     2702#line 360 "lex.ll"
     2703{ NAMEDOP_RETURN(ATassign); }
     2704        YY_BREAK
     2705/* CFA, operator identifier */
    27122706case 173:
    27132707YY_RULE_SETUP
    2714 #line 361 "lex.ll"
    2715 { NAMEDOP_RETURN(ATassign); }
    2716         YY_BREAK
    2717 /* CFA, operator identifier */
     2708#line 363 "lex.ll"
     2709{ IDENTIFIER_RETURN(); }                                // unary
     2710        YY_BREAK
    27182711case 174:
    27192712YY_RULE_SETUP
    27202713#line 364 "lex.ll"
    2721 { IDENTIFIER_RETURN(); }                                // unary
     2714{ IDENTIFIER_RETURN(); }
    27222715        YY_BREAK
    27232716case 175:
     
    27292722YY_RULE_SETUP
    27302723#line 366 "lex.ll"
    2731 { IDENTIFIER_RETURN(); }
    2732         YY_BREAK
    2733 case 177:
    2734 YY_RULE_SETUP
    2735 #line 367 "lex.ll"
    27362724{ IDENTIFIER_RETURN(); }                // binary
    27372725        YY_BREAK
     
    27622750          an argument list.
    27632751        */
    2764 case 178:
    2765 YY_RULE_SETUP
    2766 #line 394 "lex.ll"
     2752case 177:
     2753YY_RULE_SETUP
     2754#line 393 "lex.ll"
    27672755{
    27682756        // 1 or 2 character unary operator ?
     
    27772765        YY_BREAK
    27782766/* unknown characters */
     2767case 178:
     2768YY_RULE_SETUP
     2769#line 405 "lex.ll"
     2770{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
     2771        YY_BREAK
    27792772case 179:
    27802773YY_RULE_SETUP
    2781 #line 406 "lex.ll"
    2782 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    2783         YY_BREAK
    2784 case 180:
    2785 YY_RULE_SETUP
    2786 #line 408 "lex.ll"
     2774#line 407 "lex.ll"
    27872775ECHO;
    27882776        YY_BREAK
    2789 #line 2790 "Parser/lex.cc"
     2777#line 2778 "Parser/lex.cc"
    27902778case YY_STATE_EOF(INITIAL):
    27912779case YY_STATE_EOF(COMMENT):
     
    30843072                        {
    30853073                        yy_current_state = (int) yy_def[yy_current_state];
    3086                         if ( yy_current_state >= 884 )
     3074                        if ( yy_current_state >= 876 )
    30873075                                yy_c = yy_meta[(unsigned int) yy_c];
    30883076                        }
     
    31123100                {
    31133101                yy_current_state = (int) yy_def[yy_current_state];
    3114                 if ( yy_current_state >= 884 )
     3102                if ( yy_current_state >= 876 )
    31153103                        yy_c = yy_meta[(unsigned int) yy_c];
    31163104                }
    31173105        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3118         yy_is_jam = (yy_current_state == 883);
     3106        yy_is_jam = (yy_current_state == 875);
    31193107
    31203108        return yy_is_jam ? 0 : yy_current_state;
     
    37623750#define YYTABLES_NAME "yytables"
    37633751
    3764 #line 408 "lex.ll"
     3752#line 407 "lex.ll"
    37653753
    37663754
  • src/Parser/lex.ll

    r4789f44 rbd85400  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Sat Jan 30 19:54:39 2016
    13  * Update Count     : 425
     12 * Last Modified On : Tue Feb  2 15:06:54 2016
     13 * Update Count     : 426
    1414 */
    1515
     
    236236lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
    237237_Noreturn               { KEYWORD_RETURN(NORETURN); }                   // C11
    238 offsetof                { KEYWORD_RETURN(OFFSETOF); }                   // GCC
    239238__builtin_offsetof { KEYWORD_RETURN(OFFSETOF); }                // GCC
    240239register                { KEYWORD_RETURN(REGISTER); }
  • src/Parser/parser.cc

    r4789f44 rbd85400  
    585585
    586586/* YYFINAL -- State number of the termination state.  */
    587 #define YYFINAL  247
     587#define YYFINAL  248
    588588/* YYLAST -- Last index in YYTABLE.  */
    589 #define YYLAST   10929
     589#define YYLAST   11042
    590590
    591591/* YYNTOKENS -- Number of terminals.  */
     
    594594#define YYNNTS  238
    595595/* YYNRULES -- Number of rules.  */
    596 #define YYNRULES  750
     596#define YYNRULES  751
    597597/* YYNRULES -- Number of states.  */
    598 #define YYNSTATES  1576
     598#define YYNSTATES  1578
    599599
    600600/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    653653{
    654654       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    655       17,    19,    21,    23,    25,    27,    29,    32,    34,    36,
    656       40,    44,    46,    53,    58,    62,    70,    74,    82,    85,
    657       88,    96,   101,   103,   107,   108,   110,   114,   122,   132,
    658      134,   138,   140,   144,   152,   156,   164,   166,   168,   170,
    659      173,   176,   179,   182,   185,   188,   191,   196,   203,   205,
    660      210,   215,   218,   223,   226,   228,   230,   232,   234,   236,
    661      241,   246,   248,   252,   256,   260,   262,   266,   270,   272,
    662      276,   280,   282,   286,   290,   294,   298,   300,   304,   308,
    663      310,   314,   316,   320,   322,   326,   328,   332,   334,   338,
    664      340,   346,   351,   357,   359,   361,   365,   369,   372,   373,
    665      375,   378,   384,   391,   399,   401,   405,   407,   409,   411,
    666      413,   415,   417,   419,   421,   423,   425,   427,   431,   432,
    667      434,   436,   438,   440,   442,   444,   446,   448,   450,   457,
    668      462,   465,   473,   475,   479,   481,   484,   486,   489,   491,
    669      494,   497,   503,   511,   517,   527,   533,   543,   545,   549,
    670      551,   553,   557,   561,   564,   566,   569,   572,   573,   575,
    671      578,   582,   583,   585,   588,   592,   596,   601,   602,   604,
    672      606,   609,   615,   623,   630,   637,   642,   646,   651,   654,
    673      658,   661,   665,   669,   673,   677,   683,   687,   691,   696,
    674      698,   704,   711,   717,   724,   734,   745,   755,   766,   769,
    675      771,   774,   777,   780,   782,   789,   798,   809,   822,   837,
    676      838,   840,   841,   843,   845,   849,   854,   862,   863,   865,
    677      869,   871,   875,   877,   879,   881,   885,   887,   889,   891,
    678      895,   896,   898,   902,   907,   909,   913,   915,   917,   921,
    679      925,   929,   933,   937,   940,   944,   951,   955,   959,   964,
    680      966,   969,   972,   976,   982,   991,   999,  1007,  1013,  1023,
    681     1026,  1029,  1035,  1039,  1045,  1050,  1054,  1059,  1064,  1072,
    682     1076,  1080,  1084,  1088,  1093,  1100,  1102,  1104,  1106,  1108,
    683     1110,  1112,  1114,  1116,  1117,  1119,  1121,  1124,  1126,  1128,
    684     1130,  1132,  1134,  1136,  1138,  1139,  1145,  1147,  1150,  1154,
    685     1156,  1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
     655      17,    19,    21,    23,    25,    27,    29,    31,    34,    36,
     656      38,    42,    46,    48,    55,    60,    64,    72,    76,    84,
     657      87,    90,    98,   103,   105,   109,   110,   112,   116,   124,
     658     134,   136,   140,   142,   146,   154,   158,   166,   168,   170,
     659     172,   175,   178,   181,   184,   187,   190,   193,   198,   205,
     660     207,   212,   217,   220,   225,   228,   230,   232,   234,   236,
     661     238,   243,   248,   250,   254,   258,   262,   264,   268,   272,
     662     274,   278,   282,   284,   288,   292,   296,   300,   302,   306,
     663     310,   312,   316,   318,   322,   324,   328,   330,   334,   336,
     664     340,   342,   348,   353,   359,   361,   363,   367,   371,   374,
     665     375,   377,   380,   386,   393,   401,   403,   407,   409,   411,
     666     413,   415,   417,   419,   421,   423,   425,   427,   429,   433,
     667     434,   436,   438,   440,   442,   444,   446,   448,   450,   452,
     668     459,   464,   467,   475,   477,   481,   483,   486,   488,   491,
     669     493,   496,   499,   505,   513,   519,   529,   535,   545,   547,
     670     551,   553,   555,   559,   563,   566,   568,   571,   574,   575,
     671     577,   580,   584,   585,   587,   590,   594,   598,   603,   604,
     672     606,   608,   611,   617,   625,   632,   639,   644,   648,   653,
     673     656,   660,   663,   667,   671,   675,   679,   685,   689,   693,
     674     698,   700,   706,   713,   719,   726,   736,   747,   757,   768,
     675     771,   773,   776,   779,   782,   784,   791,   800,   811,   824,
     676     839,   840,   842,   843,   845,   847,   851,   856,   864,   865,
     677     867,   871,   873,   877,   879,   881,   883,   887,   889,   891,
     678     893,   897,   898,   900,   904,   909,   911,   915,   917,   919,
     679     923,   927,   931,   935,   939,   942,   946,   953,   957,   961,
     680     966,   968,   971,   974,   978,   984,   993,  1001,  1009,  1015,
     681    1025,  1028,  1031,  1037,  1041,  1047,  1052,  1056,  1061,  1066,
     682    1074,  1078,  1082,  1086,  1090,  1095,  1102,  1104,  1106,  1108,
     683    1110,  1112,  1114,  1116,  1118,  1119,  1121,  1123,  1126,  1128,
     684    1130,  1132,  1134,  1136,  1138,  1140,  1141,  1147,  1149,  1152,
     685    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,
    686686    1177,  1179,  1181,  1183,  1185,  1187,  1189,  1191,  1193,  1195,
    687     1197,  1199,  1201,  1203,  1206,  1209,  1213,  1217,  1219,  1223,
    688     1225,  1228,  1231,  1234,  1239,  1244,  1249,  1254,  1256,  1259,
    689     1262,  1266,  1268,  1271,  1274,  1276,  1279,  1282,  1286,  1288,
    690     1291,  1294,  1296,  1298,  1303,  1306,  1312,  1320,  1323,  1326,
    691     1329,  1331,  1334,  1337,  1341,  1344,  1348,  1350,  1353,  1357,
    692     1360,  1363,  1368,  1369,  1371,  1374,  1377,  1379,  1380,  1382,
    693     1385,  1388,  1394,  1401,  1404,  1407,  1412,  1413,  1416,  1417,
    694     1419,  1421,  1423,  1429,  1435,  1441,  1443,  1449,  1455,  1465,
    695     1467,  1473,  1474,  1476,  1478,  1484,  1486,  1488,  1494,  1500,
    696     1502,  1506,  1510,  1515,  1517,  1519,  1521,  1523,  1526,  1528,
    697     1532,  1536,  1538,  1541,  1543,  1547,  1549,  1551,  1553,  1555,
    698     1557,  1559,  1561,  1563,  1565,  1567,  1569,  1572,  1574,  1576,
    699     1578,  1581,  1582,  1585,  1588,  1590,  1595,  1596,  1598,  1601,
    700     1605,  1610,  1613,  1616,  1618,  1621,  1623,  1626,  1632,  1638,
    701     1646,  1653,  1655,  1658,  1661,  1665,  1667,  1670,  1673,  1678,
    702     1681,  1686,  1687,  1692,  1695,  1697,  1699,  1701,  1702,  1705,
    703     1711,  1717,  1731,  1733,  1735,  1739,  1743,  1746,  1750,  1754,
    704     1757,  1762,  1764,  1771,  1781,  1782,  1794,  1796,  1800,  1804,
    705     1808,  1810,  1812,  1818,  1821,  1827,  1828,  1830,  1832,  1836,
    706     1837,  1839,  1841,  1843,  1845,  1846,  1853,  1856,  1858,  1861,
    707     1866,  1869,  1873,  1877,  1881,  1886,  1892,  1898,  1904,  1911,
    708     1913,  1915,  1917,  1921,  1922,  1928,  1929,  1931,  1933,  1936,
    709     1943,  1945,  1949,  1950,  1952,  1957,  1959,  1961,  1963,  1965,
    710     1968,  1970,  1973,  1976,  1978,  1982,  1985,  1989,  1993,  1996,
    711     2001,  2006,  2010,  2019,  2023,  2026,  2028,  2031,  2038,  2047,
    712     2051,  2054,  2058,  2062,  2067,  2072,  2076,  2078,  2080,  2082,
    713     2087,  2094,  2098,  2101,  2105,  2109,  2114,  2119,  2123,  2126,
    714     2128,  2131,  2134,  2136,  2140,  2143,  2147,  2151,  2154,  2159,
    715     2164,  2168,  2175,  2184,  2188,  2191,  2193,  2196,  2199,  2202,
    716     2206,  2210,  2213,  2218,  2223,  2227,  2234,  2243,  2247,  2250,
    717     2252,  2255,  2258,  2260,  2262,  2265,  2269,  2273,  2276,  2281,
    718     2288,  2297,  2299,  2302,  2305,  2307,  2310,  2313,  2317,  2321,
    719     2323,  2328,  2333,  2337,  2343,  2352,  2356,  2359,  2363,  2365,
    720     2371,  2377,  2384,  2391,  2393,  2396,  2399,  2401,  2404,  2407,
    721     2411,  2415,  2417,  2422,  2427,  2431,  2437,  2446,  2450,  2452,
    722     2455,  2457,  2460,  2467,  2473,  2480,  2488,  2496,  2498,  2501,
    723     2504,  2506,  2509,  2512,  2516,  2520,  2522,  2527,  2532,  2536,
    724     2545,  2549,  2551,  2553,  2556,  2558,  2560,  2563,  2567,  2570,
    725     2574,  2577,  2581,  2585,  2588,  2593,  2597,  2600,  2604,  2607,
    726     2612,  2616,  2619,  2626,  2633,  2640,  2648,  2650,  2653,  2655,
    727     2657,  2659,  2662,  2666,  2669,  2673,  2676,  2680,  2684,  2689,
    728     2692,  2696,  2701,  2704,  2710,  2716,  2723,  2730,  2731,  2733,
    729     2734
     687    1197,  1199,  1201,  1203,  1205,  1208,  1211,  1215,  1219,  1221,
     688    1225,  1227,  1230,  1233,  1236,  1241,  1246,  1251,  1256,  1258,
     689    1261,  1264,  1268,  1270,  1273,  1276,  1278,  1281,  1284,  1288,
     690    1290,  1293,  1296,  1298,  1300,  1305,  1308,  1314,  1322,  1325,
     691    1328,  1331,  1333,  1336,  1339,  1343,  1346,  1350,  1352,  1355,
     692    1359,  1362,  1365,  1370,  1371,  1373,  1376,  1379,  1381,  1382,
     693    1384,  1387,  1390,  1396,  1403,  1406,  1409,  1414,  1415,  1418,
     694    1419,  1421,  1423,  1425,  1431,  1437,  1443,  1445,  1451,  1457,
     695    1467,  1469,  1475,  1476,  1478,  1480,  1486,  1488,  1490,  1496,
     696    1502,  1504,  1508,  1512,  1517,  1519,  1521,  1523,  1525,  1528,
     697    1530,  1534,  1538,  1540,  1543,  1545,  1549,  1551,  1553,  1555,
     698    1557,  1559,  1561,  1563,  1565,  1567,  1569,  1571,  1574,  1576,
     699    1578,  1580,  1583,  1584,  1587,  1590,  1592,  1597,  1598,  1600,
     700    1603,  1607,  1612,  1615,  1618,  1620,  1623,  1625,  1628,  1634,
     701    1640,  1648,  1655,  1657,  1660,  1663,  1667,  1669,  1672,  1675,
     702    1680,  1683,  1688,  1689,  1694,  1697,  1699,  1701,  1703,  1704,
     703    1707,  1713,  1719,  1733,  1735,  1737,  1741,  1745,  1748,  1752,
     704    1756,  1759,  1764,  1766,  1773,  1783,  1784,  1796,  1798,  1802,
     705    1806,  1810,  1812,  1814,  1820,  1823,  1829,  1830,  1832,  1834,
     706    1838,  1839,  1841,  1843,  1845,  1847,  1848,  1855,  1858,  1860,
     707    1863,  1868,  1871,  1875,  1879,  1883,  1888,  1894,  1900,  1906,
     708    1913,  1915,  1917,  1919,  1923,  1924,  1930,  1931,  1933,  1935,
     709    1938,  1945,  1947,  1951,  1952,  1954,  1959,  1961,  1963,  1965,
     710    1967,  1970,  1972,  1975,  1978,  1980,  1984,  1987,  1991,  1995,
     711    1998,  2003,  2008,  2012,  2021,  2025,  2028,  2030,  2033,  2040,
     712    2049,  2053,  2056,  2060,  2064,  2069,  2074,  2078,  2080,  2082,
     713    2084,  2089,  2096,  2100,  2103,  2107,  2111,  2116,  2121,  2125,
     714    2128,  2130,  2133,  2136,  2138,  2142,  2145,  2149,  2153,  2156,
     715    2161,  2166,  2170,  2177,  2186,  2190,  2193,  2195,  2198,  2201,
     716    2204,  2208,  2212,  2215,  2220,  2225,  2229,  2236,  2245,  2249,
     717    2252,  2254,  2257,  2260,  2262,  2264,  2267,  2271,  2275,  2278,
     718    2283,  2290,  2299,  2301,  2304,  2307,  2309,  2312,  2315,  2319,
     719    2323,  2325,  2330,  2335,  2339,  2345,  2354,  2358,  2361,  2365,
     720    2367,  2373,  2379,  2386,  2393,  2395,  2398,  2401,  2403,  2406,
     721    2409,  2413,  2417,  2419,  2424,  2429,  2433,  2439,  2448,  2452,
     722    2454,  2457,  2459,  2462,  2469,  2475,  2482,  2490,  2498,  2500,
     723    2503,  2506,  2508,  2511,  2514,  2518,  2522,  2524,  2529,  2534,
     724    2538,  2547,  2551,  2553,  2555,  2558,  2560,  2562,  2565,  2569,
     725    2572,  2576,  2579,  2583,  2587,  2590,  2595,  2599,  2602,  2606,
     726    2609,  2614,  2618,  2621,  2628,  2635,  2642,  2650,  2652,  2655,
     727    2657,  2659,  2661,  2664,  2668,  2671,  2675,  2678,  2682,  2686,
     728    2691,  2694,  2698,  2703,  2706,  2712,  2718,  2725,  2732,  2733,
     729    2735,  2736
    730730};
    731731
     
    735735     298,     0,    -1,    -1,    -1,    78,    -1,    79,    -1,    80,
    736736      -1,    71,    -1,    75,    -1,   139,    -1,    71,    -1,    75,
    737       -1,    71,    -1,    82,    -1,    83,    -1,    81,    -1,   140,
    738       81,    -1,    71,    -1,   139,    -1,   108,   167,   109,    -1,
    739      108,   171,   109,    -1,   141,    -1,   142,   110,   133,   162,
    740      134,   111,    -1,   142,   108,   143,   109,    -1,   142,   112,
    741      138,    -1,   142,   112,   110,   133,   145,   134,   111,    -1,
    742      142,    84,   138,    -1,   142,    84,   110,   133,   145,   134,
    743      111,    -1,   142,    85,    -1,   142,    86,    -1,   108,   271,
    744      109,   113,   275,   368,   114,    -1,   142,   113,   143,   114,
    745       -1,   144,    -1,   143,   115,   144,    -1,    -1,   162,    -1,
    746      138,   116,   162,    -1,   110,   133,   162,   134,   111,   116,
    747      162,    -1,   110,   133,   162,   115,   165,   134,   111,   116,
    748      162,    -1,   146,    -1,   145,   115,   146,    -1,   138,    -1,
    749      138,   112,   146,    -1,   138,   112,   110,   133,   145,   134,
    750      111,    -1,   138,    84,   146,    -1,   138,    84,   110,   133,
    751      145,   134,   111,    -1,   142,    -1,   135,    -1,   140,    -1,
    752       85,   147,    -1,    86,   147,    -1,    39,   149,    -1,   148,
    753      149,    -1,   117,   149,    -1,   118,   149,    -1,    36,   147,
    754       -1,    36,   108,   271,   109,    -1,    37,   108,   271,   115,
    755      138,   109,    -1,    75,    -1,    75,   108,   272,   109,    -1,
    756       75,   108,   144,   109,    -1,    65,   147,    -1,    65,   108,
    757      271,   109,    -1,    93,   138,    -1,   119,    -1,   120,    -1,
    758      121,    -1,   122,    -1,   147,    -1,   108,   271,   109,   149,
    759       -1,   108,   271,   109,   164,    -1,   149,    -1,   150,   118,
    760      149,    -1,   150,   123,   149,    -1,   150,   124,   149,    -1,
    761      150,    -1,   151,   120,   150,    -1,   151,   121,   150,    -1,
    762      151,    -1,   152,    87,   151,    -1,   152,    88,   151,    -1,
    763      152,    -1,   153,   125,   152,    -1,   153,   126,   152,    -1,
    764      153,    89,   152,    -1,   153,    90,   152,    -1,   153,    -1,
    765      154,    91,   153,    -1,   154,    92,   153,    -1,   154,    -1,
    766      155,   119,   154,    -1,   155,    -1,   156,   127,   155,    -1,
    767      156,    -1,   157,   128,   156,    -1,   157,    -1,   158,    93,
    768      157,    -1,   158,    -1,   159,    94,   158,    -1,   159,    -1,
    769      159,   129,   167,   116,   160,    -1,   159,   129,   116,   160,
    770       -1,   159,   129,   167,   116,   164,    -1,   160,    -1,   160,
    771       -1,   147,   130,   162,    -1,   147,   166,   162,    -1,   164,
    772      369,    -1,    -1,   162,    -1,   110,   111,    -1,   110,   133,
    773      162,   134,   111,    -1,   110,   133,   115,   165,   134,   111,
    774       -1,   110,   133,   162,   115,   165,   134,   111,    -1,   163,
    775       -1,   165,   115,   163,    -1,    96,    -1,    97,    -1,    98,
    776       -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,   103,
    777       -1,   104,    -1,   105,    -1,   162,    -1,   167,   115,   162,
    778       -1,    -1,   167,    -1,   170,    -1,   171,    -1,   175,    -1,
    779      176,    -1,   188,    -1,   190,    -1,   191,    -1,   196,    -1,
    780      127,   142,   113,   143,   114,   131,    -1,   138,   116,   308,
    781      169,    -1,   113,   114,    -1,   113,   133,   133,   207,   172,
    782      134,   114,    -1,   173,    -1,   172,   133,   173,    -1,   210,
    783       -1,    39,   210,    -1,   304,    -1,   169,   134,    -1,   169,
    784       -1,   174,   169,    -1,   168,   131,    -1,    40,   108,   167,
    785      109,   169,    -1,    40,   108,   167,   109,   169,    41,   169,
    786       -1,    42,   108,   167,   109,   181,    -1,    42,   108,   167,
    787      109,   113,   133,   203,   182,   114,    -1,    52,   108,   167,
    788      109,   181,    -1,    52,   108,   167,   109,   113,   133,   203,
    789      184,   114,    -1,   161,    -1,   161,    95,   161,    -1,   306,
    790       -1,   177,    -1,   178,   115,   177,    -1,    43,   178,   116,
    791       -1,    44,   116,    -1,   179,    -1,   180,   179,    -1,   180,
    792      169,    -1,    -1,   183,    -1,   180,   174,    -1,   183,   180,
    793      174,    -1,    -1,   185,    -1,   180,   187,    -1,   180,   174,
    794      186,    -1,   185,   180,   187,    -1,   185,   180,   174,   186,
    795       -1,    -1,   187,    -1,    55,    -1,    55,   131,    -1,    46,
    796      108,   167,   109,   169,    -1,    45,   169,    46,   108,   167,
    797      109,   131,    -1,    47,   108,   133,   189,   109,   169,    -1,
    798      168,   134,   131,   168,   131,   168,    -1,   210,   168,   131,
    799      168,    -1,    50,   138,   131,    -1,    50,   118,   167,   131,
    800       -1,    49,   131,    -1,    49,   138,   131,    -1,    48,   131,
    801       -1,    48,   138,   131,    -1,    51,   168,   131,    -1,    60,
    802      163,   131,    -1,    61,   163,   131,    -1,    61,   163,    62,
    803      162,   131,    -1,    56,   171,   192,    -1,    56,   171,   194,
    804       -1,    56,   171,   192,   194,    -1,   193,    -1,    57,   108,
    805       95,   109,   171,    -1,   193,    57,   108,    95,   109,   171,
    806       -1,    58,   108,    95,   109,   171,    -1,   193,    58,   108,
    807       95,   109,   171,    -1,    57,   108,   133,   133,   195,   134,
    808      109,   171,   134,    -1,   193,    57,   108,   133,   133,   195,
    809      134,   109,   171,   134,    -1,    58,   108,   133,   133,   195,
    810      134,   109,   171,   134,    -1,   193,    58,   108,   133,   133,
    811      195,   134,   109,   171,   134,    -1,    59,   171,    -1,   223,
    812       -1,   223,   305,    -1,   223,   353,    -1,   362,   138,    -1,
    813      362,    -1,    63,   197,   108,   140,   109,   131,    -1,    63,
    814      197,   108,   140,   116,   198,   109,   131,    -1,    63,   197,
    815      108,   140,   116,   198,   116,   198,   109,   131,    -1,    63,
    816      197,   108,   140,   116,   198,   116,   198,   116,   201,   109,
    817      131,    -1,    63,   197,    50,   108,   140,   116,   116,   198,
    818      116,   201,   116,   202,   109,   131,    -1,    -1,    11,    -1,
    819       -1,   199,    -1,   200,    -1,   199,   115,   200,    -1,   140,
    820      108,   161,   109,    -1,   110,   161,   111,   140,   108,   161,
    821      109,    -1,    -1,   140,    -1,   201,   115,   140,    -1,   138,
    822       -1,   202,   115,   138,    -1,   134,    -1,   204,    -1,   210,
    823       -1,   204,   133,   210,    -1,   134,    -1,   206,    -1,   220,
    824       -1,   206,   133,   220,    -1,    -1,   208,    -1,    28,   209,
    825      131,    -1,   208,    28,   209,   131,    -1,   270,    -1,   209,
    826      115,   270,    -1,   211,    -1,   220,    -1,   212,   134,   131,
    827       -1,   217,   134,   131,    -1,   214,   134,   131,    -1,   289,
    828      134,   131,    -1,   292,   134,   131,    -1,   213,   273,    -1,
    829      229,   213,   273,    -1,   212,   134,   115,   133,   268,   273,
    830       -1,   363,   268,   307,    -1,   366,   268,   307,    -1,   225,
    831      366,   268,   307,    -1,   215,    -1,   225,   215,    -1,   229,
    832      215,    -1,   229,   225,   215,    -1,   214,   134,   115,   133,
    833      268,    -1,   110,   111,   268,   108,   133,   256,   134,   109,
    834       -1,   366,   268,   108,   133,   256,   134,   109,    -1,   216,
    835      268,   108,   133,   256,   134,   109,    -1,   110,   133,   258,
    836      134,   111,    -1,   110,   133,   258,   134,   115,   133,   259,
    837      134,   111,    -1,     3,   213,    -1,     3,   215,    -1,   217,
    838      134,   115,   133,   138,    -1,     3,   223,   305,    -1,   218,
    839      134,   115,   133,   305,    -1,   225,     3,   223,   305,    -1,
    840      223,     3,   305,    -1,   223,     3,   225,   305,    -1,     3,
    841      138,   130,   162,    -1,   219,   134,   115,   133,   138,   130,
    842      162,    -1,   221,   134,   131,    -1,   218,   134,   131,    -1,
    843      219,   134,   131,    -1,   238,   134,   131,    -1,   222,   305,
    844      307,   273,    -1,   221,   115,   308,   305,   307,   273,    -1,
    845      234,    -1,   238,    -1,   240,    -1,   279,    -1,   235,    -1,
    846      239,    -1,   241,    -1,   280,    -1,    -1,   225,    -1,   226,
    847       -1,   225,   226,    -1,   227,    -1,   310,    -1,    10,    -1,
    848       12,    -1,    11,    -1,    14,    -1,    66,    -1,    -1,    13,
    849      108,   228,   282,   109,    -1,   230,    -1,   225,   230,    -1,
    850      229,   225,   230,    -1,   231,    -1,   230,   231,    -1,   232,
    851       -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
    852       -1,     9,    -1,    68,    -1,    70,    -1,    16,    -1,    21,
    853       -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
    854       -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
    855       -1,   235,    -1,   229,   235,    -1,   234,   231,    -1,   234,
    856      231,   225,    -1,   234,   231,   235,    -1,   236,    -1,   224,
    857      237,   224,    -1,   233,    -1,   225,   233,    -1,   236,   226,
    858       -1,   236,   233,    -1,    27,   108,   272,   109,    -1,    27,
    859      108,   167,   109,    -1,    77,   108,   272,   109,    -1,    77,
    860      108,   167,   109,    -1,   239,    -1,   229,   239,    -1,   238,
    861      231,    -1,   238,   231,   225,    -1,   242,    -1,   225,   242,
    862       -1,   239,   226,    -1,   241,    -1,   229,   241,    -1,   240,
    863      231,    -1,   240,   231,   225,    -1,    73,    -1,   225,    73,
    864       -1,   241,   226,    -1,   243,    -1,   253,    -1,   244,   113,
    865      245,   114,    -1,   244,   270,    -1,   244,   270,   113,   245,
    866      114,    -1,   244,   108,   288,   109,   113,   245,   114,    -1,
    867      244,   281,    -1,    30,   308,    -1,    31,   308,    -1,   246,
    868       -1,   245,   246,    -1,   247,   131,    -1,    39,   247,   131,
    869       -1,   248,   131,    -1,    39,   248,   131,    -1,   362,    -1,
    870      362,   270,    -1,   247,   115,   270,    -1,   247,   115,    -1,
    871      223,   249,    -1,   248,   115,   308,   249,    -1,    -1,   251,
    872       -1,   314,   250,    -1,   327,   250,    -1,   353,    -1,    -1,
    873      251,    -1,   116,   161,    -1,    29,   308,    -1,   252,   113,
    874      254,   368,   114,    -1,   252,   270,   113,   254,   368,   114,
    875       -1,   252,   270,    -1,   270,   255,    -1,   254,   115,   270,
    876      255,    -1,    -1,   130,   161,    -1,    -1,   257,    -1,   259,
    877       -1,   258,    -1,   258,   134,   115,   133,   259,    -1,   259,
    878      134,   115,   133,    95,    -1,   258,   134,   115,   133,    95,
    879       -1,   263,    -1,   259,   134,   115,   133,   263,    -1,   258,
    880      134,   115,   133,   263,    -1,   258,   134,   115,   133,   259,
    881      134,   115,   133,   263,    -1,   264,    -1,   259,   134,   115,
    882      133,   264,    -1,    -1,   261,    -1,   262,    -1,   262,   134,
    883      115,   133,    95,    -1,   266,    -1,   265,    -1,   262,   134,
    884      115,   133,   266,    -1,   262,   134,   115,   133,   265,    -1,
    885      265,    -1,   358,   268,   369,    -1,   366,   268,   369,    -1,
    886      225,   366,   268,   369,    -1,   215,    -1,   266,    -1,   358,
    887       -1,   366,    -1,   225,   366,    -1,   367,    -1,   222,   332,
    888      369,    -1,   222,   336,   369,    -1,   222,    -1,   222,   347,
    889       -1,   138,    -1,   267,   115,   138,    -1,   136,    -1,    73,
    890       -1,    74,    -1,   137,    -1,    73,    -1,    74,    -1,   138,
    891       -1,    73,    -1,    74,    -1,   362,    -1,   223,    -1,   223,
    892      353,    -1,   362,    -1,   367,    -1,   223,    -1,   223,   341,
    893       -1,    -1,   130,   274,    -1,   106,   274,    -1,   162,    -1,
    894      113,   275,   368,   114,    -1,    -1,   274,    -1,   276,   274,
    895       -1,   275,   115,   274,    -1,   275,   115,   276,   274,    -1,
    896      277,   116,    -1,   270,   116,    -1,   278,    -1,   277,   278,
    897       -1,    79,    -1,   112,   270,    -1,   110,   133,   162,   134,
    898      111,    -1,   110,   133,   306,   134,   111,    -1,   110,   133,
    899      161,    95,   161,   134,   111,    -1,   112,   110,   133,   145,
    900      134,   111,    -1,   280,    -1,   229,   280,    -1,   279,   231,
    901       -1,   279,   231,   225,    -1,   281,    -1,   225,   281,    -1,
    902      280,   226,    -1,    74,   108,   288,   109,    -1,   283,   369,
    903       -1,   282,   115,   283,   369,    -1,    -1,   285,   270,   284,
    904      286,    -1,   223,   332,    -1,    32,    -1,    34,    -1,    33,
    905       -1,    -1,   286,   287,    -1,   128,   270,   108,   288,   109,
    906       -1,   128,   113,   133,   294,   114,    -1,   128,   108,   133,
    907      282,   134,   109,   113,   133,   294,   114,   108,   288,   109,
    908       -1,   272,    -1,   162,    -1,   288,   115,   272,    -1,   288,
    909      115,   162,    -1,    32,   290,    -1,   230,    32,   290,    -1,
    910      289,   115,   290,    -1,   291,   286,    -1,   291,   286,   130,
    911      272,    -1,   270,    -1,   269,   108,   133,   282,   134,   109,
    912       -1,    35,   270,   108,   133,   282,   134,   109,   113,   114,
    913       -1,    -1,    35,   270,   108,   133,   282,   134,   109,   113,
    914      293,   294,   114,    -1,   295,    -1,   294,   133,   295,    -1,
    915      296,   134,   131,    -1,   297,   134,   131,    -1,   213,    -1,
    916      215,    -1,   296,   134,   115,   133,   268,    -1,   223,   305,
    917       -1,   297,   134,   115,   133,   305,    -1,    -1,   299,    -1,
    918      301,    -1,   299,   133,   301,    -1,    -1,   299,    -1,   210,
    919       -1,   303,    -1,   196,    -1,    -1,     5,    81,   302,   113,
    920      300,   114,    -1,    39,   301,    -1,   304,    -1,   319,   171,
    921       -1,   323,   133,   205,   171,    -1,   214,   171,    -1,   222,
    922      319,   171,    -1,   225,   319,   171,    -1,   229,   319,   171,
    923       -1,   229,   225,   319,   171,    -1,   222,   323,   133,   205,
    924      171,    -1,   225,   323,   133,   205,   171,    -1,   229,   323,
    925      133,   205,   171,    -1,   229,   225,   323,   133,   205,   171,
    926       -1,   314,    -1,   319,    -1,   327,    -1,   161,   122,   161,
    927       -1,    -1,    63,   108,   140,   109,   308,    -1,    -1,   309,
    928       -1,   310,    -1,   309,   310,    -1,    38,   108,   108,   311,
    929      109,   109,    -1,   312,    -1,   311,   115,   312,    -1,    -1,
    930      313,    -1,   313,   108,   168,   109,    -1,   268,    -1,   232,
    931       -1,   233,    -1,   226,    -1,   315,   308,    -1,   316,    -1,
    932      317,   308,    -1,   318,   308,    -1,   136,    -1,   108,   315,
    933      109,    -1,   118,   314,    -1,   118,   225,   314,    -1,   108,
    934      316,   109,    -1,   315,   345,    -1,   108,   316,   109,   345,
    935       -1,   108,   317,   109,   346,    -1,   108,   317,   109,    -1,
    936      108,   316,   109,   108,   133,   260,   134,   109,    -1,   108,
    937      318,   109,    -1,   320,   308,    -1,   321,    -1,   322,   308,
    938       -1,   315,   108,   133,   260,   134,   109,    -1,   108,   321,
    939      109,   108,   133,   260,   134,   109,    -1,   108,   320,   109,
    940       -1,   118,   319,    -1,   118,   225,   319,    -1,   108,   321,
    941      109,    -1,   108,   321,   109,   345,    -1,   108,   322,   109,
    942      346,    -1,   108,   322,   109,    -1,   324,    -1,   325,    -1,
    943      326,    -1,   315,   108,   267,   109,    -1,   108,   325,   109,
    944      108,   267,   109,    -1,   108,   324,   109,    -1,   118,   323,
    945       -1,   118,   225,   323,    -1,   108,   325,   109,    -1,   108,
    946      325,   109,   345,    -1,   108,   326,   109,   346,    -1,   108,
    947      326,   109,    -1,   328,   308,    -1,   329,    -1,   330,   308,
    948       -1,   331,   308,    -1,   337,    -1,   108,   328,   109,    -1,
    949      118,   327,    -1,   118,   225,   327,    -1,   108,   329,   109,
    950       -1,   328,   345,    -1,   108,   329,   109,   345,    -1,   108,
    951      330,   109,   346,    -1,   108,   330,   109,    -1,   328,   108,
    952      133,   260,   134,   109,    -1,   108,   329,   109,   108,   133,
    953      260,   134,   109,    -1,   108,   331,   109,    -1,   315,   308,
    954       -1,   333,    -1,   334,   308,    -1,   335,   308,    -1,   118,
    955      332,    -1,   118,   225,   332,    -1,   108,   333,   109,    -1,
    956      315,   351,    -1,   108,   333,   109,   345,    -1,   108,   334,
    957      109,   346,    -1,   108,   334,   109,    -1,   315,   108,   133,
    958      260,   134,   109,    -1,   108,   333,   109,   108,   133,   260,
    959      134,   109,    -1,   108,   335,   109,    -1,   337,   308,    -1,
    960      338,    -1,   339,   308,    -1,   340,   308,    -1,    73,    -1,
    961       74,    -1,   118,   336,    -1,   118,   225,   336,    -1,   108,
    962      338,   109,    -1,   337,   351,    -1,   108,   338,   109,   351,
    963       -1,   337,   108,   133,   260,   134,   109,    -1,   108,   338,
    964      109,   108,   133,   260,   134,   109,    -1,   342,    -1,   343,
    965      308,    -1,   344,   308,    -1,   118,    -1,   118,   225,    -1,
    966      118,   341,    -1,   118,   225,   341,    -1,   108,   342,   109,
    967       -1,   345,    -1,   108,   342,   109,   345,    -1,   108,   343,
    968      109,   346,    -1,   108,   343,   109,    -1,   108,   133,   260,
    969      134,   109,    -1,   108,   342,   109,   108,   133,   260,   134,
    970      109,    -1,   108,   344,   109,    -1,   110,   111,    -1,   110,
    971      111,   346,    -1,   346,    -1,   110,   133,   162,   134,   111,
    972       -1,   110,   133,   118,   134,   111,    -1,   346,   110,   133,
    973      162,   134,   111,    -1,   346,   110,   133,   118,   134,   111,
    974       -1,   348,    -1,   349,   308,    -1,   350,   308,    -1,   118,
    975       -1,   118,   225,    -1,   118,   347,    -1,   118,   225,   347,
    976       -1,   108,   348,   109,    -1,   351,    -1,   108,   348,   109,
    977      351,    -1,   108,   349,   109,   346,    -1,   108,   349,   109,
    978       -1,   108,   133,   260,   134,   109,    -1,   108,   348,   109,
    979      108,   133,   260,   134,   109,    -1,   108,   350,   109,    -1,
    980      352,    -1,   352,   346,    -1,   346,    -1,   110,   111,    -1,
    981      110,   133,   225,   118,   134,   111,    -1,   110,   133,   225,
    982      134,   111,    -1,   110,   133,   225,   162,   134,   111,    -1,
    983      110,   133,     7,   224,   162,   134,   111,    -1,   110,   133,
    984      225,     7,   162,   134,   111,    -1,   354,    -1,   355,   308,
    985       -1,   356,   308,    -1,   118,    -1,   118,   225,    -1,   118,
    986      353,    -1,   118,   225,   353,    -1,   108,   354,   109,    -1,
    987      345,    -1,   108,   354,   109,   345,    -1,   108,   355,   109,
    988      346,    -1,   108,   355,   109,    -1,   108,   354,   109,   108,
    989      133,   260,   134,   109,    -1,   108,   356,   109,    -1,   358,
    990       -1,   366,    -1,   225,   366,    -1,   359,    -1,   360,    -1,
    991      118,   223,    -1,   225,   118,   223,    -1,   118,   367,    -1,
    992      225,   118,   367,    -1,   118,   357,    -1,   225,   118,   357,
    993       -1,   110,   111,   223,    -1,   361,   223,    -1,   110,   111,
    994      346,   223,    -1,   361,   346,   223,    -1,   346,   223,    -1,
    995      110,   111,   359,    -1,   361,   359,    -1,   110,   111,   346,
    996      359,    -1,   361,   346,   359,    -1,   346,   359,    -1,   110,
    997      133,   225,   118,   134,   111,    -1,   110,   133,   225,   162,
    998      134,   111,    -1,   110,   133,   229,   162,   134,   111,    -1,
    999      110,   133,   229,   225,   162,   134,   111,    -1,   366,    -1,
    1000      225,   366,    -1,   363,    -1,   364,    -1,   365,    -1,   118,
    1001      223,    -1,   225,   118,   223,    -1,   118,   367,    -1,   225,
    1002      118,   367,    -1,   118,   362,    -1,   225,   118,   362,    -1,
    1003      110,   111,   223,    -1,   110,   111,   346,   223,    -1,   346,
    1004      223,    -1,   110,   111,   364,    -1,   110,   111,   346,   364,
    1005       -1,   346,   364,    -1,   110,   133,   259,   134,   111,    -1,
    1006      110,   111,   108,   256,   109,    -1,   366,   108,   133,   256,
    1007      134,   109,    -1,   216,   108,   133,   256,   134,   109,    -1,
    1008       -1,   115,    -1,    -1,   130,   162,    -1
     737      -1,    71,    -1,   139,    -1,    82,    -1,    83,    -1,    81,
     738      -1,   140,    81,    -1,    71,    -1,   139,    -1,   108,   167,
     739     109,    -1,   108,   171,   109,    -1,   141,    -1,   142,   110,
     740     133,   162,   134,   111,    -1,   142,   108,   143,   109,    -1,
     741     142,   112,   138,    -1,   142,   112,   110,   133,   145,   134,
     742     111,    -1,   142,    84,   138,    -1,   142,    84,   110,   133,
     743     145,   134,   111,    -1,   142,    85,    -1,   142,    86,    -1,
     744     108,   271,   109,   113,   275,   368,   114,    -1,   142,   113,
     745     143,   114,    -1,   144,    -1,   143,   115,   144,    -1,    -1,
     746     162,    -1,   138,   116,   162,    -1,   110,   133,   162,   134,
     747     111,   116,   162,    -1,   110,   133,   162,   115,   165,   134,
     748     111,   116,   162,    -1,   146,    -1,   145,   115,   146,    -1,
     749     138,    -1,   138,   112,   146,    -1,   138,   112,   110,   133,
     750     145,   134,   111,    -1,   138,    84,   146,    -1,   138,    84,
     751     110,   133,   145,   134,   111,    -1,   142,    -1,   135,    -1,
     752     140,    -1,    85,   147,    -1,    86,   147,    -1,    39,   149,
     753      -1,   148,   149,    -1,   117,   149,    -1,   118,   149,    -1,
     754      36,   147,    -1,    36,   108,   271,   109,    -1,    37,   108,
     755     271,   115,   138,   109,    -1,    75,    -1,    75,   108,   272,
     756     109,    -1,    75,   108,   144,   109,    -1,    65,   147,    -1,
     757      65,   108,   271,   109,    -1,    93,   138,    -1,   119,    -1,
     758     120,    -1,   121,    -1,   122,    -1,   147,    -1,   108,   271,
     759     109,   149,    -1,   108,   271,   109,   164,    -1,   149,    -1,
     760     150,   118,   149,    -1,   150,   123,   149,    -1,   150,   124,
     761     149,    -1,   150,    -1,   151,   120,   150,    -1,   151,   121,
     762     150,    -1,   151,    -1,   152,    87,   151,    -1,   152,    88,
     763     151,    -1,   152,    -1,   153,   125,   152,    -1,   153,   126,
     764     152,    -1,   153,    89,   152,    -1,   153,    90,   152,    -1,
     765     153,    -1,   154,    91,   153,    -1,   154,    92,   153,    -1,
     766     154,    -1,   155,   119,   154,    -1,   155,    -1,   156,   127,
     767     155,    -1,   156,    -1,   157,   128,   156,    -1,   157,    -1,
     768     158,    93,   157,    -1,   158,    -1,   159,    94,   158,    -1,
     769     159,    -1,   159,   129,   167,   116,   160,    -1,   159,   129,
     770     116,   160,    -1,   159,   129,   167,   116,   164,    -1,   160,
     771      -1,   160,    -1,   147,   130,   162,    -1,   147,   166,   162,
     772      -1,   164,   369,    -1,    -1,   162,    -1,   110,   111,    -1,
     773     110,   133,   162,   134,   111,    -1,   110,   133,   115,   165,
     774     134,   111,    -1,   110,   133,   162,   115,   165,   134,   111,
     775      -1,   163,    -1,   165,   115,   163,    -1,    96,    -1,    97,
     776      -1,    98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
     777      -1,   103,    -1,   104,    -1,   105,    -1,   162,    -1,   167,
     778     115,   162,    -1,    -1,   167,    -1,   170,    -1,   171,    -1,
     779     175,    -1,   176,    -1,   188,    -1,   190,    -1,   191,    -1,
     780     196,    -1,   127,   142,   113,   143,   114,   131,    -1,   138,
     781     116,   308,   169,    -1,   113,   114,    -1,   113,   133,   133,
     782     207,   172,   134,   114,    -1,   173,    -1,   172,   133,   173,
     783      -1,   210,    -1,    39,   210,    -1,   304,    -1,   169,   134,
     784      -1,   169,    -1,   174,   169,    -1,   168,   131,    -1,    40,
     785     108,   167,   109,   169,    -1,    40,   108,   167,   109,   169,
     786      41,   169,    -1,    42,   108,   167,   109,   181,    -1,    42,
     787     108,   167,   109,   113,   133,   203,   182,   114,    -1,    52,
     788     108,   167,   109,   181,    -1,    52,   108,   167,   109,   113,
     789     133,   203,   184,   114,    -1,   161,    -1,   161,    95,   161,
     790      -1,   306,    -1,   177,    -1,   178,   115,   177,    -1,    43,
     791     178,   116,    -1,    44,   116,    -1,   179,    -1,   180,   179,
     792      -1,   180,   169,    -1,    -1,   183,    -1,   180,   174,    -1,
     793     183,   180,   174,    -1,    -1,   185,    -1,   180,   187,    -1,
     794     180,   174,   186,    -1,   185,   180,   187,    -1,   185,   180,
     795     174,   186,    -1,    -1,   187,    -1,    55,    -1,    55,   131,
     796      -1,    46,   108,   167,   109,   169,    -1,    45,   169,    46,
     797     108,   167,   109,   131,    -1,    47,   108,   133,   189,   109,
     798     169,    -1,   168,   134,   131,   168,   131,   168,    -1,   210,
     799     168,   131,   168,    -1,    50,   138,   131,    -1,    50,   118,
     800     167,   131,    -1,    49,   131,    -1,    49,   138,   131,    -1,
     801      48,   131,    -1,    48,   138,   131,    -1,    51,   168,   131,
     802      -1,    60,   163,   131,    -1,    61,   163,   131,    -1,    61,
     803     163,    62,   162,   131,    -1,    56,   171,   192,    -1,    56,
     804     171,   194,    -1,    56,   171,   192,   194,    -1,   193,    -1,
     805      57,   108,    95,   109,   171,    -1,   193,    57,   108,    95,
     806     109,   171,    -1,    58,   108,    95,   109,   171,    -1,   193,
     807      58,   108,    95,   109,   171,    -1,    57,   108,   133,   133,
     808     195,   134,   109,   171,   134,    -1,   193,    57,   108,   133,
     809     133,   195,   134,   109,   171,   134,    -1,    58,   108,   133,
     810     133,   195,   134,   109,   171,   134,    -1,   193,    58,   108,
     811     133,   133,   195,   134,   109,   171,   134,    -1,    59,   171,
     812      -1,   223,    -1,   223,   305,    -1,   223,   353,    -1,   362,
     813     138,    -1,   362,    -1,    63,   197,   108,   140,   109,   131,
     814      -1,    63,   197,   108,   140,   116,   198,   109,   131,    -1,
     815      63,   197,   108,   140,   116,   198,   116,   198,   109,   131,
     816      -1,    63,   197,   108,   140,   116,   198,   116,   198,   116,
     817     201,   109,   131,    -1,    63,   197,    50,   108,   140,   116,
     818     116,   198,   116,   201,   116,   202,   109,   131,    -1,    -1,
     819      11,    -1,    -1,   199,    -1,   200,    -1,   199,   115,   200,
     820      -1,   140,   108,   161,   109,    -1,   110,   161,   111,   140,
     821     108,   161,   109,    -1,    -1,   140,    -1,   201,   115,   140,
     822      -1,   138,    -1,   202,   115,   138,    -1,   134,    -1,   204,
     823      -1,   210,    -1,   204,   133,   210,    -1,   134,    -1,   206,
     824      -1,   220,    -1,   206,   133,   220,    -1,    -1,   208,    -1,
     825      28,   209,   131,    -1,   208,    28,   209,   131,    -1,   270,
     826      -1,   209,   115,   270,    -1,   211,    -1,   220,    -1,   212,
     827     134,   131,    -1,   217,   134,   131,    -1,   214,   134,   131,
     828      -1,   289,   134,   131,    -1,   292,   134,   131,    -1,   213,
     829     273,    -1,   229,   213,   273,    -1,   212,   134,   115,   133,
     830     268,   273,    -1,   363,   268,   307,    -1,   366,   268,   307,
     831      -1,   225,   366,   268,   307,    -1,   215,    -1,   225,   215,
     832      -1,   229,   215,    -1,   229,   225,   215,    -1,   214,   134,
     833     115,   133,   268,    -1,   110,   111,   268,   108,   133,   256,
     834     134,   109,    -1,   366,   268,   108,   133,   256,   134,   109,
     835      -1,   216,   268,   108,   133,   256,   134,   109,    -1,   110,
     836     133,   258,   134,   111,    -1,   110,   133,   258,   134,   115,
     837     133,   259,   134,   111,    -1,     3,   213,    -1,     3,   215,
     838      -1,   217,   134,   115,   133,   138,    -1,     3,   223,   305,
     839      -1,   218,   134,   115,   133,   305,    -1,   225,     3,   223,
     840     305,    -1,   223,     3,   305,    -1,   223,     3,   225,   305,
     841      -1,     3,   138,   130,   162,    -1,   219,   134,   115,   133,
     842     138,   130,   162,    -1,   221,   134,   131,    -1,   218,   134,
     843     131,    -1,   219,   134,   131,    -1,   238,   134,   131,    -1,
     844     222,   305,   307,   273,    -1,   221,   115,   308,   305,   307,
     845     273,    -1,   234,    -1,   238,    -1,   240,    -1,   279,    -1,
     846     235,    -1,   239,    -1,   241,    -1,   280,    -1,    -1,   225,
     847      -1,   226,    -1,   225,   226,    -1,   227,    -1,   310,    -1,
     848      10,    -1,    12,    -1,    11,    -1,    14,    -1,    66,    -1,
     849      -1,    13,   108,   228,   282,   109,    -1,   230,    -1,   225,
     850     230,    -1,   229,   225,   230,    -1,   231,    -1,   230,   231,
     851      -1,   232,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
     852      -1,     8,    -1,     9,    -1,    68,    -1,    70,    -1,    16,
     853      -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
     854      -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
     855      -1,    26,    -1,   235,    -1,   229,   235,    -1,   234,   231,
     856      -1,   234,   231,   225,    -1,   234,   231,   235,    -1,   236,
     857      -1,   224,   237,   224,    -1,   233,    -1,   225,   233,    -1,
     858     236,   226,    -1,   236,   233,    -1,    27,   108,   272,   109,
     859      -1,    27,   108,   167,   109,    -1,    77,   108,   272,   109,
     860      -1,    77,   108,   167,   109,    -1,   239,    -1,   229,   239,
     861      -1,   238,   231,    -1,   238,   231,   225,    -1,   242,    -1,
     862     225,   242,    -1,   239,   226,    -1,   241,    -1,   229,   241,
     863      -1,   240,   231,    -1,   240,   231,   225,    -1,    73,    -1,
     864     225,    73,    -1,   241,   226,    -1,   243,    -1,   253,    -1,
     865     244,   113,   245,   114,    -1,   244,   270,    -1,   244,   270,
     866     113,   245,   114,    -1,   244,   108,   288,   109,   113,   245,
     867     114,    -1,   244,   281,    -1,    30,   308,    -1,    31,   308,
     868      -1,   246,    -1,   245,   246,    -1,   247,   131,    -1,    39,
     869     247,   131,    -1,   248,   131,    -1,    39,   248,   131,    -1,
     870     362,    -1,   362,   270,    -1,   247,   115,   270,    -1,   247,
     871     115,    -1,   223,   249,    -1,   248,   115,   308,   249,    -1,
     872      -1,   251,    -1,   314,   250,    -1,   327,   250,    -1,   353,
     873      -1,    -1,   251,    -1,   116,   161,    -1,    29,   308,    -1,
     874     252,   113,   254,   368,   114,    -1,   252,   270,   113,   254,
     875     368,   114,    -1,   252,   270,    -1,   270,   255,    -1,   254,
     876     115,   270,   255,    -1,    -1,   130,   161,    -1,    -1,   257,
     877      -1,   259,    -1,   258,    -1,   258,   134,   115,   133,   259,
     878      -1,   259,   134,   115,   133,    95,    -1,   258,   134,   115,
     879     133,    95,    -1,   263,    -1,   259,   134,   115,   133,   263,
     880      -1,   258,   134,   115,   133,   263,    -1,   258,   134,   115,
     881     133,   259,   134,   115,   133,   263,    -1,   264,    -1,   259,
     882     134,   115,   133,   264,    -1,    -1,   261,    -1,   262,    -1,
     883     262,   134,   115,   133,    95,    -1,   266,    -1,   265,    -1,
     884     262,   134,   115,   133,   266,    -1,   262,   134,   115,   133,
     885     265,    -1,   265,    -1,   358,   268,   369,    -1,   366,   268,
     886     369,    -1,   225,   366,   268,   369,    -1,   215,    -1,   266,
     887      -1,   358,    -1,   366,    -1,   225,   366,    -1,   367,    -1,
     888     222,   332,   369,    -1,   222,   336,   369,    -1,   222,    -1,
     889     222,   347,    -1,   138,    -1,   267,   115,   138,    -1,   136,
     890      -1,    73,    -1,    74,    -1,   137,    -1,    73,    -1,    74,
     891      -1,   138,    -1,    73,    -1,    74,    -1,   362,    -1,   223,
     892      -1,   223,   353,    -1,   362,    -1,   367,    -1,   223,    -1,
     893     223,   341,    -1,    -1,   130,   274,    -1,   106,   274,    -1,
     894     162,    -1,   113,   275,   368,   114,    -1,    -1,   274,    -1,
     895     276,   274,    -1,   275,   115,   274,    -1,   275,   115,   276,
     896     274,    -1,   277,   116,    -1,   270,   116,    -1,   278,    -1,
     897     277,   278,    -1,    79,    -1,   112,   270,    -1,   110,   133,
     898     162,   134,   111,    -1,   110,   133,   306,   134,   111,    -1,
     899     110,   133,   161,    95,   161,   134,   111,    -1,   112,   110,
     900     133,   145,   134,   111,    -1,   280,    -1,   229,   280,    -1,
     901     279,   231,    -1,   279,   231,   225,    -1,   281,    -1,   225,
     902     281,    -1,   280,   226,    -1,    74,   108,   288,   109,    -1,
     903     283,   369,    -1,   282,   115,   283,   369,    -1,    -1,   285,
     904     270,   284,   286,    -1,   223,   332,    -1,    32,    -1,    34,
     905      -1,    33,    -1,    -1,   286,   287,    -1,   128,   270,   108,
     906     288,   109,    -1,   128,   113,   133,   294,   114,    -1,   128,
     907     108,   133,   282,   134,   109,   113,   133,   294,   114,   108,
     908     288,   109,    -1,   272,    -1,   162,    -1,   288,   115,   272,
     909      -1,   288,   115,   162,    -1,    32,   290,    -1,   230,    32,
     910     290,    -1,   289,   115,   290,    -1,   291,   286,    -1,   291,
     911     286,   130,   272,    -1,   270,    -1,   269,   108,   133,   282,
     912     134,   109,    -1,    35,   270,   108,   133,   282,   134,   109,
     913     113,   114,    -1,    -1,    35,   270,   108,   133,   282,   134,
     914     109,   113,   293,   294,   114,    -1,   295,    -1,   294,   133,
     915     295,    -1,   296,   134,   131,    -1,   297,   134,   131,    -1,
     916     213,    -1,   215,    -1,   296,   134,   115,   133,   268,    -1,
     917     223,   305,    -1,   297,   134,   115,   133,   305,    -1,    -1,
     918     299,    -1,   301,    -1,   299,   133,   301,    -1,    -1,   299,
     919      -1,   210,    -1,   303,    -1,   196,    -1,    -1,     5,    81,
     920     302,   113,   300,   114,    -1,    39,   301,    -1,   304,    -1,
     921     319,   171,    -1,   323,   133,   205,   171,    -1,   214,   171,
     922      -1,   222,   319,   171,    -1,   225,   319,   171,    -1,   229,
     923     319,   171,    -1,   229,   225,   319,   171,    -1,   222,   323,
     924     133,   205,   171,    -1,   225,   323,   133,   205,   171,    -1,
     925     229,   323,   133,   205,   171,    -1,   229,   225,   323,   133,
     926     205,   171,    -1,   314,    -1,   319,    -1,   327,    -1,   161,
     927     122,   161,    -1,    -1,    63,   108,   140,   109,   308,    -1,
     928      -1,   309,    -1,   310,    -1,   309,   310,    -1,    38,   108,
     929     108,   311,   109,   109,    -1,   312,    -1,   311,   115,   312,
     930      -1,    -1,   313,    -1,   313,   108,   168,   109,    -1,   268,
     931      -1,   232,    -1,   233,    -1,   226,    -1,   315,   308,    -1,
     932     316,    -1,   317,   308,    -1,   318,   308,    -1,   136,    -1,
     933     108,   315,   109,    -1,   118,   314,    -1,   118,   225,   314,
     934      -1,   108,   316,   109,    -1,   315,   345,    -1,   108,   316,
     935     109,   345,    -1,   108,   317,   109,   346,    -1,   108,   317,
     936     109,    -1,   108,   316,   109,   108,   133,   260,   134,   109,
     937      -1,   108,   318,   109,    -1,   320,   308,    -1,   321,    -1,
     938     322,   308,    -1,   315,   108,   133,   260,   134,   109,    -1,
     939     108,   321,   109,   108,   133,   260,   134,   109,    -1,   108,
     940     320,   109,    -1,   118,   319,    -1,   118,   225,   319,    -1,
     941     108,   321,   109,    -1,   108,   321,   109,   345,    -1,   108,
     942     322,   109,   346,    -1,   108,   322,   109,    -1,   324,    -1,
     943     325,    -1,   326,    -1,   315,   108,   267,   109,    -1,   108,
     944     325,   109,   108,   267,   109,    -1,   108,   324,   109,    -1,
     945     118,   323,    -1,   118,   225,   323,    -1,   108,   325,   109,
     946      -1,   108,   325,   109,   345,    -1,   108,   326,   109,   346,
     947      -1,   108,   326,   109,    -1,   328,   308,    -1,   329,    -1,
     948     330,   308,    -1,   331,   308,    -1,   337,    -1,   108,   328,
     949     109,    -1,   118,   327,    -1,   118,   225,   327,    -1,   108,
     950     329,   109,    -1,   328,   345,    -1,   108,   329,   109,   345,
     951      -1,   108,   330,   109,   346,    -1,   108,   330,   109,    -1,
     952     328,   108,   133,   260,   134,   109,    -1,   108,   329,   109,
     953     108,   133,   260,   134,   109,    -1,   108,   331,   109,    -1,
     954     315,   308,    -1,   333,    -1,   334,   308,    -1,   335,   308,
     955      -1,   118,   332,    -1,   118,   225,   332,    -1,   108,   333,
     956     109,    -1,   315,   351,    -1,   108,   333,   109,   345,    -1,
     957     108,   334,   109,   346,    -1,   108,   334,   109,    -1,   315,
     958     108,   133,   260,   134,   109,    -1,   108,   333,   109,   108,
     959     133,   260,   134,   109,    -1,   108,   335,   109,    -1,   337,
     960     308,    -1,   338,    -1,   339,   308,    -1,   340,   308,    -1,
     961      73,    -1,    74,    -1,   118,   336,    -1,   118,   225,   336,
     962      -1,   108,   338,   109,    -1,   337,   351,    -1,   108,   338,
     963     109,   351,    -1,   337,   108,   133,   260,   134,   109,    -1,
     964     108,   338,   109,   108,   133,   260,   134,   109,    -1,   342,
     965      -1,   343,   308,    -1,   344,   308,    -1,   118,    -1,   118,
     966     225,    -1,   118,   341,    -1,   118,   225,   341,    -1,   108,
     967     342,   109,    -1,   345,    -1,   108,   342,   109,   345,    -1,
     968     108,   343,   109,   346,    -1,   108,   343,   109,    -1,   108,
     969     133,   260,   134,   109,    -1,   108,   342,   109,   108,   133,
     970     260,   134,   109,    -1,   108,   344,   109,    -1,   110,   111,
     971      -1,   110,   111,   346,    -1,   346,    -1,   110,   133,   162,
     972     134,   111,    -1,   110,   133,   118,   134,   111,    -1,   346,
     973     110,   133,   162,   134,   111,    -1,   346,   110,   133,   118,
     974     134,   111,    -1,   348,    -1,   349,   308,    -1,   350,   308,
     975      -1,   118,    -1,   118,   225,    -1,   118,   347,    -1,   118,
     976     225,   347,    -1,   108,   348,   109,    -1,   351,    -1,   108,
     977     348,   109,   351,    -1,   108,   349,   109,   346,    -1,   108,
     978     349,   109,    -1,   108,   133,   260,   134,   109,    -1,   108,
     979     348,   109,   108,   133,   260,   134,   109,    -1,   108,   350,
     980     109,    -1,   352,    -1,   352,   346,    -1,   346,    -1,   110,
     981     111,    -1,   110,   133,   225,   118,   134,   111,    -1,   110,
     982     133,   225,   134,   111,    -1,   110,   133,   225,   162,   134,
     983     111,    -1,   110,   133,     7,   224,   162,   134,   111,    -1,
     984     110,   133,   225,     7,   162,   134,   111,    -1,   354,    -1,
     985     355,   308,    -1,   356,   308,    -1,   118,    -1,   118,   225,
     986      -1,   118,   353,    -1,   118,   225,   353,    -1,   108,   354,
     987     109,    -1,   345,    -1,   108,   354,   109,   345,    -1,   108,
     988     355,   109,   346,    -1,   108,   355,   109,    -1,   108,   354,
     989     109,   108,   133,   260,   134,   109,    -1,   108,   356,   109,
     990      -1,   358,    -1,   366,    -1,   225,   366,    -1,   359,    -1,
     991     360,    -1,   118,   223,    -1,   225,   118,   223,    -1,   118,
     992     367,    -1,   225,   118,   367,    -1,   118,   357,    -1,   225,
     993     118,   357,    -1,   110,   111,   223,    -1,   361,   223,    -1,
     994     110,   111,   346,   223,    -1,   361,   346,   223,    -1,   346,
     995     223,    -1,   110,   111,   359,    -1,   361,   359,    -1,   110,
     996     111,   346,   359,    -1,   361,   346,   359,    -1,   346,   359,
     997      -1,   110,   133,   225,   118,   134,   111,    -1,   110,   133,
     998     225,   162,   134,   111,    -1,   110,   133,   229,   162,   134,
     999     111,    -1,   110,   133,   229,   225,   162,   134,   111,    -1,
     1000     366,    -1,   225,   366,    -1,   363,    -1,   364,    -1,   365,
     1001      -1,   118,   223,    -1,   225,   118,   223,    -1,   118,   367,
     1002      -1,   225,   118,   367,    -1,   118,   362,    -1,   225,   118,
     1003     362,    -1,   110,   111,   223,    -1,   110,   111,   346,   223,
     1004      -1,   346,   223,    -1,   110,   111,   364,    -1,   110,   111,
     1005     346,   364,    -1,   346,   364,    -1,   110,   133,   259,   134,
     1006     111,    -1,   110,   111,   108,   256,   109,    -1,   366,   108,
     1007     133,   256,   134,   109,    -1,   216,   108,   133,   256,   134,
     1008     109,    -1,    -1,   115,    -1,    -1,   130,   162,    -1
    10091009};
    10101010
     
    10131013{
    10141014       0,   290,   290,   296,   305,   306,   307,   311,   312,   313,
    1015      317,   318,   323,   327,   328,   332,   333,   339,   341,   343,
    1016      345,   350,   351,   357,   359,   361,   362,   364,   365,   367,
    1017      369,   371,   379,   380,   386,   387,   388,   393,   395,   400,
    1018      401,   405,   407,   409,   411,   413,   418,   421,   423,   425,
    1019      427,   429,   431,   433,   435,   441,   443,   445,   447,   449,
    1020      451,   453,   455,   457,   462,   463,   464,   465,   469,   470,
    1021      472,   477,   478,   480,   482,   487,   488,   490,   495,   496,
    1022      498,   503,   504,   506,   508,   510,   515,   516,   518,   523,
    1023      524,   529,   530,   535,   536,   541,   542,   547,   548,   553,
    1024      554,   556,   558,   563,   568,   569,   571,   573,   579,   580,
    1025      586,   588,   590,   592,   597,   598,   603,   604,   605,   606,
    1026      607,   608,   609,   610,   611,   612,   616,   617,   623,   624,
    1027      630,   631,   632,   633,   634,   635,   636,   637,   638,   647,
    1028      654,   656,   666,   667,   672,   674,   676,   678,   682,   683,
    1029      688,   693,   696,   698,   700,   705,   707,   715,   716,   718,
    1030      722,   723,   728,   729,   734,   735,   739,   744,   745,   749,
    1031      751,   757,   758,   762,   764,   766,   768,   774,   775,   779,
    1032      780,   784,   786,   788,   793,   795,   800,   802,   806,   809,
    1033      813,   816,   820,   822,   826,   828,   835,   837,   839,   848,
    1034      850,   852,   854,   856,   861,   863,   865,   867,   872,   885,
    1035      886,   891,   893,   898,   902,   904,   906,   908,   910,   916,
    1036      917,   923,   924,   928,   929,   934,   936,   942,   943,   945,
    1037      950,   952,   959,   961,   965,   966,   971,   973,   977,   978,
    1038      982,   984,   988,   989,   993,   994,   998,   999,  1014,  1015,
    1039     1016,  1017,  1018,  1022,  1027,  1034,  1044,  1049,  1054,  1062,
    1040     1067,  1072,  1077,  1082,  1090,  1112,  1117,  1124,  1126,  1133,
    1041     1138,  1143,  1154,  1159,  1164,  1169,  1174,  1183,  1188,  1196,
    1042     1197,  1198,  1199,  1205,  1210,  1218,  1219,  1220,  1221,  1225,
    1043     1226,  1227,  1228,  1233,  1234,  1243,  1244,  1249,  1250,  1255,
    1044     1257,  1259,  1261,  1263,  1266,  1265,  1277,  1278,  1280,  1290,
    1045     1291,  1296,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,
    1046     1319,  1321,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,
    1047     1339,  1341,  1347,  1348,  1350,  1352,  1354,  1359,  1360,  1366,
    1048     1367,  1369,  1371,  1376,  1378,  1380,  1382,  1387,  1388,  1390,
    1049     1392,  1397,  1398,  1400,  1405,  1406,  1408,  1410,  1415,  1417,
    1050     1419,  1424,  1425,  1429,  1431,  1433,  1435,  1437,  1442,  1444,
    1051     1449,  1451,  1456,  1457,  1459,  1460,  1465,  1466,  1468,  1470,
    1052     1475,  1477,  1483,  1484,  1486,  1489,  1492,  1497,  1498,  1503,
    1053     1508,  1512,  1514,  1516,  1521,  1523,  1529,  1530,  1538,  1539,
    1054     1543,  1544,  1545,  1547,  1549,  1556,  1557,  1559,  1561,  1566,
    1055     1567,  1573,  1574,  1578,  1579,  1584,  1585,  1586,  1588,  1596,
    1056     1597,  1599,  1602,  1604,  1608,  1609,  1610,  1612,  1614,  1618,
    1057     1623,  1631,  1632,  1641,  1643,  1648,  1649,  1650,  1654,  1655,
    1058     1656,  1660,  1661,  1662,  1666,  1667,  1668,  1673,  1674,  1675,
    1059     1676,  1682,  1683,  1685,  1690,  1691,  1696,  1697,  1698,  1699,
    1060     1700,  1715,  1716,  1721,  1722,  1730,  1732,  1734,  1737,  1739,
    1061     1741,  1764,  1765,  1767,  1769,  1774,  1775,  1777,  1782,  1787,
    1062     1788,  1794,  1793,  1797,  1801,  1803,  1805,  1811,  1812,  1817,
    1063     1822,  1824,  1829,  1831,  1832,  1834,  1839,  1841,  1843,  1848,
    1064     1850,  1855,  1860,  1868,  1874,  1873,  1887,  1888,  1893,  1894,
    1065     1898,  1903,  1908,  1916,  1921,  1932,  1933,  1944,  1945,  1951,
    1066     1952,  1956,  1957,  1958,  1961,  1960,  1971,  1976,  1981,  1987,
    1067     1996,  2002,  2008,  2014,  2020,  2028,  2034,  2042,  2048,  2057,
    1068     2058,  2059,  2063,  2067,  2069,  2074,  2075,  2079,  2080,  2085,
    1069     2091,  2092,  2095,  2097,  2098,  2102,  2103,  2104,  2105,  2139,
    1070     2141,  2142,  2144,  2149,  2154,  2159,  2161,  2163,  2168,  2170,
    1071     2172,  2174,  2179,  2181,  2191,  2193,  2194,  2199,  2201,  2203,
    1072     2208,  2210,  2212,  2217,  2219,  2221,  2230,  2231,  2232,  2236,
    1073     2238,  2240,  2245,  2247,  2249,  2254,  2256,  2258,  2273,  2275,
    1074     2276,  2278,  2283,  2284,  2289,  2291,  2293,  2298,  2300,  2302,
    1075     2304,  2309,  2311,  2313,  2323,  2325,  2326,  2328,  2333,  2335,
    1076     2337,  2342,  2344,  2346,  2348,  2353,  2355,  2357,  2388,  2390,
    1077     2391,  2393,  2398,  2403,  2411,  2413,  2415,  2420,  2422,  2427,
    1078     2429,  2443,  2444,  2446,  2451,  2453,  2455,  2457,  2459,  2464,
    1079     2465,  2467,  2469,  2474,  2476,  2478,  2484,  2486,  2488,  2492,
    1080     2494,  2496,  2498,  2512,  2513,  2515,  2520,  2522,  2524,  2526,
    1081     2528,  2533,  2534,  2536,  2538,  2543,  2545,  2547,  2553,  2554,
    1082     2556,  2565,  2568,  2570,  2573,  2575,  2577,  2590,  2591,  2593,
    1083     2598,  2600,  2602,  2604,  2606,  2611,  2612,  2614,  2616,  2621,
    1084     2623,  2631,  2632,  2633,  2638,  2639,  2643,  2645,  2647,  2649,
    1085     2651,  2653,  2660,  2662,  2664,  2666,  2668,  2670,  2672,  2674,
    1086     2676,  2678,  2683,  2685,  2687,  2692,  2718,  2719,  2721,  2725,
    1087     2726,  2730,  2732,  2734,  2736,  2738,  2740,  2747,  2749,  2751,
    1088     2753,  2755,  2757,  2762,  2767,  2769,  2771,  2789,  2791,  2796,
    1089     2797
     1015     317,   318,   322,   323,   327,   328,   332,   333,   339,   341,
     1016     343,   345,   350,   351,   357,   361,   363,   364,   366,   367,
     1017     369,   371,   373,   381,   382,   388,   389,   390,   395,   397,
     1018     402,   403,   407,   411,   413,   415,   417,   422,   425,   427,
     1019     429,   431,   433,   435,   437,   439,   445,   447,   449,   451,
     1020     453,   455,   457,   459,   461,   466,   467,   468,   469,   473,
     1021     474,   476,   481,   482,   484,   486,   491,   492,   494,   499,
     1022     500,   502,   507,   508,   510,   512,   514,   519,   520,   522,
     1023     527,   528,   533,   534,   539,   540,   545,   546,   551,   552,
     1024     557,   558,   560,   562,   567,   572,   573,   575,   577,   583,
     1025     584,   590,   592,   594,   596,   601,   602,   607,   608,   609,
     1026     610,   611,   612,   613,   614,   615,   616,   620,   621,   627,
     1027     628,   634,   635,   636,   637,   638,   639,   640,   641,   642,
     1028     651,   658,   660,   670,   671,   676,   678,   680,   682,   686,
     1029     687,   692,   697,   700,   702,   704,   709,   711,   719,   720,
     1030     722,   726,   727,   732,   733,   738,   739,   743,   748,   749,
     1031     753,   755,   761,   762,   766,   768,   770,   772,   778,   779,
     1032     783,   784,   788,   790,   792,   797,   799,   804,   806,   810,
     1033     813,   817,   820,   824,   826,   830,   832,   839,   841,   843,
     1034     852,   854,   856,   858,   860,   865,   867,   869,   871,   876,
     1035     889,   890,   895,   897,   902,   906,   908,   910,   912,   914,
     1036     920,   921,   927,   928,   932,   933,   938,   940,   946,   947,
     1037     949,   954,   956,   963,   965,   969,   970,   975,   977,   981,
     1038     982,   986,   988,   992,   993,   997,   998,  1002,  1003,  1018,
     1039    1019,  1020,  1021,  1022,  1026,  1031,  1038,  1048,  1053,  1058,
     1040    1066,  1071,  1076,  1081,  1086,  1094,  1116,  1121,  1128,  1130,
     1041    1137,  1142,  1147,  1158,  1163,  1168,  1173,  1178,  1187,  1192,
     1042    1200,  1201,  1202,  1203,  1209,  1214,  1222,  1223,  1224,  1225,
     1043    1229,  1230,  1231,  1232,  1237,  1238,  1247,  1248,  1253,  1254,
     1044    1259,  1261,  1263,  1265,  1267,  1270,  1269,  1281,  1282,  1284,
     1045    1294,  1295,  1300,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
     1046    1318,  1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
     1047    1341,  1343,  1345,  1351,  1352,  1354,  1356,  1358,  1363,  1364,
     1048    1370,  1371,  1373,  1375,  1380,  1382,  1384,  1386,  1391,  1392,
     1049    1394,  1396,  1401,  1402,  1404,  1409,  1410,  1412,  1414,  1419,
     1050    1421,  1423,  1428,  1429,  1433,  1435,  1437,  1439,  1441,  1446,
     1051    1448,  1453,  1455,  1460,  1461,  1463,  1464,  1469,  1470,  1472,
     1052    1474,  1479,  1481,  1487,  1488,  1490,  1493,  1496,  1501,  1502,
     1053    1507,  1512,  1516,  1518,  1520,  1525,  1527,  1533,  1534,  1542,
     1054    1543,  1547,  1548,  1549,  1551,  1553,  1560,  1561,  1563,  1565,
     1055    1570,  1571,  1577,  1578,  1582,  1583,  1588,  1589,  1590,  1592,
     1056    1600,  1601,  1603,  1606,  1608,  1612,  1613,  1614,  1616,  1618,
     1057    1622,  1627,  1635,  1636,  1645,  1647,  1652,  1653,  1654,  1658,
     1058    1659,  1660,  1664,  1665,  1666,  1670,  1671,  1672,  1677,  1678,
     1059    1679,  1680,  1686,  1687,  1689,  1694,  1695,  1700,  1701,  1702,
     1060    1703,  1704,  1719,  1720,  1725,  1726,  1734,  1736,  1738,  1741,
     1061    1743,  1745,  1768,  1769,  1771,  1773,  1778,  1779,  1781,  1786,
     1062    1791,  1792,  1798,  1797,  1801,  1805,  1807,  1809,  1815,  1816,
     1063    1821,  1826,  1828,  1833,  1835,  1836,  1838,  1843,  1845,  1847,
     1064    1852,  1854,  1859,  1864,  1872,  1878,  1877,  1891,  1892,  1897,
     1065    1898,  1902,  1907,  1912,  1920,  1925,  1936,  1937,  1948,  1949,
     1066    1955,  1956,  1960,  1961,  1962,  1965,  1964,  1975,  1980,  1985,
     1067    1991,  2000,  2006,  2012,  2018,  2024,  2032,  2038,  2046,  2052,
     1068    2061,  2062,  2063,  2067,  2071,  2073,  2078,  2079,  2083,  2084,
     1069    2089,  2095,  2096,  2099,  2101,  2102,  2106,  2107,  2108,  2109,
     1070    2143,  2145,  2146,  2148,  2153,  2158,  2163,  2165,  2167,  2172,
     1071    2174,  2176,  2178,  2183,  2185,  2195,  2197,  2198,  2203,  2205,
     1072    2207,  2212,  2214,  2216,  2221,  2223,  2225,  2234,  2235,  2236,
     1073    2240,  2242,  2244,  2249,  2251,  2253,  2258,  2260,  2262,  2277,
     1074    2279,  2280,  2282,  2287,  2288,  2293,  2295,  2297,  2302,  2304,
     1075    2306,  2308,  2313,  2315,  2317,  2327,  2329,  2330,  2332,  2337,
     1076    2339,  2341,  2346,  2348,  2350,  2352,  2357,  2359,  2361,  2392,
     1077    2394,  2395,  2397,  2402,  2407,  2415,  2417,  2419,  2424,  2426,
     1078    2431,  2433,  2447,  2448,  2450,  2455,  2457,  2459,  2461,  2463,
     1079    2468,  2469,  2471,  2473,  2478,  2480,  2482,  2488,  2490,  2492,
     1080    2496,  2498,  2500,  2502,  2516,  2517,  2519,  2524,  2526,  2528,
     1081    2530,  2532,  2537,  2538,  2540,  2542,  2547,  2549,  2551,  2557,
     1082    2558,  2560,  2569,  2572,  2574,  2577,  2579,  2581,  2594,  2595,
     1083    2597,  2602,  2604,  2606,  2608,  2610,  2615,  2616,  2618,  2620,
     1084    2625,  2627,  2635,  2636,  2637,  2642,  2643,  2647,  2649,  2651,
     1085    2653,  2655,  2657,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
     1086    2678,  2680,  2682,  2687,  2689,  2691,  2696,  2722,  2723,  2725,
     1087    2729,  2730,  2734,  2736,  2738,  2740,  2742,  2744,  2751,  2753,
     1088    2755,  2757,  2759,  2761,  2766,  2771,  2773,  2775,  2793,  2795,
     1089    2800,  2801
    10901090};
    10911091#endif
     
    12301230{
    12311231       0,   132,   133,   134,   135,   135,   135,   136,   136,   136,
    1232      137,   137,   138,   139,   139,   140,   140,   141,   141,   141,
    1233      141,   142,   142,   142,   142,   142,   142,   142,   142,   142,
    1234      142,   142,   143,   143,   144,   144,   144,   144,   144,   145,
    1235      145,   146,   146,   146,   146,   146,   147,   147,   147,   147,
     1232     137,   137,   138,   138,   139,   139,   140,   140,   141,   141,
     1233     141,   141,   142,   142,   142,   142,   142,   142,   142,   142,
     1234     142,   142,   142,   143,   143,   144,   144,   144,   144,   144,
     1235     145,   145,   146,   146,   146,   146,   146,   147,   147,   147,
    12361236     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
    1237      147,   147,   147,   147,   148,   148,   148,   148,   149,   149,
    1238      149,   150,   150,   150,   150,   151,   151,   151,   152,   152,
    1239      152,   153,   153,   153,   153,   153,   154,   154,   154,   155,
    1240      155,   156,   156,   157,   157,   158,   158,   159,   159,   160,
    1241      160,   160,   160,   161,   162,   162,   162,   162,   163,   163,
    1242      164,   164,   164,   164,   165,   165,   166,   166,   166,   166,
    1243      166,   166,   166,   166,   166,   166,   167,   167,   168,   168,
    1244      169,   169,   169,   169,   169,   169,   169,   169,   169,   170,
    1245      171,   171,   172,   172,   173,   173,   173,   173,   174,   174,
    1246      175,   176,   176,   176,   176,   176,   176,   177,   177,   177,
    1247      178,   178,   179,   179,   180,   180,   181,   182,   182,   183,
    1248      183,   184,   184,   185,   185,   185,   185,   186,   186,   187,
    1249      187,   188,   188,   188,   189,   189,   190,   190,   190,   190,
    1250      190,   190,   190,   190,   190,   190,   191,   191,   191,   192,
    1251      192,   192,   192,   192,   193,   193,   193,   193,   194,   195,
    1252      195,   195,   195,   195,   196,   196,   196,   196,   196,   197,
    1253      197,   198,   198,   199,   199,   200,   200,   201,   201,   201,
    1254      202,   202,   203,   203,   204,   204,   205,   205,   206,   206,
    1255      207,   207,   208,   208,   209,   209,   210,   210,   211,   211,
    1256      211,   211,   211,   212,   212,   212,   213,   213,   213,   214,
    1257      214,   214,   214,   214,   215,   215,   215,   216,   216,   217,
    1258      217,   217,   218,   218,   218,   218,   218,   219,   219,   220,
    1259      220,   220,   220,   221,   221,   222,   222,   222,   222,   223,
    1260      223,   223,   223,   224,   224,   225,   225,   226,   226,   227,
    1261      227,   227,   227,   227,   228,   227,   229,   229,   229,   230,
    1262      230,   231,   232,   232,   232,   232,   232,   232,   232,   232,
    1263      233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
    1264      233,   233,   234,   234,   234,   234,   234,   235,   235,   236,
    1265      236,   236,   236,   237,   237,   237,   237,   238,   238,   238,
    1266      238,   239,   239,   239,   240,   240,   240,   240,   241,   241,
    1267      241,   242,   242,   243,   243,   243,   243,   243,   244,   244,
    1268      245,   245,   246,   246,   246,   246,   247,   247,   247,   247,
    1269      248,   248,   249,   249,   249,   249,   249,   250,   250,   251,
    1270      252,   253,   253,   253,   254,   254,   255,   255,   256,   256,
    1271      257,   257,   257,   257,   257,   258,   258,   258,   258,   259,
    1272      259,   260,   260,   261,   261,   262,   262,   262,   262,   263,
    1273      263,   263,   263,   263,   264,   264,   264,   264,   264,   265,
    1274      265,   266,   266,   267,   267,   268,   268,   268,   269,   269,
    1275      269,   270,   270,   270,   271,   271,   271,   272,   272,   272,
    1276      272,   273,   273,   273,   274,   274,   275,   275,   275,   275,
    1277      275,   276,   276,   277,   277,   278,   278,   278,   278,   278,
    1278      278,   279,   279,   279,   279,   280,   280,   280,   281,   282,
    1279      282,   284,   283,   283,   285,   285,   285,   286,   286,   287,
    1280      287,   287,   288,   288,   288,   288,   289,   289,   289,   290,
    1281      290,   291,   291,   292,   293,   292,   294,   294,   295,   295,
    1282      296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
    1283      300,   301,   301,   301,   302,   301,   301,   303,   303,   303,
    1284      304,   304,   304,   304,   304,   304,   304,   304,   304,   305,
    1285      305,   305,   306,   307,   307,   308,   308,   309,   309,   310,
    1286      311,   311,   312,   312,   312,   313,   313,   313,   313,   314,
    1287      314,   314,   314,   315,   315,   316,   316,   316,   317,   317,
    1288      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    1289      321,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    1290      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    1291      327,   327,   328,   328,   329,   329,   329,   330,   330,   330,
    1292      330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
    1293      333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
    1294      336,   336,   337,   337,   338,   338,   338,   339,   339,   340,
    1295      340,   341,   341,   341,   342,   342,   342,   342,   342,   343,
    1296      343,   343,   343,   344,   344,   344,   345,   345,   345,   346,
    1297      346,   346,   346,   347,   347,   347,   348,   348,   348,   348,
    1298      348,   349,   349,   349,   349,   350,   350,   350,   351,   351,
    1299      351,   352,   352,   352,   352,   352,   352,   353,   353,   353,
    1300      354,   354,   354,   354,   354,   355,   355,   355,   355,   356,
    1301      356,   357,   357,   357,   358,   358,   359,   359,   359,   359,
    1302      359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
    1303      360,   360,   361,   361,   361,   361,   362,   362,   362,   363,
    1304      363,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1305      365,   365,   365,   366,   367,   367,   367,   368,   368,   369,
    1306      369
     1237     147,   147,   147,   147,   147,   148,   148,   148,   148,   149,
     1238     149,   149,   150,   150,   150,   150,   151,   151,   151,   152,
     1239     152,   152,   153,   153,   153,   153,   153,   154,   154,   154,
     1240     155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
     1241     160,   160,   160,   160,   161,   162,   162,   162,   162,   163,
     1242     163,   164,   164,   164,   164,   165,   165,   166,   166,   166,
     1243     166,   166,   166,   166,   166,   166,   166,   167,   167,   168,
     1244     168,   169,   169,   169,   169,   169,   169,   169,   169,   169,
     1245     170,   171,   171,   172,   172,   173,   173,   173,   173,   174,
     1246     174,   175,   176,   176,   176,   176,   176,   176,   177,   177,
     1247     177,   178,   178,   179,   179,   180,   180,   181,   182,   182,
     1248     183,   183,   184,   184,   185,   185,   185,   185,   186,   186,
     1249     187,   187,   188,   188,   188,   189,   189,   190,   190,   190,
     1250     190,   190,   190,   190,   190,   190,   190,   191,   191,   191,
     1251     192,   192,   192,   192,   192,   193,   193,   193,   193,   194,
     1252     195,   195,   195,   195,   195,   196,   196,   196,   196,   196,
     1253     197,   197,   198,   198,   199,   199,   200,   200,   201,   201,
     1254     201,   202,   202,   203,   203,   204,   204,   205,   205,   206,
     1255     206,   207,   207,   208,   208,   209,   209,   210,   210,   211,
     1256     211,   211,   211,   211,   212,   212,   212,   213,   213,   213,
     1257     214,   214,   214,   214,   214,   215,   215,   215,   216,   216,
     1258     217,   217,   217,   218,   218,   218,   218,   218,   219,   219,
     1259     220,   220,   220,   220,   221,   221,   222,   222,   222,   222,
     1260     223,   223,   223,   223,   224,   224,   225,   225,   226,   226,
     1261     227,   227,   227,   227,   227,   228,   227,   229,   229,   229,
     1262     230,   230,   231,   232,   232,   232,   232,   232,   232,   232,
     1263     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
     1264     233,   233,   233,   234,   234,   234,   234,   234,   235,   235,
     1265     236,   236,   236,   236,   237,   237,   237,   237,   238,   238,
     1266     238,   238,   239,   239,   239,   240,   240,   240,   240,   241,
     1267     241,   241,   242,   242,   243,   243,   243,   243,   243,   244,
     1268     244,   245,   245,   246,   246,   246,   246,   247,   247,   247,
     1269     247,   248,   248,   249,   249,   249,   249,   249,   250,   250,
     1270     251,   252,   253,   253,   253,   254,   254,   255,   255,   256,
     1271     256,   257,   257,   257,   257,   257,   258,   258,   258,   258,
     1272     259,   259,   260,   260,   261,   261,   262,   262,   262,   262,
     1273     263,   263,   263,   263,   263,   264,   264,   264,   264,   264,
     1274     265,   265,   266,   266,   267,   267,   268,   268,   268,   269,
     1275     269,   269,   270,   270,   270,   271,   271,   271,   272,   272,
     1276     272,   272,   273,   273,   273,   274,   274,   275,   275,   275,
     1277     275,   275,   276,   276,   277,   277,   278,   278,   278,   278,
     1278     278,   278,   279,   279,   279,   279,   280,   280,   280,   281,
     1279     282,   282,   284,   283,   283,   285,   285,   285,   286,   286,
     1280     287,   287,   287,   288,   288,   288,   288,   289,   289,   289,
     1281     290,   290,   291,   291,   292,   293,   292,   294,   294,   295,
     1282     295,   296,   296,   296,   297,   297,   298,   298,   299,   299,
     1283     300,   300,   301,   301,   301,   302,   301,   301,   303,   303,
     1284     303,   304,   304,   304,   304,   304,   304,   304,   304,   304,
     1285     305,   305,   305,   306,   307,   307,   308,   308,   309,   309,
     1286     310,   311,   311,   312,   312,   312,   313,   313,   313,   313,
     1287     314,   314,   314,   314,   315,   315,   316,   316,   316,   317,
     1288     317,   317,   317,   318,   318,   319,   319,   319,   320,   320,
     1289     320,   321,   321,   321,   322,   322,   322,   323,   323,   323,
     1290     324,   324,   324,   325,   325,   325,   326,   326,   326,   327,
     1291     327,   327,   327,   328,   328,   329,   329,   329,   330,   330,
     1292     330,   330,   331,   331,   331,   332,   332,   332,   332,   333,
     1293     333,   333,   334,   334,   334,   334,   335,   335,   335,   336,
     1294     336,   336,   336,   337,   337,   338,   338,   338,   339,   339,
     1295     340,   340,   341,   341,   341,   342,   342,   342,   342,   342,
     1296     343,   343,   343,   343,   344,   344,   344,   345,   345,   345,
     1297     346,   346,   346,   346,   347,   347,   347,   348,   348,   348,
     1298     348,   348,   349,   349,   349,   349,   350,   350,   350,   351,
     1299     351,   351,   352,   352,   352,   352,   352,   352,   353,   353,
     1300     353,   354,   354,   354,   354,   354,   355,   355,   355,   355,
     1301     356,   356,   357,   357,   357,   358,   358,   359,   359,   359,
     1302     359,   359,   359,   360,   360,   360,   360,   360,   360,   360,
     1303     360,   360,   360,   361,   361,   361,   361,   362,   362,   362,
     1304     363,   363,   364,   364,   364,   364,   364,   364,   365,   365,
     1305     365,   365,   365,   365,   366,   367,   367,   367,   368,   368,
     1306     369,   369
    13071307};
    13081308
     
    13111311{
    13121312       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1313        1,     1,     1,     1,     1,     1,     2,     1,     1,     3,
    1314        3,     1,     6,     4,     3,     7,     3,     7,     2,     2,
    1315        7,     4,     1,     3,     0,     1,     3,     7,     9,     1,
    1316        3,     1,     3,     7,     3,     7,     1,     1,     1,     2,
    1317        2,     2,     2,     2,     2,     2,     4,     6,     1,     4,
    1318        4,     2,     4,     2,     1,     1,     1,     1,     1,     4,
    1319        4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
    1320        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
    1321        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1322        5,     4,     5,     1,     1,     3,     3,     2,     0,     1,
    1323        2,     5,     6,     7,     1,     3,     1,     1,     1,     1,
    1324        1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
    1325        1,     1,     1,     1,     1,     1,     1,     1,     6,     4,
    1326        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1327        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1328        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1329        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1330        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1331        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1332        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1333        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1334        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1335        1,     3,     1,     1,     1,     3,     1,     1,     1,     3,
    1336        0,     1,     3,     4,     1,     3,     1,     1,     3,     3,
    1337        3,     3,     3,     2,     3,     6,     3,     3,     4,     1,
    1338        2,     2,     3,     5,     8,     7,     7,     5,     9,     2,
    1339        2,     5,     3,     5,     4,     3,     4,     4,     7,     3,
    1340        3,     3,     3,     4,     6,     1,     1,     1,     1,     1,
    1341        1,     1,     1,     0,     1,     1,     2,     1,     1,     1,
    1342        1,     1,     1,     1,     0,     5,     1,     2,     3,     1,
    1343        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1313       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1314       3,     3,     1,     6,     4,     3,     7,     3,     7,     2,
     1315       2,     7,     4,     1,     3,     0,     1,     3,     7,     9,
     1316       1,     3,     1,     3,     7,     3,     7,     1,     1,     1,
     1317       2,     2,     2,     2,     2,     2,     2,     4,     6,     1,
     1318       4,     4,     2,     4,     2,     1,     1,     1,     1,     1,
     1319       4,     4,     1,     3,     3,     3,     1,     3,     3,     1,
     1320       3,     3,     1,     3,     3,     3,     3,     1,     3,     3,
     1321       1,     3,     1,     3,     1,     3,     1,     3,     1,     3,
     1322       1,     5,     4,     5,     1,     1,     3,     3,     2,     0,
     1323       1,     2,     5,     6,     7,     1,     3,     1,     1,     1,
     1324       1,     1,     1,     1,     1,     1,     1,     1,     3,     0,
     1325       1,     1,     1,     1,     1,     1,     1,     1,     1,     6,
     1326       4,     2,     7,     1,     3,     1,     2,     1,     2,     1,
     1327       2,     2,     5,     7,     5,     9,     5,     9,     1,     3,
     1328       1,     1,     3,     3,     2,     1,     2,     2,     0,     1,
     1329       2,     3,     0,     1,     2,     3,     3,     4,     0,     1,
     1330       1,     2,     5,     7,     6,     6,     4,     3,     4,     2,
     1331       3,     2,     3,     3,     3,     3,     5,     3,     3,     4,
     1332       1,     5,     6,     5,     6,     9,    10,     9,    10,     2,
     1333       1,     2,     2,     2,     1,     6,     8,    10,    12,    14,
     1334       0,     1,     0,     1,     1,     3,     4,     7,     0,     1,
     1335       3,     1,     3,     1,     1,     1,     3,     1,     1,     1,
     1336       3,     0,     1,     3,     4,     1,     3,     1,     1,     3,
     1337       3,     3,     3,     3,     2,     3,     6,     3,     3,     4,
     1338       1,     2,     2,     3,     5,     8,     7,     7,     5,     9,
     1339       2,     2,     5,     3,     5,     4,     3,     4,     4,     7,
     1340       3,     3,     3,     3,     4,     6,     1,     1,     1,     1,
     1341       1,     1,     1,     1,     0,     1,     1,     2,     1,     1,
     1342       1,     1,     1,     1,     1,     0,     5,     1,     2,     3,
     1343       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
    13441344       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1345        1,     1,     1,     2,     2,     3,     3,     1,     3,     1,
    1346        2,     2,     2,     4,     4,     4,     4,     1,     2,     2,
    1347        3,     1,     2,     2,     1,     2,     2,     3,     1,     2,
    1348        2,     1,     1,     4,     2,     5,     7,     2,     2,     2,
    1349        1,     2,     2,     3,     2,     3,     1,     2,     3,     2,
    1350        2,     4,     0,     1,     2,     2,     1,     0,     1,     2,
    1351        2,     5,     6,     2,     2,     4,     0,     2,     0,     1,
    1352        1,     1,     5,     5,     5,     1,     5,     5,     9,     1,
    1353        5,     0,     1,     1,     5,     1,     1,     5,     5,     1,
    1354        3,     3,     4,     1,     1,     1,     1,     2,     1,     3,
    1355        3,     1,     2,     1,     3,     1,     1,     1,     1,     1,
    1356        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1357        2,     0,     2,     2,     1,     4,     0,     1,     2,     3,
    1358        4,     2,     2,     1,     2,     1,     2,     5,     5,     7,
    1359        6,     1,     2,     2,     3,     1,     2,     2,     4,     2,
    1360        4,     0,     4,     2,     1,     1,     1,     0,     2,     5,
    1361        5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
    1362        4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
    1363        1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
    1364        1,     1,     1,     1,     0,     6,     2,     1,     2,     4,
    1365        2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
    1366        1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
    1367        1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
     1345       1,     1,     1,     1,     2,     2,     3,     3,     1,     3,
     1346       1,     2,     2,     2,     4,     4,     4,     4,     1,     2,
     1347       2,     3,     1,     2,     2,     1,     2,     2,     3,     1,
     1348       2,     2,     1,     1,     4,     2,     5,     7,     2,     2,
     1349       2,     1,     2,     2,     3,     2,     3,     1,     2,     3,
     1350       2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
     1351       2,     2,     5,     6,     2,     2,     4,     0,     2,     0,
     1352       1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
     1353       1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
     1354       1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
     1355       3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
     1356       1,     1,     1,     1,     1,     1,     1,     2,     1,     1,
     1357       1,     2,     0,     2,     2,     1,     4,     0,     1,     2,
     1358       3,     4,     2,     2,     1,     2,     1,     2,     5,     5,
     1359       7,     6,     1,     2,     2,     3,     1,     2,     2,     4,
     1360       2,     4,     0,     4,     2,     1,     1,     1,     0,     2,
     1361       5,     5,    13,     1,     1,     3,     3,     2,     3,     3,
     1362       2,     4,     1,     6,     9,     0,    11,     1,     3,     3,
     1363       3,     1,     1,     5,     2,     5,     0,     1,     1,     3,
     1364       0,     1,     1,     1,     1,     0,     6,     2,     1,     2,
     1365       4,     2,     3,     3,     3,     4,     5,     5,     5,     6,
     1366       1,     1,     1,     3,     0,     5,     0,     1,     1,     2,
     1367       6,     1,     3,     0,     1,     4,     1,     1,     1,     1,
     1368       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1369       4,     4,     3,     8,     3,     2,     1,     2,     6,     8,
     1370       3,     2,     3,     3,     4,     4,     3,     1,     1,     1,
     1371       4,     6,     3,     2,     3,     3,     4,     4,     3,     2,
    13681372       1,     2,     2,     1,     3,     2,     3,     3,     2,     4,
    1369        4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
    1370        2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
    1371        6,     3,     2,     3,     3,     4,     4,     3,     2,     1,
    1372        2,     2,     1,     3,     2,     3,     3,     2,     4,     4,
    1373        3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
    1374        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1375        2,     2,     1,     1,     2,     3,     3,     2,     4,     6,
    1376        8,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1377        4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
    1378        5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
    1379        3,     1,     4,     4,     3,     5,     8,     3,     1,     2,
    1380        1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
    1381        1,     2,     2,     3,     3,     1,     4,     4,     3,     8,
    1382        3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
    1383        2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
    1384        3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
    1385        1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
    1386        3,     4,     2,     5,     5,     6,     6,     0,     1,     0,
    1387        2
     1373       4,     3,     6,     8,     3,     2,     1,     2,     2,     2,
     1374       3,     3,     2,     4,     4,     3,     6,     8,     3,     2,
     1375       1,     2,     2,     1,     1,     2,     3,     3,     2,     4,
     1376       6,     8,     1,     2,     2,     1,     2,     2,     3,     3,
     1377       1,     4,     4,     3,     5,     8,     3,     2,     3,     1,
     1378       5,     5,     6,     6,     1,     2,     2,     1,     2,     2,
     1379       3,     3,     1,     4,     4,     3,     5,     8,     3,     1,
     1380       2,     1,     2,     6,     5,     6,     7,     7,     1,     2,
     1381       2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
     1382       8,     3,     1,     1,     2,     1,     1,     2,     3,     2,
     1383       3,     2,     3,     3,     2,     4,     3,     2,     3,     2,
     1384       4,     3,     2,     6,     6,     6,     7,     1,     2,     1,
     1385       1,     1,     2,     3,     2,     3,     2,     3,     3,     4,
     1386       2,     3,     4,     2,     5,     5,     6,     6,     0,     1,
     1387       0,     2
    13881388};
    13891389
     
    13931393static const yytype_uint16 yydefact[] =
    13941394{
    1395      293,   293,   314,   312,   315,   313,   316,   317,   299,   301,
    1396      300,     0,   302,   328,   320,   325,   323,   324,   322,   321,
    1397      326,   327,   329,   330,   331,   545,   545,   545,     0,     0,
    1398        0,   293,   219,   303,   318,   319,     7,   358,     0,     8,
    1399       13,    14,     0,     2,   293,   563,     9,   523,   521,   246,
    1400        3,   451,     3,   259,     0,     3,     3,     3,   247,     3,
    1401        0,     0,     0,   294,   295,   297,   293,   306,   309,   311,
    1402      339,   285,   332,   337,   286,   347,   287,   354,   351,   361,
    1403        0,     0,   362,   288,   471,   475,     3,     3,     0,     2,
    1404      517,   522,   527,   298,     0,     0,   545,   575,   545,     2,
    1405      586,   587,   588,   293,     0,   729,   730,     0,    12,   293,
    1406        0,   269,   270,     0,   294,   289,   290,   291,   292,   524,
    1407      304,   390,   546,   547,   368,   369,    12,   442,   443,    11,
    1408      438,   441,     0,   501,   496,   487,   442,   443,     0,     0,
    1409      526,   220,     0,   293,     0,     0,     0,     0,     0,     0,
    1410        0,     0,   293,   293,     2,     0,   731,   294,   580,   592,
    1411      735,   728,   726,   733,     0,     0,     0,   253,     2,     0,
    1412      530,   436,   437,   435,     0,     0,     0,     0,   545,     0,
    1413      632,   633,     0,     0,   543,   539,   545,   560,   545,   545,
    1414      540,     2,   541,   545,   599,   545,   545,   602,     0,     0,
    1415        0,   293,   293,   312,   359,     2,   293,   260,   296,   307,
    1416      340,   352,   476,     0,     2,     0,   451,   261,   294,   333,
    1417      348,   355,   472,     0,     2,     0,   310,   334,   341,   342,
    1418        0,   349,   353,   356,   360,   443,   293,   293,   364,   367,
    1419        0,   393,   473,   477,     0,     0,     0,     1,   293,     2,
    1420      528,   574,   576,   293,     2,   739,   294,   742,   543,   543,
    1421      294,     0,     0,     0,   272,   545,   540,     2,   293,     0,
    1422        0,   293,   548,     2,   499,     2,   552,     0,     0,     0,
    1423        0,     0,     0,    17,    58,     4,     5,     6,    15,     0,
    1424        0,     0,   293,     2,     0,   293,    64,    65,    66,    67,
    1425       47,    18,    48,    21,    46,    68,     0,    71,    75,    78,
    1426       81,    86,    89,    91,    93,    95,    97,    99,   104,   493,
    1427      749,   449,   492,     0,   447,   448,     0,   564,   579,   582,
    1428      585,   591,   594,   597,   358,     0,     2,   737,     0,   293,
    1429      740,     2,   293,     3,   423,     0,   431,   294,   293,   306,
    1430      332,   286,   347,   354,     3,     3,   405,   409,   419,   424,
    1431      471,   293,   425,   704,   705,   293,   426,   428,   293,     2,
    1432      581,   593,   727,     2,     2,   248,     2,   456,     0,   454,
    1433      453,   452,   140,     2,     2,   250,     2,     2,   249,     2,
    1434      280,     2,   281,     0,   279,     0,     0,     0,     0,     0,
    1435        0,     0,     0,     0,   565,   604,     0,   451,     2,   559,
    1436      568,   658,   561,   562,   531,   293,     2,   598,   607,   600,
    1437      601,     0,   275,   293,   293,   338,   294,     0,   294,     0,
    1438      293,   732,   736,   734,   532,   293,   543,   254,   262,   308,
    1439        0,     2,   533,   293,   497,   335,   336,   282,   350,   357,
    1440        0,   293,     2,   382,   293,   370,     0,     0,   376,   726,
    1441      293,   747,   396,     0,   474,   498,   251,   252,   518,   293,
    1442      433,     0,   293,   236,     0,     2,   238,     0,   294,     0,
    1443      256,     2,   257,   277,     0,     0,     2,   293,   543,   293,
    1444      484,   486,   485,     0,     0,   749,     0,   293,     0,   293,
    1445      488,   293,   558,   556,   557,   555,     0,   550,   553,     0,
    1446        0,   293,    55,   293,    68,    51,   293,    61,   293,   293,
    1447       49,    50,    63,     2,   126,     0,     0,   445,     0,   444,
    1448      110,   293,    53,    54,    16,     0,    28,    29,    34,     2,
    1449        0,    34,   116,   117,   118,   119,   120,   121,   122,   123,
    1450      124,   125,     0,     0,    52,     0,     0,     0,     0,     0,
     1395     294,   294,   315,   313,   316,   314,   317,   318,   300,   302,
     1396     301,     0,   303,   329,   321,   326,   324,   325,   323,   322,
     1397     327,   328,   330,   331,   332,   546,   546,   546,     0,     0,
     1398       0,   294,   220,   304,   319,   320,     7,   359,     0,     8,
     1399      14,    15,     0,     2,   294,   564,     9,   524,   522,   247,
     1400       3,   452,     3,   260,     0,     3,     3,     3,   248,     3,
     1401       0,     0,     0,   295,   296,   298,   294,   307,   310,   312,
     1402     340,   286,   333,   338,   287,   348,   288,   355,   352,   362,
     1403       0,     0,   363,   289,   472,   476,     3,     3,     0,     2,
     1404     518,   523,   528,   299,     0,     0,   546,   576,   546,     2,
     1405     587,   588,   589,   294,     0,   730,   731,     0,    12,   294,
     1406       0,    13,   270,   271,     0,   295,   290,   291,   292,   293,
     1407     525,   305,   391,   547,   548,   369,   370,    12,   443,   444,
     1408      11,   439,   442,     0,   502,   497,   488,   443,   444,     0,
     1409       0,   527,   221,     0,   294,     0,     0,     0,     0,     0,
     1410       0,     0,     0,   294,   294,     2,     0,   732,   295,   581,
     1411     593,   736,   729,   727,   734,     0,     0,     0,   254,     2,
     1412       0,   531,   437,   438,   436,     0,     0,     0,     0,   546,
     1413       0,   633,   634,     0,     0,   544,   540,   546,   561,   546,
     1414     546,   541,     2,   542,   546,   600,   546,   546,   603,     0,
     1415       0,     0,   294,   294,   313,   360,     2,   294,   261,   297,
     1416     308,   341,   353,   477,     0,     2,     0,   452,   262,   295,
     1417     334,   349,   356,   473,     0,     2,     0,   311,   335,   342,
     1418     343,     0,   350,   354,   357,   361,   444,   294,   294,   365,
     1419     368,     0,   394,   474,   478,     0,     0,     0,     1,   294,
     1420       2,   529,   575,   577,   294,     2,   740,   295,   743,   544,
     1421     544,   295,     0,     0,     0,   273,   546,   541,     2,   294,
     1422       0,     0,   294,   549,     2,   500,     2,   553,     0,     0,
     1423       0,     0,     0,     0,    18,    59,     4,     5,     6,    16,
     1424       0,     0,     0,   294,     2,     0,   294,    65,    66,    67,
     1425      68,    48,    19,    49,    22,    47,    69,     0,    72,    76,
     1426      79,    82,    87,    90,    92,    94,    96,    98,   100,   105,
     1427     494,   750,   450,   493,     0,   448,   449,     0,   565,   580,
     1428     583,   586,   592,   595,   598,   359,     0,     2,   738,     0,
     1429     294,   741,     2,   294,     3,   424,     0,   432,   295,   294,
     1430     307,   333,   287,   348,   355,     3,     3,   406,   410,   420,
     1431     425,   472,   294,   426,   705,   706,   294,   427,   429,   294,
     1432       2,   582,   594,   728,     2,     2,   249,     2,   457,     0,
     1433     455,   454,   453,   141,     2,     2,   251,     2,     2,   250,
     1434       2,   281,     2,   282,     0,   280,     0,     0,     0,     0,
     1435       0,     0,     0,     0,     0,   566,   605,     0,   452,     2,
     1436     560,   569,   659,   562,   563,   532,   294,     2,   599,   608,
     1437     601,   602,     0,   276,   294,   294,   339,   295,     0,   295,
     1438       0,   294,   733,   737,   735,   533,   294,   544,   255,   263,
     1439     309,     0,     2,   534,   294,   498,   336,   337,   283,   351,
     1440     358,     0,   294,     2,   383,   294,   371,     0,     0,   377,
     1441     727,   294,   748,   397,     0,   475,   499,   252,   253,   519,
     1442     294,   434,     0,   294,   237,     0,     2,   239,     0,   295,
     1443       0,   257,     2,   258,   278,     0,     0,     2,   294,   544,
     1444     294,   485,   487,   486,     0,     0,   750,     0,   294,     0,
     1445     294,   489,   294,   559,   557,   558,   556,     0,   551,   554,
     1446       0,     0,   294,    56,   294,    69,    52,   294,    62,   294,
     1447     294,    50,    51,    64,     2,   127,     0,     0,   446,     0,
     1448     445,   111,   294,    54,    55,    17,     0,    29,    30,    35,
     1449       2,     0,    35,   117,   118,   119,   120,   121,   122,   123,
     1450     124,   125,   126,     0,     0,    53,     0,     0,     0,     0,
    14511451       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1452        0,     0,     0,     0,     0,   107,     2,   644,   450,   641,
    1453      545,   545,   649,   478,   293,     2,   583,   584,     0,   595,
    1454      596,     0,     2,   738,   741,   110,   293,     2,   293,     0,
    1455      706,   294,   710,   701,   702,   708,     0,     2,     2,   666,
    1456      545,   749,   615,   545,   545,   749,   545,   629,   545,   545,
    1457      680,   432,   663,   545,   545,   671,   678,   293,   427,   294,
    1458        0,     0,   293,   716,   294,   721,   749,   713,   293,   718,
    1459      749,   293,   293,   293,     0,   110,     0,    17,     5,     2,
    1460        0,     0,   457,   747,     0,     0,   463,   240,     0,   293,
    1461        0,     0,     0,   543,   567,   571,   573,   603,   606,   610,
    1462      613,   566,   605,     0,   283,   656,     0,   293,   276,     0,
    1463        0,     0,     0,   274,     2,     0,   258,   534,   293,     0,
    1464        0,     0,     0,   293,   293,     0,     0,   690,   380,   383,
    1465      387,   545,   387,   695,   386,   687,   545,   545,   363,   371,
    1466      379,   372,   545,   374,   377,   293,   748,     0,     0,   394,
    1467      747,   294,     3,   412,     3,   416,   415,   589,     0,   529,
    1468      293,     3,     3,   293,   431,   294,     3,   425,   426,     2,
    1469        0,     0,     0,   483,   305,   293,   479,   481,     3,     2,
    1470        2,     0,   500,     3,     0,   552,   128,     0,     0,   221,
    1471        0,     0,     0,     2,     0,     0,    35,     0,     0,   110,
    1472      293,    19,     0,    20,     0,   690,   446,     0,   108,     3,
    1473        2,    26,     2,     0,    32,     0,     2,    24,     0,   105,
    1474      106,    72,    73,    74,    76,    77,    79,    80,    84,    85,
    1475       82,    83,    87,    88,    90,    92,    94,    96,    98,     0,
    1476        0,   750,   293,     0,     0,     0,   645,   646,   642,   643,
    1477      495,   494,   293,     0,     3,   293,   712,   293,   717,   294,
    1478      293,   293,   293,   660,   703,   659,     2,   293,     0,     0,
    1479        0,     0,     0,     0,     0,     0,   681,     0,   667,   618,
    1480      634,   668,     2,   614,   621,   429,   616,   617,   430,     2,
    1481      628,   637,   630,   631,   664,   665,   679,   707,   711,   709,
    1482      749,   267,     2,   743,     2,   420,   715,   720,   421,     0,
    1483      399,     3,     3,     3,     3,   451,     3,     0,     2,   466,
    1484      462,   748,     0,   458,   465,     2,   461,   464,     0,   293,
    1485      241,   263,     3,   271,   273,     0,   451,     2,   569,   570,
    1486        2,   608,   609,     0,   657,   535,     3,   344,   343,   346,
    1487      345,   293,   536,     0,   537,   293,   373,   375,     2,     0,
    1488        0,     0,     0,   103,   389,   691,   692,   384,   388,   385,
    1489      688,   689,   378,   382,   365,   396,   391,   397,     0,     0,
    1490        0,   434,   239,     0,     0,     3,     2,   666,   427,     0,
    1491      525,     0,   749,   487,     0,   293,   293,   293,     0,   549,
    1492      551,   129,     0,     0,   214,     0,     0,     0,   222,   223,
    1493       56,     0,    62,   293,     0,    60,    59,     0,   127,   691,
    1494      456,    69,    70,   109,   114,     3,   108,     0,     0,     0,
    1495       23,    34,     3,     0,    31,   101,     0,     3,   648,   652,
    1496      655,   647,     3,   590,     3,   714,   719,     2,   293,     3,
    1497        3,   294,     0,     3,   620,   624,   627,   636,   670,   674,
    1498      677,   293,     3,   619,   635,   669,   293,   293,   422,   293,
    1499      293,   744,     0,     0,     0,     0,   255,     0,   103,     0,
    1500        3,     3,     0,   459,     0,   455,     0,     0,   244,   293,
    1501        0,     0,   128,     0,     0,     0,     0,     0,   128,     0,
    1502        0,   108,   108,     2,     0,     0,     0,     3,   130,   131,
    1503        2,   142,   132,   133,   134,   135,   136,   137,   144,   146,
    1504        0,     0,     0,   284,   293,   293,   545,     0,   538,   293,
    1505      110,   694,   698,   700,   693,   381,   395,   392,   577,     2,
    1506      662,   661,     0,   667,     2,   480,   482,   502,     3,   510,
    1507      511,     0,     2,   506,     3,     3,     0,     0,   554,   221,
    1508        0,     0,     0,   221,     0,     0,     3,    36,   747,   108,
    1509        0,     3,   659,    41,     3,    39,     3,    33,     0,     3,
    1510      100,   102,     0,     2,   650,   651,     0,     0,   293,     0,
    1511        0,     0,     3,   636,     0,     2,   622,   623,     2,   638,
    1512        2,   672,   673,     0,     0,     3,     0,     3,     3,     3,
    1513        3,   407,   406,   410,     2,     2,   746,   745,   111,     0,
    1514        0,     0,     0,     3,   460,     3,     0,   242,   145,     3,
    1515      294,   293,     0,     0,     0,     0,     2,   190,     0,   188,
    1516        0,     0,     0,     0,     0,     0,     0,     0,   110,     0,
    1517      545,   150,   147,   293,     0,     0,   266,   278,     3,     3,
    1518      544,   611,   366,     2,   696,   697,   293,   265,   293,     0,
    1519      513,   490,   293,     0,     0,   489,   504,     0,     0,     0,
    1520      215,     0,   224,    57,   108,     0,     0,   115,   112,     0,
    1521        0,     0,     0,     0,     0,    22,     0,   653,   293,   578,
    1522      264,   722,   723,   724,     0,   675,   293,   293,   293,     3,
    1523        3,     0,   683,     0,     0,     0,     0,   293,   293,     3,
    1524      542,   467,   468,     0,     0,   245,   294,     0,     0,     0,
    1525        0,   293,   191,   189,     0,   186,   192,     0,     0,     0,
    1526        0,   196,   199,   197,   193,     0,   194,    34,   128,   143,
    1527      141,   243,     0,     0,   293,   414,   418,   417,     0,   507,
    1528        2,   508,     2,   509,   503,   293,   227,     0,   225,     0,
    1529      227,     3,   659,    30,   113,     2,    44,     2,    42,    40,
    1530       27,   111,    25,     3,   725,     3,     3,     3,     0,     0,
    1531      682,   684,   625,   639,   268,     2,   404,     3,   403,     0,
    1532      470,   467,   128,     0,     0,   128,     3,     0,   128,   187,
    1533        0,     2,     2,   208,   198,     0,     0,     0,     0,   139,
    1534      572,   612,     3,     2,     0,     0,     2,   228,     0,     0,
    1535      216,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1536      685,   686,   293,     0,   469,   151,     0,     0,     2,   164,
    1537      128,   153,     0,   181,     0,   128,     0,     2,   155,     0,
    1538        2,     0,     2,     2,     2,   195,    31,     0,   293,   512,
    1539      514,   505,     0,     0,     0,     0,   113,    37,     3,     3,
    1540      654,   626,   640,   676,   408,   128,   157,   160,     0,   159,
    1541      163,     3,   166,   165,     0,   128,   183,   128,     3,     0,
    1542      293,     0,   293,     0,     2,     0,     2,   138,   699,     2,
    1543      229,   230,     0,   226,   217,     0,     0,     0,   152,     0,
    1544        0,   162,   232,   167,     2,   234,   182,     0,   185,   171,
    1545      200,     3,   209,   213,   202,     3,     0,   293,     0,   293,
    1546        0,     0,     0,    38,    45,    43,   158,   161,   128,     0,
    1547      168,   293,   128,   128,     0,   172,     0,     0,   690,   210,
    1548      211,   212,     0,   201,     3,   203,     3,   293,   218,   231,
    1549      148,   169,   154,   128,   235,   184,   179,   177,   173,   156,
    1550      128,     0,   691,     0,     0,     0,     0,   149,   170,   180,
    1551      174,   178,   177,   175,     3,     3,     0,     0,   491,   176,
    1552      204,   206,     3,     3,   205,   207
     1452       0,     0,     0,     0,     0,     0,   108,     2,   645,   451,
     1453     642,   546,   546,   650,   479,   294,     2,   584,   585,     0,
     1454     596,   597,     0,     2,   739,   742,   111,   294,     2,   294,
     1455       0,   707,   295,   711,   702,   703,   709,     0,     2,     2,
     1456     667,   546,   750,   616,   546,   546,   750,   546,   630,   546,
     1457     546,   681,   433,   664,   546,   546,   672,   679,   294,   428,
     1458     295,     0,     0,   294,   717,   295,   722,   750,   714,   294,
     1459     719,   750,   294,   294,   294,     0,   111,     0,    18,     5,
     1460       2,     0,    19,     0,   458,   748,     0,     0,   464,   241,
     1461       0,   294,     0,     0,     0,   544,   568,   572,   574,   604,
     1462     607,   611,   614,   567,   606,     0,   284,   657,     0,   294,
     1463     277,     0,     0,     0,     0,   275,     2,     0,   259,   535,
     1464     294,     0,     0,     0,     0,   294,   294,     0,     0,   691,
     1465     381,   384,   388,   546,   388,   696,   387,   688,   546,   546,
     1466     364,   372,   380,   373,   546,   375,   378,   294,   749,     0,
     1467       0,   395,   748,   295,     3,   413,     3,   417,   416,   590,
     1468       0,   530,   294,     3,     3,   294,   432,   295,     3,   426,
     1469     427,     2,     0,     0,     0,   484,   306,   294,   480,   482,
     1470       3,     2,     2,     0,   501,     3,     0,   553,   129,     0,
     1471       0,   222,     0,     0,     0,     2,     0,     0,    36,     0,
     1472       0,   111,   294,    20,     0,    21,     0,   691,   447,     0,
     1473     109,     3,     2,    27,     2,     0,    33,     0,     2,    25,
     1474       0,   106,   107,    73,    74,    75,    77,    78,    80,    81,
     1475      85,    86,    83,    84,    88,    89,    91,    93,    95,    97,
     1476      99,     0,     0,   751,   294,     0,     0,     0,   646,   647,
     1477     643,   644,   496,   495,   294,     0,     3,   294,   713,   294,
     1478     718,   295,   294,   294,   294,   661,   704,   660,     2,   294,
     1479       0,     0,     0,     0,     0,     0,     0,     0,   682,     0,
     1480     668,   619,   635,   669,     2,   615,   622,   430,   617,   618,
     1481     431,     2,   629,   638,   631,   632,   665,   666,   680,   708,
     1482     712,   710,   750,   268,     2,   744,     2,   421,   716,   721,
     1483     422,     0,   400,     3,     3,     3,     3,   452,     3,     0,
     1484       2,   467,   463,   749,     0,   459,   466,     2,   462,   465,
     1485       0,   294,   242,   264,     3,   272,   274,     0,   452,     2,
     1486     570,   571,     2,   609,   610,     0,   658,   536,     3,   345,
     1487     344,   347,   346,   294,   537,     0,   538,   294,   374,   376,
     1488       2,     0,     0,     0,     0,   104,   390,   692,   693,   385,
     1489     389,   386,   689,   690,   379,   383,   366,   397,   392,   398,
     1490       0,     0,     0,   435,   240,     0,     0,     3,     2,   667,
     1491     428,     0,   526,     0,   750,   488,     0,   294,   294,   294,
     1492       0,   550,   552,   130,     0,     0,   215,     0,     0,     0,
     1493     223,   224,    57,     0,    63,   294,     0,    61,    60,     0,
     1494     128,   692,   457,    70,    71,   110,   115,     3,   109,     0,
     1495       0,     0,    24,    35,     3,     0,    32,   102,     0,     3,
     1496     649,   653,   656,   648,     3,   591,     3,   715,   720,     2,
     1497     294,     3,     3,   295,     0,     3,   621,   625,   628,   637,
     1498     671,   675,   678,   294,     3,   620,   636,   670,   294,   294,
     1499     423,   294,   294,   745,     0,     0,     0,     0,   256,     0,
     1500     104,     0,     3,     3,     0,   460,     0,   456,     0,     0,
     1501     245,   294,     0,     0,   129,     0,     0,     0,     0,     0,
     1502     129,     0,     0,   109,   109,     2,     0,     0,     0,     3,
     1503     131,   132,     2,   143,   133,   134,   135,   136,   137,   138,
     1504     145,   147,     0,     0,     0,   285,   294,   294,   546,     0,
     1505     539,   294,   111,   695,   699,   701,   694,   382,   396,   393,
     1506     578,     2,   663,   662,     0,   668,     2,   481,   483,   503,
     1507       3,   511,   512,     0,     2,   507,     3,     3,     0,     0,
     1508     555,   222,     0,     0,     0,   222,     0,     0,     3,    37,
     1509     748,   109,     0,     3,   660,    42,     3,    40,     3,    34,
     1510       0,     3,   101,   103,     0,     2,   651,   652,     0,     0,
     1511     294,     0,     0,     0,     3,   637,     0,     2,   623,   624,
     1512       2,   639,     2,   673,   674,     0,     0,     3,     0,     3,
     1513       3,     3,     3,   408,   407,   411,     2,     2,   747,   746,
     1514     112,     0,     0,     0,     0,     3,   461,     3,     0,   243,
     1515     146,     3,   295,   294,     0,     0,     0,     0,     2,   191,
     1516       0,   189,     0,     0,     0,     0,     0,     0,     0,     0,
     1517     111,     0,   546,   151,   148,   294,     0,     0,   267,   279,
     1518       3,     3,   545,   612,   367,     2,   697,   698,   294,   266,
     1519     294,     0,   514,   491,   294,     0,     0,   490,   505,     0,
     1520       0,     0,   216,     0,   225,    58,   109,     0,     0,   116,
     1521     113,     0,     0,     0,     0,     0,     0,    23,     0,   654,
     1522     294,   579,   265,   723,   724,   725,     0,   676,   294,   294,
     1523     294,     3,     3,     0,   684,     0,     0,     0,     0,   294,
     1524     294,     3,   543,   468,   469,     0,     0,   246,   295,     0,
     1525       0,     0,     0,   294,   192,   190,     0,   187,   193,     0,
     1526       0,     0,     0,   197,   200,   198,   194,     0,   195,    35,
     1527     129,   144,   142,   244,     0,     0,   294,   415,   419,   418,
     1528       0,   508,     2,   509,     2,   510,   504,   294,   228,     0,
     1529     226,     0,   228,     3,   660,    31,   114,     2,    45,     2,
     1530      43,    41,    28,   112,    26,     3,   726,     3,     3,     3,
     1531       0,     0,   683,   685,   626,   640,   269,     2,   405,     3,
     1532     404,     0,   471,   468,   129,     0,     0,   129,     3,     0,
     1533     129,   188,     0,     2,     2,   209,   199,     0,     0,     0,
     1534       0,   140,   573,   613,     3,     2,     0,     0,     2,   229,
     1535       0,     0,   217,     0,     0,     0,     0,     0,     0,     0,
     1536       0,     0,   686,   687,   294,     0,   470,   152,     0,     0,
     1537       2,   165,   129,   154,     0,   182,     0,   129,     0,     2,
     1538     156,     0,     2,     0,     2,     2,     2,   196,    32,     0,
     1539     294,   513,   515,   506,     0,     0,     0,     0,   114,    38,
     1540       3,     3,   655,   627,   641,   677,   409,   129,   158,   161,
     1541       0,   160,   164,     3,   167,   166,     0,   129,   184,   129,
     1542       3,     0,   294,     0,   294,     0,     2,     0,     2,   139,
     1543     700,     2,   230,   231,     0,   227,   218,     0,     0,     0,
     1544     153,     0,     0,   163,   233,   168,     2,   235,   183,     0,
     1545     186,   172,   201,     3,   210,   214,   203,     3,     0,   294,
     1546       0,   294,     0,     0,     0,    39,    46,    44,   159,   162,
     1547     129,     0,   169,   294,   129,   129,     0,   173,     0,     0,
     1548     691,   211,   212,   213,     0,   202,     3,   204,     3,   294,
     1549     219,   232,   149,   170,   155,   129,   236,   185,   180,   178,
     1550     174,   157,   129,     0,   692,     0,     0,     0,     0,   150,
     1551     171,   181,   175,   179,   178,   176,     3,     3,     0,     0,
     1552     492,   177,   205,   207,     3,     3,   206,   208
    15531553};
    15541554
     
    15561556static const yytype_int16 yydefgoto[] =
    15571557{
    1558       -1,   837,   473,   300,    45,   130,   131,   301,   302,   303,
    1559      304,   783,   784,  1144,  1145,   305,   306,   307,   308,   309,
    1560      310,   311,   312,   313,   314,   315,   316,   317,   318,  1049,
    1561      524,   994,   320,   995,   553,   971,  1076,  1540,  1078,  1079,
    1562     1080,  1081,  1541,  1082,  1083,  1457,  1458,  1419,  1420,  1421,
    1563     1519,  1520,  1524,  1525,  1560,  1561,  1084,  1377,  1085,  1086,
    1564     1311,  1312,  1313,  1501,  1087,   142,   977,   978,   979,  1398,
    1565     1482,  1493,