Changeset 413f7f8


Ignore:
Timestamp:
Jul 7, 2015, 1:49:58 PM (7 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, string, with_gc
Children:
82dd287
Parents:
e0ff3e6 (diff), 8686f31 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
10 added
25 edited

Legend:

Unmodified
Added
Removed
  • include/bfd.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Thu Jan  8 15:50:56 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:54:59 2015
    13 // Update Count     : 5
     12// Last Modified On : Sun Jun 28 09:07:14 2015
     13// Update Count     : 7
    1414
    1515// This include file uses the CFA keyword "type" as a field name of a structure.
    1616// The name is changed only for the include file.
    1717
     18#ifndef type    // nesting ?
    1819#define type `type`
    19 #include_next <math.h>
     20#define __CFA_BFD_H__
     21#endif // type
     22#include_next <bfd.h>
     23#ifdef __CFA_BFD_H__
    2024#undef type
     25#endif // __CFA_BFD_H__
    2126
    2227// Local Variables: //
  • include/math.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Mon Nov 10 23:41:29 2014
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:55:52 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun 28 09:05:22 2015
     13// Update Count     : 6
    1414
    1515// This include file uses the CFA keyword "type" as a field name of a structure.
    1616// The name is changed only for the include file.
    1717
     18#ifndef type    // nesting ?
    1819#define type `type`
     20#define __CFA_MATH_H__
     21#endif // type
    1922#include_next <math.h>
     23#ifdef __CFA_MATH_H__
    2024#undef type
     25#endif // __CFA_MATH_H__
    2126
    2227// Local Variables: //
  • src/CodeGen/CodeGenerator.cc

    re0ff3e6 r413f7f8  
    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 : Wed Jun 24 16:11:41 2015
    13 // Update Count     : 143
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jun 26 16:52:58 2015
     13// Update Count     : 144
    1414//
    1515
     
    269269             
    270270                                  case OT_CONSTANT:
    271                                         // there are no intrinsic definitions of 0 or 1 as functions
     271                                  case OT_LABELADDRESS:
     272                                        // there are no intrinsic definitions of 0/1 or label addresses as functions
    272273                                        assert( false );
    273274                                }
  • src/Common/utility.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Jun  8 14:43:54 2015
    13 // Update Count     : 13
     12// Last Modified On : Thu Jul  2 18:04:41 2015
     13// Update Count     : 16
    1414//
    1515
     
    8686}
    8787
    88 static inline std::string assign_strptr( std::string *str ) {
     88static inline std::string assign_strptr( const std::string *str ) {
    8989        if ( str == 0 ) {
    9090                return "";
     
    9797}
    9898
    99 template< class T, typename ResultType, ResultType (T::* memfunc)() >
     99template< class T, typename ResultType, ResultType( T::* memfunc )() >
    100100ResultType dispatch( T *pT ) {
    101101        return (pT->*memfunc)();
  • src/ControlStruct/LabelFixer.h

    re0ff3e6 r413f7f8  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Jun 23 15:47:25 2015
    13 // Update Count     : 28
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun 29 17:24:39 2015
     13// Update Count     : 29
    1414//
    1515
     
    9494                        }
    9595
    96                         void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), usage.end() ); }
     96                        void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), other.usage.end() ); }
    9797                  private:
    9898                        Label label; 
  • src/ControlStruct/MLEMutator.cc

    re0ff3e6 r413f7f8  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Thu Jun 04 15:12:33 2015
    13 // Update Count     : 173
     12// Last Modified On : Sat Jun 27 10:56:14 2015
     13// Update Count     : 174
    1414//
    1515
     
    143143                        if ( enclosingLoops.empty() ) {
    144144                                throw SemanticError( "'continue' outside a loop" );
    145                         } else if ( std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) == enclosingLoops.end() ) {
     145                        } else if ( branchStmt->get_target() != "" && std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) == enclosingLoops.end() ) {
    146146                                throw SemanticError( "'continue' target label must be an enclosing loop: " + originalTarget );
    147147                        }
  • src/GenPoly/Box.cc

    re0ff3e6 r413f7f8  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jun 13 09:12:19 2015
    13 // Update Count     : 4
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:19:07 2015
     13// Update Count     : 10
    1414//
    1515
     
    366366                                } else {
    367367                                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
    368                                         newObj->get_type()->get_qualifiers() = Type::Qualifiers();
     368                                        newObj->get_type()->get_qualifiers() = Type::Qualifiers(); // TODO: is this right???
    369369                                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
    370370                                        UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) );
  • src/MakeLibCfa.cc

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 10:33:33 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 10:40:44 2015
    13 // Update Count     : 13
     12// Last Modified On : Fri Jun 26 16:52:59 2015
     13// Update Count     : 14
    1414//
    1515
     
    7878                        }
    7979                  case CodeGen::OT_CONSTANT:
     80                  case CodeGen::OT_LABELADDRESS:
     81                        // there are no intrinsic definitions of 0/1 or label addresses as functions
    8082                        assert( false );
    8183                } // switch
  • src/Parser/DeclarationNode.cc

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun 24 15:29:19 2015
    13 // Update Count     : 86
     12// Last Modified On : Fri Jul  3 12:35:02 2015
     13// Update Count     : 108
    1414//
    1515
     
    173173}
    174174
    175 DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {
     175DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields ) {
    176176        DeclarationNode *newnode = new DeclarationNode;
    177177        newnode->type = new TypeData( TypeData::Aggregate );
    178178        newnode->type->aggregate->kind = kind;
    179179        newnode->type->aggregate->name = assign_strptr( name );
    180         if ( newnode->type->aggregate->name == "" ) {
     180        if ( newnode->type->aggregate->name == "" ) {           // anonymous aggregate ?
    181181                newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    182         } // if
    183 
    184         // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified by
    185         // "struct"
    186         typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
    187         DeclarationNode *typedf = new DeclarationNode;
    188         typedf->name = newnode->type->aggregate->name;
    189         newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
    190 
    191         newnode->type->aggregate->params = formals;
     182        } else {
     183                // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified
     184                // by "struct"
     185                typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
     186                DeclarationNode *typedf = new DeclarationNode;
     187                typedf->name = newnode->type->aggregate->name;
     188                newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     189        } // if
    192190        newnode->type->aggregate->actuals = actuals;
    193         newnode->type->aggregate->members = fields;
     191        newnode->type->aggregate->fields = fields;
    194192        return newnode;
    195193}
     
    200198        newnode->type = new TypeData( TypeData::Enum );
    201199        newnode->type->enumeration->name = newnode->name;
    202         if ( newnode->type->enumeration->name == "" ) {
     200        if ( newnode->type->enumeration->name == "" ) {         // anonymous enumeration ?
    203201                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    204         } // if
    205 
    206         // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be qualified
    207         // by "enum"
    208         typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
    209         DeclarationNode *typedf = new DeclarationNode;
    210         typedf->name = newnode->type->enumeration->name;
    211         newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
    212 
     202        } else {
     203                // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be
     204                // qualified by "enum"
     205                typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
     206                DeclarationNode *typedf = new DeclarationNode;
     207                typedf->name = newnode->type->enumeration->name;
     208                newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     209        } // if
    213210        newnode->type->enumeration->constants = constants;
    214211        return newnode;
     
    251248        newnode->type->aggregate->kind = Context;
    252249        newnode->type->aggregate->params = params;
    253         newnode->type->aggregate->members = asserts;
     250        newnode->type->aggregate->fields = asserts;
    254251        newnode->type->aggregate->name = assign_strptr( name );
    255252        return newnode;
     
    371368                                        if ( type->kind == TypeData::Aggregate ) {
    372369                                                type->aggregate->params = q->type->forall;
     370                                                // change implicit typedef from TYPEDEFname to TYPEGENname
     371                                                typedefTable.changeKind( type->aggregate->name, TypedefTable::TG );
    373372                                        } else {
    374373                                                type->forall = q->type->forall;
     
    407406                                src = 0;
    408407                                break;
    409 
    410408                          case TypeData::Basic:
    411409                                dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers );
     
    416414                                } // if
    417415                                break;
    418 
    419416                          default:
    420417                                switch ( src->kind ) {
     
    429426                                        src = 0;
    430427                                        break;
    431 
    432428                                  default:
    433429                                        if ( dst->forall ) {
     
    684680                } else {
    685681                        assert( newnode->type->aggInst->aggregate->kind == TypeData::Aggregate );
    686                         delete newnode->type->aggInst->aggregate->aggregate->members;
    687                         newnode->type->aggInst->aggregate->aggregate->members = 0;
     682                        delete newnode->type->aggInst->aggregate->aggregate->fields;
     683                        newnode->type->aggInst->aggregate->aggregate->fields = 0;
    688684                } // if
    689685        } // if
     
    710706                                } else {
    711707                                        assert( newType->aggInst->aggregate->kind == TypeData::Aggregate );
    712                                         delete newType->aggInst->aggregate->aggregate->members;
    713                                         newType->aggInst->aggregate->aggregate->members = 0;
     708                                        delete newType->aggInst->aggregate->aggregate->fields;
     709                                        newType->aggInst->aggregate->aggregate->fields = 0;
    714710                                } // if
    715711                        } // if
  • src/Parser/ParseNode.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun 24 14:09:51 2015
    13 // Update Count     : 81
     12// Last Modified On : Thu Jul  2 17:57:05 2015
     13// Update Count     : 84
    1414//
    1515
     
    287287        static DeclarationNode *newForall( DeclarationNode *);
    288288        static DeclarationNode *newFromTypedef( std::string *);
    289         static DeclarationNode *newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields );
     289        static DeclarationNode *newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields );
    290290        static DeclarationNode *newEnum( std::string *name, DeclarationNode *constants );
    291291        static DeclarationNode *newEnumConstant( std::string *name, ExpressionNode *constant );
  • src/Parser/TypeData.cc

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 18 22:06:23 2015
    13 // Update Count     : 21
     12// Last Modified On : Fri Jun 26 07:30:06 2015
     13// Update Count     : 26
    1414//
    1515
     
    5353                aggregate->params = 0;
    5454                aggregate->actuals = 0;
    55                 aggregate->members = 0;
     55                aggregate->fields = 0;
    5656                break;
    5757          case AggregateInst:
     
    119119                delete aggregate->params;
    120120                delete aggregate->actuals;
    121                 delete aggregate->members;
     121                delete aggregate->fields;
    122122                delete aggregate;
    123123                break;
     
    190190                newtype->aggregate->params = maybeClone( aggregate->params );
    191191                newtype->aggregate->actuals = maybeClone( aggregate->actuals );
    192                 newtype->aggregate->members = maybeClone( aggregate->members );
     192                newtype->aggregate->fields = maybeClone( aggregate->fields );
    193193                newtype->aggregate->name = aggregate->name;
    194194                newtype->aggregate->kind = aggregate->kind;
     
    237237        if ( forall ) {
    238238                os << "forall " << endl;
    239                 forall->printList( os, indent+4 );
     239                forall->printList( os, indent + 4 );
    240240        } // if
    241241
     
    277277                os << "function" << endl;
    278278                if ( function->params ) {
    279                         os << string( indent+2, ' ' ) << "with parameters " << endl;
    280                         function->params->printList( os, indent+4 );
     279                        os << string( indent + 2, ' ' ) << "with parameters " << endl;
     280                        function->params->printList( os, indent + 4 );
    281281                } else {
    282                         os << string( indent+2, ' ' ) << "with no parameters " << endl;
     282                        os << string( indent + 2, ' ' ) << "with no parameters " << endl;
    283283                } // if
    284284                if ( function->idList ) {
    285                         os << string( indent+2, ' ' ) << "with old-style identifier list " << endl;
    286                         function->idList->printList( os, indent+4 );
     285                        os << string( indent + 2, ' ' ) << "with old-style identifier list " << endl;
     286                        function->idList->printList( os, indent + 4 );
    287287                } // if
    288288                if ( function->oldDeclList ) {
    289                         os << string( indent+2, ' ' ) << "with old-style declaration list " << endl;
    290                         function->oldDeclList->printList( os, indent+4 );
    291                 } // if
    292                 os << string( indent+2, ' ' ) << "returning ";
     289                        os << string( indent + 2, ' ' ) << "with old-style declaration list " << endl;
     290                        function->oldDeclList->printList( os, indent + 4 );
     291                } // if
     292                os << string( indent + 2, ' ' ) << "returning ";
    293293                if ( base ) {
    294                         base->print( os, indent+4 );
     294                        base->print( os, indent + 4 );
    295295                } else {
    296296                        os << "nothing ";
     
    298298                os << endl;
    299299                if ( function->hasBody ) {
    300                         os << string( indent+2, ' ' ) << "with body " << endl;
     300                        os << string( indent + 2, ' ' ) << "with body " << endl;
    301301                } // if
    302302                if ( function->body ) {
    303                         function->body->printList( os, indent+2 );
     303                        function->body->printList( os, indent + 2 );
    304304                } // if
    305305                break;
     
    307307                os << DeclarationNode::aggregateName[ aggregate->kind ] << ' ' << aggregate->name << endl;
    308308                if ( aggregate->params ) {
    309                         os << string( indent+2, ' ' ) << "with type parameters " << endl;
    310                         aggregate->params->printList( os, indent+4 );
     309                        os << string( indent + 2, ' ' ) << "with type parameters " << endl;
     310                        aggregate->params->printList( os, indent + 4 );
    311311                } // if
    312312                if ( aggregate->actuals ) {
    313                         os << string( indent+2, ' ' ) << "instantiated with actual parameters " << endl;
    314                         aggregate->actuals->printList( os, indent+4 );
    315                 } // if
    316                 if ( aggregate->members ) {
    317                         os << string( indent+2, ' ' ) << "with members " << endl;
    318                         aggregate->members->printList( os, indent+4 );
     313                        os << string( indent + 2, ' ' ) << "instantiated with actual parameters " << endl;
     314                        aggregate->actuals->printList( os, indent + 4 );
     315                } // if
     316                if ( aggregate->fields ) {
     317                        os << string( indent + 2, ' ' ) << "with members " << endl;
     318                        aggregate->fields->printList( os, indent + 4 );
    319319///     } else {
    320 ///       os << string( indent+2, ' ' ) << "with no members " << endl;
     320///       os << string( indent + 2, ' ' ) << "with no members " << endl;
    321321                } // if
    322322                break;
     
    329329                } // if
    330330                if ( aggInst->params ) {
    331                         os << string( indent+2, ' ' ) << "with parameters " << endl;
    332                         aggInst->params->printList( os, indent+2 );
     331                        os << string( indent + 2, ' ' ) << "with parameters " << endl;
     332                        aggInst->params->printList( os, indent + 2 );
    333333                } // if
    334334                break;
     
    337337                if ( enumeration->constants ) {
    338338                        os << "with constants" << endl;
    339                         enumeration->constants->printList( os, indent+2 );
     339                        enumeration->constants->printList( os, indent + 2 );
    340340                } // if
    341341                break;
     
    354354                } // if
    355355                if ( symbolic->params ) {
    356                         os << endl << string( indent+2, ' ' ) << "with parameters" << endl;
     356                        os << endl << string( indent + 2, ' ' ) << "with parameters" << endl;
    357357                        symbolic->params->printList( os, indent + 2 );
    358358                } // if
    359359                if ( symbolic->assertions ) {
    360                         os << endl << string( indent+2, ' ' ) << "with assertions" << endl;
     360                        os << endl << string( indent + 2, ' ' ) << "with assertions" << endl;
    361361                        symbolic->assertions->printList( os, indent + 4 );
    362                         os << string( indent+2, ' ' );
     362                        os << string( indent + 2, ' ' );
    363363                } // if
    364364                if ( base ) {
     
    370370                os << DeclarationNode::typeClassName[ variable->tyClass ] << " variable ";
    371371                if ( variable->assertions ) {
    372                         os << endl << string( indent+2, ' ' ) << "with assertions" << endl;
     372                        os << endl << string( indent + 2, ' ' ) << "with assertions" << endl;
    373373                        variable->assertions->printList( os, indent + 4 );
    374                         os << string( indent+2, ' ' );
     374                        os << string( indent + 2, ' ' );
    375375                } // if
    376376                break;
     
    405405        switch ( kind ) {
    406406          case Aggregate:
    407                 if ( ! toplevel && aggregate->members ) {
     407                if ( ! toplevel && aggregate->fields ) {
    408408                        ret = clone();
    409409                        ret->qualifiers.clear();
     
    515515                assert( false );
    516516        } // switch
    517 
    518517        return 0;
    519518}
     
    815814        } // switch
    816815        buildList( aggregate->params, at->get_parameters() );
    817         buildList( aggregate->members, at->get_members() );
     816        buildList( aggregate->fields, at->get_members() );
    818817
    819818        return at;
  • src/Parser/TypeData.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 18 21:03:18 2015
    13 // Update Count     : 7
     12// Last Modified On : Fri Jun 26 23:39:03 2015
     13// Update Count     : 16
    1414//
    1515
     
    4747                std::string name;
    4848                DeclarationNode *params;
    49                 ExpressionNode *actuals;                                                // holds actual parameters later applied to AggInst
    50                 DeclarationNode *members;
     49                ExpressionNode  *actuals;                                               // holds actual parameters later applied to AggInst
     50                DeclarationNode *fields;
    5151        };
    5252
     
    7878        struct Symbolic_t {
    7979                std::string name;
    80                 bool isTypedef;
     80                bool isTypedef;                                                                 // false => TYPEGENname, true => TYPEDEFname
    8181                DeclarationNode *params;
    8282                ExpressionNode *actuals;
  • src/Parser/TypedefTable.cc

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Jun 21 11:46:15 2015
    13 // Update Count     : 7
     12// Last Modified On : Fri Jun 26 07:30:16 2015
     13// Update Count     : 19
    1414//
    1515
     
    2222#if 0
    2323#include <iostream>
    24 #define debugPrint(x ) cerr << x
     24#define debugPrint( x ) cerr << x
    2525#else
    2626#define debugPrint( x )
     
    2828
    2929TypedefTable::TypedefTable() : currentScope( 0 ) {}
     30
     31void TypedefTable::changeKind( const string &identifier, kind_t kind ) {
     32        tableType::iterator id_pos = table.find( identifier );
     33        if ( id_pos == table.end() ) {
     34                return;
     35        } else {
     36                (*((*id_pos ).second.begin())).kind = kind;
     37                return;
     38        } // if
     39}
    3040
    3141bool TypedefTable::isKind( const string &identifier, kind_t kind ) const {
     
    5565                contexts[currentContext].push_back( entry );
    5666        } else {
    57                 debugPrint( "Adding " << identifier << " as type " << kind << " scope " << scope << " from scope " << currentScope << endl );
     67                debugPrint( "Adding " << identifier << " as kind " << kind << " scope " << scope << " from scope " << currentScope << endl );
    5868                Entry newEntry = { scope, kind };
    5969                tableType::iterator curPos = table.find( identifier );
     
    122132        debugPrint( "Leaving scope " << currentScope << endl );
    123133        for ( tableType::iterator i = table.begin(); i != table.end(); ) {
    124                 list<Entry> &declList = (*i ).second;
     134                list<Entry> &declList = (*i).second;
    125135                while ( ! declList.empty() && declList.front().scope == currentScope ) {
    126136                        declList.pop_front();
    127137                }
    128                 if ( declList.empty() ) {                       // standard idom for erasing during traversal
     138                if ( declList.empty() ) {                                               // standard idom for erasing during traversal
    129139                        table.erase( i++ );
    130                 } else ++i;
     140                } else
     141                        ++i;
    131142        } // for
    132143        currentScope -= 1;
    133         for ( deferListType::iterator i = deferListStack.top().begin(); i != deferListStack.top().end(); i++) {
     144        for ( deferListType::iterator i = deferListStack.top().begin(); i != deferListStack.top().end(); i++ ) {
    134145                addToCurrentScope( i->identifier, i->kind );
    135146        } // for
     
    151162        for ( tableType::const_iterator i = table.begin(); i != table.end(); i++) {
    152163                debugPrint( (*i ).first << ": " );
    153                 list<Entry> declList = (*i ).second;
     164                list<Entry> declList = (*i).second;
    154165                for ( list<Entry>::const_iterator j = declList.begin(); j != declList.end(); j++ ) {
    155                         debugPrint( "(" << (*j ).scope << " " << (*j).kind << ") " );
     166                        debugPrint( "(" << (*j).scope << " " << (*j).kind << ") " );
    156167                }
    157168                debugPrint( endl );
  • src/Parser/TypedefTable.h

    re0ff3e6 r413f7f8  
    1010// Created On       : Sat May 16 15:24:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Jun 18 21:03:17 2015
    13 // Update Count     : 7
     12// Last Modified On : Thu Jun 25 22:52:15 2015
     13// Update Count     : 11
    1414//
    1515
     
    5757        bool isTypedef( const std::string &identifier ) const;
    5858        bool isTypegen( const std::string &identifier ) const;
     59
     60        void changeKind( const std::string &identifier, kind_t kind );
    5961       
    6062        // "addToCurrentScope" adds the identifier/type pair to the current scope. This does less than you think it does,
    6163        // since each declaration is within its own scope.  Mostly useful for type parameters.
    6264        void addToCurrentScope( const std::string &identifier, kind_t kind );
    63         void addToCurrentScope( kind_t kind );          // use nextIdentifiers.top()
     65        void addToCurrentScope( kind_t kind );                  // use nextIdentifiers.top()
    6466
    6567        // "addToEnclosingScope" adds the identifier/type pair to the scope that encloses the current one.  This is the
  • src/Parser/parser.cc

    re0ff3e6 r413f7f8  
    568568
    569569/* YYFINAL -- State number of the termination state.  */
    570 #define YYFINAL  240
     570#define YYFINAL  246
    571571/* YYLAST -- Last index in YYTABLE.  */
    572 #define YYLAST   12266
     572#define YYLAST   11363
    573573
    574574/* YYNTOKENS -- Number of terminals.  */
    575575#define YYNTOKENS  125
    576576/* YYNNTS -- Number of nonterminals.  */
    577 #define YYNNTS  235
     577#define YYNNTS  236
    578578/* YYNRULES -- Number of rules.  */
    579 #define YYNRULES  735
     579#define YYNRULES  732
    580580/* YYNRULES -- Number of states.  */
    581 #define YYNSTATES  1555
     581#define YYNSTATES  1505
    582582
    583583/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     
    644644     270,   274,   278,   282,   286,   288,   292,   296,   298,   302,
    645645     304,   308,   310,   314,   316,   320,   322,   326,   328,   334,
    646      339,   345,   347,   349,   353,   357,   360,   361,   363,   368,
    647      374,   381,   389,   391,   395,   397,   399,   401,   403,   405,
    648      407,   409,   411,   413,   415,   417,   421,   422,   424,   426,
    649      428,   430,   432,   434,   436,   438,   440,   445,   448,   456,
    650      458,   462,   464,   467,   469,   472,   474,   477,   480,   486,
    651      494,   500,   510,   516,   526,   528,   532,   534,   536,   540,
    652      544,   547,   549,   552,   555,   556,   558,   561,   565,   566,
    653      568,   571,   575,   579,   584,   585,   587,   589,   592,   598,
    654      606,   613,   620,   625,   629,   634,   637,   641,   644,   648,
    655      652,   656,   659,   663,   667,   672,   674,   680,   687,   697,
    656      708,   711,   713,   716,   719,   722,   724,   731,   740,   751,
    657      764,   765,   767,   769,   773,   778,   780,   784,   786,   788,
    658      790,   794,   796,   798,   800,   804,   805,   807,   811,   816,
    659      818,   822,   824,   826,   830,   834,   838,   842,   846,   849,
    660      853,   860,   864,   868,   873,   875,   878,   881,   885,   891,
    661      902,   913,   921,   929,   935,   945,   948,   951,   957,   961,
    662      967,   972,   976,   981,   986,   994,   998,  1002,  1006,  1010,
    663     1015,  1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,
    664     1039,  1041,  1043,  1046,  1048,  1050,  1052,  1054,  1056,  1058,
    665     1060,  1061,  1067,  1069,  1072,  1076,  1078,  1081,  1083,  1085,
    666     1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,  1103,  1105,
    667     1107,  1109,  1111,  1113,  1115,  1117,  1119,  1121,  1123,  1125,
    668     1128,  1131,  1135,  1139,  1141,  1145,  1147,  1150,  1153,  1156,
    669     1161,  1166,  1171,  1176,  1178,  1181,  1184,  1188,  1190,  1193,
    670     1196,  1198,  1201,  1204,  1208,  1210,  1213,  1216,  1218,  1220,
    671     1225,  1228,  1234,  1244,  1252,  1263,  1276,  1282,  1290,  1304,
    672     1307,  1310,  1312,  1315,  1318,  1322,  1325,  1329,  1331,  1334,
    673     1338,  1341,  1344,  1349,  1350,  1352,  1355,  1358,  1360,  1361,
    674     1363,  1366,  1369,  1375,  1382,  1385,  1388,  1393,  1394,  1397,
    675     1398,  1400,  1402,  1404,  1410,  1416,  1422,  1424,  1430,  1436,
    676     1446,  1448,  1454,  1455,  1457,  1459,  1465,  1467,  1469,  1475,
    677     1481,  1483,  1487,  1491,  1496,  1498,  1500,  1502,  1504,  1507,
    678     1509,  1513,  1517,  1519,  1522,  1524,  1528,  1530,  1532,  1534,
    679     1536,  1538,  1540,  1542,  1544,  1546,  1548,  1551,  1553,  1555,
    680     1557,  1560,  1561,  1564,  1566,  1571,  1573,  1576,  1580,  1585,
    681     1588,  1591,  1593,  1596,  1599,  1605,  1611,  1619,  1626,  1628,
    682     1631,  1634,  1638,  1643,  1649,  1652,  1655,  1660,  1661,  1666,
    683     1669,  1671,  1673,  1675,  1676,  1679,  1685,  1691,  1705,  1707,
    684     1709,  1713,  1717,  1720,  1724,  1728,  1731,  1736,  1738,  1745,
    685     1755,  1756,  1768,  1770,  1774,  1778,  1782,  1784,  1786,  1792,
    686     1795,  1801,  1802,  1804,  1806,  1810,  1811,  1813,  1815,  1817,
    687     1819,  1820,  1827,  1830,  1832,  1835,  1840,  1843,  1847,  1851,
    688     1855,  1860,  1866,  1872,  1878,  1885,  1887,  1889,  1891,  1895,
    689     1896,  1902,  1903,  1905,  1907,  1910,  1917,  1919,  1923,  1924,
    690     1926,  1931,  1933,  1935,  1937,  1939,  1942,  1944,  1947,  1950,
    691     1952,  1956,  1959,  1963,  1967,  1970,  1975,  1980,  1984,  1993,
    692     1997,  2000,  2002,  2005,  2012,  2021,  2025,  2028,  2032,  2036,
    693     2041,  2046,  2050,  2052,  2054,  2056,  2061,  2068,  2072,  2075,
    694     2079,  2083,  2088,  2093,  2097,  2100,  2102,  2105,  2108,  2110,
    695     2114,  2117,  2121,  2125,  2128,  2133,  2138,  2142,  2149,  2158,
    696     2162,  2165,  2167,  2170,  2173,  2176,  2180,  2184,  2187,  2192,
    697     2197,  2201,  2208,  2217,  2221,  2224,  2226,  2229,  2232,  2234,
    698     2237,  2241,  2245,  2248,  2253,  2260,  2269,  2271,  2274,  2277,
    699     2279,  2282,  2285,  2289,  2293,  2295,  2300,  2305,  2309,  2315,
    700     2324,  2328,  2333,  2339,  2341,  2347,  2353,  2360,  2367,  2369,
    701     2372,  2375,  2377,  2380,  2383,  2387,  2391,  2393,  2398,  2403,
    702     2407,  2413,  2422,  2426,  2428,  2431,  2433,  2438,  2445,  2451,
    703     2458,  2466,  2474,  2476,  2479,  2482,  2484,  2487,  2490,  2494,
    704     2498,  2500,  2505,  2510,  2514,  2523,  2527,  2529,  2531,  2534,
    705     2536,  2538,  2541,  2545,  2548,  2552,  2555,  2559,  2565,  2568,
    706     2575,  2579,  2582,  2588,  2591,  2598,  2602,  2605,  2612,  2619,
    707     2626,  2634,  2636,  2639,  2641,  2643,  2645,  2648,  2652,  2655,
    708     2659,  2662,  2666,  2672,  2679,  2682,  2688,  2695,  2698,  2704,
    709     2712,  2719,  2726,  2727,  2729,  2730
     646     339,   345,   347,   349,   353,   357,   360,   361,   363,   366,
     647     372,   379,   387,   389,   393,   395,   397,   399,   401,   403,
     648     405,   407,   409,   411,   413,   415,   419,   420,   422,   424,
     649     426,   428,   430,   432,   434,   436,   438,   443,   446,   454,
     650     456,   460,   462,   465,   467,   470,   472,   475,   478,   484,
     651     492,   498,   508,   514,   524,   526,   530,   532,   534,   538,
     652     542,   545,   547,   550,   553,   554,   556,   559,   563,   564,
     653     566,   569,   573,   577,   582,   583,   585,   587,   590,   596,
     654     604,   611,   618,   623,   627,   632,   635,   639,   642,   646,
     655     650,   654,   657,   661,   665,   670,   672,   678,   685,   695,
     656     706,   709,   711,   714,   717,   720,   722,   729,   738,   749,
     657     762,   763,   765,   767,   771,   776,   778,   782,   784,   786,
     658     788,   792,   794,   796,   798,   802,   803,   805,   809,   814,
     659     816,   820,   822,   824,   828,   832,   836,   840,   844,   847,
     660     851,   858,   862,   866,   871,   873,   876,   879,   883,   889,
     661     898,   906,   914,   920,   930,   933,   936,   942,   946,   952,
     662     957,   961,   966,   971,   979,   983,   987,   991,   995,  1000,
     663    1007,  1009,  1011,  1013,  1015,  1017,  1019,  1021,  1023,  1024,
     664    1026,  1028,  1031,  1033,  1035,  1037,  1039,  1041,  1043,  1045,
     665    1046,  1052,  1054,  1057,  1061,  1063,  1066,  1068,  1070,  1072,
     666    1074,  1076,  1078,  1080,  1082,  1084,  1086,  1088,  1090,  1092,
     667    1094,  1096,  1098,  1100,  1102,  1104,  1106,  1108,  1110,  1113,
     668    1116,  1120,  1124,  1126,  1130,  1132,  1135,  1138,  1141,  1146,
     669    1151,  1156,  1161,  1163,  1166,  1169,  1173,  1175,  1178,  1181,
     670    1183,  1186,  1189,  1193,  1195,  1198,  1201,  1203,  1205,  1210,
     671    1213,  1219,  1227,  1230,  1233,  1236,  1238,  1241,  1244,  1248,
     672    1251,  1255,  1257,  1260,  1264,  1267,  1270,  1275,  1276,  1278,
     673    1281,  1284,  1286,  1287,  1289,  1292,  1295,  1301,  1308,  1311,
     674    1314,  1319,  1320,  1323,  1324,  1326,  1328,  1330,  1336,  1342,
     675    1348,  1350,  1356,  1362,  1372,  1374,  1380,  1381,  1383,  1385,
     676    1391,  1393,  1395,  1401,  1407,  1409,  1413,  1417,  1422,  1424,
     677    1426,  1428,  1430,  1433,  1435,  1439,  1443,  1445,  1448,  1450,
     678    1454,  1456,  1458,  1460,  1462,  1464,  1466,  1468,  1470,  1472,
     679    1474,  1476,  1479,  1481,  1483,  1485,  1488,  1489,  1492,  1494,
     680    1499,  1501,  1504,  1508,  1513,  1516,  1519,  1521,  1524,  1527,
     681    1533,  1539,  1547,  1554,  1556,  1559,  1562,  1566,  1568,  1571,
     682    1574,  1579,  1582,  1587,  1588,  1593,  1596,  1598,  1600,  1602,
     683    1603,  1606,  1612,  1618,  1632,  1634,  1636,  1640,  1644,  1647,
     684    1651,  1655,  1658,  1663,  1665,  1672,  1682,  1683,  1695,  1697,
     685    1701,  1705,  1709,  1711,  1713,  1719,  1722,  1728,  1729,  1731,
     686    1733,  1737,  1738,  1740,  1742,  1744,  1746,  1747,  1754,  1757,
     687    1759,  1762,  1767,  1770,  1774,  1778,  1782,  1787,  1793,  1799,
     688    1805,  1812,  1814,  1816,  1818,  1822,  1823,  1829,  1830,  1832,
     689    1834,  1837,  1844,  1846,  1850,  1851,  1853,  1858,  1860,  1862,
     690    1864,  1866,  1869,  1871,  1874,  1877,  1879,  1883,  1886,  1890,
     691    1894,  1897,  1902,  1907,  1911,  1920,  1924,  1927,  1929,  1932,
     692    1939,  1948,  1952,  1955,  1959,  1963,  1968,  1973,  1977,  1979,
     693    1981,  1983,  1988,  1995,  1999,  2002,  2006,  2010,  2015,  2020,
     694    2024,  2027,  2029,  2032,  2035,  2037,  2041,  2044,  2048,  2052,
     695    2055,  2060,  2065,  2069,  2076,  2085,  2089,  2092,  2094,  2097,
     696    2100,  2103,  2107,  2111,  2114,  2119,  2124,  2128,  2135,  2144,
     697    2148,  2151,  2153,  2156,  2159,  2161,  2163,  2166,  2170,  2174,
     698    2177,  2182,  2189,  2198,  2200,  2203,  2206,  2208,  2211,  2214,
     699    2218,  2222,  2224,  2229,  2234,  2238,  2244,  2253,  2257,  2260,
     700    2264,  2266,  2272,  2278,  2285,  2292,  2294,  2297,  2300,  2302,
     701    2305,  2308,  2312,  2316,  2318,  2323,  2328,  2332,  2338,  2347,
     702    2351,  2353,  2356,  2358,  2361,  2368,  2374,  2381,  2389,  2397,
     703    2399,  2402,  2405,  2407,  2410,  2413,  2417,  2421,  2423,  2428,
     704    2433,  2437,  2446,  2450,  2452,  2454,  2457,  2459,  2461,  2464,
     705    2468,  2471,  2475,  2478,  2482,  2486,  2489,  2494,  2498,  2501,
     706    2505,  2508,  2513,  2517,  2520,  2527,  2534,  2541,  2549,  2551,
     707    2554,  2556,  2558,  2560,  2563,  2567,  2570,  2574,  2577,  2581,
     708    2585,  2590,  2593,  2597,  2602,  2605,  2611,  2617,  2624,  2631,
     709    2632,  2634,  2635
    710710};
    711711
     
    713713static const yytype_int16 yyrhs[] =
    714714{
    715      288,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     715     289,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
    716716      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
    717717      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
     
    722722     138,   127,   104,    -1,   135,    78,   131,    -1,   135,    78,
    723723     103,   126,   138,   127,   104,    -1,   135,    79,    -1,   135,
    724       80,    -1,   101,   262,   102,   106,   266,   358,   107,    -1,
     724      80,    -1,   101,   262,   102,   106,   266,   359,   107,    -1,
    725725     137,    -1,   136,   108,   137,    -1,    -1,   155,    -1,   131,
    726726     109,   155,    -1,   103,   126,   155,   127,   104,   109,   155,
     
    748748     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
    749749     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
    750      123,   155,    -1,   140,   159,   155,    -1,   157,   359,    -1,
    751       -1,   155,    -1,   103,   126,   127,   104,    -1,   103,   126,
    752      155,   127,   104,    -1,   103,   126,   108,   158,   127,   104,
    753       -1,   103,   126,   155,   108,   158,   127,   104,    -1,   156,
    754       -1,   158,   108,   156,    -1,    90,    -1,    91,    -1,    92,
    755       -1,    93,    -1,    94,    -1,    95,    -1,    96,    -1,    97,
    756       -1,    98,    -1,    99,    -1,   155,    -1,   160,   108,   155,
    757       -1,    -1,   160,    -1,   163,    -1,   164,    -1,   168,    -1,
    758      169,    -1,   181,    -1,   183,    -1,   184,    -1,   189,    -1,
    759      131,   109,   298,   162,    -1,   106,   107,    -1,   106,   126,
    760      126,   198,   165,   127,   107,    -1,   166,    -1,   165,   126,
    761      166,    -1,   201,    -1,    38,   201,    -1,   294,    -1,   162,
    762      127,    -1,   162,    -1,   167,   162,    -1,   161,   124,    -1,
    763       39,   101,   160,   102,   162,    -1,    39,   101,   160,   102,
    764      162,    40,   162,    -1,    41,   101,   160,   102,   174,    -1,
    765       41,   101,   160,   102,   106,   126,   194,   175,   107,    -1,
    766       51,   101,   160,   102,   174,    -1,    51,   101,   160,   102,
    767      106,   126,   194,   177,   107,    -1,   154,    -1,   154,    89,
    768      154,    -1,   296,    -1,   170,    -1,   171,   108,   170,    -1,
    769       42,   171,   109,    -1,    43,   109,    -1,   172,    -1,   173,
    770      172,    -1,   173,   162,    -1,    -1,   176,    -1,   173,   167,
    771       -1,   176,   173,   167,    -1,    -1,   178,    -1,   173,   180,
    772       -1,   173,   167,   179,    -1,   178,   173,   180,    -1,   178,
    773      173,   167,   179,    -1,    -1,   180,    -1,    52,    -1,    52,
    774      124,    -1,    45,   101,   160,   102,   162,    -1,    44,   162,
    775       45,   101,   160,   102,   124,    -1,    46,   101,   126,   182,
    776      102,   162,    -1,   161,   127,   124,   161,   124,   161,    -1,
    777      201,   161,   124,   161,    -1,    49,   131,   124,    -1,    49,
    778      111,   160,   124,    -1,    48,   124,    -1,    48,   131,   124,
    779       -1,    47,   124,    -1,    47,   131,   124,    -1,    50,   161,
    780      124,    -1,    56,   155,   124,    -1,    56,   124,    -1,    53,
    781      164,   185,    -1,    53,   164,   187,    -1,    53,   164,   185,
    782      187,    -1,   186,    -1,    54,   101,    89,   102,   164,    -1,
    783      186,    54,   101,    89,   102,   164,    -1,    54,   101,   126,
    784      126,   188,   127,   102,   164,   127,    -1,   186,    54,   101,
    785      126,   126,   188,   127,   102,   164,   127,    -1,    55,   164,
    786       -1,   214,    -1,   214,   295,    -1,   214,   343,    -1,   352,
    787      131,    -1,   352,    -1,    57,   215,   101,   154,   102,   124,
    788       -1,    57,   215,   101,   154,   109,   190,   102,   124,    -1,
    789       57,   215,   101,   154,   109,   190,   109,   190,   102,   124,
    790       -1,    57,   215,   101,   154,   109,   190,   109,   190,   109,
    791      193,   102,   124,    -1,    -1,   191,    -1,   192,    -1,   191,
    792      108,   192,    -1,    75,   101,   154,   102,    -1,    75,    -1,
    793      193,   108,    75,    -1,   127,    -1,   195,    -1,   201,    -1,
    794      195,   126,   201,    -1,   127,    -1,   197,    -1,   211,    -1,
    795      197,   126,   211,    -1,    -1,   199,    -1,    28,   200,   124,
    796       -1,   199,    28,   200,   124,    -1,   261,    -1,   200,   108,
    797      261,    -1,   202,    -1,   211,    -1,   203,   127,   124,    -1,
    798      208,   127,   124,    -1,   205,   127,   124,    -1,   279,   127,
    799      124,    -1,   282,   127,   124,    -1,   204,   264,    -1,   220,
    800      204,   264,    -1,   203,   127,   108,   126,   259,   264,    -1,
    801      353,   259,   297,    -1,   356,   259,   297,    -1,   216,   356,
    802      259,   297,    -1,   206,    -1,   216,   206,    -1,   220,   206,
    803       -1,   220,   216,   206,    -1,   205,   127,   108,   126,   259,
    804       -1,   103,   126,   127,   104,   129,   101,   126,   247,   127,
    805      102,    -1,   103,   126,   127,   104,    67,   101,   126,   247,
    806      127,   102,    -1,   356,   259,   101,   126,   247,   127,   102,
    807       -1,   207,   259,   101,   126,   247,   127,   102,    -1,   103,
    808      126,   249,   127,   104,    -1,   103,   126,   249,   127,   108,
    809      126,   250,   127,   104,    -1,     3,   204,    -1,     3,   206,
    810       -1,   208,   127,   108,   126,   131,    -1,     3,   214,   295,
    811       -1,   209,   127,   108,   126,   295,    -1,   216,     3,   214,
    812      295,    -1,   214,     3,   295,    -1,   214,     3,   216,   295,
    813       -1,     3,   131,   123,   155,    -1,   210,   127,   108,   126,
    814      131,   123,   155,    -1,   212,   127,   124,    -1,   209,   127,
    815      124,    -1,   210,   127,   124,    -1,   229,   127,   124,    -1,
    816      213,   295,   297,   264,    -1,   212,   108,   298,   295,   297,
    817      264,    -1,   225,    -1,   229,    -1,   231,    -1,   270,    -1,
    818      226,    -1,   230,    -1,   232,    -1,   271,    -1,    -1,   216,
    819       -1,   217,    -1,   216,   217,    -1,   218,    -1,   300,    -1,
    820       10,    -1,    12,    -1,    11,    -1,    14,    -1,    60,    -1,
    821       -1,    13,   101,   219,   272,   102,    -1,   221,    -1,   216,
    822      221,    -1,   220,   216,   221,    -1,   222,    -1,   221,   222,
    823       -1,   223,    -1,     5,    -1,     7,    -1,     4,    -1,     6,
    824       -1,     8,    -1,     9,    -1,    62,    -1,    64,    -1,    16,
    825       -1,    21,    -1,    20,    -1,    18,    -1,    19,    -1,    17,
    826       -1,    22,    -1,    23,    -1,    15,    -1,    24,    -1,    25,
    827       -1,    26,    -1,   226,    -1,   220,   226,    -1,   225,   222,
    828       -1,   225,   222,   216,    -1,   225,   222,   226,    -1,   227,
    829       -1,   215,   228,   215,    -1,   224,    -1,   216,   224,    -1,
    830      227,   217,    -1,   227,   224,    -1,    27,   101,   263,   102,
    831       -1,    27,   101,   160,   102,    -1,    71,   101,   263,   102,
    832       -1,    71,   101,   160,   102,    -1,   230,    -1,   220,   230,
    833       -1,   229,   222,    -1,   229,   222,   216,    -1,   233,    -1,
    834      216,   233,    -1,   230,   217,    -1,   232,    -1,   220,   232,
    835       -1,   231,   222,    -1,   231,   222,   216,    -1,    67,    -1,
    836      216,    67,    -1,   232,   217,    -1,   234,    -1,   244,    -1,
    837      235,   106,   236,   107,    -1,   235,   261,    -1,   235,   261,
    838      106,   236,   107,    -1,   235,   101,   126,   272,   127,   102,
    839      106,   236,   107,    -1,   235,   101,   126,   272,   127,   102,
    840      261,    -1,   235,   101,   126,   272,   127,   102,   261,   106,
    841      236,   107,    -1,   235,   101,   126,   272,   127,   102,   101,
    842      278,   102,   106,   236,   107,    -1,   235,    68,   101,   278,
    843      102,    -1,   235,   101,   126,   278,   127,   102,   261,    -1,
    844      235,   101,   126,   272,   127,   102,   101,   278,   102,   261,
    845      106,   236,   107,    -1,    30,   298,    -1,    31,   298,    -1,
    846      237,    -1,   236,   237,    -1,   238,   124,    -1,    38,   238,
    847      124,    -1,   239,   124,    -1,    38,   239,   124,    -1,   352,
    848       -1,   352,   261,    -1,   238,   108,   261,    -1,   238,   108,
    849       -1,   214,   240,    -1,   239,   108,   298,   240,    -1,    -1,
    850      242,    -1,   304,   241,    -1,   317,   241,    -1,   343,    -1,
    851       -1,   242,    -1,   109,   154,    -1,    29,   298,    -1,   243,
    852      106,   245,   358,   107,    -1,   243,   261,   106,   245,   358,
    853      107,    -1,   243,   261,    -1,   261,   246,    -1,   245,   108,
    854      261,   246,    -1,    -1,   123,   154,    -1,    -1,   248,    -1,
    855      250,    -1,   249,    -1,   249,   127,   108,   126,   250,    -1,
    856      250,   127,   108,   126,    89,    -1,   249,   127,   108,   126,
    857       89,    -1,   254,    -1,   250,   127,   108,   126,   254,    -1,
    858      249,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
    859      250,   127,   108,   126,   254,    -1,   255,    -1,   250,   127,
    860      108,   126,   255,    -1,    -1,   252,    -1,   253,    -1,   253,
    861      127,   108,   126,    89,    -1,   257,    -1,   256,    -1,   253,
    862      127,   108,   126,   257,    -1,   253,   127,   108,   126,   256,
    863       -1,   256,    -1,   348,   259,   359,    -1,   356,   259,   359,
    864       -1,   216,   356,   259,   359,    -1,   206,    -1,   257,    -1,
    865      348,    -1,   356,    -1,   216,   356,    -1,   357,    -1,   213,
    866      322,   359,    -1,   213,   326,   359,    -1,   213,    -1,   213,
    867      337,    -1,   131,    -1,   258,   108,   131,    -1,   129,    -1,
    868       67,    -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,
    869      131,    -1,    67,    -1,   352,    -1,   214,    -1,   214,   343,
    870       -1,   352,    -1,   357,    -1,   214,    -1,   214,   331,    -1,
    871       -1,   123,   265,    -1,   155,    -1,   106,   266,   358,   107,
    872       -1,   265,    -1,   267,   265,    -1,   266,   108,   265,    -1,
    873      266,   108,   267,   265,    -1,   268,   109,    -1,   261,   109,
    874       -1,   269,    -1,   268,   269,    -1,   105,   261,    -1,   103,
    875      126,   155,   127,   104,    -1,   103,   126,   296,   127,   104,
    876       -1,   103,   126,   154,    89,   154,   127,   104,    -1,   105,
    877      103,   126,   138,   127,   104,    -1,   271,    -1,   220,   271,
    878       -1,   270,   222,    -1,   270,   222,   216,    -1,    68,   101,
    879      278,   102,    -1,   216,    68,   101,   278,   102,    -1,   271,
    880      217,    -1,   273,   359,    -1,   272,   108,   273,   359,    -1,
    881       -1,   275,   261,   274,   276,    -1,   214,   322,    -1,    32,
    882       -1,    34,    -1,    33,    -1,    -1,   276,   277,    -1,   121,
    883      261,   101,   278,   102,    -1,   121,   106,   126,   284,   107,
    884       -1,   121,   101,   126,   272,   127,   102,   106,   126,   284,
    885      107,   101,   278,   102,    -1,   263,    -1,   155,    -1,   278,
    886      108,   263,    -1,   278,   108,   155,    -1,    32,   280,    -1,
    887      221,    32,   280,    -1,   279,   108,   280,    -1,   281,   276,
    888       -1,   281,   276,   123,   263,    -1,   261,    -1,   260,   101,
    889      126,   272,   127,   102,    -1,    35,   261,   101,   126,   272,
    890      127,   102,   106,   107,    -1,    -1,    35,   261,   101,   126,
    891      272,   127,   102,   106,   283,   284,   107,    -1,   285,    -1,
    892      284,   126,   285,    -1,   286,   127,   124,    -1,   287,   127,
    893      124,    -1,   204,    -1,   206,    -1,   286,   127,   108,   126,
    894      259,    -1,   214,   295,    -1,   287,   127,   108,   126,   295,
    895       -1,    -1,   289,    -1,   291,    -1,   289,   126,   291,    -1,
    896       -1,   289,    -1,   201,    -1,   293,    -1,   189,    -1,    -1,
    897        5,    75,   292,   106,   290,   107,    -1,    38,   291,    -1,
    898      294,    -1,   309,   164,    -1,   313,   126,   196,   164,    -1,
    899      205,   164,    -1,   213,   309,   164,    -1,   216,   309,   164,
    900       -1,   220,   309,   164,    -1,   220,   216,   309,   164,    -1,
    901      213,   313,   126,   196,   164,    -1,   216,   313,   126,   196,
    902      164,    -1,   220,   313,   126,   196,   164,    -1,   220,   216,
    903      313,   126,   196,   164,    -1,   304,    -1,   309,    -1,   317,
    904       -1,   154,   115,   154,    -1,    -1,    57,   101,   133,   102,
    905      298,    -1,    -1,   299,    -1,   300,    -1,   299,   300,    -1,
    906       37,   101,   101,   301,   102,   102,    -1,   302,    -1,   301,
    907      108,   302,    -1,    -1,   303,    -1,   303,   101,   161,   102,
    908       -1,   259,    -1,   223,    -1,   224,    -1,   217,    -1,   305,
    909      298,    -1,   306,    -1,   307,   298,    -1,   308,   298,    -1,
    910      129,    -1,   101,   305,   102,    -1,   111,   304,    -1,   111,
    911      216,   304,    -1,   101,   306,   102,    -1,   305,   335,    -1,
    912      101,   306,   102,   335,    -1,   101,   307,   102,   336,    -1,
    913      101,   307,   102,    -1,   101,   306,   102,   101,   126,   251,
    914      127,   102,    -1,   101,   308,   102,    -1,   310,   298,    -1,
    915      311,    -1,   312,   298,    -1,   305,   101,   126,   251,   127,
    916      102,    -1,   101,   311,   102,   101,   126,   251,   127,   102,
    917       -1,   101,   310,   102,    -1,   111,   309,    -1,   111,   216,
    918      309,    -1,   101,   311,   102,    -1,   101,   311,   102,   335,
    919       -1,   101,   312,   102,   336,    -1,   101,   312,   102,    -1,
    920      314,    -1,   315,    -1,   316,    -1,   305,   101,   258,   102,
    921       -1,   101,   315,   102,   101,   258,   102,    -1,   101,   314,
    922      102,    -1,   111,   313,    -1,   111,   216,   313,    -1,   101,
    923      315,   102,    -1,   101,   315,   102,   335,    -1,   101,   316,
    924      102,   336,    -1,   101,   316,   102,    -1,   318,   298,    -1,
    925      319,    -1,   320,   298,    -1,   321,   298,    -1,    67,    -1,
    926      101,   318,   102,    -1,   111,   317,    -1,   111,   216,   317,
    927       -1,   101,   319,   102,    -1,   318,   335,    -1,   101,   319,
    928      102,   335,    -1,   101,   320,   102,   336,    -1,   101,   320,
    929      102,    -1,   318,   101,   126,   251,   127,   102,    -1,   101,
    930      319,   102,   101,   126,   251,   127,   102,    -1,   101,   321,
    931      102,    -1,   305,   298,    -1,   323,    -1,   324,   298,    -1,
    932      325,   298,    -1,   111,   322,    -1,   111,   216,   322,    -1,
    933      101,   323,   102,    -1,   305,   341,    -1,   101,   323,   102,
    934      335,    -1,   101,   324,   102,   336,    -1,   101,   324,   102,
    935       -1,   305,   101,   126,   251,   127,   102,    -1,   101,   323,
    936      102,   101,   126,   251,   127,   102,    -1,   101,   325,   102,
    937       -1,   327,   298,    -1,   328,    -1,   329,   298,    -1,   330,
    938      298,    -1,    67,    -1,   111,   326,    -1,   111,   216,   326,
    939       -1,   101,   328,   102,    -1,   327,   341,    -1,   101,   328,
    940      102,   341,    -1,   327,   101,   126,   251,   127,   102,    -1,
    941      101,   328,   102,   101,   126,   251,   127,   102,    -1,   332,
    942       -1,   333,   298,    -1,   334,   298,    -1,   111,    -1,   111,
    943      216,    -1,   111,   331,    -1,   111,   216,   331,    -1,   101,
    944      332,   102,    -1,   335,    -1,   101,   332,   102,   335,    -1,
    945      101,   333,   102,   336,    -1,   101,   333,   102,    -1,   101,
    946      126,   251,   127,   102,    -1,   101,   332,   102,   101,   126,
    947      251,   127,   102,    -1,   101,   334,   102,    -1,   103,   126,
    948      127,   104,    -1,   103,   126,   127,   104,   336,    -1,   336,
    949       -1,   103,   126,   155,   127,   104,    -1,   103,   126,   111,
    950      127,   104,    -1,   336,   103,   126,   155,   127,   104,    -1,
    951      336,   103,   126,   111,   127,   104,    -1,   338,    -1,   339,
    952      298,    -1,   340,   298,    -1,   111,    -1,   111,   216,    -1,
    953      111,   337,    -1,   111,   216,   337,    -1,   101,   338,   102,
    954       -1,   341,    -1,   101,   338,   102,   341,    -1,   101,   339,
    955      102,   336,    -1,   101,   339,   102,    -1,   101,   126,   251,
    956      127,   102,    -1,   101,   338,   102,   101,   126,   251,   127,
    957      102,    -1,   101,   340,   102,    -1,   342,    -1,   342,   336,
    958       -1,   336,    -1,   103,   126,   127,   104,    -1,   103,   126,
    959      216,   111,   127,   104,    -1,   103,   126,   216,   127,   104,
    960       -1,   103,   126,   216,   155,   127,   104,    -1,   103,   126,
    961        7,   215,   155,   127,   104,    -1,   103,   126,   216,     7,
    962      155,   127,   104,    -1,   344,    -1,   345,   298,    -1,   346,
    963      298,    -1,   111,    -1,   111,   216,    -1,   111,   343,    -1,
    964      111,   216,   343,    -1,   101,   344,   102,    -1,   335,    -1,
    965      101,   344,   102,   335,    -1,   101,   345,   102,   336,    -1,
    966      101,   345,   102,    -1,   101,   344,   102,   101,   126,   251,
    967      127,   102,    -1,   101,   346,   102,    -1,   348,    -1,   356,
    968       -1,   216,   356,    -1,   349,    -1,   350,    -1,   111,   214,
    969       -1,   216,   111,   214,    -1,   111,   357,    -1,   216,   111,
    970      357,    -1,   111,   347,    -1,   216,   111,   347,    -1,   103,
    971      126,   127,   104,   214,    -1,   351,   214,    -1,   103,   126,
    972      127,   104,   336,   214,    -1,   351,   336,   214,    -1,   336,
    973      214,    -1,   103,   126,   127,   104,   349,    -1,   351,   349,
    974       -1,   103,   126,   127,   104,   336,   349,    -1,   351,   336,
    975      349,    -1,   336,   349,    -1,   103,   126,   216,   111,   127,
    976      104,    -1,   103,   126,   216,   155,   127,   104,    -1,   103,
    977      126,   220,   155,   127,   104,    -1,   103,   126,   220,   216,
    978      155,   127,   104,    -1,   356,    -1,   216,   356,    -1,   353,
    979       -1,   354,    -1,   355,    -1,   111,   214,    -1,   216,   111,
    980      214,    -1,   111,   357,    -1,   216,   111,   357,    -1,   111,
    981      352,    -1,   216,   111,   352,    -1,   103,   126,   127,   104,
    982      214,    -1,   103,   126,   127,   104,   336,   214,    -1,   336,
    983      214,    -1,   103,   126,   127,   104,   354,    -1,   103,   126,
    984      127,   104,   336,   354,    -1,   336,   354,    -1,   103,   126,
    985      250,   127,   104,    -1,   103,   126,   127,   104,   101,   247,
    986      102,    -1,   356,   101,   126,   247,   127,   102,    -1,   207,
    987      101,   126,   247,   127,   102,    -1,    -1,   108,    -1,    -1,
    988      123,   155,    -1
     750     123,   155,    -1,   140,   159,   155,    -1,   157,   360,    -1,
     751      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
     752     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     753     126,   155,   108,   158,   127,   104,    -1,   156,    -1,   158,
     754     108,   156,    -1,    90,    -1,    91,    -1,    92,    -1,    93,
     755      -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,
     756      -1,    99,    -1,   155,    -1,   160,   108,   155,    -1,    -1,
     757     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
     758     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
     759     299,   162,    -1,   106,   107,    -1,   106,   126,   126,   198,
     760     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
     761     201,    -1,    38,   201,    -1,   295,    -1,   162,   127,    -1,
     762     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
     763     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
     764     162,    -1,    41,   101,   160,   102,   174,    -1,    41,   101,
     765     160,   102,   106,   126,   194,   175,   107,    -1,    51,   101,
     766     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
     767     194,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
     768     297,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     769     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
     770     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     771     173,   167,    -1,    -1,   178,    -1,   173,   180,    -1,   173,
     772     167,   179,    -1,   178,   173,   180,    -1,   178,   173,   167,
     773     179,    -1,    -1,   180,    -1,    52,    -1,    52,   124,    -1,
     774      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
     775     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
     776      -1,   161,   127,   124,   161,   124,   161,    -1,   201,   161,
     777     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
     778     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     779     124,    -1,    47,   131,   124,    -1,    50,   161,   124,    -1,
     780      56,   155,   124,    -1,    56,   124,    -1,    53,   164,   185,
     781      -1,    53,   164,   187,    -1,    53,   164,   185,   187,    -1,
     782     186,    -1,    54,   101,    89,   102,   164,    -1,   186,    54,
     783     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
     784     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
     785     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   214,
     786      -1,   214,   296,    -1,   214,   344,    -1,   353,   131,    -1,
     787     353,    -1,    57,   215,   101,   154,   102,   124,    -1,    57,
     788     215,   101,   154,   109,   190,   102,   124,    -1,    57,   215,
     789     101,   154,   109,   190,   109,   190,   102,   124,    -1,    57,
     790     215,   101,   154,   109,   190,   109,   190,   109,   193,   102,
     791     124,    -1,    -1,   191,    -1,   192,    -1,   191,   108,   192,
     792      -1,    75,   101,   154,   102,    -1,    75,    -1,   193,   108,
     793      75,    -1,   127,    -1,   195,    -1,   201,    -1,   195,   126,
     794     201,    -1,   127,    -1,   197,    -1,   211,    -1,   197,   126,
     795     211,    -1,    -1,   199,    -1,    28,   200,   124,    -1,   199,
     796      28,   200,   124,    -1,   261,    -1,   200,   108,   261,    -1,
     797     202,    -1,   211,    -1,   203,   127,   124,    -1,   208,   127,
     798     124,    -1,   205,   127,   124,    -1,   280,   127,   124,    -1,
     799     283,   127,   124,    -1,   204,   264,    -1,   220,   204,   264,
     800      -1,   203,   127,   108,   126,   259,   264,    -1,   354,   259,
     801     298,    -1,   357,   259,   298,    -1,   216,   357,   259,   298,
     802      -1,   206,    -1,   216,   206,    -1,   220,   206,    -1,   220,
     803     216,   206,    -1,   205,   127,   108,   126,   259,    -1,   103,
     804     104,   259,   101,   126,   247,   127,   102,    -1,   357,   259,
     805     101,   126,   247,   127,   102,    -1,   207,   259,   101,   126,
     806     247,   127,   102,    -1,   103,   126,   249,   127,   104,    -1,
     807     103,   126,   249,   127,   108,   126,   250,   127,   104,    -1,
     808       3,   204,    -1,     3,   206,    -1,   208,   127,   108,   126,
     809     131,    -1,     3,   214,   296,    -1,   209,   127,   108,   126,
     810     296,    -1,   216,     3,   214,   296,    -1,   214,     3,   296,
     811      -1,   214,     3,   216,   296,    -1,     3,   131,   123,   155,
     812      -1,   210,   127,   108,   126,   131,   123,   155,    -1,   212,
     813     127,   124,    -1,   209,   127,   124,    -1,   210,   127,   124,
     814      -1,   229,   127,   124,    -1,   213,   296,   298,   264,    -1,
     815     212,   108,   299,   296,   298,   264,    -1,   225,    -1,   229,
     816      -1,   231,    -1,   270,    -1,   226,    -1,   230,    -1,   232,
     817      -1,   271,    -1,    -1,   216,    -1,   217,    -1,   216,   217,
     818      -1,   218,    -1,   301,    -1,    10,    -1,    12,    -1,    11,
     819      -1,    14,    -1,    60,    -1,    -1,    13,   101,   219,   273,
     820     102,    -1,   221,    -1,   216,   221,    -1,   220,   216,   221,
     821      -1,   222,    -1,   221,   222,    -1,   223,    -1,     5,    -1,
     822       7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,
     823      62,    -1,    64,    -1,    16,    -1,    21,    -1,    20,    -1,
     824      18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,
     825      15,    -1,    24,    -1,    25,    -1,    26,    -1,   226,    -1,
     826     220,   226,    -1,   225,   222,    -1,   225,   222,   216,    -1,
     827     225,   222,   226,    -1,   227,    -1,   215,   228,   215,    -1,
     828     224,    -1,   216,   224,    -1,   227,   217,    -1,   227,   224,
     829      -1,    27,   101,   263,   102,    -1,    27,   101,   160,   102,
     830      -1,    71,   101,   263,   102,    -1,    71,   101,   160,   102,
     831      -1,   230,    -1,   220,   230,    -1,   229,   222,    -1,   229,
     832     222,   216,    -1,   233,    -1,   216,   233,    -1,   230,   217,
     833      -1,   232,    -1,   220,   232,    -1,   231,   222,    -1,   231,
     834     222,   216,    -1,    67,    -1,   216,    67,    -1,   232,   217,
     835      -1,   234,    -1,   244,    -1,   235,   106,   236,   107,    -1,
     836     235,   261,    -1,   235,   261,   106,   236,   107,    -1,   235,
     837     101,   279,   102,   106,   236,   107,    -1,   235,   272,    -1,
     838      30,   299,    -1,    31,   299,    -1,   237,    -1,   236,   237,
     839      -1,   238,   124,    -1,    38,   238,   124,    -1,   239,   124,
     840      -1,    38,   239,   124,    -1,   353,    -1,   353,   261,    -1,
     841     238,   108,   261,    -1,   238,   108,    -1,   214,   240,    -1,
     842     239,   108,   299,   240,    -1,    -1,   242,    -1,   305,   241,
     843      -1,   318,   241,    -1,   344,    -1,    -1,   242,    -1,   109,
     844     154,    -1,    29,   299,    -1,   243,   106,   245,   359,   107,
     845      -1,   243,   261,   106,   245,   359,   107,    -1,   243,   261,
     846      -1,   261,   246,    -1,   245,   108,   261,   246,    -1,    -1,
     847     123,   154,    -1,    -1,   248,    -1,   250,    -1,   249,    -1,
     848     249,   127,   108,   126,   250,    -1,   250,   127,   108,   126,
     849      89,    -1,   249,   127,   108,   126,    89,    -1,   254,    -1,
     850     250,   127,   108,   126,   254,    -1,   249,   127,   108,   126,
     851     254,    -1,   249,   127,   108,   126,   250,   127,   108,   126,
     852     254,    -1,   255,    -1,   250,   127,   108,   126,   255,    -1,
     853      -1,   252,    -1,   253,    -1,   253,   127,   108,   126,    89,
     854      -1,   257,    -1,   256,    -1,   253,   127,   108,   126,   257,
     855      -1,   253,   127,   108,   126,   256,    -1,   256,    -1,   349,
     856     259,   360,    -1,   357,   259,   360,    -1,   216,   357,   259,
     857     360,    -1,   206,    -1,   257,    -1,   349,    -1,   357,    -1,
     858     216,   357,    -1,   358,    -1,   213,   323,   360,    -1,   213,
     859     327,   360,    -1,   213,    -1,   213,   338,    -1,   131,    -1,
     860     258,   108,   131,    -1,   129,    -1,    67,    -1,    68,    -1,
     861     130,    -1,    67,    -1,    68,    -1,   131,    -1,    67,    -1,
     862      68,    -1,   353,    -1,   214,    -1,   214,   344,    -1,   353,
     863      -1,   358,    -1,   214,    -1,   214,   332,    -1,    -1,   123,
     864     265,    -1,   155,    -1,   106,   266,   359,   107,    -1,   265,
     865      -1,   267,   265,    -1,   266,   108,   265,    -1,   266,   108,
     866     267,   265,    -1,   268,   109,    -1,   261,   109,    -1,   269,
     867      -1,   268,   269,    -1,   105,   261,    -1,   103,   126,   155,
     868     127,   104,    -1,   103,   126,   297,   127,   104,    -1,   103,
     869     126,   154,    89,   154,   127,   104,    -1,   105,   103,   126,
     870     138,   127,   104,    -1,   271,    -1,   220,   271,    -1,   270,
     871     222,    -1,   270,   222,   216,    -1,   272,    -1,   216,   272,
     872      -1,   271,   217,    -1,    68,   101,   279,   102,    -1,   274,
     873     360,    -1,   273,   108,   274,   360,    -1,    -1,   276,   261,
     874     275,   277,    -1,   214,   323,    -1,    32,    -1,    34,    -1,
     875      33,    -1,    -1,   277,   278,    -1,   121,   261,   101,   279,
     876     102,    -1,   121,   106,   126,   285,   107,    -1,   121,   101,
     877     126,   273,   127,   102,   106,   126,   285,   107,   101,   279,
     878     102,    -1,   263,    -1,   155,    -1,   279,   108,   263,    -1,
     879     279,   108,   155,    -1,    32,   281,    -1,   221,    32,   281,
     880      -1,   280,   108,   281,    -1,   282,   277,    -1,   282,   277,
     881     123,   263,    -1,   261,    -1,   260,   101,   126,   273,   127,
     882     102,    -1,    35,   261,   101,   126,   273,   127,   102,   106,
     883     107,    -1,    -1,    35,   261,   101,   126,   273,   127,   102,
     884     106,   284,   285,   107,    -1,   286,    -1,   285,   126,   286,
     885      -1,   287,   127,   124,    -1,   288,   127,   124,    -1,   204,
     886      -1,   206,    -1,   287,   127,   108,   126,   259,    -1,   214,
     887     296,    -1,   288,   127,   108,   126,   296,    -1,    -1,   290,
     888      -1,   292,    -1,   290,   126,   292,    -1,    -1,   290,    -1,
     889     201,    -1,   294,    -1,   189,    -1,    -1,     5,    75,   293,
     890     106,   291,   107,    -1,    38,   292,    -1,   295,    -1,   310,
     891     164,    -1,   314,   126,   196,   164,    -1,   205,   164,    -1,
     892     213,   310,   164,    -1,   216,   310,   164,    -1,   220,   310,
     893     164,    -1,   220,   216,   310,   164,    -1,   213,   314,   126,
     894     196,   164,    -1,   216,   314,   126,   196,   164,    -1,   220,
     895     314,   126,   196,   164,    -1,   220,   216,   314,   126,   196,
     896     164,    -1,   305,    -1,   310,    -1,   318,    -1,   154,   115,
     897     154,    -1,    -1,    57,   101,   133,   102,   299,    -1,    -1,
     898     300,    -1,   301,    -1,   300,   301,    -1,    37,   101,   101,
     899     302,   102,   102,    -1,   303,    -1,   302,   108,   303,    -1,
     900      -1,   304,    -1,   304,   101,   161,   102,    -1,   259,    -1,
     901     223,    -1,   224,    -1,   217,    -1,   306,   299,    -1,   307,
     902      -1,   308,   299,    -1,   309,   299,    -1,   129,    -1,   101,
     903     306,   102,    -1,   111,   305,    -1,   111,   216,   305,    -1,
     904     101,   307,   102,    -1,   306,   336,    -1,   101,   307,   102,
     905     336,    -1,   101,   308,   102,   337,    -1,   101,   308,   102,
     906      -1,   101,   307,   102,   101,   126,   251,   127,   102,    -1,
     907     101,   309,   102,    -1,   311,   299,    -1,   312,    -1,   313,
     908     299,    -1,   306,   101,   126,   251,   127,   102,    -1,   101,
     909     312,   102,   101,   126,   251,   127,   102,    -1,   101,   311,
     910     102,    -1,   111,   310,    -1,   111,   216,   310,    -1,   101,
     911     312,   102,    -1,   101,   312,   102,   336,    -1,   101,   313,
     912     102,   337,    -1,   101,   313,   102,    -1,   315,    -1,   316,
     913      -1,   317,    -1,   306,   101,   258,   102,    -1,   101,   316,
     914     102,   101,   258,   102,    -1,   101,   315,   102,    -1,   111,
     915     314,    -1,   111,   216,   314,    -1,   101,   316,   102,    -1,
     916     101,   316,   102,   336,    -1,   101,   317,   102,   337,    -1,
     917     101,   317,   102,    -1,   319,   299,    -1,   320,    -1,   321,
     918     299,    -1,   322,   299,    -1,   328,    -1,   101,   319,   102,
     919      -1,   111,   318,    -1,   111,   216,   318,    -1,   101,   320,
     920     102,    -1,   319,   336,    -1,   101,   320,   102,   336,    -1,
     921     101,   321,   102,   337,    -1,   101,   321,   102,    -1,   319,
     922     101,   126,   251,   127,   102,    -1,   101,   320,   102,   101,
     923     126,   251,   127,   102,    -1,   101,   322,   102,    -1,   306,
     924     299,    -1,   324,    -1,   325,   299,    -1,   326,   299,    -1,
     925     111,   323,    -1,   111,   216,   323,    -1,   101,   324,   102,
     926      -1,   306,   342,    -1,   101,   324,   102,   336,    -1,   101,
     927     325,   102,   337,    -1,   101,   325,   102,    -1,   306,   101,
     928     126,   251,   127,   102,    -1,   101,   324,   102,   101,   126,
     929     251,   127,   102,    -1,   101,   326,   102,    -1,   328,   299,
     930      -1,   329,    -1,   330,   299,    -1,   331,   299,    -1,    67,
     931      -1,    68,    -1,   111,   327,    -1,   111,   216,   327,    -1,
     932     101,   329,   102,    -1,   328,   342,    -1,   101,   329,   102,
     933     342,    -1,   328,   101,   126,   251,   127,   102,    -1,   101,
     934     329,   102,   101,   126,   251,   127,   102,    -1,   333,    -1,
     935     334,   299,    -1,   335,   299,    -1,   111,    -1,   111,   216,
     936      -1,   111,   332,    -1,   111,   216,   332,    -1,   101,   333,
     937     102,    -1,   336,    -1,   101,   333,   102,   336,    -1,   101,
     938     334,   102,   337,    -1,   101,   334,   102,    -1,   101,   126,
     939     251,   127,   102,    -1,   101,   333,   102,   101,   126,   251,
     940     127,   102,    -1,   101,   335,   102,    -1,   103,   104,    -1,
     941     103,   104,   337,    -1,   337,    -1,   103,   126,   155,   127,
     942     104,    -1,   103,   126,   111,   127,   104,    -1,   337,   103,
     943     126,   155,   127,   104,    -1,   337,   103,   126,   111,   127,
     944     104,    -1,   339,    -1,   340,   299,    -1,   341,   299,    -1,
     945     111,    -1,   111,   216,    -1,   111,   338,    -1,   111,   216,
     946     338,    -1,   101,   339,   102,    -1,   342,    -1,   101,   339,
     947     102,   342,    -1,   101,   340,   102,   337,    -1,   101,   340,
     948     102,    -1,   101,   126,   251,   127,   102,    -1,   101,   339,
     949     102,   101,   126,   251,   127,   102,    -1,   101,   341,   102,
     950      -1,   343,    -1,   343,   337,    -1,   337,    -1,   103,   104,
     951      -1,   103,   126,   216,   111,   127,   104,    -1,   103,   126,
     952     216,   127,   104,    -1,   103,   126,   216,   155,   127,   104,
     953      -1,   103,   126,     7,   215,   155,   127,   104,    -1,   103,
     954     126,   216,     7,   155,   127,   104,    -1,   345,    -1,   346,
     955     299,    -1,   347,   299,    -1,   111,    -1,   111,   216,    -1,
     956     111,   344,    -1,   111,   216,   344,    -1,   101,   345,   102,
     957      -1,   336,    -1,   101,   345,   102,   336,    -1,   101,   346,
     958     102,   337,    -1,   101,   346,   102,    -1,   101,   345,   102,
     959     101,   126,   251,   127,   102,    -1,   101,   347,   102,    -1,
     960     349,    -1,   357,    -1,   216,   357,    -1,   350,    -1,   351,
     961      -1,   111,   214,    -1,   216,   111,   214,    -1,   111,   358,
     962      -1,   216,   111,   358,    -1,   111,   348,    -1,   216,   111,
     963     348,    -1,   103,   104,   214,    -1,   352,   214,    -1,   103,
     964     104,   337,   214,    -1,   352,   337,   214,    -1,   337,   214,
     965      -1,   103,   104,   350,    -1,   352,   350,    -1,   103,   104,
     966     337,   350,    -1,   352,   337,   350,    -1,   337,   350,    -1,
     967     103,   126,   216,   111,   127,   104,    -1,   103,   126,   216,
     968     155,   127,   104,    -1,   103,   126,   220,   155,   127,   104,
     969      -1,   103,   126,   220,   216,   155,   127,   104,    -1,   357,
     970      -1,   216,   357,    -1,   354,    -1,   355,    -1,   356,    -1,
     971     111,   214,    -1,   216,   111,   214,    -1,   111,   358,    -1,
     972     216,   111,   358,    -1,   111,   353,    -1,   216,   111,   353,
     973      -1,   103,   104,   214,    -1,   103,   104,   337,   214,    -1,
     974     337,   214,    -1,   103,   104,   355,    -1,   103,   104,   337,
     975     355,    -1,   337,   355,    -1,   103,   126,   250,   127,   104,
     976      -1,   103,   104,   101,   247,   102,    -1,   357,   101,   126,
     977     247,   127,   102,    -1,   207,   101,   126,   247,   127,   102,
     978      -1,    -1,   108,    -1,    -1,   123,   155,    -1
    989979};
    990980
     
    10171007     927,   931,   932,   947,   948,   949,   950,   951,   955,   960,
    10181008     967,   977,   982,   987,   995,  1000,  1005,  1010,  1015,  1023,
    1019     1028,  1040,  1045,  1052,  1054,  1061,  1066,  1071,  1082,  1087,
    1020     1092,  1097,  1102,  1110,  1115,  1123,  1124,  1125,  1126,  1132,
    1021     1137,  1145,  1146,  1147,  1148,  1152,  1153,  1154,  1155,  1160,
    1022     1161,  1170,  1171,  1176,  1177,  1182,  1184,  1186,  1188,  1190,
    1023     1193,  1192,  1204,  1205,  1207,  1217,  1218,  1223,  1227,  1229,
    1024     1231,  1233,  1235,  1237,  1239,  1241,  1246,  1248,  1250,  1252,
    1025     1254,  1256,  1258,  1260,  1262,  1264,  1266,  1268,  1274,  1275,
    1026     1277,  1279,  1281,  1286,  1287,  1293,  1294,  1296,  1298,  1303,
    1027     1305,  1307,  1309,  1314,  1315,  1317,  1319,  1324,  1325,  1327,
    1028     1332,  1333,  1335,  1337,  1342,  1344,  1346,  1351,  1352,  1356,
    1029     1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1375,  1380,
    1030     1382,  1387,  1389,  1394,  1395,  1397,  1398,  1403,  1404,  1406,
    1031     1408,  1413,  1415,  1421,  1422,  1424,  1427,  1430,  1435,  1436,
    1032     1441,  1446,  1450,  1452,  1454,  1459,  1461,  1467,  1468,  1476,
    1033     1477,  1481,  1482,  1483,  1485,  1487,  1494,  1495,  1497,  1499,
    1034     1504,  1505,  1511,  1512,  1516,  1517,  1522,  1523,  1524,  1526,
    1035     1534,  1535,  1537,  1540,  1542,  1546,  1547,  1548,  1550,  1552,
    1036     1556,  1561,  1569,  1570,  1579,  1581,  1586,  1587,  1588,  1592,
    1037     1593,  1594,  1598,  1599,  1604,  1605,  1606,  1611,  1612,  1613,
    1038     1614,  1620,  1621,  1625,  1626,  1630,  1631,  1632,  1633,  1648,
    1039     1649,  1654,  1655,  1660,  1662,  1665,  1667,  1669,  1692,  1693,
    1040     1695,  1697,  1702,  1704,  1706,  1711,  1712,  1718,  1717,  1721,
    1041     1725,  1727,  1729,  1735,  1736,  1741,  1746,  1748,  1753,  1755,
    1042     1756,  1758,  1763,  1765,  1767,  1772,  1774,  1779,  1784,  1792,
    1043     1798,  1797,  1811,  1812,  1817,  1818,  1822,  1827,  1832,  1840,
    1044     1845,  1856,  1857,  1868,  1869,  1875,  1876,  1880,  1881,  1882,
    1045     1885,  1884,  1895,  1900,  1906,  1912,  1921,  1927,  1933,  1939,
    1046     1945,  1953,  1959,  1967,  1973,  1982,  1983,  1984,  1988,  1992,
    1047     1994,  1997,  1999,  2003,  2004,  2008,  2012,  2013,  2016,  2018,
    1048     2019,  2023,  2024,  2025,  2026,  2060,  2061,  2062,  2063,  2067,
    1049     2072,  2077,  2079,  2081,  2086,  2088,  2090,  2092,  2097,  2099,
    1050     2109,  2110,  2111,  2115,  2117,  2119,  2124,  2126,  2128,  2133,
    1051     2135,  2137,  2146,  2147,  2148,  2152,  2154,  2156,  2161,  2163,
    1052     2165,  2170,  2172,  2174,  2189,  2190,  2191,  2192,  2196,  2201,
    1053     2206,  2208,  2210,  2215,  2217,  2219,  2221,  2226,  2228,  2230,
    1054     2240,  2241,  2242,  2243,  2247,  2249,  2251,  2256,  2258,  2260,
    1055     2262,  2267,  2269,  2271,  2302,  2303,  2304,  2305,  2309,  2317,
    1056     2319,  2321,  2326,  2328,  2333,  2335,  2349,  2350,  2351,  2355,
    1057     2357,  2359,  2361,  2363,  2368,  2369,  2371,  2373,  2378,  2380,
    1058     2382,  2388,  2390,  2392,  2396,  2398,  2400,  2402,  2416,  2417,
    1059     2418,  2422,  2424,  2426,  2428,  2430,  2435,  2436,  2438,  2440,
    1060     2445,  2447,  2449,  2455,  2456,  2458,  2467,  2470,  2472,  2475,
    1061     2477,  2479,  2492,  2493,  2494,  2498,  2500,  2502,  2504,  2506,
    1062     2511,  2512,  2514,  2516,  2521,  2523,  2531,  2532,  2533,  2538,
    1063     2539,  2543,  2545,  2547,  2549,  2551,  2553,  2560,  2562,  2564,
    1064     2566,  2568,  2570,  2572,  2574,  2576,  2578,  2583,  2585,  2587,
    1065     2592,  2618,  2619,  2621,  2625,  2626,  2630,  2632,  2634,  2636,
    1066     2638,  2640,  2647,  2649,  2651,  2653,  2655,  2657,  2662,  2667,
    1067     2669,  2671,  2689,  2691,  2696,  2697
     1009    1045,  1050,  1057,  1059,  1066,  1071,  1076,  1087,  1092,  1097,
     1010    1102,  1107,  1116,  1121,  1129,  1130,  1131,  1132,  1138,  1143,
     1011    1151,  1152,  1153,  1154,  1158,  1159,  1160,  1161,  1166,  1167,
     1012    1176,  1177,  1182,  1183,  1188,  1190,  1192,  1194,  1196,  1199,
     1013    1198,  1210,  1211,  1213,  1223,  1224,  1229,  1233,  1235,  1237,
     1014    1239,  1241,  1243,  1245,  1247,  1252,  1254,  1256,  1258,  1260,
     1015    1262,  1264,  1266,  1268,  1270,  1272,  1274,  1280,  1281,  1283,
     1016    1285,  1287,  1292,  1293,  1299,  1300,  1302,  1304,  1309,  1311,
     1017    1313,  1315,  1320,  1321,  1323,  1325,  1330,  1331,  1333,  1338,
     1018    1339,  1341,  1343,  1348,  1350,  1352,  1357,  1358,  1362,  1364,
     1019    1366,  1368,  1370,  1375,  1377,  1382,  1384,  1389,  1390,  1392,
     1020    1393,  1398,  1399,  1401,  1403,  1408,  1410,  1416,  1417,  1419,
     1021    1422,  1425,  1430,  1431,  1436,  1441,  1445,  1447,  1449,  1454,
     1022    1456,  1462,  1463,  1471,  1472,  1476,  1477,  1478,  1480,  1482,
     1023    1489,  1490,  1492,  1494,  1499,  1500,  1506,  1507,  1511,  1512,
     1024    1517,  1518,  1519,  1521,  1529,  1530,  1532,  1535,  1537,  1541,
     1025    1542,  1543,  1545,  1547,  1551,  1556,  1564,  1565,  1574,  1576,
     1026    1581,  1582,  1583,  1587,  1588,  1589,  1593,  1594,  1595,  1599,
     1027    1600,  1601,  1606,  1607,  1608,  1609,  1615,  1616,  1621,  1622,
     1028    1626,  1627,  1628,  1629,  1644,  1645,  1650,  1651,  1657,  1659,
     1029    1662,  1664,  1666,  1689,  1690,  1692,  1694,  1699,  1700,  1702,
     1030    1707,  1712,  1713,  1719,  1718,  1722,  1726,  1728,  1730,  1736,
     1031    1737,  1742,  1747,  1749,  1754,  1756,  1757,  1759,  1764,  1766,
     1032    1768,  1773,  1775,  1780,  1785,  1793,  1799,  1798,  1812,  1813,
     1033    1818,  1819,  1823,  1828,  1833,  1841,  1846,  1857,  1858,  1869,
     1034    1870,  1876,  1877,  1881,  1882,  1883,  1886,  1885,  1896,  1901,
     1035    1906,  1912,  1921,  1927,  1933,  1939,  1945,  1953,  1959,  1967,
     1036    1973,  1982,  1983,  1984,  1988,  1992,  1994,  1997,  1999,  2003,
     1037    2004,  2008,  2012,  2013,  2016,  2018,  2019,  2023,  2024,  2025,
     1038    2026,  2060,  2061,  2062,  2063,  2067,  2072,  2077,  2079,  2081,
     1039    2086,  2088,  2090,  2092,  2097,  2099,  2109,  2110,  2111,  2115,
     1040    2117,  2119,  2124,  2126,  2128,  2133,  2135,  2137,  2146,  2147,
     1041    2148,  2152,  2154,  2156,  2161,  2163,  2165,  2170,  2172,  2174,
     1042    2189,  2190,  2191,  2192,  2196,  2197,  2202,  2204,  2206,  2211,
     1043    2213,  2215,  2217,  2222,  2224,  2226,  2236,  2237,  2238,  2239,
     1044    2243,  2245,  2247,  2252,  2254,  2256,  2258,  2263,  2265,  2267,
     1045    2298,  2299,  2300,  2301,  2305,  2310,  2318,  2320,  2322,  2327,
     1046    2329,  2334,  2336,  2350,  2351,  2352,  2356,  2358,  2360,  2362,
     1047    2364,  2369,  2370,  2372,  2374,  2379,  2381,  2383,  2389,  2391,
     1048    2393,  2397,  2399,  2401,  2403,  2417,  2418,  2419,  2423,  2425,
     1049    2427,  2429,  2431,  2436,  2437,  2439,  2441,  2446,  2448,  2450,
     1050    2456,  2457,  2459,  2468,  2471,  2473,  2476,  2478,  2480,  2493,
     1051    2494,  2495,  2499,  2501,  2503,  2505,  2507,  2512,  2513,  2515,
     1052    2517,  2522,  2524,  2532,  2533,  2534,  2539,  2540,  2544,  2546,
     1053    2548,  2550,  2552,  2554,  2561,  2563,  2565,  2567,  2569,  2571,
     1054    2573,  2575,  2577,  2579,  2584,  2586,  2588,  2593,  2619,  2620,
     1055    2622,  2626,  2627,  2631,  2633,  2635,  2637,  2639,  2641,  2648,
     1056    2650,  2652,  2654,  2656,  2658,  2663,  2668,  2670,  2672,  2690,
     1057    2692,  2697,  2698
    10681058};
    10691059#endif
     
    11391129  "new_abstract_parameter_declaration", "parameter_declaration",
    11401130  "abstract_parameter_declaration", "identifier_list",
    1141   "identifier_or_typedef_name", "no_01_identifier_or_typedef_name",
    1142   "no_attr_identifier_or_typedef_name", "type_name_no_function",
    1143   "type_name", "initializer_opt", "initializer", "initializer_list",
    1144   "designation", "designator_list", "designator",
    1145   "typegen_declaration_specifier", "typegen_type_specifier",
    1146   "type_parameter_list", "type_parameter", "$@2", "type_class",
    1147   "assertion_list_opt", "assertion", "type_name_list",
    1148   "type_declaring_list", "type_declarator", "type_declarator_name",
    1149   "context_specifier", "$@3", "context_declaration_list",
    1150   "context_declaration", "new_context_declaring_list",
    1151   "context_declaring_list", "translation_unit", "external_definition_list",
     1131  "identifier_or_type_name", "no_01_identifier_or_type_name",
     1132  "no_attr_identifier_or_type_name", "type_name_no_function", "type_name",
     1133  "initializer_opt", "initializer", "initializer_list", "designation",
     1134  "designator_list", "designator", "typegen_declaration_specifier",
     1135  "typegen_type_specifier", "typegen_name", "type_parameter_list",
     1136  "type_parameter", "$@2", "type_class", "assertion_list_opt", "assertion",
     1137  "type_name_list", "type_declaring_list", "type_declarator",
     1138  "type_declarator_name", "context_specifier", "$@3",
     1139  "context_declaration_list", "context_declaration",
     1140  "new_context_declaring_list", "context_declaring_list",
     1141  "translation_unit", "external_definition_list",
    11521142  "external_definition_list_opt", "external_definition", "$@4",
    11531143  "external_function_definition", "function_definition", "declarator",
     
    11581148  "function_no_ptr", "function_ptr", "function_array",
    11591149  "old_function_declarator", "old_function_no_ptr", "old_function_ptr",
    1160   "old_function_array", "typedef_redeclarator", "paren_typedef",
    1161   "typedef_ptr", "typedef_array", "typedef_function",
    1162   "identifier_parameter_declarator", "identifier_parameter_ptr",
    1163   "identifier_parameter_array", "identifier_parameter_function",
    1164   "typedef_parameter_redeclarator", "typedef", "typedef_parameter_ptr",
    1165   "typedef_parameter_array", "typedef_parameter_function",
    1166   "abstract_declarator", "abstract_ptr", "abstract_array",
    1167   "abstract_function", "array_dimension", "multi_array_dimension",
    1168   "abstract_parameter_declarator", "abstract_parameter_ptr",
    1169   "abstract_parameter_array", "abstract_parameter_function",
    1170   "array_parameter_dimension", "array_parameter_1st_dimension",
    1171   "variable_abstract_declarator", "variable_abstract_ptr",
    1172   "variable_abstract_array", "variable_abstract_function",
     1150  "old_function_array", "type_redeclarator", "paren_type", "type_ptr",
     1151  "type_array", "type_function", "identifier_parameter_declarator",
     1152  "identifier_parameter_ptr", "identifier_parameter_array",
     1153  "identifier_parameter_function", "type_parameter_redeclarator",
     1154  "typedef", "type_parameter_ptr", "type_parameter_array",
     1155  "type_parameter_function", "abstract_declarator", "abstract_ptr",
     1156  "abstract_array", "abstract_function", "array_dimension",
     1157  "multi_array_dimension", "abstract_parameter_declarator",
     1158  "abstract_parameter_ptr", "abstract_parameter_array",
     1159  "abstract_parameter_function", "array_parameter_dimension",
     1160  "array_parameter_1st_dimension", "variable_abstract_declarator",
     1161  "variable_abstract_ptr", "variable_abstract_array",
     1162  "variable_abstract_function",
    11731163  "new_identifier_parameter_declarator_tuple",
    11741164  "new_identifier_parameter_declarator_no_tuple",
     
    12301220     200,   201,   201,   202,   202,   202,   202,   202,   203,   203,
    12311221     203,   204,   204,   204,   205,   205,   205,   205,   205,   206,
    1232      206,   206,   206,   207,   207,   208,   208,   208,   209,   209,
    1233      209,   209,   209,   210,   210,   211,   211,   211,   211,   212,
    1234      212,   213,   213,   213,   213,   214,   214,   214,   214,   215,
    1235      215,   216,   216,   217,   217,   218,   218,   218,   218,   218,
    1236      219,   218,   220,   220,   220,   221,   221,   222,   223,   223,
    1237      223,   223,   223,   223,   223,   223,   224,   224,   224,   224,
    1238      224,   224,   224,   224,   224,   224,   224,   224,   225,   225,
    1239      225,   225,   225,   226,   226,   227,   227,   227,   227,   228,
    1240      228,   228,   228,   229,   229,   229,   229,   230,   230,   230,
    1241      231,   231,   231,   231,   232,   232,   232,   233,   233,   234,
    1242      234,   234,   234,   234,   234,   234,   234,   234,   234,   235,
    1243      235,   236,   236,   237,   237,   237,   237,   238,   238,   238,
    1244      238,   239,   239,   240,   240,   240,   240,   240,   241,   241,
    1245      242,   243,   244,   244,   244,   245,   245,   246,   246,   247,
    1246      247,   248,   248,   248,   248,   248,   249,   249,   249,   249,
    1247      250,   250,   251,   251,   252,   252,   253,   253,   253,   253,
    1248      254,   254,   254,   254,   254,   255,   255,   255,   255,   255,
    1249      256,   256,   257,   257,   258,   258,   259,   259,   259,   260,
    1250      260,   260,   261,   261,   262,   262,   262,   263,   263,   263,
    1251      263,   264,   264,   265,   265,   266,   266,   266,   266,   267,
    1252      267,   268,   268,   269,   269,   269,   269,   269,   270,   270,
    1253      270,   270,   271,   271,   271,   272,   272,   274,   273,   273,
    1254      275,   275,   275,   276,   276,   277,   277,   277,   278,   278,
    1255      278,   278,   279,   279,   279,   280,   280,   281,   281,   282,
    1256      283,   282,   284,   284,   285,   285,   286,   286,   286,   287,
    1257      287,   288,   288,   289,   289,   290,   290,   291,   291,   291,
    1258      292,   291,   291,   293,   293,   293,   294,   294,   294,   294,
    1259      294,   294,   294,   294,   294,   295,   295,   295,   296,   297,
    1260      297,   298,   298,   299,   299,   300,   301,   301,   302,   302,
    1261      302,   303,   303,   303,   303,   304,   304,   304,   304,   305,
    1262      305,   306,   306,   306,   307,   307,   307,   307,   308,   308,
    1263      309,   309,   309,   310,   310,   310,   311,   311,   311,   312,
    1264      312,   312,   313,   313,   313,   314,   314,   314,   315,   315,
    1265      315,   316,   316,   316,   317,   317,   317,   317,   318,   318,
    1266      319,   319,   319,   320,   320,   320,   320,   321,   321,   321,
    1267      322,   322,   322,   322,   323,   323,   323,   324,   324,   324,
    1268      324,   325,   325,   325,   326,   326,   326,   326,   327,   328,
    1269      328,   328,   329,   329,   330,   330,   331,   331,   331,   332,
    1270      332,   332,   332,   332,   333,   333,   333,   333,   334,   334,
    1271      334,   335,   335,   335,   336,   336,   336,   336,   337,   337,
    1272      337,   338,   338,   338,   338,   338,   339,   339,   339,   339,
    1273      340,   340,   340,   341,   341,   341,   342,   342,   342,   342,
    1274      342,   342,   343,   343,   343,   344,   344,   344,   344,   344,
    1275      345,   345,   345,   345,   346,   346,   347,   347,   347,   348,
    1276      348,   349,   349,   349,   349,   349,   349,   350,   350,   350,
    1277      350,   350,   350,   350,   350,   350,   350,   351,   351,   351,
    1278      351,   352,   352,   352,   353,   353,   354,   354,   354,   354,
    1279      354,   354,   355,   355,   355,   355,   355,   355,   356,   357,
    1280      357,   357,   358,   358,   359,   359
     1222     206,   206,   207,   207,   208,   208,   208,   209,   209,   209,
     1223     209,   209,   210,   210,   211,   211,   211,   211,   212,   212,
     1224     213,   213,   213,   213,   214,   214,   214,   214,   215,   215,
     1225     216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
     1226     218,   220,   220,   220,   221,   221,   222,   223,   223,   223,
     1227     223,   223,   223,   223,   223,   224,   224,   224,   224,   224,
     1228     224,   224,   224,   224,   224,   224,   224,   225,   225,   225,
     1229     225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
     1230     228,   228,   229,   229,   229,   229,   230,   230,   230,   231,
     1231     231,   231,   231,   232,   232,   232,   233,   233,   234,   234,
     1232     234,   234,   234,   235,   235,   236,   236,   237,   237,   237,
     1233     237,   238,   238,   238,   238,   239,   239,   240,   240,   240,
     1234     240,   240,   241,   241,   242,   243,   244,   244,   244,   245,
     1235     245,   246,   246,   247,   247,   248,   248,   248,   248,   248,
     1236     249,   249,   249,   249,   250,   250,   251,   251,   252,   252,
     1237     253,   253,   253,   253,   254,   254,   254,   254,   254,   255,
     1238     255,   255,   255,   255,   256,   256,   257,   257,   258,   258,
     1239     259,   259,   259,   260,   260,   260,   261,   261,   261,   262,
     1240     262,   262,   263,   263,   263,   263,   264,   264,   265,   265,
     1241     266,   266,   266,   266,   267,   267,   268,   268,   269,   269,
     1242     269,   269,   269,   270,   270,   270,   270,   271,   271,   271,
     1243     272,   273,   273,   275,   274,   274,   276,   276,   276,   277,
     1244     277,   278,   278,   278,   279,   279,   279,   279,   280,   280,
     1245     280,   281,   281,   282,   282,   283,   284,   283,   285,   285,
     1246     286,   286,   287,   287,   287,   288,   288,   289,   289,   290,
     1247     290,   291,   291,   292,   292,   292,   293,   292,   292,   294,
     1248     294,   294,   295,   295,   295,   295,   295,   295,   295,   295,
     1249     295,   296,   296,   296,   297,   298,   298,   299,   299,   300,
     1250     300,   301,   302,   302,   303,   303,   303,   304,   304,   304,
     1251     304,   305,   305,   305,   305,   306,   306,   307,   307,   307,
     1252     308,   308,   308,   308,   309,   309,   310,   310,   310,   311,
     1253     311,   311,   312,   312,   312,   313,   313,   313,   314,   314,
     1254     314,   315,   315,   315,   316,   316,   316,   317,   317,   317,
     1255     318,   318,   318,   318,   319,   319,   320,   320,   320,   321,
     1256     321,   321,   321,   322,   322,   322,   323,   323,   323,   323,
     1257     324,   324,   324,   325,   325,   325,   325,   326,   326,   326,
     1258     327,   327,   327,   327,   328,   328,   329,   329,   329,   330,
     1259     330,   331,   331,   332,   332,   332,   333,   333,   333,   333,
     1260     333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
     1261     336,   337,   337,   337,   337,   338,   338,   338,   339,   339,
     1262     339,   339,   339,   340,   340,   340,   340,   341,   341,   341,
     1263     342,   342,   342,   343,   343,   343,   343,   343,   343,   344,
     1264     344,   344,   345,   345,   345,   345,   345,   346,   346,   346,
     1265     346,   347,   347,   348,   348,   348,   349,   349,   350,   350,
     1266     350,   350,   350,   350,   351,   351,   351,   351,   351,   351,
     1267     351,   351,   351,   351,   352,   352,   352,   352,   353,   353,
     1268     353,   354,   354,   355,   355,   355,   355,   355,   355,   356,
     1269     356,   356,   356,   356,   356,   357,   358,   358,   358,   359,
     1270     359,   360,   360
    12811271};
    12821272
     
    12941284       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
    12951285       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
    1296        5,     1,     1,     3,     3,     2,     0,     1,     4,     5,
     1286       5,     1,     1,     3,     3,     2,     0,     1,     2,     5,
    12971287       6,     7,     1,     3,     1,     1,     1,     1,     1,     1,
    12981288       1,     1,     1,     1,     1,     3,     0,     1,     1,     1,
     
    13081298       3,     1,     1,     1,     3,     0,     1,     3,     4,     1,
    13091299       3,     1,     1,     3,     3,     3,     3,     3,     2,     3,
    1310        6,     3,     3,     4,     1,     2,     2,     3,     5,    10,
    1311       10,     7,     7,     5,     9,     2,     2,     5,     3,     5,
    1312        4,     3,     4,     4,     7,     3,     3,     3,     3,     4,
    1313        6,     1,     1,     1,     1,     1,     1,     1,     1,     0,
    1314        1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
    1315        0,     5,     1,     2,     3,     1,     2,     1,     1,     1,
     1300       6,     3,     3,     4,     1,     2,     2,     3,     5,     8,
     1301       7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
     1302       3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
     1303       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
     1304       1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
     1305       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
    13161306       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1317        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
    1318        2,     3,     3,     1,     3,     1,     2,     2,     2,     4,
    1319        4,     4,     4,     1,     2,     2,     3,     1,     2,     2,
    1320        1,     2,     2,     3,     1,     2,     2,     1,     1,     4,
    1321        2,     5,     9,     7,    10,    12,     5,     7,    13,     2,
    1322        2,     1,     2,     2,     3,     2,     3,     1,     2,     3,
    1323        2,     2,     4,     0,     1,     2,     2,     1,     0,     1,
    1324        2,     2,     5,     6,     2,     2,     4,     0,     2,     0,
    1325        1,     1,     1,     5,     5,     5,     1,     5,     5,     9,
    1326        1,     5,     0,     1,     1,     5,     1,     1,     5,     5,
    1327        1,     3,     3,     4,     1,     1,     1,     1,     2,     1,
    1328        3,     3,     1,     2,     1,     3,     1,     1,     1,     1,
    1329        1,     1,     1,     1,     1,     1,     2,     1,     1,     1,
    1330        2,     0,     2,     1,     4,     1,     2,     3,     4,     2,
    1331        2,     1,     2,     2,     5,     5,     7,     6,     1,     2,
    1332        2,     3,     4,     5,     2,     2,     4,     0,     4,     2,
    1333        1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
    1334        3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
    1335        0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
    1336        5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
    1337        0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
    1338        4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
    1339        5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
    1340        4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
    1341        3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
    1342        2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
    1343        4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
    1344        3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
     1307       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
     1308       3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
     1309       4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
     1310       2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
     1311       5,     7,     2,     2,     2,     1,     2,     2,     3,     2,
     1312       3,     1,     2,     3,     2,     2,     4,     0,     1,     2,
     1313       2,     1,     0,     1,     2,     2,     5,     6,     2,     2,
     1314       4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
     1315       1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
     1316       1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
     1317       1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
     1318       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1319       1,     2,     1,     1,     1,     2,     0,     2,     1,     4,
     1320       1,     2,     3,     4,     2,     2,     1,     2,     2,     5,
     1321       5,     7,     6,     1,     2,     2,     3,     1,     2,     2,
     1322       4,     2,     4,     0,     4,     2,     1,     1,     1,     0,
     1323       2,     5,     5,    13,     1,     1,     3,     3,     2,     3,
     1324       3,     2,     4,     1,     6,     9,     0,    11,     1,     3,
     1325       3,     3,     1,     1,     5,     2,     5,     0,     1,     1,
     1326       3,     0,     1,     1,     1,     1,     0,     6,     2,     1,
     1327       2,     4,     2,     3,     3,     3,     4,     5,     5,     5,
     1328       6,     1,     1,     1,     3,     0,     5,     0,     1,     1,
     1329       2,     6,     1,     3,     0,     1,     4,     1,     1,     1,
     1330       1,     2,     1,     2,     2,     1,     3,     2,     3,     3,
     1331       2,     4,     4,     3,     8,     3,     2,     1,     2,     6,
     1332       8,     3,     2,     3,     3,     4,     4,     3,     1,     1,
     1333       1,     4,     6,     3,     2,     3,     3,     4,     4,     3,
     1334       2,     1,     2,     2,     1,     3,     2,     3,     3,     2,
     1335       4,     4,     3,     6,     8,     3,     2,     1,     2,     2,
    13451336       2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
    1346        2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
    1347        3,     6,     8,     3,     2,     1,     2,     2,     1,     2,
    1348        3,     3,     2,     4,     6,     8,     1,     2,     2,     1,
    1349        2,     2,     3,     3,     1,     4,     4,     3,     5,     8,
    1350        3,     4,     5,     1,     5,     5,     6,     6,     1,     2,
    1351        2,     1,     2,     2,     3,     3,     1,     4,     4,     3,
    1352        5,     8,     3,     1,     2,     1,     4,     6,     5,     6,
    1353        7,     7,     1,     2,     2,     1,     2,     2,     3,     3,
    1354        1,     4,     4,     3,     8,     3,     1,     1,     2,     1,
    1355        1,     2,     3,     2,     3,     2,     3,     5,     2,     6,
    1356        3,     2,     5,     2,     6,     3,     2,     6,     6,     6,
    1357        7,     1,     2,     1,     1,     1,     2,     3,     2,     3,
    1358        2,     3,     5,     6,     2,     5,     6,     2,     5,     7,
    1359        6,     6,     0,     1,     0,     2
     1337       2,     1,     2,     2,     1,     1,     2,     3,     3,     2,
     1338       4,     6,     8,     1,     2,     2,     1,     2,     2,     3,
     1339       3,     1,     4,     4,     3,     5,     8,     3,     2,     3,
     1340       1,     5,     5,     6,     6,     1,     2,     2,     1,     2,
     1341       2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
     1342       1,     2,     1,     2,     6,     5,     6,     7,     7,     1,
     1343       2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
     1344       3,     8,     3,     1,     1,     2,     1,     1,     2,     3,
     1345       2,     3,     2,     3,     3,     2,     4,     3,     2,     3,
     1346       2,     4,     3,     2,     6,     6,     6,     7,     1,     2,
     1347       1,     1,     1,     2,     3,     2,     3,     2,     3,     3,
     1348       4,     2,     3,     4,     2,     5,     5,     6,     6,     0,
     1349       1,     0,     2
    13601350};
    13611351
     
    13651355static const yytype_uint16 yydefact[] =
    13661356{
    1367      279,   279,   300,   298,   301,   299,   302,   303,   285,   287,
    1368      286,     0,   288,   314,   306,   311,   309,   310,   308,   307,
    1369      312,   313,   315,   316,   317,   531,   531,   531,     0,     0,
    1370        0,   279,   279,   289,   304,   305,     7,   344,     0,     8,
    1371       13,    14,     0,     2,   279,   549,     9,   509,   507,   231,
    1372        3,   441,     3,   244,     0,     3,     3,     3,   232,     3,
    1373        0,     0,     0,   280,   281,   283,   279,   292,   295,   297,
    1374      325,   271,   318,   323,   272,   333,   273,   340,   337,   347,
    1375        0,     0,   348,   274,   458,     3,     3,     0,     2,   503,
    1376      508,   513,   284,     0,     0,   531,   561,   531,     2,   572,
    1377      573,   574,   279,     0,   714,   715,     0,    12,   279,     0,
    1378      255,   256,     0,   280,   275,   276,   277,   278,   510,   290,
    1379      381,   532,   533,   359,   360,    12,   433,   431,    11,   429,
    1380      432,     0,   487,   482,   473,   433,     0,     0,   512,     0,
    1381      280,   279,     0,     0,     0,     0,     0,     0,     0,     0,
    1382      279,     2,     0,   716,   280,   566,   578,   720,   713,   711,
    1383      718,     0,     0,   238,     2,     0,   516,   427,   428,   426,
    1384        0,     0,     0,     0,   531,     0,   588,     0,     0,   529,
    1385      525,   531,   546,   531,   531,   526,     2,   527,   531,   585,
    1386      531,   531,     0,     0,     0,   279,   279,   298,   345,     0,
    1387        2,   279,   245,   282,   293,   326,   338,     0,     2,     0,
    1388      441,   246,   280,   319,   334,   341,   459,     0,     2,     0,
    1389      296,   320,   327,   328,     0,   335,   339,   342,   346,     0,
    1390        2,   279,   350,     0,   384,   460,   464,     0,     0,     0,
    1391        1,   279,     2,   514,   560,   562,   279,     2,   724,   280,
    1392      727,   529,   529,   280,     0,     0,     0,   258,   531,   526,
    1393        2,   279,     0,     0,   279,   534,     2,   485,     2,   538,
    1394        0,     0,     0,     0,    17,    56,     4,     5,     6,    15,
    1395        0,     0,     0,   279,     2,     0,   279,    62,    63,    64,
    1396       65,    19,    18,    20,    23,    47,    66,     0,    69,    73,
    1397       76,    79,    84,    87,    89,    91,    93,    95,    97,   102,
    1398      479,   734,   439,   478,     0,   437,   438,     0,   550,   565,
    1399      568,   571,   577,   580,   583,     2,   279,     0,     3,   414,
    1400        0,   422,   280,   279,   292,   318,   272,   333,   340,     3,
    1401        3,   396,   400,   410,   415,   458,   279,   416,   689,   690,
    1402      279,   417,   419,   279,     2,   567,   579,   712,     2,     2,
    1403      233,     2,     0,     0,   443,   442,   137,     2,     2,   235,
    1404        2,     2,   234,     2,   266,     2,   267,     0,   265,     0,
    1405        0,     0,     0,     0,     0,     0,     0,     0,   551,   590,
    1406        0,   441,     2,   545,   554,   643,   547,   548,   517,   279,
    1407        2,   584,   593,   586,   587,     0,   261,   279,   279,   324,
    1408        0,   280,   279,   279,   717,   721,   719,   518,   279,   529,
    1409      239,   247,   294,     0,     2,   519,   279,   483,   321,   322,
    1410      268,   336,   343,   279,   279,   279,     2,   373,   279,   361,
    1411        0,     0,   367,   711,   279,   732,   387,     0,   461,   484,
    1412      236,   237,   504,   279,   424,     0,   279,   221,     0,     2,
    1413      223,     0,   280,     0,   241,     2,   242,   263,     0,     0,
    1414        2,   279,   529,   279,   470,   472,   471,     0,     0,   734,
    1415        0,   279,     0,   279,   474,   279,   544,   542,   543,   541,
    1416        0,   536,   539,    66,   101,     0,   279,    54,    50,   279,
    1417       59,   279,   279,    48,    49,    61,     2,   124,     0,     0,
    1418      435,     0,   434,   279,    52,    53,    16,     0,    30,    31,
    1419       35,     2,     0,   114,   115,   116,   117,   118,   119,   120,
    1420      121,   122,   123,     0,     0,    51,     0,     0,     0,     0,
     1357     278,   278,   299,   297,   300,   298,   301,   302,   284,   286,
     1358     285,     0,   287,   313,   305,   310,   308,   309,   307,   306,
     1359     311,   312,   314,   315,   316,   527,   527,   527,     0,     0,
     1360       0,   278,   278,   288,   303,   304,     7,   343,     0,     8,
     1361      13,    14,     0,     2,   278,   545,     9,   505,   503,   231,
     1362       3,   436,     3,   244,     0,     3,     3,     3,   232,     3,
     1363       0,     0,     0,   279,   280,   282,   278,   291,   294,   296,
     1364     324,   270,   317,   322,   271,   332,   272,   339,   336,   346,
     1365       0,     0,   347,   273,   453,   457,     3,     3,     0,     2,
     1366     499,   504,   509,   283,     0,     0,   527,   557,   527,     2,
     1367     568,   569,   570,   278,     0,   711,   712,     0,    12,   278,
     1368       0,   254,   255,     0,   279,   274,   275,   276,   277,   506,
     1369     289,   375,   528,   529,   353,   354,    12,   427,   428,    11,
     1370     423,   426,     0,   483,   478,   469,   427,   428,     0,     0,
     1371     508,     0,   279,   278,     0,     0,     0,     0,     0,     0,
     1372       0,     0,   278,   278,     2,     0,   713,   279,   562,   574,
     1373     717,   710,   708,   715,     0,     0,   238,     2,     0,   512,
     1374     421,   422,   420,     0,     0,     0,     0,   527,     0,   614,
     1375     615,     0,     0,   525,   521,   527,   542,   527,   527,   522,
     1376       2,   523,   527,   581,   527,   527,   584,     0,     0,     0,
     1377     278,   278,   297,   344,     2,   278,   245,   281,   292,   325,
     1378     337,   458,     0,     2,     0,   436,   246,   279,   318,   333,
     1379     340,   454,     0,     2,     0,   295,   319,   326,   327,     0,
     1380     334,   338,   341,   345,   428,   278,   278,   349,   352,     0,
     1381     378,   455,   459,     0,     0,     0,     1,   278,     2,   510,
     1382     556,   558,   278,     2,   721,   279,   724,   525,   525,   279,
     1383       0,     0,     0,   257,   527,   522,     2,   278,     0,     0,
     1384     278,   530,     2,   481,     2,   534,     0,     0,     0,     0,
     1385      17,    56,     4,     5,     6,    15,     0,     0,     0,   278,
     1386       2,     0,   278,    62,    63,    64,    65,    19,    18,    20,
     1387      23,    47,    66,     0,    69,    73,    76,    79,    84,    87,
     1388      89,    91,    93,    95,    97,   102,   475,   731,   434,   474,
     1389       0,   432,   433,     0,   546,   561,   564,   567,   573,   576,
     1390     579,   343,     0,     2,   719,     0,   278,   722,     2,   278,
     1391       3,   408,     0,   416,   279,   278,   291,   317,   271,   332,
     1392     339,     3,     3,   390,   394,   404,   409,   453,   278,   410,
     1393     686,   687,   278,   411,   413,   278,     2,   563,   575,   709,
     1394       2,     2,   233,     2,     0,     0,   438,   437,   137,     2,
     1395       2,   235,     2,     2,   234,     2,   265,     2,   266,     0,
     1396     264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1397     547,   586,     0,   436,     2,   541,   550,   640,   543,   544,
     1398     513,   278,     2,   580,   589,   582,   583,     0,   260,   278,
     1399     278,   323,     0,   279,     0,   278,   714,   718,   716,   514,
     1400     278,   525,   239,   247,   293,     0,     2,   515,   278,   479,
     1401     320,   321,   267,   335,   342,     0,   278,     2,   367,   278,
     1402     355,     0,     0,   361,   708,   278,   729,   381,     0,   456,
     1403     480,   236,   237,   500,   278,   418,     0,   278,   221,     0,
     1404       2,   223,     0,   279,     0,   241,     2,   242,   262,     0,
     1405       0,     2,   278,   525,   278,   466,   468,   467,     0,     0,
     1406     731,     0,   278,     0,   278,   470,   278,   540,   538,   539,
     1407     537,     0,   532,   535,    66,   101,     0,   278,    54,    50,
     1408     278,    59,   278,   278,    48,    49,    61,     2,   124,     0,
     1409       0,   430,     0,   429,   108,   278,    52,    53,    16,     0,
     1410      30,    31,    35,     2,     0,   114,   115,   116,   117,   118,
     1411     119,   120,   121,   122,   123,     0,     0,    51,     0,     0,
    14211412       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1422        0,     0,     0,     0,     0,     0,   105,     2,   629,   440,
    1423      626,   531,   531,   634,   462,   279,     2,   569,     2,   570,
    1424        0,   581,   582,   279,     2,   279,     0,   691,   280,   695,
    1425      686,   687,   693,   279,     0,   618,     2,     2,   651,   531,
    1426      734,   601,   531,   531,   734,   531,   615,   531,   531,   665,
    1427      423,   648,   531,   531,   656,   663,   279,   418,   280,     0,
    1428        0,   279,   701,   280,   706,   734,   698,   279,   703,   734,
    1429        0,   279,   279,     0,     3,    17,     2,     0,     0,   445,
    1430      732,     0,     0,   451,   225,     0,   279,     0,     0,     0,
    1431      529,   553,   557,   559,   589,   592,   596,   599,   552,   591,
    1432        0,   269,     3,     0,   279,   262,     0,     0,     0,     0,
    1433      260,     0,     2,     0,     0,   243,   520,   279,     0,     0,
    1434      439,     3,     3,     0,     0,   279,     0,     0,   675,   371,
    1435      374,   378,   531,   378,   680,   377,   672,   531,   531,   349,
    1436      362,   370,   363,   531,   365,   368,   279,   733,     0,     0,
    1437      385,   732,   280,     3,   403,     3,   407,   406,   575,     0,
    1438      515,   279,     3,     3,   279,   422,   280,     3,   416,   417,
    1439        2,     0,     0,     0,   469,   291,   279,   465,   467,     3,
    1440        2,     2,     0,   486,     3,     0,   538,   126,     0,   210,
    1441        0,     0,     2,     0,     0,    36,     0,     0,   279,    21,
    1442        0,    22,     0,   675,   436,     0,   106,     0,     3,     2,
    1443       28,     2,     0,    33,     0,     2,    26,   103,   104,    70,
    1444       71,    72,    74,    75,    77,    78,    82,    83,    80,    81,
    1445       85,    86,    88,    90,    92,    94,    96,     0,     0,   735,
    1446      279,     0,     0,     0,   630,   631,   627,   628,   481,   480,
    1447      279,     0,     0,     0,   280,   279,   279,   645,   688,   344,
    1448        0,   722,   279,   725,   644,     2,   279,     0,     0,     0,
    1449        0,     0,     0,     0,     0,     3,   652,   604,   619,   653,
    1450        2,   600,   607,   420,   602,   603,   421,     2,   614,   622,
    1451      616,   617,   649,   650,   664,   692,   696,   694,   734,   253,
    1452        2,   728,     2,   411,   700,   705,   412,   279,     3,   390,
    1453        3,     3,     3,   441,     0,     3,     3,     2,   453,   450,
    1454      733,     0,   446,     2,   449,   452,     0,   279,   226,   248,
    1455        3,   257,   259,     0,   441,     2,   555,   556,     2,   594,
    1456      595,     0,     3,     0,   521,     3,   330,   329,   332,   331,
    1457      463,   279,     0,   522,     0,   523,   356,     2,   629,     0,
    1458        0,   364,   366,     2,     0,     0,     0,     0,     0,   380,
    1459      676,   677,   375,   379,   376,   673,   674,   369,   373,   351,
    1460      387,   382,   388,     0,     0,     0,   425,   224,     0,     0,
    1461        3,     2,   651,   418,     0,   511,     0,   734,   473,     0,
    1462      279,   279,   279,     0,   535,   537,   127,     0,   206,     0,
    1463        0,   211,   212,    55,    60,   279,     0,    58,    57,     0,
    1464        0,   125,   676,     0,    67,    68,   107,   112,     3,   108,
    1465      106,     0,     0,     3,    25,    35,     3,     0,    99,     0,
    1466        3,   633,   637,   640,   632,     3,   576,   108,     2,   279,
    1467        3,     3,   280,     0,     2,     2,   723,   726,     0,     3,
    1468      606,   610,   613,   621,   655,   659,   662,   279,     0,     3,
    1469      605,   620,   654,   279,   279,   413,   279,   279,   279,     0,
    1470        0,     0,     0,   240,   108,     0,   101,     0,     3,     3,
    1471        0,   447,     0,   444,     0,     0,   229,   279,     0,     0,
    1472      126,     0,     0,     0,     0,     0,   126,     0,     0,     0,
    1473        2,     0,     0,     3,   128,   129,     2,   139,   130,   131,
    1474      132,   133,   134,   135,   141,   143,     0,     0,     0,   270,
    1475      279,   279,   531,   641,     0,     0,     0,   524,   630,     0,
    1476        0,   279,   279,   679,   683,   685,   678,   372,   386,   383,
    1477      563,     2,   647,   646,     0,   652,     2,   466,   468,   488,
    1478        3,   496,   497,     0,     2,   492,     3,     3,     0,     0,
    1479      540,     0,     0,   210,     0,     3,    37,   108,   732,   106,
    1480        0,     3,   644,    42,     3,    40,     3,    34,     0,     3,
    1481       98,   100,     0,     2,   635,   636,     0,   697,   279,   702,
    1482      279,     0,     0,     0,     3,   279,   279,   279,   621,     0,
    1483        2,   608,   609,     2,   623,     2,   657,   658,     0,   666,
    1484        0,     3,     0,     3,     3,     3,     3,   398,   397,   401,
    1485        0,   731,     2,     2,   730,   109,     0,     0,     0,     0,
    1486        3,   448,     3,     0,   227,   142,     3,   280,   279,     0,
    1487        0,     0,     0,     2,   187,     0,   185,     0,     0,     0,
    1488        0,     0,     0,   191,     0,   279,   531,   147,   144,   279,
    1489        0,     0,   252,   264,     3,     3,   530,   642,   597,   279,
    1490      279,   279,   353,   357,     0,     2,   681,   682,   279,   251,
    1491      279,     0,   499,   476,   279,     0,     0,   475,   490,     0,
    1492      207,     0,   213,   106,     0,     0,   113,   110,     0,     0,
    1493        0,     0,     0,     0,    24,     0,   638,   279,   564,   699,
    1494      704,   707,   708,   709,     0,     3,     3,   660,   279,   279,
    1495      279,     3,     3,     0,   668,     0,     0,     0,     0,   729,
    1496      279,   279,     3,   528,   109,   455,     0,     0,   230,   280,
    1497        0,     0,     0,     0,   279,   188,   186,     0,   183,   189,
    1498        0,     0,     0,   192,   195,   193,   190,     0,   126,   140,
    1499      138,   228,     0,     0,     0,   279,   279,   108,   279,   405,
    1500      409,   408,     0,   493,     2,   494,     2,   495,   489,   279,
    1501      214,     0,     0,     3,   644,    32,   111,     2,    45,     2,
    1502       43,    41,    29,   109,    27,     3,   710,     0,     0,     3,
    1503        3,     3,     0,     0,   667,   669,   611,   624,   254,     2,
    1504      395,     3,   394,     0,   457,   454,   126,     0,     0,   126,
    1505        3,     0,   126,   184,     0,     2,   200,   194,     0,   108,
    1506      136,   558,   598,     0,   352,   279,     3,     2,     0,     0,
    1507        2,   208,   215,     0,     0,     0,     0,     0,     0,   250,
    1508      249,     0,     0,     0,   670,   671,   279,     0,   456,   148,
    1509        0,     0,     2,   161,   126,   150,     0,   178,     0,   126,
    1510        0,     2,   152,     0,     2,     2,   279,     0,   354,     0,
    1511      279,   498,   500,   491,     0,     0,   111,    38,     3,     3,
    1512      639,   612,   625,   661,   399,   126,   154,   157,     0,   156,
    1513      160,     3,   163,   162,     0,   126,   180,   126,     3,     0,
    1514      279,     0,     2,   279,   279,   684,     2,   209,   216,     0,
    1515        0,     0,   149,     0,     0,   159,   217,   164,     2,   219,
    1516      179,     0,   182,   168,   196,     3,   201,   205,     0,   279,
    1517      355,   279,     0,    39,    46,    44,   155,   158,   126,     0,
    1518      165,   279,   126,   126,     0,   169,     0,     0,   675,   202,
    1519      203,   204,   197,     3,   358,   279,   145,   166,   151,   126,
    1520      220,   181,   176,   174,   170,   153,   126,     0,   676,     0,
     1413       0,     0,     0,     0,     0,     0,     0,     0,   105,     2,
     1414     626,   435,   623,   527,   527,   631,   460,   278,     2,   565,
     1415     566,     0,   577,   578,     0,     2,   720,   723,   108,   278,
     1416       2,   278,     0,   688,   279,   692,   683,   684,   690,     0,
     1417       2,     2,   648,   527,   731,   597,   527,   527,   731,   527,
     1418     611,   527,   527,   662,   417,   645,   527,   527,   653,   660,
     1419     278,   412,   279,     0,     0,   278,   698,   279,   703,   731,
     1420     695,   278,   700,   731,   278,   278,   278,     0,   108,     0,
     1421      17,     2,     0,     0,   440,   729,     0,     0,   446,   225,
     1422       0,   278,     0,     0,     0,   525,   549,   553,   555,   585,
     1423     588,   592,   595,   548,   587,     0,   268,   638,     0,   278,
     1424     261,     0,     0,     0,     0,   259,     2,     0,   243,   516,
     1425     278,     0,     0,     0,     0,   278,   278,     0,     0,   672,
     1426     365,   368,   372,   527,   372,   677,   371,   669,   527,   527,
     1427     348,   356,   364,   357,   527,   359,   362,   278,   730,     0,
     1428       0,   379,   729,   279,     3,   397,     3,   401,   400,   571,
     1429       0,   511,   278,     3,     3,   278,   416,   279,     3,   410,
     1430     411,     2,     0,     0,     0,   465,   290,   278,   461,   463,
     1431       3,     2,     2,     0,   482,     3,     0,   534,   126,     0,
     1432     210,     0,     0,     2,     0,     0,    36,     0,     0,   108,
     1433     278,    21,     0,    22,     0,   672,   431,     0,   106,     3,
     1434       2,    28,     2,     0,    33,     0,     2,    26,   103,   104,
     1435      70,    71,    72,    74,    75,    77,    78,    82,    83,    80,
     1436      81,    85,    86,    88,    90,    92,    94,    96,     0,     0,
     1437     732,   278,     0,     0,     0,   627,   628,   624,   625,   477,
     1438     476,   278,     0,     3,   278,   694,   278,   699,   279,   278,
     1439     278,   278,   642,   685,   641,     2,   278,     0,     0,     0,
     1440       0,     0,     0,     0,     0,   663,     0,   649,   600,   616,
     1441     650,     2,   596,   603,   414,   598,   599,   415,     2,   610,
     1442     619,   612,   613,   646,   647,   661,   689,   693,   691,   731,
     1443     252,     2,   725,     2,   405,   697,   702,   406,     0,   384,
     1444       3,     3,     3,     3,   436,     3,     0,     2,   448,   445,
     1445     730,     0,   441,     2,   444,   447,     0,   278,   226,   248,
     1446       3,   256,   258,     0,   436,     2,   551,   552,     2,   590,
     1447     591,     0,   639,   517,     3,   329,   328,   331,   330,   278,
     1448     518,     0,   519,   278,   358,   360,     2,     0,     0,     0,
     1449       0,   374,   673,   674,   369,   373,   370,   670,   671,   363,
     1450     367,   350,   381,   376,   382,     0,     0,     0,   419,   224,
     1451       0,     0,     3,     2,   648,   412,     0,   507,     0,   731,
     1452     469,     0,   278,   278,   278,     0,   531,   533,   127,     0,
     1453     206,     0,     0,   211,   212,    55,    60,   278,     0,    58,
     1454      57,     0,   125,   673,     0,    67,    68,   107,   112,     3,
     1455     106,     0,     0,     0,    25,    35,     3,     0,    99,     0,
     1456       3,   630,   634,   637,   629,     3,   572,     3,   696,   701,
     1457       2,   278,     3,     3,   279,     0,     3,   602,   606,   609,
     1458     618,   652,   656,   659,   278,     3,   601,   617,   651,   278,
     1459     278,   407,   278,   278,   726,     0,     0,     0,     0,   240,
     1460       0,   101,     0,     3,     3,     0,   442,     0,   439,     0,
     1461       0,   229,   278,     0,     0,   126,     0,     0,     0,     0,
     1462       0,   126,     0,     0,     0,     2,     0,     0,     3,   128,
     1463     129,     2,   139,   130,   131,   132,   133,   134,   135,   141,
     1464     143,     0,     0,     0,   269,   278,   278,   527,     0,   520,
     1465     278,   108,   676,   680,   682,   675,   366,   380,   377,   559,
     1466       2,   644,   643,     0,   649,     2,   462,   464,   484,     3,
     1467     492,   493,     0,     2,   488,     3,     3,     0,     0,   536,
     1468       0,     0,   210,     0,     3,    37,   729,   106,     0,     3,
     1469     641,    42,     3,    40,     3,    34,     0,     3,    98,   100,
     1470       0,     2,   632,   633,     0,     0,   278,     0,     0,     0,
     1471       3,   618,     0,     2,   604,   605,     2,   620,     2,   654,
     1472     655,     0,     0,     3,     0,     3,     3,     3,     3,   392,
     1473     391,   395,     2,     2,   728,   727,   109,     0,     0,     0,
     1474       0,     3,   443,     3,     0,   227,   142,     3,   279,   278,
     1475       0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
     1476       0,     0,     0,     0,   191,     0,   108,   527,   147,   144,
     1477     278,     0,     0,   251,   263,     3,     3,   526,   593,   351,
     1478       2,   678,   679,   278,   250,   278,     0,   495,   472,   278,
     1479       0,     0,   471,   486,     0,   207,     0,   213,   106,     0,
     1480       0,   113,   110,     0,     0,     0,     0,     0,     0,    24,
     1481       0,   635,   278,   560,   249,   704,   705,   706,     0,   657,
     1482     278,   278,   278,     3,     3,     0,   665,     0,     0,     0,
     1483       0,   278,   278,     3,   524,   109,   450,     0,     0,   230,
     1484     279,     0,     0,     0,     0,   278,   188,   186,     0,   183,
     1485     189,     0,     0,     0,   192,   195,   193,   190,   126,   140,
     1486     138,   228,     0,     0,   278,   399,   403,   402,     0,   489,
     1487       2,   490,     2,   491,   485,   278,   214,     0,     0,     3,
     1488     641,    32,   111,     2,    45,     2,    43,    41,    29,   109,
     1489      27,     3,   707,     3,     3,     3,     0,     0,   664,   666,
     1490     607,   621,   253,     2,   389,     3,   388,     0,   452,   449,
     1491     126,     0,     0,   126,     3,     0,   126,   184,     0,     2,
     1492     200,   194,     0,   136,   554,   594,     3,     2,     0,     0,
     1493       2,   208,   215,     0,     0,     0,     0,     0,     0,     0,
     1494       0,     0,   667,   668,   278,     0,   451,   148,     0,     0,
     1495       2,   161,   126,   150,     0,   178,     0,   126,     0,     2,
     1496     152,     0,     2,     2,     0,   278,   494,   496,   487,     0,
     1497       0,   111,    38,     3,     3,   636,   608,   622,   658,   393,
     1498     126,   154,   157,     0,   156,   160,     3,   163,   162,     0,
     1499     126,   180,   126,     3,     0,   278,     0,     2,   681,     2,
     1500     209,   216,     0,     0,     0,   149,     0,     0,   159,   217,
     1501     164,     2,   219,   179,     0,   182,   168,   196,     3,   201,
     1502     205,     0,   278,     0,    39,    46,    44,   155,   158,   126,
     1503       0,   165,   278,   126,   126,     0,   169,     0,     0,   672,
     1504     202,   203,   204,   197,     3,   278,   145,   166,   151,   126,
     1505     220,   181,   176,   174,   170,   153,   126,     0,   673,     0,
    15211506       0,   146,   167,   177,   171,   175,   174,   172,     3,     0,
    1522      477,   173,   198,     3,   199
     1507     473,   173,   198,     3,   199
    15231508};
    15241509
     
    15261511static const yytype_int16 yydefgoto[] =
    15271512{
    1528       -1,   816,   457,   291,    45,   129,   130,   292,   293,   294,
    1529      295,   762,   744,  1134,  1135,   296,   297,   298,   299,   300,
    1530      301,   302,   303,   304,   305,   306,   307,   308,   309,  1037,
    1531      507,   977,   311,   978,   534,   956,  1062,  1526,  1064,  1065,
    1532     1066,  1067,  1527,  1068,  1069,  1457,  1458,  1423,  1424,  1425,
    1533     1509,  1510,  1514,  1515,  1544,  1545,  1070,  1381,  1071,  1072,
    1534     1313,  1314,  1315,  1495,  1073,   960,   961,   962,  1403,  1487,
    1535     1488,   458,   459,   877,   878,  1045,    48,    49,    50,    51,
    1536       52,   329,   152,    55,    56,    57,    58,    59,   331,    61,
    1537       62,   253,    64,    65,   264,   333,   334,    68,    69,    70,
    1538       71,   114,    73,   195,   336,   115,    76,   116,    78,    79,
    1539       80,   438,   439,   440,   441,   679,   922,   680,    81,    82,
    1540      445,   700,   858,   859,   339,   340,   703,   704,   705,   341,
    1541      342,   343,   344,   455,   170,   131,   132,   511,   313,   163,
    1542      629,   630,   631,   632,   633,    83,   117,   478,   479,   948,
    1543      480,   267,   484,   314,    85,   133,   134,    86,  1339,  1114,
    1544     1115,  1116,  1117,    87,    88,   721,    89,   263,    90,    91,
    1545      179,  1039,   665,   393,   121,    92,   490,   491,   492,   180,
    1546      258,   182,   183,   184,   259,    95,    96,    97,    98,    99,
    1547      100,   101,   187,   188,   189,   190,   191,   827,   591,   592,
    1548      593,   594,   595,   596,   597,   598,   559,   560,   561,   562,
    1549      684,   102,   600,   601,   602,   603,   604,   605,   921,   686,
    1550      687,   688,   579,   347,   348,   349,   350,   442,   158,   104,
    1551      105,   351,   352,   698,   556
     1513      -1,   826,   468,   297,    45,   130,   131,   298,   299,   300,
     1514     301,   773,   755,  1122,  1123,   302,   303,   304,   305,   306,
     1515     307,   308,   309,   310,   311,   312,   313,   314,   315,  1032,
     1516     518,   978,   317,   979,   546,   958,  1057,  1476,  1059,  1060,
     1517    1061,  1062,  1477,  1063,  1064,  1412,  1413,  1381,  1382,  1383,
     1518    1460,  1461,  1465,  1466,  1494,  1495,  1065,  1345,  1066,  1067,
     1519    1284,  1285,  1286,  1448,  1068,   962,   963,   964,  1363,  1440,
     1520    1441,   469,   470,   887,   888,  1040,    48,    49,    50,    51,
     1521      52,   341,   155,    55,    56,    57,    58,    59,   343,    61,
     1522      62,   259,    64,    65,   270,   345,   346,    68,    69,    70,
     1523      71,   115,    73,   200,   348,   116,    76,   117,    78,    79,
     1524      80,   449,   450,   451,   452,   690,   924,   691,    81,    82,
     1525     456,   711,   868,   869,   351,   352,   714,   715,   716,   353,
     1526     354,   355,   356,   466,   335,   132,   133,   522,   319,   166,
     1527     644,   645,   646,   647,   648,    83,   118,    85,   489,   490,
     1528     950,   491,   273,   495,   320,    86,   134,   135,    87,  1305,
     1529    1103,  1104,  1105,  1106,    88,    89,   732,    90,   269,    91,
     1530      92,   183,  1034,   678,   405,   122,    93,   501,   502,   503,
     1531     184,   264,   186,   187,   188,   265,    96,    97,    98,    99,
     1532     100,   101,   102,   191,   192,   193,   194,   195,   838,   605,
     1533     606,   607,   608,   196,   610,   611,   612,   571,   572,   573,
     1534     574,   695,   103,   614,   615,   616,   617,   618,   619,   923,
     1535     697,   698,   699,   595,   359,   360,   361,   362,   321,   161,
     1536     105,   106,   107,   364,   709,   568
    15521537};
    15531538
    15541539/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15551540   STATE-NUM.  */
    1556 #define YYPACT_NINF -1297
     1541#define YYPACT_NINF -1269
    15571542static const yytype_int16 yypact[] =
    15581543{
    1559     5063, 10209, -1297,   115, -1297, -1297, -1297, -1297, -1297, -1297,
    1560    -1297,   109, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297,
    1561    -1297, -1297, -1297, -1297, -1297,   252,   252,   252,   866,   397,
    1562      123,  7705,   771, -1297, -1297, -1297, -1297, -1297,   225, -1297,
    1563    -1297, -1297,   776, -1297,  9574, -1297, -1297, -1297, -1297, -1297,
    1564    -1297,   208,   239, -1297,  1099, -1297, -1297, -1297, -1297,   242,
    1565      505,   360,   130,  7814, -1297, -1297,  9642,   626, -1297, -1297,
    1566    -1297,   693,   365,  5846,   163,   733,   693,  1021, -1297, -1297,
    1567      289,   218, -1297,   693,  1254,   275, -1297,   401,   413, -1297,
    1568    -1297, -1297, -1297,   327,   239,   252, -1297,   252, -1297, -1297,
    1569    -1297, -1297, 10445,  1099, -1297, -1297,  1099, -1297, 10504,   344,
    1570    -1297, -1297,   638, 10563, -1297,   771,   771,   771, -1297, -1297,
    1571    -1297,   252, -1297, -1297, -1297,   380,   384, -1297, -1297, -1297,
    1572    -1297,   400, -1297, -1297, -1297, -1297,   457,   466, -1297,   486,
    1573      771,  9150,  2777,    75,   495,   519,   568,   584,   594,   602,
    1574     3892, -1297,   608, -1297,  9710, -1297, -1297, -1297, -1297,   617,
    1575    -1297,   206,  4815, -1297,   643,   243, -1297, -1297, -1297, -1297,
    1576      639,   325,   326,   385,   252,   663, -1297,   505,  1914,   735,
    1577    -1297,    84, -1297,   252,   252,   239, -1297, -1297,   105, -1297,
    1578      252,   252,  2563,   705,   742,   771, 11342, -1297, -1297,   746,
    1579    -1297,  9574, -1297, -1297,   693, -1297, -1297,   239, -1297,  1099,
    1580      208, -1297,  3694, -1297,   771,   771,   771,   239, -1297,   866,
    1581    -1297,  3561, -1297, -1297,   691,   771, -1297,   771, -1297,   769,
    1582    -1297, 10268,   768,   397,   795,   771, -1297,   866,   782,   789,
    1583    -1297,  7705,   852, -1297, -1297, -1297,  3826, -1297, -1297, 11035,
    1584    -1297,   735,   121, 10563,  6255,   638,  2563, -1297,   136, -1297,
    1585    -1297, 10504,  1099,   814, 12170, -1297, -1297,   422, -1297, 11905,
    1586    11622, 11679, 11622, 11736, -1297,   824, -1297, -1297, -1297, -1297,
    1587    11793, 11793,   852,  8832, -1297, 11622,  9256, -1297, -1297, -1297,
    1588    -1297, -1297, -1297,   872, -1297,   996,  2005, 11622, -1297,   482,
    1589      140,   497,   633,   675,   843,   844,   870,   901,    28, -1297,
    1590    -1297,   884,   516, -1297,   314, -1297, -1297,  2777, -1297, -1297,
    1591      551,   911, -1297,   588,   911, -1297,  8938,   933, -1297, -1297,
    1592     1002,  1428,  8472, 11342,   693, -1297,   693,   771,   771, -1297,
    1593    -1297, -1297, -1297, -1297, -1297,   771, 10622,  1099, -1297, -1297,
    1594    10681,  1019, -1297,  3892, -1297, -1297, -1297, -1297, -1297, -1297,
    1595    -1297, -1297,  4608, 11622, -1297, -1297, -1297, -1297, -1297, -1297,
    1596    -1297, -1297, -1297, -1297, -1297, -1297, -1297,   638, -1297,   839,
    1597      916,   938,   940,   867,   949,   963,   970,  1914, -1297, -1297,
    1598      979,   208, -1297, -1297, -1297,   980, -1297, -1297, -1297,  3826,
    1599    -1297, -1297, -1297, -1297, -1297,  2563, -1297,  9150,  9150, -1297,
    1600      638, 12198,  9150,  8124, -1297, -1297, -1297, -1297,  3826,   121,
    1601    -1297, -1297,   693,   239, -1297, -1297,  3826, -1297,  4002, -1297,
    1602    -1297,   771,   771,  9150,  8726, 10740, -1297,   377,  4504, -1297,
    1603      388,   402,   397, -1297, 10268,   981,   975,   397,   771, -1297,
    1604    -1297, -1297, -1297, 11159, -1297,   339,  8392, -1297,   239,   994,
    1605    -1297,   638, 11980,  6754, -1297, -1297, -1297, -1297,   926,  2563,
    1606    -1297,  8537,   735,  6493, -1297, -1297, -1297,   944,   540,   884,
    1607      397, 12170,   276, 10504, -1297, 12170, -1297, -1297, -1297, -1297,
    1608      571, -1297,  1009, -1297, -1297,    18,  8832, -1297, -1297,  8832,
    1609    -1297,  9044,  8832, -1297, -1297, -1297, -1297, -1297,   604,  1010,
    1610      581,  1012, -1297,  7016, -1297, -1297, -1297,   147, -1297, -1297,
    1611     6903, -1297,   152, -1297, -1297, -1297, -1297, -1297, -1297, -1297,
    1612    -1297, -1297, -1297,  6255,  6255, -1297, 11622, 11622, 11622, 11622,
    1613    11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622,
    1614    11622, 11622, 11622, 11622,  5083,  6255, -1297,   516,   886, -1297,
    1615    -1297,   252,   252, -1297, -1297,  9150, -1297, -1297, -1297,   980,
    1616      852, -1297,   980,  7016, -1297,  9362,  1015, -1297, 10799, -1297,
    1617    -1297,   617, -1297,  9846,  1017, -1297,   804, -1297,  1782,   146,
    1618      884, -1297,   252,   252,   884,   236, -1297,   252,   252,   980,
    1619    -1297, -1297,   252,   252, -1297,   911, 10858,  1099, 12111,   198,
    1620      427, 10858, -1297, 11094, -1297,   884, -1297, 10622, -1297,    14,
    1621     1020,  8189,  8189,  1099,  5252,  1014, -1297,   210,  1022, -1297,
    1622     1025,  4815,   367, -1297,  1106,  1099,  8189,   852,   638,   852,
    1623      735,   737,   911, -1297, -1297,   753,   911, -1297, -1297, -1297,
    1624     1060, -1297, 11565,   239, 11159, -1297,   629,  1035,   670,  1036,
    1625    -1297,   699, -1297,  1037,   239, -1297, -1297,  3826,   239,   701,
    1626      889,  1032,  1034,   405,   425,  7368,  1486, 11622,  2366, -1297,
    1627    -1297,  1039,   125,  1039, -1297, -1297, -1297,   252,   252, -1297,
    1628    -1297,   397, -1297,   252, -1297, -1297,  9914,   397,  1038, 11622,
    1629    -1297,   981, 12111, -1297, -1297,  1047, -1297, -1297, -1297,   852,
    1630    -1297, 12046, 11622, -1297,  8189,   610,  8472, -1297, -1297,   617,
    1631     1048,  1050,   944,  2999, -1297, -1297, 12170, -1297, -1297,  1032,
    1632    -1297, -1297,  1053, -1297,  1032,  1056, 11905,  6255,  1045,  1085,
    1633     1059,  1061, -1297,  1062,  1068, -1297,  1075,  1077,  7128, -1297,
    1634     6255, -1297,   581,  1714, -1297,  5360,  6255,  1076,  1078, -1297,
    1635    -1297, -1297,   711, -1297,  6255, -1297, -1297, -1297, -1297, -1297,
    1636    -1297, -1297,   482,   482,   140,   140,   497,   497,   497,   497,
    1637      633,   633,   675,   843,   844,   870,   901, 11622,   667, -1297,
    1638    11159,  1081,  1082,  1083,   886, -1297, -1297, -1297, -1297, -1297,
    1639    11159, 11565,   714,  1084,  7480,  9468,  3892, -1297, -1297,  1086,
    1640     1088, -1297, 10445, -1297, -1297,   804, 11159,   945,  1089,  1090,
    1641     1093,  1094,  1095,  1096,  1100,  4041,  1782, -1297, -1297, -1297,
    1642    -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297,
    1643    -1297, -1297, -1297, -1297,   980, -1297, -1297, -1297,   884, -1297,
    1644    -1297, -1297, -1297, -1297, -1297, -1297, -1297, 10327, -1297, -1297,
    1645     1103,  1105, -1297,   208,  1104,  1078,  5252, -1297, -1297, -1297,
    1646     4608,  1114, -1297, -1297, -1297, -1297,   397,  6608,  1162, -1297,
    1647    -1297, -1297, -1297,  1087,   208, -1297, -1297,   980, -1297, -1297,
    1648      980,   203, 11622,  1109, -1297, -1297, -1297, -1297, -1297, -1297,
    1649    -1297,  3892,   721, -1297,   239, -1297, -1297,   889,  2623,  1120,
    1650     1124, -1297, -1297, -1297,  1123,   848,  1128,  1130,  1132, -1297,
    1651     2366, -1297, -1297, -1297, -1297, -1297, -1297, -1297,   377, -1297,
    1652      975, -1297, -1297,  1133,  1135,  1127, -1297, -1297,  1139,  1140,
    1653    -1297,   610,  1909, -1297,   496, -1297,  2999,   884, -1297,  1137,
    1654    12170, 10917,  9150,  1144, -1297, -1297,  1141,  1145, -1297,  1147,
    1655      301,  1148, -1297,  1146,  1146,  7016,  6255, -1297, -1297,  1146,
    1656     1149, -1297,  1714,  4608, -1297, -1297, -1297, -1297,  1153,  5205,
    1657     6255,  1158,   852,  5252, -1297,  6903, -1297,   852, -1297,  6255,
    1658    -1297,   788,   911, -1297, -1297, -1297, -1297,  5490, -1297,  8938,
    1659    -1297, -1297,  7592,  1159, -1297, -1297, -1297, -1297,  1167, -1297,
    1660      877,   911, -1297,   882,   907,   911, -1297,   771,  1168,  4314,
    1661    -1297, -1297, -1297, 11159, 11159, -1297,  8602,  8602,  8189,  1171,
    1662     1169,  1170,  1177, -1297, -1297,  1176,   557,    37,  1078, -1297,
    1663      852, -1297,  4815, -1297,  6255,   444, -1297,  6884,  1180,  1181,
    1664    11508,  1189,  1191,    15,    96,    38,  6255,  1193,   239,  4178,
    1665    -1297,  1187,  1173, -1297, -1297, -1297,  1192, -1297, -1297, -1297,
    1666    -1297, -1297, -1297, -1297, -1297, -1297,   397,  1198,  6255, -1297,
    1667    11159, 11159,   252,   911,  1200,  1201,  1086, -1297,  2623,   331,
    1668      397,  7016, 10976,   914,   911, -1297, -1297, -1297, -1297, -1297,
    1669    -1297, -1297, -1297, -1297,  1205,  1909, -1297, -1297,  1188, -1297,
    1670     1032, -1297, -1297,   638,  1203, -1297, -1297, -1297,   722,  1202,
    1671    -1297, 11622,  1194,  1085,  1085,  1207, -1297,  6185,  1025,  6255,
    1672     1212,  1153,   307,   288,  1211, -1297,  1207, -1297,  1216,  1211,
    1673    -1297, -1297,  1209, -1297, -1297,   980,  1219, -1297, 10622, -1297,
    1674     7241,  1222,  1223,  1224, -1297, 10386,  8189,  8189, -1297,  1221,
    1675    -1297, -1297,   980, -1297, -1297, -1297, -1297,   980,  6255, -1297,
    1676     6255, 11622,  1228, -1297, -1297, -1297, -1297, -1297, -1297, -1297,
    1677     1231, -1297, -1297, -1297, -1297, -1297, 11622, 11622,  1230,  1234,
    1678     1211, -1297, -1297,   397, -1297, -1297, -1297,  8059, 10917,  6255,
    1679     6255,  1294,  6255, -1297, -1297,  1217, -1297,  1218,  6255,  1220,
    1680     1226,  6255,   831, -1297,  1232,  7016,   252, -1297, -1297,  6608,
    1681     1233,   452, -1297, -1297, -1297, -1297, -1297,   980, -1297,  9778,
    1682     9150, 10268,  1237, -1297,  1243, -1297, -1297,   980, 11314, -1297,
    1683     8537,  1246, -1297, -1297, 10917,   467,   542, -1297,  1251,  1260,
    1684    -1297,   359, -1297,  6255,  1263,  1261, -1297, -1297,  1265,   245,
    1685      257,   852,  1267,  1269, -1297,  1270, -1297, 11159, -1297, -1297,
    1686    -1297, -1297, -1297, -1297,  1272, -1297, -1297, -1297, 11159, 11159,
    1687    11159, -1297, -1297,  1276, -1297,  1277,  1280,  1281,   619, -1297,
    1688     8256,  8364, -1297, -1297,   625, -1297,  1283,  1284, -1297,  8667,
    1689      727,   731,  1288,   740,  6735, -1297, -1297,   543, -1297, -1297,
    1690      756,  1289,   239,  1329,  1338, -1297, -1297,  1290, 11508, -1297,
    1691    -1297, -1297,  1291,  1293,   780,  9973, 10268,  6075, 11159, -1297,
    1692    -1297, -1297,  1292, -1297, -1297, -1297, -1297, -1297, -1297, 10917,
    1693    -1297,  1275,  1327,  1153,   537, -1297, -1297, -1297, -1297, -1297,
    1694    -1297, -1297, -1297,  1295, -1297, -1297, -1297,  1301,  1305, -1297,
    1695    -1297, -1297,  1306,  1308, -1297, -1297, -1297, -1297, -1297, -1297,
    1696    -1297,  1307, -1297,  1309, -1297, -1297, 11508,    90,  6255, 11508,
    1697    -1297,  1313,  6255, -1297,   187,  1328, -1297, -1297,  1315,  5778,
    1698    -1297, -1297, -1297,   332, -1297, 10032, -1297, -1297,  1099,   638,
    1699     1311, -1297, -1297,   800,  1317,  6255,   852,   852,  1320, -1297,
    1700    -1297,  1322,  1323,  1324, -1297, -1297,  8602,  1321, -1297,  1379,
    1701    11622,  1325, -1297, -1297, 11428, -1297,   810, -1297,  1312, 11508,
    1702     1318, -1297, -1297,  1333, -1297,  1341, 10268,  1335, -1297,  1343,
    1703    10917, -1297, -1297, -1297,  1319,  1356,  1339, -1297,  1211,  1211,
    1704    -1297, -1297, -1297, -1297, -1297, 11508,   270, -1297,   951, -1297,
    1705    -1297,  7923, -1297, -1297,  1326,  6255, -1297,  6255,  7923,   239,
    1706    10740,  1345, -1297, 10091, 10268, -1297,  1342, -1297, -1297,  6255,
    1707     1347,  1348, -1297, 11622, 11622, -1297, -1297,   952,   237, -1297,
    1708    -1297,  1331, -1297,   952, -1297, -1297,  1642,   852,   239, 10740,
    1709    -1297, 10150,  1355, -1297, -1297, -1297, -1297, -1297, 11428,  1353,
    1710      952,  7992,  6255, 11348,  1354,   952,  1360,  1642,  2460, -1297,
    1711    -1297, -1297, -1297, -1297, -1297,  9150, -1297, 11193, -1297, 11428,
    1712    -1297, -1297,  1340,  4905, -1297, -1297, 11348,   239,  2460,  1361,
    1713      819, -1297, 11193, -1297, -1297, -1297,  4905, -1297, -1297,   239,
    1714    -1297, -1297, -1297, -1297, -1297
     1544    5632,  9056, -1269,    25, -1269, -1269, -1269, -1269, -1269, -1269,
     1545   -1269,    17, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1546   -1269, -1269, -1269, -1269, -1269,   113,   113,   113,   803,   791,
     1547      56,  6940,   839, -1269, -1269, -1269, -1269, -1269,    59, -1269,
     1548   -1269, -1269,   628,    90,  8532, -1269, -1269, -1269, -1269, -1269,
     1549   -1269,    88,   155, -1269,   911, -1269, -1269, -1269, -1269,   140,
     1550    1450,   287,    96,  4240, -1269, -1269,  8601,  1048, -1269, -1269,
     1551   -1269,  1246,   329,  6299,  1010,   880,  1246,  1728, -1269, -1269,
     1552     332,   328, -1269,  1246,  1769, -1269,   227, -1269,   369,   379,
     1553   -1269, -1269, -1269, -1269,   256,   155,   113, -1269,   113, -1269,
     1554   -1269, -1269, -1269,  9292,   911, -1269, -1269,   911, -1269,  9351,
     1555     266, -1269, -1269,  1507,  9410, -1269,   839,   839,   839, -1269,
     1556   -1269, -1269,   113, -1269, -1269, -1269,   291,   341,   348, -1269,
     1557   -1269, -1269,   361, -1269, -1269, -1269, -1269, -1269,   391,   401,
     1558   -1269,   469,   839,  8040,  1076,   326,   352,   486,   522,   542,
     1559     576,   588,  8805,  6382,   474,   482, -1269,  8669, -1269, -1269,
     1560   -1269, -1269,   571, -1269,    47,  5492, -1269,   596,   239, -1269,
     1561   -1269, -1269, -1269,   597,   315,   324,   359,   113,   614, -1269,
     1562   -1269,  1450,  2466,   659, -1269,   128, -1269,   113,   113,   155,
     1563   -1269, -1269,   131, -1269,   113,   113, -1269,  3629,   647,   656,
     1564     839, 10211, -1269, -1269,   665,  8532, -1269, -1269,  1246, -1269,
     1565   -1269, -1269,   155, -1269,   911,    88, -1269,  7183, -1269,   839,
     1566     839,   839,   155, -1269,   803, -1269,  6072, -1269, -1269,   652,
     1567     839, -1269,   839, -1269,    59,  8040,  9115,   675, -1269,   791,
     1568     684,   839, -1269,   803,   674,   681, -1269,  6940,   744, -1269,
     1569   -1269, -1269,  8471, -1269, -1269,  5138, -1269,   659,    73,  9410,
     1570   10491,  1507,  3629, -1269,   138, -1269, -1269,  9351,   911,   708,
     1571   11267, -1269, -1269,   713, -1269, 11002, 10719, 10776, 10719, 10833,
     1572   -1269,   737, -1269, -1269, -1269, -1269, 10890, 10890,   744,  4439,
     1573     751, 10719,  8146, -1269, -1269, -1269, -1269, -1269, -1269,   766,
     1574   -1269,   828,  1924, 10719, -1269,   465,   544,   763,   389,   621,
     1575     755,   754,   759,   813,    65, -1269, -1269,   782,   510, -1269,
     1576     307, -1269, -1269,  1076, -1269, -1269,   774,   807, -1269,   784,
     1577     807,   815,    59, -1269, -1269,   821,  9292, -1269,   826,  7828,
     1578   -1269, -1269,   715,  2130,  7574, 10211,  1246, -1269,  1246,   839,
     1579     839, -1269, -1269, -1269, -1269, -1269, -1269,   839,  9469,   911,
     1580   -1269, -1269,  9528,  1378, -1269,  9174, -1269, -1269, -1269, -1269,
     1581   -1269, -1269, -1269,   831,  4897, 10719, -1269, -1269, -1269, -1269,
     1582   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1507,
     1583   -1269,   728,   842,   859,   891,   817,   925,   926,   927,  2466,
     1584   -1269, -1269,   865,    88,   869, -1269, -1269,   928, -1269, -1269,
     1585   -1269,  8471, -1269, -1269, -1269, -1269, -1269,  3629, -1269,  8040,
     1586    8040, -1269,  1507, 11295,   911,  7639, -1269, -1269, -1269, -1269,
     1587    8471,    73, -1269, -1269,  1246,   155, -1269, -1269,  8471, -1269,
     1588    6187, -1269, -1269,   839,   839,   339,  9587,   909,  1932,  2385,
     1589   -1269,   377,   414,   791, -1269,  9115,   924,   912,   791,   839,
     1590   -1269, -1269, -1269, -1269,  9947, -1269,   512,  7494, -1269,   155,
     1591     930, -1269,  1507, 11077, 10548, -1269, -1269, -1269, -1269,   824,
     1592    3629, -1269,  7704,   659,  6831, -1269, -1269, -1269,   746,   592,
     1593     782,   791, 11267,   530,  9351, -1269, 11267, -1269, -1269, -1269,
     1594   -1269,   613, -1269,   932, -1269, -1269,    12,  4439, -1269, -1269,
     1595    4439, -1269,  7934,  4439, -1269, -1269, -1269,   933, -1269,   625,
     1596     936,   545,   939, -1269,  8873,  5389, -1269, -1269, -1269,    67,
     1597   -1269, -1269, 10605, -1269,   249, -1269, -1269, -1269, -1269, -1269,
     1598   -1269, -1269, -1269, -1269, -1269, 10491, 10491, -1269, 10719, 10719,
     1599   10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719, 10719,
     1600   10719, 10719, 10719, 10719, 10719, 10719,  4719, 10491, -1269,   510,
     1601    1578, -1269, -1269,   113,   113, -1269, -1269,  8040, -1269, -1269,
     1602     928,   744, -1269,   928, 10662, -1269, -1269, -1269,  4020,  5389,
     1603     938,  8252,   941, -1269,  9646, -1269, -1269,   571, -1269,   942,
     1604    1657,   947,  1802,   198,   782, -1269,   113,   113,   782,   245,
     1605   -1269,   113,   113,   928, -1269, -1269,   113,   113, -1269,   807,
     1606    9705,   911, 11208,   419,   426,  9705, -1269,  9882, -1269,   782,
     1607   -1269,  9469, -1269,   144,  7291,  7291,  7291,   911, -1269, 10434,
     1608     934,   831,   353,   949, -1269,   951,  5492,   583, -1269,  1032,
     1609     911,  7291,   744,  1507,   744,   659,   795,   807, -1269, -1269,
     1610     800,   807, -1269, -1269, -1269,   986, -1269,   807,   155,  9947,
     1611   -1269,   635,   960,   638,   961, -1269,   962,   155, -1269, -1269,
     1612    8471,   155,   958,   436,   443,  9764,  6494,  2437, 10719,  2673,
     1613   -1269, -1269,   956,    32,   956, -1269, -1269, -1269,   113,   113,
     1614   -1269, -1269,   791, -1269,   113, -1269, -1269,  2798,   791,   968,
     1615   10719, -1269,   924, 11208, -1269, -1269,   967, -1269, -1269, -1269,
     1616     744, -1269, 11143, 10719, -1269,  7291,   584,  7574, -1269, -1269,
     1617     571,   969,   972,   746,  2082, -1269, -1269, 11267, -1269, -1269,
     1618     965, -1269, -1269,   984, -1269,   965,   989, 11002, 10491,   944,
     1619    1017,   991,   992,   751,   987,   996, -1269,   997,  1000,  2971,
     1620    6158, -1269, 10491, -1269,   545,  1808, -1269,  5683, 10491,   998,
     1621   -1269, -1269,   831,   639, -1269, 10491, -1269, -1269, -1269, -1269,
     1622   -1269, -1269, -1269,   465,   465,   544,   544,   763,   763,   763,
     1623     763,   389,   389,   621,   755,   754,   759,   813, 10719,   616,
     1624   -1269,  9947,  1005,  1006,  1007,  1578, -1269, -1269, -1269, -1269,
     1625   -1269,  9947,   643, 10719,  7291, -1269,  9469, -1269,  6606,  8358,
     1626    9233,  6382, -1269, -1269, -1269,  1657,  9947,   846,  1012,  1013,
     1627    1015,  1019,  1020,  1023,  1024, -1269,  3182,  1802, -1269, -1269,
     1628   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1629   -1269, -1269, -1269, -1269, -1269,   928, -1269, -1269, -1269,   782,
     1630   -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1025, -1269,
     1631    1026,  1029, -1269, -1269,    88,   998, 10434, -1269, -1269, -1269,
     1632    4897,  1028, -1269, -1269, -1269, -1269,   791,  5798,  1104, -1269,
     1633   -1269, -1269, -1269,  1027,    88, -1269, -1269,   928, -1269, -1269,
     1634     928,   142,   928, -1269, -1269, -1269, -1269, -1269, -1269,  8737,
     1635   -1269,   155, -1269,  9115, -1269, -1269,  1034,   761,  1031,  1038,
     1636    1041, -1269,  2673, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1637    1932, -1269,   912, -1269, -1269,  1044,  1046,  1047, -1269, -1269,
     1638    1042,  1050, -1269,   584,  1953, -1269,   534, -1269,  2082,   782,
     1639   -1269,  1054, 11267,  9823,  8040,  1055, -1269, -1269,  1051,  1056,
     1640   -1269,  1059,   169,  1057, -1269,  1058,  1058,  5389, 10491, -1269,
     1641   -1269,  1058, -1269,  1808,  4897, -1269, -1269, -1269, -1269,  1060,
     1642   10491,  1062,   744, 10434, -1269, 10605, -1269,   744, -1269, 10491,
     1643   -1269,   840,   807, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1644     831,  7828, -1269, -1269,  6718,  1067, -1269,   864,   807, -1269,
     1645     871,   882,   807, -1269,   839,  3327, -1269, -1269, -1269,  9947,
     1646    9947, -1269,  7639,  7639, -1269,  1063,  1064,  1068,  1071, -1269,
     1647    1074,   541,    48,   998, -1269,   744, -1269,  5492, -1269, 10491,
     1648     455, -1269,  6043,  1080,  1081, 10377,  1083,  1084,    55,   173,
     1649      23, 10491,  1085,   155,  4287,  1089,  1086,  1065, -1269, -1269,
     1650   -1269,  1087, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1651   -1269,   791,  1094, 10491, -1269,  9947,  9947,   113,  1095, -1269,
     1652    8997,  8935,   889,   807, -1269, -1269, -1269, -1269, -1269, -1269,
     1653   -1269, -1269, -1269,  1098,  1953, -1269, -1269,  1082, -1269,   965,
     1654   -1269, -1269,  1507,  1097, -1269, -1269, -1269,   650,  1096, -1269,
     1655   10719,  1077,  1017,  1017,  1102, -1269,   951, 10491,  1111,  1060,
     1656     559,    61,  1108, -1269,  1102, -1269,  1113,  1108, -1269, -1269,
     1657    1118, -1269, -1269,   928,  1120,  1121,  6270,  1123,  1124,  1125,
     1658   -1269, -1269,  1122, -1269, -1269,   928, -1269, -1269, -1269, -1269,
     1659     928, 10491, 10491, 10719,  1127, -1269, -1269, -1269, -1269, -1269,
     1660   -1269, -1269, -1269, -1269, -1269, -1269, -1269, 10719, 10719,  1128,
     1661    1133,  1108, -1269, -1269,   791, -1269, -1269, -1269,  7118,  9823,
     1662   10491, 10491,  1180, 10491, -1269, -1269,  1114, -1269,  1117, 10491,
     1663    1135,  1137, 10491,   901, -1269,  1138,  8499,   113, -1269, -1269,
     1664    5798,  1140,   467, -1269, -1269, -1269, -1269, -1269, -1269, -1269,
     1665   -1269, -1269,   928, 10183, -1269,  7704,  1147, -1269, -1269,  9823,
     1666     476,   481, -1269,  1157,  1165, -1269,   201, -1269, 10491,  1166,
     1667    1167, -1269, -1269,  1168,   257,   313,   744,  1169,  1171, -1269,
     1668    1172, -1269,  9947, -1269, -1269, -1269, -1269, -1269,  1174, -1269,
     1669    9947,  9947,  9947, -1269, -1269,  1175, -1269,  1179,  1182,  1183,
     1670     573,  7358,  7466, -1269, -1269,   609, -1269,  1184,  1185, -1269,
     1671    7769,   651,   662,  1141,   664,  5921, -1269, -1269,   508, -1269,
     1672   -1269,   687,  1189,   155,  1237,  1240, -1269, -1269, 10377, -1269,
     1673   -1269, -1269,  1193,  1197,  9947, -1269, -1269, -1269,  1196, -1269,
     1674   -1269, -1269, -1269, -1269, -1269,  9823, -1269,  1190,  1231,  1060,
     1675     253, -1269, -1269, -1269, -1269, -1269, -1269, -1269, -1269,  1204,
     1676   -1269, -1269, -1269, -1269, -1269, -1269,  1211,  1215, -1269, -1269,
     1677   -1269, -1269, -1269, -1269, -1269,  1219, -1269,  1218, -1269, -1269,
     1678   10377,   147, 10491, 10377, -1269,  1225, 10491, -1269,   264,  1239,
     1679   -1269, -1269,  1229, -1269, -1269, -1269, -1269, -1269,   911,  1507,
     1680    1233, -1269, -1269,   704,  1228, 10491,   744,   744,  1248,  1249,
     1681    1250,  1251, -1269, -1269,  7639,  1256, -1269,  1301, 10719,  1259,
     1682   -1269, -1269, 10297, -1269,   716, -1269,  1224, 10377,  1235, -1269,
     1683   -1269,  1268, -1269,  1282,  1270,  9823, -1269, -1269, -1269,  1252,
     1684    1302,  1273, -1269,  1108,  1108, -1269, -1269, -1269, -1269, -1269,
     1685   10377,    54, -1269,   897, -1269, -1269,  7049, -1269, -1269,  1255,
     1686   10491, -1269, 10491,  7049,   155,  9587,  1283, -1269, -1269,  1280,
     1687   -1269, -1269, 10491,  1284,  1285, -1269, 10719, 10719, -1269, -1269,
     1688     966,    99, -1269, -1269,  1266, -1269,   966, -1269, -1269,  2561,
     1689     744,   155,  9587,  1290, -1269, -1269, -1269, -1269, -1269, 10297,
     1690    1286,   966,  3510, 10491, 10217,  1287,   966,  1294,  2561,  3047,
     1691   -1269, -1269, -1269, -1269, -1269,  8040, -1269, 10062, -1269, 10297,
     1692   -1269, -1269,  1274,  9981, -1269, -1269, 10217,   155,  3047,  1297,
     1693     717, -1269, 10062, -1269, -1269, -1269,  9981, -1269, -1269,   155,
     1694   -1269, -1269, -1269, -1269, -1269
    17151695};
    17161696
     
    17181698static const yytype_int16 yypgoto[] =
    17191699{
    1720    -1297,  4539,  3474, -1297,    22, -1297,    -1,     2,   817, -1297,
    1721    -1297, -1297,  -495,  -902,  -132,  5887, -1297,  1449,   523,   552,
    1722      430,   558,   919,   920,   921,   922,   924, -1297,   150,  -242,
    1723     5319,   346,  -694,  -917, -1297,    87,  -701,   234, -1297,   157,
    1724    -1297,   254, -1077, -1297, -1297,    -6, -1297, -1273,  -892,    95,
    1725    -1297, -1297, -1297, -1297,   -60, -1267, -1297, -1297, -1297, -1297,
    1726    -1297, -1297,   168,   -11,    51,   368, -1297,   375, -1297,    33,
    1727    -1297,  -295, -1297, -1297, -1297,   432,  -848, -1297, -1297,     6,
    1728     -970,    26,  2983, -1297, -1297, -1297,  -117, -1297,    66,   718,
    1729      -14,  1458,  4231, -1297, -1297,    55,   134,   124,  -247,  1805,
    1730    -1297,  1752, -1297, -1297,   135,  2146, -1297,  2351,  1577, -1297,
    1731    -1297,  -431,  -435,  1074,  1079,   582,   830,   342, -1297, -1297,
    1732     1070,   585,  -481, -1297,  -462,   -65,  -412, -1297, -1297,  -973,
    1733     -968,   783,  1252,   948,   156, -1297,    83,   233,  -297,  -199,
    1734     -148,   548,   655, -1297,   904, -1297,  2844,  -402,   807, -1297,
    1735    -1297,   590, -1297,  -393, -1297,   101, -1297, -1297, -1297, -1251,
    1736      299, -1297, -1297, -1297,  1071, -1297,    63, -1297, -1297,  -839,
    1737     -111, -1296,  -104,  2118, -1297,  3091, -1297,   811, -1297,  -172,
    1738     1440,  -168,  -165,  -162,     4,   -37,   -34,   -32,   611,    36,
    1739       67,    71,  -161,  -156,  -154,  -153,  -138,  -284,  -490,  -488,
    1740     -486,  -538, -1297,  -480, -1297, -1297,  -524,  -520,  -505,  -499,
    1741     1640,  5025,  -528,  -541,  -515,  -512,  -459, -1297,  -388,  -645,
    1742     -634,  -633,  -576,  -124,  -277, -1297, -1297,   710,   153,   -86,
    1743    -1297,   361,   821,  -610,  -304
     1700   -1269,  3902,  2604, -1269,   354, -1269,    -1,     2,   742, -1269,
     1701   -1269, -1269,  -489,  -961,  -282,  4749, -1269,   570,   459,   468,
     1702     357,   464,   844,   848,   849,   847,   850, -1269,  -229,  -231,
     1703    4555,   296,  -694,  -919, -1269,   166,  -721,   143, -1269,    86,
     1704   -1269,   216, -1143, -1269, -1269,   -17, -1269, -1146, -1036,    71,
     1705   -1269, -1269, -1269, -1269,   -75, -1160, -1269, -1269, -1269, -1269,
     1706   -1269, -1269,   141,   -26,    21,   316, -1269,   320, -1269,    13,
     1707   -1269,  -294, -1269, -1269, -1269,   364,  -829, -1269, -1269,    11,
     1708    -963,   125,  1704, -1269, -1269, -1269,   -72, -1269,    82,    49,
     1709     -18,  1039,  3754, -1269, -1269,    81,   133,   536,  -256,  1629,
     1710   -1269,  1307, -1269, -1269,   224,  1625, -1269,  1893,  1163, -1269,
     1711   -1269,  -426,  -421,   993,   994,   507,   747,   306, -1269, -1269,
     1712     980,   516,  -433, -1269,  -199,    75,   591, -1269, -1269,  -894,
     1713   -1000,     6,   910,   861,   176, -1269,   721,   158,  -317,  -210,
     1714    -149,   478,   577, -1269,   809, -1269,  2211,   740,  -443,   722,
     1715   -1269, -1269,   511, -1269,  -232, -1269,   -46, -1269, -1269, -1269,
     1716   -1268,   243, -1269, -1269, -1269,   981, -1269,    -7, -1269, -1269,
     1717    -827,   -35, -1227,  -161,  1978, -1269,  3527, -1269,   719, -1269,
     1718    -157,    41,  -172,  -170,  -163,     4,   -41,   -36,   -34,   777,
     1719      24,    33,    45,  -143,  -151,  -150,  -145,  -139,  -288,  -529,
     1720    -505,  -476,  -564,  -323,  -560, -1269, -1269,  -516,   899,   906,
     1721     915,  1643,  4256,  -522,  -566,  -549,  -514,  -546, -1269,  -372,
     1722    -680,  -674,  -672,  -603,  -208,  -186, -1269, -1269,    64,   293,
     1723     -93, -1269,  3162,   208,  -613,  -396
    17441724};
    17451725
     
    17471727   positive, shift that token.  If negative, reduce the rule which
    17481728   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1749 #define YYTABLE_NINF -507
     1729#define YYTABLE_NINF -503
    17501730static const yytype_int16 yytable[] =
    17511731{
    1752      109,   257,    46,   690,    94,   144,   388,   110,   145,   380,
    1753      146,   420,   381,   696,   365,   382,   250,   389,   139,   661,
    1754      871,   383,   487,   384,   385,   763,    53,   111,   495,  1074,
    1755      846,   916,   671,    46,   795,    94,   957,   791,  1075,   386,
    1756      669,   672,   917,   918,    46,   822,    46,   590,   155,   685,
    1757      828,    47,   792,  1177,  1178,    66,    46,    53,   793,  1179,
    1758      829,   975,    46,  1131,   185,    46,    60,   207,    46,   614,
    1759      217,   823,   210,   618,   824,   391,   169,  1196,   147,   729,
    1760      107,   406,    47,   734,   388,  1139,    66,   380,  1400,   202,
    1761      381,   933,   211,   382,   138,   389,   818,    60,   819,   383,
    1762      820,   384,   385,   107,   653,    46,   821,   916,    46,   148,
    1763      657,   659,   136,   149,    46,   465,   553,   386,   917,   918,
    1764      738,    30,   754,   664,  1459,   169,  1186,   739,   169,   460,
    1765      832,   668,  1420,  1421,    67,    74,   839,   555,  1190,  1204,
    1766      144,   862,    30,   145,    46,   146,   155,   464,   466,  1208,
    1767      554,  1463,  1187,   103,   103,   880,    46,   193,   355,   860,
    1768      860,   107,    30,   232,   234,    67,    74,     2,   197,     4,
    1769        5,     6,     7,    30,   860,   727,   242,   318,   390,    46,
    1770       46,   409,   155,    30,   103,   242,   733,   392,  1459,  1476,
    1771      118,   220,   651,   724,    46,   221,  1422,   204,   225,  1195,
    1772      227,   194,   580,    46,   746,   155,   400,   235,   392,   166,
    1773      119,    46,   107,   147,    46,   648,   423,   107,   144,   103,
    1774     1206,   145,   465,   146,   137,    34,   649,    35,   392,  1420,
    1775     1421,   169,   818,   940,   819,  1463,   820,   470,   421,   392,
    1776     1463,   454,   895,    46,   148,    94,  1534,   830,   149,   587,
    1777      759,   243,   860,   539,   540,   765,  1463,    46,    46,   251,
    1778      155,   690,   252,  1463,    46,   681,   640,    53,   799,  1547,
    1779      994,    46,  1179,    30,   822,   107,   683,   135,   516,  -218,
    1780     -218,   505,   460,   107,   169,   135,   833,    -3,  1021,    30,
    1781      836,   169,    47,  1431,   655,  1141,    66,   648,  1022,   660,
    1782      823,   460,   849,   824,   452,  1082,   850,    60,   649,   460,
    1783      107,   853,   461,   867,   359,   856,   446,  1177,  1178,    46,
    1784      427,   355,   107,  1179,   233,   818,   141,   819,   220,   820,
    1785      360,   162,    46,    46,  1196,  1008,  1343,   837,   449,   587,
    1786      855,   107,   398,   135,  -218,   164,   422,   718,  1347,    46,
    1787      174,   368,   169,    46,   107,  1210,   135,   229,   832,  1483,
    1788     1349,   106,   106,   192,   417,   419,  1259,   369,  -275,   169,
    1789      508,  1074,   904,   169,   425,    67,    74,   730,   990,    46,
    1790     1075,    74,   731,   237,   795,  1187,   724,   791,   995,    46,
    1791      230,   355,   106,  1260,   103,   231,   107,   107,   135,   135,
    1792      822,   240,   792,  1122,  1009,   159,   717,    46,   793,  -109,
    1793     1123,  -109,    46,  -502,   829,  -109,   564,   818,   472,   819,
    1794      494,   820,   565,   846,   209,   489,   823,   106,   242,   824,
    1795     -109,  -109,  1230,   371,   373,   919,  1533,  1231,  1436,    46,
    1796      509,   708,    36,  1454,   176,   628,    39,   709,  1179,   372,
    1797      374,   580,  1542,    40,    41,   109,  1382,   932,   220,  1546,
    1798      225,  1341,   107,    46,   135,   461,   204,   254,  1342,   159,
    1799      873,    46,   627,   355,   262,    46,   874,    94,   676,    46,
    1800      392,   -10,   580,   872,   461,  -430,   677,   580,   678,   487,
    1801     1137,  1196,   461,   375,   656,   658,   691,   813,  1196,    53,
    1802      743,   266,   159,   615,  1448,  1449,   388,   619,   380,   376,
    1803      693,   381,   692,   691,   382,   357,   760,   389,  1255,   743,
    1804      383,   766,   384,   385,    47,   695,   694,   882,    66,   911,
    1805      446,   851,  1096,   693,    74,   852,   884,   715,   386,    60,
    1806      685,  1196,  1020,   482,  1025,   483,   220,  1180,  1110,   912,
    1807      460,   718,  1193,    74,  1164,  1166,   861,   861,   268,  1118,
    1808     1193,    74,   159,   728,   994,   732,   860,   269,  1194,   454,
    1809       36,   861,   176,   209,    39,  1334,  1321,  1022,   541,   542,
    1810      666,    40,    41,   508,  1096,    46,   508,   270,    46,   508,
    1811       46,  1335,   443,   536,   937,  1508,   204,   319,   537,   538,
    1812      851,  1513,   106,  1380,  1106,   810,   177,    67,    74,    46,
    1813      717,  1174,  1175,  1489,   357,   710,   178,   557,  1529,   392,
    1814     1489,   320,   159,  1536,   718,    46,   103,   558,   805,   169,
    1815        2,   197,     4,     5,     6,     7,   881,    46,   883,  -109,
    1816       46,   788,   725,  1107,   443,   169,  1405,   159,   726,   861,
    1817     1336,   750,   566,   509,   392,   156,   509,   169,   219,   509,
    1818     -109,  -102,  1020,  1530,  1033,  -102,  1337,  1383,  1224,  1225,
    1819      321,   186,    46,   735,   208,  1275,  1276,   218,    46,   736,
    1820       46,  1430,   752,   717,   392,  1079,   322,   581,    34,   570,
    1821       35,   392,   753,   607,   860,   860,   323,     2,   197,     4,
    1822        5,     6,     7,    36,   324,   176,   749,    39,   936,   354,
    1823      868,   941,   750,   587,    40,    41,   543,   544,   358,   112,
    1824     1149,   942,  1041,  1368,    46,    46,  1007,  1369,  -454,   740,
    1825     -454,   896,   741,   461,  -454,   747,  -276,   750,    46,   255,
    1826      370,   715,   422,     8,     9,    10,    11,    12,   648,   256,
    1827      366,   545,   546,   156,   157,    34,   681,    35,   169,   649,
    1828      547,   548,   153,   848,  1491,   356,  1492,   683,   159,   159,
    1829       30,   813,   898,   159,   927,   750,   989,   461,   750,   863,
    1830      930,     8,     9,    10,    11,    12,    36,   378,  1086,   156,
    1831       39,   879,   390,    33,   159,   159,   443,    40,    41,   443,
    1832     1325,   900,    74,   906,  1020,   443,   407,   565,    30,   565,
    1833      894,  1531,   156,   984,   715,   430,   996,    46,   157,   985,
    1834      248,   903,   709,   424,  1247,   905,   153,   494,    46,  1376,
    1835      565,    33,   719,  1377,   106,   750,   204,  1324,   885,   750,
    1836      392,    36,  1379,   408,   159,    39,    74,   412,   750,   494,
    1837      204,   315,    40,    41,   888,  1355,   392,   443,  1384,   312,
    1838      443,   805,   159,   443,   750,   160,  1359,  1360,  1361,    36,
    1839      433,  1270,   916,    39,   444,   580,  1061,    42,  1149,  1249,
    1840       40,    41,  1393,   917,   918,  1311,  1312,   142,   565,  1143,
    1841      690,   392,   489,   813,  1191,  1395,     8,     9,    10,    11,
    1842       12,   447,  1444,    53,    46,   815,   450,   587,  1445,    46,
    1843       46,   415,  1464,   451,   410,   588,  1396,   107,   750,   414,
    1844      473,  1550,    46,    30,   810,   501,   159,   565,   356,   160,
    1845       46,   125,    66,   126,   127,   128,   581,   988,   204,   808,
    1846      242,   318,   392,    60,  1292,  1293,    33,   516,    46,   437,
    1847      318,   392,  1149,   628,    36,   549,   805,  1111,    39,  1046,
    1848      690,  1176,   316,   861,   550,    40,    41,   581,   400,   644,
    1849      392,   415,   581,   776,   777,   778,   779,  1112,  1160,   414,
    1850      392,  1133,   477,  1163,   743,   587,  1133,   557,   552,   392,
    1851      907,   551,   392,   512,  1420,  1421,   157,   558,   356,    46,
    1852      908,   510,  1242,  1168,   153,  1473,   813,   555,  1165,    36,
    1853      587,    67,    74,    39,   568,  1235,  1036,   392,   641,   810,
    1854       40,    41,   416,   923,  -277,   923,   718,   470,   318,   392,
    1855      103,     8,     9,    10,    11,    12,   719,   583,   690,  1133,
    1856      642,   813,   643,  1501,   577,   722,   830,   318,   587,  1061,
    1857     1149,   645,  1205,  1207,  1209,   723,   628,   443,    30,  1484,
    1858     1485,  1087,   772,   773,   612,   646,   690,    36,   616,   167,
    1859      168,    39,   647,    53,   517,   518,   519,   943,    40,    41,
    1860      650,    33,   416,   247,    36,   717,   167,   168,    39,   697,
    1861       46,   861,   861,   774,   775,    40,    41,   520,   699,   521,
    1862     -222,   522,  1198,   354,   103,   780,   781,   160,  1520,   719,
    1863      737,  1063,   751,   461,   755,    46,   718,   315,   315,   807,
    1864      358,   814,   315,   -12,   857,   312,   312,  1348,  1350,  1351,
    1865      312,   869,  1540,   870,   876,   279,   422,   897,   899,  1140,
    1866      726,   902,   565,   315,   315,   931,   805,   582,   677,  -404,
    1867     1096,   312,   670,   437,   952,  -506,   437,   945,   954,  1046,
    1868      959,   963,   437,   964,    36,   607,   167,   168,    39,   958,
    1869      967,   966,  1232,  1233,   112,    40,    41,   968,  1456,   969,
    1870      979,    67,    74,   991,   992,   993,   980,  1004,   997,  1005,
    1871     1076,  1010,  1011,   315,  1036,  1012,  1013,  1014,  1015,   477,
    1872      103,   312,  1016,   477,   210,  -392,   512,  -391,  1034,   512,
    1873     1078,   315,   512,  1083,   510,  1212,   715,   510,  1061,   312,
    1874      510,  1043,  1089,   202,   211,  1371,  1090,  1092,   316,   316,
    1875     1093,    46,  1094,   316,  1095,  1101,   706,  1100,   106,  1109,
    1876     1099,  1506,  1456,  1102,  1103,    53,  1119,  1120,  1121,   750,
    1877     1111,   810,   973,  1127,   316,   316,  1124,  -278,  1133,  1133,
    1878     1133,  1129,  1132,  1155,     8,     9,    10,    11,    12,  1158,
    1879     1112,   494,  1169,  1181,    66,   315,  1298,  1182,  1183,  1184,
    1880     1185,  1199,  1200,   312,  1201,    60,  1300,  1301,  1442,  1303,
    1881     1202,    30,  1203,   577,  1211,  1307,  1216,  1217,  1310,    -3,
    1882     1222,   811,  1228,   813,   316,  1229,   715,  1239,  1248,   482,
    1883     1243,  1266,   106,   159,    33,  1253,  1257,  1061,  1250,  1261,
    1884     1264,  1268,   316,  1277,   845,   421,  1271,  1272,  1273,   577,
    1885       53,   204,  1284,  1289,  1294,   854,   494,   494,  1295,  1302,
    1886     1320,  1305,  1306,  1326,  1308,  1111,   388,  1327,  1332,   380,
    1887     1309,   103,   381,    67,    74,   382,  1316,   389,  1338,  1198,
    1888      581,   383,  1340,   384,   385,  1112,   648,  1344,  1345,  1346,
    1889      461,  1352,   103,  1353,  1354,  1061,  1356,   649,  1061,   386,
    1890     1364,  1365,  1366,  1367,  1312,  1519,   316,  1374,  1375,  1378,
    1891     1385,    46,  1388,  1391,  1389,  1392,   582,   103,  1397,  1401,
    1892       46,    46,  1402,  1409,  1405,  1133,  1133,  1410,   106,  -393,
    1893     1414,   810,  1415,  1418,   437,  1429,  1435,  1433,  1443,  1455,
    1894      169,  1446,  1450,  1061,  1451,  1452,  1453,   847,  1061,  1369,
    1895     1471,  1478,   582,   422,  1460,  1469,  1465,   706,    67,    74,
    1896       93,  1474,  1467,  1477,   477,  1475,  1111,  1498,  1479,  1502,
    1897     1490,  1504,  1505,  1063,  1061,  1512,  1525,   103,    63,   113,
    1898     1528,  1535,  1537,  1549,  1543,  1426,  1112,   891,   782,  1386,
    1899      783,    93,   784,  1319,   785,  1256,  1437,   786,  1507,  1432,
    1900      144,  1387,   143,   145,    93,   146,  1551,    53,  1523,    63,
    1901      140,  1251,   103,    36,    53,   585,  1521,    39,    46,  1252,
    1902      181,  1493,   154,    93,    40,    41,    93,  1061,  1221,   673,
    1903     1097,   719,  1061,   924,   674,  1098,  1198,   701,   802,    46,
    1904       46,  1128,   155,  1198,   212,  1042,  1061,   461,  1061,   586,
    1905     1006,   587,  1061,   947,   461,  1061,   875,    53,  1108,   588,
    1906       46,  1061,   355,  1333,   720,  1061,     0,   955,     0,     0,
    1907        0,    36,  1390,   176,  1441,    39,     0,     0,   209,   106,
    1908      249,     0,    40,    41,     0,     0,  1198,     0,     0,     0,
    1909      494,     0,     0,   706,     0,   811,     0,   461,     0,     0,
    1910      106,     0,    93,   706,     0,     0,     0,   676,     0,   392,
    1911        0,   159,   443,   103,    93,    67,    74,   678,     0,   706,
    1912      317,   719,    67,    74,     0,   106,     0,     0,   332,     0,
    1913     1419,     0,     0,  1427,   103,     0,     0,   379,   181,     0,
    1914        0,   103,     0,     0,     0,     0,  1494,     0,     0,     0,
    1915        0,     0,     0,   494,   494,     0,   387,     0,     0,     0,
    1916      206,    93,     0,     0,     0,    67,    74,     0,     0,     0,
    1917      405,     0,    93,   140,   411,  1522,     0,     0,  1462,   154,
    1918      209,     0,   315,  1466,   103,   106,     0,     0,   477,  1113,
    1919      312,     0,     0,     0,     0,     0,     0,     0,     0,   428,
    1920        0,    93,     0,   431,     0,   432,   443,   443,     0,  1482,
    1921      206,     0,     0,   448,  1548,   468,     0,   811,     0,    63,
    1922      106,     0,     0,     0,   462,   707,  1553,    36,     0,   176,
    1923        0,    39,     0,     0,   469,  1147,     0,   845,    40,    41,
    1924        0,   498,   411,     0,     8,     9,    10,    11,    12,     0,
    1925        0,   206,     0,     0,   514,   515,     0,     0,     0,     0,
    1926        0,     0,     0,  1517,     0,   392,   535,     0,     0,     0,
    1927        0,    30,    72,  1518,     0,     0,   443,    93,     0,     0,
    1928        0,  1541,     0,     0,     0,     0,     0,  1541,     0,     0,
    1929        0,   589,     0,   316,    33,   515,  1541,     0,     0,     0,
    1930     1541,     0,     0,    72,   578,     0,     0,     0,     0,   206,
    1931        0,   608,     8,     9,    10,    11,    12,   443,     0,     0,
    1932        0,   106,     0,     0,   613,     0,   706,   706,   613,     0,
    1933      811,   332,   515,     0,     0,   752,     0,   392,   213,    30,
    1934      847,   394,   106,     0,     0,   753,   206,   181,   402,   106,
    1935      206,   443,     0,     0,   443,   443,     0,     0,     0,     0,
    1936        0,     0,    33,     0,     0,   811,     0,    36,     0,   585,
    1937        0,    39,     0,     0,     0,     0,     0,   462,    40,    41,
    1938      443,     0,   443,   706,   706,     0,  1269,     0,   205,     0,
    1939        0,   332,   106,  1147,     0,     0,   462,   682,   223,     0,
    1940        0,     0,     0,   586,   462,   587,   159,     0,     0,     0,
    1941        0,     0,     0,   588,     0,     0,     0,     0,   394,     0,
    1942        0,     0,   335,     0,     0,     0,   707,     0,     0,   206,
    1943        0,   702,     0,    93,   411,     0,     0,   589,   205,     8,
    1944        9,    10,    11,    12,     8,     9,    10,    11,    12,   716,
    1945        0,    63,     0,     0,     0,     0,     0,     0,     0,   411,
    1946      315,     0,     0,   411,     0,     0,    30,  1147,   312,   437,
    1947        0,    30,   563,     0,     0,     0,     0,     0,     0,   205,
    1948      567,     0,  1113,   571,     0,     0,     0,     0,     0,    33,
    1949        0,   332,     0,   429,    33,     0,     0,     0,     0,    36,
    1950        0,   176,     0,    39,     0,   769,   770,   771,   206,     0,
    1951       40,    41,     0,    72,     0,     0,     0,     0,    72,     0,
     1732     110,   146,    46,   445,    95,   432,   147,   918,   148,   392,
     1733     256,   393,   111,   919,   141,   920,   377,   857,   394,   498,
     1734     609,    47,   403,  1161,   140,   400,  1127,   959,   701,   707,
     1735     395,   396,   881,    46,   832,    95,   397,  1360,   839,   401,
     1736     831,    94,   398,   774,    46,   506,    46,   505,   158,   740,
     1737     113,   833,    47,   745,   806,   604,    46,   843,  1069,   337,
     1738    1070,  1119,    46,   850,   189,    46,   149,   212,    46,    30,
     1739     222,   828,    94,   976,  1171,   150,   696,   215,   263,  1177,
     1740     840,    66,    60,   145,   918,    94,   834,   151,   108,   392,
     1741     919,   393,   920,   156,   738,   829,   475,   477,   394,   935,
     1742     119,   185,   672,   674,    94,   400,    46,    94,   160,    46,
     1743     395,   396,    66,    60,   749,    46,   397,   668,   120,   401,
     1744     108,   750,   398,   198,   830,    53,   112,  1429,  1159,  1160,
     1745     402,   596,   108,    67,  1189,   404,   677,  1167,   169,  1234,
     1746     146,  -218,  -218,  1436,   681,   147,    46,   148,   158,   766,
     1747      30,  1414,   254,   565,    46,   371,    53,   139,   156,    46,
     1748     143,   367,   418,  1168,    67,    30,  1235,   199,    30,  1168,
     1749     770,   372,   628,   160,   476,    30,   632,   744,   439,  1185,
     1750     471,   249,   421,    46,    46,    94,   158,   566,   206,  1378,
     1751    1379,   216,   318,   666,   152,   757,   208,   460,    94,    46,
     1752     735,   334,   872,   873,   828,   149,  -218,    46,   844,   158,
     1753    1414,   165,   847,  1176,   150,  1161,    46,   528,   890,    46,
     1754     146,   435,   391,   185,    74,   147,   151,   148,   829,   248,
     1755     173,   404,   412,   864,   404,    30,  1418,   867,   108,   481,
     1756     463,   404,   663,   587,  1077,   476,    94,   465,   177,    46,
     1757     422,    95,   163,  1380,   426,    74,   664,   830,    94,   832,
     1758     810,   167,  1161,    46,    46,  1005,   158,   567,    47,   427,
     1759      46,  1111,   337,  1017,   729,   410,   833,    46,  1112,   609,
     1760     257,   843,    30,   258,   318,   448,   701,   516,    94,   994,
     1761     197,   692,   942,   104,   104,  1129,   828,  1187,   429,   841,
     1762     453,   601,   479,  1307,  1484,   694,  1378,  1379,   437,  1309,
     1763    1308,   834,  1177,  1418,   108,  1018,   426,   163,  1418,   488,
     1764     829,  1483,   108,   663,   104,    46,  1497,   367,    66,    60,
     1765    1191,   427,  -274,  1418,   472,   243,  1492,   664,   521,   471,
     1766    1418,   156,   433,  1496,    46,    46,   848,   380,   601,   830,
     1767     434,   322,   776,   523,   655,  -109,   160,   248,   471,   104,
     1768    1313,    46,  1365,   381,    94,    46,   471,  1159,  1160,   246,
     1769    1389,  1069,    53,  1070,  1161,   520,  -109,   832,   108,  -498,
     1770      67,   997,   670,   596,   603,   586,   911,   675,   593,   260,
     1771     431,    46,   -10,   108,   833,   136,   137,   108,   857,   136,
     1772     234,    46,   817,   367,  1459,  1403,  1404,   626,   172,   576,
     1773    1464,   630,   596,   428,   334,   577,  1315,   596,   108,    46,
     1774     136,   137,   840,   383,    46,  1479,    46,   248,   324,   834,
     1775    1486,   337,   385,   235,   239,   870,   870,   870,   236,   384,
     1776     185,   682,  -424,   322,   483,   866,  1346,   577,   386,  -425,
     1777      46,   500,   870,  1177,   325,   519,   877,   921,   172,   505,
     1778    1177,   172,   272,  1021,  1147,  1149,   110,   387,   318,   318,
     1779     717,    74,   555,   556,    46,   428,    74,   208,   729,   934,
     1780    1409,   505,    46,   388,   367,   702,    46,  1080,    95,   693,
     1781      46,   498,   274,   472,   894,   448,  1125,   882,   448,  1177,
     1782     163,   703,   275,  1230,   448,    47,   172,   557,   558,  1099,
     1783     453,   754,   472,   453,   609,   392,   113,   393,   173,   453,
     1784     472,   679,   704,   860,   394,    94,   870,   861,   771,   603,
     1785     862,   754,   400,   777,   863,   629,   395,   396,   705,   633,
     1786     104,   488,   397,   318,   702,   488,   401,   598,   398,  1016,
     1787    1085,   704,   729,  1096,  1344,   721,   521,   728,   696,   521,
     1788     914,   318,   521,  1174,   726,    66,    60,   915,   172,   988,
     1789     276,   523,  1018,   334,   523,  1174,   548,   523,   365,  1175,
     1790     465,   549,   550,   366,  1300,   671,   673,  1442,   326,  1302,
     1791      46,  1291,   337,   520,  1442,   108,   520,   136,   137,   520,
     1792    1301,  1085,    46,   225,    46,  1303,   208,   226,   471,    53,
     1793     230,   569,   232,   404,   719,   870,   762,    67,   892,   241,
     1794     720,   570,   172,    46,   327,  1388,   318,   322,   322,   172,
     1795     999,   741,  1347,  1480,   817,    74,   742,   815,   862,    46,
     1796     593,   827,  1095,   603,   328,  -102,   764,  1031,   404,  -102,
     1797     939,   891,    46,   893,    74,    46,   765,   551,   552,   701,
     1798    1016,  -109,    74,  -109,  1029,   751,   337,  -109,   752,   856,
     1799     819,   758,   370,   519,   593,   717,   519,  1332,   329,   519,
     1800     865,  1333,  -109,  -109,  1074,   943,   883,   601,   642,    46,
     1801     330,    46,   884,    36,   736,   944,   172,    39,   382,  1444,
     1802     737,  1445,   322,   378,    40,    41,   559,   560,    74,   871,
     1803     871,   871,  -449,   172,  -449,   746,   402,   172,  -449,   938,
     1804     322,   747,  1107,   817,   762,   989,   871,   761,   917,    42,
     1805     693,  1036,   799,   762,   334,    46,    46,   905,   390,   144,
     1806     907,   984,  1481,   762,   225,   996,   762,   985,   419,    46,
     1807     138,   720,  1222,  1340,   903,   434,   448,   420,   577,   762,
     1808    1128,   728,   472,   910,  1341,   663,  1343,   912,   726,   424,
     1809     762,   453,   762,   692,   827,   603,   442,   104,   172,   664,
     1810      36,   455,   170,   171,    39,   322,   488,   694,   918,  1348,
     1811     458,    40,    41,   596,   919,   762,   920,   859,   461,   598,
     1812     871,   237,   240,   211,   472,   462,  1399,   717,   334,   108,
     1813    1031,    36,  1400,   874,   484,    39,   366,   717,  1419,  1500,
     1814     238,   159,    40,    41,   762,   577,   889,    46,   858,   248,
     1815     324,   404,   717,   598,   493,   728,   494,   190,   512,    46,
     1816     213,   528,   726,   223,   553,   554,   208,   733,   509,     8,
     1817       9,    10,    11,    12,   211,   524,   108,   734,   136,   137,
     1818     208,   526,   527,   324,   404,   998,   827,   561,   126,   815,
     1819     127,   128,   129,   547,   562,   578,    30,   404,   603,  1224,
     1820     563,   505,   225,  -275,   230,   581,  1056,   404,  1172,   871,
     1821       8,     9,    10,    11,    12,   817,   895,   211,   404,    33,
     1822     564,   898,   819,   404,    74,   567,   529,   530,   531,   527,
     1823     333,    46,   787,   788,   789,   790,  -421,    30,   412,   659,
     1824     404,   159,   585,   500,    46,   481,   324,   404,   729,   532,
     1825     588,   533,    46,   534,   368,   638,  1263,  1264,   505,   505,
     1826      33,  1131,   172,   404,   656,   527,    74,   841,   324,   601,
     1827      46,   208,  1314,  1316,  1317,  1282,  1283,   211,   815,   159,
     1828     457,   657,   448,   693,  1100,  1143,   665,   404,    66,    60,
     1829     225,   693,  1146,   667,   601,   172,    36,   453,   170,   171,
     1830      39,  1121,   159,  1148,   754,   601,  1121,    40,    41,   603,
     1831    1210,   172,   404,   658,   436,   211,  1151,  1079,   925,   211,
     1832     925,   488,  1102,   318,   172,  1437,  1438,   729,  1378,  1379,
     1833     783,   784,    53,   685,     2,   202,     4,     5,     6,     7,
     1834      67,   785,   786,   791,   792,   717,   717,   660,   661,   662,
     1835    1058,   253,   708,   748,  1121,   710,  -222,   759,   763,    63,
     1836     114,   767,   820,   -12,  1056,   822,   824,  1186,  1188,  1190,
     1837     856,   835,     2,   202,     4,     5,     6,     7,   879,   880,
     1838     886,   285,   906,   908,   913,   688,   909,  1217,   960,  -398,
     1839      63,   142,    34,   737,    35,   933,  -502,  1471,  1101,   947,
     1840     224,   717,   717,   157,   211,   954,     8,     9,    10,    11,
     1841      12,   956,   961,   965,   966,   643,   968,  1158,   969,   970,
     1842     368,   172,   971,   337,    46,   217,   980,   991,   992,   993,
     1843      34,    74,    35,    30,  1007,  1008,  1085,  1009,   780,   781,
     1844     782,  1010,  1011,  1179,   472,  1012,  1013,  1024,  -386,   448,
     1845     815,  -385,  1071,  1082,    -3,  1038,    33,   434,  1081,  1193,
     1846    1083,    36,   255,  1084,   453,    39,  1091,  1411,  1089,   505,
     1847    1073,  1088,    40,    41,  1092,  1090,  1098,  1108,  1109,   762,
     1848    1110,   527,   322,   211,   974,  1113,  1120,    53,  1117,  1141,
     1849    1164,  1162,  1163,  1165,   706,    67,   368,    42,  1166,   457,
     1850     104,  1180,  1181,   323,  1183,  1184,  1192,   144,  1182,  1198,
     1851     215,   255,   344,  1196,    -3,  1197,  1203,  1208,    46,  1056,
     1852    1214,  1225,  1223,   493,  1218,  1457,  1411,   505,   505,   858,
     1853    1228,   728,   739,   211,   743,  1232,  1236,  1239,   726,  1296,
     1854    1241,   399,  1243,  1244,  1249,  1273,   210,  1245,  1246,  1247,
     1855    1100,  1256,  1265,  1121,  1121,  1121,   417,  1266,  1276,   142,
     1856     423,  1277,  1342,  1490,   157,   334,   104,  1290,   717,  1298,
     1857       2,   202,     4,     5,     6,     7,   717,   717,   717,  1279,
     1858     904,  1280,  1287,   172,  1304,   440,    74,  1306,  1102,   443,
     1859    1310,   444,  1312,  1318,  1311,  1319,  1320,   210,  1322,  1328,
     1860     459,    66,    60,  1329,  1330,  1331,    63,  1056,  1338,  1339,
     1861    1349,   473,  1283,   527,  1352,  1354,   392,   726,   393,  1355,
     1862     717,   480,  1357,   206,   216,   394,  1362,    72,    34,   423,
     1863      35,   208,   400,  1365,  1361,  1372,  1100,   395,   396,  1373,
     1864     210,  -387,  1376,   397,  1397,    53,   401,  1387,  1391,   398,
     1865    1393,   663,  1401,    67,   211,   104,  1335,   975,    72,  1056,
     1866    1398,  1410,  1056,  1058,  1101,   664,  1271,  1272,  1420,  1274,
     1867    1405,  1406,  1407,  1408,  1102,  1278,  1179,   472,  1281,  1422,
     1868      46,    46,   211,   878,  1333,  1121,  1121,   211,  1415,  1350,
     1869    1424,  1426,  1428,   218,   718,   255,  1430,  1431,   594,  1443,
     1870     210,  1056,  1432,   527,   622,  1451,  1056,  1453,  1455,  1456,
     1871    1463,  1475,   990,  1478,  1485,   433,  1487,   627,  1493,  1499,
     1872      53,   627,   995,   434,   255,   793,  1100,   901,    67,  1056,
     1873     794,   796,   795,  1231,  1470,   797,  1289,  1006,   210,  1390,
     1874    1458,  1501,   210,   929,    74,  1351,  1474,   146,  1226,   932,
     1875    1101,  1353,   147,  1227,   148,  1202,  1446,  1086,   712,   683,
     1876     684,   926,   812,    36,  1102,   170,   171,    39,  1087,  1472,
     1877     473,    46,  1116,   211,    40,    41,   885,  1037,  1056,   949,
     1878     347,  1097,  1299,  1056,   344,   731,   957,   211,   802,   473,
     1879      46,    46,   104,   158,  1449,   803,  1056,   473,  1056,   370,
     1880       0,     0,  1056,  1377,   804,  1056,  1385,     0,     0,  1450,
     1881      46,  1056,   367,   104,     0,  1056,     0,  1179,   472,    74,
     1882       0,  1449,     0,   713,  1179,   472,   423,   210,  1384,   479,
     1883    1447,     0,   104,     0,     0,    36,  1450,   179,   180,    39,
     1884    1101,   727,     0,    63,   318,  1417,    40,    41,     0,     0,
     1885    1421,   423,     0,   441,  1396,   423,     0,  1473,     0,     0,
     1886       0,    53,     0,  1179,   472,     0,     0,     0,    53,    67,
     1887     172,   181,     0,  1435,    72,     0,    67,     0,   211,    72,
     1888       0,   182,     0,   255,   344,     0,     0,     0,   104,     0,
     1889       0,   527,    36,  1498,   179,   180,    39,     0,     0,   718,
     1890       0,     0,     0,    40,    41,  1503,   210,    53,     8,     9,
     1891      10,    11,    12,     0,     0,    67,     0,     0,   104,     0,
     1892       0,   643,     0,     0,     0,     0,     0,  1041,   261,   805,
     1893    1156,  1157,   509,     0,     0,    30,     0,     0,   262,     0,
     1894    1491,     0,     0,     0,     0,    75,  1491,   627,   818,     0,
     1895     594,     0,     0,     0,     0,  1491,   210,     0,    33,  1491,
     1896      74,   837,     0,     0,     0,     0,     0,    74,     0,     0,
     1897       0,     0,   218,     0,     0,     0,    75,     0,     0,   594,
     1898       0,     0,     0,     0,   594,     0,  1205,  1206,     0,     0,
     1899     627,     0,     0,   344,   344,   344,     0,     0,     0,   569,
     1900       0,   404,     0,   322,     0,     0,    74,     0,   104,   570,
     1901     344,   219,   209,     0,     0,   643,     0,     0,     0,     0,
     1902       0,     0,   228,     0,    54,    54,     0,     0,   713,   104,
     1903       0,   718,   172,     0,     0,     0,   104,     0,    72,   473,
     1904       0,   718,    36,   527,   255,   727,    39,     0,   922,     0,
     1905       0,  -276,   347,    40,    41,    54,   718,    72,     8,     9,
     1906      10,    11,    12,   209,   211,    72,     0,     0,     0,     0,
     1907       0,     0,     0,     0,     0,   104,     0,   210,   825,     0,
     1908     601,   473,     0,     0,   344,    30,     0,    54,   602,     0,
     1909      54,   347,  -277,   948,     0,     0,   423,     0,   349,     8,
     1910       9,    10,    11,    12,     0,   210,   209,     0,    33,   347,
     1911     210,    72,  1041,     0,     0,     0,     0,     0,   255,   727,
     1912       0,     0,     0,     0,   973,     0,    30,     0,     0,     0,
     1913       0,     0,     8,     9,    10,    11,    12,     0,     8,     9,
     1914      10,    11,    12,     0,     0,     0,     0,     0,   406,    33,
     1915       0,     0,   347,  1321,     0,   414,     0,     0,     0,    30,
     1916     713,  1323,  1324,  1325,     0,    30,   209,     0,     0,     0,
     1917     713,     0,     0,   344,     0,   627,     0,   342,  1004,   627,
     1918     818,     0,    33,     0,     0,   713,     0,    36,    33,   179,
     1919     180,    39,    75,     0,     0,  1015,   210,    75,    40,    41,
     1920       0,     0,     0,     0,   209,  1356,     0,     0,   209,     0,
     1921     210,     0,     0,    77,     0,  1269,   347,     0,     0,     0,
     1922       0,     0,     0,   600,   499,   601,     0,   406,     0,   764,
     1923       0,   404,     0,   602,     0,     0,     0,     0,   211,   765,
     1924       0,    54,     0,     0,    77,     0,    63,     0,     0,   718,
     1925     718,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     1926       0,   347,   347,   347,     0,     0,     0,     0,   627,     0,
     1927       0,    54,     0,     0,     0,     0,     0,     0,   347,   220,
     1928       0,   575,     0,     8,     9,    10,    11,    12,     0,   579,
     1929     219,     0,   582,   209,     0,     0,   347,     0,     0,     0,
     1930       0,   210,     0,  1094,     0,   718,   718,    72,     0,     0,
     1931      30,   423,   114,   347,     0,     0,     0,    36,     0,   179,
     1932     180,    39,     0,   121,   124,   125,   344,     0,    40,    41,
     1933     211,     0,     0,    33,   535,   536,   537,   538,   539,   540,
     1934     541,   542,   543,   544,     0,     0,     0,     0,     0,    72,
     1935       0,     0,   347,   687,   406,   404,    75,     0,   414,     0,
     1936     594,   688,     0,   689,     0,     0,   350,   545,     0,     0,
     1937     349,     0,   209,   142,   943,    75,   601,     0,   713,   713,
     1938       0,   344,   344,    75,   944,     0,     0,   347,     0,   209,
     1939       0,     0,     0,     0,   250,     0,   251,     0,     0,     0,
     1940       0,  1178,     0,     0,     0,     0,     0,     0,     0,   349,
     1941       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     1942       0,     0,   209,     0,     0,     0,     0,   349,   347,    75,
     1943       0,     0,     0,     0,   713,   713,     0,     0,   347,    30,
     1944     627,   347,   406,  1297,     0,     0,   218,     0,   347,   342,
     1945       0,     0,     0,   347,     0,     0,     0,     0,     0,     0,
     1946      77,     0,    33,     0,     0,    77,     0,    36,     0,     0,
     1947     349,    39,   718,     0,     0,   389,     0,     0,    40,    41,
     1948     718,   718,   718,     0,     0,   408,   409,   210,     0,     0,
     1949     413,     0,   415,   416,     0,   727,     0,     0,     0,     0,
     1950       0,     0,     0,   733,     0,     0,     0,     0,    54,     0,
     1951       0,     0,     0,   734,    72,    36,     0,   179,   180,    39,
     1952       0,     0,     0,     0,   718,     0,    40,    41,     0,     0,
     1953       0,    84,   575,   575,   349,     0,     0,     0,  1270,     0,
     1954       0,     0,     0,   209,     0,     0,     0,     0,     0,   342,
     1955       0,   600,     0,   601,     0,   255,     0,     0,   220,    63,
     1956       0,   602,    84,     0,     0,     0,     0,     0,     0,     0,
     1957       0,   209,   713,     0,   727,     0,   209,     0,   114,   349,
     1958     349,   349,     0,     0,     0,     0,     0,     0,     0,     0,
     1959       0,     0,     0,     0,   347,     0,   349,   221,     0,     0,
     1960       0,   713,     0,     0,     0,     0,     0,     0,     0,   713,
     1961     713,   713,     0,   342,   349,     0,     0,     0,     0,   896,
     1962     344,   344,     0,   899,    77,    75,     0,     0,     0,     0,
     1963       0,   349,     0,     0,  1178,     0,     0,     0,   350,     0,
     1964       0,     0,     0,    77,     0,     0,   347,   347,     0,   347,
     1965     347,    77,     0,   713,     0,     0,   406,     0,   342,   342,
     1966     342,   210,   209,     0,   114,     0,     0,    75,     0,    72,
     1967     349,     0,     0,     0,     0,   342,   209,   350,     0,     0,
     1968       0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
     1969       0,     0,     0,     0,     0,   350,   499,    77,     0,     0,
     1970       0,     0,   347,   347,     0,   349,     0,     0,     0,     0,
     1971       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     1972      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     1973      23,    24,     0,   344,    25,    26,    27,     0,   350,     0,
     1974       0,     0,    30,   446,     0,     0,   349,     0,     0,   342,
     1975       0,     0,     0,   210,   114,     0,   349,     0,     0,   349,
     1976       0,     0,     0,   347,   219,    33,   349,   209,   575,     0,
     1977       0,   349,    37,    38,     0,  1178,     0,     0,    84,     0,
     1978       0,     0,  1178,    84,     0,     0,     0,     0,     0,     0,
     1979       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     1980      12,     0,   350,     0,     0,     0,   218,     0,   447,     0,
     1981       0,     0,   700,     0,     0,     0,   109,     0,     0,     0,
     1982       0,  1178,    36,    30,   179,   180,    39,    72,  1488,     0,
     1983       0,     0,    75,    40,    41,     0,     0,     0,   342,     0,
     1984     347,     0,   347,     0,     0,   342,    33,   350,   350,   350,
     1985       0,    36,     0,   179,   180,    39,     0,     0,   687,     0,
     1986     404,     0,    40,    41,   350,     0,     0,     0,   689,   347,
     1987       0,   807,   808,     0,     0,     0,   221,   347,   347,   347,
     1988     406,     0,   350,     0,     0,     0,     0,   181,   347,   347,
     1989       0,     0,     0,    77,     0,     0,     0,   182,     0,   350,
     1990       0,   842,    72,     0,   845,   846,     0,   849,     0,   851,
     1991     852,    54,   349,     0,   853,   854,     0,     0,     0,     0,
     1992       0,   347,     0,     0,     0,     0,     0,     0,     0,     0,
     1993       0,     0,     0,     0,     0,    77,     0,     0,   350,     0,
     1994       0,     0,    84,     0,     0,     0,    36,     0,   179,   180,
     1995      39,     0,     0,   209,  1132,     0,   357,    40,    41,     0,
     1996       0,    84,     0,     0,   349,   349,     0,   349,   349,    84,
     1997    1144,     0,     0,   350,   164,     0,   168,    54,     0,   174,
     1998     175,   176,  1468,   178,   404,     0,     0,    75,     0,     0,
     1999       0,   342,  1469,     0,     0,   357,   927,   928,   229,     0,
     2000       0,   347,   930,     8,     9,    10,    11,    12,     0,     0,
     2001     244,   245,     0,   357,   350,    84,     0,     0,     0,     0,
     2002     349,   349,     0,     0,   350,     0,     0,   350,     0,     0,
     2003      30,     0,   220,     0,   350,     0,     0,     0,     0,   350,
     2004       0,     0,     0,    72,     0,  1211,   342,   342,     0,     0,
     2005      72,     0,     0,    33,     0,     0,   357,     0,    36,     0,
     2006     179,   180,    39,     0,     0,     0,    54,     0,     0,    40,
     2007      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2008       0,   349,     0,     0,     0,     0,     0,     0,     0,    72,
     2009       0,     0,     0,     0,   687,     0,   404,     0,     0,     0,
     2010      77,     0,     0,     0,   689,     0,     0,     0,     0,     0,
    19522011       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1953      941,     0,   587,     0,     0,   177,   794,   205,     0,   394,
    1954      942,  1330,     0,   402,   515,   178,   817,     0,   589,     0,
    1955        0,   804,     0,   578,     0,     0,     0,     0,     0,   206,
    1956        0,   249,   707,   437,   437,  1147,   826,     0,     0,     0,
    1957      706,   316,   707,     0,   205,     0,     0,  1113,   205,     0,
    1958        0,   706,   706,   706,   578,     0,     0,     0,   707,   578,
    1959        0,     0,     0,     0,   488,   613,     0,     0,     0,   332,
    1960      332,     0,     0,     0,     0,   213,     0,     0,     0,     0,
    1961        0,     0,     0,     0,   332,   523,   524,   525,   526,   527,
    1962      528,   529,   530,   531,   532,   335,     0,   811,   394,     0,
    1963      589,   706,   702,   437,     0,     0,   915,     0,   682,     0,
    1964        0,     0,     0,     0,     0,   462,     0,     0,   533,     0,
    1965        0,     0,     0,   716,     0,     0,   920,   205,     0,     0,
    1966        0,     0,     0,   120,   123,   124,    75,     0,     0,     0,
    1967        0,    72,     0,     0,   437,   206,     0,     0,  1113,     0,
    1968        0,   515,   817,   589,     0,   335,     0,     0,     0,   462,
    1969       72,     0,   332,     0,     0,     0,     0,    75,    72,     0,
    1970     1497,   946,     0,     0,   411,   206,     0,     0,  1496,     0,
    1971      206,   437,   437,     0,     0,     0,     0,   563,   563,     0,
    1972        0,     0,     0,     0,   974,   335,   716,     0,     0,  1497,
    1973        0,   972,   214,   244,     0,   245,   205,  1496,     0,   437,
    1974        0,     0,     0,   335,     0,    72,     0,     0,     0,     0,
    1975        0,     0,     0,   205,     0,   315,     0,     0,     0,     0,
    1976        0,     0,     0,   312,     0,     0,     0,     0,   702,     0,
    1977        0,     0,     0,     0,     0,   817,     0,     0,   702,     0,
    1978        0,     0,     0,  1002,   804,   335,   589,   205,     0,     0,
    1979      249,     0,     0,     0,   702,   707,   707,     0,     0,   206,
    1980        0,   886,     0,  1019,     0,   889,     0,     0,     0,     0,
    1981        0,     0,   377,   206,     0,     0,   337,     0,     0,     0,
    1982        0,   396,   397,     0,     0,     0,   401,     0,   403,   404,
    1983      563,     0,     0,     0,     0,   249,     0,     0,     0,     0,
    1984        0,     0,   394,     0,     0,   335,     0,     0,     0,     0,
    1985        0,     0,   707,   707,     0,    63,     0,     0,     0,     0,
    1986        0,   515,     0,     0,     0,     0,   316,   817,   589,     0,
    1987        0,    77,     0,     0,     0,     0,     0,     0,     0,   804,
    1988      682,     0,     0,     0,     0,     0,  1088,     0,   682,     0,
    1989        0,     0,     0,   335,   335,     0,     8,     9,    10,    11,
    1990       12,   206,    77,   205,     0,     0,   589,    75,   335,     0,
    1991        0,     0,    75,     0,     0,     0,     0,     0,     0,     0,
    1992     1105,     0,     0,    30,     0,     0,   335,     0,   411,   113,
    1993        0,     0,     0,   205,     0,     0,     0,   215,   205,    72,
    1994        0,     0,     0,   332,     0,     0,    33,   335,     0,     0,
    1995        0,    36,     0,   176,   563,    39,     0,   249,     0,     0,
    1996        0,     0,    40,    41,     0,     0,     0,     0,   515,     0,
    1997        0,     0,     0,     0,     0,   613,     0,   578,     0,     0,
    1998        0,     0,     0,    72,     0,     0,   335,   676,     0,   392,
    1999        8,     9,    10,    11,    12,   140,     0,   678,     0,   214,
    2000        0,   702,   702,     0,   332,   332,   332,     0,     0,     0,
    2001     1331,     0,     0,     0,     0,     0,   498,    30,     0,   337,
    2002      335,   338,     0,     0,     0,  1197,     0,   205,     0,     0,
    2003        0,     0,     0,     0,     0,     0,     0,     0,     0,   707,
    2004       33,   205,     0,     0,     0,    36,     0,   176,   589,    39,
    2005      707,   707,   707,     0,     0,     0,    40,    41,   702,   702,
    2006        0,   488,   335,     0,     0,    75,     0,   563,   563,   804,
    2007      249,     0,   335,     0,     0,   394,     0,   213,   335,   337,
    2008        0,  1517,     0,   392,    75,     0,     0,     0,   335,     0,
    2009        0,  1518,    75,     8,     9,    10,    11,    12,     0,   206,
    2010      707,     0,     0,     0,     0,   249,     0,     0,     0,     0,
    2011        0,     0,    77,     0,     0,     0,     0,    77,     0,   337,
    2012       30,     0,     0,     0,     0,     0,   613,     0,   716,   205,
    2013        0,     0,     0,   613,   332,   332,     0,   337,     0,    75,
    2014      515,     0,     0,    33,     0,     0,     0,     0,    36,    72,
    2015      176,  1144,    39,     8,     9,    10,    11,    12,     0,    40,
    2016       41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2017     1161,     0,     0,   335,     0,     0,  1299,     0,     0,   337,
    2018       30,     0,     0,     0,   255,     0,     0,     0,     0,     0,
    2019        0,     0,     0,   332,   256,     0,     0,    63,     0,   796,
    2020      797,     0,     0,    33,   215,     0,     0,   613,    36,     0,
    2021        0,     0,    39,     0,     0,     0,   702,     0,   716,    40,
    2022       41,     0,   113,     0,   338,     0,     0,   831,     0,     0,
    2023      834,   835,     0,   838,     0,   840,   841,   335,     0,   337,
    2024      842,   843,     0,     0,   907,   702,   392,     0,   563,     0,
    2025        0,     0,     0,  1236,   908,     0,   702,   702,   702,     0,
    2026        0,     0,     0,     0,     0,     0,     0,     0,   332,   332,
    2027       77,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2028        0,     0,  1197,     0,   338,     0,     0,   337,   337,    77,
    2029        0,     0,     0,     0,   206,   335,   335,    77,   335,   335,
    2030      335,     0,   337,     0,     0,   613,   702,     8,     9,    10,
    2031       11,    12,     0,     0,     0,     0,     0,   113,     0,    72,
    2032      337,     0,     0,     0,   338,   925,   926,   205,     0,     0,
    2033        0,   928,     0,    75,    30,     0,     0,     0,     0,     0,
    2034        0,   337,   338,     0,    77,     0,     0,     0,     0,     0,
    2035        0,     0,   335,   335,     0,     0,     0,    33,     0,     0,
    2036        0,     0,    36,   335,    84,     0,    39,   249,     0,     0,
    2037        0,     0,     0,    40,    41,     0,     0,    75,     0,     0,
    2038      337,     0,     0,     0,   338,     0,     0,     0,     0,     0,
    2039        0,     0,     0,     0,   332,    84,   206,     0,    42,     0,
    2040        0,     0,     0,     0,     0,     0,     0,     0,   142,     0,
    2041        0,     0,     0,     0,   337,     0,     0,     0,   113,     0,
    2042        0,     0,   335,     0,     0,     0,     0,     0,   335,   335,
    2043      216,     0,     0,     0,     0,     0,     0,     0,     0,  1197,
    2044        0,     0,     0,     0,   338,     0,  1197,     0,     0,     0,
    2045        0,     0,     0,     0,     0,     0,   337,     0,     0,     0,
    2046        0,     0,     0,     0,     0,     0,   337,     0,     0,     0,
    2047      213,   214,   337,     0,     0,     0,     0,   468,     0,     0,
    2048        0,     0,   337,     0,     0,     0,     0,   335,     0,  1197,
    2049        0,    72,   338,   338,     0,     0,  1538,     0,     0,     0,
    2050        0,     0,     0,    54,    54,     0,     0,   338,     0,     0,
    2051      335,     0,   335,     0,   345,     0,     0,     0,     0,     0,
    2052        0,     0,   205,     0,     0,   338,     0,     0,     0,     8,
    2053        9,    10,    11,    12,    54,     0,     0,     0,    77,   335,
    2054        0,     0,     0,    75,     0,     0,   338,     0,     0,     0,
    2055      335,   335,   335,     0,     0,     0,    30,     0,     0,     0,
    2056        0,     0,   335,   335,     0,     0,    54,   337,     0,    54,
    2057        0,     0,     0,     0,     0,     0,    72,     0,     0,    33,
    2058        0,     0,    77,     0,    36,   338,     0,     0,    39,     0,
    2059        0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
    2060      335,     0,     0,     0,     0,    84,     0,     0,     0,     0,
    2061       84,     0,     0,     0,     0,     0,     0,     0,     0,   338,
    2062      722,     0,     0,     0,   205,     0,     0,     0,     0,     0,
    2063      723,   337,     0,     0,     0,     0,   122,   122,   122,     0,
     2012     357,     0,     0,     0,   219,     0,     0,   209,     8,     9,
     2013      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2014      20,    21,    22,    23,    24,    75,     0,    25,    26,    27,
     2015       0,     0,     0,     0,     0,    30,   446,     0,   349,     0,
     2016     349,     0,     0,     0,     0,   357,   357,   357,     0,     0,
     2017       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2018     350,     0,   357,     0,     0,    37,    38,   349,     0,     0,
     2019       0,     0,     0,     0,     0,   349,   349,   349,     0,     0,
     2020     357,     0,    54,    54,     0,     0,   349,   349,     0,     0,
     2021       0,    84,     0,     0,     0,     0,     0,   357,     0,   209,
     2022      75,   447,     0,     0,    54,   931,     0,     0,     0,   109,
     2023       0,     0,   350,   350,     0,   350,   350,     0,     0,   349,
     2024       0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
     2025       0,     0,     0,    84,     0,    77,   357,     0,     0,     0,
     2026       0,     0,     0,   592,   599,     0,     0,     0,     0,     0,
     2027       0,     0,     0,     0,     0,   623,   624,     0,     0,     0,
     2028       0,     0,     0,     0,     0,   342,   342,     0,   350,   350,
     2029       0,   357,     0,     0,    54,     0,     0,     0,     0,    54,
     2030       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2031      17,    18,    19,    20,    21,    22,    23,    24,  -278,   349,
     2032      25,    26,    27,     0,     0,     0,     0,     0,    30,    54,
     2033       0,     0,   357,     0,     0,     0,     0,     0,     0,     0,
     2034       0,     0,   357,     0,     0,   357,     0,     0,     0,   350,
     2035     221,    33,   357,     0,     0,     0,     0,   357,    37,    38,
     2036       0,    75,  -278,     0,     0,     0,     0,     0,    75,     0,
     2037       0,     0,     0,     0,     0,  1207,     0,     8,     9,    10,
     2038      11,    12,     0,     0,     0,     0,     0,     0,     0,     0,
     2039       0,     0,   220,     0,   333,     0,     0,     0,   342,     0,
     2040       0,     0,   109,     0,    30,     0,     0,    75,     0,     0,
     2041       0,     0,     0,    77,     0,     0,     0,     0,    84,    54,
     2042       0,     0,     0,     0,     0,     0,   350,    33,   350,     0,
     2043       0,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     2044      54,     0,     0,    40,    41,     0,     0,    54,     0,     0,
     2045       0,     0,     0,     0,     0,   350,     0,     0,     0,     0,
     2046       0,     0,     0,   350,   350,   350,     0,     0,  1468,     0,
     2047     404,     0,     0,     0,   350,   350,     0,     0,  1469,     0,
     2048       0,     0,     0,     0,     0,     0,    54,     0,    77,     0,
     2049       0,     0,     0,     0,     0,  1288,     0,     0,   357,     0,
     2050       0,     0,     0,     0,     0,     0,     0,   350,     0,  1014,
     2051       0,     0,     8,     9,    10,    11,    12,     0,     0,     0,
     2052       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2053       0,     0,     0,     0,     0,     0,     0,     0,   277,    30,
     2054     278,     0,     0,     0,     0,   214,     0,     0,     0,     0,
     2055     357,   357,     0,   357,   357,     0,     0,     0,     0,     0,
     2056       0,   279,    33,     0,     0,     0,     0,   280,     0,     0,
     2057       0,   281,     0,    84,   282,   283,   284,   285,    40,    41,
     2058       0,   286,   287,     0,     0,     0,     0,   350,     0,   288,
     2059       0,   162,     0,     0,     0,     0,   268,     0,     0,     0,
     2060       0,     0,     0,   289,     0,   373,   357,   357,     0,     0,
     2061       0,     0,   291,   813,   293,   294,   295,   296,     0,     0,
     2062       0,     0,     0,     0,     0,   162,     0,     0,     0,    77,
     2063       0,     0,     0,     0,     0,   363,    77,     0,   936,   369,
     2064     937,     0,     0,     0,     0,     0,     0,   940,   941,     0,
     2065       0,     0,   946,     0,  1152,     0,     0,     8,     9,    10,
     2066      11,    12,     0,     0,   951,     0,     0,   357,     0,   955,
     2067       0,     0,     0,     0,     0,    77,     0,     0,     0,     0,
     2068       0,     0,     0,   277,    30,   278,     0,   162,     0,     0,
     2069       0,     0,     0,   981,     0,     0,     0,     0,     0,   214,
     2070       0,     0,     0,     0,     0,     0,   279,    33,     0,     0,
     2071     221,     0,   280,     0,     0,     0,   281,   162,   454,   282,
     2072     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2073       0,    84,     0,     0,   288,     0,     0,   592,     0,     0,
     2074       0,   369,     0,     0,   357,     0,   357,     0,   289,   162,
     2075     373,     0,     0,     0,     0,     0,     0,   291,  1153,   293,
     2076     294,   295,   296,     0,     0,     0,     0,     0,     0,     0,
     2077       0,   454,     0,   357,   162,     0,     0,     0,     0,     0,
     2078       0,   357,   357,   357,     0,     0,     0,     0,     0,     0,
     2079       0,     0,   357,   357,  1025,  1026,  1027,  1028,     0,  1030,
     2080       0,     0,     0,     0,     0,     0,    84,     0,     0,     0,
     2081       0,     0,     0,     0,  1072,     0,     0,     0,     0,     0,
     2082       0,   597,     0,     0,     0,   357,   621,     0,  1078,     0,
     2083       0,     0,     0,     1,     2,   202,     4,     5,     6,     7,
     2084       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2085      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2086      26,    27,    28,     0,     0,    29,  1093,    30,     0,     0,
     2087       0,     0,   123,   123,   123,     0,     0,     0,     0,     0,
    20642088       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2065        0,     0,     0,   330,     0,     0,     0,     0,     0,     0,
    2066        0,   338,     0,     0,     0,     0,     0,     0,     0,     0,
    2067        0,   338,     0,     0,     0,     0,   215,   338,     0,     0,
    2068        0,     0,     0,     0,     0,     0,     0,   338,   335,   337,
    2069      337,     0,   337,   337,   337,     0,     0,   216,     0,     0,
    2070        0,     0,     0,     0,     0,     0,   122,     0,   122,     0,
    2071        0,     0,     0,    75,     0,    54,     0,   345,     0,     0,
    2072     1226,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2073        0,     0,   265,    72,     0,     0,     0,     0,     0,     0,
    2074       72,     0,     0,     0,    54,     0,   337,   337,    77,     0,
    2075        0,     0,     0,     0,     0,     0,     0,   337,     0,     0,
    2076        0,     0,     0,    84,     0,     0,     0,     0,     0,     0,
    2077        0,     0,   338,     0,     0,     0,     0,   345,     0,     0,
    2078        0,     0,    84,    72,     0,   122,     0,     0,     0,     0,
    2079       84,     0,   122,     0,   122,   122,     0,     0,     0,   122,
    2080        0,   122,   122,     0,     0,     0,     0,     0,     0,     0,
    2081        0,     0,     0,     0,     0,     0,   337,   345,     0,     0,
    2082        0,     0,   337,   337,     0,     0,     0,     0,     0,     0,
    2083        0,     0,     0,     0,     0,   345,   338,    84,     0,     0,
     2089      33,     0,    34,     0,    35,     0,     0,    37,    38,     0,
     2090       0,   162,   162,  1118,     0,   357,     0,   363,     0,     0,
     2091    1126,     0,     0,     0,  1130,     0,     0,     0,     0,  1134,
     2092       0,  1135,     0,     0,     0,  1137,  1138,  1139,   454,     0,
     2093    1142,   454,     0,    43,     0,     0,     0,   454,     0,  1154,
     2094       0,   109,     0,   123,     0,   123,     0,    84,     0,     0,
     2095       0,     0,     0,     0,    84,     0,     0,  1169,  1170,     8,
     2096       9,    10,    11,    12,   730,     0,     0,     0,     0,   271,
     2097       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2098       0,     0,  1199,     0,     0,  1201,    30,     0,     0,   454,
     2099       0,     0,   454,    84,   162,   454,     0,     0,     0,     0,
     2100       0,     0,     0,     0,     0,     0,     0,   363,     0,    33,
     2101       0,     0,     0,     0,    36,     0,   179,   180,    39,     0,
     2102       0,     0,     0,  1216,   123,    40,    41,     0,     0,  1220,
     2103    1221,     0,   123,     0,   123,   123,     0,     0,  1229,   123,
     2104       0,   123,   123,  1233,     0,     0,  1237,     0,  1238,     0,
     2105     261,  1240,     0,     0,     0,     0,     0,     0,     0,   162,
     2106     262,     0,     0,     0,  1248,     0,     0,     0,     0,     0,
     2107       0,   363,     0,   597,     0,     0,   823,  1255,     0,  1257,
     2108    1258,  1259,  1260,     0,     0,     0,     0,     0,     0,     0,
     2109       0,     0,     0,     0,     0,  1267,     0,  1268,     0,     0,
     2110       0,   168,   597,     0,     0,     0,     0,   597,     0,     0,
     2111       0,   123,     0,     0,     0,     0,   363,   363,   363,     0,
     2112       0,     0,     0,     0,     0,     0,     0,     0,     0,  1292,
     2113    1293,     0,     0,   363,     0,     0,     0,   207,     0,     0,
     2114       0,     0,     0,     0,     0,     0,     0,   227,     0,   231,
     2115       0,   233,     0,     0,     0,     0,     0,     0,   242,     0,
     2116       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2117       0,     0,     0,     0,     0,     0,     0,  1326,  1327,     0,
     2118       0,     0,     0,     0,     0,     0,     0,  1337,   207,   454,
     2119     231,   233,   242,     0,     0,     0,     0,     0,     0,     0,
     2120       0,     0,     0,     0,     0,     0,     0,   363,     0,   945,
     2121       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    20842122       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2085        0,     0,     0,     0,  1318,     0,   330,     0,     0,     0,
    2086        0,     0,     0,     0,   214,     0,     0,     0,     0,   122,
    2087        0,     0,     0,     0,     0,     0,     0,   345,     0,     0,
    2088        0,   337,     0,     0,     0,    75,     0,     0,     0,     0,
    2089        0,     0,     0,     0,   338,   338,     0,   338,   338,   338,
    2090        0,     0,     0,     0,   337,     0,   337,     0,     0,     0,
    2091        0,     0,     0,     0,     0,     0,   330,     0,    77,     0,
     2123       0,   207,     0,  1364,     0,     0,     0,     0,     0,     0,
     2124       0,     0,   730,     0,     0,  1368,     0,  1369,  1370,  1371,
     2125       0,     0,     0,     0,     0,     0,     0,     0,     0,  1375,
     2126       0,     0,     0,     0,     0,   153,     0,     0,  1386,     0,
    20922127       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2093        0,     0,     0,   337,     0,     0,     0,   345,     0,     0,
    2094        0,     0,     0,     0,   337,   337,   337,     0,     0,     0,
    2095        0,   338,   338,     0,     0,     0,   337,   337,     0,     0,
    2096        0,     0,   338,     0,     0,     0,     0,     0,     0,     0,
    2097       75,     0,     0,     0,     0,     0,    54,     0,     0,     0,
    2098        0,     0,     0,     0,     0,   345,   345,     0,     0,     0,
    2099        0,     0,     0,     0,   337,     0,     0,     0,     0,     0,
    2100      345,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2101        0,     0,     0,     0,     0,     0,   330,     0,   345,     0,
    2102        0,   338,     0,     0,     0,     0,     0,   338,   338,     0,
    2103        0,    84,     0,     0,     0,     0,     0,     0,     0,   345,
    2104        0,     0,     0,     0,   161,     0,   165,     0,     0,   171,
    2105      172,   173,     0,   175,     0,     0,     0,     0,     0,     0,
    2106        0,     0,     0,     0,     0,     0,     0,     0,   224,   215,
    2107        0,     0,     0,     0,     0,    84,   330,     0,   345,   238,
    2108      239,     0,   337,     0,     0,     0,   338,     0,     0,     0,
    2109       77,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2110       17,    18,    19,    20,    21,    22,    23,    24,  -279,   338,
    2111        0,   338,   345,     0,     0,     0,     0,     0,    30,     0,
    2112        0,     0,     0,     0,   330,   330,     0,    75,     0,     0,
    2113        0,     0,     0,     0,    75,     0,     0,     0,   338,   330,
    2114        0,    33,     0,     0,   327,     0,     0,     0,     0,   338,
    2115      338,   338,  -279,     0,   345,     0,     0,     0,     0,     0,
    2116        0,   338,   338,     0,   345,     0,     0,     0,     0,   216,
    2117      345,     0,   122,   122,     0,    77,     0,    75,     0,     0,
    2118      345,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2119        0,     0,     0,     0,     0,     0,     0,     0,     0,   338,
    2120      122,     0,     0,   122,   122,     0,   122,     0,   122,   122,
    2121        0,     0,     0,   122,   122,     0,     0,   330,     2,   197,
     2128    1394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2129       0,   207,     0,   231,   233,   242,   363,     0,     0,     0,
     2130     621,     0,     0,   363,     0,     0,     0,     0,     0,     0,
     2131       0,   247,     0,     0,     0,     0,     0,     0,     0,     0,
     2132       0,   252,     0,     0,     0,     0,     0,  1433,  1434,   207,
     2133       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2134    1439,     0,     0,     0,     0,     0,     0,  1439,     0,   497,
     2135       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2136      18,    19,    20,    21,    22,    23,    24,  -278,     0,    25,
     2137      26,    27,  1467,     0,     0,     0,   153,    30,     0,     0,
     2138       0,     0,     0,     0,     0,     0,     0,     0,     0,   379,
     2139       0,     0,     0,     0,     0,   454,     0,   207,  1489,     0,
     2140      33,     0,     0,     0,     0,    36,     0,   331,   332,    39,
     2141       0,  -278,   411,     0,     0,     0,    40,    41,   207,     0,
     2142     123,   123,  1502,   231,   233,     0,   425,  1504,     0,     0,
     2143       0,   242,     0,     0,     0,   430,   162,     0,     0,     0,
     2144       0,   634,     0,   333,     0,   438,     0,     0,     0,   363,
     2145     123,   625,     0,   123,   123,     0,   123,     0,   123,   123,
     2146       0,     0,     0,   123,   123,     0,     0,     0,     0,     0,
     2147     464,     0,     0,   207,     0,   474,     0,     0,     0,     0,
     2148       0,     0,     0,   597,     0,     0,     0,     0,   482,     0,
     2149       0,   207,     0,     0,   492,     0,   496,   207,     0,     0,
     2150       0,     0,     0,     0,   363,   363,     0,     0,     0,     0,
     2151       0,     0,   525,     0,   207,     0,     0,   207,   207,     0,
     2152       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2153       0,     0,     0,   207,     0,     0,     0,     0,     0,     0,
     2154     123,     0,     0,     0,     0,   123,   123,   207,     0,     0,
     2155       0,   123,     0,     0,   207,   584,     0,     0,     0,     0,
     2156     589,     0,   454,   201,     2,   202,     4,     5,     6,     7,
     2157       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2158      18,    19,    20,    21,    22,    23,    24,     0,   635,    25,
     2159      26,    27,   636,   637,     0,   639,     0,    30,     0,     0,
     2160       0,   649,   650,     0,   651,   652,     0,   653,     0,   654,
     2161       0,     0,     0,     0,     0,     0,     0,     0,   730,     0,
     2162      33,     0,    34,     0,    35,    36,   584,   203,    38,    39,
     2163       0,     0,     0,     0,   669,     0,    40,    41,     0,     0,
     2164       0,     0,     0,   277,     0,   278,     0,     0,     0,     0,
     2165       0,     0,     0,     0,     0,     0,     0,     0,   680,     0,
     2166     214,    42,     0,   204,     0,     0,   279,     0,   207,   686,
     2167       0,   205,   280,     0,     0,     0,   281,     0,     0,   282,
     2168     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2169       0,     0,   722,     0,   288,     0,   207,   730,   725,     0,
     2170       0,   207,     0,   464,     0,     0,     0,     0,   289,     0,
     2171     373,     0,     0,     0,     0,     0,     0,   291,   375,   293,
     2172     294,   295,   296,     0,     0,     0,     0,     0,   336,   358,
     2173       0,  1194,     0,     0,     0,     0,     0,     0,     0,   760,
     2174       0,     0,     0,   363,   363,     0,     0,     0,     0,     0,
     2175       0,     0,   214,     0,     0,   775,     0,     0,     0,     0,
     2176       0,   407,     0,     0,     0,     0,     0,     0,   407,     8,
     2177       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2178      19,    20,    21,    22,    23,    24,     0,   207,    25,    26,
     2179      27,   801,     0,     0,     0,   277,    30,   278,     0,     0,
     2180     811,   207,     0,     0,     0,     0,     0,   814,     0,     0,
     2181       0,     0,   821,     0,     0,     0,     0,     0,   279,    33,
     2182       0,   497,     0,   836,   280,     0,    37,    38,   281,     0,
     2183       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2184     407,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2185       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
     2186     289,     0,   517,   876,     0,   167,     0,     0,     0,   291,
     2187     292,   293,   294,   295,   296,     0,     0,     0,     0,   207,
     2188       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2189       0,     0,   207,     0,   407,     0,     0,     0,   821,     0,
     2190       0,     0,   407,   580,     0,   407,   583,   454,     0,     0,
     2191       0,   207,     0,     0,     0,   358,     0,     0,     0,   613,
     2192       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
     2193       0,     0,     0,     0,   454,     0,     0,     0,   631,     0,
     2194       0,   336,     0,     0,     0,     0,     0,     0,     0,     0,
     2195       0,     0,     0,   247,     0,     0,     0,   162,     0,     0,
     2196       0,     0,     0,   952,   953,     0,     0,   407,     0,     0,
     2197       0,   407,     0,     0,     0,   967,     0,     0,     0,     0,
     2198       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2199       0,     0,   982,     0,   983,     0,   207,     0,   987,     0,
     2200       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2201       0,     0,     0,     0,     0,     0,     0,     0,   316,     0,
     2202       0,     0,   207,     0,   407,     0,     0,     0,   340,     0,
     2203       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2204     376,     0,     0,     0,   123,     0,     0,   207,     0,     0,
     2205       0,     0,     0,     0,     0,   407,     0,     0,   358,     0,
     2206       0,     0,     0,  1019,     0,     0,     0,     0,     0,     0,
     2207    1020,     0,     0,     0,     0,   277,     0,   278,   207,     0,
     2208       0,     0,     0,  1022,     0,  1023,     0,     0,     0,   207,
     2209       0,     0,     0,     0,     0,     0,     0,   407,   279,  1035,
     2210     336,   358,     0,     0,   280,  1039,     0,     0,   281,     0,
     2211     316,   282,   283,   284,   285,    40,    41,  1075,   286,   287,
     2212    1076,     0,     0,     0,     0,     0,   288,     0,     0,     0,
     2213       0,     0,     0,     0,     0,   478,     0,     0,   589,     0,
     2214     289,     0,   373,     0,     0,   407,   407,     0,   798,   291,
     2215     375,   293,   294,   295,   296,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,   816,   358,     0,   358,   207,     0,
     2217       0,     0,     0,     0,     0,     0,   613,     0,   613,   613,
     2218       0,     0,     0,     0,     0,   613,     0,     0,     0,     0,
     2219       0,     0,     0,     0,     0,   855,   358,     0,     0,     0,
     2220       0,   358,     0,     0,     0,     0,     0,     0,     0,     0,
     2221     358,   358,   358,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,  1136,     0,     0,     0,     0,   358,     0,     0,
     2223       0,     0,   407,   897,     0,     0,   407,   900,     0,     0,
     2224       0,     0,     0,   902,     0,     0,     0,     0,     0,   376,
     2225       0,     0,   207,   277,     0,   278,     0,     0,     0,     0,
     2226       0,   336,   358,   407,     0,   407,     0,     0,     0,   407,
     2227       0,     0,     0,     0,     0,     0,   279,   525,     0,     0,
     2228       0,     0,   640,  1200,   136,   137,   281,     0,     0,   282,
     2229     283,   284,   285,    40,    41,     0,   286,   287,     0,     0,
     2230       0,   358,   613,     0,   288,     0,     0,     0,     0,     0,
     2231       0,     0,  1213,     0,     0,     0,     0,  1215,   289,     0,
     2232     641,     0,   642,   374,     0,  1219,     0,   291,   375,   293,
     2233     294,   295,   296,     0,     0,   336,   358,     0,     0,     0,
     2234     407,   407,     0,     0,   207,   504,   508,   504,   511,   724,
     2235       0,     0,     0,  1242,     0,   514,   515,     0,     0,     0,
     2236     504,   504,     0,     0,     0,  1250,     0,     0,  1251,     0,
     2237    1252,     0,   504,     0,     0,     0,     0,     0,     0,     0,
     2238       0,   407,     0,     0,  1261,  1262,     0,   756,     0,     0,
     2239     358,     0,     0,     0,     0,     0,   816,   358,     0,     0,
     2240     769,   613,     0,   613,     0,     0,  1275,   756,   504,     0,
     2241       0,     0,     0,   613,     0,     0,     0,     0,     0,     0,
     2242     778,   779,     0,     0,     0,     0,     0,     0,     0,     0,
     2243       0,     0,  1294,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,   800,     0,   504,     0,     0,     0,     0,     0,
     2245       0,     0,   809,     0,     0,     0,     0,     0,     0,   340,
     2246       0,     0,     0,     0,   769,     0,     0,     0,     8,     9,
     2247      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2248      20,    21,    22,    23,    24,   816,     0,    25,    26,    27,
     2249       0,     0,     0,   407,     0,    30,     0,     0,   407,     0,
     2250       0,     0,     0,     0,     0,     0,   407,     0,     0,     0,
     2251       0,     0,     0,     0,   875,     0,     0,     0,    33,   613,
     2252     613,   376,  1358,     0,  1359,   203,    38,     0,     0,     0,
     2253       0,     0,     0,     0,     0,  1366,     0,  1367,     0,     0,
     2254       0,     0,     0,   358,     0,     0,     0,     0,     0,   407,
     2255       0,     0,     0,     0,     0,  1374,     0,     0,     0,     0,
     2256       0,   340,   207,     0,     0,     0,     0,   407,  1133,   267,
     2257       0,  1392,     0,     0,     0,     0,     0,   358,     0,  1395,
     2258       0,     0,  1219,   407,  1145,     0,   613,   613,  1150,     0,
     2259       0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
     2260       0,     0,  1416,     0,     0,     0,     0,     0,     0,     0,
     2261       0,  1423,     0,     0,  1425,  1427,     0,   504,   504,   504,
     2262     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
     2263     504,   504,   504,   504,   504,   769,     0,   972,     0,     0,
     2264       0,     0,     0,   977,     0,     0,     0,     0,     0,  1452,
     2265     986,  1219,     0,     0,     0,     0,     0,   816,   407,  1212,
     2266     504,     0,     0,  1462,     0,     0,     0,     0,     0,     0,
     2267     613,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2268       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2269       0,     0,     0,  1002,  1003,     0,   340,     0,     0,     0,
     2270       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2271       0,   340,   358,     2,   202,     4,     5,     6,     7,     8,
     2272       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2273      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2274      27,     0,     0,     0,     0,   277,    30,   278,     0,     0,
     2275       0,  1033,     0,     0,     0,   376,     0,   504,     0,     0,
     2276       0,     0,     0,     0,     0,     0,     0,     0,   279,    33,
     2277       0,    34,   336,    35,   280,     0,    37,    38,   281,   504,
     2278       0,   282,   283,   284,   285,    40,    41,     0,   286,   287,
     2279       0,   358,   504,     0,     0,     0,   288,     0,     0,     0,
     2280       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2281     289,     0,   338,     0,     0,     0,     0,   768,     0,   291,
     2282     339,   293,   294,   295,   296,     0,     0,     0,     0,   316,
     2283       0,     0,     0,     0,     0,     0,   504,   358,   358,     0,
     2284       0,     0,  1114,  1115,     0,     0,     0,     0,   277,   376,
     2285     278,     0,     0,     0,     0,   977,     0,     0,  1124,     0,
     2286     756,     0,     0,     0,     0,     0,     0,   504,     0,     0,
     2287       0,   279,     0,     0,     0,     0,     0,   280,     0,  1140,
     2288       0,   281,   504,     0,   282,   283,   284,   285,    40,    41,
     2289    1155,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2290       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2291       0,     0,   376,   289,  1173,   373,     0,     0,   374,     0,
     2292       0,     0,   291,   375,   293,   294,   295,   296,     0,  1195,
     2293       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2294       0,     0,     0,     0,     0,     0,     0,     0,  1204,     0,
     2295     358,     0,  -497,     0,     0,     1,     2,     3,     4,     5,
     2296       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2297      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2298       0,    25,    26,    27,    28,     0,     0,    29,     0,    30,
     2299      31,     0,   977,     0,     0,     0,     0,     0,     0,     0,
     2300       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
     2301       0,   875,    33,     0,    34,     0,    35,    36,     0,    37,
     2302      38,    39,     0,     0,     0,   407,  1253,  1254,    40,    41,
     2303       0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
     2304       0,   278,     0,     0,   407,   407,     0,     0,     0,     0,
     2305       0,     0,     0,    42,     0,    43,     0,     0,   504,     0,
     2306       0,     0,   279,    44,   407,     0,     0,     0,   280,     0,
     2307     504,     0,   281,     0,     0,   282,   283,   284,   285,    40,
     2308      41,     0,   286,   287,     0,     0,     0,     0,     0,     0,
     2309     288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2310       0,     0,     0,   977,   289,     0,   373,     0,     0,   974,
     2311       0,   504,     0,   291,   375,   293,   294,   295,   296,     0,
     2312       0,     1,     2,   202,     4,     5,     6,     7,     8,     9,
     2313      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2314      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2315      28,     0,     0,    29,   277,    30,  1042,  1043,     0,  1044,
     2316       0,     0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
     2317       0,  1053,     0,     0,  1054,    32,     0,   279,    33,   504,
     2318      34,     0,    35,   640,     0,    37,    38,   281,     0,     0,
     2319     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2320       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2321       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2322       0,  1055,   504,     0,   167,     0,     0,     0,   291,   292,
     2323     293,   294,   295,   296,     0,     0,   504,   504,     0,     0,
     2324    1402,     0,  -126,     0,     1,     2,   202,     4,     5,     6,
     2325       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2326      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2327      25,    26,    27,    28,     0,     0,    29,   277,    30,   278,
     2328       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2329       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2330     279,    33,     0,    34,     0,    35,   280,  1454,    37,    38,
     2331     281,     0,     0,   282,   283,   284,   285,    40,    41,     0,
     2332     286,   287,     0,     0,     0,     0,     0,     0,   288,     0,
     2333       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2334       0,     0,   289,     0,  1055,     0,     0,     0,     0,     0,
     2335     316,   291,   292,   293,   294,   295,   296,     0,     0,     0,
     2336       0,     0,     0,     0,     0,  -126,     1,     2,   202,     4,
     2337       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2338      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2339       0,     0,    25,    26,    27,    28,     0,     0,    29,   277,
     2340      30,   278,     8,     9,    10,    11,    12,    13,    14,    15,
     2341      16,    17,    18,    19,    20,    21,    22,    23,    24,  -278,
     2342       0,     0,   279,    33,     0,    34,     0,    35,   280,    30,
     2343      37,    38,   281,     0,     0,   282,   283,   284,   285,    40,
     2344      41,     0,   286,   287,     0,     0,     0,   504,     0,     0,
     2345     288,     0,    33,     0,     0,     0,     0,     0,     0,     0,
     2346       0,     0,     0,  -278,   289,     0,    43,     0,     0,     0,
     2347       0,     0,     0,   291,   292,   293,   294,   295,   296,     0,
     2348       0,     0,     2,   202,     4,     5,     6,     7,     8,     9,
     2349      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2350      20,    21,    22,    23,    24,   504,   504,    25,    26,    27,
     2351       0,     0,     0,     0,   277,    30,   278,     8,     9,    10,
     2352      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2353      21,    22,    23,    24,  -279,     0,     0,   279,    33,     0,
     2354      34,     0,    35,   280,    30,    37,    38,   281,     0,     0,
     2355     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2356       0,     0,     0,     0,     0,   288,     0,    33,     0,     0,
     2357       0,     0,     0,     0,     0,     0,     0,     0,  -279,   289,
     2358       0,   916,     0,     0,     0,     0,   768,     0,   291,   339,
     2359     293,   294,   295,   296,     2,   202,     4,     5,     6,     7,
     2360       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2361      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2362      26,    27,     0,     0,     0,     0,   277,    30,   278,     8,
     2363       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2364      19,    20,    21,    22,    23,    24,     0,     0,     0,   279,
     2365      33,     0,    34,     0,    35,   280,    30,    37,    38,   281,
     2366       0,     0,   282,   283,   284,   285,    40,    41,     0,   286,
     2367     287,     0,     0,     0,     0,     0,     0,   288,     0,    33,
     2368       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2369       0,   289,     0,   916,     0,     0,     0,     0,   768,     0,
     2370     291,   591,   293,   294,   295,   296,     2,   202,     4,     5,
     2371       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2372      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2373       0,    25,    26,    27,     0,     0,     0,     0,   277,    30,
     2374     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2375       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2376       0,   279,    33,     0,    34,     0,    35,   280,     0,    37,
     2377      38,   281,     0,     0,   282,   283,   284,   285,    40,    41,
     2378       0,   286,   287,     0,     0,     0,     0,     0,     0,   288,
     2379       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2380       0,     0,     0,   289,     0,   338,     0,     0,     0,     0,
     2381       0,     0,   291,   339,   293,   294,   295,   296,     2,   202,
    21222382       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    21232383      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2124       24,    84,     0,    25,    26,    27,     0,     0,     0,     0,
    2125        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    2126        0,     0,     0,     0,     0,   345,     0,     0,     0,     0,
    2127        0,     0,     0,     0,    33,     0,    34,     0,    35,    36,
    2128        0,   198,   199,    39,     0,     0,     0,   338,     0,     0,
    2129       40,    41,     0,   122,     0,     0,     0,     0,   122,   122,
    2130        0,     0,     0,     0,   122,     0,     0,     0,     0,   330,
    2131        0,     0,     0,     0,     0,    42,     0,   200,     0,     0,
    2132      576,     0,   584,     0,     0,   201,     0,     0,     0,   345,
    2133        0,     0,    77,   609,   610,     0,     0,     0,     0,    77,
    2134        0,     0,     0,     0,     0,     0,     0,   620,     0,   456,
    2135        2,   197,     4,     5,     6,     7,     8,     9,    10,    11,
     2384      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2385     277,    30,   278,     0,     0,     0,     0,     0,     0,     0,
     2386       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2387       0,     0,     0,   279,    33,     0,    34,     0,    35,   280,
     2388       0,    37,    38,   281,     0,     0,   282,   283,   284,   285,
     2389      40,    41,     0,   286,   287,     0,     0,     0,     0,     0,
     2390       0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
     2391       0,     0,     0,     0,     0,   289,     0,   916,     0,     0,
     2392       0,     0,     0,     0,   291,   339,   293,   294,   295,   296,
     2393       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    21362394      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    21372395      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2138       54,     0,    77,    30,     0,     0,     0,   345,   345,     0,
    2139      345,   345,   345,     0,     0,     0,     0,     0,     0,     0,
    2140        0,     0,     0,     0,   330,     0,    33,   663,    34,     0,
    2141       35,    84,     0,    37,    38,     0,     2,   197,     4,     5,
    2142        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2143       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2144        0,    25,    26,    27,   345,   345,     0,     0,   271,    30,
    2145      272,     0,    -3,     0,    54,   345,     0,     0,     0,     0,
    2146        0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
    2147        0,   273,    33,     0,    34,     0,    35,   274,     0,    37,
    2148       38,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2149        0,   280,   281,     0,     0,     0,     0,     0,     0,   282,
    2150        0,     0,     0,     0,     0,     0,     0,   757,     0,     0,
    2151        0,     0,     0,   283,   345,   325,    -3,     0,     0,     0,
    2152      345,   345,   285,   326,   287,   288,   289,   290,     0,   330,
    2153      330,   330,     8,     9,    10,    11,    12,    13,    14,    15,
    2154       16,    17,    18,    19,    20,    21,    22,    23,    24,  -280,
    2155       54,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    2156        0,     0,   216,     0,     0,     0,     0,   803,  1017,     0,
    2157        0,     8,     9,    10,    11,    12,     0,     0,     0,   345,
    2158        0,     0,    33,    84,     0,     0,     0,     0,     0,     0,
    2159        0,     0,     0,  -280,   330,     0,     0,   271,    30,   272,
    2160        0,     0,   345,     0,   345,     0,     0,     0,     0,     0,
    2161        0,     0,     0,     0,     0,     0,     0,     0,   864,     0,
    2162      273,    33,     0,     0,     0,     0,   274,     0,     0,     0,
    2163      275,   345,     0,   276,   277,   278,   279,    40,    41,     0,
    2164      280,   281,   345,   345,   345,     0,   893,     0,   282,     0,
    2165        0,     0,     0,     0,   345,   345,     0,     0,     0,   330,
    2166      330,     0,   283,     0,   361,   909,   910,     0,    84,   914,
    2167        0,   285,   892,   287,   288,   289,   290,     0,     0,     0,
     2396       0,     0,   277,    30,   278,     0,     0,     0,     0,     0,
    21682397       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2169        0,     0,   345,   122,     0,     0,     0,   934,     0,   935,
    2170       54,    54,     0,     0,     0,     0,   938,   939,     0,     0,
    2171        0,   944,     0,     0,     0,     0,     0,     0,   330,     0,
    2172        0,     0,    54,   949,     0,     0,     0,     0,   953,     0,
    2173        0,     0,     0,     0,   271,     0,   272,     0,     0,     0,
    2174        0,     0,   970,     0,     0,     0,     0,    54,     0,     0,
    2175        0,     0,   981,     0,     0,     0,     0,   273,     0,     0,
    2176        0,     0,     0,   274,     0,     0,     0,   275,     0,     0,
    2177      276,   277,   278,   279,    40,    41,     0,   280,   281,     0,
    2178      345,     0,     0,     0,     0,   282,     0,     0,     0,     0,
    2179        0,     0,     0,   330,   330,     0,     0,     0,     0,   283,
    2180     1003,   361,    54,     0,     0,     0,     0,    54,   285,   363,
    2181      287,   288,   289,   290,   203,     0,     0,     0,     0,  1018,
    2182        0,     0,  1213,     0,   222,    84,   226,   122,   228,     0,
    2183        0,     0,    84,     0,     0,   236,     0,     0,     0,     0,
    2184        0,  1170,    54,     0,     8,     9,    10,    11,    12,     0,
    2185        0,     0,  1029,     0,  1030,  1031,  1032,     0,     0,  1035,
    2186      864,     0,     0,     0,   203,     0,   226,   228,   236,     0,
    2187      271,    30,   272,     0,  1077,    84,     0,     0,     0,     0,
    2188        0,     0,     0,     0,     0,     0,   576,     0,     0,  1084,
    2189        0,   203,     0,   273,    33,  1085,     0,     0,     0,   274,
    2190        0,     0,     0,   275,     0,   203,   276,   277,   278,   279,
    2191       40,    41,     0,   280,   281,     0,     0,     0,     0,   330,
    2192        0,   282,     0,     0,     0,     0,     0,     0,     0,     0,
    2193        0,     0,     0,     0,  1104,   283,     0,   361,     0,     0,
    2194        0,     0,     0,    54,   285,  1171,   287,   288,   289,   290,
    2195        0,     0,     0,     0,     0,     0,     0,     0,     0,   757,
    2196        0,     0,     0,   203,    54,   226,   228,   236,     0,     0,
    2197        0,    54,  1130,     0,     0,     0,     0,   864,     0,     0,
    2198     1138,     0,     0,     0,  1142,     0,     0,     0,     0,  1146,
    2199        0,     0,     0,  1151,  1152,  1153,     0,     0,     0,     0,
    2200      203,     0,     0,  1159,   203,     0,     0,     0,     0,     0,
    2201        0,     0,     0,  1172,    54,     0,     0,     0,     0,     0,
    2202      486,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2203        0,     0,  1188,  1189,     8,     9,    10,    11,    12,    13,
    2204       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2205       24,     0,     0,    25,    26,    27,     0,  1218,     0,     0,
    2206     1220,    30,   435,     0,     0,     0,     0,     0,   203,     0,
     2398       0,     0,     0,     0,     0,   279,    33,     0,    34,     0,
     2399      35,   280,     0,   203,    38,   281,     0,     0,   282,   283,
     2400     284,   285,    40,    41,     0,   286,   287,     0,     0,     0,
     2401       0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
     2402       0,     0,     0,     0,     0,     0,     0,   289,     0,  1000,
     2403       0,     0,     0,     0,     0,     0,   291,  1001,   293,   294,
     2404     295,   296,     2,   202,     4,     5,     6,     7,     8,     9,
     2405      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2406      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2407       0,     0,     0,     0,   277,    30,   278,     0,     0,     0,
    22072408       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2208        0,     0,     0,   203,    33,  1234,     0,     0,   226,   228,
    2209        0,    37,    38,     0,     0,     0,   236,     0,     0,     0,
    2210        0,     0,   150,     0,  1241,     0,     0,     0,     0,     0,
    2211     1245,  1246,     0,     0,     0,     0,     0,     0,     0,  1254,
    2212        0,     0,     0,     0,     0,  1258,     0,   436,  1262,     0,
    2213     1263,   689,     0,  1265,     0,   108,     0,     0,   203,     0,
    2214        0,     0,     0,     0,   864,     0,     0,   241,  1274,     0,
    2215        0,     0,     0,     0,     0,     0,   203,   246,     0,     0,
    2216        0,     0,   203,     0,   271,  1283,   272,  1285,  1286,  1287,
    2217     1288,     0,     0,     0,     0,     0,     0,     0,     0,   203,
    2218        0,     0,   203,   203,  1296,     0,  1297,   273,     0,     0,
    2219      165,     0,     0,   625,     0,   135,     0,   275,     0,   203,
    2220      276,   277,   278,   279,    40,    41,     0,   280,   281,  1317,
    2221      353,     0,     0,   203,     0,   282,     0,     0,  1322,  1323,
    2222      203,     0,     0,   367,     0,     0,     0,     0,     0,   283,
    2223        0,   626,     0,   627,   362,     0,     0,     0,   285,   363,
    2224      287,   288,   289,   290,     0,   399,     0,     0,     0,     0,
    2225        0,     0,     0,     0,     0,     0,     0,     0,     0,   413,
    2226        0,     0,     0,     0,     0,     0,     0,   418,     0,  1357,
    2227     1358,     0,     0,     0,     0,  1362,  1363,   426,     0,     0,
    2228        0,     0,     0,     0,     0,     0,  1373,     0,     0,   434,
     2409       0,     0,     0,     0,     0,     0,     0,   279,    33,     0,
     2410      34,     0,    35,   280,     0,   203,    38,   281,     0,     0,
     2411     282,   283,   284,   285,    40,    41,     0,   286,   287,     0,
     2412       0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
     2413       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
     2414       0,   373,     0,     0,     0,     0,     0,     0,   291,   375,
     2415     293,   294,   295,   296,     1,     2,     3,     4,     5,     6,
     2416       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2417      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2418      25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
    22292419       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2230        0,   453,     0,     0,     0,     0,   463,     0,     0,     0,
    2231        0,     0,     0,     0,     0,     0,     0,     0,     0,   471,
    2232        0,     0,     0,     0,     0,   481,     0,   485,     0,   203,
    2233        0,     0,     0,     0,     0,     0,     0,  1404,     0,     0,
    2234        0,     0,     0,   513,     0,     0,     0,     0,     0,  1408,
    2235        0,     0,     0,  1411,  1412,  1413,     0,     0,     0,   203,
    2236        0,     0,     0,     0,   203,  1417,     0,     0,     0,     0,
    2237        0,   271,     0,   272,  1428,     0,     0,     0,     0,     0,
    2238        0,     0,     0,     0,   573,     0,     0,     0,     0,     0,
    2239     1439,     0,     0,     0,   273,     0,     0,     0,     0,     0,
    2240      274,     0,     0,     0,   275,     0,     0,   276,   277,   278,
    2241      279,    40,    41,   621,   280,   281,     0,   622,   623,     0,
    2242      624,     0,   282,     0,     0,     0,   634,   635,     0,   636,
    2243      637,     0,   638,     0,   639,     0,   283,     0,   361,     0,
    2244        0,   362,  1480,  1481,     0,   285,   363,   287,   288,   289,
    2245      290,   652,     0,   203,     0,  1486,     0,     0,     0,   654,
    2246        0,   271,  1486,   272,  1048,     0,  1049,   203,     0,  1050,
    2247     1051,  1052,  1053,  1054,  1055,  1056,  1057,  1532,  1058,     0,
    2248        0,  1059,    32,   667,   273,     0,     0,   486,     0,  1516,
    2249      625,     0,     0,     0,   275,   675,     0,   276,   277,   278,
    2250      279,    40,    41,     0,   280,   281,     0,     0,     0,     0,
    2251        0,     0,   282,     0,     0,     0,     0,  1539,   711,     0,
    2252        0,     0,     0,     0,   714,     0,   283,     0,   361,   453,
    2253        0,   164,     0,     0,     0,   285,   363,   287,   288,   289,
    2254      290,     0,  1552,     0,     0,   203,     0,  1554,     0,  -126,
    2255        0,     0,     0,     0,     0,   203,     0,     0,     0,     0,
    2256        0,     0,     0,     0,     0,   748,     0,     0,     0,     0,
    2257        0,     0,     0,     0,     0,     0,     0,   203,     0,     0,
    2258      764,     0,     0,  -501,     0,     0,     1,     2,     3,     4,
     2420       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
     2421       0,    33,     0,    34,     0,    35,    36,     0,    37,    38,
     2422      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
     2423       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2425       0,     0,    42,     0,    43,     0,     0,     0,  -501,     0,
     2426       0,     0,    44,     1,     2,     3,     4,     5,     6,     7,
     2427       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2428      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2429      26,    27,    28,     0,     0,    29,     0,    30,    31,     0,
     2430       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2431       0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
     2432      33,     0,    34,     0,    35,    36,     0,    37,    38,    39,
     2433       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2434       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2436       0,    42,     0,    43,     0,     0,     0,     0,     0,     0,
     2437       0,    44,     1,     2,   202,     4,     5,     6,     7,     8,
     2438       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2439      19,    20,    21,    22,    23,    24,  -278,     0,    25,    26,
     2440      27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
     2441       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2442       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2443       0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
     2444    -278,   201,     2,   202,     4,     5,     6,     7,     8,     9,
     2445      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2446      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2447       0,     0,    43,     0,     0,    30,     0,     0,     0,     0,
     2448     109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2449       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2450      34,     0,    35,     0,     0,   203,    38,     2,   202,     4,
    22592451       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    22602452      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2261        0,     0,    25,    26,    27,    28,   790,     0,    29,     0,
    2262       30,    31,     0,     0,     0,   800,     0,   801,     0,     0,
    2263        0,     0,     0,   806,     0,     0,     0,     0,     0,   271,
    2264       32,   272,     0,    33,     0,    34,   825,    35,    36,     0,
    2265       37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2266       41,     0,   273,     0,     0,     0,     0,     0,   274,     0,
    2267        0,   203,   275,     0,     0,   276,   277,   278,   279,    40,
    2268       41,     0,   280,   281,    42,   866,    43,     0,     0,     0,
    2269      282,     0,     0,     0,    44,   346,     0,   203,     0,     0,
    2270        0,     0,     0,     0,   283,     0,   361,     0,     0,     0,
    2271        0,     0,   787,   285,   363,   287,   288,   289,   290,     0,
    2272        0,   901,     0,   203,     0,     0,   395,     0,     0,     0,
    2273        0,     0,     0,   395,     0,     8,     9,    10,    11,    12,
    2274       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2275       23,    24,  -279,   203,    25,    26,    27,     0,     0,     0,
    2276        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2277      203,     0,     0,     0,     0,     0,     0,     0,     0,   241,
    2278        0,     0,     0,     0,     0,    33,     0,     0,     0,   950,
    2279      951,     0,    37,    38,     0,     0,  -279,     0,     0,     0,
    2280        0,   965,     0,   395,     0,     0,     0,     0,   271,     0,
    2281      272,     0,     0,     0,     0,     0,     0,     0,   982,     0,
    2282      983,     0,     0,     0,   987,     0,  1028,     0,   568,     0,
    2283        0,   273,     0,     0,     0,     0,   108,   274,     0,   203,
    2284        0,   275,     0,     0,   276,   277,   278,   279,    40,    41,
    2285        0,   280,   281,     0,     0,     0,   203,   395,     0,   282,
    2286        0,     0,     0,     0,     0,   395,   569,     0,   395,   572,
    2287        0,   346,     0,   283,     0,   361,   599,     0,     0,     0,
    2288      756,     0,   285,   363,   287,   288,   289,   290,     0,  1023,
    2289        0,     0,     0,     0,     0,   617,  1024,     0,   346,     0,
    2290        0,     0,     0,     0,     0,     0,     0,     0,     0,  1026,
    2291        0,  1027,     0,     0,     0,     0,   271,     0,   272,     0,
    2292        0,     0,     0,     0,   395,     0,  1040,     0,   395,     0,
    2293        0,     0,  1044,     0,     0,     0,     0,     0,     0,   273,
    2294        0,     0,     0,     0,  1080,   274,     0,  1081,   203,   275,
    2295