Changeset 2162c2c
- Timestamp:
- Jan 11, 2017, 4:11:02 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 075734f
- Parents:
- bb82c03 (diff), d3a85240 (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. - Location:
- src
- Files:
-
- 2 added
- 56 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
rbb82c03 r2162c2c 656 656 } 657 657 658 void CodeGenerator::visit( TupleExpr * tupleExpr ) { assert( false ); } 658 void CodeGenerator::visit( UntypedTupleExpr * tupleExpr ) { assertf( false, "UntypedTupleExpr should not make it to Code Gen" ); } 659 660 void CodeGenerator::visit( TupleExpr * tupleExpr ) { assertf( false, "TupleExpr should not make it to Code Gen" ); } 659 661 660 662 void CodeGenerator::visit( TypeExpr * typeExpr ) {} -
src/CodeGen/CodeGenerator.h
rbb82c03 r2162c2c 72 72 virtual void visit( CommaExpr *commaExpr ); 73 73 virtual void visit( CompoundLiteralExpr *compLitExpr ); 74 virtual void visit( UntypedTupleExpr *tupleExpr ); 74 75 virtual void visit( TupleExpr *tupleExpr ); 75 76 virtual void visit( TypeExpr *typeExpr ); -
src/CodeGen/GenType.cc
rbb82c03 r2162c2c 41 41 virtual void visit( EnumInstType *enumInst ); 42 42 virtual void visit( TypeInstType *typeInst ); 43 virtual void visit( TupleType * tupleType ); 43 44 virtual void visit( VarArgsType *varArgsType ); 44 45 virtual void visit( ZeroType *zeroType ); … … 197 198 } 198 199 200 void GenType::visit( TupleType * tupleType ) { 201 assertf( ! mangle, "Tuple types should not make it to Code Gen." ); 202 Visitor::visit( tupleType ); 203 } 204 199 205 void GenType::visit( VarArgsType *varArgsType ) { 200 206 typeString = "__builtin_va_list " + typeString; -
src/GenPoly/Box.cc
rbb82c03 r2162c2c 136 136 template< typename DeclClass > 137 137 DeclClass *handleDecl( DeclClass *decl, Type *type ); 138 139 using PolyMutator::mutate; 138 template< typename AggDecl > 139 AggDecl * handleAggDecl( AggDecl * aggDecl ); 140 141 typedef PolyMutator Parent; 142 using Parent::mutate; 140 143 virtual DeclarationWithType *mutate( FunctionDecl *functionDecl ) override; 141 144 virtual ObjectDecl *mutate( ObjectDecl *objectDecl ) override; 145 virtual StructDecl *mutate( StructDecl *structDecl ) override; 146 virtual UnionDecl *mutate( UnionDecl *unionDecl ) override; 142 147 virtual TypeDecl *mutate( TypeDecl *typeDecl ) override; 143 148 virtual TypedefDecl *mutate( TypedefDecl *typedefDecl ) override; … … 686 691 for ( std::list< Expression* >::iterator param = params.begin(); param != params.end(); ++param ) { 687 692 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 688 assert (paramType &&"Aggregate parameters should be type expressions");693 assertf(paramType, "Aggregate parameters should be type expressions"); 689 694 paramType->set_type( replaceWithConcrete( appExpr, paramType->get_type(), false ) ); 690 695 } … … 783 788 void Pass1::boxParams( ApplicationExpr *appExpr, FunctionType *function, std::list< Expression *>::iterator &arg, const TyVarMap &exprTyVars ) { 784 789 for ( std::list< DeclarationWithType *>::const_iterator param = function->get_parameters().begin(); param != function->get_parameters().end(); ++param, ++arg ) { 785 assert ( arg != appExpr->get_args().end() );790 assertf( arg != appExpr->get_args().end(), "boxParams: missing argument for param %s to %s in %s", toString( *param ).c_str(), toString( function ).c_str(), toString( appExpr ).c_str() ); 786 791 addCast( *arg, (*param)->get_type(), exprTyVars ); 787 792 boxParam( (*param)->get_type(), *arg, exprTyVars ); … … 1127 1132 makeTyVarMap( function, exprTyVars ); // xxx - should this take into account the variables already bound in scopeTyVars (i.e. remove them from exprTyVars?) 1128 1133 ReferenceToType *dynRetType = isDynRet( function, exprTyVars ); 1129 Type *concRetType = appExpr->get_result()->isVoid() ? nullptr : appExpr->get_result();// ?: dynRetType; // xxx - is concRetType a good name? 1130 1134 1135 // NOTE: addDynRetParam needs to know the actual (generated) return type so it can make a temp variable, so pass the result type from the appExpr 1136 // passTypeVars needs to know the program-text return type (i.e. the distinction between _conc_T30 and T3(int)) 1137 // concRetType may not be a good name in one or both of these places. A more appropriate name change is welcome. 1131 1138 if ( dynRetType ) { 1139 Type *concRetType = appExpr->get_result()->isVoid() ? nullptr : appExpr->get_result(); 1132 1140 ret = addDynRetParam( appExpr, function, concRetType, arg ); // xxx - used to use dynRetType instead of concRetType 1133 1141 } else if ( needsAdapter( function, scopeTyVars ) && ! needsAdapter( function, exprTyVars) ) { // xxx - exprTyVars is used above...? … … 1142 1150 arg = appExpr->get_args().begin(); 1143 1151 1152 Type *concRetType = replaceWithConcrete( appExpr, dynRetType ); 1144 1153 passTypeVars( appExpr, concRetType, arg, exprTyVars ); // xxx - used to use dynRetType instead of concRetType; this changed so that the correct type paramaters are passed for return types (it should be the concrete type's parameters, not the formal type's) 1145 1154 addInferredParams( appExpr, function, arg, exprTyVars ); … … 1271 1280 template< typename DeclClass > 1272 1281 DeclClass * Pass2::handleDecl( DeclClass *decl, Type *type ) { 1273 DeclClass *ret = static_cast< DeclClass *>( Mutator::mutate( decl ) );1282 DeclClass *ret = static_cast< DeclClass *>( Parent::mutate( decl ) ); 1274 1283 1275 1284 return ret; … … 1305 1314 } 1306 1315 1316 template< typename AggDecl > 1317 AggDecl * Pass2::handleAggDecl( AggDecl * aggDecl ) { 1318 // prevent tyVars from leaking into containing scope 1319 scopeTyVars.beginScope(); 1320 Parent::mutate( aggDecl ); 1321 scopeTyVars.endScope(); 1322 return aggDecl; 1323 } 1324 1325 StructDecl * Pass2::mutate( StructDecl *aggDecl ) { 1326 return handleAggDecl( aggDecl ); 1327 } 1328 1329 UnionDecl * Pass2::mutate( UnionDecl *aggDecl ) { 1330 return handleAggDecl( aggDecl ); 1331 } 1332 1307 1333 TypeDecl * Pass2::mutate( TypeDecl *typeDecl ) { 1308 1334 addToTyVarMap( typeDecl, scopeTyVars ); … … 1310 1336 return handleDecl( typeDecl, typeDecl->get_base() ); 1311 1337 } else { 1312 return Mutator::mutate( typeDecl );1338 return Parent::mutate( typeDecl ); 1313 1339 } 1314 1340 } … … 1322 1348 makeTyVarMap( pointerType, scopeTyVars ); 1323 1349 1324 Type *ret = Mutator::mutate( pointerType );1350 Type *ret = Parent::mutate( pointerType ); 1325 1351 1326 1352 scopeTyVars.endScope(); -
src/GenPoly/InstantiateGeneric.cc
rbb82c03 r2162c2c 18 18 #include <utility> 19 19 #include <vector> 20 #include <unordered_map> 20 21 21 22 #include "InstantiateGeneric.h" … … 24 25 #include "GenPoly.h" 25 26 #include "ScopedSet.h" 27 #include "PolyMutator.h" 26 28 27 29 #include "ResolvExpr/typeops.h" … … 146 148 } 147 149 150 // collect the environments of each TypeInstType so that type variables can be replaced 151 // xxx - possibly temporary solution. Access to type environments is required in GenericInstantiator, but it needs to be a DeclMutator which does not provide easy access to the type environments. 152 class EnvFinder final : public GenPoly::PolyMutator { 153 public: 154 virtual Type * mutate( TypeInstType * inst ) override { 155 if ( env ) envMap[inst] = env; 156 return inst; 157 } 158 159 // don't want to associate an environment with TypeInstTypes that occur in function types - this may actually only apply to function types belonging to DeclarationWithTypes (or even just FunctionDecl)? 160 virtual Type * mutate( FunctionType * ftype ) override { 161 return ftype; 162 } 163 std::unordered_map< ReferenceToType *, TypeSubstitution * > envMap; 164 }; 165 148 166 /// Mutator pass that replaces concrete instantiations of generic types with actual struct declarations, scoped appropriately 149 167 class GenericInstantiator final : public DeclMutator { … … 154 172 /// Namer for concrete types 155 173 UniqueName typeNamer; 156 174 /// Reference to mapping of environments 175 const std::unordered_map< ReferenceToType *, TypeSubstitution * > & envMap; 157 176 public: 158 GenericInstantiator( ) : DeclMutator(), instantiations(), dtypeStatics(), typeNamer("_conc_") {}177 GenericInstantiator( const std::unordered_map< ReferenceToType *, TypeSubstitution * > & envMap ) : DeclMutator(), instantiations(), dtypeStatics(), typeNamer("_conc_"), envMap( envMap ) {} 159 178 160 179 using DeclMutator::mutate; … … 174 193 void insert( UnionInstType *inst, const std::list< TypeExpr* > &typeSubs, UnionDecl *decl ) { instantiations.insert( inst->get_baseUnion(), typeSubs, decl ); } 175 194 195 void replaceParametersWithConcrete( std::list< Expression* >& params ); 196 Type *replaceWithConcrete( Type *type, bool doClone ); 197 176 198 /// Strips a dtype-static aggregate decl of its type parameters, marks it as stripped 177 199 void stripDtypeParams( AggregateDecl *base, std::list< TypeDecl* >& baseParams, const std::list< TypeExpr* >& typeSubs ); … … 179 201 180 202 void instantiateGeneric( std::list< Declaration* > &translationUnit ) { 181 GenericInstantiator instantiator; 203 EnvFinder finder; 204 mutateAll( translationUnit, finder ); 205 GenericInstantiator instantiator( finder.envMap ); 182 206 instantiator.mutateDeclarationList( translationUnit ); 183 207 } … … 209 233 // can pretend that any ftype is `void (*)(void)` 210 234 out.push_back( new TypeExpr( new FunctionType( Type::Qualifiers(), false ) ) ); 235 break; 236 case TypeDecl::Ttype: 237 assertf( false, "Ttype parameters are not currently allowed as parameters to generic types." ); 211 238 break; 212 239 } … … 253 280 } 254 281 282 /// xxx - more or less copied from box -- these should be merged with those somehow... 283 void GenericInstantiator::replaceParametersWithConcrete( std::list< Expression* >& params ) { 284 for ( std::list< Expression* >::iterator param = params.begin(); param != params.end(); ++param ) { 285 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 286 assertf(paramType, "Aggregate parameters should be type expressions"); 287 paramType->set_type( replaceWithConcrete( paramType->get_type(), false ) ); 288 } 289 } 290 291 Type *GenericInstantiator::replaceWithConcrete( Type *type, bool doClone ) { 292 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( type ) ) { 293 if ( envMap.count( typeInst ) ) { 294 TypeSubstitution * env = envMap.at( typeInst ); 295 Type *concrete = env->lookup( typeInst->get_name() ); 296 if ( concrete ) { 297 return concrete->clone(); 298 } 299 else return typeInst->clone(); 300 } 301 } else if ( StructInstType *structType = dynamic_cast< StructInstType* >( type ) ) { 302 if ( doClone ) { 303 structType = structType->clone(); 304 } 305 replaceParametersWithConcrete( structType->get_parameters() ); 306 return structType; 307 } else if ( UnionInstType *unionType = dynamic_cast< UnionInstType* >( type ) ) { 308 if ( doClone ) { 309 unionType = unionType->clone(); 310 } 311 replaceParametersWithConcrete( unionType->get_parameters() ); 312 return unionType; 313 } 314 return type; 315 } 316 317 255 318 Type* GenericInstantiator::mutate( StructInstType *inst ) { 256 319 // mutate subtypes … … 262 325 if ( inst->get_parameters().empty() ) return inst; 263 326 327 // need to replace type variables to ensure that generic types are instantiated for the return values of polymorphic functions (in particular, for thunks, because they are not [currently] copy constructed). 328 replaceWithConcrete( inst, false ); 329 264 330 // check for an already-instantiatiated dtype-static type 265 331 if ( dtypeStatics.find( inst->get_baseStruct() ) != dtypeStatics.end() ) { … … 269 335 270 336 // check if type can be concretely instantiated; put substitutions into typeSubs 271 assert ( inst->get_baseParameters() &&"Base struct has parameters" );337 assertf( inst->get_baseParameters(), "Base struct has parameters" ); 272 338 std::list< TypeExpr* > typeSubs; 273 339 genericType gt = makeSubstitutions( *inst->get_baseParameters(), inst->get_parameters(), typeSubs ); -
src/GenPoly/ScrubTyVars.cc
rbb82c03 r2162c2c 31 31 case TypeDecl::Any: 32 32 case TypeDecl::Dtype: 33 case TypeDecl::Ttype: 33 34 { 34 35 PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( typeInst->get_qualifiers() ) ); -
src/GenPoly/Specialize.cc
rbb82c03 r2162c2c 32 32 #include "Common/utility.h" 33 33 #include "InitTweak/InitTweak.h" 34 #include "Tuples/Tuples.h" 34 35 35 36 namespace GenPoly { 36 const std::list<Label> noLabels; 37 37 class Specializer; 38 38 class Specialize final : public PolyMutator { 39 friend class Specializer; 39 40 public: 40 Specialize( std::string paramPrefix = "_p" );41 42 41 using PolyMutator::mutate; 43 42 virtual Expression * mutate( ApplicationExpr *applicationExpr ) override; … … 48 47 // virtual Expression * mutate( CommaExpr *commaExpr ); 49 48 50 private: 51 Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams = 0 ); 52 Expression *doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = 0 ); 49 Specializer * specializer = nullptr; 53 50 void handleExplicitParams( ApplicationExpr *appExpr ); 54 55 UniqueName thunkNamer;56 std::string paramPrefix;57 51 }; 58 52 59 void convertSpecializations( std::list< Declaration* >& translationUnit ) { 60 Specialize specializer; 61 mutateAll( translationUnit, specializer ); 62 } 63 64 Specialize::Specialize( std::string paramPrefix ) 65 : thunkNamer( "_thunk" ), paramPrefix( paramPrefix ) { 66 } 53 class Specializer { 54 public: 55 Specializer( Specialize & spec ) : spec( spec ), env( spec.env ), stmtsToAdd( spec.stmtsToAdd ) {} 56 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) = 0; 57 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) = 0; 58 virtual Expression *doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams = 0 ); 59 60 protected: 61 Specialize & spec; 62 std::string paramPrefix = "_p"; 63 TypeSubstitution *& env; 64 std::list< Statement * > & stmtsToAdd; 65 }; 66 67 // for normal polymorphic -> monomorphic function conversion 68 class PolySpecializer : public Specializer { 69 public: 70 PolySpecializer( Specialize & spec ) : Specializer( spec ) {} 71 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override; 72 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override; 73 }; 74 75 // // for tuple -> non-tuple function conversion 76 class TupleSpecializer : public Specializer { 77 public: 78 TupleSpecializer( Specialize & spec ) : Specializer( spec ) {} 79 virtual bool needsSpecialization( Type * formalType, Type * actualType, TypeSubstitution * env ) override; 80 virtual Expression *createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) override; 81 }; 67 82 68 83 /// Looks up open variables in actual type, returning true if any of them are bound in the environment or formal type. 69 bool needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) {84 bool PolySpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) { 70 85 if ( env ) { 71 86 using namespace ResolvExpr; … … 92 107 93 108 /// Generates a thunk that calls `actual` with type `funType` and returns its address 94 Expression * Specialize::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 109 Expression * PolySpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 110 static UniqueName thunkNamer( "_thunk" ); 111 95 112 FunctionType *newType = funType->clone(); 96 113 if ( env ) { 97 TypeSubstitution newEnv( *env );98 114 // it is important to replace only occurrences of type variables that occur free in the 99 115 // thunk's type 100 newEnv.applyFree( newType );116 env->applyFree( newType ); 101 117 } // if 102 118 // create new thunk with same signature as formal type (C linkage, empty body) … … 125 141 std::list< Statement* > oldStmts; 126 142 oldStmts.splice( oldStmts.end(), stmtsToAdd ); 127 handleExplicitParams( appExpr );143 spec.handleExplicitParams( appExpr ); 128 144 paramPrefix = oldParamPrefix; 129 145 // write any statements added for recursive specializations into the thunk body … … 147 163 } 148 164 149 Expression * Specialize ::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {165 Expression * Specializer::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) { 150 166 assertf( actual->has_result(), "attempting to specialize an untyped expression" ); 151 167 if ( needsSpecialization( formalType, actual->get_result(), env ) ) { 152 FunctionType *funType; 153 if ( ( funType = getFunctionType( formalType ) ) ) { 168 if ( FunctionType *funType = getFunctionType( formalType ) ) { 154 169 ApplicationExpr *appExpr; 155 170 VariableExpr *varExpr; … … 170 185 } 171 186 187 bool TupleSpecializer::needsSpecialization( Type *formalType, Type *actualType, TypeSubstitution *env ) { 188 if ( FunctionType * ftype = getFunctionType( formalType ) ) { 189 return ftype->isTtype(); 190 } 191 return false; 192 } 193 194 /// restructures arg to match the structure of a single formal parameter. Assumes that atomic types are compatible (as the Resolver should have ensured this) 195 template< typename OutIterator > 196 void matchOneFormal( Expression * arg, unsigned & idx, Type * formal, OutIterator out ) { 197 if ( TupleType * tupleType = dynamic_cast< TupleType * >( formal ) ) { 198 std::list< Expression * > exprs; 199 for ( Type * t : *tupleType ) { 200 matchOneFormal( arg, idx, t, back_inserter( exprs ) ); 201 } 202 *out++ = new TupleExpr( exprs ); 203 } else { 204 *out++ = new TupleIndexExpr( arg->clone(), idx++ ); 205 } 206 } 207 208 /// restructures the ttype argument to match the structure of the formal parameters of the actual function. 209 // [begin, end) are the formal parameters. 210 // args is the list of arguments currently given to the actual function, the last of which needs to be restructured. 211 template< typename Iterator, typename OutIterator > 212 void fixLastArg( Expression * last, Iterator begin, Iterator end, OutIterator out ) { 213 // safe_dynamic_cast for the assertion 214 safe_dynamic_cast< TupleType * >( last->get_result() ); 215 unsigned idx = 0; 216 for ( ; begin != end; ++begin ) { 217 DeclarationWithType * formal = *begin; 218 Type * formalType = formal->get_type(); 219 matchOneFormal( last, idx, formalType, out ); 220 } 221 delete last; 222 } 223 224 Expression * TupleSpecializer::createThunkFunction( FunctionType *funType, Expression *actual, InferredParams *inferParams ) { 225 static UniqueName thunkNamer( "_tupleThunk" ); 226 227 FunctionType *newType = funType->clone(); 228 if ( env ) { 229 // it is important to replace only occurrences of type variables that occur free in the 230 // thunk's type 231 env->applyFree( newType ); 232 } // if 233 // create new thunk with same signature as formal type (C linkage, empty body) 234 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( noLabels ), false, false ); 235 thunkFunc->fixUniqueId(); 236 237 // thunks may be generated and not used - silence warning with attribute 238 thunkFunc->get_attributes().push_back( new Attribute( "unused" ) ); 239 240 // thread thunk parameters into call to actual function, naming thunk parameters as we go 241 UniqueName paramNamer( paramPrefix ); 242 ApplicationExpr *appExpr = new ApplicationExpr( actual ); 243 244 FunctionType * actualType = getFunctionType( actual->get_result() )->clone(); 245 if ( env ) { 246 // need to apply the environment to the actual function's type, since it may itself be polymorphic 247 env->apply( actualType ); 248 } 249 std::unique_ptr< FunctionType > actualTypeManager( actualType ); // for RAII 250 std::list< DeclarationWithType * >::iterator actualBegin = actualType->get_parameters().begin(); 251 std::list< DeclarationWithType * >::iterator actualEnd = actualType->get_parameters().end(); 252 std::list< DeclarationWithType * >::iterator formalBegin = funType->get_parameters().begin(); 253 std::list< DeclarationWithType * >::iterator formalEnd = funType->get_parameters().end(); 254 255 Expression * last = nullptr; 256 for ( DeclarationWithType* param : thunkFunc->get_functionType()->get_parameters() ) { 257 // walk the parameters to the actual function alongside the parameters to the thunk to find the location where the ttype parameter begins to satisfy parameters in the actual function. 258 param->set_name( paramNamer.newName() ); 259 assertf( formalBegin != formalEnd, "Reached end of formal parameters before finding ttype parameter" ); 260 if ( Tuples::isTtype((*formalBegin)->get_type()) ) { 261 last = new VariableExpr( param ); 262 break; 263 } 264 assertf( actualBegin != actualEnd, "reached end of actual function's arguments before finding ttype parameter" ); 265 ++actualBegin; 266 ++formalBegin; 267 268 appExpr->get_args().push_back( new VariableExpr( param ) ); 269 } // for 270 assert( last ); 271 fixLastArg( last, actualBegin, actualEnd, back_inserter( appExpr->get_args() ) ); 272 appExpr->set_env( maybeClone( env ) ); 273 if ( inferParams ) { 274 appExpr->get_inferParams() = *inferParams; 275 } // if 276 277 // handle any specializations that may still be present 278 std::string oldParamPrefix = paramPrefix; 279 paramPrefix += "p"; 280 // save stmtsToAdd in oldStmts 281 std::list< Statement* > oldStmts; 282 oldStmts.splice( oldStmts.end(), stmtsToAdd ); 283 spec.mutate( appExpr ); 284 paramPrefix = oldParamPrefix; 285 // write any statements added for recursive specializations into the thunk body 286 thunkFunc->get_statements()->get_kids().splice( thunkFunc->get_statements()->get_kids().end(), stmtsToAdd ); 287 // restore oldStmts into stmtsToAdd 288 stmtsToAdd.splice( stmtsToAdd.end(), oldStmts ); 289 290 // add return (or valueless expression) to the thunk 291 Statement *appStmt; 292 if ( funType->get_returnVals().empty() ) { 293 appStmt = new ExprStmt( noLabels, appExpr ); 294 } else { 295 appStmt = new ReturnStmt( noLabels, appExpr ); 296 } // if 297 thunkFunc->get_statements()->get_kids().push_back( appStmt ); 298 299 // add thunk definition to queue of statements to add 300 stmtsToAdd.push_back( new DeclStmt( noLabels, thunkFunc ) ); 301 // return address of thunk function as replacement expression 302 return new AddressExpr( new VariableExpr( thunkFunc ) ); 303 } 304 172 305 void Specialize::handleExplicitParams( ApplicationExpr *appExpr ) { 173 306 // create thunks for the explicit parameters … … 178 311 std::list< Expression* >::iterator actual; 179 312 for ( formal = function->get_parameters().begin(), actual = appExpr->get_args().begin(); formal != function->get_parameters().end() && actual != appExpr->get_args().end(); ++formal, ++actual ) { 180 *actual = doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() );313 *actual = specializer->doSpecialization( (*formal )->get_type(), *actual, &appExpr->get_inferParams() ); 181 314 } 182 315 } … … 190 323 // don't need to do this for intrinsic calls, because they aren't actually passed 191 324 for ( InferredParams::iterator inferParam = appExpr->get_inferParams().begin(); inferParam != appExpr->get_inferParams().end(); ++inferParam ) { 192 inferParam->second.expr = doSpecialization( inferParam->second.formalType, inferParam->second.expr, &appExpr->get_inferParams() );325 inferParam->second.expr = specializer->doSpecialization( inferParam->second.formalType, inferParam->second.expr, inferParam->second.inferParams.get() ); 193 326 } 194 195 327 handleExplicitParams( appExpr ); 196 328 } 197 198 329 return appExpr; 199 330 } … … 202 333 addrExpr->get_arg()->acceptMutator( *this ); 203 334 assert( addrExpr->has_result() ); 204 addrExpr->set_arg( doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) );335 addrExpr->set_arg( specializer->doSpecialization( addrExpr->get_result(), addrExpr->get_arg() ) ); 205 336 return addrExpr; 206 337 } … … 212 343 return castExpr; 213 344 } 214 Expression *specialized = doSpecialization( castExpr->get_result(), castExpr->get_arg() );345 Expression *specialized = specializer->doSpecialization( castExpr->get_result(), castExpr->get_arg() ); 215 346 if ( specialized != castExpr->get_arg() ) { 216 347 // assume here that the specialization incorporates the cast … … 236 367 // return commaExpr; 237 368 // } 369 370 void convertSpecializations( std::list< Declaration* >& translationUnit ) { 371 Specialize spec; 372 373 TupleSpecializer tupleSpec( spec ); 374 spec.specializer = &tupleSpec; 375 mutateAll( translationUnit, spec ); 376 377 PolySpecializer polySpec( spec ); 378 spec.specializer = &polySpec; 379 mutateAll( translationUnit, spec ); 380 } 238 381 } // namespace GenPoly 239 382 -
src/InitTweak/FixInit.cc
rbb82c03 r2162c2c 38 38 #include "SynTree/AddStmtVisitor.h" 39 39 #include "CodeGen/GenType.h" // for warning/error messages 40 #include "Tuples/Tuples.h" 40 41 41 42 bool ctordtorp = false; // print all debug … … 392 393 393 394 bool ResolveCopyCtors::skipCopyConstruct( Type * type ) { 394 return dynamic_cast< VarArgsType * >( type ) || GenPoly::getFunctionType( type ) ;395 return dynamic_cast< VarArgsType * >( type ) || GenPoly::getFunctionType( type ) || Tuples::isTtype( type ); 395 396 } 396 397 … … 1099 1100 addDeclaration( tmp ); 1100 1101 1102 // xxx - this can be TupleAssignExpr now. Need to properly handle this case. 1101 1103 ApplicationExpr * callExpr = safe_dynamic_cast< ApplicationExpr * > ( ctorExpr->get_callExpr() ); 1102 1104 TypeSubstitution * env = ctorExpr->get_env(); -
src/InitTweak/InitTweak.cc
rbb82c03 r2162c2c 487 487 virtual void visit( UntypedValofExpr *valofExpr ) { isConstExpr = false; } 488 488 virtual void visit( CompoundLiteralExpr *compLitExpr ) { isConstExpr = false; } 489 virtual void visit( UntypedTupleExpr *tupleExpr ) { isConstExpr = false; } 489 490 virtual void visit( TupleExpr *tupleExpr ) { isConstExpr = false; } 490 491 virtual void visit( TupleAssignExpr *tupleExpr ) { isConstExpr = false; } -
src/Parser/DeclarationNode.cc
rbb82c03 r2162c2c 948 948 // if ( variable.name ) { 949 949 if ( variable.tyClass != NoTypeClass ) { 950 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 950 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Dtype, TypeDecl::Ftype, TypeDecl::Ttype }; 951 assertf( sizeof(kindMap)/sizeof(kindMap[0] == NoTypeClass-1), "DeclarationNode::build: kindMap is out of sync." ); 952 assertf( variable.tyClass < sizeof(kindMap)/sizeof(kindMap[0]), "Variable's tyClass is out of bounds." ); 951 953 // TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 952 954 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); -
src/Parser/ExpressionNode.cc
rbb82c03 r2162c2c 323 323 324 324 Expression *build_tuple( ExpressionNode * expr_node ) { 325 TupleExpr *ret = new TupleExpr();326 buildMoveList( expr_node, ret->get_exprs());327 return ret;325 std::list< Expression * > exprs; 326 buildMoveList( expr_node, exprs ); 327 return new UntypedTupleExpr( exprs );; 328 328 } 329 329 -
src/Parser/ParseNode.h
rbb82c03 r2162c2c 204 204 enum Length { Short, Long, LongLong, NoLength }; 205 205 enum Aggregate { Struct, Union, Trait, NoAggregate }; 206 enum TypeClass { Otype, Dtype, Ftype, NoTypeClass };206 enum TypeClass { Otype, Dtype, Ftype, Ttype, NoTypeClass }; 207 207 enum BuiltinType { Valist, Zero, One, NoBuiltinType }; 208 208 -
src/Parser/lex.cc
rbb82c03 r2162c2c 382 382 (yy_c_buf_p) = yy_cp; 383 383 384 #define YY_NUM_RULES 18 5385 #define YY_END_OF_BUFFER 18 6384 #define YY_NUM_RULES 186 385 #define YY_END_OF_BUFFER 187 386 386 /* This struct is not used in this scanner, 387 387 but its presence is necessary. */ … … 391 391 flex_int32_t yy_nxt; 392 392 }; 393 static yyconst flex_int16_t yy_accept[90 5] =393 static yyconst flex_int16_t yy_accept[909] = 394 394 { 0, 395 0, 0, 0, 0, 0, 0, 12 0, 120, 123, 123,396 18 6, 184, 7, 9, 8, 143, 122, 105, 148, 151,397 1 19, 130, 131, 146, 144, 134, 145, 137, 147, 110,398 11 1, 112, 135, 136, 153, 155, 154, 156, 184, 105,399 12 8, 184, 129, 149, 105, 107, 105, 105, 105, 105,400 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,401 10 5, 105, 105, 132, 152, 133, 150, 7, 184, 4,402 4, 18 5, 108, 185, 109, 120, 121, 127, 123, 124,403 7, 9, 0, 8, 16 0, 179, 105, 0, 172, 142,404 16 5, 173, 170, 157, 168, 158, 169, 167, 0, 116,405 406 3, 0, 17 1, 115, 113, 0, 0, 113, 113, 0,407 0, 11 3, 112, 112, 112, 0, 112, 140, 141, 139,408 16 1, 163, 159, 164, 162, 0, 0, 0, 0, 0,395 0, 0, 0, 0, 0, 0, 121, 121, 124, 124, 396 187, 185, 7, 9, 8, 144, 123, 106, 149, 152, 397 120, 131, 132, 147, 145, 135, 146, 138, 148, 111, 398 112, 113, 136, 137, 154, 156, 155, 157, 185, 106, 399 129, 185, 130, 150, 106, 108, 106, 106, 106, 106, 400 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 401 106, 106, 106, 133, 153, 134, 151, 7, 185, 4, 402 4, 186, 109, 186, 110, 121, 122, 128, 124, 125, 403 7, 9, 0, 8, 161, 180, 106, 0, 173, 143, 404 166, 174, 171, 158, 169, 159, 170, 168, 0, 117, 405 406 3, 0, 172, 116, 114, 0, 0, 114, 114, 0, 407 0, 114, 113, 113, 113, 0, 113, 141, 142, 140, 408 162, 164, 160, 165, 163, 0, 0, 0, 0, 0, 409 409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 410 10 6, 178, 0, 122, 119, 105, 0, 0, 175, 0,411 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,412 10 5, 105, 105, 105, 105, 105, 105, 38, 105, 105,413 10 5, 105, 105, 105, 105, 105, 105, 105, 57, 105,414 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,415 10 5, 105, 105, 105, 105, 105, 105, 174, 166,7,416 417 0, 0, 0, 2, 0, 5, 108, 0, 0, 0,418 120, 0, 126, 125, 125, 0, 0, 0, 123, 0,410 107, 179, 0, 123, 120, 106, 0, 0, 176, 0, 411 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 412 106, 106, 106, 106, 106, 106, 106, 38, 106, 106, 413 106, 106, 106, 106, 106, 106, 106, 106, 57, 106, 414 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 415 106, 106, 106, 106, 106, 106, 106, 106, 175, 167, 416 417 7, 0, 0, 0, 2, 0, 5, 109, 0, 0, 418 0, 121, 0, 127, 126, 126, 0, 0, 0, 124, 419 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 138, 116, 117, 0, 117, 117,421 0, 0, 6, 117, 113, 0, 0, 0, 117, 0,422 113, 113, 113, 113, 0, 114, 0, 0, 112, 112,423 11 2, 112, 0, 176, 177, 0, 182, 180, 0, 0,424 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,425 105, 17, 105, 105, 105, 105, 105, 105, 105, 105,426 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,427 428 14, 105, 105, 105, 105, 105, 105, 105, 105, 105,429 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 51,430 105, 105, 105, 64, 105, 105, 105, 105, 105, 105,431 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 91,432 105, 105, 105, 105, 105, 105, 105, 105, 0, 0,433 0, 0, 0, 0, 0, 0, 125, 0, 0, 0,434 0, 0, 125, 0, 0, 183, 0, 0, 0, 0,435 0, 0, 0, 117, 0, 117, 0, 117, 0, 117,436 0, 0, 117, 0, 113, 113, 0, 0, 114, 114,437 0, 114, 0, 114, 112, 112, 0, 0, 0, 0,438 439 0, 0, 0, 0, 0, 0, 181, 105, 105, 105,440 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,441 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,442 21, 105, 24, 105, 27, 105, 105, 105, 105, 105,443 10 5, 105, 41, 105, 43, 105, 105, 105, 105, 105,444 10 5, 105, 56, 105, 67, 105, 105, 105, 105, 105,445 10 5, 105, 105, 105, 105, 105, 105, 105, 105, 105,446 10 5, 105, 99, 105, 105, 105, 0, 0, 0, 0,420 0, 0, 0, 0, 0, 139, 117, 118, 0, 118, 421 118, 0, 0, 6, 118, 114, 0, 0, 0, 118, 422 0, 114, 114, 114, 114, 0, 115, 0, 0, 113, 423 113, 113, 113, 0, 177, 178, 0, 183, 181, 0, 424 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 425 0, 106, 17, 106, 106, 106, 106, 106, 106, 106, 426 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 427 428 106, 14, 106, 106, 106, 106, 106, 106, 106, 106, 429 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 430 51, 106, 106, 106, 64, 106, 106, 106, 106, 106, 431 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 432 91, 106, 106, 106, 106, 106, 106, 106, 106, 106, 433 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 434 0, 0, 0, 0, 126, 0, 0, 184, 0, 0, 435 0, 0, 0, 0, 0, 118, 0, 118, 0, 118, 436 0, 118, 0, 0, 118, 0, 114, 114, 0, 0, 437 115, 115, 0, 115, 0, 115, 113, 113, 0, 0, 438 439 0, 0, 0, 0, 0, 0, 0, 0, 182, 106, 440 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 441 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 442 106, 106, 21, 106, 24, 106, 27, 106, 106, 106, 443 106, 106, 106, 106, 41, 106, 43, 106, 106, 106, 444 106, 106, 106, 106, 56, 106, 67, 106, 106, 106, 445 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 446 106, 106, 106, 106, 106, 100, 106, 106, 106, 0, 447 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 448 125, 0, 0, 0, 0, 0, 117, 0, 0, 0, 449 450 0, 0, 0, 0, 114, 114, 0, 118, 0, 114, 451 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 105, 105, 22, 105, 105, 105, 453 105, 105, 105, 105, 15, 105, 105, 105, 105, 105, 454 105, 105, 105, 105, 105, 105, 105, 105, 105, 23, 455 25, 105, 32, 105, 105, 105, 105, 40, 105, 105, 456 105, 105, 49, 105, 105, 54, 105, 105, 71, 72, 457 105, 105, 105, 78, 105, 105, 105, 105, 105, 88, 458 90, 105, 105, 96, 105, 105, 103, 105, 0, 0, 448 0, 0, 0, 126, 0, 0, 0, 0, 0, 118, 449 450 0, 0, 0, 0, 0, 0, 0, 115, 115, 0, 451 119, 0, 115, 115, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 0, 0, 0, 106, 106, 22, 453 106, 106, 106, 106, 106, 106, 106, 15, 106, 106, 454 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 455 106, 106, 23, 25, 106, 32, 106, 106, 106, 106, 456 40, 106, 106, 106, 106, 49, 106, 106, 54, 106, 457 106, 71, 72, 106, 106, 106, 78, 106, 106, 106, 458 106, 106, 88, 90, 92, 106, 106, 97, 106, 106, 459 104, 106, 0, 0, 0, 0, 0, 0, 0, 0, 460 459 461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460 461 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 462 114, 118, 118, 118, 118, 0, 114, 0, 0, 0, 463 0, 0, 0, 0, 0, 0, 0, 105, 0, 105, 464 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 465 105, 105, 105, 105, 105, 59, 105, 105, 105, 105, 466 105, 105, 105, 105, 28, 105, 105, 105, 39, 42, 467 45, 105, 105, 52, 105, 61, 68, 105, 105, 77, 468 79, 82, 83, 85, 86, 105, 105, 93, 105, 105, 469 104, 0, 1, 0, 0, 0, 0, 0, 0, 108, 470 0, 0, 0, 125, 0, 0, 0, 0, 118, 0, 471 472 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 473 0, 105, 105, 18, 105, 105, 105, 105, 105, 105, 474 105, 16, 105, 105, 105, 33, 105, 105, 105, 105, 475 105, 105, 105, 105, 105, 105, 105, 105, 36, 37, 476 105, 48, 53, 105, 105, 105, 92, 105, 105, 0, 462 0, 119, 0, 0, 115, 119, 119, 119, 119, 0, 463 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 464 0, 106, 0, 106, 106, 106, 106, 106, 106, 106, 465 106, 106, 106, 106, 106, 106, 106, 106, 106, 59, 466 106, 106, 106, 106, 106, 106, 106, 106, 28, 106, 467 106, 106, 39, 42, 45, 106, 106, 52, 106, 61, 468 68, 106, 106, 77, 79, 82, 83, 85, 86, 106, 469 106, 94, 106, 106, 105, 0, 1, 0, 0, 0, 470 0, 0, 0, 109, 0, 0, 0, 126, 0, 0, 471 472 0, 0, 119, 0, 119, 119, 0, 0, 0, 0, 473 0, 0, 0, 0, 0, 106, 106, 18, 106, 106, 474 106, 106, 106, 106, 106, 16, 106, 106, 106, 33, 475 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 476 106, 106, 36, 37, 106, 48, 53, 106, 106, 106, 477 93, 106, 106, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 0, 0, 0, 0, 10, 11, 29, 55, 479 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 480 106, 60, 62, 65, 106, 106, 80, 95, 106, 106, 481 35, 106, 47, 73, 74, 106, 98, 101, 0, 0, 482 477 483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 10, 11, 29, 55, 105, 105, 105, 105, 479 105, 105, 105, 105, 105, 105, 105, 60, 62, 65, 480 105, 105, 80, 94, 105, 105, 35, 105, 47, 73, 481 74, 105, 97, 100, 0, 0, 0, 0, 0, 0, 482 483 0, 0, 0, 0, 0, 0, 105, 69, 105, 105, 484 12, 105, 105, 30, 34, 105, 105, 105, 66, 105, 485 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 487 105, 105, 105, 105, 105, 105, 105, 50, 63, 75, 488 81, 95, 101, 105, 105, 105, 0, 0, 0, 0, 489 0, 0, 0, 0, 105, 105, 13, 19, 105, 105, 490 31, 105, 105, 105, 26, 46, 89, 0, 0, 105, 491 105, 105, 105, 105, 105, 76, 102, 105, 87, 20, 492 105, 105, 44, 84, 105, 105, 105, 105, 105, 105, 493 494 105, 98, 70, 0 484 106, 69, 106, 106, 12, 106, 106, 30, 34, 106, 485 106, 106, 66, 106, 106, 106, 106, 106, 106, 106, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487 0, 0, 0, 58, 106, 106, 106, 106, 106, 106, 488 106, 50, 63, 75, 81, 96, 102, 106, 106, 106, 489 0, 0, 0, 0, 0, 0, 0, 0, 106, 106, 490 13, 19, 106, 106, 31, 106, 106, 106, 26, 46, 491 89, 0, 0, 106, 106, 106, 106, 106, 106, 76, 492 103, 106, 87, 20, 106, 106, 44, 84, 106, 106, 493 494 106, 106, 106, 106, 106, 99, 70, 0 495 495 } ; 496 496 … … 540 540 } ; 541 541 542 static yyconst flex_int16_t yy_base[10 79] =542 static yyconst flex_int16_t yy_base[1083] = 543 543 { 0, 544 0, 84, 2323, 2322, 94, 0, 177, 178, 179, 180, 545 2338, 2866, 191, 2866, 197, 55, 2866, 2283, 60, 173, 546 2866, 2866, 2866, 56, 188, 2866, 191, 189, 204, 216, 547 275, 0, 2300, 2866, 216, 2298, 152, 344, 155, 220, 548 2866, 159, 2866, 217, 226, 2866, 185, 154, 212, 251, 549 237, 270, 235, 257, 241, 279, 193, 305, 314, 333, 550 238, 228, 227, 2866, 225, 2866, 2295, 402, 390, 2866, 551 2306, 2866, 2273, 235, 2866, 0, 2866, 426, 0, 2866, 552 417, 2866, 439, 451, 2866, 498, 2270, 264, 2866, 2866, 553 2866, 2866, 2866, 2286, 2866, 2285, 2866, 2866, 2297, 559, 554 555 2866, 2313, 2866, 438, 444, 511, 534, 289, 253, 197, 556 380, 305, 0, 319, 280, 198, 322, 2866, 2866, 2866, 557 2281, 2866, 2866, 2866, 2278, 2277, 218, 312, 2292, 350, 558 459, 368, 398, 440, 405, 448, 2272, 441, 2219, 458, 559 2247, 2866, 335, 2866, 2866, 321, 2243, 2242, 2866, 2214, 560 444, 297, 433, 372, 425, 454, 434, 461, 570, 455, 561 468, 385, 474, 475, 494, 492, 489, 464, 488, 491, 562 513, 503, 430, 521, 517, 519, 516, 522, 2240, 526, 563 523, 276, 460, 524, 542, 555, 554, 561, 325, 558, 564 584, 552, 600, 586, 593, 588, 595, 2866, 2866, 667, 565 566 655, 2287, 682, 2866, 688, 2866, 2236, 590, 2232, 2230, 567 0, 648, 2866, 2866, 675, 2227, 2224, 2223, 0, 2246, 568 578, 631, 654, 685, 698, 660, 689, 670, 692, 2242, 569 695, 701, 2200, 2198, 2866, 0, 693, 720, 685, 711, 570 2197, 2247, 2866, 737, 745, 666, 757, 763, 797, 780, 571 599, 2866, 2203, 2178, 0, 805, 2224, 806, 617, 2866, 572 2199, 2172, 819, 2866, 2866, 2203, 2866, 2866, 707, 722, 573 2182, 2182, 699, 2177, 2174, 2171, 0, 2170, 0, 2141, 574 743, 724, 739, 689, 741, 720, 623, 759, 762, 804, 575 681, 795, 749, 746, 799, 801, 765, 784, 803, 811, 576 577 2170, 814, 818, 827, 831, 817, 821, 833, 835, 841, 578 842, 834, 843, 844, 845, 847, 849, 857, 858, 860, 579 851, 859, 866, 2167, 867, 868, 869, 871, 873, 874, 580 763, 875, 876, 880, 881, 884, 887, 888, 885, 2164, 581 891, 936, 894, 897, 905, 899, 901, 902, 965, 961, 582 2160, 2159, 2157, 0, 2154, 0, 952, 956, 2153, 0, 583 2152, 0, 2150, 0, 2169, 2866, 951, 952, 2148, 2145, 584 0, 2143, 0, 2866, 967, 986, 978, 2866, 992, 1032, 585 2140, 1008, 1054, 2136, 2866, 2866, 915, 951, 1040, 993, 586 1079, 956, 1071, 994, 2866, 2866, 2132, 2130, 2128, 0, 587 588 2125, 0, 2123, 0, 2121, 0, 2866, 935, 969, 973, 589 968, 1012, 975, 1056, 992, 1058, 997, 1032, 993, 1000, 590 1060, 1061, 1066, 1070, 1073, 1030, 1071, 1069, 1072, 1078, 591 2121, 700, 2118, 1085, 2117, 1079, 1081, 1089, 1087, 1098, 592 1096, 1099, 2116, 1101, 2114, 1105, 1106, 1107, 1109, 1112, 593 1113, 1114, 2111, 1115, 2108, 1117, 1119, 1120, 1118, 1124, 594 1126, 1121, 1136, 1130, 1134, 1135, 1149, 1137, 1138, 1150, 595 1152, 1153, 2107, 1151, 1154, 1167, 1205, 2103, 0, 2101, 596 0, 2098, 0, 2095, 0, 1204, 2094, 0, 2093, 0, 597 2091, 2088, 2085, 0, 2084, 0, 1208, 2083, 1214, 1230, 598 599 1216, 1255, 1221, 1172, 1169, 2866, 1271, 1289, 1282, 2093, 600 2066, 2075, 2074, 0, 2073, 0, 2071, 0, 2068, 0, 601 2065, 0, 2064, 0, 1190, 1159, 2066, 1193, 1195, 1197, 602 1212, 1237, 1231, 1265, 1248, 1266, 1267, 1213, 1268, 1269, 603 1283, 1270, 1271, 234, 1285, 1273, 1274, 1287, 1293, 2064, 604 1306, 1301, 2061, 1290, 1303, 1305, 1308, 2058, 1312, 1309, 605 1311, 1313, 2057, 1314, 1319, 2056, 1316, 1322, 2054, 2051, 606 1315, 1327, 1330, 2050, 1333, 1332, 1336, 1334, 1338, 1345, 607 2049, 1335, 1348, 2047, 1346, 1349, 2044, 1351, 2093, 2039, 608 0, 2037, 0, 2004, 0, 2002, 0, 2001, 0, 1998, 609 610 0, 1995, 0, 1994, 0, 1394, 1404, 1428, 1415, 1993, 611 2866, 1421, 1370, 1391, 1419, 1991, 2866, 1988, 0, 1985, 612 0, 1984, 0, 1983, 0, 0, 0, 1984, 0, 1352, 613 1406, 1408, 1359, 1354, 1409, 1415, 1412, 1411, 1423, 1433, 614 1425, 1430, 1435, 1437, 1439, 1448, 1442, 1449, 1440, 1444, 615 1453, 1450, 1452, 1456, 1981, 1458, 1460, 1463, 1980, 1979, 616 1977, 1466, 1467, 1974, 1470, 1973, 1972, 1469, 1473, 1970, 617 1963, 1961, 1960, 1957, 1953, 1475, 1479, 1949, 1476, 1477, 618 1945, 1992, 2866, 1938, 0, 1937, 0, 0, 0, 1938, 619 0, 0, 0, 2866, 0, 0, 0, 0, 1525, 1932, 620 621 2866, 2866, 1531, 1931, 0, 1930, 0, 0, 0, 0, 622 1928, 1488, 1483, 1928, 1491, 1507, 1518, 1490, 1519, 1521, 623 1508, 1927, 1525, 1529, 1527, 1541, 1530, 1384, 1543, 1539, 624 1558, 1547, 1549, 1512, 1545, 1552, 1553, 1554, 1926, 1924, 625 1557, 1921, 1920, 1556, 1537, 1560, 1919, 1561, 1564, 0, 626 0, 0, 1914, 1911, 1910, 1612, 0, 1909, 1907, 1904, 627 1903, 1902, 1903, 1900, 1899, 1898, 1568, 1572, 1566, 1577, 628 1590, 1570, 1578, 1579, 1591, 1596, 1625, 1896, 1598, 1893, 629 1599, 1603, 1604, 1608, 1606, 1612, 1892, 1613, 1891, 1889, 630 1886, 1614, 1885, 1884, 1879, 1872, 1870, 1869, 1866, 1865, 631 632 1864, 1862, 1845, 1836, 1835, 1832, 1616, 1828, 1617, 1622, 633 1620, 1619, 1624, 1626, 1825, 1628, 1644, 1630, 1818, 1631, 634 1639, 1645, 1647, 1634, 1649, 1651, 1813, 1812, 1791, 1790, 635 1789, 1782, 1780, 1779, 1737, 1735, 1733, 1732, 1730, 1732, 636 1652, 1654, 1655, 1657, 1659, 1662, 1663, 1731, 1729, 1668, 637 1727, 1724, 1669, 1670, 1664, 1675, 1719, 1718, 1671, 1629, 638 1564, 1468, 1350, 1269, 1678, 1681, 1239, 1682, 1688, 1689, 639 1238, 1690, 1692, 1696, 1206, 1171, 1157, 1035, 1031, 1691, 640 1697, 1700, 1704, 1702, 1706, 998, 560, 1701, 527, 395, 641 1707, 1710, 357, 300, 1708, 1713, 1715, 1718, 1716, 1719, 642 643 1720, 233, 137, 2866, 1794, 1807, 1820, 1830, 1840, 1853, 644 1863, 1876, 1889, 1902, 1910, 1920, 1927, 1934, 1941, 1948, 645 1955, 1962, 1969, 1976, 1983, 1990, 1994, 2002, 2008, 2015, 646 2022, 2029, 2036, 2039, 2046, 2052, 2065, 2078, 2085, 2092, 647 2099, 2106, 2109, 2116, 2119, 2126, 2129, 2136, 2139, 2146, 648 2149, 2156, 2159, 2166, 2169, 2176, 2184, 2191, 2198, 2205, 649 2212, 2215, 2222, 2225, 2232, 2235, 2242, 2248, 2261, 2268, 650 2275, 2278, 2285, 2288, 2295, 2298, 2305, 2308, 2315, 2318, 651 2325, 2328, 2335, 2342, 2345, 2352, 2355, 2362, 2369, 2376, 652 2379, 2386, 2389, 2396, 2399, 2406, 2409, 2416, 2419, 2426, 653 654 2432, 2445, 2452, 2459, 2462, 2469, 2472, 2479, 2482, 2489, 655 2492, 2499, 2502, 2509, 2512, 2519, 2522, 2529, 2532, 2539, 656 2546, 2549, 2556, 2559, 2566, 2569, 2576, 2579, 2582, 2588, 657 2595, 2604, 2611, 2618, 2621, 2628, 2631, 2634, 2640, 2647, 658 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2675, 2678, 2685, 659 2688, 2691, 2694, 2697, 2707, 2714, 2717, 2720, 2723, 2730, 660 2737, 2744, 2747, 2754, 2761, 2768, 2775, 2782, 2789, 2796, 661 2803, 2810, 2817, 2824, 2831, 2838, 2845, 2852 544 0, 84, 2330, 2327, 94, 0, 177, 178, 179, 180, 545 2341, 2877, 191, 2877, 197, 55, 2877, 2287, 60, 173, 546 2877, 2877, 2877, 56, 188, 2877, 191, 189, 204, 216, 547 275, 0, 2306, 2877, 216, 2305, 152, 344, 155, 220, 548 2877, 159, 2877, 217, 226, 2877, 185, 154, 212, 251, 549 237, 270, 235, 257, 241, 279, 193, 305, 314, 351, 550 238, 228, 227, 2877, 225, 2877, 2300, 406, 412, 2877, 551 2309, 2877, 2277, 235, 2877, 0, 2877, 439, 0, 2877, 552 426, 2877, 452, 464, 2877, 511, 2276, 264, 2877, 2877, 553 2877, 2877, 2877, 2293, 2877, 2290, 2877, 2877, 2300, 572, 554 555 2877, 2317, 2877, 451, 457, 524, 547, 298, 253, 197, 556 312, 279, 0, 342, 325, 198, 322, 2877, 2877, 2877, 557 2287, 2877, 2877, 2877, 2285, 2282, 218, 312, 2295, 350, 558 363, 368, 369, 391, 411, 417, 2276, 452, 2225, 453, 559 2254, 2877, 274, 2877, 2877, 438, 2248, 2245, 2877, 2218, 560 435, 282, 353, 277, 391, 419, 442, 320, 583, 451, 561 446, 443, 479, 469, 364, 472, 481, 454, 458, 484, 562 503, 493, 352, 506, 486, 453, 507, 509, 2246, 539, 563 532, 524, 516, 528, 556, 530, 540, 552, 553, 564, 564 574, 538, 576, 613, 573, 597, 602, 571, 2877, 2877, 565 566 668, 674, 2294, 680, 2877, 686, 2877, 2241, 603, 2235, 567 2234, 0, 683, 2877, 2877, 692, 2233, 2231, 2211, 0, 568 2233, 556, 627, 630, 662, 699, 688, 692, 693, 696, 569 2230, 700, 703, 2205, 2202, 2877, 0, 695, 726, 693, 570 701, 2201, 2253, 2877, 747, 742, 700, 753, 760, 793, 571 815, 746, 2877, 2210, 2183, 0, 802, 2227, 801, 754, 572 2877, 2203, 2178, 839, 2877, 2877, 2210, 2877, 2877, 709, 573 723, 2187, 2185, 755, 2181, 2180, 2178, 0, 2175, 0, 574 2144, 694, 736, 737, 741, 614, 739, 738, 742, 798, 575 807, 792, 802, 797, 746, 816, 748, 791, 824, 819, 576 577 826, 2174, 827, 830, 831, 440, 834, 838, 836, 843, 578 847, 849, 841, 850, 861, 853, 862, 851, 863, 865, 579 872, 864, 873, 874, 2173, 749, 875, 876, 878, 880, 580 881, 882, 884, 885, 886, 888, 889, 892, 898, 896, 581 2171, 899, 906, 944, 901, 907, 913, 917, 908, 911, 582 976, 977, 2165, 2164, 2163, 0, 2161, 0, 964, 968, 583 2158, 0, 2157, 0, 2156, 0, 2176, 2877, 964, 967, 584 2153, 2147, 0, 2143, 0, 2877, 979, 998, 990, 2877, 585 1004, 1044, 2141, 1020, 1066, 2139, 2877, 2877, 963, 1006, 586 1052, 1005, 1091, 968, 1083, 1006, 2877, 2877, 2136, 2134, 587 588 2132, 0, 2129, 0, 2126, 0, 2125, 0, 2877, 931, 589 981, 985, 928, 1024, 987, 1068, 958, 1070, 1060, 1010, 590 1005, 1072, 1083, 1022, 1078, 1082, 1088, 1042, 1084, 1081, 591 1089, 1097, 2127, 1090, 2125, 1095, 2122, 1093, 1091, 1109, 592 1101, 1111, 1115, 1116, 2119, 1118, 2118, 1119, 1120, 1121, 593 1123, 1126, 1127, 1128, 2117, 1129, 2115, 1131, 1134, 1135, 594 1132, 1138, 1140, 1143, 1148, 1149, 1150, 1152, 1155, 1151, 595 1161, 1164, 1166, 1168, 1169, 2112, 1170, 1172, 1175, 1221, 596 2106, 0, 2105, 0, 2104, 0, 2102, 0, 1216, 2099, 597 0, 2096, 0, 2095, 2094, 2092, 0, 2089, 0, 1223, 598 599 2086, 1229, 1245, 1231, 1270, 1236, 1186, 1185, 2877, 1286, 600 1304, 1297, 2097, 2072, 2082, 2079, 0, 2076, 0, 2075, 601 0, 2074, 0, 2072, 0, 2069, 0, 1190, 1210, 2069, 602 1191, 1227, 1212, 1230, 1253, 1246, 1254, 1280, 1281, 1282, 603 1284, 1228, 1287, 1286, 1288, 1285, 234, 1293, 1289, 1304, 604 1300, 1305, 2068, 1322, 1306, 2067, 1308, 1313, 1318, 1320, 605 2065, 1323, 1324, 1326, 1327, 2062, 1330, 1331, 2061, 1334, 606 1335, 2060, 2058, 1337, 1339, 1340, 2055, 1004, 1346, 1347, 607 1348, 1349, 1364, 2054, 2053, 1351, 1353, 2051, 1350, 1355, 608 2018, 1362, 2066, 2012, 0, 2009, 0, 2006, 0, 2005, 609 610 0, 2004, 0, 2002, 0, 1999, 0, 1996, 0, 1401, 611 1407, 1435, 1418, 1995, 2877, 1424, 1411, 1421, 1427, 1994, 612 2877, 1992, 0, 1989, 0, 1988, 0, 1987, 0, 0, 613 0, 1988, 0, 1412, 1422, 1419, 1387, 1369, 1416, 1433, 614 1436, 1403, 1446, 1441, 1431, 1432, 1451, 1452, 1455, 1456, 615 1457, 1486, 1460, 1461, 1462, 1464, 1463, 1467, 1985, 1465, 616 1468, 1470, 1984, 1983, 1981, 1472, 1466, 1974, 1478, 1972, 617 1971, 1480, 1484, 1968, 1964, 1960, 1956, 1953, 1952, 1487, 618 1494, 1951, 1497, 1483, 1949, 1996, 2877, 1942, 0, 1941, 619 0, 0, 0, 1942, 0, 0, 0, 2877, 0, 0, 620 621 0, 0, 1537, 1936, 2877, 2877, 1543, 1935, 0, 1934, 622 0, 0, 0, 0, 1932, 1499, 1519, 1932, 1500, 1524, 623 1530, 1501, 1502, 1533, 1537, 1931, 1532, 1541, 1534, 1539, 624 1544, 599, 1548, 1549, 1579, 1556, 1557, 1560, 1561, 1562, 625 1563, 1564, 1930, 1928, 1567, 1925, 1924, 1566, 1569, 1572, 626 1923, 1574, 1578, 0, 0, 0, 1918, 1915, 1914, 1624, 627 0, 1913, 1911, 1908, 1907, 1906, 1907, 1904, 1903, 1902, 628 1580, 1588, 1576, 1577, 1601, 1583, 1602, 1589, 1604, 1603, 629 1636, 1900, 1609, 1897, 1610, 1614, 1617, 1622, 1618, 1623, 630 1896, 1624, 1895, 1893, 1886, 1626, 1884, 1883, 1877, 1876, 631 632 1875, 1873, 1856, 1847, 1846, 1843, 1836, 1833, 1826, 1824, 633 1628, 1826, 1629, 1630, 1631, 1632, 1635, 1637, 1805, 1639, 634 1667, 1642, 1804, 1643, 1653, 1658, 1651, 1652, 1659, 1662, 635 1800, 1793, 1791, 1790, 1748, 1745, 1744, 1742, 1741, 1737, 636 1735, 1733, 1732, 1734, 1663, 1664, 1666, 1672, 1673, 1674, 637 1675, 1731, 1689, 1676, 1644, 1522, 1680, 1685, 1686, 1687, 638 1500, 1411, 1363, 1362, 1260, 1219, 1218, 1047, 1690, 1688, 639 1046, 1700, 1695, 1701, 924, 1704, 1708, 1709, 839, 794, 640 759, 702, 636, 1682, 1710, 1713, 1714, 1715, 1717, 638, 641 536, 1719, 488, 441, 1721, 1722, 408, 281, 1723, 1726, 642 643 1727, 1729, 1728, 1730, 1733, 233, 137, 2877, 1805, 1818, 644 1831, 1841, 1851, 1864, 1874, 1887, 1900, 1913, 1921, 1931, 645 1938, 1945, 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 646 2005, 2013, 2019, 2026, 2033, 2040, 2047, 2050, 2057, 2063, 647 2076, 2089, 2096, 2103, 2110, 2117, 2120, 2127, 2130, 2137, 648 2140, 2147, 2150, 2157, 2160, 2167, 2170, 2177, 2180, 2187, 649 2195, 2202, 2209, 2216, 2223, 2226, 2233, 2236, 2243, 2246, 650 2253, 2259, 2272, 2279, 2286, 2289, 2296, 2299, 2306, 2309, 651 2316, 2319, 2326, 2329, 2336, 2339, 2346, 2353, 2356, 2363, 652 2366, 2373, 2380, 2387, 2390, 2397, 2400, 2407, 2410, 2417, 653 654 2420, 2427, 2430, 2437, 2443, 2456, 2463, 2470, 2473, 2480, 655 2483, 2490, 2493, 2500, 2503, 2510, 2513, 2520, 2523, 2530, 656 2533, 2540, 2543, 2550, 2557, 2560, 2567, 2570, 2577, 2580, 657 2587, 2590, 2593, 2599, 2606, 2615, 2622, 2629, 2632, 2639, 658 2642, 2645, 2651, 2658, 2661, 2664, 2667, 2670, 2673, 2676, 659 2679, 2686, 2689, 2696, 2699, 2702, 2705, 2708, 2718, 2725, 660 2728, 2731, 2734, 2741, 2748, 2755, 2758, 2765, 2772, 2779, 661 2786, 2793, 2800, 2807, 2814, 2821, 2828, 2835, 2842, 2849, 662 2856, 2863 662 663 } ; 663 664 664 static yyconst flex_int16_t yy_def[10 79] =665 static yyconst flex_int16_t yy_def[1083] = 665 666 { 0, 666 904, 1, 905, 905, 904, 5, 906, 906, 907, 907, 667 904, 904, 904, 904, 904, 904, 904, 908, 904, 904, 668 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 669 904, 31, 904, 904, 904, 904, 904, 904, 909, 908, 670 904, 904, 904, 904, 908, 904, 908, 908, 908, 908, 667 908, 1, 909, 909, 908, 5, 910, 910, 911, 911, 668 908, 908, 908, 908, 908, 908, 908, 912, 908, 908, 671 669 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 672 908, 908, 908, 904, 904, 904, 904, 904, 910, 904, 673 904, 904, 911, 904, 904, 912, 904, 904, 913, 904, 674 904, 904, 904, 904, 904, 904, 908, 904, 904, 904, 675 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 676 677 904, 914, 904, 904, 30, 904, 904, 904, 904, 915, 678 30, 904, 31, 904, 904, 31, 904, 904, 904, 904, 679 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 680 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 681 916, 904, 904, 904, 904, 908, 917, 918, 904, 904, 670 908, 31, 908, 908, 908, 908, 908, 908, 913, 912, 671 908, 908, 908, 908, 912, 908, 912, 912, 912, 912, 672 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 673 912, 912, 912, 908, 908, 908, 908, 908, 914, 908, 674 908, 908, 915, 908, 908, 916, 908, 908, 917, 908, 675 908, 908, 908, 908, 908, 908, 912, 908, 908, 908, 676 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 677 678 908, 918, 908, 908, 30, 908, 908, 908, 908, 919, 679 30, 908, 31, 908, 908, 31, 908, 908, 908, 908, 680 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 681 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 682 920, 908, 908, 908, 908, 912, 921, 922, 908, 908, 683 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 684 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 685 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 686 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 687 912, 912, 912, 912, 912, 912, 912, 912, 908, 908, 688 689 908, 914, 914, 914, 908, 914, 908, 915, 908, 923, 690 924, 916, 908, 908, 908, 908, 925, 926, 927, 917, 691 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 692 908, 908, 908, 928, 929, 908, 100, 908, 908, 908, 693 908, 100, 918, 908, 100, 111, 246, 908, 908, 908, 694 908, 908, 908, 908, 908, 930, 931, 932, 908, 908, 695 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 696 908, 908, 933, 908, 934, 935, 936, 937, 938, 939, 697 908, 940, 940, 940, 940, 940, 940, 940, 940, 940, 698 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 699 700 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 701 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 702 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 703 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 704 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 705 941, 942, 943, 944, 945, 946, 947, 948, 908, 908, 706 949, 950, 951, 952, 953, 954, 908, 908, 908, 908, 707 908, 955, 956, 957, 958, 908, 908, 908, 908, 908, 708 908, 908, 382, 908, 378, 385, 908, 908, 959, 960, 709 961, 908, 908, 908, 961, 908, 908, 908, 962, 963, 710 711 964, 965, 966, 967, 968, 969, 970, 971, 908, 972, 712 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 713 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 714 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 715 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 716 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 717 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, 718 972, 972, 972, 972, 972, 972, 972, 972, 972, 973, 719 974, 975, 976, 977, 978, 979, 980, 981, 908, 982, 720 983, 984, 985, 986, 986, 987, 988, 989, 990, 908, 721 722 500, 908, 908, 991, 908, 991, 908, 908, 908, 908, 723 908, 908, 908, 908, 992, 993, 994, 995, 996, 997, 724 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1005, 1005, 725 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 726 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 727 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 728 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 729 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 730 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 731 1005, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 732 733 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 908, 734 908, 908, 908, 1023, 908, 612, 908, 908, 908, 616, 735 908, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 736 1033, 1034, 1035, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 737 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 738 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 739 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 740 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 741 1034, 1034, 1034, 1034, 1034, 1036, 908, 1037, 1038, 1039, 742 1040, 1041, 1042, 1043, 1044, 1045, 1046, 908, 1047, 1048, 743 744 1049, 1050, 908, 703, 908, 908, 908, 1051, 1052, 1053, 745 1054, 1055, 1056, 1057, 1058, 1059, 1059, 1059, 1059, 1059, 746 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 747 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 748 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 749 1059, 1059, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 908, 750 1066, 1051, 1053, 1067, 1068, 1058, 1059, 1059, 1059, 1059, 751 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 752 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 753 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1070, 754 755 1063, 1071, 1064, 1072, 1065, 1073, 1074, 1067, 1075, 1068, 756 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 757 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 758 1076, 1069, 1077, 1070, 1078, 1071, 1079, 1072, 1080, 1073, 759 1081, 1074, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 760 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 761 1082, 1076, 1077, 1078, 1079, 1053, 1080, 1081, 1059, 1059, 762 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 763 1059, 1082, 1053, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 764 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 765 766 1059, 1059, 1059, 1059, 1059, 1059, 1059, 0, 908, 908, 682 767 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 683 768 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 684 769 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 685 770 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 686 908, 908, 908, 908, 908, 908, 908, 904, 904, 904, 687 688 910, 910, 910, 904, 910, 904, 911, 904, 919, 920, 689 912, 904, 904, 904, 904, 921, 922, 923, 913, 904, 690 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 691 904, 904, 924, 925, 904, 100, 904, 904, 904, 904, 692 100, 914, 904, 100, 111, 245, 904, 904, 904, 904, 693 904, 904, 904, 904, 926, 927, 928, 904, 904, 904, 694 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 695 904, 929, 904, 930, 931, 932, 933, 934, 935, 904, 696 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 697 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 698 699 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 700 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 701 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 702 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 703 936, 936, 936, 936, 936, 936, 936, 936, 937, 938, 704 939, 940, 941, 942, 943, 944, 904, 904, 945, 946, 705 947, 948, 949, 950, 904, 904, 904, 904, 904, 951, 706 952, 953, 954, 904, 904, 904, 904, 904, 904, 904, 707 380, 904, 376, 383, 904, 904, 955, 956, 957, 904, 708 904, 904, 957, 904, 904, 904, 958, 959, 960, 961, 709 710 962, 963, 964, 965, 966, 967, 904, 968, 968, 968, 711 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 712 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 713 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 714 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 715 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 716 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 717 968, 968, 968, 968, 968, 968, 969, 970, 971, 972, 718 973, 974, 975, 976, 977, 904, 978, 979, 980, 981, 719 982, 982, 983, 984, 985, 986, 904, 497, 904, 904, 720 721 987, 904, 987, 904, 904, 904, 904, 904, 904, 904, 722 904, 988, 989, 990, 991, 992, 993, 994, 995, 996, 723 997, 998, 999, 1000, 1001, 1001, 1001, 1001, 1001, 1001, 724 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 725 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 726 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 727 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 728 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 729 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003, 730 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 731 732 1014, 1015, 1016, 1017, 1018, 904, 904, 904, 904, 1019, 733 904, 608, 904, 904, 904, 612, 904, 1020, 1021, 1022, 734 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1030, 735 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 736 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 737 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 738 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 739 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 740 1030, 1032, 904, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 741 1040, 1041, 1042, 904, 1043, 1044, 1045, 1046, 904, 699, 742 743 904, 904, 904, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 744 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 745 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 746 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 747 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1056, 748 1057, 1058, 1059, 1060, 1061, 904, 1062, 1047, 1049, 1063, 749 1064, 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 750 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 751 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 752 1055, 1055, 1055, 1055, 1065, 1066, 1059, 1067, 1060, 1068, 753 754 1061, 1069, 1070, 1063, 1071, 1064, 1055, 1055, 1055, 1055, 755 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 756 1055, 1055, 1055, 1055, 1055, 1055, 1072, 1065, 1073, 1066, 757 1074, 1067, 1075, 1068, 1076, 1069, 1077, 1070, 1071, 1055, 758 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 759 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1072, 1073, 1074, 760 1075, 1049, 1076, 1077, 1055, 1055, 1055, 1055, 1055, 1055, 761 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1049, 1055, 762 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 763 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 764 765 1055, 1055, 1055, 0, 904, 904, 904, 904, 904, 904, 766 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 767 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 768 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 769 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 770 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 771 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 772 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 773 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 774 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 775 776 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 777 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 778 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 779 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 780 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 781 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 782 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 783 904, 904, 904, 904, 904, 904, 904, 904 771 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 772 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 773 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 774 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 775 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 776 777 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 778 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 779 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 780 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 781 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 782 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 783 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 784 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 785 908, 908 784 786 } ; 785 787 786 static yyconst flex_int16_t yy_nxt[29 52] =788 static yyconst flex_int16_t yy_nxt[2963] = 787 789 { 0, 788 790 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 809 811 810 812 84, 84, 84, 83, 92, 94, 88, 143, 147, 99, 811 96, 100, 100, 100, 100, 100, 100, 25 5, 904, 95,813 96, 100, 100, 100, 100, 100, 100, 256, 908, 95, 812 814 101, 86, 97, 98, 86, 102, 162, 119, 144, 78, 813 815 78, 78, 78, 145, 148, 103, 104, 88, 105, 105, 814 105, 105, 106, 106, 120, 88, 121, 122, 149, 26 6,815 150, 26 7, 257, 263, 185, 107, 198, 648, 160, 108,816 105, 105, 106, 106, 120, 88, 121, 122, 149, 267, 817 150, 268, 258, 264, 185, 107, 199, 652, 160, 108, 816 818 161, 151, 152, 153, 88, 109, 110, 154, 155, 163, 817 819 156, 111, 88, 157, 158, 146, 164, 107, 88, 88, 818 88, 159, 165, 112, 209, 88, 88, 88, 197, 88, 819 88, 109, 196, 88, 110, 104, 253, 113, 113, 113, 820 821 113, 113, 113, 88, 170, 178, 171, 199, 195, 88, 822 210, 181, 166, 233, 107, 172, 167, 182, 114, 179, 823 254, 168, 88, 261, 115, 169, 180, 173, 88, 144, 824 116, 88, 251, 326, 145, 174, 107, 175, 252, 234, 825 176, 144, 117, 266, 177, 267, 145, 262, 183, 88, 826 115, 126, 88, 184, 252, 127, 128, 88, 129, 193, 827 130, 131, 259, 132, 252, 133, 88, 283, 260, 186, 828 187, 260, 251, 88, 134, 135, 136, 88, 190, 188, 829 252, 266, 189, 267, 274, 88, 191, 268, 146, 259, 830 337, 203, 204, 192, 260, 137, 203, 260, 138, 266, 831 832 904, 267, 194, 200, 82, 83, 83, 83, 200, 88, 833 275, 201, 205, 205, 205, 205, 205, 205, 81, 82, 834 83, 83, 83, 81, 88, 139, 140, 212, 213, 266, 835 904, 267, 212, 285, 214, 258, 266, 88, 267, 214, 836 83, 82, 83, 83, 83, 83, 303, 88, 215, 215, 837 215, 215, 83, 82, 84, 84, 84, 83, 904, 214, 838 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 839 269, 266, 266, 267, 267, 216, 268, 88, 214, 266, 840 270, 267, 88, 214, 214, 88, 88, 214, 214, 266, 841 266, 267, 267, 286, 904, 214, 88, 317, 214, 246, 842 843 214, 217, 214, 284, 218, 220, 88, 88, 288, 221, 844 222, 281, 88, 88, 223, 224, 88, 225, 282, 226, 845 88, 327, 904, 301, 287, 289, 88, 88, 227, 228, 846 229, 104, 306, 106, 106, 106, 106, 106, 106, 311, 847 88, 88, 302, 88, 88, 307, 88, 304, 305, 230, 848 107, 248, 231, 248, 309, 88, 249, 249, 249, 249, 849 249, 249, 310, 308, 313, 88, 247, 312, 88, 88, 850 314, 88, 107, 88, 88, 88, 88, 316, 88, 88, 851 232, 236, 236, 236, 236, 236, 236, 319, 315, 250, 852 318, 320, 325, 323, 88, 321, 322, 237, 238, 239, 853 854 324, 240, 239, 328, 88, 329, 88, 88, 144, 365, 855 88, 366, 88, 88, 241, 330, 331, 333, 335, 239, 856 238, 239, 88, 341, 240, 332, 239, 290, 291, 292, 857 338, 293, 294, 336, 334, 295, 88, 296, 88, 351, 858 88, 339, 297, 298, 299, 88, 300, 88, 385, 212, 859 213, 343, 88, 347, 212, 342, 203, 204, 345, 344, 860 346, 203, 365, 340, 366, 352, 395, 348, 200, 82, 861 83, 83, 83, 200, 385, 88, 201, 205, 205, 205, 862 205, 205, 205, 203, 204, 365, 904, 366, 203, 349, 863 204, 365, 395, 366, 349, 414, 350, 357, 357, 357, 864 865 357, 365, 366, 366, 205, 205, 205, 205, 205, 205, 866 205, 205, 205, 205, 205, 205, 365, 366, 366, 367, 867 365, 382, 366, 365, 368, 366, 365, 374, 366, 365, 868 358, 366, 365, 88, 366, 374, 374, 375, 266, 375, 869 267, 88, 376, 376, 376, 376, 376, 376, 397, 378, 870 374, 378, 88, 266, 378, 267, 420, 411, 374, 380, 871 380, 380, 380, 380, 380, 104, 550, 245, 245, 245, 872 245, 378, 88, 378, 398, 377, 88, 413, 378, 106, 873 106, 106, 106, 106, 106, 249, 249, 249, 249, 249, 874 249, 88, 381, 88, 409, 88, 107, 248, 88, 248, 875 876 246, 88, 249, 249, 249, 249, 249, 249, 408, 410, 877 412, 88, 258, 423, 88, 88, 415, 88, 107, 383, 878 383, 383, 383, 383, 383, 388, 427, 422, 106, 106, 879 106, 106, 106, 106, 416, 237, 88, 239, 461, 240, 880 239, 113, 113, 113, 113, 113, 113, 88, 390, 428, 881 391, 88, 384, 88, 392, 88, 88, 239, 426, 239, 882 393, 258, 240, 88, 239, 421, 88, 424, 425, 88, 883 88, 417, 394, 88, 263, 432, 391, 418, 419, 88, 884 392, 430, 429, 88, 431, 88, 88, 88, 433, 435, 885 434, 436, 439, 88, 88, 88, 88, 88, 440, 88, 886 887 441, 88, 444, 88, 443, 442, 437, 438, 446, 88, 888 88, 88, 88, 445, 448, 449, 447, 450, 88, 88, 889 88, 88, 452, 88, 457, 88, 88, 88, 88, 453, 890 455, 454, 88, 88, 451, 456, 88, 88, 459, 88, 891 88, 464, 458, 88, 144, 463, 88, 462, 460, 88, 892 469, 88, 470, 88, 88, 465, 474, 88, 468, 466, 893 502, 467, 472, 204, 471, 473, 349, 204, 475, 202, 894 503, 349, 476, 350, 214, 214, 214, 214, 357, 357, 895 357, 357, 365, 365, 366, 366, 502, 88, 88, 376, 896 376, 376, 376, 376, 376, 375, 502, 375, 525, 510, 897 898 376, 376, 376, 376, 376, 376, 504, 486, 497, 497, 899 497, 497, 497, 497, 236, 236, 236, 236, 236, 236, 900 88, 88, 502, 511, 237, 88, 239, 88, 240, 239, 901 245, 245, 245, 245, 106, 106, 505, 526, 530, 528, 902 527, 498, 506, 506, 88, 88, 239, 379, 239, 88, 903 88, 240, 88, 239, 380, 380, 380, 380, 380, 380, 904 388, 505, 534, 382, 88, 537, 532, 536, 506, 506, 905 237, 238, 239, 529, 240, 239, 383, 383, 383, 383, 906 383, 383, 88, 390, 88, 391, 904, 381, 545, 392, 907 904, 904, 239, 238, 239, 393, 507, 240, 507, 239, 908 909 535, 508, 508, 508, 508, 508, 508, 394, 88, 384, 910 88, 391, 88, 88, 390, 392, 391, 531, 88, 533, 911 392, 88, 88, 88, 88, 88, 512, 542, 538, 539, 912 88, 88, 547, 88, 509, 540, 541, 88, 394, 88, 913 543, 88, 391, 548, 546, 549, 392, 544, 88, 551, 914 88, 88, 552, 88, 554, 553, 556, 88, 88, 88, 915 558, 88, 555, 557, 88, 88, 88, 88, 559, 88, 916 88, 88, 88, 88, 562, 566, 88, 560, 88, 564, 917 561, 570, 88, 563, 567, 565, 88, 88, 88, 88, 918 88, 571, 568, 569, 578, 574, 572, 575, 573, 577, 919 920 576, 88, 88, 88, 88, 88, 88, 204, 579, 88, 921 582, 88, 581, 589, 580, 587, 585, 502, 611, 88, 922 583, 584, 588, 88, 631, 586, 214, 214, 214, 214, 923 497, 497, 497, 497, 497, 497, 380, 380, 380, 380, 924 380, 380, 88, 502, 611, 88, 237, 88, 239, 88, 925 240, 239, 383, 383, 383, 383, 383, 383, 88, 630, 926 632, 502, 634, 498, 88, 88, 502, 633, 239, 499, 927 239, 503, 607, 240, 607, 239, 610, 608, 608, 608, 928 608, 608, 608, 88, 642, 500, 635, 502, 637, 88, 929 88, 88, 502, 508, 508, 508, 508, 508, 508, 507, 930 931 88, 507, 636, 639, 508, 508, 508, 508, 508, 508, 932 609, 612, 612, 612, 612, 612, 612, 88, 88, 88, 933 88, 88, 88, 88, 904, 88, 88, 613, 638, 614, 934 644, 615, 614, 646, 641, 88, 647, 88, 640, 88, 935 645, 643, 88, 651, 616, 88, 649, 650, 652, 614, 936 653, 614, 654, 88, 615, 88, 614, 88, 88, 656, 937 88, 88, 655, 88, 88, 88, 88, 88, 88, 659, 938 657, 88, 658, 660, 88, 662, 665, 666, 661, 88, 939 663, 664, 88, 667, 88, 88, 88, 88, 88, 668, 940 88, 676, 669, 671, 672, 673, 677, 88, 88, 670, 941 942 88, 88, 675, 88, 88, 904, 88, 777, 674, 712, 943 678, 88, 701, 701, 680, 679, 497, 497, 497, 497, 944 497, 497, 713, 717, 716, 681, 608, 608, 608, 608, 945 608, 608, 607, 701, 607, 701, 88, 608, 608, 608, 946 608, 608, 608, 612, 612, 612, 612, 612, 612, 606, 947 699, 699, 699, 699, 699, 699, 701, 702, 88, 702, 948 88, 88, 702, 88, 88, 714, 613, 88, 614, 715, 949 615, 614, 720, 731, 719, 88, 616, 88, 722, 702, 950 721, 702, 88, 700, 718, 88, 702, 88, 614, 88, 951 614, 88, 88, 615, 88, 614, 88, 725, 723, 724, 952 953 88, 88, 88, 729, 88, 88, 727, 732, 88, 726, 954 88, 730, 88, 728, 734, 88, 733, 737, 88, 88, 955 735, 88, 88, 879, 740, 88, 736, 88, 88, 88, 956 744, 88, 745, 738, 739, 88, 746, 748, 741, 743, 957 88, 747, 88, 88, 749, 764, 742, 699, 699, 699, 958 699, 699, 699, 612, 612, 612, 612, 612, 612, 88, 959 88, 763, 768, 613, 88, 614, 766, 615, 614, 765, 960 88, 88, 783, 88, 769, 767, 770, 88, 771, 88, 961 700, 88, 88, 772, 780, 614, 703, 614, 774, 88, 962 615, 88, 614, 88, 773, 88, 775, 88, 778, 88, 963 964 779, 88, 781, 776, 88, 88, 88, 784, 88, 88, 965 88, 791, 88, 88, 782, 787, 88, 785, 88, 904, 966 88, 793, 88, 809, 88, 794, 786, 788, 790, 88, 967 88, 88, 789, 792, 699, 699, 699, 699, 699, 699, 968 807, 808, 88, 88, 810, 812, 815, 813, 88, 817, 969 88, 88, 811, 818, 819, 88, 88, 814, 88, 821, 970 88, 816, 820, 822, 88, 88, 88, 756, 88, 88, 971 848, 88, 88, 823, 88, 843, 88, 88, 88, 845, 972 88, 846, 88, 88, 904, 849, 88, 824, 825, 826, 973 841, 88, 842, 844, 851, 840, 88, 88, 847, 88, 974 975 852, 88, 854, 88, 88, 850, 88, 88, 853, 88, 976 867, 88, 855, 866, 88, 88, 88, 871, 868, 856, 977 88, 88, 88, 873, 874, 865, 904, 88, 876, 869, 978 88, 875, 872, 88, 88, 870, 877, 882, 881, 880, 979 88, 88, 88, 88, 88, 885, 884, 886, 88, 88, 980 883, 887, 88, 88, 88, 890, 88, 892, 88, 88, 981 88, 893, 88, 888, 889, 88, 891, 88, 88, 897, 982 88, 88, 88, 904, 878, 894, 88, 896, 898, 88, 983 895, 88, 903, 88, 88, 904, 901, 904, 864, 899, 984 904, 900, 863, 902, 70, 70, 70, 70, 70, 70, 985 986 70, 70, 70, 70, 70, 70, 70, 76, 76, 76, 820 88, 159, 165, 112, 210, 88, 88, 88, 198, 88, 821 88, 109, 197, 88, 110, 104, 254, 113, 113, 113, 822 823 113, 113, 113, 88, 170, 178, 171, 200, 196, 88, 824 211, 181, 166, 234, 107, 172, 167, 182, 114, 179, 825 255, 168, 88, 275, 115, 169, 180, 173, 253, 88, 826 116, 88, 908, 88, 88, 174, 107, 175, 286, 235, 827 176, 252, 117, 267, 177, 268, 252, 253, 183, 276, 828 115, 126, 284, 184, 253, 127, 128, 88, 129, 144, 829 130, 131, 908, 132, 145, 133, 88, 259, 262, 186, 830 187, 261, 88, 253, 134, 135, 136, 194, 190, 188, 831 269, 267, 189, 268, 290, 260, 191, 269, 192, 260, 832 908, 261, 263, 193, 267, 137, 268, 261, 138, 267, 833 834 267, 268, 268, 88, 88, 88, 146, 201, 82, 83, 835 83, 83, 201, 204, 205, 202, 88, 261, 204, 318, 836 195, 270, 267, 285, 268, 139, 140, 81, 82, 83, 837 83, 83, 81, 309, 206, 206, 206, 206, 206, 206, 838 213, 214, 267, 88, 268, 213, 144, 215, 267, 271, 839 268, 145, 215, 83, 82, 83, 83, 83, 83, 287, 840 88, 216, 216, 216, 216, 83, 82, 84, 84, 84, 841 83, 88, 215, 245, 245, 245, 245, 245, 245, 246, 842 246, 246, 246, 267, 267, 268, 268, 88, 217, 288, 843 88, 215, 88, 88, 88, 88, 215, 215, 88, 436, 844 845 215, 215, 282, 88, 304, 88, 88, 908, 215, 283, 846 88, 215, 247, 215, 218, 215, 289, 219, 221, 302, 847 303, 88, 222, 223, 88, 321, 307, 224, 225, 312, 848 226, 88, 227, 88, 310, 908, 88, 313, 88, 308, 849 88, 228, 229, 230, 104, 88, 106, 106, 106, 106, 850 106, 106, 305, 306, 311, 88, 320, 314, 88, 88, 851 315, 88, 231, 107, 249, 232, 249, 317, 88, 250, 852 250, 250, 250, 250, 250, 319, 88, 328, 316, 248, 853 88, 327, 88, 323, 88, 107, 322, 367, 88, 368, 854 88, 88, 88, 233, 237, 237, 237, 237, 237, 237, 855 856 333, 326, 251, 334, 88, 88, 324, 329, 88, 336, 857 238, 239, 240, 325, 241, 240, 88, 342, 338, 330, 858 335, 144, 781, 88, 337, 88, 88, 242, 88, 331, 859 332, 340, 240, 239, 240, 88, 339, 241, 345, 240, 860 291, 292, 293, 350, 294, 295, 346, 343, 296, 88, 861 297, 88, 353, 341, 88, 298, 299, 300, 367, 301, 862 368, 367, 347, 368, 348, 88, 88, 349, 344, 201, 863 82, 83, 83, 83, 201, 204, 205, 202, 354, 368, 864 204, 204, 205, 414, 213, 214, 204, 351, 205, 213, 865 88, 908, 351, 367, 352, 368, 206, 206, 206, 206, 866 867 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 868 206, 206, 206, 206, 359, 359, 359, 359, 368, 367, 869 908, 368, 369, 367, 367, 368, 368, 367, 370, 368, 870 367, 367, 368, 368, 367, 376, 368, 376, 376, 380, 871 267, 380, 268, 377, 380, 377, 88, 360, 378, 378, 872 378, 378, 378, 378, 267, 384, 268, 908, 376, 410, 873 376, 380, 104, 380, 246, 246, 246, 246, 380, 382, 874 382, 382, 382, 382, 382, 106, 106, 106, 106, 106, 875 106, 379, 250, 250, 250, 250, 250, 250, 88, 88, 876 88, 88, 107, 88, 88, 387, 415, 247, 88, 417, 877 878 88, 88, 383, 397, 399, 428, 411, 412, 259, 413, 879 416, 88, 457, 425, 107, 385, 385, 385, 385, 385, 880 385, 387, 390, 106, 106, 106, 106, 106, 106, 397, 881 400, 238, 249, 240, 249, 241, 240, 250, 250, 250, 882 250, 250, 250, 88, 88, 392, 88, 393, 386, 88, 883 88, 394, 429, 240, 88, 240, 259, 395, 241, 88, 884 240, 113, 113, 113, 113, 113, 113, 422, 88, 396, 885 418, 88, 423, 393, 419, 424, 88, 394, 88, 88, 886 420, 421, 88, 88, 426, 427, 88, 434, 88, 430, 887 88, 88, 435, 88, 264, 88, 432, 433, 431, 88, 888 889 441, 88, 88, 88, 442, 88, 437, 443, 438, 439, 890 440, 445, 444, 88, 88, 88, 88, 88, 449, 446, 891 450, 447, 451, 448, 88, 88, 88, 88, 88, 452, 892 88, 459, 88, 88, 88, 454, 88, 88, 88, 456, 893 88, 88, 458, 455, 88, 461, 453, 466, 88, 460, 894 88, 88, 144, 88, 465, 462, 464, 463, 88, 88, 895 88, 471, 467, 88, 468, 88, 469, 473, 470, 88, 896 472, 474, 475, 476, 477, 478, 88, 351, 205, 205, 897 88, 479, 351, 88, 352, 203, 215, 215, 215, 215, 898 359, 359, 359, 359, 528, 367, 88, 368, 367, 531, 899 900 368, 378, 378, 378, 378, 378, 378, 377, 505, 377, 901 88, 513, 378, 378, 378, 378, 378, 378, 506, 489, 902 500, 500, 500, 500, 500, 500, 237, 237, 237, 237, 903 237, 237, 535, 88, 505, 514, 238, 88, 240, 88, 904 241, 240, 246, 246, 246, 246, 106, 106, 508, 529, 905 533, 505, 530, 501, 509, 509, 88, 88, 240, 381, 906 240, 507, 88, 241, 675, 240, 382, 382, 382, 382, 907 382, 382, 390, 508, 88, 384, 88, 505, 538, 539, 908 509, 509, 238, 239, 240, 532, 241, 240, 385, 385, 909 385, 385, 385, 385, 88, 392, 543, 393, 88, 383, 910 911 548, 394, 908, 908, 240, 239, 240, 395, 510, 241, 912 510, 240, 88, 511, 511, 511, 511, 511, 511, 396, 913 88, 386, 88, 393, 88, 537, 392, 394, 393, 534, 914 88, 536, 394, 88, 88, 88, 88, 540, 515, 545, 915 88, 88, 88, 88, 550, 88, 512, 88, 544, 88, 916 396, 541, 542, 88, 393, 546, 553, 549, 394, 554, 917 551, 88, 547, 88, 552, 556, 555, 88, 88, 559, 918 88, 88, 88, 88, 557, 88, 558, 561, 88, 88, 919 88, 88, 560, 88, 88, 562, 88, 88, 565, 569, 920 88, 563, 88, 567, 564, 88, 573, 566, 570, 568, 921 922 88, 88, 88, 88, 88, 574, 571, 88, 572, 578, 923 575, 581, 576, 88, 582, 580, 88, 577, 88, 579, 924 88, 88, 88, 205, 88, 585, 586, 88, 583, 593, 925 592, 505, 589, 591, 615, 584, 587, 588, 215, 215, 926 215, 215, 88, 88, 590, 500, 500, 500, 500, 500, 927 500, 382, 382, 382, 382, 382, 382, 505, 636, 634, 928 615, 238, 88, 240, 88, 241, 240, 385, 385, 385, 929 385, 385, 385, 908, 883, 635, 505, 638, 501, 88, 930 88, 505, 88, 240, 502, 240, 506, 611, 241, 611, 931 240, 614, 612, 612, 612, 612, 612, 612, 88, 637, 932 933 503, 647, 505, 641, 639, 88, 88, 505, 511, 511, 934 511, 511, 511, 511, 510, 908, 510, 642, 640, 511, 935 511, 511, 511, 511, 511, 613, 616, 616, 616, 616, 936 616, 616, 88, 88, 88, 643, 88, 88, 88, 88, 937 88, 88, 617, 649, 618, 88, 619, 618, 648, 645, 938 651, 650, 88, 644, 653, 646, 88, 88, 88, 620, 939 88, 656, 657, 654, 618, 88, 618, 659, 658, 619, 940 88, 618, 88, 655, 88, 88, 88, 660, 88, 88, 941 661, 663, 88, 88, 664, 662, 88, 88, 669, 88, 942 666, 88, 88, 665, 667, 670, 671, 668, 88, 88, 943 944 88, 88, 88, 88, 673, 88, 677, 88, 676, 674, 945 680, 672, 681, 679, 88, 682, 88, 908, 908, 683, 946 684, 88, 678, 500, 500, 500, 500, 500, 500, 612, 947 612, 612, 612, 612, 612, 611, 685, 611, 721, 88, 948 612, 612, 612, 612, 612, 612, 616, 616, 616, 616, 949 616, 616, 720, 705, 705, 88, 610, 703, 703, 703, 950 703, 703, 703, 705, 88, 706, 908, 706, 88, 716, 951 706, 88, 725, 617, 88, 618, 705, 619, 618, 620, 952 719, 718, 717, 88, 88, 88, 705, 706, 88, 706, 953 704, 722, 723, 88, 706, 618, 724, 618, 88, 729, 954 955 619, 726, 618, 88, 88, 728, 727, 88, 88, 88, 956 735, 733, 88, 88, 88, 88, 88, 88, 88, 88, 957 88, 731, 88, 738, 88, 730, 734, 736, 741, 732, 958 88, 744, 88, 737, 739, 88, 88, 740, 88, 88, 959 742, 748, 743, 749, 745, 746, 88, 747, 750, 88, 960 753, 88, 88, 88, 88, 882, 751, 773, 752, 703, 961 703, 703, 703, 703, 703, 616, 616, 616, 616, 616, 962 616, 88, 767, 772, 88, 617, 88, 618, 769, 619, 963 618, 768, 88, 770, 88, 88, 88, 771, 774, 88, 964 776, 88, 704, 88, 779, 778, 88, 618, 707, 618, 965 966 88, 88, 619, 782, 618, 784, 777, 775, 88, 88, 967 783, 785, 88, 88, 88, 88, 88, 780, 88, 88, 968 787, 88, 786, 788, 88, 791, 88, 789, 88, 88, 969 88, 88, 88, 813, 797, 88, 790, 792, 794, 798, 970 88, 88, 793, 795, 814, 796, 703, 703, 703, 703, 971 703, 703, 811, 88, 88, 88, 88, 812, 816, 819, 972 821, 88, 88, 815, 822, 823, 88, 818, 820, 88, 973 88, 817, 825, 824, 88, 88, 88, 826, 88, 760, 974 88, 88, 88, 88, 88, 827, 847, 88, 88, 88, 975 849, 88, 850, 852, 88, 88, 88, 853, 828, 829, 976 977 846, 830, 845, 88, 88, 88, 848, 844, 855, 851, 978 88, 88, 857, 856, 88, 88, 88, 854, 88, 88, 979 858, 871, 859, 870, 88, 88, 88, 88, 88, 875, 980 860, 877, 88, 872, 88, 878, 869, 88, 88, 88, 981 88, 88, 88, 873, 876, 885, 879, 88, 881, 874, 982 880, 884, 88, 88, 892, 886, 88, 887, 888, 889, 983 88, 88, 88, 890, 891, 88, 88, 88, 894, 88, 984 896, 88, 897, 88, 88, 88, 895, 893, 88, 88, 985 88, 88, 88, 88, 901, 88, 88, 908, 908, 900, 986 868, 902, 908, 898, 899, 907, 867, 908, 905, 865, 987 988 908, 903, 904, 864, 906, 70, 70, 70, 70, 70, 989 70, 70, 70, 70, 70, 70, 70, 70, 76, 76, 987 990 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 988 7 9, 79, 79, 79, 79, 79, 79, 79, 79, 79,989 79, 79, 79, 87, 904, 861, 87, 904, 87, 87,990 87, 87, 87, 141, 860, 904, 859, 141, 141, 141,991 141, 141, 141, 202, 202, 202, 202, 202, 202, 202,992 20 2, 202, 202, 202, 202, 202, 207, 904, 858, 207,993 88, 207, 207, 207, 207, 207, 211, 88, 211, 211,994 88, 211, 211, 211, 211, 211, 211, 904, 211, 219,995 839, 904, 219, 219, 219, 219, 219, 219, 219, 219, 996 997 838, 219, 242, 242, 242, 242, 242, 242, 242, 242,998 24 2, 242, 242, 242, 242, 256, 256, 836, 256, 904,999 834, 904, 256, 272, 832, 904, 272, 830, 272, 272,1000 27 2, 272, 272, 276, 828, 276, 88, 88, 88, 276,1001 27 8, 88, 278, 88, 88, 88, 278, 353, 88, 353,1002 88, 88, 88, 353, 355, 88, 355, 904, 806, 804,1003 355, 359, 904, 359, 904, 801, 799, 359, 361, 797,1004 361, 88, 88, 88, 361, 363, 88, 363, 88, 88,1005 88, 363, 370, 762, 370, 759, 758, 756, 370, 372,1006 208, 372, 752, 751, 683, 372, 387, 88, 387, 389, 1007 1008 3 89, 88, 389, 389, 389, 88, 389, 256, 256, 88,1009 256, 272, 88, 88, 272, 88, 272, 272, 272, 272,1010 27 2, 399, 88, 399, 88, 88, 88, 399, 401, 88,1011 401, 88, 88, 88, 401, 403, 88, 403, 710, 709,1012 707, 403, 276, 705, 276, 405, 703, 405, 610, 698,1013 69 7, 405, 278, 695, 278, 87, 693, 691, 87, 689,1014 8 7, 87, 87, 87, 87, 202, 202, 202, 202, 202,1015 20 2, 202, 202, 202, 202, 202, 202, 202, 477, 477,1016 4 77, 477, 477, 477, 477, 477, 477, 477, 477, 477,1017 477, 478, 687, 478, 685, 683, 88, 478, 480, 88, 1018 1019 480, 88, 88, 88, 480, 482, 88, 482, 88, 88,1020 88, 482, 353, 88, 353, 484, 88, 484, 88, 629,1021 627, 484, 355, 625, 355, 487, 623, 487, 621, 619,1022 512, 487, 359, 617, 359, 489, 617, 489, 606, 605,1023 603, 489, 361, 492, 361, 491, 492, 491, 601, 599,1024 597, 491, 363, 595, 363, 493, 593, 493, 591, 88,1025 88, 493, 370, 88, 370, 495, 88, 495, 88, 88,1026 88, 495, 372, 88, 372, 501, 524, 501, 522, 501,1027 5 20, 501, 387, 518, 387, 516, 387, 514, 387, 389,1028 389, 500, 389, 389, 389, 499, 389, 513, 496, 513, 1029 1030 494, 366, 366, 513, 515, 492, 515, 490, 488, 485,1031 515, 517, 483, 517, 481, 479, 88, 517, 399, 88,1032 399, 519, 88, 519, 407, 406, 404, 519, 401, 402,1033 401, 521, 400, 521, 273, 268, 267, 521, 403, 396,1034 403, 523, 396, 523, 255, 386, 386, 523, 405, 243,1035 405, 87, 379, 373, 87, 371, 87, 87, 87, 87,1036 87, 477, 477, 477, 477, 477, 477, 477, 477, 477,1037 4 77, 477, 477, 477, 590, 369, 590, 365, 364, 362,1038 590, 478, 360, 478, 592, 356, 592, 354, 208, 204,1039 592, 480, 88, 480, 594, 280, 594, 279, 277, 273, 1040 1041 594, 482, 268, 482, 596, 271, 596, 268, 266, 265,1042 596, 484, 264, 484, 598, 243, 598, 235, 86, 86,1043 598, 487, 88, 487, 600, 208, 600, 206, 86, 123,1044 600, 489, 118, 489, 491, 88, 491, 904, 71, 71,1045 491, 602, 904, 602, 904, 904, 904, 602, 493, 904,1046 493, 604, 904, 604, 904, 904, 904, 604, 495, 904,1047 495, 501, 904, 501, 904, 501, 904, 501, 389, 904,1048 389, 904, 904, 904, 389, 618, 904, 618, 904, 904,1049 90 4, 618, 513, 904, 513, 620, 904, 620, 904, 904,1050 904, 620, 515, 904, 515, 622, 904, 622, 904, 904, 1051 1052 90 4, 622, 517, 904, 517, 624, 904, 624, 904, 904,1053 90 4, 624, 519, 904, 519, 626, 904, 626, 904, 904,1054 90 4, 626, 521, 904, 521, 628, 904, 628, 904, 904,1055 90 4, 628, 523, 904, 523, 87, 904, 904, 87, 904,1056 87, 87, 87, 87, 87, 682, 682, 682, 682, 682,1057 68 2, 682, 682, 682, 682, 682, 682, 682, 684, 904,1058 684, 904, 904, 904, 684, 590, 904, 590, 686, 904,1059 686, 904, 904, 904, 686, 592, 904, 592, 688, 904,1060 688, 904, 904, 904, 688, 594, 904, 594, 690, 904,1061 690, 904, 904, 904, 690, 596, 904, 596, 692, 904, 1062 1063 692, 904, 904, 904, 692, 598, 904, 598, 694, 904,1064 694, 904, 904, 904, 694, 600, 904, 600, 696, 904,1065 696, 904, 904, 904, 696, 602, 904, 602, 87, 904,1066 87, 904, 904, 904, 87, 604, 904, 604, 501, 904,1067 501, 904, 904, 904, 501, 704, 904, 704, 904, 904,1068 90 4, 704, 618, 904, 618, 706, 904, 706, 904, 904,1069 90 4, 706, 620, 904, 620, 708, 904, 708, 904, 904,1070 90 4, 708, 622, 904, 622, 141, 904, 141, 904, 904,1071 90 4, 141, 624, 904, 624, 711, 904, 711, 626, 904,1072 626, 87, 904, 904, 87, 904, 87, 87, 87, 87, 1073 1074 87, 628, 904, 628, 682, 682, 682, 682, 682, 682,1075 68 2, 682, 682, 682, 682, 682, 682, 750, 904, 750,1076 904, 904, 904, 750, 684, 904, 684, 207, 904, 207,1077 904, 904, 904, 207, 686, 904, 686, 753, 904, 753,1078 688, 904, 688, 207, 904, 904, 207, 904, 207, 207,1079 20 7, 207, 207, 690, 904, 690, 754, 904, 754, 692,1080 904, 692, 694, 904, 694, 755, 904, 755, 696, 904,1081 696, 87, 904, 87, 757, 904, 757, 904, 904, 904,1082 757, 704, 904, 704, 272, 904, 272, 904, 904, 904,1083 272, 706, 904, 706, 760, 904, 760, 708, 904, 708, 1084 1085 141, 904, 141, 761, 904, 761, 904, 904, 904, 761,1086 87, 904, 904, 87, 904, 87, 87, 87, 87, 87,1087 795, 904, 795, 750, 904, 750, 207, 904, 207, 796,1088 904, 796, 904, 904, 904, 796, 798, 904, 798, 904,1089 90 4, 904, 798, 800, 904, 800, 904, 904, 904, 800,1090 80 2, 904, 802, 803, 904, 803, 904, 904, 904, 803,1091 80 5, 904, 805, 904, 904, 904, 805, 827, 904, 827,1092 904, 904, 904, 827, 829, 904, 829, 904, 904, 904,1093 829, 831, 904, 831, 904, 904, 904, 831, 833, 904,1094 833, 904, 904, 904, 833, 835, 904, 835, 904, 904, 1095 1096 90 4, 835, 837, 904, 837, 904, 904, 904, 837, 628,1097 904, 628, 904, 904, 904, 628, 857, 904, 857, 904,1098 90 4, 904, 857, 690, 904, 690, 904, 904, 904, 690,1099 694, 904, 694, 904, 904, 904, 694, 87, 904, 87,1100 904, 904, 904, 87, 862, 904, 862, 904, 904, 904,1101 862, 141, 904, 141, 904, 904, 904, 141, 207, 904,1102 207, 904, 904, 904, 207, 11, 904, 904, 904, 904,1103 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1104 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1105 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1106 1107 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1108 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1109 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1110 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1111 90 4, 904, 904, 904, 904, 904, 904, 904, 904, 904,1112 90 4991 76, 79, 79, 79, 79, 79, 79, 79, 79, 79, 992 79, 79, 79, 79, 87, 908, 863, 87, 908, 87, 993 87, 87, 87, 87, 141, 862, 88, 88, 141, 141, 994 141, 141, 141, 141, 203, 203, 203, 203, 203, 203, 995 203, 203, 203, 203, 203, 203, 203, 208, 88, 908, 996 208, 843, 208, 208, 208, 208, 208, 212, 908, 212, 997 212, 842, 212, 212, 212, 212, 212, 212, 840, 212, 998 999 220, 908, 838, 220, 220, 220, 220, 220, 220, 220, 1000 220, 908, 220, 243, 243, 243, 243, 243, 243, 243, 1001 243, 243, 243, 243, 243, 243, 257, 257, 836, 257, 1002 908, 834, 832, 257, 273, 88, 88, 273, 88, 273, 1003 273, 273, 273, 273, 277, 88, 277, 88, 88, 88, 1004 277, 279, 88, 279, 88, 88, 88, 279, 355, 88, 1005 355, 908, 810, 808, 355, 357, 908, 357, 908, 805, 1006 803, 357, 361, 801, 361, 88, 88, 88, 361, 363, 1007 88, 363, 88, 88, 88, 363, 365, 766, 365, 763, 1008 762, 760, 365, 372, 209, 372, 756, 755, 687, 372, 1009 1010 374, 88, 374, 88, 88, 88, 374, 389, 88, 389, 1011 391, 391, 88, 391, 391, 391, 88, 391, 257, 257, 1012 88, 257, 273, 88, 88, 273, 88, 273, 273, 273, 1013 273, 273, 401, 88, 401, 88, 88, 88, 401, 403, 1014 88, 403, 714, 713, 711, 403, 405, 709, 405, 707, 1015 614, 702, 405, 277, 701, 277, 407, 699, 407, 697, 1016 695, 693, 407, 279, 691, 279, 87, 689, 687, 87, 1017 88, 87, 87, 87, 87, 87, 203, 203, 203, 203, 1018 203, 203, 203, 203, 203, 203, 203, 203, 203, 480, 1019 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 1020 1021 480, 480, 481, 88, 481, 88, 88, 88, 481, 483, 1022 88, 483, 88, 88, 88, 483, 485, 88, 485, 88, 1023 88, 88, 485, 355, 633, 355, 487, 631, 487, 629, 1024 627, 625, 487, 357, 623, 357, 490, 515, 490, 621, 1025 621, 610, 490, 361, 609, 361, 492, 607, 492, 495, 1026 495, 605, 492, 363, 603, 363, 494, 601, 494, 599, 1027 597, 595, 494, 365, 88, 365, 496, 88, 496, 88, 1028 88, 88, 496, 372, 88, 372, 498, 88, 498, 88, 1029 527, 525, 498, 374, 523, 374, 504, 521, 504, 519, 1030 504, 517, 504, 389, 503, 389, 502, 389, 499, 389, 1031 1032 391, 391, 497, 391, 391, 391, 368, 391, 516, 368, 1033 516, 495, 493, 491, 516, 518, 488, 518, 486, 484, 1034 482, 518, 520, 88, 520, 88, 88, 409, 520, 401, 1035 408, 401, 522, 406, 522, 404, 402, 274, 522, 403, 1036 269, 403, 524, 268, 524, 398, 398, 256, 524, 405, 1037 388, 405, 526, 388, 526, 244, 381, 375, 526, 407, 1038 373, 407, 87, 371, 367, 87, 366, 87, 87, 87, 1039 87, 87, 480, 480, 480, 480, 480, 480, 480, 480, 1040 480, 480, 480, 480, 480, 594, 364, 594, 362, 358, 1041 356, 594, 481, 209, 481, 596, 205, 596, 88, 281, 1042 1043 280, 596, 483, 278, 483, 598, 274, 598, 269, 272, 1044 269, 598, 485, 267, 485, 600, 266, 600, 265, 244, 1045 236, 600, 487, 86, 487, 602, 86, 602, 88, 209, 1046 207, 602, 490, 86, 490, 604, 123, 604, 118, 88, 1047 908, 604, 492, 71, 492, 494, 71, 494, 908, 908, 1048 908, 494, 606, 908, 606, 908, 908, 908, 606, 496, 1049 908, 496, 608, 908, 608, 908, 908, 908, 608, 498, 1050 908, 498, 504, 908, 504, 908, 504, 908, 504, 391, 1051 908, 391, 908, 908, 908, 391, 622, 908, 622, 908, 1052 908, 908, 622, 516, 908, 516, 624, 908, 624, 908, 1053 1054 908, 908, 624, 518, 908, 518, 626, 908, 626, 908, 1055 908, 908, 626, 520, 908, 520, 628, 908, 628, 908, 1056 908, 908, 628, 522, 908, 522, 630, 908, 630, 908, 1057 908, 908, 630, 524, 908, 524, 632, 908, 632, 908, 1058 908, 908, 632, 526, 908, 526, 87, 908, 908, 87, 1059 908, 87, 87, 87, 87, 87, 686, 686, 686, 686, 1060 686, 686, 686, 686, 686, 686, 686, 686, 686, 688, 1061 908, 688, 908, 908, 908, 688, 594, 908, 594, 690, 1062 908, 690, 908, 908, 908, 690, 596, 908, 596, 692, 1063 908, 692, 908, 908, 908, 692, 598, 908, 598, 694, 1064 1065 908, 694, 908, 908, 908, 694, 600, 908, 600, 696, 1066 908, 696, 908, 908, 908, 696, 602, 908, 602, 698, 1067 908, 698, 908, 908, 908, 698, 604, 908, 604, 700, 1068 908, 700, 908, 908, 908, 700, 606, 908, 606, 87, 1069 908, 87, 908, 908, 908, 87, 608, 908, 608, 504, 1070 908, 504, 908, 908, 908, 504, 708, 908, 708, 908, 1071 908, 908, 708, 622, 908, 622, 710, 908, 710, 908, 1072 908, 908, 710, 624, 908, 624, 712, 908, 712, 908, 1073 908, 908, 712, 626, 908, 626, 141, 908, 141, 908, 1074 908, 908, 141, 628, 908, 628, 715, 908, 715, 630, 1075 1076 908, 630, 87, 908, 908, 87, 908, 87, 87, 87, 1077 87, 87, 632, 908, 632, 686, 686, 686, 686, 686, 1078 686, 686, 686, 686, 686, 686, 686, 686, 754, 908, 1079 754, 908, 908, 908, 754, 688, 908, 688, 208, 908, 1080 208, 908, 908, 908, 208, 690, 908, 690, 757, 908, 1081 757, 692, 908, 692, 208, 908, 908, 208, 908, 208, 1082 208, 208, 208, 208, 694, 908, 694, 758, 908, 758, 1083 696, 908, 696, 698, 908, 698, 759, 908, 759, 700, 1084 908, 700, 87, 908, 87, 761, 908, 761, 908, 908, 1085 908, 761, 708, 908, 708, 273, 908, 273, 908, 908, 1086 1087 908, 273, 710, 908, 710, 764, 908, 764, 712, 908, 1088 712, 141, 908, 141, 765, 908, 765, 908, 908, 908, 1089 765, 87, 908, 908, 87, 908, 87, 87, 87, 87, 1090 87, 799, 908, 799, 754, 908, 754, 208, 908, 208, 1091 800, 908, 800, 908, 908, 908, 800, 802, 908, 802, 1092 908, 908, 908, 802, 804, 908, 804, 908, 908, 908, 1093 804, 806, 908, 806, 807, 908, 807, 908, 908, 908, 1094 807, 809, 908, 809, 908, 908, 908, 809, 831, 908, 1095 831, 908, 908, 908, 831, 833, 908, 833, 908, 908, 1096 908, 833, 835, 908, 835, 908, 908, 908, 835, 837, 1097 1098 908, 837, 908, 908, 908, 837, 839, 908, 839, 908, 1099 908, 908, 839, 841, 908, 841, 908, 908, 908, 841, 1100 632, 908, 632, 908, 908, 908, 632, 861, 908, 861, 1101 908, 908, 908, 861, 694, 908, 694, 908, 908, 908, 1102 694, 698, 908, 698, 908, 908, 908, 698, 87, 908, 1103 87, 908, 908, 908, 87, 866, 908, 866, 908, 908, 1104 908, 866, 141, 908, 141, 908, 908, 908, 141, 208, 1105 908, 208, 908, 908, 908, 208, 11, 908, 908, 908, 1106 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1107 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1108 1109 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1110 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1111 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1112 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1113 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1114 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1115 908, 908 1113 1116 } ; 1114 1117 1115 static yyconst flex_int16_t yy_chk[29 52] =1118 static yyconst flex_int16_t yy_chk[2963] = 1116 1119 { 0, 1117 1120 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1134 1137 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1135 1138 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 1136 8, 9, 10, 37, 37, 20, 39, 9, 10, 90 3,1139 8, 9, 10, 37, 37, 20, 39, 9, 10, 907, 1137 1140 7, 8, 13, 13, 13, 13, 13, 13, 15, 15, 1138 1141 … … 1142 1145 8, 9, 10, 40, 42, 29, 30, 47, 30, 30, 1143 1146 30, 30, 30, 30, 35, 57, 35, 35, 44, 127, 1144 44, 127, 110, 116, 57, 30, 65, 54 4, 47, 30,1147 44, 127, 110, 116, 57, 30, 65, 547, 47, 30, 1145 1148 47, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1146 1149 45, 30, 40, 45, 45, 40, 49, 30, 45, 63, 1147 62, 45, 49, 30, 74, 90 2, 544, 53, 63, 51,1150 62, 45, 49, 30, 74, 906, 547, 53, 63, 51, 1148 1151 61, 30, 62, 55, 30, 31, 109, 31, 31, 31, 1149 1152 1150 1153 31, 31, 31, 50, 51, 53, 51, 65, 61, 54, 1151 1154 74, 55, 50, 88, 31, 51, 50, 55, 31, 54, 1152 109, 50, 52, 115, 31, 50, 54, 52, 182, 146, 1153 31, 56, 108, 182, 146, 52, 31, 52, 108, 88, 1154 52, 60, 31, 128, 52, 128, 60, 115, 56, 152, 1155 31, 38, 894, 56, 112, 38, 38, 58, 38, 60, 1156 38, 38, 114, 38, 108, 38, 59, 152, 114, 58, 1157 58, 117, 112, 146, 38, 38, 38, 189, 59, 58, 1158 112, 130, 58, 130, 143, 60, 59, 132, 60, 117, 1159 189, 69, 69, 59, 114, 38, 69, 117, 38, 132, 1160 1161 111, 132, 60, 68, 68, 68, 68, 68, 68, 893, 1162 143, 68, 69, 69, 69, 69, 69, 69, 81, 81, 1163 81, 81, 81, 81, 154, 38, 38, 78, 78, 133, 1164 111, 133, 78, 154, 78, 111, 135, 162, 135, 78, 1165 83, 83, 83, 83, 83, 83, 162, 890, 78, 78, 1166 78, 78, 84, 84, 84, 84, 84, 84, 111, 78, 1167 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 1168 134, 134, 138, 134, 138, 78, 131, 155, 78, 136, 1169 136, 136, 173, 78, 78, 153, 157, 78, 78, 140, 1170 131, 140, 131, 155, 105, 78, 151, 173, 78, 105, 1171 1172 78, 78, 78, 153, 78, 86, 156, 160, 157, 86, 1173 86, 151, 183, 158, 86, 86, 168, 86, 151, 86, 1174 161, 183, 105, 160, 156, 158, 163, 164, 86, 86, 1175 86, 106, 164, 106, 106, 106, 106, 106, 106, 168, 1176 169, 167, 161, 170, 166, 164, 165, 163, 163, 86, 1177 106, 107, 86, 107, 166, 172, 107, 107, 107, 107, 1178 107, 107, 167, 165, 170, 171, 106, 169, 177, 175, 1179 171, 176, 106, 174, 178, 181, 184, 172, 180, 889, 1180 86, 100, 100, 100, 100, 100, 100, 175, 171, 107, 1181 174, 176, 181, 180, 185, 177, 178, 100, 100, 100, 1182 1183 180, 100, 100, 184, 192, 185, 187, 186, 193, 221, 1184 190, 221, 887, 188, 100, 185, 185, 187, 188, 100, 1185 100, 100, 159, 192, 100, 186, 100, 159, 159, 159, 1186 190, 159, 159, 188, 187, 159, 191, 159, 194, 208, 1187 196, 191, 159, 159, 159, 195, 159, 197, 251, 212, 1188 212, 194, 193, 196, 212, 193, 201, 201, 195, 194, 1189 195, 201, 222, 191, 222, 208, 259, 197, 200, 200, 1190 200, 200, 200, 200, 251, 287, 200, 201, 201, 201, 1191 201, 201, 201, 203, 203, 223, 246, 223, 203, 205, 1192 205, 226, 259, 226, 205, 287, 205, 215, 215, 215, 1193 1194 215, 228, 224, 228, 203, 203, 203, 203, 203, 203, 1195 205, 205, 205, 205, 205, 205, 224, 225, 224, 227, 1196 227, 246, 227, 229, 229, 229, 231, 239, 231, 225, 1197 215, 225, 232, 291, 232, 237, 237, 238, 269, 238, 1198 269, 284, 238, 238, 238, 238, 238, 238, 273, 240, 1199 239, 240, 432, 270, 240, 270, 291, 284, 237, 244, 1200 244, 244, 244, 244, 244, 245, 432, 245, 245, 245, 1201 245, 240, 286, 240, 273, 238, 282, 286, 240, 247, 1202 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 1203 248, 283, 244, 285, 282, 281, 247, 250, 294, 250, 1204 1205 245, 293, 250, 250, 250, 250, 250, 250, 281, 283, 1206 285, 288, 247, 294, 289, 331, 288, 297, 247, 249, 1207 249, 249, 249, 249, 249, 256, 297, 293, 258, 258, 1208 258, 258, 258, 258, 289, 249, 298, 249, 331, 249, 1209 249, 263, 263, 263, 263, 263, 263, 292, 256, 298, 1210 256, 295, 249, 296, 256, 299, 290, 249, 296, 249, 1211 256, 258, 249, 300, 249, 292, 302, 295, 295, 306, 1212 303, 290, 256, 307, 263, 303, 256, 290, 290, 304, 1213 256, 300, 299, 305, 302, 308, 312, 309, 304, 306, 1214 305, 307, 309, 310, 311, 313, 314, 315, 310, 316, 1215 1216 311, 317, 314, 321, 313, 312, 308, 308, 316, 318, 1217 319, 322, 320, 315, 318, 319, 317, 320, 323, 325, 1218 326, 327, 321, 328, 327, 329, 330, 332, 333, 322, 1219 325, 323, 334, 335, 320, 326, 336, 339, 329, 337, 1220 338, 334, 328, 341, 342, 333, 343, 332, 330, 344, 1221 339, 346, 341, 347, 348, 335, 346, 345, 338, 336, 1222 387, 337, 344, 350, 343, 345, 349, 349, 347, 350, 1223 387, 349, 348, 349, 357, 357, 357, 357, 358, 358, 1224 358, 358, 367, 368, 367, 368, 387, 408, 342, 375, 1225 375, 375, 375, 375, 375, 377, 388, 377, 408, 392, 1226 1227 377, 377, 377, 377, 377, 377, 388, 357, 376, 376, 1228 376, 376, 376, 376, 379, 379, 379, 379, 379, 379, 1229 411, 409, 388, 392, 376, 410, 376, 413, 376, 376, 1230 382, 382, 382, 382, 382, 382, 390, 409, 413, 411, 1231 410, 376, 390, 394, 415, 419, 376, 379, 376, 417, 1232 886, 376, 420, 376, 380, 380, 380, 380, 380, 380, 1233 389, 394, 417, 382, 412, 420, 415, 419, 390, 394, 1234 380, 380, 380, 412, 380, 380, 383, 383, 383, 383, 1235 383, 383, 426, 389, 418, 389, 879, 380, 426, 389, 1236 878, 393, 380, 380, 380, 389, 391, 380, 391, 380, 1237 1238 418, 391, 391, 391, 391, 391, 391, 389, 414, 383, 1239 416, 389, 421, 422, 393, 389, 393, 414, 423, 416, 1240 393, 428, 424, 427, 429, 425, 393, 424, 421, 421, 1241 430, 436, 428, 437, 391, 422, 423, 434, 393, 439, 1242 425, 438, 393, 429, 427, 430, 393, 425, 441, 434, 1243 440, 442, 436, 444, 438, 437, 440, 446, 447, 448, 1244 442, 449, 439, 441, 450, 451, 452, 454, 444, 456, 1245 459, 457, 458, 462, 448, 452, 460, 446, 461, 450, 1246 447, 458, 464, 449, 454, 451, 465, 466, 463, 468, 1247 469, 459, 456, 457, 466, 462, 460, 463, 461, 465, 1248 1249 464, 467, 470, 474, 471, 472, 475, 477, 467, 877, 1250 470, 526, 469, 477, 468, 475, 472, 504, 505, 476, 1251 470, 471, 476, 876, 526, 474, 486, 486, 486, 486, 1252 497, 497, 497, 497, 497, 497, 499, 499, 499, 499, 1253 499, 499, 525, 504, 505, 528, 497, 529, 497, 530, 1254 497, 497, 500, 500, 500, 500, 500, 500, 875, 525, 1255 528, 501, 530, 497, 531, 538, 503, 529, 497, 499, 1256 497, 501, 502, 497, 502, 497, 503, 502, 502, 502, 1257 502, 502, 502, 533, 538, 500, 531, 501, 533, 532, 1258 871, 867, 503, 507, 507, 507, 507, 507, 507, 509, 1259 1260 535, 509, 532, 535, 509, 509, 509, 509, 509, 509, 1261 502, 508, 508, 508, 508, 508, 508, 534, 536, 537, 1262 539, 540, 542, 543, 864, 546, 547, 508, 534, 508, 1263 540, 508, 508, 542, 537, 541, 543, 545, 536, 548, 1264 541, 539, 554, 547, 508, 549, 545, 546, 548, 508, 1265 549, 508, 551, 552, 508, 555, 508, 556, 551, 554, 1266 557, 560, 552, 561, 559, 562, 564, 571, 567, 557, 1267 555, 565, 556, 559, 568, 561, 565, 567, 560, 572, 1268 562, 564, 573, 568, 576, 575, 578, 582, 577, 571, 1269 579, 580, 572, 575, 576, 577, 582, 580, 585, 573, 1270 1271 583, 586, 579, 588, 630, 863, 634, 728, 578, 630, 1272 583, 633, 613, 613, 586, 585, 606, 606, 606, 606, 1273 606, 606, 630, 634, 633, 588, 607, 607, 607, 607, 1274 607, 607, 609, 614, 609, 613, 728, 609, 609, 609, 1275 609, 609, 609, 612, 612, 612, 612, 612, 612, 606, 1276 608, 608, 608, 608, 608, 608, 614, 615, 631, 615, 1277 632, 635, 615, 638, 637, 631, 608, 636, 608, 632, 1278 608, 608, 637, 648, 636, 639, 612, 641, 639, 615, 1279 638, 615, 642, 608, 635, 640, 615, 643, 608, 644, 1280 608, 645, 649, 608, 647, 608, 650, 642, 640, 641, 1281 1282 646, 648, 652, 646, 653, 651, 644, 649, 654, 643, 1283 656, 647, 657, 645, 651, 658, 650, 654, 662, 663, 1284 652, 668, 665, 862, 658, 669, 653, 676, 679, 680, 1285 668, 677, 669, 656, 657, 713, 676, 679, 662, 665, 1286 712, 677, 718, 715, 680, 713, 663, 699, 699, 699, 1287 699, 699, 699, 703, 703, 703, 703, 703, 703, 716, 1288 721, 712, 718, 699, 734, 699, 716, 699, 699, 715, 1289 717, 719, 734, 720, 719, 717, 720, 723, 721, 725, 1290 699, 724, 727, 723, 731, 699, 703, 699, 725, 745, 1291 699, 730, 699, 726, 724, 729, 726, 735, 729, 732, 1292 1293 730, 733, 732, 727, 736, 737, 738, 735, 744, 741, 1294 731, 745, 746, 748, 733, 738, 749, 736, 769, 861, 1295 767, 748, 772, 769, 768, 749, 737, 741, 744, 770, 1296 773, 774, 741, 746, 756, 756, 756, 756, 756, 756, 1297 767, 768, 771, 775, 770, 772, 775, 773, 776, 777, 1298 779, 781, 771, 779, 781, 782, 783, 774, 785, 783, 1299 784, 776, 782, 784, 786, 788, 792, 756, 807, 809, 1300 817, 812, 811, 785, 810, 811, 813, 777, 814, 813, 1301 816, 814, 818, 820, 860, 818, 824, 786, 788, 792, 1302 809, 821, 810, 812, 821, 807, 817, 822, 816, 823, 1303 1304 822, 825, 824, 826, 841, 820, 842, 843, 823, 844, 1305 843, 845, 825, 842, 846, 847, 855, 846, 844, 826, 1306 850, 853, 854, 850, 853, 841, 859, 856, 855, 845, 1307 865, 854, 847, 866, 868, 845, 856, 868, 866, 865, 1308 869, 870, 872, 880, 873, 872, 870, 873, 874, 881, 1309 869, 874, 882, 888, 884, 882, 883, 884, 885, 891, 1310 895, 885, 892, 880, 881, 896, 883, 897, 899, 895, 1311 898, 900, 901, 858, 857, 888, 852, 892, 896, 851, 1312 891, 849, 901, 848, 840, 839, 899, 838, 837, 897, 1313 836, 898, 835, 900, 905, 905, 905, 905, 905, 905, 1314 1315 905, 905, 905, 905, 905, 905, 905, 906, 906, 906, 1316 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 1317 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 1318 907, 907, 907, 908, 834, 833, 908, 832, 908, 908, 1319 908, 908, 908, 909, 831, 830, 829, 909, 909, 909, 1320 909, 909, 909, 910, 910, 910, 910, 910, 910, 910, 1321 910, 910, 910, 910, 910, 910, 911, 828, 827, 911, 1322 819, 911, 911, 911, 911, 911, 912, 815, 912, 912, 1323 808, 912, 912, 912, 912, 912, 912, 806, 912, 913, 1324 805, 804, 913, 913, 913, 913, 913, 913, 913, 913, 1325 1326 803, 913, 914, 914, 914, 914, 914, 914, 914, 914, 1327 914, 914, 914, 914, 914, 915, 915, 802, 915, 801, 1328 800, 799, 915, 916, 798, 797, 916, 796, 916, 916, 1329 916, 916, 916, 917, 795, 917, 794, 793, 791, 917, 1330 918, 790, 918, 789, 787, 780, 918, 919, 778, 919, 1331 766, 765, 764, 919, 920, 763, 920, 762, 761, 760, 1332 920, 921, 759, 921, 758, 755, 754, 921, 922, 753, 1333 922, 747, 743, 742, 922, 923, 740, 923, 739, 722, 1334 714, 923, 924, 711, 924, 706, 704, 700, 924, 925, 1335 690, 925, 686, 684, 682, 925, 926, 681, 926, 927, 1336 1337 927, 678, 927, 927, 927, 675, 927, 928, 928, 674, 1338 928, 929, 673, 672, 929, 671, 929, 929, 929, 929, 1339 929, 930, 670, 930, 667, 666, 664, 930, 931, 661, 1340 931, 660, 659, 655, 931, 932, 628, 932, 624, 622, 1341 620, 932, 933, 618, 933, 934, 616, 934, 610, 604, 1342 602, 934, 935, 600, 935, 936, 598, 596, 936, 594, 1343 936, 936, 936, 936, 936, 937, 937, 937, 937, 937, 1344 937, 937, 937, 937, 937, 937, 937, 937, 938, 938, 1345 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 1346 938, 939, 592, 939, 590, 589, 587, 939, 940, 584, 1347 1348 940, 581, 574, 570, 940, 941, 569, 941, 566, 563, 1349 558, 941, 942, 553, 942, 943, 550, 943, 527, 523, 1350 521, 943, 944, 519, 944, 945, 517, 945, 515, 513, 1351 512, 945, 946, 511, 946, 947, 510, 947, 498, 495, 1352 493, 947, 948, 492, 948, 949, 491, 949, 489, 487, 1353 484, 949, 950, 482, 950, 951, 480, 951, 478, 473, 1354 455, 951, 952, 453, 952, 953, 445, 953, 443, 435, 1355 433, 953, 954, 431, 954, 955, 405, 955, 403, 955, 1356 401, 955, 956, 399, 956, 398, 956, 397, 956, 957, 1357 957, 384, 957, 957, 957, 381, 957, 958, 372, 958, 1358 1359 370, 369, 365, 958, 959, 363, 959, 361, 359, 355, 1360 959, 960, 353, 960, 352, 351, 340, 960, 961, 324, 1361 961, 962, 301, 962, 280, 278, 276, 962, 963, 275, 1362 963, 964, 274, 964, 272, 271, 266, 964, 965, 262, 1363 965, 966, 261, 966, 257, 254, 253, 966, 967, 242, 1364 967, 968, 241, 234, 968, 233, 968, 968, 968, 968, 1365 968, 969, 969, 969, 969, 969, 969, 969, 969, 969, 1366 969, 969, 969, 969, 970, 230, 970, 220, 218, 217, 1367 970, 971, 216, 971, 972, 210, 972, 209, 207, 202, 1368 972, 973, 179, 973, 974, 150, 974, 148, 147, 141, 1369 1370 974, 975, 139, 975, 976, 137, 976, 129, 126, 125, 1371 976, 977, 121, 977, 978, 102, 978, 99, 96, 94, 1372 978, 979, 87, 979, 980, 73, 980, 71, 67, 36, 1373 980, 981, 33, 981, 982, 18, 982, 11, 4, 3, 1374 982, 983, 0, 983, 0, 0, 0, 983, 984, 0, 1375 984, 985, 0, 985, 0, 0, 0, 985, 986, 0, 1376 986, 987, 0, 987, 0, 987, 0, 987, 988, 0, 1377 988, 0, 0, 0, 988, 989, 0, 989, 0, 0, 1378 0, 989, 990, 0, 990, 991, 0, 991, 0, 0, 1379 0, 991, 992, 0, 992, 993, 0, 993, 0, 0, 1380 1381 0, 993, 994, 0, 994, 995, 0, 995, 0, 0, 1382 0, 995, 996, 0, 996, 997, 0, 997, 0, 0, 1383 0, 997, 998, 0, 998, 999, 0, 999, 0, 0, 1384 0, 999, 1000, 0, 1000, 1001, 0, 0, 1001, 0, 1385 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1386 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 0, 1387 1003, 0, 0, 0, 1003, 1004, 0, 1004, 1005, 0, 1388 1005, 0, 0, 0, 1005, 1006, 0, 1006, 1007, 0, 1389 1007, 0, 0, 0, 1007, 1008, 0, 1008, 1009, 0, 1390 1009, 0, 0, 0, 1009, 1010, 0, 1010, 1011, 0, 1391 1392 1011, 0, 0, 0, 1011, 1012, 0, 1012, 1013, 0, 1393 1013, 0, 0, 0, 1013, 1014, 0, 1014, 1015, 0, 1394 1015, 0, 0, 0, 1015, 1016, 0, 1016, 1017, 0, 1395 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 0, 1396 1019, 0, 0, 0, 1019, 1020, 0, 1020, 0, 0, 1397 0, 1020, 1021, 0, 1021, 1022, 0, 1022, 0, 0, 1398 0, 1022, 1023, 0, 1023, 1024, 0, 1024, 0, 0, 1399 0, 1024, 1025, 0, 1025, 1026, 0, 1026, 0, 0, 1400 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 0, 1401 1029, 1030, 0, 0, 1030, 0, 1030, 1030, 1030, 1030, 1402 1403 1030, 1031, 0, 1031, 1032, 1032, 1032, 1032, 1032, 1032, 1404 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033, 0, 1033, 1405 0, 0, 0, 1033, 1034, 0, 1034, 1035, 0, 1035, 1406 0, 0, 0, 1035, 1036, 0, 1036, 1037, 0, 1037, 1407 1038, 0, 1038, 1039, 0, 0, 1039, 0, 1039, 1039, 1408 1039, 1039, 1039, 1040, 0, 1040, 1041, 0, 1041, 1042, 1409 0, 1042, 1043, 0, 1043, 1044, 0, 1044, 1045, 0, 1410 1045, 1046, 0, 1046, 1047, 0, 1047, 0, 0, 0, 1411 1047, 1048, 0, 1048, 1049, 0, 1049, 0, 0, 0, 1412 1049, 1050, 0, 1050, 1051, 0, 1051, 1052, 0, 1052, 1413 1414 1053, 0, 1053, 1054, 0, 1054, 0, 0, 0, 1054, 1415 1055, 0, 0, 1055, 0, 1055, 1055, 1055, 1055, 1055, 1416 1056, 0, 1056, 1057, 0, 1057, 1058, 0, 1058, 1059, 1417 0, 1059, 0, 0, 0, 1059, 1060, 0, 1060, 0, 1418 0, 0, 1060, 1061, 0, 1061, 0, 0, 0, 1061, 1419 1062, 0, 1062, 1063, 0, 1063, 0, 0, 0, 1063, 1420 1064, 0, 1064, 0, 0, 0, 1064, 1065, 0, 1065, 1421 0, 0, 0, 1065, 1066, 0, 1066, 0, 0, 0, 1422 1066, 1067, 0, 1067, 0, 0, 0, 1067, 1068, 0, 1423 1068, 0, 0, 0, 1068, 1069, 0, 1069, 0, 0, 1424 1425 0, 1069, 1070, 0, 1070, 0, 0, 0, 1070, 1071, 1426 0, 1071, 0, 0, 0, 1071, 1072, 0, 1072, 0, 1427 0, 0, 1072, 1073, 0, 1073, 0, 0, 0, 1073, 1428 1074, 0, 1074, 0, 0, 0, 1074, 1075, 0, 1075, 1429 0, 0, 0, 1075, 1076, 0, 1076, 0, 0, 0, 1430 1076, 1077, 0, 1077, 0, 0, 0, 1077, 1078, 0, 1431 1078, 0, 0, 0, 1078, 904, 904, 904, 904, 904, 1432 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1433 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1434 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1435 1436 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1437 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1438 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1439 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1440 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1441 904 1155 109, 50, 52, 143, 31, 50, 54, 52, 112, 154, 1156 31, 56, 111, 898, 152, 52, 31, 52, 154, 88, 1157 52, 108, 31, 128, 52, 128, 112, 108, 56, 143, 1158 31, 38, 152, 56, 112, 38, 38, 58, 38, 60, 1159 38, 38, 111, 38, 60, 38, 59, 111, 115, 58, 1160 58, 117, 158, 108, 38, 38, 38, 60, 59, 58, 1161 131, 130, 58, 130, 158, 114, 59, 132, 59, 117, 1162 111, 114, 115, 59, 131, 38, 131, 117, 38, 132, 1163 1164 133, 132, 133, 60, 173, 153, 60, 68, 68, 68, 1165 68, 68, 68, 69, 69, 68, 165, 114, 69, 173, 1166 60, 134, 134, 153, 134, 38, 38, 81, 81, 81, 1167 81, 81, 81, 165, 69, 69, 69, 69, 69, 69, 1168 78, 78, 135, 155, 135, 78, 146, 78, 136, 136, 1169 136, 146, 78, 83, 83, 83, 83, 83, 83, 155, 1170 897, 78, 78, 78, 78, 84, 84, 84, 84, 84, 1171 84, 156, 78, 104, 104, 104, 104, 104, 104, 105, 1172 105, 105, 105, 138, 140, 138, 140, 151, 78, 156, 1173 146, 78, 306, 894, 157, 162, 78, 78, 161, 306, 1174 1175 78, 78, 151, 160, 162, 176, 168, 105, 78, 151, 1176 169, 78, 105, 78, 78, 78, 157, 78, 86, 160, 1177 161, 164, 86, 86, 166, 176, 164, 86, 86, 168, 1178 86, 163, 86, 167, 166, 105, 170, 169, 175, 164, 1179 893, 86, 86, 86, 106, 172, 106, 106, 106, 106, 1180 106, 106, 163, 163, 167, 171, 175, 170, 174, 177, 1181 171, 178, 86, 106, 107, 86, 107, 172, 183, 107, 1182 107, 107, 107, 107, 107, 174, 182, 183, 171, 106, 1183 184, 182, 186, 178, 181, 106, 177, 222, 891, 222, 1184 192, 180, 187, 86, 100, 100, 100, 100, 100, 100, 1185 1186 186, 181, 107, 187, 188, 189, 180, 184, 185, 188, 1187 100, 100, 100, 180, 100, 100, 190, 192, 189, 185, 1188 187, 194, 732, 198, 188, 195, 191, 100, 193, 185, 1189 185, 191, 100, 100, 100, 159, 190, 100, 195, 100, 1190 159, 159, 159, 198, 159, 159, 195, 193, 159, 196, 1191 159, 732, 209, 191, 197, 159, 159, 159, 223, 159, 1192 223, 224, 196, 224, 196, 194, 286, 197, 194, 201, 1193 201, 201, 201, 201, 201, 202, 202, 201, 209, 225, 1194 202, 204, 204, 286, 213, 213, 204, 206, 206, 213, 1195 890, 883, 206, 225, 206, 225, 202, 202, 202, 202, 1196 1197 202, 202, 204, 204, 204, 204, 204, 204, 206, 206, 1198 206, 206, 206, 206, 216, 216, 216, 216, 226, 227, 1199 247, 227, 228, 228, 229, 228, 229, 230, 230, 230, 1200 226, 232, 226, 232, 233, 240, 233, 238, 238, 241, 1201 270, 241, 270, 239, 241, 239, 282, 216, 239, 239, 1202 239, 239, 239, 239, 271, 247, 271, 882, 240, 282, 1203 238, 241, 246, 241, 246, 246, 246, 246, 241, 245, 1204 245, 245, 245, 245, 245, 248, 248, 248, 248, 248, 1205 248, 239, 249, 249, 249, 249, 249, 249, 283, 284, 1206 288, 287, 248, 285, 289, 252, 287, 246, 295, 289, 1207 1208 297, 326, 245, 260, 274, 297, 283, 284, 248, 285, 1209 288, 881, 326, 295, 248, 250, 250, 250, 250, 250, 1210 250, 252, 257, 259, 259, 259, 259, 259, 259, 260, 1211 274, 250, 251, 250, 251, 250, 250, 251, 251, 251, 1212 251, 251, 251, 298, 292, 257, 880, 257, 250, 294, 1213 290, 257, 298, 250, 293, 250, 259, 257, 250, 291, 1214 250, 264, 264, 264, 264, 264, 264, 292, 296, 257, 1215 290, 300, 293, 257, 291, 294, 299, 257, 301, 303, 1216 291, 291, 304, 305, 296, 296, 307, 304, 309, 299, 1217 308, 879, 305, 313, 264, 310, 301, 303, 300, 311, 1218 1219 310, 312, 314, 318, 311, 316, 307, 312, 308, 309, 1220 309, 314, 313, 315, 317, 319, 322, 320, 318, 315, 1221 319, 316, 320, 317, 321, 323, 324, 327, 328, 321, 1222 329, 328, 330, 331, 332, 322, 333, 334, 335, 324, 1223 336, 337, 327, 323, 338, 330, 321, 335, 340, 329, 1224 339, 342, 344, 345, 334, 331, 333, 332, 343, 346, 1225 349, 340, 336, 350, 337, 347, 338, 343, 339, 348, 1226 342, 345, 346, 347, 348, 349, 875, 351, 351, 352, 1227 413, 350, 351, 410, 351, 352, 359, 359, 359, 359, 1228 360, 360, 360, 360, 410, 369, 344, 369, 370, 413, 1229 1230 370, 377, 377, 377, 377, 377, 377, 379, 389, 379, 1231 417, 394, 379, 379, 379, 379, 379, 379, 389, 359, 1232 378, 378, 378, 378, 378, 378, 381, 381, 381, 381, 1233 381, 381, 417, 411, 389, 394, 378, 412, 378, 415, 1234 378, 378, 384, 384, 384, 384, 384, 384, 392, 411, 1235 415, 390, 412, 378, 392, 396, 578, 421, 378, 381, 1236 378, 390, 420, 378, 578, 378, 382, 382, 382, 382, 1237 382, 382, 391, 396, 424, 384, 414, 390, 420, 421, 1238 392, 396, 382, 382, 382, 414, 382, 382, 385, 385, 1239 385, 385, 385, 385, 428, 391, 424, 391, 871, 382, 1240 1241 428, 391, 868, 395, 382, 382, 382, 391, 393, 382, 1242 393, 382, 419, 393, 393, 393, 393, 393, 393, 391, 1243 416, 385, 418, 391, 422, 419, 395, 391, 395, 416, 1244 425, 418, 395, 430, 426, 423, 429, 422, 395, 426, 1245 427, 431, 434, 439, 430, 438, 393, 436, 425, 432, 1246 395, 423, 423, 441, 395, 427, 434, 429, 395, 436, 1247 431, 440, 427, 442, 432, 439, 438, 443, 444, 442, 1248 446, 448, 449, 450, 440, 451, 441, 444, 452, 453, 1249 454, 456, 443, 458, 461, 446, 459, 460, 450, 454, 1250 462, 448, 463, 452, 449, 464, 460, 451, 456, 453, 1251 1252 465, 466, 467, 470, 468, 461, 458, 469, 459, 465, 1253 462, 468, 463, 471, 469, 467, 472, 464, 473, 466, 1254 474, 475, 477, 480, 478, 472, 473, 479, 470, 480, 1255 479, 507, 475, 478, 508, 471, 473, 474, 489, 489, 1256 489, 489, 528, 531, 477, 500, 500, 500, 500, 500, 1257 500, 502, 502, 502, 502, 502, 502, 507, 531, 528, 1258 508, 500, 529, 500, 533, 500, 500, 503, 503, 503, 1259 503, 503, 503, 867, 866, 529, 504, 533, 500, 532, 1260 542, 506, 534, 500, 502, 500, 504, 505, 500, 505, 1261 500, 506, 505, 505, 505, 505, 505, 505, 536, 532, 1262 1263 503, 542, 504, 536, 534, 535, 537, 506, 510, 510, 1264 510, 510, 510, 510, 512, 865, 512, 537, 535, 512, 1265 512, 512, 512, 512, 512, 505, 511, 511, 511, 511, 1266 511, 511, 538, 539, 540, 538, 541, 546, 544, 543, 1267 545, 549, 511, 544, 511, 548, 511, 511, 543, 540, 1268 546, 545, 551, 539, 548, 541, 550, 552, 555, 511, 1269 557, 551, 552, 549, 511, 558, 511, 555, 554, 511, 1270 559, 511, 560, 550, 554, 562, 563, 557, 564, 565, 1271 558, 560, 567, 568, 562, 559, 570, 571, 568, 574, 1272 564, 575, 576, 563, 565, 570, 571, 567, 579, 580, 1273 1274 581, 582, 589, 586, 575, 587, 580, 590, 579, 576, 1275 583, 574, 586, 582, 592, 587, 583, 864, 863, 589, 1276 590, 638, 581, 610, 610, 610, 610, 610, 610, 611, 1277 611, 611, 611, 611, 611, 613, 592, 613, 638, 637, 1278 613, 613, 613, 613, 613, 613, 616, 616, 616, 616, 1279 616, 616, 637, 617, 617, 642, 610, 612, 612, 612, 1280 612, 612, 612, 618, 634, 619, 862, 619, 639, 634, 1281 619, 636, 642, 612, 635, 612, 617, 612, 612, 616, 1282 636, 635, 634, 645, 646, 640, 618, 619, 641, 619, 1283 612, 639, 640, 644, 619, 612, 641, 612, 643, 646, 1284 1285 612, 643, 612, 647, 648, 645, 644, 649, 650, 651, 1286 652, 650, 653, 654, 655, 657, 656, 660, 667, 658, 1287 661, 648, 662, 655, 666, 647, 651, 653, 658, 649, 1288 669, 662, 672, 654, 656, 684, 673, 657, 652, 680, 1289 660, 672, 661, 673, 666, 667, 681, 669, 680, 683, 1290 684, 716, 719, 722, 723, 861, 681, 723, 683, 703, 1291 703, 703, 703, 703, 703, 707, 707, 707, 707, 707, 1292 707, 717, 716, 722, 856, 703, 720, 703, 719, 703, 1293 703, 717, 721, 720, 727, 724, 729, 721, 724, 725, 1294 727, 730, 703, 728, 730, 729, 731, 703, 707, 703, 1295 1296 733, 734, 703, 733, 703, 735, 728, 725, 736, 737, 1297 734, 736, 738, 739, 740, 741, 742, 731, 748, 745, 1298 738, 749, 737, 739, 750, 742, 752, 740, 773, 774, 1299 753, 735, 771, 773, 752, 776, 741, 745, 748, 753, 1300 772, 778, 745, 749, 774, 750, 760, 760, 760, 760, 1301 760, 760, 771, 775, 777, 780, 779, 772, 776, 779, 1302 781, 783, 785, 775, 783, 785, 786, 778, 780, 787, 1303 789, 777, 787, 786, 788, 790, 792, 788, 796, 760, 1304 811, 813, 814, 815, 816, 789, 815, 817, 781, 818, 1305 817, 820, 818, 821, 822, 824, 855, 822, 790, 792, 1306 1307 814, 796, 813, 827, 828, 825, 816, 811, 825, 820, 1308 826, 829, 827, 826, 830, 845, 846, 824, 847, 821, 1309 828, 847, 829, 846, 848, 849, 850, 851, 854, 850, 1310 830, 854, 857, 848, 884, 857, 845, 858, 859, 860, 1311 870, 853, 869, 849, 851, 870, 858, 873, 860, 849, 1312 859, 869, 872, 874, 884, 872, 876, 873, 874, 876, 1313 877, 878, 885, 877, 878, 886, 887, 888, 886, 889, 1314 888, 892, 889, 895, 896, 899, 887, 885, 900, 901, 1315 903, 902, 904, 852, 899, 905, 844, 843, 842, 896, 1316 841, 900, 840, 892, 895, 905, 839, 838, 903, 837, 1317 1318 836, 901, 902, 835, 904, 909, 909, 909, 909, 909, 1319 909, 909, 909, 909, 909, 909, 909, 909, 910, 910, 1320 910, 910, 910, 910, 910, 910, 910, 910, 910, 910, 1321 910, 911, 911, 911, 911, 911, 911, 911, 911, 911, 1322 911, 911, 911, 911, 912, 834, 833, 912, 832, 912, 1323 912, 912, 912, 912, 913, 831, 823, 819, 913, 913, 1324 913, 913, 913, 913, 914, 914, 914, 914, 914, 914, 1325 914, 914, 914, 914, 914, 914, 914, 915, 812, 810, 1326 915, 809, 915, 915, 915, 915, 915, 916, 808, 916, 1327 916, 807, 916, 916, 916, 916, 916, 916, 806, 916, 1328 1329 917, 805, 804, 917, 917, 917, 917, 917, 917, 917, 1330 917, 803, 917, 918, 918, 918, 918, 918, 918, 918, 1331 918, 918, 918, 918, 918, 918, 919, 919, 802, 919, 1332 801, 800, 799, 919, 920, 798, 797, 920, 795, 920, 1333 920, 920, 920, 920, 921, 794, 921, 793, 791, 784, 1334 921, 922, 782, 922, 770, 769, 768, 922, 923, 767, 1335 923, 766, 765, 764, 923, 924, 763, 924, 762, 759, 1336 758, 924, 925, 757, 925, 751, 747, 746, 925, 926, 1337 744, 926, 743, 726, 718, 926, 927, 715, 927, 710, 1338 708, 704, 927, 928, 694, 928, 690, 688, 686, 928, 1339 1340 929, 685, 929, 682, 679, 678, 929, 930, 677, 930, 1341 931, 931, 676, 931, 931, 931, 675, 931, 932, 932, 1342 674, 932, 933, 671, 670, 933, 668, 933, 933, 933, 1343 933, 933, 934, 665, 934, 664, 663, 659, 934, 935, 1344 632, 935, 628, 626, 624, 935, 936, 622, 936, 620, 1345 614, 608, 936, 937, 606, 937, 938, 604, 938, 602, 1346 600, 598, 938, 939, 596, 939, 940, 594, 593, 940, 1347 591, 940, 940, 940, 940, 940, 941, 941, 941, 941, 1348 941, 941, 941, 941, 941, 941, 941, 941, 941, 942, 1349 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 1350 1351 942, 942, 943, 588, 943, 585, 584, 577, 943, 944, 1352 573, 944, 572, 569, 566, 944, 945, 561, 945, 556, 1353 553, 530, 945, 946, 526, 946, 947, 524, 947, 522, 1354 520, 518, 947, 948, 516, 948, 949, 515, 949, 514, 1355 513, 501, 949, 950, 498, 950, 951, 496, 951, 495, 1356 494, 492, 951, 952, 490, 952, 953, 487, 953, 485, 1357 483, 481, 953, 954, 476, 954, 955, 457, 955, 455, 1358 447, 445, 955, 956, 437, 956, 957, 435, 957, 433, 1359 407, 405, 957, 958, 403, 958, 959, 401, 959, 400, 1360 959, 399, 959, 960, 386, 960, 383, 960, 374, 960, 1361 1362 961, 961, 372, 961, 961, 961, 371, 961, 962, 367, 1363 962, 365, 363, 361, 962, 963, 357, 963, 355, 354, 1364 353, 963, 964, 341, 964, 325, 302, 281, 964, 965, 1365 279, 965, 966, 277, 966, 276, 275, 273, 966, 967, 1366 272, 967, 968, 267, 968, 263, 262, 258, 968, 969, 1367 255, 969, 970, 254, 970, 243, 242, 235, 970, 971, 1368 234, 971, 972, 231, 221, 972, 219, 972, 972, 972, 1369 972, 972, 973, 973, 973, 973, 973, 973, 973, 973, 1370 973, 973, 973, 973, 973, 974, 218, 974, 217, 211, 1371 210, 974, 975, 208, 975, 976, 203, 976, 179, 150, 1372 1373 148, 976, 977, 147, 977, 978, 141, 978, 139, 137, 1374 129, 978, 979, 126, 979, 980, 125, 980, 121, 102, 1375 99, 980, 981, 96, 981, 982, 94, 982, 87, 73, 1376 71, 982, 983, 67, 983, 984, 36, 984, 33, 18, 1377 11, 984, 985, 4, 985, 986, 3, 986, 0, 0, 1378 0, 986, 987, 0, 987, 0, 0, 0, 987, 988, 1379 0, 988, 989, 0, 989, 0, 0, 0, 989, 990, 1380 0, 990, 991, 0, 991, 0, 991, 0, 991, 992, 1381 0, 992, 0, 0, 0, 992, 993, 0, 993, 0, 1382 0, 0, 993, 994, 0, 994, 995, 0, 995, 0, 1383 1384 0, 0, 995, 996, 0, 996, 997, 0, 997, 0, 1385 0, 0, 997, 998, 0, 998, 999, 0, 999, 0, 1386 0, 0, 999, 1000, 0, 1000, 1001, 0, 1001, 0, 1387 0, 0, 1001, 1002, 0, 1002, 1003, 0, 1003, 0, 1388 0, 0, 1003, 1004, 0, 1004, 1005, 0, 0, 1005, 1389 0, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, 1006, 1390 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1007, 1391 0, 1007, 0, 0, 0, 1007, 1008, 0, 1008, 1009, 1392 0, 1009, 0, 0, 0, 1009, 1010, 0, 1010, 1011, 1393 0, 1011, 0, 0, 0, 1011, 1012, 0, 1012, 1013, 1394 1395 0, 1013, 0, 0, 0, 1013, 1014, 0, 1014, 1015, 1396 0, 1015, 0, 0, 0, 1015, 1016, 0, 1016, 1017, 1397 0, 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 1398 0, 1019, 0, 0, 0, 1019, 1020, 0, 1020, 1021, 1399 0, 1021, 0, 0, 0, 1021, 1022, 0, 1022, 1023, 1400 0, 1023, 0, 0, 0, 1023, 1024, 0, 1024, 0, 1401 0, 0, 1024, 1025, 0, 1025, 1026, 0, 1026, 0, 1402 0, 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 0, 1403 0, 0, 1028, 1029, 0, 1029, 1030, 0, 1030, 0, 1404 0, 0, 1030, 1031, 0, 1031, 1032, 0, 1032, 1033, 1405 1406 0, 1033, 1034, 0, 0, 1034, 0, 1034, 1034, 1034, 1407 1034, 1034, 1035, 0, 1035, 1036, 1036, 1036, 1036, 1036, 1408 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1037, 0, 1409 1037, 0, 0, 0, 1037, 1038, 0, 1038, 1039, 0, 1410 1039, 0, 0, 0, 1039, 1040, 0, 1040, 1041, 0, 1411 1041, 1042, 0, 1042, 1043, 0, 0, 1043, 0, 1043, 1412 1043, 1043, 1043, 1043, 1044, 0, 1044, 1045, 0, 1045, 1413 1046, 0, 1046, 1047, 0, 1047, 1048, 0, 1048, 1049, 1414 0, 1049, 1050, 0, 1050, 1051, 0, 1051, 0, 0, 1415 0, 1051, 1052, 0, 1052, 1053, 0, 1053, 0, 0, 1416 1417 0, 1053, 1054, 0, 1054, 1055, 0, 1055, 1056, 0, 1418 1056, 1057, 0, 1057, 1058, 0, 1058, 0, 0, 0, 1419 1058, 1059, 0, 0, 1059, 0, 1059, 1059, 1059, 1059, 1420 1059, 1060, 0, 1060, 1061, 0, 1061, 1062, 0, 1062, 1421 1063, 0, 1063, 0, 0, 0, 1063, 1064, 0, 1064, 1422 0, 0, 0, 1064, 1065, 0, 1065, 0, 0, 0, 1423 1065, 1066, 0, 1066, 1067, 0, 1067, 0, 0, 0, 1424 1067, 1068, 0, 1068, 0, 0, 0, 1068, 1069, 0, 1425 1069, 0, 0, 0, 1069, 1070, 0, 1070, 0, 0, 1426 0, 1070, 1071, 0, 1071, 0, 0, 0, 1071, 1072, 1427 1428 0, 1072, 0, 0, 0, 1072, 1073, 0, 1073, 0, 1429 0, 0, 1073, 1074, 0, 1074, 0, 0, 0, 1074, 1430 1075, 0, 1075, 0, 0, 0, 1075, 1076, 0, 1076, 1431 0, 0, 0, 1076, 1077, 0, 1077, 0, 0, 0, 1432 1077, 1078, 0, 1078, 0, 0, 0, 1078, 1079, 0, 1433 1079, 0, 0, 0, 1079, 1080, 0, 1080, 0, 0, 1434 0, 1080, 1081, 0, 1081, 0, 0, 0, 1081, 1082, 1435 0, 1082, 0, 0, 0, 1082, 908, 908, 908, 908, 1436 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1437 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1438 1439 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1440 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1441 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1442 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1443 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1444 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 1445 908, 908 1442 1446 } ; 1443 1447 1444 1448 /* Table of booleans, true if rule could match eol. */ 1445 static yyconst flex_int32_t yy_rule_can_match_eol[18 6] =1449 static yyconst flex_int32_t yy_rule_can_match_eol[187] = 1446 1450 { 0, 1447 1451 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1451 1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1452 1456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1453 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1457 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1454 1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1455 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, };1460 0, 0, 0, 0, 0, 0, 0, }; 1457 1461 1458 1462 static yy_state_type yy_last_accepting_state; … … 1476 1480 * The contents of this file are covered under the licence agreement in the 1477 1481 * file "LICENCE" distributed with Cforall. 1478 * 1479 * lex.l -- 1480 * 1482 * 1483 * lex.l -- 1484 * 1481 1485 * Author : Peter A. Buhr 1482 1486 * Created On : Sat Sep 22 08:58:10 2001 … … 1544 1548 1545 1549 1546 #line 15 47"Parser/lex.cc"1550 #line 1551 "Parser/lex.cc" 1547 1551 1548 1552 #define INITIAL 0 … … 1739 1743 1740 1744 /* line directives */ 1741 #line 174 2"Parser/lex.cc"1745 #line 1746 "Parser/lex.cc" 1742 1746 1743 1747 if ( !(yy_init) ) … … 1793 1797 { 1794 1798 yy_current_state = (int) yy_def[yy_current_state]; 1795 if ( yy_current_state >= 90 5)1799 if ( yy_current_state >= 909 ) 1796 1800 yy_c = yy_meta[(unsigned int) yy_c]; 1797 1801 } … … 1799 1803 ++yy_cp; 1800 1804 } 1801 while ( yy_base[yy_current_state] != 28 66);1805 while ( yy_base[yy_current_state] != 2877 ); 1802 1806 1803 1807 yy_find_action: … … 2320 2324 YY_RULE_SETUP 2321 2325 #line 260 "lex.ll" 2326 { KEYWORD_RETURN(TTYPE); } // CFA 2327 YY_BREAK 2328 case 93: 2329 YY_RULE_SETUP 2330 #line 261 "lex.ll" 2322 2331 { KEYWORD_RETURN(TYPEDEF); } 2323 YY_BREAK2324 case 93:2325 YY_RULE_SETUP2326 #line 261 "lex.ll"2327 { KEYWORD_RETURN(TYPEOF); } // GCC2328 2332 YY_BREAK 2329 2333 case 94: … … 2340 2344 YY_RULE_SETUP 2341 2345 #line 264 "lex.ll" 2346 { KEYWORD_RETURN(TYPEOF); } // GCC 2347 YY_BREAK 2348 case 97: 2349 YY_RULE_SETUP 2350 #line 265 "lex.ll" 2342 2351 { KEYWORD_RETURN(UNION); } 2343 2352 YY_BREAK 2344 case 9 7:2345 YY_RULE_SETUP 2346 #line 26 5"lex.ll"2353 case 98: 2354 YY_RULE_SETUP 2355 #line 266 "lex.ll" 2347 2356 { KEYWORD_RETURN(UNSIGNED); } 2348 2357 YY_BREAK 2349 case 9 8:2350 YY_RULE_SETUP 2351 #line 26 6"lex.ll"2358 case 99: 2359 YY_RULE_SETUP 2360 #line 267 "lex.ll" 2352 2361 { KEYWORD_RETURN(VALIST); } // GCC 2353 2362 YY_BREAK 2354 case 99:2355 YY_RULE_SETUP 2356 #line 26 7"lex.ll"2363 case 100: 2364 YY_RULE_SETUP 2365 #line 268 "lex.ll" 2357 2366 { KEYWORD_RETURN(VOID); } 2358 2367 YY_BREAK 2359 case 10 0:2360 YY_RULE_SETUP 2361 #line 26 8"lex.ll"2368 case 101: 2369 YY_RULE_SETUP 2370 #line 269 "lex.ll" 2362 2371 { KEYWORD_RETURN(VOLATILE); } 2363 YY_BREAK2364 case 101:2365 YY_RULE_SETUP2366 #line 269 "lex.ll"2367 { KEYWORD_RETURN(VOLATILE); } // GCC2368 2372 YY_BREAK 2369 2373 case 102: … … 2375 2379 YY_RULE_SETUP 2376 2380 #line 271 "lex.ll" 2381 { KEYWORD_RETURN(VOLATILE); } // GCC 2382 YY_BREAK 2383 case 104: 2384 YY_RULE_SETUP 2385 #line 272 "lex.ll" 2377 2386 { KEYWORD_RETURN(WHILE); } 2378 2387 YY_BREAK 2379 case 10 4:2380 YY_RULE_SETUP 2381 #line 27 2"lex.ll"2388 case 105: 2389 YY_RULE_SETUP 2390 #line 273 "lex.ll" 2382 2391 { NUMERIC_RETURN(ZERO_T); } // CFA 2383 2392 YY_BREAK 2384 2393 /* identifier */ 2385 case 10 5:2386 YY_RULE_SETUP 2387 #line 27 5"lex.ll"2394 case 106: 2395 YY_RULE_SETUP 2396 #line 276 "lex.ll" 2388 2397 { IDENTIFIER_RETURN(); } 2389 2398 YY_BREAK 2390 case 10 6:2391 YY_RULE_SETUP 2392 #line 27 6"lex.ll"2399 case 107: 2400 YY_RULE_SETUP 2401 #line 277 "lex.ll" 2393 2402 { ATTRIBUTE_RETURN(); } 2394 2403 YY_BREAK 2395 case 10 7:2396 YY_RULE_SETUP 2397 #line 27 7"lex.ll"2404 case 108: 2405 YY_RULE_SETUP 2406 #line 278 "lex.ll" 2398 2407 { BEGIN BKQUOTE; } 2399 2408 YY_BREAK 2400 case 10 8:2401 YY_RULE_SETUP 2402 #line 27 8"lex.ll"2409 case 109: 2410 YY_RULE_SETUP 2411 #line 279 "lex.ll" 2403 2412 { IDENTIFIER_RETURN(); } 2404 2413 YY_BREAK 2405 case 1 09:2406 YY_RULE_SETUP 2407 #line 2 79"lex.ll"2414 case 110: 2415 YY_RULE_SETUP 2416 #line 280 "lex.ll" 2408 2417 { BEGIN 0; } 2409 2418 YY_BREAK 2410 2419 /* numeric constants */ 2411 case 11 0:2412 YY_RULE_SETUP 2413 #line 28 2"lex.ll"2420 case 111: 2421 YY_RULE_SETUP 2422 #line 283 "lex.ll" 2414 2423 { NUMERIC_RETURN(ZERO); } // CFA 2415 2424 YY_BREAK 2416 case 11 1:2417 YY_RULE_SETUP 2418 #line 28 3"lex.ll"2425 case 112: 2426 YY_RULE_SETUP 2427 #line 284 "lex.ll" 2419 2428 { NUMERIC_RETURN(ONE); } // CFA 2420 YY_BREAK2421 case 112:2422 YY_RULE_SETUP2423 #line 284 "lex.ll"2424 { NUMERIC_RETURN(INTEGERconstant); }2425 2429 YY_BREAK 2426 2430 case 113: … … 2437 2441 YY_RULE_SETUP 2438 2442 #line 287 "lex.ll" 2443 { NUMERIC_RETURN(INTEGERconstant); } 2444 YY_BREAK 2445 case 116: 2446 YY_RULE_SETUP 2447 #line 288 "lex.ll" 2439 2448 { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant 2440 2449 YY_BREAK 2441 case 11 6:2442 YY_RULE_SETUP 2443 #line 28 8"lex.ll"2450 case 117: 2451 YY_RULE_SETUP 2452 #line 289 "lex.ll" 2444 2453 { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant 2445 YY_BREAK2446 case 117:2447 YY_RULE_SETUP2448 #line 289 "lex.ll"2449 { NUMERIC_RETURN(FLOATINGconstant); }2450 2454 YY_BREAK 2451 2455 case 118: … … 2454 2458 { NUMERIC_RETURN(FLOATINGconstant); } 2455 2459 YY_BREAK 2460 case 119: 2461 YY_RULE_SETUP 2462 #line 291 "lex.ll" 2463 { NUMERIC_RETURN(FLOATINGconstant); } 2464 YY_BREAK 2456 2465 /* character constant, allows empty value */ 2457 case 1 19:2458 YY_RULE_SETUP 2459 #line 29 3"lex.ll"2466 case 120: 2467 YY_RULE_SETUP 2468 #line 294 "lex.ll" 2460 2469 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2461 2470 YY_BREAK 2462 case 12 0:2463 YY_RULE_SETUP 2464 #line 29 4"lex.ll"2471 case 121: 2472 YY_RULE_SETUP 2473 #line 295 "lex.ll" 2465 2474 { strtext->append( yytext, yyleng ); } 2466 2475 YY_BREAK 2467 case 12 1:2468 /* rule 12 1can match eol */2469 YY_RULE_SETUP 2470 #line 29 5"lex.ll"2476 case 122: 2477 /* rule 122 can match eol */ 2478 YY_RULE_SETUP 2479 #line 296 "lex.ll" 2471 2480 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 2472 2481 YY_BREAK 2473 2482 /* ' stop highlighting */ 2474 2483 /* string constant */ 2475 case 12 2:2476 YY_RULE_SETUP 2477 #line 299"lex.ll"2484 case 123: 2485 YY_RULE_SETUP 2486 #line 300 "lex.ll" 2478 2487 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2479 2488 YY_BREAK 2480 case 12 3:2481 YY_RULE_SETUP 2482 #line 30 0"lex.ll"2489 case 124: 2490 YY_RULE_SETUP 2491 #line 301 "lex.ll" 2483 2492 { strtext->append( yytext, yyleng ); } 2484 2493 YY_BREAK 2485 case 12 4:2486 /* rule 12 4can match eol */2487 YY_RULE_SETUP 2488 #line 30 1"lex.ll"2494 case 125: 2495 /* rule 125 can match eol */ 2496 YY_RULE_SETUP 2497 #line 302 "lex.ll" 2489 2498 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 2490 2499 YY_BREAK 2491 2500 /* " stop highlighting */ 2492 2501 /* common character/string constant */ 2493 case 12 5:2494 YY_RULE_SETUP 2495 #line 30 5"lex.ll"2502 case 126: 2503 YY_RULE_SETUP 2504 #line 306 "lex.ll" 2496 2505 { rm_underscore(); strtext->append( yytext, yyleng ); } 2497 2506 YY_BREAK 2498 case 12 6:2499 /* rule 12 6can match eol */2500 YY_RULE_SETUP 2501 #line 30 6"lex.ll"2507 case 127: 2508 /* rule 127 can match eol */ 2509 YY_RULE_SETUP 2510 #line 307 "lex.ll" 2502 2511 {} // continuation (ALSO HANDLED BY CPP) 2503 2512 YY_BREAK 2504 case 12 7:2505 YY_RULE_SETUP 2506 #line 30 7"lex.ll"2513 case 128: 2514 YY_RULE_SETUP 2515 #line 308 "lex.ll" 2507 2516 { strtext->append( yytext, yyleng ); } // unknown escape character 2508 2517 YY_BREAK 2509 2518 /* punctuation */ 2510 case 128:2511 YY_RULE_SETUP2512 #line 310 "lex.ll"2513 { ASCIIOP_RETURN(); }2514 YY_BREAK2515 2519 case 129: 2516 2520 YY_RULE_SETUP … … 2541 2545 YY_RULE_SETUP 2542 2546 #line 316 "lex.ll" 2547 { ASCIIOP_RETURN(); } 2548 YY_BREAK 2549 case 135: 2550 YY_RULE_SETUP 2551 #line 317 "lex.ll" 2543 2552 { ASCIIOP_RETURN(); } // also operator 2544 YY_BREAK2545 case 135:2546 YY_RULE_SETUP2547 #line 317 "lex.ll"2548 { ASCIIOP_RETURN(); }2549 2553 YY_BREAK 2550 2554 case 136: … … 2556 2560 YY_RULE_SETUP 2557 2561 #line 319 "lex.ll" 2562 { ASCIIOP_RETURN(); } 2563 YY_BREAK 2564 case 138: 2565 YY_RULE_SETUP 2566 #line 320 "lex.ll" 2558 2567 { ASCIIOP_RETURN(); } // also operator 2559 2568 YY_BREAK 2560 case 13 8:2561 YY_RULE_SETUP 2562 #line 32 0"lex.ll"2569 case 139: 2570 YY_RULE_SETUP 2571 #line 321 "lex.ll" 2563 2572 { NAMEDOP_RETURN(ELLIPSIS); } 2564 2573 YY_BREAK 2565 2574 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */ 2566 case 1 39:2567 YY_RULE_SETUP 2568 #line 32 3"lex.ll"2575 case 140: 2576 YY_RULE_SETUP 2577 #line 324 "lex.ll" 2569 2578 { RETURN_VAL('['); } 2570 2579 YY_BREAK 2571 case 14 0:2572 YY_RULE_SETUP 2573 #line 32 4"lex.ll"2580 case 141: 2581 YY_RULE_SETUP 2582 #line 325 "lex.ll" 2574 2583 { RETURN_VAL(']'); } 2575 2584 YY_BREAK 2576 case 14 1:2577 YY_RULE_SETUP 2578 #line 32 5"lex.ll"2585 case 142: 2586 YY_RULE_SETUP 2587 #line 326 "lex.ll" 2579 2588 { RETURN_VAL('{'); } 2580 2589 YY_BREAK 2581 case 14 2:2582 YY_RULE_SETUP 2583 #line 32 6"lex.ll"2590 case 143: 2591 YY_RULE_SETUP 2592 #line 327 "lex.ll" 2584 2593 { RETURN_VAL('}'); } 2585 2594 YY_BREAK 2586 2595 /* operators */ 2587 case 143:2588 YY_RULE_SETUP2589 #line 329 "lex.ll"2590 { ASCIIOP_RETURN(); }2591 YY_BREAK2592 2596 case 144: 2593 2597 YY_RULE_SETUP … … 2657 2661 case 157: 2658 2662 YY_RULE_SETUP 2659 #line 344 "lex.ll" 2663 #line 343 "lex.ll" 2664 { ASCIIOP_RETURN(); } 2665 YY_BREAK 2666 case 158: 2667 YY_RULE_SETUP 2668 #line 345 "lex.ll" 2660 2669 { NAMEDOP_RETURN(ICR); } 2661 2670 YY_BREAK 2662 case 15 8:2663 YY_RULE_SETUP 2664 #line 34 5"lex.ll"2671 case 159: 2672 YY_RULE_SETUP 2673 #line 346 "lex.ll" 2665 2674 { NAMEDOP_RETURN(DECR); } 2666 2675 YY_BREAK 2667 case 1 59:2668 YY_RULE_SETUP 2669 #line 34 6"lex.ll"2676 case 160: 2677 YY_RULE_SETUP 2678 #line 347 "lex.ll" 2670 2679 { NAMEDOP_RETURN(EQ); } 2671 2680 YY_BREAK 2672 case 16 0:2673 YY_RULE_SETUP 2674 #line 34 7"lex.ll"2681 case 161: 2682 YY_RULE_SETUP 2683 #line 348 "lex.ll" 2675 2684 { NAMEDOP_RETURN(NE); } 2676 2685 YY_BREAK 2677 case 16 1:2678 YY_RULE_SETUP 2679 #line 34 8"lex.ll"2686 case 162: 2687 YY_RULE_SETUP 2688 #line 349 "lex.ll" 2680 2689 { NAMEDOP_RETURN(LS); } 2681 2690 YY_BREAK 2682 case 16 2:2683 YY_RULE_SETUP 2684 #line 3 49"lex.ll"2691 case 163: 2692 YY_RULE_SETUP 2693 #line 350 "lex.ll" 2685 2694 { NAMEDOP_RETURN(RS); } 2686 2695 YY_BREAK 2687 case 16 3:2688 YY_RULE_SETUP 2689 #line 35 0"lex.ll"2696 case 164: 2697 YY_RULE_SETUP 2698 #line 351 "lex.ll" 2690 2699 { NAMEDOP_RETURN(LE); } 2691 2700 YY_BREAK 2692 case 16 4:2693 YY_RULE_SETUP 2694 #line 35 1"lex.ll"2701 case 165: 2702 YY_RULE_SETUP 2703 #line 352 "lex.ll" 2695 2704 { NAMEDOP_RETURN(GE); } 2696 2705 YY_BREAK 2697 case 16 5:2698 YY_RULE_SETUP 2699 #line 35 2"lex.ll"2706 case 166: 2707 YY_RULE_SETUP 2708 #line 353 "lex.ll" 2700 2709 { NAMEDOP_RETURN(ANDAND); } 2701 2710 YY_BREAK 2702 case 16 6:2703 YY_RULE_SETUP 2704 #line 35 3"lex.ll"2711 case 167: 2712 YY_RULE_SETUP 2713 #line 354 "lex.ll" 2705 2714 { NAMEDOP_RETURN(OROR); } 2706 2715 YY_BREAK 2707 case 16 7:2708 YY_RULE_SETUP 2709 #line 35 4"lex.ll"2716 case 168: 2717 YY_RULE_SETUP 2718 #line 355 "lex.ll" 2710 2719 { NAMEDOP_RETURN(ARROW); } 2711 2720 YY_BREAK 2712 case 16 8:2713 YY_RULE_SETUP 2714 #line 35 5"lex.ll"2721 case 169: 2722 YY_RULE_SETUP 2723 #line 356 "lex.ll" 2715 2724 { NAMEDOP_RETURN(PLUSassign); } 2716 2725 YY_BREAK 2717 case 1 69:2718 YY_RULE_SETUP 2719 #line 35 6"lex.ll"2726 case 170: 2727 YY_RULE_SETUP 2728 #line 357 "lex.ll" 2720 2729 { NAMEDOP_RETURN(MINUSassign); } 2721 2730 YY_BREAK 2722 case 17 0:2723 YY_RULE_SETUP 2724 #line 35 7"lex.ll"2731 case 171: 2732 YY_RULE_SETUP 2733 #line 358 "lex.ll" 2725 2734 { NAMEDOP_RETURN(MULTassign); } 2726 2735 YY_BREAK 2727 case 17 1:2728 YY_RULE_SETUP 2729 #line 35 8"lex.ll"2736 case 172: 2737 YY_RULE_SETUP 2738 #line 359 "lex.ll" 2730 2739 { NAMEDOP_RETURN(DIVassign); } 2731 2740 YY_BREAK 2732 case 17 2:2733 YY_RULE_SETUP 2734 #line 3 59"lex.ll"2741 case 173: 2742 YY_RULE_SETUP 2743 #line 360 "lex.ll" 2735 2744 { NAMEDOP_RETURN(MODassign); } 2736 2745 YY_BREAK 2737 case 17 3:2738 YY_RULE_SETUP 2739 #line 36 0"lex.ll"2746 case 174: 2747 YY_RULE_SETUP 2748 #line 361 "lex.ll" 2740 2749 { NAMEDOP_RETURN(ANDassign); } 2741 2750 YY_BREAK 2742 case 17 4:2743 YY_RULE_SETUP 2744 #line 36 1"lex.ll"2751 case 175: 2752 YY_RULE_SETUP 2753 #line 362 "lex.ll" 2745 2754 { NAMEDOP_RETURN(ORassign); } 2746 2755 YY_BREAK 2747 case 17 5:2748 YY_RULE_SETUP 2749 #line 36 2"lex.ll"2756 case 176: 2757 YY_RULE_SETUP 2758 #line 363 "lex.ll" 2750 2759 { NAMEDOP_RETURN(ERassign); } 2751 2760 YY_BREAK 2752 case 17 6:2753 YY_RULE_SETUP 2754 #line 36 3"lex.ll"2761 case 177: 2762 YY_RULE_SETUP 2763 #line 364 "lex.ll" 2755 2764 { NAMEDOP_RETURN(LSassign); } 2756 2765 YY_BREAK 2757 case 17 7:2758 YY_RULE_SETUP 2759 #line 36 4"lex.ll"2766 case 178: 2767 YY_RULE_SETUP 2768 #line 365 "lex.ll" 2760 2769 { NAMEDOP_RETURN(RSassign); } 2761 2770 YY_BREAK 2762 case 17 8:2763 YY_RULE_SETUP 2764 #line 36 6"lex.ll"2771 case 179: 2772 YY_RULE_SETUP 2773 #line 367 "lex.ll" 2765 2774 { NAMEDOP_RETURN(ATassign); } // CFA 2766 2775 YY_BREAK 2767 2776 /* CFA, operator identifier */ 2768 case 1 79:2769 YY_RULE_SETUP 2770 #line 3 69"lex.ll"2777 case 180: 2778 YY_RULE_SETUP 2779 #line 370 "lex.ll" 2771 2780 { IDENTIFIER_RETURN(); } // unary 2772 YY_BREAK2773 case 180:2774 YY_RULE_SETUP2775 #line 370 "lex.ll"2776 { IDENTIFIER_RETURN(); }2777 2781 YY_BREAK 2778 2782 case 181: … … 2784 2788 YY_RULE_SETUP 2785 2789 #line 372 "lex.ll" 2790 { IDENTIFIER_RETURN(); } 2791 YY_BREAK 2792 case 183: 2793 YY_RULE_SETUP 2794 #line 373 "lex.ll" 2786 2795 { IDENTIFIER_RETURN(); } // binary 2787 2796 YY_BREAK … … 2812 2821 an argument list. 2813 2822 */ 2814 case 18 3:2815 YY_RULE_SETUP 2816 #line 399"lex.ll"2823 case 184: 2824 YY_RULE_SETUP 2825 #line 400 "lex.ll" 2817 2826 { 2818 2827 // 1 or 2 character unary operator ? … … 2827 2836 YY_BREAK 2828 2837 /* unknown characters */ 2829 case 18 4:2830 YY_RULE_SETUP 2831 #line 41 1"lex.ll"2838 case 185: 2839 YY_RULE_SETUP 2840 #line 412 "lex.ll" 2832 2841 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2833 2842 YY_BREAK 2834 case 18 5:2835 YY_RULE_SETUP 2836 #line 41 3"lex.ll"2843 case 186: 2844 YY_RULE_SETUP 2845 #line 414 "lex.ll" 2837 2846 ECHO; 2838 2847 YY_BREAK 2839 #line 284 0"Parser/lex.cc"2848 #line 2849 "Parser/lex.cc" 2840 2849 case YY_STATE_EOF(INITIAL): 2841 2850 case YY_STATE_EOF(COMMENT): … … 3134 3143 { 3135 3144 yy_current_state = (int) yy_def[yy_current_state]; 3136 if ( yy_current_state >= 90 5)3145 if ( yy_current_state >= 909 ) 3137 3146 yy_c = yy_meta[(unsigned int) yy_c]; 3138 3147 } … … 3162 3171 { 3163 3172 yy_current_state = (int) yy_def[yy_current_state]; 3164 if ( yy_current_state >= 90 5)3173 if ( yy_current_state >= 909 ) 3165 3174 yy_c = yy_meta[(unsigned int) yy_c]; 3166 3175 } 3167 3176 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3168 yy_is_jam = (yy_current_state == 90 4);3177 yy_is_jam = (yy_current_state == 908); 3169 3178 3170 3179 return yy_is_jam ? 0 : yy_current_state; … … 3812 3821 #define YYTABLES_NAME "yytables" 3813 3822 3814 #line 41 3"lex.ll"3823 #line 414 "lex.ll" 3815 3824 3816 3825 -
src/Parser/lex.ll
rbb82c03 r2162c2c 4 4 * The contents of this file are covered under the licence agreement in the 5 5 * file "LICENCE" distributed with Cforall. 6 * 7 * lex.l -- 8 * 6 * 7 * lex.l -- 8 * 9 9 * Author : Peter A. Buhr 10 10 * Created On : Sat Sep 22 08:58:10 2001 … … 258 258 trait { KEYWORD_RETURN(TRAIT); } // CFA 259 259 try { KEYWORD_RETURN(TRY); } // CFA 260 ttype { KEYWORD_RETURN(TTYPE); } // CFA 260 261 typedef { KEYWORD_RETURN(TYPEDEF); } 261 262 typeof { KEYWORD_RETURN(TYPEOF); } // GCC -
src/Parser/parser.cc
rbb82c03 r2162c2c 159 159 FTYPE = 291, 160 160 DTYPE = 292, 161 TRAIT = 293, 162 SIZEOF = 294, 163 OFFSETOF = 295, 164 ATTRIBUTE = 296, 165 EXTENSION = 297, 166 IF = 298, 167 ELSE = 299, 168 SWITCH = 300, 169 CASE = 301, 170 DEFAULT = 302, 171 DO = 303, 172 WHILE = 304, 173 FOR = 305, 174 BREAK = 306, 175 CONTINUE = 307, 176 GOTO = 308, 177 RETURN = 309, 178 CHOOSE = 310, 179 DISABLE = 311, 180 ENABLE = 312, 181 FALLTHRU = 313, 182 TRY = 314, 183 CATCH = 315, 184 CATCHRESUME = 316, 185 FINALLY = 317, 186 THROW = 318, 187 THROWRESUME = 319, 188 AT = 320, 189 ASM = 321, 190 ALIGNAS = 322, 191 ALIGNOF = 323, 192 ATOMIC = 324, 193 GENERIC = 325, 194 NORETURN = 326, 195 STATICASSERT = 327, 196 THREADLOCAL = 328, 197 IDENTIFIER = 329, 198 QUOTED_IDENTIFIER = 330, 199 TYPEDEFname = 331, 200 TYPEGENname = 332, 201 ATTR_IDENTIFIER = 333, 202 ATTR_TYPEDEFname = 334, 203 ATTR_TYPEGENname = 335, 204 INTEGERconstant = 336, 205 CHARACTERconstant = 337, 206 STRINGliteral = 338, 207 REALDECIMALconstant = 339, 208 REALFRACTIONconstant = 340, 209 FLOATINGconstant = 341, 210 ZERO = 342, 211 ONE = 343, 212 ARROW = 344, 213 ICR = 345, 214 DECR = 346, 215 LS = 347, 216 RS = 348, 217 LE = 349, 218 GE = 350, 219 EQ = 351, 220 NE = 352, 221 ANDAND = 353, 222 OROR = 354, 223 ELLIPSIS = 355, 224 MULTassign = 356, 225 DIVassign = 357, 226 MODassign = 358, 227 PLUSassign = 359, 228 MINUSassign = 360, 229 LSassign = 361, 230 RSassign = 362, 231 ANDassign = 363, 232 ERassign = 364, 233 ORassign = 365, 234 ATassign = 366, 235 THEN = 367 161 TTYPE = 293, 162 TRAIT = 294, 163 SIZEOF = 295, 164 OFFSETOF = 296, 165 ATTRIBUTE = 297, 166 EXTENSION = 298, 167 IF = 299, 168 ELSE = 300, 169 SWITCH = 301, 170 CASE = 302, 171 DEFAULT = 303, 172 DO = 304, 173 WHILE = 305, 174 FOR = 306, 175 BREAK = 307, 176 CONTINUE = 308, 177 GOTO = 309, 178 RETURN = 310, 179 CHOOSE = 311, 180 DISABLE = 312, 181 ENABLE = 313, 182 FALLTHRU = 314, 183 TRY = 315, 184 CATCH = 316, 185 CATCHRESUME = 317, 186 FINALLY = 318, 187 THROW = 319, 188 THROWRESUME = 320, 189 AT = 321, 190 ASM = 322, 191 ALIGNAS = 323, 192 ALIGNOF = 324, 193 ATOMIC = 325, 194 GENERIC = 326, 195 NORETURN = 327, 196 STATICASSERT = 328, 197 THREADLOCAL = 329, 198 IDENTIFIER = 330, 199 QUOTED_IDENTIFIER = 331, 200 TYPEDEFname = 332, 201 TYPEGENname = 333, 202 ATTR_IDENTIFIER = 334, 203 ATTR_TYPEDEFname = 335, 204 ATTR_TYPEGENname = 336, 205 INTEGERconstant = 337, 206 CHARACTERconstant = 338, 207 STRINGliteral = 339, 208 REALDECIMALconstant = 340, 209 REALFRACTIONconstant = 341, 210 FLOATINGconstant = 342, 211 ZERO = 343, 212 ONE = 344, 213 ARROW = 345, 214 ICR = 346, 215 DECR = 347, 216 LS = 348, 217 RS = 349, 218 LE = 350, 219 GE = 351, 220 EQ = 352, 221 NE = 353, 222 ANDAND = 354, 223 OROR = 355, 224 ELLIPSIS = 356, 225 MULTassign = 357, 226 DIVassign = 358, 227 MODassign = 359, 228 PLUSassign = 360, 229 MINUSassign = 361, 230 LSassign = 362, 231 RSassign = 363, 232 ANDassign = 364, 233 ERassign = 365, 234 ORassign = 366, 235 ATassign = 367, 236 THEN = 368 236 237 }; 237 238 #endif … … 272 273 #define FTYPE 291 273 274 #define DTYPE 292 274 #define TRAIT 293 275 #define SIZEOF 294 276 #define OFFSETOF 295 277 #define ATTRIBUTE 296 278 #define EXTENSION 297 279 #define IF 298 280 #define ELSE 299 281 #define SWITCH 300 282 #define CASE 301 283 #define DEFAULT 302 284 #define DO 303 285 #define WHILE 304 286 #define FOR 305 287 #define BREAK 306 288 #define CONTINUE 307 289 #define GOTO 308 290 #define RETURN 309 291 #define CHOOSE 310 292 #define DISABLE 311 293 #define ENABLE 312 294 #define FALLTHRU 313 295 #define TRY 314 296 #define CATCH 315 297 #define CATCHRESUME 316 298 #define FINALLY 317 299 #define THROW 318 300 #define THROWRESUME 319 301 #define AT 320 302 #define ASM 321 303 #define ALIGNAS 322 304 #define ALIGNOF 323 305 #define ATOMIC 324 306 #define GENERIC 325 307 #define NORETURN 326 308 #define STATICASSERT 327 309 #define THREADLOCAL 328 310 #define IDENTIFIER 329 311 #define QUOTED_IDENTIFIER 330 312 #define TYPEDEFname 331 313 #define TYPEGENname 332 314 #define ATTR_IDENTIFIER 333 315 #define ATTR_TYPEDEFname 334 316 #define ATTR_TYPEGENname 335 317 #define INTEGERconstant 336 318 #define CHARACTERconstant 337 319 #define STRINGliteral 338 320 #define REALDECIMALconstant 339 321 #define REALFRACTIONconstant 340 322 #define FLOATINGconstant 341 323 #define ZERO 342 324 #define ONE 343 325 #define ARROW 344 326 #define ICR 345 327 #define DECR 346 328 #define LS 347 329 #define RS 348 330 #define LE 349 331 #define GE 350 332 #define EQ 351 333 #define NE 352 334 #define ANDAND 353 335 #define OROR 354 336 #define ELLIPSIS 355 337 #define MULTassign 356 338 #define DIVassign 357 339 #define MODassign 358 340 #define PLUSassign 359 341 #define MINUSassign 360 342 #define LSassign 361 343 #define RSassign 362 344 #define ANDassign 363 345 #define ERassign 364 346 #define ORassign 365 347 #define ATassign 366 348 #define THEN 367 275 #define TTYPE 293 276 #define TRAIT 294 277 #define SIZEOF 295 278 #define OFFSETOF 296 279 #define ATTRIBUTE 297 280 #define EXTENSION 298 281 #define IF 299 282 #define ELSE 300 283 #define SWITCH 301 284 #define CASE 302 285 #define DEFAULT 303 286 #define DO 304 287 #define WHILE 305 288 #define FOR 306 289 #define BREAK 307 290 #define CONTINUE 308 291 #define GOTO 309 292 #define RETURN 310 293 #define CHOOSE 311 294 #define DISABLE 312 295 #define ENABLE 313 296 #define FALLTHRU 314 297 #define TRY 315 298 #define CATCH 316 299 #define CATCHRESUME 317 300 #define FINALLY 318 301 #define THROW 319 302 #define THROWRESUME 320 303 #define AT 321 304 #define ASM 322 305 #define ALIGNAS 323 306 #define ALIGNOF 324 307 #define ATOMIC 325 308 #define GENERIC 326 309 #define NORETURN 327 310 #define STATICASSERT 328 311 #define THREADLOCAL 329 312 #define IDENTIFIER 330 313 #define QUOTED_IDENTIFIER 331 314 #define TYPEDEFname 332 315 #define TYPEGENname 333 316 #define ATTR_IDENTIFIER 334 317 #define ATTR_TYPEDEFname 335 318 #define ATTR_TYPEGENname 336 319 #define INTEGERconstant 337 320 #define CHARACTERconstant 338 321 #define STRINGliteral 339 322 #define REALDECIMALconstant 340 323 #define REALFRACTIONconstant 341 324 #define FLOATINGconstant 342 325 #define ZERO 343 326 #define ONE 344 327 #define ARROW 345 328 #define ICR 346 329 #define DECR 347 330 #define LS 348 331 #define RS 349 332 #define LE 350 333 #define GE 351 334 #define EQ 352 335 #define NE 353 336 #define ANDAND 354 337 #define OROR 355 338 #define ELLIPSIS 356 339 #define MULTassign 357 340 #define DIVassign 358 341 #define MODassign 359 342 #define PLUSassign 360 343 #define MINUSassign 361 344 #define LSassign 362 345 #define RSassign 363 346 #define ANDassign 364 347 #define ERassign 365 348 #define ORassign 366 349 #define ATassign 367 350 #define THEN 368 349 351 350 352 … … 376 378 377 379 /* Line 293 of yacc.c */ 378 #line 3 79"Parser/parser.cc"380 #line 381 "Parser/parser.cc" 379 381 } YYSTYPE; 380 382 # define YYSTYPE_IS_TRIVIAL 1 … … 388 390 389 391 /* Line 343 of yacc.c */ 390 #line 39 1"Parser/parser.cc"392 #line 393 "Parser/parser.cc" 391 393 392 394 #ifdef short … … 607 609 #define YYFINAL 251 608 610 /* YYLAST -- Last index in YYTABLE. */ 609 #define YYLAST 10 624611 #define YYLAST 10466 610 612 611 613 /* YYNTOKENS -- Number of terminals. */ 612 #define YYNTOKENS 13 7614 #define YYNTOKENS 138 613 615 /* YYNNTS -- Number of nonterminals. */ 614 616 #define YYNNTS 243 615 617 /* YYNRULES -- Number of rules. */ 616 #define YYNRULES 75 7618 #define YYNRULES 758 617 619 /* YYNRULES -- Number of states. */ 618 #define YYNSTATES 154 0620 #define YYNSTATES 1541 619 621 620 622 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 621 623 #define YYUNDEFTOK 2 622 #define YYMAXUTOK 36 7624 #define YYMAXUTOK 368 623 625 624 626 #define YYTRANSLATE(YYX) \ … … 631 633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 632 634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 633 2, 2, 2, 12 5, 2, 2, 2, 128, 122, 2,634 11 3, 114, 121, 123, 120, 124, 117, 127, 2, 2,635 2, 2, 2, 2, 2, 2, 2, 2, 13 4, 136,636 1 29, 135, 130, 133, 2, 2, 2, 2, 2, 2,635 2, 2, 2, 126, 2, 2, 2, 129, 123, 2, 636 114, 115, 122, 124, 121, 125, 118, 128, 2, 2, 637 2, 2, 2, 2, 2, 2, 2, 2, 135, 137, 638 130, 136, 131, 134, 2, 2, 2, 2, 2, 2, 637 639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 638 640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 639 2, 11 5, 2, 116, 131, 2, 2, 2, 2, 2,641 2, 116, 2, 117, 132, 2, 2, 2, 2, 2, 640 642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 641 643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 642 2, 2, 2, 11 8, 132, 119, 126, 2, 2, 2,644 2, 2, 2, 119, 133, 120, 127, 2, 2, 2, 643 645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 644 646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 664 666 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 665 667 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 666 105, 106, 107, 108, 109, 110, 111, 112 668 105, 106, 107, 108, 109, 110, 111, 112, 113 667 669 }; 668 670 … … 721 723 1597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638, 722 724 1640, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671, 723 1672, 1677, 1680, 1682, 1684, 1686, 168 7, 1690, 1696, 1702,724 17 16, 1718, 1720, 1724, 1728, 1731, 1735, 1739, 1742, 1747,725 1749, 175 6, 1766, 1767, 1779, 1781, 1785, 1789, 1793, 1795,726 1797, 1 803, 1806, 1812, 1813, 1815, 1817, 1821, 1822, 1824,727 1826, 1828, 1830, 183 1, 1838, 1841, 1843, 1846, 1851, 1854,728 185 8, 1862, 1866, 1871, 1877, 1883, 1889, 1896, 1898, 1900,729 1902, 190 6, 1907, 1913, 1914, 1916, 1918, 1921, 1928, 1930,730 193 4, 1935, 1937, 1942, 1944, 1946, 1948, 1950, 1953, 1955,731 195 8, 1961, 1963, 1967, 1970, 1974, 1978, 1981, 1986, 1991,732 199 5, 2004, 2008, 2011, 2013, 2016, 2023, 2032, 2036, 2039,733 204 3, 2047, 2052, 2057, 2061, 2063, 2065, 2067, 2072, 2079,734 208 3, 2086, 2090, 2094, 2099, 2104, 2108, 2111, 2113, 2116,735 211 9, 2121, 2125, 2128, 2132, 2136, 2139, 2144, 2149, 2153,736 21 60, 2169, 2173, 2176, 2178, 2181, 2184, 2187, 2191, 2195,737 219 8, 2203, 2208, 2212, 2219, 2228, 2232, 2235, 2237, 2240,738 224 3, 2245, 2247, 2250, 2254, 2258, 2261, 2266, 2273, 2282,739 2284, 228 7, 2290, 2292, 2295, 2298, 2302, 2306, 2308, 2313,740 231 8, 2322, 2328, 2337, 2341, 2344, 2348, 2350, 2356, 2362,741 236 9, 2376, 2378, 2381, 2384, 2386, 2389, 2392, 2396, 2400,742 2402, 240 7, 2412, 2416, 2422, 2431, 2435, 2437, 2440, 2442,743 244 5, 2452, 2458, 2465, 2473, 2481, 2483, 2486, 2489, 2491,744 249 4, 2497, 2501, 2505, 2507, 2512, 2517, 2521, 2530, 2534,745 2536, 2538, 254 1, 2543, 2545, 2548, 2552, 2555, 2559, 2562,746 256 6, 2570, 2573, 2578, 2582, 2585, 2589, 2592, 2597, 2601,747 260 4, 2611, 2618, 2625, 2633, 2635, 2638, 2640, 2642, 2644,748 264 7, 2651, 2654, 2658, 2661, 2665, 2669, 2674, 2677, 2681,749 268 6, 2689, 2695, 2702, 2709, 2710, 2712, 2713725 1672, 1677, 1680, 1682, 1684, 1686, 1688, 1689, 1692, 1698, 726 1704, 1718, 1720, 1722, 1726, 1730, 1733, 1737, 1741, 1744, 727 1749, 1751, 1758, 1768, 1769, 1781, 1783, 1787, 1791, 1795, 728 1797, 1799, 1805, 1808, 1814, 1815, 1817, 1819, 1823, 1824, 729 1826, 1828, 1830, 1832, 1833, 1840, 1843, 1845, 1848, 1853, 730 1856, 1860, 1864, 1868, 1873, 1879, 1885, 1891, 1898, 1900, 731 1902, 1904, 1908, 1909, 1915, 1916, 1918, 1920, 1923, 1930, 732 1932, 1936, 1937, 1939, 1944, 1946, 1948, 1950, 1952, 1955, 733 1957, 1960, 1963, 1965, 1969, 1972, 1976, 1980, 1983, 1988, 734 1993, 1997, 2006, 2010, 2013, 2015, 2018, 2025, 2034, 2038, 735 2041, 2045, 2049, 2054, 2059, 2063, 2065, 2067, 2069, 2074, 736 2081, 2085, 2088, 2092, 2096, 2101, 2106, 2110, 2113, 2115, 737 2118, 2121, 2123, 2127, 2130, 2134, 2138, 2141, 2146, 2151, 738 2155, 2162, 2171, 2175, 2178, 2180, 2183, 2186, 2189, 2193, 739 2197, 2200, 2205, 2210, 2214, 2221, 2230, 2234, 2237, 2239, 740 2242, 2245, 2247, 2249, 2252, 2256, 2260, 2263, 2268, 2275, 741 2284, 2286, 2289, 2292, 2294, 2297, 2300, 2304, 2308, 2310, 742 2315, 2320, 2324, 2330, 2339, 2343, 2346, 2350, 2352, 2358, 743 2364, 2371, 2378, 2380, 2383, 2386, 2388, 2391, 2394, 2398, 744 2402, 2404, 2409, 2414, 2418, 2424, 2433, 2437, 2439, 2442, 745 2444, 2447, 2454, 2460, 2467, 2475, 2483, 2485, 2488, 2491, 746 2493, 2496, 2499, 2503, 2507, 2509, 2514, 2519, 2523, 2532, 747 2536, 2538, 2540, 2543, 2545, 2547, 2550, 2554, 2557, 2561, 748 2564, 2568, 2572, 2575, 2580, 2584, 2587, 2591, 2594, 2599, 749 2603, 2606, 2613, 2620, 2627, 2635, 2637, 2640, 2642, 2644, 750 2646, 2649, 2653, 2656, 2660, 2663, 2667, 2671, 2676, 2679, 751 2683, 2688, 2691, 2697, 2704, 2711, 2712, 2714, 2715 750 752 }; 751 753 … … 753 755 static const yytype_int16 yyrhs[] = 754 756 { 755 30 8, 0, -1, -1, -1, 81, -1, 84, -1, 85,756 -1, 8 6, -1, 82, -1, 74, -1, 78, -1, 144,757 -1, 7 4, -1, 78, -1, 74, -1, 144, -1, 87,758 -1, 8 8, -1, 146, -1, 83, -1, 146, 83, -1,759 7 4, -1, 144, -1, 174, -1, 113, 176, 114, -1,760 11 3, 180, 114, -1, 147, -1, 148, 115, 138, 171,761 1 39, 116, -1, 148, 113, 149, 114, -1, 148, 117,762 14 3, -1, 148, 117, 115, 138, 151, 139, 116, -1,763 14 8, 85, -1, 148, 89, 143, -1, 148, 89, 115,764 13 8, 151, 139, 116, -1, 148, 90, -1, 148, 91,765 -1, 11 3, 281, 114, 118, 285, 378, 119, -1, 148,766 11 8, 149, 119, -1, 150, -1, 149, 120, 150, -1,767 -1, 17 1, -1, 152, -1, 151, 120, 152, -1, 153,768 -1, 8 4, 152, -1, 84, 115, 138, 151, 139, 116,769 -1, 15 3, 117, 152, -1, 153, 117, 115, 138, 151,770 1 39, 116, -1, 153, 89, 152, -1, 153, 89, 115,771 13 8, 151, 139, 116, -1, 81, 154, -1, 86, 154,772 -1, 14 3, 154, -1, -1, 154, 85, -1, 148, -1,773 14 0, -1, 145, -1, 42, 158, -1, 156, 158, -1,774 15 7, 158, -1, 90, 155, -1, 91, 155, -1, 39,775 15 5, -1, 39, 113, 281, 114, -1, 68, 155, -1,776 6 8, 113, 281, 114, -1, 40, 113, 281, 120, 143,777 11 4, -1, 78, -1, 78, 113, 150, 114, -1, 78,778 11 3, 282, 114, -1, 121, -1, 122, -1, 123, -1,779 12 4, -1, 125, -1, 126, -1, 155, -1, 113, 281,780 11 4, 158, -1, 158, -1, 159, 121, 158, -1, 159,781 12 7, 158, -1, 159, 128, 158, -1, 159, -1, 160,782 12 3, 159, -1, 160, 124, 159, -1, 160, -1, 161,783 9 2, 160, -1, 161, 93, 160, -1, 161, -1, 162,784 1 29, 161, -1, 162, 130, 161, -1, 162, 94, 161,785 -1, 16 2, 95, 161, -1, 162, -1, 163, 96, 162,786 -1, 16 3, 97, 162, -1, 163, -1, 164, 122, 163,787 -1, 16 4, -1, 165, 131, 164, -1, 165, -1, 166,788 13 2, 165, -1, 166, -1, 167, 98, 166, -1, 167,789 -1, 16 8, 99, 167, -1, 168, -1, 168, 133, 176,790 13 4, 169, -1, 168, 133, 134, 169, -1, 169, -1,791 1 69, -1, 155, 173, 171, -1, -1, 171, -1, 135,792 -1, 11 1, -1, 101, -1, 102, -1, 103, -1, 104,793 -1, 10 5, -1, 106, -1, 107, -1, 108, -1, 109,794 -1, 11 0, -1, 115, 138, 120, 175, 139, 116, -1,795 11 5, 138, 171, 120, 175, 139, 116, -1, 172, -1,796 17 5, 120, 172, -1, 171, -1, 176, 120, 171, -1,797 -1, 17 6, -1, 179, -1, 180, -1, 184, -1, 185,798 -1, 19 7, -1, 199, -1, 200, -1, 205, -1, 131,799 14 8, 118, 149, 119, 136, -1, 74, 134, 318, 178,800 -1, 11 8, 119, -1, 118, 138, 138, 216, 181, 139,801 1 19, -1, 182, -1, 181, 138, 182, -1, 219, -1,802 4 2, 219, -1, 314, -1, 178, 139, -1, 178, -1,803 18 3, 178, -1, 177, 136, -1, 43, 113, 176, 114,804 17 8, -1, 43, 113, 176, 114, 178, 44, 178, -1,805 4 5, 113, 176, 114, 190, -1, 45, 113, 176, 114,806 11 8, 138, 212, 191, 119, -1, 55, 113, 176, 114,807 19 0, -1, 55, 113, 176, 114, 118, 138, 212, 193,808 1 19, -1, 170, -1, 170, 100, 170, -1, 316, -1,809 18 6, -1, 187, 120, 186, -1, 46, 187, 134, -1,810 4 7, 134, -1, 188, -1, 189, 188, -1, 189, 178,811 -1, -1, 19 2, -1, 189, 183, -1, 192, 189, 183,812 -1, -1, 19 4, -1, 189, 196, -1, 189, 183, 195,813 -1, 19 4, 189, 196, -1, 194, 189, 183, 195, -1,814 -1, 19 6, -1, 58, -1, 58, 136, -1, 49, 113,815 17 6, 114, 178, -1, 48, 178, 49, 113, 176, 114,816 13 6, -1, 50, 113, 138, 198, 114, 178, -1, 177,817 1 39, 136, 177, 136, 177, -1, 219, 177, 136, 177,818 -1, 5 3, 74, 136, -1, 53, 121, 176, 136, -1,819 5 2, 136, -1, 52, 74, 136, -1, 51, 136, -1,820 5 1, 74, 136, -1, 54, 177, 136, -1, 63, 172,821 13 6, -1, 64, 172, 136, -1, 64, 172, 65, 171,822 13 6, -1, 59, 180, 201, -1, 59, 180, 203, -1,823 59, 180, 201, 203, -1, 202, -1, 60, 113, 100,824 11 4, 180, -1, 202, 60, 113, 100, 114, 180, -1,825 6 1, 113, 100, 114, 180, -1, 202, 61, 113, 100,826 11 4, 180, -1, 60, 113, 138, 138, 204, 139, 114,827 18 0, 139, -1, 202, 60, 113, 138, 138, 204, 139,828 11 4, 180, 139, -1, 61, 113, 138, 138, 204, 139,829 11 4, 180, 139, -1, 202, 61, 113, 138, 138, 204,830 1 39, 114, 180, 139, -1, 62, 180, -1, 232, -1,831 23 2, 315, -1, 232, 363, -1, 372, 143, -1, 372,832 -1, 6 6, 206, 113, 145, 114, 136, -1, 66, 206,833 11 3, 145, 134, 207, 114, 136, -1, 66, 206, 113,834 14 5, 134, 207, 134, 207, 114, 136, -1, 66, 206,835 11 3, 145, 134, 207, 134, 207, 134, 210, 114, 136,836 -1, 6 6, 206, 53, 113, 145, 134, 134, 207, 134,837 21 0, 134, 211, 114, 136, -1, -1, 11, -1, -1,838 20 8, -1, 209, -1, 208, 120, 209, -1, 145, 113,839 17 0, 114, -1, 115, 170, 116, 145, 113, 170, 114,840 -1, -1, 14 5, -1, 210, 120, 145, -1, 143, -1,841 21 1, 120, 143, -1, 139, -1, 213, -1, 219, -1,842 21 3, 138, 219, -1, 139, -1, 215, -1, 229, -1,843 21 5, 138, 229, -1, -1, 217, -1, 31, 218, 136,844 -1, 21 7, 31, 218, 136, -1, 280, -1, 218, 120,845 28 0, -1, 220, -1, 229, -1, 221, 139, 136, -1,846 22 6, 139, 136, -1, 223, 139, 136, -1, 299, 139,847 13 6, -1, 302, 139, 136, -1, 222, 283, -1, 238,848 22 2, 283, -1, 221, 139, 120, 138, 278, 283, -1,849 37 3, 278, 317, -1, 376, 278, 317, -1, 234, 376,850 27 8, 317, -1, 224, -1, 234, 224, -1, 238, 224,851 -1, 23 8, 234, 224, -1, 223, 139, 120, 138, 278,852 -1, 37 6, 278, 113, 138, 266, 139, 114, -1, 225,853 27 8, 113, 138, 266, 139, 114, -1, 115, 138, 268,854 1 39, 116, -1, 115, 138, 268, 139, 120, 138, 269,855 1 39, 116, -1, 3, 222, -1, 3, 224, -1, 226,856 1 39, 120, 138, 143, -1, 3, 232, 315, -1, 227,857 1 39, 120, 138, 315, -1, 234, 3, 232, 315, -1,858 23 2, 3, 315, -1, 232, 3, 234, 315, -1, 3,859 14 3, 135, 171, -1, 228, 139, 120, 138, 143, 135,860 17 1, -1, 230, 139, 136, -1, 227, 139, 136, -1,861 22 8, 139, 136, -1, 246, 139, 136, -1, 231, 315,862 31 7, 283, -1, 230, 120, 318, 315, 317, 283, -1,863 24 2, -1, 246, -1, 248, -1, 289, -1, 243, -1,864 24 7, -1, 249, -1, 290, -1, -1, 234, -1, 235,865 -1, 23 4, 235, -1, 236, -1, 320, -1, 10, -1,866 12, -1, 11, -1, 14, -1, 69, -1, -1, 13,867 11 3, 237, 292, 114, -1, 239, -1, 234, 239, -1,868 23 8, 234, 239, -1, 240, -1, 239, 240, -1, 5,757 309, 0, -1, -1, -1, 82, -1, 85, -1, 86, 758 -1, 87, -1, 83, -1, 75, -1, 79, -1, 145, 759 -1, 75, -1, 79, -1, 75, -1, 145, -1, 88, 760 -1, 89, -1, 147, -1, 84, -1, 147, 84, -1, 761 75, -1, 145, -1, 175, -1, 114, 177, 115, -1, 762 114, 181, 115, -1, 148, -1, 149, 116, 139, 172, 763 140, 117, -1, 149, 114, 150, 115, -1, 149, 118, 764 144, -1, 149, 118, 116, 139, 152, 140, 117, -1, 765 149, 86, -1, 149, 90, 144, -1, 149, 90, 116, 766 139, 152, 140, 117, -1, 149, 91, -1, 149, 92, 767 -1, 114, 282, 115, 119, 286, 379, 120, -1, 149, 768 119, 150, 120, -1, 151, -1, 150, 121, 151, -1, 769 -1, 172, -1, 153, -1, 152, 121, 153, -1, 154, 770 -1, 85, 153, -1, 85, 116, 139, 152, 140, 117, 771 -1, 154, 118, 153, -1, 154, 118, 116, 139, 152, 772 140, 117, -1, 154, 90, 153, -1, 154, 90, 116, 773 139, 152, 140, 117, -1, 82, 155, -1, 87, 155, 774 -1, 144, 155, -1, -1, 155, 86, -1, 149, -1, 775 141, -1, 146, -1, 43, 159, -1, 157, 159, -1, 776 158, 159, -1, 91, 156, -1, 92, 156, -1, 40, 777 156, -1, 40, 114, 282, 115, -1, 69, 156, -1, 778 69, 114, 282, 115, -1, 41, 114, 282, 121, 144, 779 115, -1, 79, -1, 79, 114, 151, 115, -1, 79, 780 114, 283, 115, -1, 122, -1, 123, -1, 124, -1, 781 125, -1, 126, -1, 127, -1, 156, -1, 114, 282, 782 115, 159, -1, 159, -1, 160, 122, 159, -1, 160, 783 128, 159, -1, 160, 129, 159, -1, 160, -1, 161, 784 124, 160, -1, 161, 125, 160, -1, 161, -1, 162, 785 93, 161, -1, 162, 94, 161, -1, 162, -1, 163, 786 130, 162, -1, 163, 131, 162, -1, 163, 95, 162, 787 -1, 163, 96, 162, -1, 163, -1, 164, 97, 163, 788 -1, 164, 98, 163, -1, 164, -1, 165, 123, 164, 789 -1, 165, -1, 166, 132, 165, -1, 166, -1, 167, 790 133, 166, -1, 167, -1, 168, 99, 167, -1, 168, 791 -1, 169, 100, 168, -1, 169, -1, 169, 134, 177, 792 135, 170, -1, 169, 134, 135, 170, -1, 170, -1, 793 170, -1, 156, 174, 172, -1, -1, 172, -1, 136, 794 -1, 112, -1, 102, -1, 103, -1, 104, -1, 105, 795 -1, 106, -1, 107, -1, 108, -1, 109, -1, 110, 796 -1, 111, -1, 116, 139, 121, 176, 140, 117, -1, 797 116, 139, 172, 121, 176, 140, 117, -1, 173, -1, 798 176, 121, 173, -1, 172, -1, 177, 121, 172, -1, 799 -1, 177, -1, 180, -1, 181, -1, 185, -1, 186, 800 -1, 198, -1, 200, -1, 201, -1, 206, -1, 132, 801 149, 119, 150, 120, 137, -1, 75, 135, 319, 179, 802 -1, 119, 120, -1, 119, 139, 139, 217, 182, 140, 803 120, -1, 183, -1, 182, 139, 183, -1, 220, -1, 804 43, 220, -1, 315, -1, 179, 140, -1, 179, -1, 805 184, 179, -1, 178, 137, -1, 44, 114, 177, 115, 806 179, -1, 44, 114, 177, 115, 179, 45, 179, -1, 807 46, 114, 177, 115, 191, -1, 46, 114, 177, 115, 808 119, 139, 213, 192, 120, -1, 56, 114, 177, 115, 809 191, -1, 56, 114, 177, 115, 119, 139, 213, 194, 810 120, -1, 171, -1, 171, 101, 171, -1, 317, -1, 811 187, -1, 188, 121, 187, -1, 47, 188, 135, -1, 812 48, 135, -1, 189, -1, 190, 189, -1, 190, 179, 813 -1, -1, 193, -1, 190, 184, -1, 193, 190, 184, 814 -1, -1, 195, -1, 190, 197, -1, 190, 184, 196, 815 -1, 195, 190, 197, -1, 195, 190, 184, 196, -1, 816 -1, 197, -1, 59, -1, 59, 137, -1, 50, 114, 817 177, 115, 179, -1, 49, 179, 50, 114, 177, 115, 818 137, -1, 51, 114, 139, 199, 115, 179, -1, 178, 819 140, 137, 178, 137, 178, -1, 220, 178, 137, 178, 820 -1, 54, 75, 137, -1, 54, 122, 177, 137, -1, 821 53, 137, -1, 53, 75, 137, -1, 52, 137, -1, 822 52, 75, 137, -1, 55, 178, 137, -1, 64, 173, 823 137, -1, 65, 173, 137, -1, 65, 173, 66, 172, 824 137, -1, 60, 181, 202, -1, 60, 181, 204, -1, 825 60, 181, 202, 204, -1, 203, -1, 61, 114, 101, 826 115, 181, -1, 203, 61, 114, 101, 115, 181, -1, 827 62, 114, 101, 115, 181, -1, 203, 62, 114, 101, 828 115, 181, -1, 61, 114, 139, 139, 205, 140, 115, 829 181, 140, -1, 203, 61, 114, 139, 139, 205, 140, 830 115, 181, 140, -1, 62, 114, 139, 139, 205, 140, 831 115, 181, 140, -1, 203, 62, 114, 139, 139, 205, 832 140, 115, 181, 140, -1, 63, 181, -1, 233, -1, 833 233, 316, -1, 233, 364, -1, 373, 144, -1, 373, 834 -1, 67, 207, 114, 146, 115, 137, -1, 67, 207, 835 114, 146, 135, 208, 115, 137, -1, 67, 207, 114, 836 146, 135, 208, 135, 208, 115, 137, -1, 67, 207, 837 114, 146, 135, 208, 135, 208, 135, 211, 115, 137, 838 -1, 67, 207, 54, 114, 146, 135, 135, 208, 135, 839 211, 135, 212, 115, 137, -1, -1, 11, -1, -1, 840 209, -1, 210, -1, 209, 121, 210, -1, 146, 114, 841 171, 115, -1, 116, 171, 117, 146, 114, 171, 115, 842 -1, -1, 146, -1, 211, 121, 146, -1, 144, -1, 843 212, 121, 144, -1, 140, -1, 214, -1, 220, -1, 844 214, 139, 220, -1, 140, -1, 216, -1, 230, -1, 845 216, 139, 230, -1, -1, 218, -1, 31, 219, 137, 846 -1, 218, 31, 219, 137, -1, 281, -1, 219, 121, 847 281, -1, 221, -1, 230, -1, 222, 140, 137, -1, 848 227, 140, 137, -1, 224, 140, 137, -1, 300, 140, 849 137, -1, 303, 140, 137, -1, 223, 284, -1, 239, 850 223, 284, -1, 222, 140, 121, 139, 279, 284, -1, 851 374, 279, 318, -1, 377, 279, 318, -1, 235, 377, 852 279, 318, -1, 225, -1, 235, 225, -1, 239, 225, 853 -1, 239, 235, 225, -1, 224, 140, 121, 139, 279, 854 -1, 377, 279, 114, 139, 267, 140, 115, -1, 226, 855 279, 114, 139, 267, 140, 115, -1, 116, 139, 269, 856 140, 117, -1, 116, 139, 269, 140, 121, 139, 270, 857 140, 117, -1, 3, 223, -1, 3, 225, -1, 227, 858 140, 121, 139, 144, -1, 3, 233, 316, -1, 228, 859 140, 121, 139, 316, -1, 235, 3, 233, 316, -1, 860 233, 3, 316, -1, 233, 3, 235, 316, -1, 3, 861 144, 136, 172, -1, 229, 140, 121, 139, 144, 136, 862 172, -1, 231, 140, 137, -1, 228, 140, 137, -1, 863 229, 140, 137, -1, 247, 140, 137, -1, 232, 316, 864 318, 284, -1, 231, 121, 319, 316, 318, 284, -1, 865 243, -1, 247, -1, 249, -1, 290, -1, 244, -1, 866 248, -1, 250, -1, 291, -1, -1, 235, -1, 236, 867 -1, 235, 236, -1, 237, -1, 321, -1, 10, -1, 868 12, -1, 11, -1, 14, -1, 70, -1, -1, 13, 869 114, 238, 293, 115, -1, 240, -1, 235, 240, -1, 870 239, 235, 240, -1, 241, -1, 240, 241, -1, 5, 869 871 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 870 -1, 7 1, -1, 73, -1, 16, -1, 21, -1, 20,872 -1, 72, -1, 74, -1, 16, -1, 21, -1, 20, 871 873 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 872 874 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 873 -1, 24, -1, 25, -1, 24 3, -1, 238, 243, -1,874 24 2, 240, -1, 242, 240, 234, -1, 242, 240, 243,875 -1, 24 4, -1, 233, 245, 233, -1, 241, -1, 234,876 24 1, -1, 244, 235, -1, 244, 241, -1, 30, 113,877 28 2, 114, -1, 30, 113, 176, 114, -1, 80, 113,878 28 2, 114, -1, 80, 113, 176, 114, -1, 247, -1,879 23 8, 247, -1, 246, 240, -1, 246, 240, 234, -1,880 25 0, -1, 234, 250, -1, 247, 235, -1, 249, -1,881 23 8, 249, -1, 248, 240, -1, 248, 240, 234, -1,882 7 6, -1, 234, 76, -1, 249, 235, -1, 251, -1,883 26 2, -1, 253, 118, 254, 119, -1, 253, 280, -1,884 -1, 25 3, 280, 252, 118, 254, 119, -1, 253, 113,885 29 8, 114, 118, 254, 119, -1, 253, 291, -1, 33,886 31 8, -1, 34, 318, -1, -1, 254, 255, -1, 256,887 13 6, -1, 42, 256, 136, -1, 257, 136, -1, 42,888 25 7, 136, -1, 372, -1, 372, 280, -1, 256, 120,889 28 0, -1, 256, 120, -1, 232, 258, -1, 257, 120,890 31 8, 258, -1, -1, 260, -1, 324, 259, -1, 337,891 2 59, -1, 363, -1, -1, 260, -1, 134, 170, -1,892 32, 31 8, -1, 261, 118, 264, 378, 119, -1, 261,893 28 0, -1, -1, 261, 280, 263, 118, 264, 378, 119,894 -1, 28 0, 265, -1, 264, 120, 280, 265, -1, -1,895 13 5, 170, -1, -1, 267, -1, 269, -1, 268, -1,896 26 8, 139, 120, 138, 269, -1, 269, 139, 120, 138,897 10 0, -1, 268, 139, 120, 138, 100, -1, 273, -1,898 2 69, 139, 120, 138, 273, -1, 268, 139, 120, 138,899 27 3, -1, 268, 139, 120, 138, 269, 139, 120, 138,900 27 3, -1, 274, -1, 269, 139, 120, 138, 274, -1,901 -1, 27 1, -1, 272, -1, 272, 139, 120, 138, 100,902 -1, 27 6, -1, 275, -1, 272, 139, 120, 138, 276,903 -1, 27 2, 139, 120, 138, 275, -1, 275, -1, 368,904 27 8, 379, -1, 376, 278, 379, -1, 234, 376, 278,905 3 79, -1, 224, -1, 276, -1, 368, -1, 376, -1,906 23 4, 376, -1, 377, -1, 231, 342, 379, -1, 231,907 34 6, 379, -1, 231, -1, 231, 357, -1, 143, -1,908 27 7, 120, 143, -1, 141, -1, 76, -1, 77, -1,909 14 2, -1, 76, -1, 77, -1, 143, -1, 76, -1,910 7 7, -1, 372, -1, 232, -1, 232, 363, -1, 372,911 -1, 37 7, -1, 232, -1, 232, 351, -1, -1, 135,912 28 4, -1, 111, 284, -1, 171, -1, 118, 285, 378,913 1 19, -1, -1, 284, -1, 286, 284, -1, 285, 120,914 28 4, -1, 285, 120, 286, 284, -1, 287, 134, -1,915 28 0, 134, -1, 288, -1, 287, 288, -1, 117, 280,916 -1, 11 5, 138, 171, 139, 116, -1, 115, 138, 316,917 1 39, 116, -1, 115, 138, 170, 100, 170, 139, 116,918 -1, 11 7, 115, 138, 151, 139, 116, -1, 290, -1,919 23 8, 290, -1, 289, 240, -1, 289, 240, 234, -1,920 29 1, -1, 234, 291, -1, 290, 235, -1, 77, 113,921 29 8, 114, -1, 293, 379, -1, 292, 120, 293, 379,922 -1, -1, 29 5, 280, 294, 296, -1, 232, 342, -1,923 35, -1, 37, -1, 36, -1, -1, 296, 297, -1,924 132, 280, 113, 298, 114, -1, 132, 118, 138, 304,925 1 19, -1, 132, 113, 138, 292, 139, 114, 118, 138,926 304, 119, 113, 298, 114, -1, 282, -1, 171, -1,927 298, 120, 282, -1, 298, 120, 171, -1, 35, 300,928 -1, 239, 35, 300, -1, 299, 120, 300, -1, 301,929 296, -1, 301, 296, 135, 282, -1, 280, -1, 279,930 113, 138, 292, 139, 114, -1, 38, 280, 113, 138,931 292, 139, 114, 118, 119, -1, -1, 38, 280, 113,932 138, 292, 139, 114, 118, 303, 304, 119, -1, 305,933 -1, 30 4, 138, 305, -1, 306, 139, 136, -1, 307,934 139, 136, -1, 222, -1, 224, -1, 306, 139, 120,935 1 38, 278, -1, 232, 315, -1, 307, 139, 120, 138,936 315, -1, -1, 309, -1, 311, -1, 309, 138, 311,937 -1, -1, 309, -1, 219, -1, 313, -1, 205, -1,938 -1, 5, 83, 312, 118, 310, 119, -1, 42, 311,939 -1, 314, -1, 329, 180, -1, 333, 138, 214, 180,940 -1, 223, 180, -1, 231, 329, 180, -1, 234, 329,941 180, -1, 238, 329, 180, -1, 238, 234, 329, 180,942 -1, 231, 333, 138, 214, 180, -1, 234, 333, 138,943 214, 180, -1, 238, 333, 138, 214, 180, -1, 238,944 234, 333, 138, 214, 180, -1, 324, -1, 337, -1,945 3 29, -1, 170, 126, 170, -1, -1, 66, 113, 145,946 114, 318, -1, -1, 319, -1, 320, -1, 319, 320,947 -1, 41, 113, 113, 321, 114, 114, -1, 322, -1,948 32 1, 120, 322, -1, -1, 323, -1, 323, 113, 177,949 114, -1, 278, -1, 240, -1, 241, -1, 235, -1,950 325, 318, -1, 326, -1, 327, 318, -1, 328, 318,951 -1, 141, -1, 113, 325, 114, -1, 156, 324, -1,952 156, 234, 324, -1, 113, 326, 114, -1, 325, 355,953 -1, 113, 326, 114, 355, -1, 113, 327, 114, 356,954 -1, 113, 327, 114, -1, 113, 326, 114, 113, 138,955 270, 139, 114, -1, 113, 328, 114, -1, 330, 318,956 -1, 331, -1, 332, 318, -1, 325, 113, 138, 270,957 139, 114, -1, 113, 331, 114, 113, 138, 270, 139,958 114, -1, 113, 330, 114, -1, 156, 329, -1, 156,959 234, 329, -1, 113, 331, 114, -1, 113, 331, 114,960 3 55, -1, 113, 332, 114, 356, -1, 113, 332, 114,961 -1, 334, -1, 335, -1, 336, -1, 325, 113, 277,962 114, -1, 113, 335, 114, 113, 277, 114, -1, 113,963 334, 114, -1, 156, 333, -1, 156, 234, 333, -1,964 113, 335, 114, -1, 113, 335, 114, 355, -1, 113,965 336, 114, 356, -1, 113, 336, 114, -1, 338, 318,966 -1, 339, -1, 340, 318, -1, 341, 318, -1, 347,967 -1, 113, 338, 114, -1, 156, 337, -1, 156, 234,968 337, -1, 113, 339, 114, -1, 338, 355, -1, 113,969 339, 114, 355, -1, 113, 340, 114, 356, -1, 113,970 340, 114, -1, 338, 113, 138, 270, 139, 114, -1,971 11 3, 339, 114, 113, 138, 270, 139, 114, -1, 113,972 341, 114, -1, 325, 318, -1, 343, -1, 344, 318,973 -1, 345, 318, -1, 156, 342, -1, 156, 234, 342,974 -1, 113, 343, 114, -1, 325, 361, -1, 113, 343,975 114, 3 55, -1, 113, 344, 114, 356, -1, 113, 344,976 114, -1, 325, 113, 138, 270, 139, 114, -1, 113,977 343, 114, 113, 138, 270, 139, 114, -1, 113, 345,978 114, -1, 347, 318, -1, 348, -1, 349, 318, -1,979 3 50, 318, -1, 76, -1, 77, -1, 156, 346, -1,980 156, 234, 346, -1, 113, 348, 114, -1, 347, 361,981 -1, 113, 348, 114, 361, -1, 347, 113, 138, 270,982 139, 114, -1, 113, 348, 114, 113, 138, 270, 139,983 114, -1, 352, -1, 353, 318, -1, 354, 318, -1,984 156, -1, 156, 234, -1, 156, 351, -1, 156, 234,985 351, -1, 113, 352, 114, -1, 355, -1, 113, 352,986 114, 35 5, -1, 113, 353, 114, 356, -1, 113, 353,987 114, -1, 113, 138, 270, 139, 114, -1, 113, 352,988 114, 113, 138, 270, 139, 114, -1, 113, 354, 114,989 -1, 115, 116, -1, 115, 116, 356, -1, 356, -1,990 115, 138, 171, 139, 116, -1, 115, 138, 121, 139,991 1 16, -1, 356, 115, 138, 171, 139, 116, -1, 356,992 115, 138, 121, 139, 116, -1, 358, -1, 359, 318,993 -1, 360, 318, -1, 156, -1, 156, 234, -1, 156,994 357, -1, 156, 234, 357, -1, 113, 358, 114, -1,995 361, -1, 113, 358, 114, 361, -1, 113, 359, 114,996 3 56, -1, 113, 359, 114, -1, 113, 138, 270, 139,997 114, -1, 113, 358, 114, 113, 138, 270, 139, 114,998 -1, 113, 360, 114, -1, 362, -1, 362, 356, -1,999 35 6, -1, 115, 116, -1, 115, 138, 234, 121, 139,1000 1 16, -1, 115, 138, 234, 139, 116, -1, 115, 138,1001 234, 171, 139, 116, -1, 115, 138, 7, 233, 171,1002 139, 116, -1, 115, 138, 234, 7, 171, 139, 116,1003 -1, 364, -1, 365, 318, -1, 366, 318, -1, 156,1004 -1, 15 6, 234, -1, 156, 363, -1, 156, 234, 363,1005 -1, 113, 364, 114, -1, 355, -1, 113, 364, 114,1006 3 55, -1, 113, 365, 114, 356, -1, 113, 365, 114,1007 -1, 113, 364, 114, 113, 138, 270, 139, 114, -1,1008 11 3, 366, 114, -1, 368, -1, 376, -1, 234, 376,1009 -1, 369, -1, 370, -1, 156, 232, -1, 234, 156,1010 23 2, -1, 156, 377, -1, 234, 156, 377, -1, 156,1011 367, -1, 234, 156, 367, -1, 115, 116, 232, -1,1012 371, 232, -1, 115, 116, 356, 232, -1, 371, 356,1013 232, -1, 356, 232, -1, 115, 116, 369, -1, 371,1014 369, -1, 115, 116, 356, 369, -1, 371, 356, 369,1015 -1, 356, 369, -1, 115, 138, 234, 121, 139, 116,1016 -1, 115, 138, 234, 171, 139, 116, -1, 115, 138,1017 238, 171, 139, 116, -1, 115, 138, 238, 234, 171,1018 139, 116, -1, 376, -1, 234, 376, -1, 373, -1,1019 374, -1, 375, -1, 156, 232, -1, 234, 156, 232,1020 -1, 156, 377, -1, 234, 156, 377, -1, 156, 372,1021 -1, 234, 156, 372, -1, 115, 116, 232, -1, 115,1022 116, 356, 232, -1, 356, 232, -1, 115, 116, 374,1023 -1, 115, 116, 356, 374, -1, 356, 374, -1, 115,1024 138, 269, 139, 116, -1, 376, 113, 138, 266, 139,1025 114, -1, 225, 113, 138, 266, 139, 114, -1, -1,1026 120, -1, -1, 135, 171, -1875 -1, 24, -1, 25, -1, 244, -1, 239, 244, -1, 876 243, 241, -1, 243, 241, 235, -1, 243, 241, 244, 877 -1, 245, -1, 234, 246, 234, -1, 242, -1, 235, 878 242, -1, 245, 236, -1, 245, 242, -1, 30, 114, 879 283, 115, -1, 30, 114, 177, 115, -1, 81, 114, 880 283, 115, -1, 81, 114, 177, 115, -1, 248, -1, 881 239, 248, -1, 247, 241, -1, 247, 241, 235, -1, 882 251, -1, 235, 251, -1, 248, 236, -1, 250, -1, 883 239, 250, -1, 249, 241, -1, 249, 241, 235, -1, 884 77, -1, 235, 77, -1, 250, 236, -1, 252, -1, 885 263, -1, 254, 119, 255, 120, -1, 254, 281, -1, 886 -1, 254, 281, 253, 119, 255, 120, -1, 254, 114, 887 299, 115, 119, 255, 120, -1, 254, 292, -1, 33, 888 319, -1, 34, 319, -1, -1, 255, 256, -1, 257, 889 137, -1, 43, 257, 137, -1, 258, 137, -1, 43, 890 258, 137, -1, 373, -1, 373, 281, -1, 257, 121, 891 281, -1, 257, 121, -1, 233, 259, -1, 258, 121, 892 319, 259, -1, -1, 261, -1, 325, 260, -1, 338, 893 260, -1, 364, -1, -1, 261, -1, 135, 171, -1, 894 32, 319, -1, 262, 119, 265, 379, 120, -1, 262, 895 281, -1, -1, 262, 281, 264, 119, 265, 379, 120, 896 -1, 281, 266, -1, 265, 121, 281, 266, -1, -1, 897 136, 171, -1, -1, 268, -1, 270, -1, 269, -1, 898 269, 140, 121, 139, 270, -1, 270, 140, 121, 139, 899 101, -1, 269, 140, 121, 139, 101, -1, 274, -1, 900 270, 140, 121, 139, 274, -1, 269, 140, 121, 139, 901 274, -1, 269, 140, 121, 139, 270, 140, 121, 139, 902 274, -1, 275, -1, 270, 140, 121, 139, 275, -1, 903 -1, 272, -1, 273, -1, 273, 140, 121, 139, 101, 904 -1, 277, -1, 276, -1, 273, 140, 121, 139, 277, 905 -1, 273, 140, 121, 139, 276, -1, 276, -1, 369, 906 279, 380, -1, 377, 279, 380, -1, 235, 377, 279, 907 380, -1, 225, -1, 277, -1, 369, -1, 377, -1, 908 235, 377, -1, 378, -1, 232, 343, 380, -1, 232, 909 347, 380, -1, 232, -1, 232, 358, -1, 144, -1, 910 278, 121, 144, -1, 142, -1, 77, -1, 78, -1, 911 143, -1, 77, -1, 78, -1, 144, -1, 77, -1, 912 78, -1, 373, -1, 233, -1, 233, 364, -1, 373, 913 -1, 378, -1, 233, -1, 233, 352, -1, -1, 136, 914 285, -1, 112, 285, -1, 172, -1, 119, 286, 379, 915 120, -1, -1, 285, -1, 287, 285, -1, 286, 121, 916 285, -1, 286, 121, 287, 285, -1, 288, 135, -1, 917 281, 135, -1, 289, -1, 288, 289, -1, 118, 281, 918 -1, 116, 139, 172, 140, 117, -1, 116, 139, 317, 919 140, 117, -1, 116, 139, 171, 101, 171, 140, 117, 920 -1, 118, 116, 139, 152, 140, 117, -1, 291, -1, 921 239, 291, -1, 290, 241, -1, 290, 241, 235, -1, 922 292, -1, 235, 292, -1, 291, 236, -1, 78, 114, 923 299, 115, -1, 294, 380, -1, 293, 121, 294, 380, 924 -1, -1, 296, 281, 295, 297, -1, 233, 343, -1, 925 35, -1, 37, -1, 36, -1, 38, -1, -1, 297, 926 298, -1, 133, 281, 114, 299, 115, -1, 133, 119, 927 139, 305, 120, -1, 133, 114, 139, 293, 140, 115, 928 119, 139, 305, 120, 114, 299, 115, -1, 283, -1, 929 172, -1, 299, 121, 283, -1, 299, 121, 172, -1, 930 35, 301, -1, 240, 35, 301, -1, 300, 121, 301, 931 -1, 302, 297, -1, 302, 297, 136, 283, -1, 281, 932 -1, 280, 114, 139, 293, 140, 115, -1, 39, 281, 933 114, 139, 293, 140, 115, 119, 120, -1, -1, 39, 934 281, 114, 139, 293, 140, 115, 119, 304, 305, 120, 935 -1, 306, -1, 305, 139, 306, -1, 307, 140, 137, 936 -1, 308, 140, 137, -1, 223, -1, 225, -1, 307, 937 140, 121, 139, 279, -1, 233, 316, -1, 308, 140, 938 121, 139, 316, -1, -1, 310, -1, 312, -1, 310, 939 139, 312, -1, -1, 310, -1, 220, -1, 314, -1, 940 206, -1, -1, 5, 84, 313, 119, 311, 120, -1, 941 43, 312, -1, 315, -1, 330, 181, -1, 334, 139, 942 215, 181, -1, 224, 181, -1, 232, 330, 181, -1, 943 235, 330, 181, -1, 239, 330, 181, -1, 239, 235, 944 330, 181, -1, 232, 334, 139, 215, 181, -1, 235, 945 334, 139, 215, 181, -1, 239, 334, 139, 215, 181, 946 -1, 239, 235, 334, 139, 215, 181, -1, 325, -1, 947 338, -1, 330, -1, 171, 127, 171, -1, -1, 67, 948 114, 146, 115, 319, -1, -1, 320, -1, 321, -1, 949 320, 321, -1, 42, 114, 114, 322, 115, 115, -1, 950 323, -1, 322, 121, 323, -1, -1, 324, -1, 324, 951 114, 178, 115, -1, 279, -1, 241, -1, 242, -1, 952 236, -1, 326, 319, -1, 327, -1, 328, 319, -1, 953 329, 319, -1, 142, -1, 114, 326, 115, -1, 157, 954 325, -1, 157, 235, 325, -1, 114, 327, 115, -1, 955 326, 356, -1, 114, 327, 115, 356, -1, 114, 328, 956 115, 357, -1, 114, 328, 115, -1, 114, 327, 115, 957 114, 139, 271, 140, 115, -1, 114, 329, 115, -1, 958 331, 319, -1, 332, -1, 333, 319, -1, 326, 114, 959 139, 271, 140, 115, -1, 114, 332, 115, 114, 139, 960 271, 140, 115, -1, 114, 331, 115, -1, 157, 330, 961 -1, 157, 235, 330, -1, 114, 332, 115, -1, 114, 962 332, 115, 356, -1, 114, 333, 115, 357, -1, 114, 963 333, 115, -1, 335, -1, 336, -1, 337, -1, 326, 964 114, 278, 115, -1, 114, 336, 115, 114, 278, 115, 965 -1, 114, 335, 115, -1, 157, 334, -1, 157, 235, 966 334, -1, 114, 336, 115, -1, 114, 336, 115, 356, 967 -1, 114, 337, 115, 357, -1, 114, 337, 115, -1, 968 339, 319, -1, 340, -1, 341, 319, -1, 342, 319, 969 -1, 348, -1, 114, 339, 115, -1, 157, 338, -1, 970 157, 235, 338, -1, 114, 340, 115, -1, 339, 356, 971 -1, 114, 340, 115, 356, -1, 114, 341, 115, 357, 972 -1, 114, 341, 115, -1, 339, 114, 139, 271, 140, 973 115, -1, 114, 340, 115, 114, 139, 271, 140, 115, 974 -1, 114, 342, 115, -1, 326, 319, -1, 344, -1, 975 345, 319, -1, 346, 319, -1, 157, 343, -1, 157, 976 235, 343, -1, 114, 344, 115, -1, 326, 362, -1, 977 114, 344, 115, 356, -1, 114, 345, 115, 357, -1, 978 114, 345, 115, -1, 326, 114, 139, 271, 140, 115, 979 -1, 114, 344, 115, 114, 139, 271, 140, 115, -1, 980 114, 346, 115, -1, 348, 319, -1, 349, -1, 350, 981 319, -1, 351, 319, -1, 77, -1, 78, -1, 157, 982 347, -1, 157, 235, 347, -1, 114, 349, 115, -1, 983 348, 362, -1, 114, 349, 115, 362, -1, 348, 114, 984 139, 271, 140, 115, -1, 114, 349, 115, 114, 139, 985 271, 140, 115, -1, 353, -1, 354, 319, -1, 355, 986 319, -1, 157, -1, 157, 235, -1, 157, 352, -1, 987 157, 235, 352, -1, 114, 353, 115, -1, 356, -1, 988 114, 353, 115, 356, -1, 114, 354, 115, 357, -1, 989 114, 354, 115, -1, 114, 139, 271, 140, 115, -1, 990 114, 353, 115, 114, 139, 271, 140, 115, -1, 114, 991 355, 115, -1, 116, 117, -1, 116, 117, 357, -1, 992 357, -1, 116, 139, 172, 140, 117, -1, 116, 139, 993 122, 140, 117, -1, 357, 116, 139, 172, 140, 117, 994 -1, 357, 116, 139, 122, 140, 117, -1, 359, -1, 995 360, 319, -1, 361, 319, -1, 157, -1, 157, 235, 996 -1, 157, 358, -1, 157, 235, 358, -1, 114, 359, 997 115, -1, 362, -1, 114, 359, 115, 362, -1, 114, 998 360, 115, 357, -1, 114, 360, 115, -1, 114, 139, 999 271, 140, 115, -1, 114, 359, 115, 114, 139, 271, 1000 140, 115, -1, 114, 361, 115, -1, 363, -1, 363, 1001 357, -1, 357, -1, 116, 117, -1, 116, 139, 235, 1002 122, 140, 117, -1, 116, 139, 235, 140, 117, -1, 1003 116, 139, 235, 172, 140, 117, -1, 116, 139, 7, 1004 234, 172, 140, 117, -1, 116, 139, 235, 7, 172, 1005 140, 117, -1, 365, -1, 366, 319, -1, 367, 319, 1006 -1, 157, -1, 157, 235, -1, 157, 364, -1, 157, 1007 235, 364, -1, 114, 365, 115, -1, 356, -1, 114, 1008 365, 115, 356, -1, 114, 366, 115, 357, -1, 114, 1009 366, 115, -1, 114, 365, 115, 114, 139, 271, 140, 1010 115, -1, 114, 367, 115, -1, 369, -1, 377, -1, 1011 235, 377, -1, 370, -1, 371, -1, 157, 233, -1, 1012 235, 157, 233, -1, 157, 378, -1, 235, 157, 378, 1013 -1, 157, 368, -1, 235, 157, 368, -1, 116, 117, 1014 233, -1, 372, 233, -1, 116, 117, 357, 233, -1, 1015 372, 357, 233, -1, 357, 233, -1, 116, 117, 370, 1016 -1, 372, 370, -1, 116, 117, 357, 370, -1, 372, 1017 357, 370, -1, 357, 370, -1, 116, 139, 235, 122, 1018 140, 117, -1, 116, 139, 235, 172, 140, 117, -1, 1019 116, 139, 239, 172, 140, 117, -1, 116, 139, 239, 1020 235, 172, 140, 117, -1, 377, -1, 235, 377, -1, 1021 374, -1, 375, -1, 376, -1, 157, 233, -1, 235, 1022 157, 233, -1, 157, 378, -1, 235, 157, 378, -1, 1023 157, 373, -1, 235, 157, 373, -1, 116, 117, 233, 1024 -1, 116, 117, 357, 233, -1, 357, 233, -1, 116, 1025 117, 375, -1, 116, 117, 357, 375, -1, 357, 375, 1026 -1, 116, 139, 270, 140, 117, -1, 377, 114, 139, 1027 267, 140, 115, -1, 226, 114, 139, 267, 140, 115, 1028 -1, -1, 121, -1, -1, 136, 172, -1 1027 1029 }; 1028 1030 … … 1079 1081 1810, 1811, 1816, 1817, 1823, 1825, 1828, 1830, 1832, 1855, 1080 1082 1856, 1858, 1860, 1865, 1866, 1868, 1873, 1878, 1879, 1885, 1081 1884, 1888, 1892, 1894, 1896, 1 902, 1903, 1908, 1913, 1915,1082 19 20, 1922, 1923, 1925, 1930, 1932, 1934, 1939, 1941, 1946,1083 19 51, 1959, 1965, 1964, 1978, 1979, 1984, 1985, 1989, 1994,1084 199 9, 2007, 2012, 2023, 2024, 2029, 2030, 2036, 2037, 2041,1085 204 2, 2043, 2046, 2045, 2056, 2065, 2071, 2077, 2086, 2092,1086 209 8, 2104, 2110, 2118, 2124, 2132, 2138, 2147, 2148, 2149,1087 215 3, 2159, 2160, 2166, 2167, 2171, 2172, 2177, 2183, 2184,1088 218 7, 2189, 2190, 2194, 2195, 2196, 2197, 2231, 2233, 2234,1089 2236, 22 41, 2246, 2251, 2253, 2255, 2260, 2262, 2264, 2266,1090 22 71, 2273, 2282, 2284, 2285, 2290, 2292, 2294, 2299, 2301,1091 2303, 230 8, 2310, 2312, 2321, 2322, 2323, 2327, 2329, 2331,1092 233 6, 2338, 2340, 2345, 2347, 2349, 2364, 2366, 2367, 2369,1093 237 4, 2375, 2380, 2382, 2384, 2389, 2391, 2393, 2395, 2400,1094 2402, 2404, 24 14, 2416, 2417, 2419, 2424, 2426, 2428, 2433,1095 2435, 2437, 2439, 244 4, 2446, 2448, 2479, 2481, 2482, 2484,1096 248 9, 2494, 2502, 2504, 2506, 2511, 2513, 2518, 2520, 2534,1097 253 5, 2537, 2542, 2544, 2546, 2548, 2550, 2555, 2556, 2558,1098 2560, 256 5, 2567, 2569, 2575, 2577, 2579, 2583, 2585, 2587,1099 2589, 2 603, 2604, 2606, 2611, 2613, 2615, 2617, 2619, 2624,1100 262 5, 2627, 2629, 2634, 2636, 2638, 2644, 2645, 2647, 2656,1101 265 9, 2661, 2664, 2666, 2668, 2681, 2682, 2684, 2689, 2691,1102 2693, 2695, 2697, 2 702, 2703, 2705, 2707, 2712, 2714, 2722,1103 272 3, 2724, 2729, 2730, 2734, 2736, 2738, 2740, 2742, 2744,1104 27 51, 2753, 2755, 2757, 2759, 2762, 2764, 2766, 2768, 2770,1105 277 5, 2777, 2779, 2784, 2810, 2811, 2813, 2817, 2818, 2822,1106 2824, 2826, 2828, 2830, 2832, 283 9, 2841, 2843, 2845, 2847,1107 2849, 285 4, 2861, 2863, 2881, 2883, 2888, 28891083 1884, 1888, 1892, 1894, 1896, 1898, 1904, 1905, 1910, 1915, 1084 1917, 1922, 1924, 1925, 1927, 1932, 1934, 1936, 1941, 1943, 1085 1948, 1953, 1961, 1967, 1966, 1980, 1981, 1986, 1987, 1991, 1086 1996, 2001, 2009, 2014, 2025, 2026, 2031, 2032, 2038, 2039, 1087 2043, 2044, 2045, 2048, 2047, 2058, 2067, 2073, 2079, 2088, 1088 2094, 2100, 2106, 2112, 2120, 2126, 2134, 2140, 2149, 2150, 1089 2151, 2155, 2161, 2162, 2168, 2169, 2173, 2174, 2179, 2185, 1090 2186, 2189, 2191, 2192, 2196, 2197, 2198, 2199, 2233, 2235, 1091 2236, 2238, 2243, 2248, 2253, 2255, 2257, 2262, 2264, 2266, 1092 2268, 2273, 2275, 2284, 2286, 2287, 2292, 2294, 2296, 2301, 1093 2303, 2305, 2310, 2312, 2314, 2323, 2324, 2325, 2329, 2331, 1094 2333, 2338, 2340, 2342, 2347, 2349, 2351, 2366, 2368, 2369, 1095 2371, 2376, 2377, 2382, 2384, 2386, 2391, 2393, 2395, 2397, 1096 2402, 2404, 2406, 2416, 2418, 2419, 2421, 2426, 2428, 2430, 1097 2435, 2437, 2439, 2441, 2446, 2448, 2450, 2481, 2483, 2484, 1098 2486, 2491, 2496, 2504, 2506, 2508, 2513, 2515, 2520, 2522, 1099 2536, 2537, 2539, 2544, 2546, 2548, 2550, 2552, 2557, 2558, 1100 2560, 2562, 2567, 2569, 2571, 2577, 2579, 2581, 2585, 2587, 1101 2589, 2591, 2605, 2606, 2608, 2613, 2615, 2617, 2619, 2621, 1102 2626, 2627, 2629, 2631, 2636, 2638, 2640, 2646, 2647, 2649, 1103 2658, 2661, 2663, 2666, 2668, 2670, 2683, 2684, 2686, 2691, 1104 2693, 2695, 2697, 2699, 2704, 2705, 2707, 2709, 2714, 2716, 1105 2724, 2725, 2726, 2731, 2732, 2736, 2738, 2740, 2742, 2744, 1106 2746, 2753, 2755, 2757, 2759, 2761, 2764, 2766, 2768, 2770, 1107 2772, 2777, 2779, 2781, 2786, 2812, 2813, 2815, 2819, 2820, 1108 2824, 2826, 2828, 2830, 2832, 2834, 2841, 2843, 2845, 2847, 1109 2849, 2851, 2856, 2863, 2865, 2883, 2885, 2890, 2891 1108 1110 }; 1109 1111 #endif … … 1119 1121 "SIGNED", "UNSIGNED", "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", 1120 1122 "IMAGINARY", "TYPEOF", "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", 1121 "FTYPE", "DTYPE", "T RAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE",1123 "FTYPE", "DTYPE", "TTYPE", "TRAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE", 1122 1124 "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT", "DO", "WHILE", 1123 1125 "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE", "DISABLE", … … 1240 1242 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1241 1243 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 1242 365, 366, 367, 40, 41, 91, 93, 46, 123, 125,1243 44, 42, 38, 43, 45, 33, 126, 47, 37, 60,1244 6 2, 94, 124, 63, 58, 61, 591244 365, 366, 367, 368, 40, 41, 91, 93, 46, 123, 1245 125, 44, 42, 38, 43, 45, 33, 126, 47, 37, 1246 60, 62, 94, 124, 63, 58, 61, 59 1245 1247 }; 1246 1248 # endif … … 1249 1251 static const yytype_uint16 yyr1[] = 1250 1252 { 1251 0, 13 7, 138, 139, 140, 140, 140, 140, 140, 141,1252 14 1, 141, 142, 142, 143, 143, 144, 144, 145, 146,1253 14 6, 147, 147, 147, 147, 147, 148, 148, 148, 148,1254 14 8, 148, 148, 148, 148, 148, 148, 148, 149, 149,1255 15 0, 150, 151, 151, 152, 152, 152, 152, 152, 152,1256 15 2, 153, 153, 153, 154, 154, 155, 155, 155, 155,1257 15 5, 155, 155, 155, 155, 155, 155, 155, 155, 155,1258 15 5, 155, 156, 156, 157, 157, 157, 157, 158, 158,1259 1 59, 159, 159, 159, 160, 160, 160, 161, 161, 161,1260 16 2, 162, 162, 162, 162, 163, 163, 163, 164, 164,1261 16 5, 165, 166, 166, 167, 167, 168, 168, 169, 169,1262 1 69, 170, 171, 171, 172, 172, 173, 173, 173, 173,1263 17 3, 173, 173, 173, 173, 173, 173, 173, 174, 174,1264 17 5, 175, 176, 176, 177, 177, 178, 178, 178, 178,1265 17 8, 178, 178, 178, 178, 179, 180, 180, 181, 181,1266 18 2, 182, 182, 182, 183, 183, 184, 185, 185, 185,1267 18 5, 185, 185, 186, 186, 186, 187, 187, 188, 188,1268 1 89, 189, 190, 191, 191, 192, 192, 193, 193, 194,1269 19 4, 194, 194, 195, 195, 196, 196, 197, 197, 197,1270 19 8, 198, 199, 199, 199, 199, 199, 199, 199, 199,1271 199, 199, 200, 200, 200, 201, 201, 201, 201, 201,1272 20 2, 202, 202, 202, 203, 204, 204, 204, 204, 204,1273 20 5, 205, 205, 205, 205, 206, 206, 207, 207, 208,1274 20 8, 209, 209, 210, 210, 210, 211, 211, 212, 212,1275 21 3, 213, 214, 214, 215, 215, 216, 216, 217, 217,1276 21 8, 218, 219, 219, 220, 220, 220, 220, 220, 221,1277 22 1, 221, 222, 222, 222, 223, 223, 223, 223, 223,1278 22 4, 224, 225, 225, 226, 226, 226, 227, 227, 227,1279 22 7, 227, 228, 228, 229, 229, 229, 229, 230, 230,1280 23 1, 231, 231, 231, 232, 232, 232, 232, 233, 233,1281 23 4, 234, 235, 235, 236, 236, 236, 236, 236, 237,1282 23 6, 238, 238, 238, 239, 239, 240, 240, 240, 240,1283 24 0, 240, 240, 240, 241, 241, 241, 241, 241, 241,1284 24 1, 241, 241, 241, 241, 241, 241, 241, 241, 242,1285 24 2, 242, 242, 242, 243, 243, 244, 244, 244, 244,1286 24 5, 245, 245, 245, 246, 246, 246, 246, 247, 247,1287 24 7, 248, 248, 248, 248, 249, 249, 249, 250, 250,1288 25 1, 251, 252, 251, 251, 251, 253, 253, 254, 254,1289 25 5, 255, 255, 255, 256, 256, 256, 256, 257, 257,1290 25 8, 258, 258, 258, 258, 259, 259, 260, 261, 262,1291 26 2, 263, 262, 264, 264, 265, 265, 266, 266, 267,1292 26 7, 267, 267, 267, 268, 268, 268, 268, 269, 269,1293 27 0, 270, 271, 271, 272, 272, 272, 272, 273, 273,1294 27 3, 273, 273, 274, 274, 274, 274, 274, 275, 275,1295 27 6, 276, 277, 277, 278, 278, 278, 279, 279, 279,1296 28 0, 280, 280, 281, 281, 281, 282, 282, 282, 282,1297 28 3, 283, 283, 284, 284, 285, 285, 285, 285, 285,1298 28 6, 286, 287, 287, 288, 288, 288, 288, 288, 289,1299 2 89, 289, 289, 290, 290, 290, 291, 292, 292, 294,1300 29 3, 293, 295, 295, 295, 296, 296, 297, 297, 297,1301 298, 29 8, 298, 298, 299, 299, 299, 300, 300, 301,1302 30 1, 302, 303, 302, 304, 304, 305, 305, 306, 306,1303 30 6, 307, 307, 308, 308, 309, 309, 310, 310, 311,1304 31 1, 311, 312, 311, 311, 313, 313, 313, 314, 314,1305 31 4, 314, 314, 314, 314, 314, 314, 315, 315, 315,1306 316, 317, 31 7, 318, 318, 319, 319, 320, 321, 321,1307 322, 32 2, 322, 323, 323, 323, 323, 324, 324, 324,1308 32 4, 325, 325, 326, 326, 326, 327, 327, 327, 327,1309 328, 32 8, 329, 329, 329, 330, 330, 330, 331, 331,1310 33 1, 332, 332, 332, 333, 333, 333, 334, 334, 334,1311 335, 33 5, 335, 336, 336, 336, 337, 337, 337, 337,1312 338, 33 8, 339, 339, 339, 340, 340, 340, 340, 341,1313 34 1, 341, 342, 342, 342, 342, 343, 343, 343, 344,1314 34 4, 344, 344, 345, 345, 345, 346, 346, 346, 346,1315 347, 34 7, 348, 348, 348, 349, 349, 350, 350, 351,1316 35 1, 351, 352, 352, 352, 352, 352, 353, 353, 353,1317 35 3, 354, 354, 354, 355, 355, 355, 356, 356, 356,1318 35 6, 357, 357, 357, 358, 358, 358, 358, 358, 359,1319 3 59, 359, 359, 360, 360, 360, 361, 361, 361, 362,1320 36 2, 362, 362, 362, 362, 363, 363, 363, 364, 364,1321 36 4, 364, 364, 365, 365, 365, 365, 366, 366, 367,1322 36 7, 367, 368, 368, 369, 369, 369, 369, 369, 369,1323 370, 37 0, 370, 370, 370, 370, 370, 370, 370, 370,1324 371, 37 1, 371, 371, 372, 372, 372, 373, 373, 374,1325 37 4, 374, 374, 374, 374, 375, 375, 375, 375, 375,1326 37 5, 376, 377, 377, 378, 378, 379, 3791253 0, 138, 139, 140, 141, 141, 141, 141, 141, 142, 1254 142, 142, 143, 143, 144, 144, 145, 145, 146, 147, 1255 147, 148, 148, 148, 148, 148, 149, 149, 149, 149, 1256 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 1257 151, 151, 152, 152, 153, 153, 153, 153, 153, 153, 1258 153, 154, 154, 154, 155, 155, 156, 156, 156, 156, 1259 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 1260 156, 156, 157, 157, 158, 158, 158, 158, 159, 159, 1261 160, 160, 160, 160, 161, 161, 161, 162, 162, 162, 1262 163, 163, 163, 163, 163, 164, 164, 164, 165, 165, 1263 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, 1264 170, 171, 172, 172, 173, 173, 174, 174, 174, 174, 1265 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, 1266 176, 176, 177, 177, 178, 178, 179, 179, 179, 179, 1267 179, 179, 179, 179, 179, 180, 181, 181, 182, 182, 1268 183, 183, 183, 183, 184, 184, 185, 186, 186, 186, 1269 186, 186, 186, 187, 187, 187, 188, 188, 189, 189, 1270 190, 190, 191, 192, 192, 193, 193, 194, 194, 195, 1271 195, 195, 195, 196, 196, 197, 197, 198, 198, 198, 1272 199, 199, 200, 200, 200, 200, 200, 200, 200, 200, 1273 200, 200, 201, 201, 201, 202, 202, 202, 202, 202, 1274 203, 203, 203, 203, 204, 205, 205, 205, 205, 205, 1275 206, 206, 206, 206, 206, 207, 207, 208, 208, 209, 1276 209, 210, 210, 211, 211, 211, 212, 212, 213, 213, 1277 214, 214, 215, 215, 216, 216, 217, 217, 218, 218, 1278 219, 219, 220, 220, 221, 221, 221, 221, 221, 222, 1279 222, 222, 223, 223, 223, 224, 224, 224, 224, 224, 1280 225, 225, 226, 226, 227, 227, 227, 228, 228, 228, 1281 228, 228, 229, 229, 230, 230, 230, 230, 231, 231, 1282 232, 232, 232, 232, 233, 233, 233, 233, 234, 234, 1283 235, 235, 236, 236, 237, 237, 237, 237, 237, 238, 1284 237, 239, 239, 239, 240, 240, 241, 241, 241, 241, 1285 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 1286 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 1287 243, 243, 243, 243, 244, 244, 245, 245, 245, 245, 1288 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 1289 248, 249, 249, 249, 249, 250, 250, 250, 251, 251, 1290 252, 252, 253, 252, 252, 252, 254, 254, 255, 255, 1291 256, 256, 256, 256, 257, 257, 257, 257, 258, 258, 1292 259, 259, 259, 259, 259, 260, 260, 261, 262, 263, 1293 263, 264, 263, 265, 265, 266, 266, 267, 267, 268, 1294 268, 268, 268, 268, 269, 269, 269, 269, 270, 270, 1295 271, 271, 272, 272, 273, 273, 273, 273, 274, 274, 1296 274, 274, 274, 275, 275, 275, 275, 275, 276, 276, 1297 277, 277, 278, 278, 279, 279, 279, 280, 280, 280, 1298 281, 281, 281, 282, 282, 282, 283, 283, 283, 283, 1299 284, 284, 284, 285, 285, 286, 286, 286, 286, 286, 1300 287, 287, 288, 288, 289, 289, 289, 289, 289, 290, 1301 290, 290, 290, 291, 291, 291, 292, 293, 293, 295, 1302 294, 294, 296, 296, 296, 296, 297, 297, 298, 298, 1303 298, 299, 299, 299, 299, 300, 300, 300, 301, 301, 1304 302, 302, 303, 304, 303, 305, 305, 306, 306, 307, 1305 307, 307, 308, 308, 309, 309, 310, 310, 311, 311, 1306 312, 312, 312, 313, 312, 312, 314, 314, 314, 315, 1307 315, 315, 315, 315, 315, 315, 315, 315, 316, 316, 1308 316, 317, 318, 318, 319, 319, 320, 320, 321, 322, 1309 322, 323, 323, 323, 324, 324, 324, 324, &nb