Changeset 7756647
- Timestamp:
- Oct 13, 2016, 2:45:17 PM (9 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:
- 848ce71
- Parents:
- ac9ca96 (diff), d58a39a0 (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. - Files:
-
- 11 added
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/aaron_comp_II/comp_II.tex
rac9ca96 r7756647 400 400 401 401 \section{Expression Resolution} 402 \subsection{Analysis} 402 403 The expression resolution problem is determining an optimal match between some combination of argument interpretations and the parameter list of some overloaded instance of a function; the argument interpretations are produced by recursive invocations of expression resolution, where the base case is zero-argument functions (which are, for purposes of this discussion, semantically equivalent to named variables or constant literal expressions). 403 404 Assuming that the matching between a function's parameter list and a combination of argument interpretations can be done in $\bigO{p^k}$ time, where $p$ is the number of parameters and $k$ is some positive number, if there are $\bigO{i}$ valid interpretations for each subexpression, there will be $\bigO{i}$ candidate functions and $\bigO{i^p}$ possible argument combinations for each expression, so for a single recursive call expression resolution takes $\bigO{i^{p+1} \cdot p^k}$ time if it must compare all combinations, or $\bigO{i(p+1) \cdot p^k}$ time if argument-parameter matches can be chosen independently of each other. … … 409 410 The number of valid interpretations of any subexpression, $i$, is bounded by the number of types in the system, which is possibly infinite, though practical resolution algorithms for \CFA must be able to place some finite bound on $i$, possibly at the expense of type-system completeness. 410 411 412 \subsection{Expression Costs} 413 The expression resolution problem involves minimization of a cost function; loosely defined, this cost function is the number of implicit conversions in the top-level expression interpretation. 414 With more specificity, the \emph{cost} of a particular expression interpretation is a lexicographically-ordered tuple, where each element of the tuple corresponds to a particular kind of conversion. 415 In \CFA today, cost is a three-tuple including the number of unsafe conversions, the number of polymorphic parameter bindings, and the number of safe conversions. 416 These counts include conversions used in subexpression interpretations, as well as those necessary to satisfy the type assertions of any polymorphic functions included in the interpretation. 417 418 \begin{lstlisting} 419 void f(char, long); // $f_1$ - cost (2, 0, 1) 420 forall(otype T) void f(T, long); // $f_2$ - cost (0, 1, 1) 421 void f(long, long); // $f_{3a}$ - cost (0, 0, 2) 422 void f(int, float); // $f_{3b}$ - cost (0, 0, 2) 423 void f(int, long); // $f_4$ - cost (0, 0, 1) 424 425 f(7, 11); 426 \end{lstlisting} 427 428 In the example above, the expression resolves to $f_4$. 429 $f_1$ has an unsafe conversion (from ©int© to ©char©), and is thus the highest cost, followed by $f_2$, which has a polymorphic binding (from ©int© to ©T©). 430 Neither $f_{3a}$, $f_{3b}$, or $f_4$ match exactly with the type of the call expression (©void (*)(int, int)©), each involving safe conversions, but in this case $f_4$ is cheaper than $f_{3a}$, because it converts fewer arguments, and is also cheaper than $f_{3b}$, because ©long© is a closer match for ©int© than ©float© is. 431 If the declaration of $f_4$ was missing, the expression would be ambiguous, because the two single-step ©int©-to-©long© conversions in $f_{3a}$ cost the same as the one double-step ©int©-to-©float© conversion in $f_{3b}$. 432 433 In the course of this project I may modify the cost tuple,\footnote{I have considered adding an element to distinguish between cast expressions used as conversions and those used as type ascriptions, and another element to differentiate interpretations based on closer qualifier matches. The existing costing of polymorphic functions could also be made more precice than a bare count of parameter bindings.} but the essential nature of the cost calculation should remain the same. 434 435 \subsection{Objectives} 411 436 The research goal of this project is to develop a performant expression resolver for \CFA; this analysis suggests three primary areas of investigation to accomplish that end. 412 437 The first area of investigation is efficient argument-parameter matching; Bilson~\cite{Bilson03} mentions significant optimization opportunities available in the current literature to improve on the existing CFA compiler. -
src/Common/SemanticError.h
rac9ca96 r7756647 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 8 14:38:53 201513 // Update Count : 412 // Last Modified On : Sat Sep 24 15:13:42 2016 13 // Update Count : 5 14 14 // 15 15 … … 46 46 } 47 47 48 49 48 #endif // SEMANTICERROR_H 50 49 -
src/Common/module.mk
rac9ca96 r7756647 11 11 ## Created On : Mon Jun 1 17:49:17 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : T hu Aug 18 13:29:04201614 ## Update Count : 213 ## Last Modified On : Tue Sep 27 11:06:38 2016 14 ## Update Count : 4 15 15 ############################################################################### 16 16 17 17 SRC += Common/SemanticError.cc \ 18 18 Common/UniqueName.cc \ 19 Common/DebugMalloc.cc \ 19 20 Common/Assert.cc -
src/Common/utility.h
rac9ca96 r7756647 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 8 17:33:59201613 // Update Count : 2 212 // Last Modified On : Fri Sep 23 11:46:47 2016 13 // Update Count : 28 14 14 // 15 15 … … 25 25 #include <sstream> 26 26 #include <string> 27 #include <cassert> 27 28 28 29 template< typename T > … … 101 102 } // if 102 103 } // for 103 }104 105 static inline std::string assign_strptr( const std::string *str ) {106 if ( str == 0 ) {107 return "";108 } else {109 std::string tmp;110 tmp = *str;111 delete str;112 return tmp;113 } // if114 104 } 115 105 … … 141 131 142 132 template < typename T > 143 void toString_single 133 void toString_single( std::ostream & os, const T & value ) { 144 134 os << value; 145 135 } 146 136 147 137 template < typename T, typename... Params > 148 void toString_single 138 void toString_single( std::ostream & os, const T & value, const Params & ... params ) { 149 139 os << value; 150 140 toString_single( os, params ... ); … … 152 142 153 143 template < typename ... Params > 154 std::string toString 144 std::string toString( const Params & ... params ) { 155 145 std::ostringstream os; 156 146 toString_single( os, params... ); -
src/Makefile.am
rac9ca96 r7756647 11 11 ## Created On : Sun May 31 08:51:46 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Sat Aug 20 11:13:12 201614 ## Update Count : 7 113 ## Last Modified On : Sat Sep 24 15:03:52 2016 14 ## Update Count : 73 15 15 ############################################################################### 16 16 … … 40 40 cfa_cpplib_PROGRAMS = driver/cfa-cpp 41 41 driver_cfa_cpp_SOURCES = ${SRC} 42 driver_cfa_cpp_LDADD = ${LEXLIB} # yywrap42 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl # yywrap 43 43 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -rdynamic -I${abs_top_srcdir}/src/include 44 44 -
src/Makefile.in
rac9ca96 r7756647 98 98 Common/driver_cfa_cpp-SemanticError.$(OBJEXT) \ 99 99 Common/driver_cfa_cpp-UniqueName.$(OBJEXT) \ 100 Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT) \ 100 101 Common/driver_cfa_cpp-Assert.$(OBJEXT) \ 101 102 ControlStruct/driver_cfa_cpp-LabelGenerator.$(OBJEXT) \ … … 358 359 CodeGen/CodeGenerator.cc CodeGen/GenType.cc \ 359 360 CodeGen/FixNames.cc CodeGen/OperatorTable.cc \ 360 Common/SemanticError.cc Common/UniqueName.cc Common/Assert.cc \ 361 Common/SemanticError.cc Common/UniqueName.cc \ 362 Common/DebugMalloc.cc Common/Assert.cc \ 361 363 ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \ 362 364 ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \ … … 412 414 cfa_cpplibdir = ${libdir} 413 415 driver_cfa_cpp_SOURCES = ${SRC} 414 driver_cfa_cpp_LDADD = ${LEXLIB} # yywrap416 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl # yywrap 415 417 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -rdynamic -I${abs_top_srcdir}/src/include 416 418 all: $(BUILT_SOURCES) … … 512 514 Common/$(DEPDIR)/$(am__dirstamp) 513 515 Common/driver_cfa_cpp-UniqueName.$(OBJEXT): Common/$(am__dirstamp) \ 516 Common/$(DEPDIR)/$(am__dirstamp) 517 Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT): Common/$(am__dirstamp) \ 514 518 Common/$(DEPDIR)/$(am__dirstamp) 515 519 Common/driver_cfa_cpp-Assert.$(OBJEXT): Common/$(am__dirstamp) \ … … 784 788 -rm -f CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT) 785 789 -rm -f Common/driver_cfa_cpp-Assert.$(OBJEXT) 790 -rm -f Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT) 786 791 -rm -f Common/driver_cfa_cpp-SemanticError.$(OBJEXT) 787 792 -rm -f Common/driver_cfa_cpp-UniqueName.$(OBJEXT) … … 889 894 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po@am__quote@ 890 895 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Assert.Po@am__quote@ 896 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po@am__quote@ 891 897 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Po@am__quote@ 892 898 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-UniqueName.Po@am__quote@ … … 1125 1131 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi` 1126 1132 1133 Common/driver_cfa_cpp-DebugMalloc.o: Common/DebugMalloc.cc 1134 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-DebugMalloc.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo -c -o Common/driver_cfa_cpp-DebugMalloc.o `test -f 'Common/DebugMalloc.cc' || echo '$(srcdir)/'`Common/DebugMalloc.cc 1135 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po 1136 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/DebugMalloc.cc' object='Common/driver_cfa_cpp-DebugMalloc.o' libtool=no @AMDEPBACKSLASH@ 1137 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1138 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-DebugMalloc.o `test -f 'Common/DebugMalloc.cc' || echo '$(srcdir)/'`Common/DebugMalloc.cc 1139 1140 Common/driver_cfa_cpp-DebugMalloc.obj: Common/DebugMalloc.cc 1141 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-DebugMalloc.obj -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo -c -o Common/driver_cfa_cpp-DebugMalloc.obj `if test -f 'Common/DebugMalloc.cc'; then $(CYGPATH_W) 'Common/DebugMalloc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/DebugMalloc.cc'; fi` 1142 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Tpo Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po 1143 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Common/DebugMalloc.cc' object='Common/driver_cfa_cpp-DebugMalloc.obj' libtool=no @AMDEPBACKSLASH@ 1144 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1145 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/driver_cfa_cpp-DebugMalloc.obj `if test -f 'Common/DebugMalloc.cc'; then $(CYGPATH_W) 'Common/DebugMalloc.cc'; else $(CYGPATH_W) '$(srcdir)/Common/DebugMalloc.cc'; fi` 1146 1127 1147 Common/driver_cfa_cpp-Assert.o: Common/Assert.cc 1128 1148 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-Assert.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-Assert.Tpo -c -o Common/driver_cfa_cpp-Assert.o `test -f 'Common/Assert.cc' || echo '$(srcdir)/'`Common/Assert.cc -
src/Parser/DeclarationNode.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Sep 14 23:13:28 201613 // Update Count : 50212 // Last Modified On : Mon Oct 3 18:03:08 2016 13 // Update Count : 651 14 14 // 15 15 … … 31 31 32 32 // These must remain in the same order as the corresponding DeclarationNode enumerations. 33 const char * DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "NoStorageClass" };34 const char * DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic", "NoQualifier" };35 const char * DeclarationNode::basicTypeName[] = { "void", "_Bool", "char", "int", "float", "double", "long double", "NoBasicType" };36 const char * DeclarationNode::complexTypeName[] = { "_Complex", "_Imaginary", "NoComplexType" };37 const char * DeclarationNode::signednessName[] = { "signed", "unsigned", "NoSignedness" };38 const char * DeclarationNode::lengthName[] = { "short", "long", "long long", "NoLength" };39 const char * DeclarationNode::aggregateName[] = { "struct", "union", "context" };40 const char * DeclarationNode::typeClassName[] = { "otype", "dtype", "ftype" };41 const char * DeclarationNode::builtinTypeName[] = { "__builtin_va_list" };33 const char * DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "NoStorageClass" }; 34 const char * DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic", "NoQualifier" }; 35 const char * DeclarationNode::basicTypeName[] = { "void", "_Bool", "char", "int", "float", "double", "long double", "NoBasicType" }; 36 const char * DeclarationNode::complexTypeName[] = { "_Complex", "_Imaginary", "NoComplexType" }; 37 const char * DeclarationNode::signednessName[] = { "signed", "unsigned", "NoSignedness" }; 38 const char * DeclarationNode::lengthName[] = { "short", "long", "long long", "NoLength" }; 39 const char * DeclarationNode::aggregateName[] = { "struct", "union", "context" }; 40 const char * DeclarationNode::typeClassName[] = { "otype", "dtype", "ftype" }; 41 const char * DeclarationNode::builtinTypeName[] = { "__builtin_va_list" }; 42 42 43 43 UniqueName DeclarationNode::anonymous( "__anonymous" ); … … 46 46 47 47 DeclarationNode::DeclarationNode() : 48 type( 0),48 type( nullptr ), 49 49 storageClass( NoStorageClass ), 50 50 isInline( false ), 51 51 isNoreturn( false ), 52 bitfieldWidth( 0),53 initializer( 0),52 bitfieldWidth( nullptr ), 53 initializer( nullptr ), 54 54 hasEllipsis( false ), 55 55 linkage( ::linkage ), 56 56 extension( false ) { 57 variable.tyClass = DeclarationNode::Otype; 57 58 // variable.name = nullptr; 59 variable.tyClass = NoTypeClass; 58 60 variable.assertions = nullptr; 59 61 62 // attr.name = nullptr; 60 63 attr.expr = nullptr; 61 64 attr.type = nullptr; … … 63 66 64 67 DeclarationNode::~DeclarationNode() { 68 // delete attr.name; 65 69 delete attr.expr; 66 70 delete attr.type; 71 72 // delete variable.name; 73 delete variable.assertions; 74 67 75 delete type; 68 76 delete bitfieldWidth; … … 70 78 } 71 79 72 DeclarationNode * DeclarationNode::clone() const {73 DeclarationNode * newnode = new DeclarationNode;80 DeclarationNode * DeclarationNode::clone() const { 81 DeclarationNode * newnode = new DeclarationNode; 74 82 newnode->type = maybeClone( type ); 75 newnode->name = name ;83 newnode->name = name ? new string( *name ) : nullptr; 76 84 newnode->storageClass = storageClass; 77 85 newnode->isInline = isInline; … … 83 91 newnode->linkage = linkage; 84 92 93 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; 94 newnode->variable.tyClass = variable.tyClass; 85 95 newnode->variable.assertions = maybeClone( variable.assertions ); 86 newnode->variable.name = variable.name; 87 newnode->variable.tyClass = variable.tyClass; 88 96 97 // newnode->attr.name = attr.name ? new string( *attr.name ) : nullptr; 89 98 newnode->attr.expr = maybeClone( attr.expr ); 90 99 newnode->attr.type = maybeClone( attr.type ); … … 98 107 void DeclarationNode::print( std::ostream &os, int indent ) const { 99 108 os << string( indent, ' ' ); 100 if ( name == "" ) { 109 if ( name ) { 110 os << *name << ": "; 111 } else { 101 112 os << "unnamed: "; 102 } else {103 os << name << ": ";104 113 } // if 105 114 106 115 if ( linkage != LinkageSpec::Cforall ) { 107 os << LinkageSpec:: toString( linkage ) << " ";116 os << LinkageSpec::linkageName( linkage ) << " "; 108 117 } // if 109 118 … … 122 131 } // if 123 132 124 if ( initializer != 0) {133 if ( initializer ) { 125 134 os << endl << string( indent + 2, ' ' ) << "with initializer "; 126 135 initializer->printOneLine( os ); … … 139 148 } 140 149 141 DeclarationNode *DeclarationNode::newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle ) { 142 DeclarationNode *newnode = new DeclarationNode; 143 newnode->name = assign_strptr( name ); 144 150 DeclarationNode * DeclarationNode::newFunction( string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle ) { 151 DeclarationNode * newnode = new DeclarationNode; 152 newnode->name = name; 145 153 newnode->type = new TypeData( TypeData::Function ); 146 154 newnode->type->function.params = param; 147 155 newnode->type->function.newStyle = newStyle; 148 156 newnode->type->function.body = body; 149 typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID ); 157 // ignore unnamed routine declarations: void p( int (*)(int) ); 158 if ( newnode->name ) { 159 typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID ); 160 } // if 150 161 151 162 if ( body ) { … … 155 166 if ( ret ) { 156 167 newnode->type->base = ret->type; 157 ret->type = 0;168 ret->type = nullptr; 158 169 delete ret; 159 170 } // if … … 163 174 164 175 DeclarationNode * DeclarationNode::newQualifier( Qualifier q ) { 165 DeclarationNode * newnode = new DeclarationNode;176 DeclarationNode * newnode = new DeclarationNode; 166 177 newnode->type = new TypeData(); 167 178 newnode->type->qualifiers[ q ] = 1; … … 169 180 } // DeclarationNode::newQualifier 170 181 171 DeclarationNode * DeclarationNode::newForall( DeclarationNode * forall ) {172 DeclarationNode * newnode = new DeclarationNode;182 DeclarationNode * DeclarationNode::newForall( DeclarationNode * forall ) { 183 DeclarationNode * newnode = new DeclarationNode; 173 184 newnode->type = new TypeData( TypeData::Unknown ); 174 185 newnode->type->forall = forall; … … 177 188 178 189 DeclarationNode * DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) { 179 DeclarationNode *newnode = new DeclarationNode; 180 //switch (sc) { 181 // case Inline: newnode->isInline = true; break; 182 // case Noreturn: newnode->isNoreturn = true; break; 183 // default: newnode->storageClass = sc; break; 184 //} 190 DeclarationNode * newnode = new DeclarationNode; 185 191 newnode->storageClass = sc; 186 192 return newnode; … … 188 194 189 195 DeclarationNode * DeclarationNode::newBasicType( BasicType bt ) { 190 DeclarationNode * newnode = new DeclarationNode;196 DeclarationNode * newnode = new DeclarationNode; 191 197 newnode->type = new TypeData( TypeData::Basic ); 192 198 newnode->type->basictype = bt; … … 195 201 196 202 DeclarationNode * DeclarationNode::newComplexType( ComplexType ct ) { 197 DeclarationNode * newnode = new DeclarationNode;203 DeclarationNode * newnode = new DeclarationNode; 198 204 newnode->type = new TypeData( TypeData::Basic ); 199 205 newnode->type->complextype = ct; … … 202 208 203 209 DeclarationNode * DeclarationNode::newSignedNess( Signedness sn ) { 204 DeclarationNode * newnode = new DeclarationNode;210 DeclarationNode * newnode = new DeclarationNode; 205 211 newnode->type = new TypeData( TypeData::Basic ); 206 212 newnode->type->signedness = sn; … … 209 215 210 216 DeclarationNode * DeclarationNode::newLength( Length lnth ) { 211 DeclarationNode * newnode = new DeclarationNode;217 DeclarationNode * newnode = new DeclarationNode; 212 218 newnode->type = new TypeData( TypeData::Basic ); 213 219 newnode->type->length = lnth; … … 215 221 } // DeclarationNode::newLength 216 222 217 DeclarationNode * DeclarationNode::newFromTypedef( st d::string *name ) {218 DeclarationNode * newnode = new DeclarationNode;223 DeclarationNode * DeclarationNode::newFromTypedef( string * name ) { 224 DeclarationNode * newnode = new DeclarationNode; 219 225 newnode->type = new TypeData( TypeData::SymbolicInst ); 220 newnode->type->symbolic.name = assign_strptr( name );226 newnode->type->symbolic.name = name; 221 227 newnode->type->symbolic.isTypedef = true; 222 newnode->type->symbolic.params = 0;228 newnode->type->symbolic.params = nullptr; 223 229 return newnode; 224 230 } // DeclarationNode::newFromTypedef 225 231 226 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const st d::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) {227 DeclarationNode * newnode = new DeclarationNode;232 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body ) { 233 DeclarationNode * newnode = new DeclarationNode; 228 234 newnode->type = new TypeData( TypeData::Aggregate ); 229 235 newnode->type->aggregate.kind = kind; 230 newnode->type->aggregate.name = assign_strptr( name ); 231 if ( newnode->type->aggregate.name == "" ) { // anonymous aggregate ? 232 newnode->type->aggregate.name = anonymous.newName(); 236 if ( name ) { 237 newnode->type->aggregate.name = name; 238 } else { // anonymous aggregate ? 239 newnode->type->aggregate.name = new string( anonymous.newName() ); 233 240 } // if 234 241 newnode->type->aggregate.actuals = actuals; … … 238 245 } // DeclarationNode::newAggregate 239 246 240 DeclarationNode *DeclarationNode::newEnum( std::string *name, DeclarationNode *constants ) { 241 DeclarationNode *newnode = new DeclarationNode; 242 newnode->name = assign_strptr( name ); 247 DeclarationNode * DeclarationNode::newEnum( string * name, DeclarationNode * constants ) { 248 DeclarationNode * newnode = new DeclarationNode; 243 249 newnode->type = new TypeData( TypeData::Enum ); 244 newnode->type->enumeration.name = newnode->name; 245 if ( newnode->type->enumeration.name == "" ) { // anonymous enumeration ? 246 newnode->type->enumeration.name = DeclarationNode::anonymous.newName(); 250 if ( name ) { 251 newnode->type->enumeration.name = name; 252 } else { // anonymous aggregate ? 253 newnode->type->enumeration.name = new string( anonymous.newName() ); 247 254 } // if 248 255 newnode->type->enumeration.constants = constants; … … 250 257 } // DeclarationNode::newEnum 251 258 252 DeclarationNode * DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) {253 DeclarationNode * newnode = new DeclarationNode;254 newnode->name = assign_strptr( name );259 DeclarationNode * DeclarationNode::newEnumConstant( string * name, ExpressionNode * constant ) { 260 DeclarationNode * newnode = new DeclarationNode; 261 newnode->name = name; 255 262 newnode->enumeratorValue.reset( constant ); 256 typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );263 typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID ); 257 264 return newnode; 258 265 } // DeclarationNode::newEnumConstant 259 266 260 DeclarationNode * DeclarationNode::newName( std::string *name ) {261 DeclarationNode * newnode = new DeclarationNode;262 newnode->name = assign_strptr( name );267 DeclarationNode * DeclarationNode::newName( string * name ) { 268 DeclarationNode * newnode = new DeclarationNode; 269 newnode->name = name; 263 270 return newnode; 264 271 } // DeclarationNode::newName 265 272 266 DeclarationNode * DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) {267 DeclarationNode * newnode = new DeclarationNode;273 DeclarationNode * DeclarationNode::newFromTypeGen( string * name, ExpressionNode * params ) { 274 DeclarationNode * newnode = new DeclarationNode; 268 275 newnode->type = new TypeData( TypeData::SymbolicInst ); 269 newnode->type->symbolic.name = assign_strptr( name );276 newnode->type->symbolic.name = name; 270 277 newnode->type->symbolic.isTypedef = false; 271 278 newnode->type->symbolic.actuals = params; … … 273 280 } // DeclarationNode::newFromTypeGen 274 281 275 DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) { 276 DeclarationNode *newnode = new DeclarationNode; 277 newnode->name = assign_strptr( name ); 278 newnode->type = new TypeData( TypeData::Variable ); 282 DeclarationNode * DeclarationNode::newTypeParam( TypeClass tc, string * name ) { 283 DeclarationNode * newnode = new DeclarationNode; 284 newnode->type = nullptr; 285 assert( ! newnode->name ); 286 // newnode->variable.name = name; 287 newnode->name = name; 279 288 newnode->variable.tyClass = tc; 280 newnode->variable. name = newnode->name;289 newnode->variable.assertions = nullptr; 281 290 return newnode; 282 291 } // DeclarationNode::newTypeParam 283 292 284 DeclarationNode * DeclarationNode::newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) {285 DeclarationNode * newnode = new DeclarationNode;293 DeclarationNode * DeclarationNode::newTrait( const string * name, DeclarationNode * params, DeclarationNode * asserts ) { 294 DeclarationNode * newnode = new DeclarationNode; 286 295 newnode->type = new TypeData( TypeData::Aggregate ); 296 newnode->type->aggregate.name = name; 287 297 newnode->type->aggregate.kind = Trait; 288 298 newnode->type->aggregate.params = params; 289 299 newnode->type->aggregate.fields = asserts; 290 newnode->type->aggregate.name = assign_strptr( name );291 300 return newnode; 292 301 } // DeclarationNode::newTrait 293 302 294 DeclarationNode * DeclarationNode::newTraitUse( std::string *name, ExpressionNode *params ) {295 DeclarationNode * newnode = new DeclarationNode;303 DeclarationNode * DeclarationNode::newTraitUse( const string * name, ExpressionNode * params ) { 304 DeclarationNode * newnode = new DeclarationNode; 296 305 newnode->type = new TypeData( TypeData::AggregateInst ); 297 306 newnode->type->aggInst.aggregate = new TypeData( TypeData::Aggregate ); 298 307 newnode->type->aggInst.aggregate->aggregate.kind = Trait; 299 newnode->type->aggInst.aggregate->aggregate.name = assign_strptr( name );308 newnode->type->aggInst.aggregate->aggregate.name = name; 300 309 newnode->type->aggInst.params = params; 301 310 return newnode; 302 311 } // DeclarationNode::newTraitUse 303 312 304 DeclarationNode *DeclarationNode::newTypeDecl( std::string *name, DeclarationNode *typeParams ) { 305 DeclarationNode *newnode = new DeclarationNode; 306 newnode->name = assign_strptr( name ); 313 DeclarationNode * DeclarationNode::newTypeDecl( string * name, DeclarationNode * typeParams ) { 314 DeclarationNode * newnode = new DeclarationNode; 307 315 newnode->type = new TypeData( TypeData::Symbolic ); 308 316 newnode->type->symbolic.isTypedef = false; 309 317 newnode->type->symbolic.params = typeParams; 310 newnode->type->symbolic.name = n ewnode->name;318 newnode->type->symbolic.name = name; 311 319 return newnode; 312 320 } // DeclarationNode::newTypeDecl 313 321 314 DeclarationNode * DeclarationNode::newPointer( DeclarationNode *qualifiers ) {315 DeclarationNode * newnode = new DeclarationNode;322 DeclarationNode * DeclarationNode::newPointer( DeclarationNode * qualifiers ) { 323 DeclarationNode * newnode = new DeclarationNode; 316 324 newnode->type = new TypeData( TypeData::Pointer ); 317 325 return newnode->addQualifiers( qualifiers ); 318 326 } // DeclarationNode::newPointer 319 327 320 DeclarationNode * DeclarationNode::newArray( ExpressionNode *size, DeclarationNode *qualifiers, bool isStatic ) {321 DeclarationNode * newnode = new DeclarationNode;328 DeclarationNode * DeclarationNode::newArray( ExpressionNode * size, DeclarationNode * qualifiers, bool isStatic ) { 329 DeclarationNode * newnode = new DeclarationNode; 322 330 newnode->type = new TypeData( TypeData::Array ); 323 331 newnode->type->array.dimension = size; 324 332 newnode->type->array.isStatic = isStatic; 325 if ( newnode->type->array.dimension == 0 || newnode->type->array.dimension->isExpressionType<ConstantExpr *>() ) {333 if ( newnode->type->array.dimension == nullptr || newnode->type->array.dimension->isExpressionType<ConstantExpr * >() ) { 326 334 newnode->type->array.isVarLen = false; 327 335 } else { … … 331 339 } // DeclarationNode::newArray 332 340 333 DeclarationNode * DeclarationNode::newVarArray( DeclarationNode *qualifiers ) {334 DeclarationNode * newnode = new DeclarationNode;341 DeclarationNode * DeclarationNode::newVarArray( DeclarationNode * qualifiers ) { 342 DeclarationNode * newnode = new DeclarationNode; 335 343 newnode->type = new TypeData( TypeData::Array ); 336 newnode->type->array.dimension = 0;344 newnode->type->array.dimension = nullptr; 337 345 newnode->type->array.isStatic = false; 338 346 newnode->type->array.isVarLen = true; … … 340 348 } 341 349 342 DeclarationNode * DeclarationNode::newBitfield( ExpressionNode *size ) {343 DeclarationNode * newnode = new DeclarationNode;350 DeclarationNode * DeclarationNode::newBitfield( ExpressionNode * size ) { 351 DeclarationNode * newnode = new DeclarationNode; 344 352 newnode->bitfieldWidth = size; 345 353 return newnode; 346 354 } 347 355 348 DeclarationNode * DeclarationNode::newTuple( DeclarationNode *members ) {349 DeclarationNode * newnode = new DeclarationNode;356 DeclarationNode * DeclarationNode::newTuple( DeclarationNode * members ) { 357 DeclarationNode * newnode = new DeclarationNode; 350 358 newnode->type = new TypeData( TypeData::Tuple ); 351 359 newnode->type->tuple = members; … … 353 361 } 354 362 355 DeclarationNode * DeclarationNode::newTypeof( ExpressionNode *expr ) {356 DeclarationNode * newnode = new DeclarationNode;363 DeclarationNode * DeclarationNode::newTypeof( ExpressionNode * expr ) { 364 DeclarationNode * newnode = new DeclarationNode; 357 365 newnode->type = new TypeData( TypeData::Typeof ); 358 366 newnode->type->typeexpr = expr; … … 361 369 362 370 DeclarationNode * DeclarationNode::newBuiltinType( BuiltinType bt ) { 363 DeclarationNode * newnode = new DeclarationNode;371 DeclarationNode * newnode = new DeclarationNode; 364 372 newnode->type = new TypeData( TypeData::Builtin ); 365 373 newnode->builtin = bt; … … 367 375 } // DeclarationNode::newBuiltinType 368 376 369 DeclarationNode *DeclarationNode::newAttr( std::string *name, ExpressionNode *expr ) { 370 DeclarationNode *newnode = new DeclarationNode; 371 newnode->type = new TypeData( TypeData::Attr ); 372 newnode->attr.name = assign_strptr( name ); 377 DeclarationNode * DeclarationNode::newAttr( string * name, ExpressionNode * expr ) { 378 DeclarationNode * newnode = new DeclarationNode; 379 newnode->type = nullptr; 380 // newnode->attr.name = name; 381 newnode->name = name; 373 382 newnode->attr.expr = expr; 374 383 return newnode; 375 384 } 376 385 377 DeclarationNode *DeclarationNode::newAttr( std::string *name, DeclarationNode *type ) { 378 DeclarationNode *newnode = new DeclarationNode; 379 newnode->type = new TypeData( TypeData::Attr ); 380 newnode->attr.name = assign_strptr( name ); 386 DeclarationNode * DeclarationNode::newAttr( string * name, DeclarationNode * type ) { 387 DeclarationNode * newnode = new DeclarationNode; 388 newnode->type = nullptr; 389 // newnode->attr.name = name; 390 newnode->name = name; 381 391 newnode->attr.type = type; 382 392 return newnode; … … 389 399 } // appendError 390 400 391 void DeclarationNode::checkQualifiers( const TypeData * src, const TypeData *dst ) {401 void DeclarationNode::checkQualifiers( const TypeData * src, const TypeData * dst ) { 392 402 TypeData::Qualifiers qsrc = src->qualifiers, qdst = dst->qualifiers; // optimization 393 403 … … 401 411 } // DeclarationNode::checkQualifiers 402 412 403 void DeclarationNode::checkStorageClasses( DeclarationNode * q ) {413 void DeclarationNode::checkStorageClasses( DeclarationNode * q ) { 404 414 if ( storageClass != NoStorageClass && q->storageClass != NoStorageClass ) { 405 415 if ( storageClass == q->storageClass ) { // duplicate qualifier … … 413 423 } // DeclarationNode::copyStorageClasses 414 424 415 DeclarationNode * DeclarationNode::copyStorageClasses( DeclarationNode *q ) {425 DeclarationNode * DeclarationNode::copyStorageClasses( DeclarationNode * q ) { 416 426 isInline = isInline || q->isInline; 417 427 isNoreturn = isNoreturn || q->isNoreturn; … … 424 434 } // DeclarationNode::copyStorageClasses 425 435 426 static void addQualifiersToType( TypeData *&src, TypeData * dst ) {436 static void addQualifiersToType( TypeData *&src, TypeData * dst ) { 427 437 if ( src->forall && dst->kind == TypeData::Function ) { 428 438 if ( dst->forall ) { … … 431 441 dst->forall = src->forall; 432 442 } // if 433 src->forall = 0;443 src->forall = nullptr; 434 444 } // if 435 445 if ( dst->base ) { … … 437 447 } else if ( dst->kind == TypeData::Function ) { 438 448 dst->base = src; 439 src = 0;449 src = nullptr; 440 450 } else { 441 451 dst->qualifiers |= src->qualifiers; … … 443 453 } // addQualifiersToType 444 454 445 DeclarationNode * DeclarationNode::addQualifiers( DeclarationNode *q ) {446 if ( ! q ) return this;455 DeclarationNode * DeclarationNode::addQualifiers( DeclarationNode * q ) { 456 if ( ! q ) { delete q; return this; } 447 457 448 458 checkStorageClasses( q ); 449 459 copyStorageClasses( q ); 450 460 451 if ( ! q->type ) { delete q; return this; } 461 if ( ! q->type ) { 462 delete q; 463 return this; 464 } // if 452 465 453 466 if ( ! type ) { 454 // type = new TypeData; 455 type = q->type; 467 type = q->type; // reuse this structure 468 q->type = nullptr; 469 delete q; 456 470 return this; 457 471 } // if … … 467 481 type->aggregate.params = q->type->forall; 468 482 // change implicit typedef from TYPEDEFname to TYPEGENname 469 typedefTable.changeKind( type->aggregate.name, TypedefTable::TG );483 typedefTable.changeKind( *type->aggregate.name, TypedefTable::TG ); 470 484 } else { 471 485 type->forall = q->type->forall; 472 486 } // if 473 487 } // if 474 q->type->forall = 0;488 q->type->forall = nullptr; 475 489 } // if 476 490 delete q; … … 485 499 dst->forall = src->forall; 486 500 } // if 487 src->forall = 0;501 src->forall = nullptr; 488 502 } // if 489 503 if ( dst->base ) { … … 494 508 src->qualifiers |= dst->qualifiers; 495 509 dst = src; 496 src = 0;510 src = nullptr; 497 511 break; 498 512 case TypeData::Basic: … … 504 518 dst->basictype = src->basictype; 505 519 } else if ( src->basictype != DeclarationNode::NoBasicType ) 506 throw SemanticError( st d::string( "conflicting type specifier " ) + DeclarationNode::basicTypeName[ src->basictype ] + " in type: ", src );520 throw SemanticError( string( "conflicting type specifier " ) + DeclarationNode::basicTypeName[ src->basictype ] + " in type: ", src ); 507 521 508 522 if ( dst->complextype == DeclarationNode::NoComplexType ) { 509 523 dst->complextype = src->complextype; 510 524 } else if ( src->complextype != DeclarationNode::NoComplexType ) 511 throw SemanticError( st d::string( "conflicting type specifier " ) + DeclarationNode::complexTypeName[ src->complextype ] + " in type: ", src );525 throw SemanticError( string( "conflicting type specifier " ) + DeclarationNode::complexTypeName[ src->complextype ] + " in type: ", src ); 512 526 513 527 if ( dst->signedness == DeclarationNode::NoSignedness ) { 514 528 dst->signedness = src->signedness; 515 529 } else if ( src->signedness != DeclarationNode::NoSignedness ) 516 throw SemanticError( st d::string( "conflicting type specifier " ) + DeclarationNode::signednessName[ src->signedness ] + " in type: ", src );530 throw SemanticError( string( "conflicting type specifier " ) + DeclarationNode::signednessName[ src->signedness ] + " in type: ", src ); 517 531 518 532 if ( dst->length == DeclarationNode::NoLength ) { … … 521 535 dst->length = DeclarationNode::LongLong; 522 536 } else if ( src->length != DeclarationNode::NoLength ) 523 throw SemanticError( st d::string( "conflicting type specifier " ) + DeclarationNode::lengthName[ src->length ] + " in type: ", src );537 throw SemanticError( string( "conflicting type specifier " ) + DeclarationNode::lengthName[ src->length ] + " in type: ", src ); 524 538 } // if 525 539 break; … … 534 548 } // if 535 549 dst->base->qualifiers |= src->qualifiers; 536 src = 0;550 src = nullptr; 537 551 break; 538 552 default: … … 542 556 dst->forall = src->forall; 543 557 } // if 544 src->forall = 0;558 src->forall = nullptr; 545 559 dst->base = src; 546 src = 0;560 src = nullptr; 547 561 } // switch 548 562 } // switch … … 550 564 } 551 565 552 DeclarationNode * DeclarationNode::addType( DeclarationNode *o ) {566 DeclarationNode * DeclarationNode::addType( DeclarationNode * o ) { 553 567 if ( o ) { 554 568 checkStorageClasses( o ); … … 566 580 type = o->type; 567 581 } // if 568 o->type = 0;582 o->type = nullptr; 569 583 } else { 570 584 addTypeToType( o->type, type ); … … 584 598 } 585 599 586 DeclarationNode * DeclarationNode::addTypedef() {587 TypeData * newtype = new TypeData( TypeData::Symbolic );588 newtype->symbolic.params = 0;600 DeclarationNode * DeclarationNode::addTypedef() { 601 TypeData * newtype = new TypeData( TypeData::Symbolic ); 602 newtype->symbolic.params = nullptr; 589 603 newtype->symbolic.isTypedef = true; 590 newtype->symbolic.name = name ;604 newtype->symbolic.name = name ? new string( *name ) : nullptr; 591 605 newtype->base = type; 592 606 type = newtype; … … 594 608 } 595 609 596 DeclarationNode *DeclarationNode::addAssertions( DeclarationNode *assertions ) { 610 DeclarationNode * DeclarationNode::addAssertions( DeclarationNode * assertions ) { 611 if ( variable.tyClass != NoTypeClass ) { 612 if ( variable.assertions ) { 613 variable.assertions->appendList( assertions ); 614 } else { 615 variable.assertions = assertions; 616 } // if 617 return this; 618 } // if 619 597 620 assert( type ); 598 621 switch ( type->kind ) { … … 604 627 } // if 605 628 break; 606 case TypeData::Variable:607 if ( variable.assertions ) {608 variable.assertions->appendList( assertions );609 } else {610 variable.assertions = assertions;611 } // if612 break;613 629 default: 614 630 assert( false ); … … 618 634 } 619 635 620 DeclarationNode *DeclarationNode::addName( std::string *newname ) { 621 name = assign_strptr( newname ); 622 return this; 623 } 624 625 DeclarationNode *DeclarationNode::addBitfield( ExpressionNode *size ) { 636 DeclarationNode * DeclarationNode::addName( string * newname ) { 637 assert( ! name ); 638 name = newname; 639 return this; 640 } 641 642 DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) { 626 643 bitfieldWidth = size; 627 644 return this; 628 645 } 629 646 630 DeclarationNode * DeclarationNode::addVarArgs() {647 DeclarationNode * DeclarationNode::addVarArgs() { 631 648 assert( type ); 632 649 hasEllipsis = true; … … 634 651 } 635 652 636 DeclarationNode * DeclarationNode::addFunctionBody( StatementNode *body ) {653 DeclarationNode * DeclarationNode::addFunctionBody( StatementNode * body ) { 637 654 assert( type ); 638 655 assert( type->kind == TypeData::Function ); 639 assert( type->function.body == 0);656 assert( ! type->function.body ); 640 657 type->function.body = body; 641 658 type->function.hasBody = true; … … 643 660 } 644 661 645 DeclarationNode * DeclarationNode::addOldDeclList( DeclarationNode *list ) {662 DeclarationNode * DeclarationNode::addOldDeclList( DeclarationNode * list ) { 646 663 assert( type ); 647 664 assert( type->kind == TypeData::Function ); 648 assert( type->function.oldDeclList == 0);665 assert( ! type->function.oldDeclList ); 649 666 type->function.oldDeclList = list; 650 667 return this; 651 668 } 652 669 653 static void setBase( TypeData *&type, TypeData * newType ) {670 static void setBase( TypeData *&type, TypeData * newType ) { 654 671 if ( type ) { 655 TypeData * prevBase = type;656 TypeData * curBase = type->base;657 while ( curBase != 0) {672 TypeData * prevBase = type; 673 TypeData * curBase = type->base; 674 while ( curBase != nullptr ) { 658 675 prevBase = curBase; 659 676 curBase = curBase->base; … … 665 682 } 666 683 667 DeclarationNode * DeclarationNode::addPointer( DeclarationNode *p ) {684 DeclarationNode * DeclarationNode::addPointer( DeclarationNode * p ) { 668 685 if ( p ) { 669 686 assert( p->type->kind == TypeData::Pointer ); 670 687 setBase( type, p->type ); 671 p->type = 0;688 p->type = nullptr; 672 689 delete p; 673 690 } // if … … 675 692 } 676 693 677 DeclarationNode * DeclarationNode::addArray( DeclarationNode *a ) {694 DeclarationNode * DeclarationNode::addArray( DeclarationNode * a ) { 678 695 if ( a ) { 679 696 assert( a->type->kind == TypeData::Array ); 680 697 setBase( type, a->type ); 681 a->type = 0;698 a->type = nullptr; 682 699 delete a; 683 700 } // if … … 685 702 } 686 703 687 DeclarationNode * DeclarationNode::addNewPointer( DeclarationNode *p ) {704 DeclarationNode * DeclarationNode::addNewPointer( DeclarationNode * p ) { 688 705 if ( p ) { 689 706 assert( p->type->kind == TypeData::Pointer ); … … 703 720 p->type->base = type; 704 721 } // switch 705 type = 0;722 type = nullptr; 706 723 } // if 707 724 delete this; … … 712 729 } 713 730 714 static TypeData * findLast( TypeData *a ) {731 static TypeData * findLast( TypeData * a ) { 715 732 assert( a ); 716 TypeData * cur = a;733 TypeData * cur = a; 717 734 while ( cur->base ) { 718 735 cur = cur->base; … … 721 738 } 722 739 723 DeclarationNode * DeclarationNode::addNewArray( DeclarationNode *a ) {740 DeclarationNode * DeclarationNode::addNewArray( DeclarationNode * a ) { 724 741 if ( a ) { 725 742 assert( a->type->kind == TypeData::Array ); 726 TypeData * lastArray = findLast( a->type );743 TypeData * lastArray = findLast( a->type ); 727 744 if ( type ) { 728 745 switch ( type->kind ) { … … 739 756 lastArray->base = type; 740 757 } // switch 741 type = 0;758 type = nullptr; 742 759 } // if 743 760 delete this; … … 748 765 } 749 766 750 DeclarationNode * DeclarationNode::addParamList( DeclarationNode *params ) {751 TypeData * ftype = new TypeData( TypeData::Function );767 DeclarationNode * DeclarationNode::addParamList( DeclarationNode * params ) { 768 TypeData * ftype = new TypeData( TypeData::Function ); 752 769 ftype->function.params = params; 753 770 setBase( type, ftype ); … … 755 772 } 756 773 757 static TypeData * addIdListToType( TypeData *type, DeclarationNode *ids ) {774 static TypeData * addIdListToType( TypeData * type, DeclarationNode * ids ) { 758 775 if ( type ) { 759 776 if ( type->kind != TypeData::Function ) { … … 764 781 return type; 765 782 } else { 766 TypeData * newtype = new TypeData( TypeData::Function );783 TypeData * newtype = new TypeData( TypeData::Function ); 767 784 newtype->function.idList = ids; 768 785 return newtype; 769 786 } // if 770 } 771 772 DeclarationNode * DeclarationNode::addIdList( DeclarationNode *ids ) {787 } // addIdListToType 788 789 DeclarationNode * DeclarationNode::addIdList( DeclarationNode * ids ) { 773 790 type = addIdListToType( type, ids ); 774 791 return this; 775 792 } 776 793 777 DeclarationNode *DeclarationNode::addInitializer( InitializerNode *init ) { 778 //assert 794 DeclarationNode * DeclarationNode::addInitializer( InitializerNode * init ) { 779 795 initializer = init; 780 796 return this; 781 797 } 782 798 783 DeclarationNode *DeclarationNode::cloneBaseType( string *newName ) { 784 DeclarationNode *newnode = new DeclarationNode; 785 TypeData *srcType = type; 786 while ( srcType->base ) { 787 srcType = srcType->base; 788 } // while 789 newnode->type = maybeClone( srcType ); 790 if ( newnode->type->kind == TypeData::AggregateInst ) { 791 // don't duplicate members 792 if ( newnode->type->aggInst.aggregate->kind == TypeData::Enum ) { 793 delete newnode->type->aggInst.aggregate->enumeration.constants; 794 newnode->type->aggInst.aggregate->enumeration.constants = 0; 795 } else { 796 assert( newnode->type->aggInst.aggregate->kind == TypeData::Aggregate ); 797 delete newnode->type->aggInst.aggregate->aggregate.fields; 798 newnode->type->aggInst.aggregate->aggregate.fields = 0; 799 } // if 800 } // if 801 newnode->type->forall = maybeClone( type->forall ); 802 assert( storageClass == NoStorageClass ); 803 newnode->copyStorageClasses( this ); 804 newnode->name = assign_strptr( newName ); 805 return newnode; 806 } 807 808 DeclarationNode *DeclarationNode::cloneBaseType( DeclarationNode *o ) { 809 if ( o ) { 810 o->copyStorageClasses( this ); 811 if ( type ) { 812 TypeData *srcType = type; 813 while ( srcType->base ) { 814 srcType = srcType->base; 815 } // while 816 TypeData *newType = srcType->clone(); 817 if ( newType->kind == TypeData::AggregateInst ) { 818 // don't duplicate members 819 if ( newType->aggInst.aggregate->kind == TypeData::Enum ) { 820 delete newType->aggInst.aggregate->enumeration.constants; 821 newType->aggInst.aggregate->enumeration.constants = 0; 822 } else { 823 assert( newType->aggInst.aggregate->kind == TypeData::Aggregate ); 824 delete newType->aggInst.aggregate->aggregate.fields; 825 newType->aggInst.aggregate->aggregate.fields = 0; 826 } // if 827 } // if 828 newType->forall = maybeClone( type->forall ); 829 if ( ! o->type ) { 830 o->type = newType; 831 } else { 832 addTypeToType( newType, o->type ); 833 delete newType; 834 } // if 835 } // if 836 } // if 837 return o; 838 } 839 840 DeclarationNode *DeclarationNode::cloneType( string *newName ) { 841 DeclarationNode *newnode = new DeclarationNode; 799 DeclarationNode * DeclarationNode::cloneType( string * newName ) { 800 DeclarationNode * newnode = new DeclarationNode; 842 801 newnode->type = maybeClone( type ); 843 802 assert( storageClass == NoStorageClass ); 844 803 newnode->copyStorageClasses( this ); 845 newnode->name = assign_strptr( newName ); 846 return newnode; 847 } 848 849 DeclarationNode *DeclarationNode::cloneType( DeclarationNode *o ) { 850 if ( o ) { 851 assert( storageClass == NoStorageClass ); 852 o->copyStorageClasses( this ); 853 if ( type ) { 854 TypeData *newType = type->clone(); 855 if ( ! o->type ) { 856 o->type = newType; 804 assert( newName ); 805 newnode->name = newName; 806 return newnode; 807 } 808 809 DeclarationNode * DeclarationNode::cloneBaseType( DeclarationNode * o ) { 810 if ( ! o ) return nullptr; 811 812 o->copyStorageClasses( this ); 813 if ( type ) { 814 TypeData * srcType = type; 815 816 while ( srcType->base ) { 817 srcType = srcType->base; 818 } // while 819 820 TypeData * newType = srcType->clone(); 821 if ( newType->kind == TypeData::AggregateInst ) { 822 // don't duplicate members 823 if ( newType->aggInst.aggregate->kind == TypeData::Enum ) { 824 delete newType->aggInst.aggregate->enumeration.constants; 825 newType->aggInst.aggregate->enumeration.constants = nullptr; 857 826 } else { 858 addTypeToType( newType, o->type ); 859 delete newType; 827 assert( newType->aggInst.aggregate->kind == TypeData::Aggregate ); 828 delete newType->aggInst.aggregate->aggregate.fields; 829 newType->aggInst.aggregate->aggregate.fields = nullptr; 860 830 } // if 861 831 } // if 862 } // if 863 delete o; 832 833 newType->forall = maybeClone( type->forall ); 834 if ( ! o->type ) { 835 o->type = newType; 836 } else { 837 addTypeToType( newType, o->type ); 838 delete newType; 839 } // if 840 } // if 864 841 return o; 865 842 } 866 843 867 DeclarationNode * DeclarationNode::extractAggregate() const {844 DeclarationNode * DeclarationNode::extractAggregate() const { 868 845 if ( type ) { 869 TypeData * ret = typeextractAggregate( type );846 TypeData * ret = typeextractAggregate( type ); 870 847 if ( ret ) { 871 DeclarationNode * newnode = new DeclarationNode;848 DeclarationNode * newnode = new DeclarationNode; 872 849 newnode->type = ret; 873 850 return newnode; 874 851 } // if 875 852 } // if 876 return 0;877 } 878 879 void buildList( const DeclarationNode * firstNode, std::list< Declaration * > &outputList ) {853 return nullptr; 854 } 855 856 void buildList( const DeclarationNode * firstNode, std::list< Declaration * > &outputList ) { 880 857 SemanticError errors; 881 858 std::back_insert_iterator< std::list< Declaration * > > out( outputList ); 882 const DeclarationNode *cur = firstNode; 859 const DeclarationNode * cur = firstNode; 860 883 861 while ( cur ) { 884 862 try { 885 if ( DeclarationNode * extr = cur->extractAggregate() ) {863 if ( DeclarationNode * extr = cur->extractAggregate() ) { 886 864 // handle the case where a structure declaration is contained within an object or type declaration 887 Declaration * decl = extr->build();865 Declaration * decl = extr->build(); 888 866 if ( decl ) { 889 * out++ = decl;867 * out++ = decl; 890 868 } // if 891 869 delete extr; 892 870 } // if 893 Declaration *decl = cur->build(); 871 872 Declaration * decl = cur->build(); 894 873 if ( decl ) { 895 * out++ = decl;874 * out++ = decl; 896 875 } // if 897 876 } catch( SemanticError &e ) { … … 900 879 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 901 880 } // while 881 902 882 if ( ! errors.isEmpty() ) { 903 883 throw errors; 904 884 } // if 905 } 906 907 void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > &outputList ) {885 } // buildList 886 887 void buildList( const DeclarationNode * firstNode, std::list< DeclarationWithType * > &outputList ) { 908 888 SemanticError errors; 909 889 std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList ); 910 const DeclarationNode * cur = firstNode;890 const DeclarationNode * cur = firstNode; 911 891 while ( cur ) { 912 892 try { 913 Declaration * decl = cur->build();893 Declaration * decl = cur->build(); 914 894 if ( decl ) { 915 if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {916 * out++ = dwt;917 } else if ( StructDecl * agg = dynamic_cast< StructDecl * >( decl ) ) {918 StructInstType * inst = new StructInstType( Type::Qualifiers(), agg->get_name() );919 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0);895 if ( DeclarationWithType * dwt = dynamic_cast< DeclarationWithType * >( decl ) ) { 896 * out++ = dwt; 897 } else if ( StructDecl * agg = dynamic_cast< StructDecl * >( decl ) ) { 898 StructInstType * inst = new StructInstType( Type::Qualifiers(), agg->get_name() ); 899 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr ); 920 900 delete agg; 921 } else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) {922 UnionInstType * inst = new UnionInstType( Type::Qualifiers(), agg->get_name() );923 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0);901 } else if ( UnionDecl * agg = dynamic_cast< UnionDecl * >( decl ) ) { 902 UnionInstType * inst = new UnionInstType( Type::Qualifiers(), agg->get_name() ); 903 * out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, nullptr, inst, nullptr ); 924 904 } // if 925 905 } // if … … 932 912 throw errors; 933 913 } // if 934 } 935 936 void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > &outputList ) {914 } // buildList 915 916 void buildTypeList( const DeclarationNode * firstNode, std::list< Type * > &outputList ) { 937 917 SemanticError errors; 938 918 std::back_insert_iterator< std::list< Type * > > out( outputList ); 939 const DeclarationNode *cur = firstNode; 919 const DeclarationNode * cur = firstNode; 920 940 921 while ( cur ) { 941 922 try { 942 * out++ = cur->buildType();923 * out++ = cur->buildType(); 943 924 } catch( SemanticError &e ) { 944 925 errors.append( e ); … … 946 927 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 947 928 } // while 929 948 930 if ( ! errors.isEmpty() ) { 949 931 throw errors; 950 932 } // if 951 } 952 953 Declaration * DeclarationNode::build() const {933 } // buildTypeList 934 935 Declaration * DeclarationNode::build() const { 954 936 if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this ); 937 938 // if ( variable.name ) { 939 if ( variable.tyClass != NoTypeClass ) { 940 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 941 // TypeDecl * ret = new TypeDecl( *variable.name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 942 TypeDecl * ret = new TypeDecl( *name, DeclarationNode::NoStorageClass, nullptr, kindMap[ variable.tyClass ] ); 943 buildList( variable.assertions, ret->get_assertions() ); 944 return ret; 945 } // if 946 955 947 if ( type ) { 956 if ( type->kind == TypeData::Variable ) { 957 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 958 TypeDecl * ret = new TypeDecl( variable.name, DeclarationNode::NoStorageClass, 0, kindMap[ variable.tyClass ] ); 959 buildList( variable.assertions, ret->get_assertions() ); 960 return ret; 961 } else { 962 return buildDecl( type, name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 963 } // if 964 } // if 948 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 949 } // if 950 965 951 if ( ! isInline && ! isNoreturn ) { 966 return (new ObjectDecl( name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension ); 967 } // if 952 assertf( name, "ObjectDecl are assumed to have names\n" ); 953 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_extension( extension ); 954 } // if 955 968 956 throw SemanticError( "invalid function specifier ", this ); 969 957 } 970 958 971 Type * DeclarationNode::buildType() const {959 Type * DeclarationNode::buildType() const { 972 960 assert( type ); 961 962 if ( attr.expr ) { 963 // return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() ); 964 return new AttrType( buildQualifiers( type ), *name, attr.expr->build() ); 965 } else if ( attr.type ) { 966 // return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() ); 967 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() ); 968 } // if 973 969 974 970 switch ( type->kind ) { 975 971 case TypeData::Enum: 976 return new EnumInstType( buildQualifiers( type ), type->enumeration.name );972 return new EnumInstType( buildQualifiers( type ), *type->enumeration.name ); 977 973 case TypeData::Aggregate: { 978 ReferenceToType * ret;974 ReferenceToType * ret; 979 975 switch ( type->aggregate.kind ) { 980 976 case DeclarationNode::Struct: 981 ret = new StructInstType( buildQualifiers( type ), type->aggregate.name );977 ret = new StructInstType( buildQualifiers( type ), *type->aggregate.name ); 982 978 break; 983 979 case DeclarationNode::Union: 984 ret = new UnionInstType( buildQualifiers( type ), type->aggregate.name );980 ret = new UnionInstType( buildQualifiers( type ), *type->aggregate.name ); 985 981 break; 986 982 case DeclarationNode::Trait: 987 ret = new TraitInstType( buildQualifiers( type ), type->aggregate.name );983 ret = new TraitInstType( buildQualifiers( type ), *type->aggregate.name ); 988 984 break; 989 985 default: … … 994 990 } 995 991 case TypeData::Symbolic: { 996 TypeInstType * ret = new TypeInstType( buildQualifiers( type ),type->symbolic.name, false );992 TypeInstType * ret = new TypeInstType( buildQualifiers( type ), *type->symbolic.name, false ); 997 993 buildList( type->symbolic.actuals, ret->get_parameters() ); 998 return ret;999 }1000 case TypeData::Attr: {1001 assert( type->kind == TypeData::Attr );1002 // assert( type->attr );1003 AttrType * ret;1004 if ( attr.expr ) {1005 ret = new AttrType( buildQualifiers( type ), attr.name, attr.expr->build() );1006 } else {1007 assert( attr.type );1008 ret = new AttrType( buildQualifiers( type ), attr.name, attr.type->buildType() );1009 } // if1010 994 return ret; 1011 995 } -
src/Parser/ExpressionNode.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 25 21:39:40201613 // Update Count : 50 312 // Last Modified On : Fri Sep 16 16:27:44 2016 13 // Update Count : 508 14 14 // 15 15 … … 31 31 32 32 using namespace std; 33 34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.get_name() ), extension( other.extension ) {}35 33 36 34 //############################################################################## -
src/Parser/InitializerNode.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:20:24 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 18:27:02201613 // Update Count : 2 012 // Last Modified On : Sat Oct 1 23:09:51 2016 13 // Update Count : 21 14 14 // 15 15 … … 23 23 24 24 InitializerNode::InitializerNode( ExpressionNode *_expr, bool aggrp, ExpressionNode *des ) 25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 26 26 if ( aggrp ) 27 27 kids = dynamic_cast< InitializerNode * >( get_next() ); … … 32 32 33 33 InitializerNode::InitializerNode( InitializerNode *init, bool aggrp, ExpressionNode *des ) 34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) {34 : expr( 0 ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 35 35 if ( init != 0 ) 36 36 set_last( init ); … … 79 79 80 80 Initializer *InitializerNode::build() const { 81 // if ( get_expression() == 0 ) return 0; // XXX (?)82 83 81 if ( aggregate ) { 84 //assert( next_init() != 0 );85 86 82 std::list< Initializer * > initlist; 87 83 buildList< Initializer, InitializerNode >( next_init(), initlist ); -
src/Parser/LinkageSpec.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:22:09 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 21 12:32:53201613 // Update Count : 1712 // Last Modified On : Sun Oct 2 23:16:21 2016 13 // Update Count : 23 14 14 // 15 15 … … 17 17 #include <string> 18 18 #include <cassert> 19 using namespace std; 19 20 20 21 #include "LinkageSpec.h" 21 22 #include "Common/SemanticError.h" 22 23 23 LinkageSpec::Spec LinkageSpec:: fromString( const std::string &spec ) {24 std::unique_ptr<const std::string> guard(&spec);// allocated by lexer25 if ( spec == "\"Cforall\"" ) {24 LinkageSpec::Spec LinkageSpec::linkageCheck( const string * spec ) { 25 unique_ptr<const string> guard( spec ); // allocated by lexer 26 if ( *spec == "\"Cforall\"" ) { 26 27 return Cforall; 27 } else if ( spec == "\"C\"" ) {28 } else if ( *spec == "\"C\"" ) { 28 29 return C; 29 30 } else { 30 throw SemanticError( "Invalid linkage specifier " + spec );31 throw SemanticError( "Invalid linkage specifier " + *spec ); 31 32 } // if 32 33 } 33 34 34 st d::string LinkageSpec::toString( LinkageSpec::Spec linkage ) {35 assert( linkage >= 0&& linkage < LinkageSpec::NoOfSpecs );35 string LinkageSpec::linkageName( LinkageSpec::Spec linkage ) { 36 assert( 0 <= linkage && linkage < LinkageSpec::NoOfSpecs ); 36 37 static const char *linkageKinds[LinkageSpec::NoOfSpecs] = { 37 38 "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in", … … 41 42 42 43 bool LinkageSpec::isDecoratable( Spec spec ) { 43 assert( spec >= 0&& spec < LinkageSpec::NoOfSpecs );44 assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs ); 44 45 static bool decoratable[LinkageSpec::NoOfSpecs] = { 45 46 // Intrinsic, Cforall, C, AutoGen, Compiler … … 50 51 51 52 bool LinkageSpec::isGeneratable( Spec spec ) { 52 assert( spec >= 0&& spec < LinkageSpec::NoOfSpecs );53 assert( 0 <= spec && spec < LinkageSpec::NoOfSpecs ); 53 54 static bool generatable[LinkageSpec::NoOfSpecs] = { 54 55 // Intrinsic, Cforall, C, AutoGen, Compiler -
src/Parser/LinkageSpec.h
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:24:28 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 20 19:22:23201613 // Update Count : 812 // Last Modified On : Sat Oct 1 23:03:17 2016 13 // Update Count : 11 14 14 // 15 15 … … 29 29 }; 30 30 31 static Spec fromString( const std::string &);32 static std::string toString( Spec );31 static Spec linkageCheck( const std::string * ); 32 static std::string linkageName( Spec ); 33 33 34 34 static bool isDecoratable( Spec ); -
src/Parser/ParseNode.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Aug 17 23:14:16201613 // Update Count : 12 612 // Last Modified On : Sat Oct 1 23:10:43 2016 13 // Update Count : 127 14 14 // 15 15 … … 20 20 21 21 std::ostream & operator<<( std::ostream & out, const ParseNode * node ) { 22 23 22 node->print( out ); 23 return out; 24 24 } 25 25 -
src/Parser/ParseNode.h
rac9ca96 r7756647 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 12 08:00:05201613 // Update Count : 6 0312 // Last Modified On : Mon Oct 3 18:03:08 2016 13 // Update Count : 636 14 14 // 15 15 … … 41 41 public: 42 42 ParseNode() {}; 43 ParseNode( const std::string * name ) : name( * name ) { assert( false ); delete name; } 44 ParseNode( const std::string &name ) : name( name ) { assert( false ); } 45 virtual ~ParseNode() { delete next; }; 43 virtual ~ParseNode() { delete next; delete name; }; 46 44 virtual ParseNode * clone() const = 0; 47 45 48 46 ParseNode * get_next() const { return next; } 49 47 ParseNode * set_next( ParseNode * newlink ) { next = newlink; return this; } 48 50 49 ParseNode * get_last() { 51 50 ParseNode * current; 52 for ( current = this; current->get_next() != 0; current = current->get_next() );51 for ( current = this; current->get_next() != nullptr; current = current->get_next() ); 53 52 return current; 54 53 } 55 54 ParseNode * set_last( ParseNode * newlast ) { 56 if ( newlast != 0) get_last()->set_next( newlast );55 if ( newlast != nullptr ) get_last()->set_next( newlast ); 57 56 return this; 58 57 } 59 60 const std::string &get_name() const { return name; }61 void set_name( const std::string &newValue ) { name = newValue; }62 58 63 59 virtual void print( std::ostream &os, int indent = 0 ) const {} 64 60 virtual void printList( std::ostream &os, int indent = 0 ) const {} 65 private: 61 66 62 static int indent_by; 67 63 68 64 ParseNode * next = nullptr; 69 std::string name;65 std::string * name = nullptr; 70 66 }; // ParseNode 71 67 … … 74 70 class InitializerNode : public ParseNode { 75 71 public: 76 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = 0);77 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = 0);72 InitializerNode( ExpressionNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 73 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 78 74 ~InitializerNode(); 79 75 virtual InitializerNode * clone() const { assert( false ); return nullptr; } … … 106 102 public: 107 103 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} 108 ExpressionNode( Expression * expr, const std::string * name ) : ParseNode( name ), expr( expr ) {}109 104 ExpressionNode( const ExpressionNode &other ); 110 105 virtual ~ExpressionNode() {} … … 183 178 Expression * build_attrexpr( NameExpr * var, ExpressionNode * expr_node ); 184 179 Expression * build_attrtype( NameExpr * var, DeclarationNode * decl_node ); 185 Expression * build_tuple( ExpressionNode * expr_node = 0);180 Expression * build_tuple( ExpressionNode * expr_node = nullptr ); 186 181 Expression * build_func( ExpressionNode * function, ExpressionNode * expr_node ); 187 182 Expression * build_range( ExpressionNode * low, ExpressionNode * high ); … … 203 198 enum Signedness { Signed, Unsigned, NoSignedness }; 204 199 enum Length { Short, Long, LongLong, NoLength }; 205 enum Aggregate { Struct, Union, Trait };206 enum TypeClass { Otype, Dtype, Ftype };200 enum Aggregate { Struct, Union, Trait, NoAggregate }; 201 enum TypeClass { Otype, Dtype, Ftype, NoTypeClass }; 207 202 enum BuiltinType { Valist }; 208 203 … … 219 214 static DeclarationNode * newFunction( std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body, bool newStyle = false ); 220 215 static DeclarationNode * newQualifier( Qualifier ); 221 static DeclarationNode * newForall( DeclarationNode * );216 static DeclarationNode * newForall( DeclarationNode * ); 222 217 static DeclarationNode * newStorageClass( StorageClass ); 223 218 static DeclarationNode * newBasicType( BasicType ); … … 226 221 static DeclarationNode * newLength( Length lnth ); 227 222 static DeclarationNode * newBuiltinType( BuiltinType ); 228 static DeclarationNode * newFromTypedef( std::string * );223 static DeclarationNode * newFromTypedef( std::string * ); 229 224 static DeclarationNode * newAggregate( Aggregate kind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body ); 230 225 static DeclarationNode * newEnum( std::string * name, DeclarationNode * constants ); 231 226 static DeclarationNode * newEnumConstant( std::string * name, ExpressionNode * constant ); 232 static DeclarationNode * newName( std::string * );227 static DeclarationNode * newName( std::string * ); 233 228 static DeclarationNode * newFromTypeGen( std::string *, ExpressionNode * params ); 234 static DeclarationNode * newTypeParam( TypeClass, std::string * );235 static DeclarationNode * newTrait( std::string * name, DeclarationNode * params, DeclarationNode * asserts );236 static DeclarationNode * newTraitUse( std::string * name, ExpressionNode * params );229 static DeclarationNode * newTypeParam( TypeClass, std::string * ); 230 static DeclarationNode * newTrait( const std::string * name, DeclarationNode * params, DeclarationNode * asserts ); 231 static DeclarationNode * newTraitUse( const std::string * name, ExpressionNode * params ); 237 232 static DeclarationNode * newTypeDecl( std::string * name, DeclarationNode * typeParams ); 238 233 static DeclarationNode * newPointer( DeclarationNode * qualifiers ); … … 249 244 DeclarationNode * clone() const; 250 245 251 DeclarationNode * addQualifiers( DeclarationNode * );246 DeclarationNode * addQualifiers( DeclarationNode * ); 252 247 void checkQualifiers( const TypeData *, const TypeData * ); 253 void checkStorageClasses( DeclarationNode * q);254 DeclarationNode * copyStorageClasses( DeclarationNode * );255 DeclarationNode * addType( DeclarationNode * );248 void checkStorageClasses( DeclarationNode * ); 249 DeclarationNode * copyStorageClasses( DeclarationNode * ); 250 DeclarationNode * addType( DeclarationNode * ); 256 251 DeclarationNode * addTypedef(); 257 DeclarationNode * addAssertions( DeclarationNode * );258 DeclarationNode * addName( std::string * );252 DeclarationNode * addAssertions( DeclarationNode * ); 253 DeclarationNode * addName( std::string * ); 259 254 DeclarationNode * addBitfield( ExpressionNode * size ); 260 255 DeclarationNode * addVarArgs(); … … 270 265 271 266 DeclarationNode * cloneType( std::string * newName ); 272 DeclarationNode * cloneType( DeclarationNode * existing );273 DeclarationNode * cloneType( int ) { return cloneType( ( std::string *)0 ); }274 DeclarationNode * cloneBaseType( std::string * newName );275 267 DeclarationNode * cloneBaseType( DeclarationNode * newdecl ); 276 268 … … 286 278 287 279 bool get_hasEllipsis() const; 288 const std::string &get_name() const { return name; }289 280 LinkageSpec::Spec get_linkage() const { return linkage; } 290 281 DeclarationNode * extractAggregate() const; … … 295 286 DeclarationNode * set_extension( bool exten ) { extension = exten; return this; } 296 287 public: 297 // StorageClass buildStorageClass() const;298 // bool buildFuncSpecifier( StorageClass key ) const;299 300 288 struct Variable_t { 289 // const std::string * name; 301 290 DeclarationNode::TypeClass tyClass; 302 std::string name;303 291 DeclarationNode * assertions; 304 292 }; … … 306 294 307 295 struct Attr_t { 308 std::stringname;296 // const std::string * name; 309 297 ExpressionNode * expr; 310 298 DeclarationNode * type; … … 315 303 316 304 TypeData * type; 317 std::string name;318 305 StorageClass storageClass; 319 306 bool isInline, isNoreturn; … … 331 318 332 319 Type * buildType( TypeData * type ); 333 //Type::Qualifiers buildQualifiers( const TypeData::Qualifiers & qualifiers );334 320 335 321 static inline Type * maybeMoveBuildType( const DeclarationNode * orig ) { … … 393 379 Statement * build_finally( StatementNode * stmt ); 394 380 Statement * build_compound( StatementNode * first ); 395 Statement * build_asmstmt( bool voltile, ConstantExpr * instruction, ExpressionNode * output = 0, ExpressionNode * input = 0, ExpressionNode * clobber = 0, LabelNode * gotolabels = 0);381 Statement * build_asmstmt( bool voltile, ConstantExpr * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr ); 396 382 397 383 //############################################################################## -
src/Parser/TypeData.cc
rac9ca96 r7756647 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 12 21:11:22201613 // Update Count : 37712 // Last Modified On : Sat Sep 24 11:14:26 2016 13 // Update Count : 415 14 14 // 15 15 … … 24 24 #include "SynTree/Statement.h" 25 25 #include "SynTree/Initializer.h" 26 27 TypeData::TypeData( Kind k ) : kind( k ), base( 0 ), forall( 0 ) { 26 using namespace std; 27 28 TypeData::TypeData( Kind k ) : kind( k ), base( nullptr ), forall( nullptr ) { 28 29 switch ( kind ) { 29 30 case Unknown: … … 37 38 case Array: 38 39 // array = new Array_t; 39 array.dimension = 0;40 array.dimension = nullptr; 40 41 array.isVarLen = false; 41 42 array.isStatic = false; … … 43 44 case Function: 44 45 // function = new Function_t; 45 function.params = 0;46 function.idList = 0;47 function.oldDeclList = 0;48 function.body = 0;46 function.params = nullptr; 47 function.idList = nullptr; 48 function.oldDeclList = nullptr; 49 function.body = nullptr; 49 50 function.hasBody = false; 50 51 function.newStyle = false; … … 52 53 case Aggregate: 53 54 // aggregate = new Aggregate_t; 54 aggregate.params = 0; 55 aggregate.actuals = 0; 56 aggregate.fields = 0; 55 aggregate.name = nullptr; 56 aggregate.params = nullptr; 57 aggregate.actuals = nullptr; 58 aggregate.fields = nullptr; 57 59 break; 58 60 case AggregateInst: 59 61 // aggInst = new AggInst_t; 60 aggInst.aggregate = 0;61 aggInst.params = 0;62 aggInst.aggregate = nullptr; 63 aggInst.params = nullptr; 62 64 break; 63 65 case Enum: 64 66 // enumeration = new Enumeration_t; 65 enumeration.constants = 0; 67 enumeration.name = nullptr; 68 enumeration.constants = nullptr; 66 69 break; 67 70 case Symbolic: 68 71 case SymbolicInst: 69 72 // symbolic = new Symbolic_t; 70 symbolic.params = 0; 71 symbolic.actuals = 0; 72 symbolic.assertions = 0; 73 break; 74 case Variable: 75 // variable = new Variable_t; 76 // variable.tyClass = DeclarationNode::Type; 77 // variable.assertions = 0; 73 symbolic.name = nullptr; 74 symbolic.params = nullptr; 75 symbolic.actuals = nullptr; 76 symbolic.assertions = nullptr; 78 77 break; 79 78 case Tuple: … … 84 83 // typeexpr = new Typeof_t; 85 84 typeexpr = nullptr; 86 break;87 case Attr:88 // attr = new Attr_t;89 // attr.expr = nullptr;90 // attr.type = nullptr;91 85 break; 92 86 case Builtin: … … 121 115 break; 122 116 case Aggregate: 117 delete aggregate.name; 123 118 delete aggregate.params; 124 119 delete aggregate.actuals; … … 132 127 break; 133 128 case Enum: 129 delete enumeration.name; 134 130 delete enumeration.constants; 135 131 // delete enumeration; … … 137 133 case Symbolic: 138 134 case SymbolicInst: 135 delete symbolic.name; 139 136 delete symbolic.params; 140 137 delete symbolic.actuals; … … 142 139 // delete symbolic; 143 140 break; 144 case Variable:145 // delete variable.assertions;146 // delete variable;147 break;148 141 case Tuple: 149 142 // delete tuple->members; … … 153 146 // delete typeexpr->expr; 154 147 delete typeexpr; 155 break;156 case Attr:157 // delete attr.expr;158 // delete attr.type;159 // delete attr;160 148 break; 161 149 case Builtin: … … 197 185 break; 198 186 case Aggregate: 187 newtype->aggregate.name = aggregate.name ? new string( *aggregate.name ) : nullptr; 199 188 newtype->aggregate.params = maybeClone( aggregate.params ); 200 189 newtype->aggregate.actuals = maybeClone( aggregate.actuals ); 201 190 newtype->aggregate.fields = maybeClone( aggregate.fields ); 202 newtype->aggregate.name = aggregate.name;203 191 newtype->aggregate.kind = aggregate.kind; 204 192 newtype->aggregate.body = aggregate.body; … … 209 197 break; 210 198 case Enum: 211 newtype->enumeration.name = enumeration.name ;199 newtype->enumeration.name = enumeration.name ? new string( *enumeration.name ) : nullptr; 212 200 newtype->enumeration.constants = maybeClone( enumeration.constants ); 213 201 break; 214 202 case Symbolic: 215 203 case SymbolicInst: 204 newtype->symbolic.name = symbolic.name ? new string( *symbolic.name ) : nullptr; 216 205 newtype->symbolic.params = maybeClone( symbolic.params ); 217 206 newtype->symbolic.actuals = maybeClone( symbolic.actuals ); 218 207 newtype->symbolic.assertions = maybeClone( symbolic.assertions ); 219 208 newtype->symbolic.isTypedef = symbolic.isTypedef; 220 newtype->symbolic.name = symbolic.name;221 break;222 case Variable:223 assert( false );224 // newtype->variable.assertions = maybeClone( variable.assertions );225 // newtype->variable.name = variable.name;226 // newtype->variable.tyClass = variable.tyClass;227 209 break; 228 210 case Tuple: … … 231 213 case Typeof: 232 214 newtype->typeexpr = maybeClone( typeexpr ); 233 break;234 case Attr:235 assert( false );236 // newtype->attr.expr = maybeClone( attr.expr );237 // newtype->attr.type = maybeClone( attr.type );238 215 break; 239 216 case Builtin: … … 245 222 } // TypeData::clone 246 223 247 void TypeData::print( std::ostream &os, int indent ) const { 248 using std::endl; 249 using std::string; 250 224 void TypeData::print( ostream &os, int indent ) const { 251 225 for ( int i = 0; i < DeclarationNode::NoQualifier; i += 1 ) { 252 226 if ( qualifiers[i] ) os << DeclarationNode::qualifierName[ i ] << ' '; … … 326 300 break; 327 301 case Aggregate: 328 os << DeclarationNode::aggregateName[ aggregate.kind ] << ' ' << aggregate.name << endl;302 os << DeclarationNode::aggregateName[ aggregate.kind ] << ' ' << *aggregate.name << endl; 329 303 if ( aggregate.params ) { 330 304 os << string( indent + 2, ' ' ) << "with type parameters " << endl; … … 363 337 break; 364 338 case SymbolicInst: 365 os << "instance of type " << symbolic.name;339 os << "instance of type " << *symbolic.name; 366 340 if ( symbolic.actuals ) { 367 341 os << " with parameters" << endl; … … 389 363 } // if 390 364 break; 391 case Variable:392 // os << DeclarationNode::typeClassName[ variable.tyClass ] << " variable ";393 // if ( variable.assertions ) {394 // os << endl << string( indent + 2, ' ' ) << "with assertions" << endl;395 // variable.assertions->printList( os, indent + 4 );396 // os << string( indent + 2, ' ' );397 // } // if398 break;399 365 case Tuple: 400 366 os << "tuple "; … … 409 375 typeexpr->print( os, indent + 2 ); 410 376 } // if 411 break;412 case Attr:413 // os << "attribute type decl " << attr.name << " applied to ";414 // if ( attr.expr ) {415 // attr.expr->print( os, indent + 2 );416 // } // if417 // if ( attr.type ) {418 // attr.type->print( os, indent + 2 );419 // } // if420 377 break; 421 378 case Builtin: … … 437 394 // add dtor: void ^?{}(T *) 438 395 FunctionType * dtorType = new FunctionType( Type::Qualifiers(), false ); 439 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0) );440 td->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) );396 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr ) ); 397 td->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, nullptr, false, false ) ); 441 398 442 399 // add copy ctor: void ?{}(T *, T) 443 400 FunctionType * copyCtorType = new FunctionType( Type::Qualifiers(), false ); 444 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0) );445 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0) );446 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, 0, false, false ) );401 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr ) ); 402 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr ) ); 403 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, copyCtorType, nullptr, false, false ) ); 447 404 448 405 // add default ctor: void ?{}(T *) 449 406 FunctionType * ctorType = new FunctionType( Type::Qualifiers(), false ); 450 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0) );451 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) );407 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr ) ); 408 td->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, nullptr, false, false ) ); 452 409 453 410 // add assignment operator: T * ?=?(T *, T) 454 411 FunctionType * assignType = new FunctionType( Type::Qualifiers(), false ); 455 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), td ) ), 0) );456 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0) );457 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), td->get_name(), td ), 0) );458 td->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false, false ) );412 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), td->get_name(), *i ) ), nullptr ) ); 413 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr ) ); 414 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new TypeInstType( Type::Qualifiers(), td->get_name(), *i ), nullptr ) ); 415 td->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, nullptr, false, false ) ); 459 416 } // if 460 417 } // for … … 488 445 case TypeData::Builtin: 489 446 return new VarArgsType( buildQualifiers( td ) ); 490 case TypeData::Attr:491 assert( false );492 return buildAttr( td );493 447 case TypeData::Symbolic: 494 448 case TypeData::Enum: 495 449 case TypeData::Aggregate: 496 case TypeData::Variable:497 450 assert( false ); 498 451 } // switch 499 return 0;452 return nullptr; 500 453 } // typebuild 501 454 502 455 TypeData * typeextractAggregate( const TypeData * td, bool toplevel ) { 503 TypeData * ret = 0;456 TypeData * ret = nullptr; 504 457 505 458 switch ( td->kind ) { … … 551 504 case DeclarationNode::Bool: 552 505 if ( td->signedness != DeclarationNode::NoSignedness ) { 553 throw SemanticError( st d::string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td );506 throw SemanticError( string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td ); 554 507 } // if 555 508 if ( td->length != DeclarationNode::NoLength ) { 556 throw SemanticError( st d::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );509 throw SemanticError( string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 557 510 } // if 558 511 … … 567 520 568 521 if ( td->length != DeclarationNode::NoLength ) { 569 throw SemanticError( st d::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );522 throw SemanticError( string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 570 523 } // if 571 524 … … 597 550 FloatingPoint: ; 598 551 if ( td->signedness != DeclarationNode::NoSignedness ) { 599 throw SemanticError( st d::string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td );552 throw SemanticError( string( "invalid type specifier " ) + DeclarationNode::signednessName[ td->signedness ] + " in type: ", td ); 600 553 } // if 601 554 if ( td->length == DeclarationNode::Short || td->length == DeclarationNode::LongLong ) { 602 throw SemanticError( st d::string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td );555 throw SemanticError( string( "invalid type specifier " ) + DeclarationNode::lengthName[ td->length ] + " in type: ", td ); 603 556 } // if 604 557 if ( td->basictype == DeclarationNode::Float && td->length == DeclarationNode::Long ) { … … 657 610 switch ( td->aggregate.kind ) { 658 611 case DeclarationNode::Struct: 659 at = new StructDecl( td->aggregate.name );612 at = new StructDecl( *td->aggregate.name ); 660 613 buildForall( td->aggregate.params, at->get_parameters() ); 661 614 break; 662 615 case DeclarationNode::Union: 663 at = new UnionDecl( td->aggregate.name );616 at = new UnionDecl( *td->aggregate.name ); 664 617 buildForall( td->aggregate.params, at->get_parameters() ); 665 618 break; 666 619 case DeclarationNode::Trait: 667 at = new TraitDecl( td->aggregate.name );620 at = new TraitDecl( *td->aggregate.name ); 668 621 buildList( td->aggregate.params, at->get_parameters() ); 669 622 break; … … 683 636 ReferenceToType * ret; 684 637 if ( td->aggInst.aggregate->kind == TypeData::Enum ) { 685 ret = new EnumInstType( buildQualifiers( td ), td->aggInst.aggregate->enumeration.name );638 ret = new EnumInstType( buildQualifiers( td ), *td->aggInst.aggregate->enumeration.name ); 686 639 } else { 687 640 assert( td->aggInst.aggregate->kind == TypeData::Aggregate ); 688 641 switch ( td->aggInst.aggregate->aggregate.kind ) { 689 642 case DeclarationNode::Struct: 690 ret = new StructInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name ); 643 assert( td->aggInst.aggregate->aggregate.name ); 644 ret = new StructInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name ); 691 645 break; 692 646 case DeclarationNode::Union: 693 ret = new UnionInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name );647 ret = new UnionInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name ); 694 648 break; 695 649 case DeclarationNode::Trait: 696 ret = new TraitInstType( buildQualifiers( td ), td->aggInst.aggregate->aggregate.name );650 ret = new TraitInstType( buildQualifiers( td ), *td->aggInst.aggregate->aggregate.name ); 697 651 break; 698 652 default: … … 705 659 } // buildAggInst 706 660 707 NamedTypeDecl * buildSymbolic( const TypeData * td, const st d::string & name, DeclarationNode::StorageClass sc ) {661 NamedTypeDecl * buildSymbolic( const TypeData * td, const string & name, DeclarationNode::StorageClass sc ) { 708 662 assert( td->kind == TypeData::Symbolic ); 709 663 NamedTypeDecl * ret; … … 719 673 } // buildSymbolic 720 674 721 TypeDecl * buildVariable( const TypeData * td ) {722 assert( false );723 return nullptr;724 // assert( td->kind == TypeData::Variable );725 // static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };726 727 // TypeDecl * ret = new TypeDecl( td->variable.name, DeclarationNode::NoStorageClass, 0, kindMap[ td->variable.tyClass ] );728 // buildList( td->variable.assertions, ret->get_assertions() );729 // return ret;730 } // buildSymbolic731 732 675 EnumDecl * buildEnum( const TypeData * td ) { 733 676 assert( td->kind == TypeData::Enum ); 734 EnumDecl * ret = new EnumDecl( td->enumeration.name );677 EnumDecl * ret = new EnumDecl( *td->enumeration.name ); 735 678 buildList( td->enumeration.constants, ret->get_members() ); 736 std::list< Declaration * >::iterator members = ret->get_members().begin();679 list< Declaration * >::iterator members = ret->get_members().begin(); 737 680 for ( const DeclarationNode * cur = td->enumeration. constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) { 738 681 if ( cur->has_enumeratorValue() ) { 739 682 ObjectDecl * member = dynamic_cast< ObjectDecl * >(* members); 740 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) );683 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), list< Expression * >() ) ); 741 684 } // if 742 685 } // for … … 746 689 TypeInstType * buildSymbolicInst( const TypeData * td ) { 747 690 assert( td->kind == TypeData::SymbolicInst ); 748 TypeInstType * ret = new TypeInstType( buildQualifiers( td ), td->symbolic.name, false );691 TypeInstType * ret = new TypeInstType( buildQualifiers( td ), *td->symbolic.name, false ); 749 692 buildList( td->symbolic.actuals, ret->get_parameters() ); 750 693 buildForall( td->forall, ret->get_forall() ); … … 767 710 } // buildTypeof 768 711 769 AttrType * buildAttr( const TypeData * td ) { 770 assert( false ); 771 return nullptr; 772 // assert( td->kind == TypeData::Attr ); 773 // // assert( td->attr ); 774 // AttrType * ret; 775 // if ( td->attr.expr ) { 776 // ret = new AttrType( buildQualifiers( td ), td->attr.name, td->attr.expr->build() ); 777 // } else { 778 // assert( td->attr.type ); 779 // ret = new AttrType( buildQualifiers( td ), td->attr.name, td->attr.type->buildType() ); 780 // } // if 781 // return ret; 782 } // buildAttr 783 784 Declaration * buildDecl( const TypeData * td, std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) { 712 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) { 785 713 if ( td->kind == TypeData::Function ) { 786 714 FunctionDecl * decl; … … 792 720 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn ); 793 721 } else { 794 // std::list< Label > ls;795 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( std::list< Label >() ), isInline, isNoreturn );722 // list< Label > ls; 723 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( list< Label >() ), isInline, isNoreturn ); 796 724 } // if 797 725 } else { 798 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), 0, isInline, isNoreturn );799 } // if 800 for ( DeclarationNode * cur = td->function.idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) {801 if ( cur-> get_name() != "") {802 decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name());726 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), nullptr, isInline, isNoreturn ); 727 } // if 728 for ( DeclarationNode * cur = td->function.idList; cur != nullptr; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) { 729 if ( cur->name ) { 730 decl->get_oldIdents().insert( decl->get_oldIdents().end(), *cur->name ); 803 731 } // if 804 732 } // for … … 811 739 } else if ( td->kind == TypeData::Symbolic ) { 812 740 return buildSymbolic( td, name, sc ); 813 } else if ( td->kind == TypeData::Variable ) {814 assert( false );815 return buildVariable( td );816 741 } else { 817 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, std::list< Attribute * >(), isInline, isNoreturn );742 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn ); 818 743 } // if 819 return 0;744 return nullptr; 820 745 } // buildDecl 821 746 … … 833 758 break; 834 759 default: 835 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) );760 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall ) ) ); 836 761 } // switch 837 762 } else { 838 ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0) );763 ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, nullptr, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr ) ); 839 764 } // if 840 765 return ft; -
src/Parser/TypeData.h
rac9ca96 r7756647 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 12 17:15:49201613 // Update Count : 1 2912 // Last Modified On : Mon Oct 3 12:34:08 2016 13 // Update Count : 142 14 14 // 15 15 … … 23 23 24 24 struct TypeData { 25 enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst,26 Enum, EnumConstant, Symbolic, SymbolicInst, Variable, Tuple, Typeof, Builtin, Attr};25 enum Kind { Basic, Pointer, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic, 26 SymbolicInst, Tuple, Typeof, Builtin, Unknown }; 27 27 28 28 struct Aggregate_t { 29 29 DeclarationNode::Aggregate kind; 30 std::stringname;30 const std::string * name; 31 31 DeclarationNode * params; 32 ExpressionNode 32 ExpressionNode * actuals; // holds actual parameters later applied to AggInst 33 33 DeclarationNode * fields; 34 34 bool body; … … 47 47 48 48 struct Enumeration_t { 49 std::stringname;49 const std::string * name; 50 50 DeclarationNode * constants; 51 51 }; … … 61 61 62 62 struct Symbolic_t { 63 std::stringname;63 const std::string * name; 64 64 bool isTypedef; // false => TYPEGENname, true => TYPEDEFname 65 65 DeclarationNode * params; … … 88 88 DeclarationNode * tuple; 89 89 ExpressionNode * typeexpr; 90 // Attr_t attr;91 90 // DeclarationNode::BuiltinType builtin; 92 91 … … 111 110 TupleType * buildTuple( const TypeData * ); 112 111 TypeofType * buildTypeof( const TypeData * ); 113 AttrType * buildAttr( const TypeData * ); 114 Declaration * buildDecl( const TypeData *, std::string, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = 0 ); 112 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = nullptr ); 115 113 FunctionType * buildFunction( const TypeData * ); 116 114 -
src/Parser/parser.cc
rac9ca96 r7756647 82 82 #include "TypeData.h" 83 83 #include "LinkageSpec.h" 84 using namespace std; 84 85 85 86 extern DeclarationNode * parseTree; … … 87 88 extern TypedefTable typedefTable; 88 89 89 st d::stack< LinkageSpec::Spec > linkageStack;90 91 void appendStr( st d::string *to, std::string *from ) {90 stack< LinkageSpec::Spec > linkageStack; 91 92 void appendStr( string *to, string *from ) { 92 93 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 93 94 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); … … 96 97 97 98 /* Line 268 of yacc.c */ 98 #line 99"Parser/parser.cc"99 #line 100 "Parser/parser.cc" 99 100 100 101 /* Enabling traces. */ … … 347 348 348 349 /* Line 293 of yacc.c */ 349 #line 11 5"parser.yy"350 #line 116 "parser.yy" 350 351 351 352 Token tok; … … 367 368 368 369 /* Line 293 of yacc.c */ 369 #line 37 0"Parser/parser.cc"370 #line 371 "Parser/parser.cc" 370 371 } YYSTYPE; 371 372 # define YYSTYPE_IS_TRIVIAL 1 … … 379 380 380 381 /* Line 343 of yacc.c */ 381 #line 38 2"Parser/parser.cc"382 #line 383 "Parser/parser.cc" 382 383 383 384 #ifdef short … … 598 599 #define YYFINAL 250 599 600 /* YYLAST -- Last index in YYTABLE. */ 600 #define YYLAST 108 63601 #define YYLAST 10888 601 602 602 603 /* YYNTOKENS -- Number of terminals. */ 603 604 #define YYNTOKENS 133 604 605 /* YYNNTS -- Number of nonterminals. */ 605 #define YYNNTS 24 1606 #define YYNNTS 242 606 607 /* YYNRULES -- Number of rules. */ 607 #define YYNRULES 75 1608 #define YYNRULES 754 608 609 /* YYNRULES -- Number of states. */ 609 #define YYNSTATES 155 5610 #define YYNSTATES 1558 610 611 611 612 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 666 667 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 667 668 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 668 8 6, 89, 92, 100, 105, 107, 111, 112, 114, 116,669 120, 12 2, 126, 134, 138, 146, 148, 150, 152, 155,670 158, 16 1, 164, 167, 170, 175, 178, 183, 190, 192,671 19 7, 202, 204, 206, 208, 210, 212, 214, 216, 221,672 22 6, 228, 232, 236, 240, 242, 246, 250, 252, 256,673 2 60, 262, 266, 270, 274, 278, 280, 284, 288, 290,674 29 4, 296, 300, 302, 306, 308, 312, 314, 318, 320,675 32 6, 331, 337, 339, 341, 345, 348, 349, 351, 353,676 35 5, 357, 359, 361, 363, 365, 367, 369, 371, 373,677 37 5, 378, 384, 391, 399, 401, 405, 407, 411, 412,678 41 4, 416, 418, 420, 422, 424, 426, 428, 430, 437,679 4 42, 445, 453, 455, 459, 461, 464, 466, 469, 471,680 474, 477, 4 83, 491, 497, 507, 513, 523, 525, 529,681 531, 533, 537, 5 41, 544, 546, 549, 552, 553, 555,682 5 58, 562, 563, 565, 568, 572, 576, 581, 582, 584,683 58 6, 589, 595, 603, 610, 617, 622, 626, 631, 634,684 63 8, 641, 645, 649, 653, 657, 663, 667, 671, 676,685 67 8, 684, 691, 697, 704, 714, 725, 735, 746, 749,686 7 51, 754, 757, 760, 762, 769, 778, 789, 802, 817,687 818, 820, 821, 823, 825, 829, 834, 842, 843, 845,688 8 49, 851, 855, 857, 859, 861, 865, 867, 869, 871,689 875, 87 6, 878, 882, 887, 889, 893, 895, 897, 901,690 90 5, 909, 913, 917, 920, 924, 931, 935, 939, 944,691 94 6, 949, 952, 956, 962, 971, 979, 987, 993, 1003,692 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052,693 10 56, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088,694 109 0, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108,695 111 0, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134,696 113 6, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155,697 115 7, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175,698 117 7, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203,699 1205, 120 8, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239,700 1242, 124 6, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268,701 127 1, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305,702 130 8, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334,703 133 8, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361,704 136 3, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396,705 139 9, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432,706 143 8, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471,707 147 7, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506,708 15 09, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534,709 153 6, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555,710 155 7, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579,711 1581, 158 4, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613,712 161 9, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654,713 165 9, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683,714 168 6, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731,715 173 5, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781,716 178 5, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813,717 1817, 181 8, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839,718 1842, 184 7, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885,719 18 92, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914,720 191 7, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944,721 194 6, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974,722 197 7, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019,723 20 28, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061,724 206 3, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104,725 210 7, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135,726 21 40, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180,727 218 3, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228,728 22 31, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257,729 22 62, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298,730 2 302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344,731 234 6, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385,732 2388, 239 2, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431,733 24 33, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479,734 24 82, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513,735 251 7, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548,736 25 51, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585,737 258 8, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634,738 263 6, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665,739 26 70, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712,740 271 4, 2715669 82, 90, 93, 96, 104, 109, 111, 115, 116, 118, 670 120, 124, 126, 130, 138, 142, 150, 152, 154, 156, 671 158, 160, 163, 166, 169, 172, 175, 178, 183, 186, 672 191, 198, 200, 205, 210, 212, 214, 216, 218, 220, 673 222, 224, 229, 234, 236, 240, 244, 248, 250, 254, 674 258, 260, 264, 268, 270, 274, 278, 282, 286, 288, 675 292, 296, 298, 302, 304, 308, 310, 314, 316, 320, 676 322, 326, 328, 334, 339, 345, 347, 349, 353, 356, 677 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 678 377, 379, 381, 383, 386, 392, 399, 407, 409, 413, 679 415, 419, 420, 422, 424, 426, 428, 430, 432, 434, 680 436, 438, 445, 450, 453, 461, 463, 467, 469, 472, 681 474, 477, 479, 482, 485, 491, 499, 505, 515, 521, 682 531, 533, 537, 539, 541, 545, 549, 552, 554, 557, 683 560, 561, 563, 566, 570, 571, 573, 576, 580, 584, 684 589, 590, 592, 594, 597, 603, 611, 618, 625, 630, 685 634, 639, 642, 646, 649, 653, 657, 661, 665, 671, 686 675, 679, 684, 686, 692, 699, 705, 712, 722, 733, 687 743, 754, 757, 759, 762, 765, 768, 770, 777, 786, 688 797, 810, 825, 826, 828, 829, 831, 833, 837, 842, 689 850, 851, 853, 857, 859, 863, 865, 867, 869, 873, 690 875, 877, 879, 883, 884, 886, 890, 895, 897, 901, 691 903, 905, 909, 913, 917, 921, 925, 928, 932, 939, 692 943, 947, 952, 954, 957, 960, 964, 970, 979, 987, 693 995, 1001, 1011, 1014, 1017, 1023, 1027, 1033, 1038, 1042, 694 1047, 1052, 1060, 1064, 1068, 1072, 1076, 1081, 1088, 1090, 695 1092, 1094, 1096, 1098, 1100, 1102, 1104, 1105, 1107, 1109, 696 1112, 1114, 1116, 1118, 1120, 1122, 1124, 1126, 1127, 1133, 697 1135, 1138, 1142, 1144, 1147, 1149, 1151, 1153, 1155, 1157, 698 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 1177, 699 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1194, 1197, 1201, 700 1205, 1207, 1211, 1213, 1216, 1219, 1222, 1227, 1232, 1237, 701 1242, 1244, 1247, 1250, 1254, 1256, 1259, 1262, 1264, 1267, 702 1270, 1274, 1276, 1279, 1282, 1284, 1286, 1291, 1294, 1295, 703 1302, 1310, 1313, 1316, 1319, 1320, 1323, 1326, 1330, 1333, 704 1337, 1339, 1342, 1346, 1349, 1352, 1357, 1358, 1360, 1363, 705 1366, 1368, 1369, 1371, 1374, 1377, 1383, 1386, 1387, 1395, 706 1398, 1403, 1404, 1407, 1408, 1410, 1412, 1414, 1420, 1426, 707 1432, 1434, 1440, 1446, 1456, 1458, 1464, 1465, 1467, 1469, 708 1475, 1477, 1479, 1485, 1491, 1493, 1497, 1501, 1506, 1508, 709 1510, 1512, 1514, 1517, 1519, 1523, 1527, 1529, 1532, 1534, 710 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1554, 1556, 711 1558, 1560, 1563, 1565, 1567, 1569, 1572, 1573, 1576, 1579, 712 1581, 1586, 1587, 1589, 1592, 1596, 1601, 1604, 1607, 1609, 713 1612, 1615, 1621, 1627, 1635, 1642, 1644, 1647, 1650, 1654, 714 1656, 1659, 1662, 1667, 1670, 1675, 1676, 1681, 1684, 1686, 715 1688, 1690, 1691, 1694, 1700, 1706, 1720, 1722, 1724, 1728, 716 1732, 1735, 1739, 1743, 1746, 1751, 1753, 1760, 1770, 1771, 717 1783, 1785, 1789, 1793, 1797, 1799, 1801, 1807, 1810, 1816, 718 1817, 1819, 1821, 1825, 1826, 1828, 1830, 1832, 1834, 1835, 719 1842, 1845, 1847, 1850, 1855, 1858, 1862, 1866, 1870, 1875, 720 1881, 1887, 1893, 1900, 1902, 1904, 1906, 1910, 1911, 1917, 721 1918, 1920, 1922, 1925, 1932, 1934, 1938, 1939, 1941, 1946, 722 1948, 1950, 1952, 1954, 1957, 1959, 1962, 1965, 1967, 1971, 723 1974, 1978, 1982, 1985, 1990, 1995, 1999, 2008, 2012, 2015, 724 2017, 2020, 2027, 2036, 2040, 2043, 2047, 2051, 2056, 2061, 725 2065, 2067, 2069, 2071, 2076, 2083, 2087, 2090, 2094, 2098, 726 2103, 2108, 2112, 2115, 2117, 2120, 2123, 2125, 2129, 2132, 727 2136, 2140, 2143, 2148, 2153, 2157, 2164, 2173, 2177, 2180, 728 2182, 2185, 2188, 2191, 2195, 2199, 2202, 2207, 2212, 2216, 729 2223, 2232, 2236, 2239, 2241, 2244, 2247, 2249, 2251, 2254, 730 2258, 2262, 2265, 2270, 2277, 2286, 2288, 2291, 2294, 2296, 731 2299, 2302, 2306, 2310, 2312, 2317, 2322, 2326, 2332, 2341, 732 2345, 2348, 2352, 2354, 2360, 2366, 2373, 2380, 2382, 2385, 733 2388, 2390, 2393, 2396, 2400, 2404, 2406, 2411, 2416, 2420, 734 2426, 2435, 2439, 2441, 2444, 2446, 2449, 2456, 2462, 2469, 735 2477, 2485, 2487, 2490, 2493, 2495, 2498, 2501, 2505, 2509, 736 2511, 2516, 2521, 2525, 2534, 2538, 2540, 2542, 2545, 2547, 737 2549, 2552, 2556, 2559, 2563, 2566, 2570, 2574, 2577, 2582, 738 2586, 2589, 2593, 2596, 2601, 2605, 2608, 2615, 2622, 2629, 739 2637, 2639, 2642, 2644, 2646, 2648, 2651, 2655, 2658, 2662, 740 2665, 2669, 2673, 2678, 2681, 2685, 2690, 2693, 2699, 2705, 741 2712, 2719, 2720, 2722, 2723 741 742 }; 742 743 … … 744 745 static const yytype_int16 yyrhs[] = 745 746 { 746 30 2, 0, -1, -1, -1, 79, -1, 80, -1, 81,747 303, 0, -1, -1, -1, 79, -1, 80, -1, 81, 747 748 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 748 749 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 749 750 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 750 109, 17 0, 110, -1, 109, 174, 110, -1, 143, -1,751 144, 111, 134, 16 5, 135, 112, -1, 144, 109, 145,751 109, 171, 110, -1, 109, 175, 110, -1, 143, -1, 752 144, 111, 134, 166, 135, 112, -1, 144, 109, 145, 752 753 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 753 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 754 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 755 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 756 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 757 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 758 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 759 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 760 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 761 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 762 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 763 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 764 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 765 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 766 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 767 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 768 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 769 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 770 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 771 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 772 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 773 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 774 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 775 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 776 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 777 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 778 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 781 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 782 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 783 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 784 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 785 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 786 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 787 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 788 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 789 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 790 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 791 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 792 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 793 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 794 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 795 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 796 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 797 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 798 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 799 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 800 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 801 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 802 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 803 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 804 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 805 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 806 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 807 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 808 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 809 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 810 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 811 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 812 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 813 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 814 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 815 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 816 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 817 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 818 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 820 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 821 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 822 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 823 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 824 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 825 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 826 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 827 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 828 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 829 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 830 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 831 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 832 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 833 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 834 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 835 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 836 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 837 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 838 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 839 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 840 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 841 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 842 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 843 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 844 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 845 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 846 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 847 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 848 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 849 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 850 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 851 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 852 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 853 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 854 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 855 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 856 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 857 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 858 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 859 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 865 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 866 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 870 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 871 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 872 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 873 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 896 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 897 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 898 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 902 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 906 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 907 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 908 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 909 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 910 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 911 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 912 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 913 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 914 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 915 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 916 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 917 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 918 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 919 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 920 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 921 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 922 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 923 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 924 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 925 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 926 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 927 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 928 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 929 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 930 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 931 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 932 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 933 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 934 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 935 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 936 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 937 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 938 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 939 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 940 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 941 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 942 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 943 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 944 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 945 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 946 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 947 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 948 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 949 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 950 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 951 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 952 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 953 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 954 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 955 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 956 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 957 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 958 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 959 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 960 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 961 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 962 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 963 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 964 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 965 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 966 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 967 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 968 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 969 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 970 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 971 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 972 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 973 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 974 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 975 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 976 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 977 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 978 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 979 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 980 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 981 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 982 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 983 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 984 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 985 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 986 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 987 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 988 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 989 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 990 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 991 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 992 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 993 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 994 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 995 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 996 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 997 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 998 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 999 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1000 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1001 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1002 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1003 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1004 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1005 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1006 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1007 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1008 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1009 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1010 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1011 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1012 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1013 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1014 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1015 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1016 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1017 -1, -1, 116, -1, -1, 131, 165, -1 754 147, 135, 112, -1, 144, 113, 79, -1, 144, 85, 755 139, -1, 144, 85, 111, 134, 147, 135, 112, -1, 756 144, 86, -1, 144, 87, -1, 109, 276, 110, 114, 757 280, 373, 115, -1, 144, 114, 145, 115, -1, 146, 758 -1, 145, 116, 146, -1, -1, 166, -1, 148, -1, 759 147, 116, 148, -1, 149, -1, 149, 113, 148, -1, 760 149, 113, 111, 134, 147, 135, 112, -1, 149, 85, 761 148, -1, 149, 85, 111, 134, 147, 135, 112, -1, 762 139, -1, 79, -1, 144, -1, 136, -1, 141, -1, 763 40, 153, -1, 151, 153, -1, 152, 153, -1, 86, 764 150, -1, 87, 150, -1, 37, 150, -1, 37, 109, 765 276, 110, -1, 66, 150, -1, 66, 109, 276, 110, 766 -1, 38, 109, 276, 116, 139, 110, -1, 76, -1, 767 76, 109, 146, 110, -1, 76, 109, 277, 110, -1, 768 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 769 122, -1, 150, -1, 109, 276, 110, 153, -1, 109, 770 276, 110, 169, -1, 153, -1, 154, 117, 153, -1, 771 154, 123, 153, -1, 154, 124, 153, -1, 154, -1, 772 155, 119, 154, -1, 155, 120, 154, -1, 155, -1, 773 156, 88, 155, -1, 156, 89, 155, -1, 156, -1, 774 157, 125, 156, -1, 157, 126, 156, -1, 157, 90, 775 156, -1, 157, 91, 156, -1, 157, -1, 158, 92, 776 157, -1, 158, 93, 157, -1, 158, -1, 159, 118, 777 158, -1, 159, -1, 160, 127, 159, -1, 160, -1, 778 161, 128, 160, -1, 161, -1, 162, 94, 161, -1, 779 162, -1, 163, 95, 162, -1, 163, -1, 163, 129, 780 171, 130, 164, -1, 163, 129, 130, 164, -1, 163, 781 129, 171, 130, 169, -1, 164, -1, 164, -1, 150, 782 168, 166, -1, 169, 374, -1, -1, 166, -1, 131, 783 -1, 107, -1, 97, -1, 98, -1, 99, -1, 100, 784 -1, 101, -1, 102, -1, 103, -1, 104, -1, 105, 785 -1, 106, -1, 111, 112, -1, 111, 134, 166, 135, 786 112, -1, 111, 134, 116, 170, 135, 112, -1, 111, 787 134, 166, 116, 170, 135, 112, -1, 167, -1, 170, 788 116, 167, -1, 166, -1, 171, 116, 166, -1, -1, 789 171, -1, 174, -1, 175, -1, 179, -1, 180, -1, 790 192, -1, 194, -1, 195, -1, 200, -1, 127, 144, 791 114, 145, 115, 132, -1, 72, 130, 313, 173, -1, 792 114, 115, -1, 114, 134, 134, 211, 176, 135, 115, 793 -1, 177, -1, 176, 134, 177, -1, 214, -1, 40, 794 214, -1, 309, -1, 173, 135, -1, 173, -1, 178, 795 173, -1, 172, 132, -1, 41, 109, 171, 110, 173, 796 -1, 41, 109, 171, 110, 173, 42, 173, -1, 43, 797 109, 171, 110, 185, -1, 43, 109, 171, 110, 114, 798 134, 207, 186, 115, -1, 53, 109, 171, 110, 185, 799 -1, 53, 109, 171, 110, 114, 134, 207, 188, 115, 800 -1, 165, -1, 165, 96, 165, -1, 311, -1, 181, 801 -1, 182, 116, 181, -1, 44, 182, 130, -1, 45, 802 130, -1, 183, -1, 184, 183, -1, 184, 173, -1, 803 -1, 187, -1, 184, 178, -1, 187, 184, 178, -1, 804 -1, 189, -1, 184, 191, -1, 184, 178, 190, -1, 805 189, 184, 191, -1, 189, 184, 178, 190, -1, -1, 806 191, -1, 56, -1, 56, 132, -1, 47, 109, 171, 807 110, 173, -1, 46, 173, 47, 109, 171, 110, 132, 808 -1, 48, 109, 134, 193, 110, 173, -1, 172, 135, 809 132, 172, 132, 172, -1, 214, 172, 132, 172, -1, 810 51, 72, 132, -1, 51, 117, 171, 132, -1, 50, 811 132, -1, 50, 72, 132, -1, 49, 132, -1, 49, 812 72, 132, -1, 52, 172, 132, -1, 61, 167, 132, 813 -1, 62, 167, 132, -1, 62, 167, 63, 166, 132, 814 -1, 57, 175, 196, -1, 57, 175, 198, -1, 57, 815 175, 196, 198, -1, 197, -1, 58, 109, 96, 110, 816 175, -1, 197, 58, 109, 96, 110, 175, -1, 59, 817 109, 96, 110, 175, -1, 197, 59, 109, 96, 110, 818 175, -1, 58, 109, 134, 134, 199, 135, 110, 175, 819 135, -1, 197, 58, 109, 134, 134, 199, 135, 110, 820 175, 135, -1, 59, 109, 134, 134, 199, 135, 110, 821 175, 135, -1, 197, 59, 109, 134, 134, 199, 135, 822 110, 175, 135, -1, 60, 175, -1, 227, -1, 227, 823 310, -1, 227, 358, -1, 367, 139, -1, 367, -1, 824 64, 201, 109, 141, 110, 132, -1, 64, 201, 109, 825 141, 130, 202, 110, 132, -1, 64, 201, 109, 141, 826 130, 202, 130, 202, 110, 132, -1, 64, 201, 109, 827 141, 130, 202, 130, 202, 130, 205, 110, 132, -1, 828 64, 201, 51, 109, 141, 130, 130, 202, 130, 205, 829 130, 206, 110, 132, -1, -1, 11, -1, -1, 203, 830 -1, 204, -1, 203, 116, 204, -1, 141, 109, 165, 831 110, -1, 111, 165, 112, 141, 109, 165, 110, -1, 832 -1, 141, -1, 205, 116, 141, -1, 139, -1, 206, 833 116, 139, -1, 135, -1, 208, -1, 214, -1, 208, 834 134, 214, -1, 135, -1, 210, -1, 224, -1, 210, 835 134, 224, -1, -1, 212, -1, 29, 213, 132, -1, 836 212, 29, 213, 132, -1, 275, -1, 213, 116, 275, 837 -1, 215, -1, 224, -1, 216, 135, 132, -1, 221, 838 135, 132, -1, 218, 135, 132, -1, 294, 135, 132, 839 -1, 297, 135, 132, -1, 217, 278, -1, 233, 217, 840 278, -1, 216, 135, 116, 134, 273, 278, -1, 368, 841 273, 312, -1, 371, 273, 312, -1, 229, 371, 273, 842 312, -1, 219, -1, 229, 219, -1, 233, 219, -1, 843 233, 229, 219, -1, 218, 135, 116, 134, 273, -1, 844 111, 112, 273, 109, 134, 261, 135, 110, -1, 371, 845 273, 109, 134, 261, 135, 110, -1, 220, 273, 109, 846 134, 261, 135, 110, -1, 111, 134, 263, 135, 112, 847 -1, 111, 134, 263, 135, 116, 134, 264, 135, 112, 848 -1, 3, 217, -1, 3, 219, -1, 221, 135, 116, 849 134, 139, -1, 3, 227, 310, -1, 222, 135, 116, 850 134, 310, -1, 229, 3, 227, 310, -1, 227, 3, 851 310, -1, 227, 3, 229, 310, -1, 3, 139, 131, 852 166, -1, 223, 135, 116, 134, 139, 131, 166, -1, 853 225, 135, 132, -1, 222, 135, 132, -1, 223, 135, 854 132, -1, 241, 135, 132, -1, 226, 310, 312, 278, 855 -1, 225, 116, 313, 310, 312, 278, -1, 237, -1, 856 241, -1, 243, -1, 284, -1, 238, -1, 242, -1, 857 244, -1, 285, -1, -1, 229, -1, 230, -1, 229, 858 230, -1, 231, -1, 315, -1, 10, -1, 12, -1, 859 11, -1, 14, -1, 67, -1, -1, 13, 109, 232, 860 287, 110, -1, 234, -1, 229, 234, -1, 233, 229, 861 234, -1, 235, -1, 234, 235, -1, 5, -1, 7, 862 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69, 863 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18, 864 -1, 19, -1, 17, -1, 22, -1, 23, -1, 15, 865 -1, 25, -1, 26, -1, 27, -1, 24, -1, 238, 866 -1, 233, 238, -1, 237, 235, -1, 237, 235, 229, 867 -1, 237, 235, 238, -1, 239, -1, 228, 240, 228, 868 -1, 236, -1, 229, 236, -1, 239, 230, -1, 239, 869 236, -1, 28, 109, 277, 110, -1, 28, 109, 171, 870 110, -1, 78, 109, 277, 110, -1, 78, 109, 171, 871 110, -1, 242, -1, 233, 242, -1, 241, 235, -1, 872 241, 235, 229, -1, 245, -1, 229, 245, -1, 242, 873 230, -1, 244, -1, 233, 244, -1, 243, 235, -1, 874 243, 235, 229, -1, 74, -1, 229, 74, -1, 244, 875 230, -1, 246, -1, 257, -1, 248, 114, 249, 115, 876 -1, 248, 275, -1, -1, 248, 275, 247, 114, 249, 877 115, -1, 248, 109, 293, 110, 114, 249, 115, -1, 878 248, 286, -1, 31, 313, -1, 32, 313, -1, -1, 879 249, 250, -1, 251, 132, -1, 40, 251, 132, -1, 880 252, 132, -1, 40, 252, 132, -1, 367, -1, 367, 881 275, -1, 251, 116, 275, -1, 251, 116, -1, 227, 882 253, -1, 252, 116, 313, 253, -1, -1, 255, -1, 883 319, 254, -1, 332, 254, -1, 358, -1, -1, 255, 884 -1, 130, 165, -1, 30, 313, -1, 256, 114, 259, 885 373, 115, -1, 256, 275, -1, -1, 256, 275, 258, 886 114, 259, 373, 115, -1, 275, 260, -1, 259, 116, 887 275, 260, -1, -1, 131, 165, -1, -1, 262, -1, 888 264, -1, 263, -1, 263, 135, 116, 134, 264, -1, 889 264, 135, 116, 134, 96, -1, 263, 135, 116, 134, 890 96, -1, 268, -1, 264, 135, 116, 134, 268, -1, 891 263, 135, 116, 134, 268, -1, 263, 135, 116, 134, 892 264, 135, 116, 134, 268, -1, 269, -1, 264, 135, 893 116, 134, 269, -1, -1, 266, -1, 267, -1, 267, 894 135, 116, 134, 96, -1, 271, -1, 270, -1, 267, 895 135, 116, 134, 271, -1, 267, 135, 116, 134, 270, 896 -1, 270, -1, 363, 273, 374, -1, 371, 273, 374, 897 -1, 229, 371, 273, 374, -1, 219, -1, 271, -1, 898 363, -1, 371, -1, 229, 371, -1, 372, -1, 226, 899 337, 374, -1, 226, 341, 374, -1, 226, -1, 226, 900 352, -1, 139, -1, 272, 116, 139, -1, 137, -1, 901 74, -1, 75, -1, 138, -1, 74, -1, 75, -1, 902 139, -1, 74, -1, 75, -1, 367, -1, 227, -1, 903 227, 358, -1, 367, -1, 372, -1, 227, -1, 227, 904 346, -1, -1, 131, 279, -1, 107, 279, -1, 166, 905 -1, 114, 280, 373, 115, -1, -1, 279, -1, 281, 906 279, -1, 280, 116, 279, -1, 280, 116, 281, 279, 907 -1, 282, 130, -1, 275, 130, -1, 283, -1, 282, 908 283, -1, 113, 275, -1, 111, 134, 166, 135, 112, 909 -1, 111, 134, 311, 135, 112, -1, 111, 134, 165, 910 96, 165, 135, 112, -1, 113, 111, 134, 147, 135, 911 112, -1, 285, -1, 233, 285, -1, 284, 235, -1, 912 284, 235, 229, -1, 286, -1, 229, 286, -1, 285, 913 230, -1, 75, 109, 293, 110, -1, 288, 374, -1, 914 287, 116, 288, 374, -1, -1, 290, 275, 289, 291, 915 -1, 227, 337, -1, 33, -1, 35, -1, 34, -1, 916 -1, 291, 292, -1, 128, 275, 109, 293, 110, -1, 917 128, 114, 134, 299, 115, -1, 128, 109, 134, 287, 918 135, 110, 114, 134, 299, 115, 109, 293, 110, -1, 919 277, -1, 166, -1, 293, 116, 277, -1, 293, 116, 920 166, -1, 33, 295, -1, 234, 33, 295, -1, 294, 921 116, 295, -1, 296, 291, -1, 296, 291, 131, 277, 922 -1, 275, -1, 274, 109, 134, 287, 135, 110, -1, 923 36, 275, 109, 134, 287, 135, 110, 114, 115, -1, 924 -1, 36, 275, 109, 134, 287, 135, 110, 114, 298, 925 299, 115, -1, 300, -1, 299, 134, 300, -1, 301, 926 135, 132, -1, 302, 135, 132, -1, 217, -1, 219, 927 -1, 301, 135, 116, 134, 273, -1, 227, 310, -1, 928 302, 135, 116, 134, 310, -1, -1, 304, -1, 306, 929 -1, 304, 134, 306, -1, -1, 304, -1, 214, -1, 930 308, -1, 200, -1, -1, 5, 82, 307, 114, 305, 931 115, -1, 40, 306, -1, 309, -1, 324, 175, -1, 932 328, 134, 209, 175, -1, 218, 175, -1, 226, 324, 933 175, -1, 229, 324, 175, -1, 233, 324, 175, -1, 934 233, 229, 324, 175, -1, 226, 328, 134, 209, 175, 935 -1, 229, 328, 134, 209, 175, -1, 233, 328, 134, 936 209, 175, -1, 233, 229, 328, 134, 209, 175, -1, 937 319, -1, 332, -1, 324, -1, 165, 122, 165, -1, 938 -1, 64, 109, 142, 110, 313, -1, -1, 314, -1, 939 315, -1, 314, 315, -1, 39, 109, 109, 316, 110, 940 110, -1, 317, -1, 316, 116, 317, -1, -1, 318, 941 -1, 318, 109, 172, 110, -1, 273, -1, 235, -1, 942 236, -1, 230, -1, 320, 313, -1, 321, -1, 322, 943 313, -1, 323, 313, -1, 137, -1, 109, 320, 110, 944 -1, 151, 319, -1, 151, 229, 319, -1, 109, 321, 945 110, -1, 320, 350, -1, 109, 321, 110, 350, -1, 946 109, 322, 110, 351, -1, 109, 322, 110, -1, 109, 947 321, 110, 109, 134, 265, 135, 110, -1, 109, 323, 948 110, -1, 325, 313, -1, 326, -1, 327, 313, -1, 949 320, 109, 134, 265, 135, 110, -1, 109, 326, 110, 950 109, 134, 265, 135, 110, -1, 109, 325, 110, -1, 951 151, 324, -1, 151, 229, 324, -1, 109, 326, 110, 952 -1, 109, 326, 110, 350, -1, 109, 327, 110, 351, 953 -1, 109, 327, 110, -1, 329, -1, 330, -1, 331, 954 -1, 320, 109, 272, 110, -1, 109, 330, 110, 109, 955 272, 110, -1, 109, 329, 110, -1, 151, 328, -1, 956 151, 229, 328, -1, 109, 330, 110, -1, 109, 330, 957 110, 350, -1, 109, 331, 110, 351, -1, 109, 331, 958 110, -1, 333, 313, -1, 334, -1, 335, 313, -1, 959 336, 313, -1, 342, -1, 109, 333, 110, -1, 151, 960 332, -1, 151, 229, 332, -1, 109, 334, 110, -1, 961 333, 350, -1, 109, 334, 110, 350, -1, 109, 335, 962 110, 351, -1, 109, 335, 110, -1, 333, 109, 134, 963 265, 135, 110, -1, 109, 334, 110, 109, 134, 265, 964 135, 110, -1, 109, 336, 110, -1, 320, 313, -1, 965 338, -1, 339, 313, -1, 340, 313, -1, 151, 337, 966 -1, 151, 229, 337, -1, 109, 338, 110, -1, 320, 967 356, -1, 109, 338, 110, 350, -1, 109, 339, 110, 968 351, -1, 109, 339, 110, -1, 320, 109, 134, 265, 969 135, 110, -1, 109, 338, 110, 109, 134, 265, 135, 970 110, -1, 109, 340, 110, -1, 342, 313, -1, 343, 971 -1, 344, 313, -1, 345, 313, -1, 74, -1, 75, 972 -1, 151, 341, -1, 151, 229, 341, -1, 109, 343, 973 110, -1, 342, 356, -1, 109, 343, 110, 356, -1, 974 342, 109, 134, 265, 135, 110, -1, 109, 343, 110, 975 109, 134, 265, 135, 110, -1, 347, -1, 348, 313, 976 -1, 349, 313, -1, 151, -1, 151, 229, -1, 151, 977 346, -1, 151, 229, 346, -1, 109, 347, 110, -1, 978 350, -1, 109, 347, 110, 350, -1, 109, 348, 110, 979 351, -1, 109, 348, 110, -1, 109, 134, 265, 135, 980 110, -1, 109, 347, 110, 109, 134, 265, 135, 110, 981 -1, 109, 349, 110, -1, 111, 112, -1, 111, 112, 982 351, -1, 351, -1, 111, 134, 166, 135, 112, -1, 983 111, 134, 117, 135, 112, -1, 351, 111, 134, 166, 984 135, 112, -1, 351, 111, 134, 117, 135, 112, -1, 985 353, -1, 354, 313, -1, 355, 313, -1, 151, -1, 986 151, 229, -1, 151, 352, -1, 151, 229, 352, -1, 987 109, 353, 110, -1, 356, -1, 109, 353, 110, 356, 988 -1, 109, 354, 110, 351, -1, 109, 354, 110, -1, 989 109, 134, 265, 135, 110, -1, 109, 353, 110, 109, 990 134, 265, 135, 110, -1, 109, 355, 110, -1, 357, 991 -1, 357, 351, -1, 351, -1, 111, 112, -1, 111, 992 134, 229, 117, 135, 112, -1, 111, 134, 229, 135, 993 112, -1, 111, 134, 229, 166, 135, 112, -1, 111, 994 134, 7, 228, 166, 135, 112, -1, 111, 134, 229, 995 7, 166, 135, 112, -1, 359, -1, 360, 313, -1, 996 361, 313, -1, 151, -1, 151, 229, -1, 151, 358, 997 -1, 151, 229, 358, -1, 109, 359, 110, -1, 350, 998 -1, 109, 359, 110, 350, -1, 109, 360, 110, 351, 999 -1, 109, 360, 110, -1, 109, 359, 110, 109, 134, 1000 265, 135, 110, -1, 109, 361, 110, -1, 363, -1, 1001 371, -1, 229, 371, -1, 364, -1, 365, -1, 151, 1002 227, -1, 229, 151, 227, -1, 151, 372, -1, 229, 1003 151, 372, -1, 151, 362, -1, 229, 151, 362, -1, 1004 111, 112, 227, -1, 366, 227, -1, 111, 112, 351, 1005 227, -1, 366, 351, 227, -1, 351, 227, -1, 111, 1006 112, 364, -1, 366, 364, -1, 111, 112, 351, 364, 1007 -1, 366, 351, 364, -1, 351, 364, -1, 111, 134, 1008 229, 117, 135, 112, -1, 111, 134, 229, 166, 135, 1009 112, -1, 111, 134, 233, 166, 135, 112, -1, 111, 1010 134, 233, 229, 166, 135, 112, -1, 371, -1, 229, 1011 371, -1, 368, -1, 369, -1, 370, -1, 151, 227, 1012 -1, 229, 151, 227, -1, 151, 372, -1, 229, 151, 1013 372, -1, 151, 367, -1, 229, 151, 367, -1, 111, 1014 112, 227, -1, 111, 112, 351, 227, -1, 351, 227, 1015 -1, 111, 112, 369, -1, 111, 112, 351, 369, -1, 1016 351, 369, -1, 111, 134, 264, 135, 112, -1, 111, 1017 112, 109, 261, 110, -1, 371, 109, 134, 261, 135, 1018 110, -1, 220, 109, 134, 261, 135, 110, -1, -1, 1019 116, -1, -1, 131, 166, -1 1018 1020 }; 1019 1021 … … 1021 1023 static const yytype_uint16 yyrline[] = 1022 1024 { 1023 0, 30 0, 300, 304, 311, 312, 313, 317, 318, 319,1024 32 3, 324, 328, 329, 333, 334, 338, 342, 343, 354,1025 35 6, 358, 360, 365, 366, 372, 376, 378, 380, 382,1026 38 4, 386, 388, 390, 399, 400, 406, 407, 411, 412,1027 416, 420, 42 2, 424, 426, 431, 434, 436, 438, 443,1028 4 56, 458, 460, 462, 464, 466, 468, 470, 472, 474,1029 47 6, 483, 484, 490, 491, 492, 493, 497, 498, 500,1030 50 5, 506, 508, 510, 515, 516, 518, 523, 524, 526,1031 53 1, 532, 534, 536, 538, 543, 544, 546, 551, 552,1032 55 7, 558, 563, 564, 569, 570, 575, 576, 581, 582,1033 585, 5 87, 592, 597, 598, 600, 606, 607, 611, 612,1034 61 3, 614, 615, 616, 617, 618, 619, 620, 621, 622,1035 62 8, 630, 632, 634, 639, 640, 645, 646, 652, 653,1036 65 9, 660, 661, 662, 663, 664, 665, 666, 667, 677,1037 6 84, 686, 696, 697, 702, 704, 710, 712, 716, 717,1038 72 2, 727, 730, 732, 734, 744, 746, 757, 758, 760,1039 76 4, 766, 770, 771, 776, 777, 781, 786, 787, 791,1040 79 3, 799, 800, 804, 806, 808, 810, 816, 817, 821,1041 82 3, 828, 830, 832, 837, 839, 844, 846, 850, 853,1042 85 7, 860, 864, 866, 868, 870, 875, 877, 879, 884,1043 886, 888, 89 0, 892, 897, 899, 901, 903, 908, 920,1044 9 21, 926, 928, 933, 937, 939, 941, 943, 945, 951,1045 952, 95 8, 959, 963, 964, 969, 971, 977, 978, 980,1046 98 5, 990, 1000, 1002, 1006, 1007, 1012, 1014, 1018, 1019,1047 1023, 102 5, 1029, 1030, 1034, 1035, 1039, 1040, 1055, 1056,1048 10 57, 1058, 1059, 1063, 1068, 1075, 1085, 1090, 1095, 1103,1049 1 108, 1113, 1118, 1123, 1131, 1153, 1158, 1165, 1167, 1174,1050 117 9, 1184, 1195, 1200, 1205, 1210, 1215, 1224, 1229, 1237,1051 123 8, 1239, 1240, 1246, 1251, 1259, 1260, 1261, 1262, 1266,1052 12 67, 1268, 1269, 1274, 1275, 1284, 1285, 1290, 1291, 1296,1053 129 8, 1300, 1302, 1304, 1307, 1306, 1318, 1319, 1321, 1331,1054 13 32, 1337, 1339, 1341, 1343, 1345, 1348, 1350, 1353, 1358,1055 13 60, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378,1056 138 0, 1382, 1388, 1389, 1391, 1393, 1395, 1400, 1401, 1407,1057 140 8, 1410, 1412, 1417, 1419, 1421, 1423, 1428, 1429, 1431,1058 143 3, 1438, 1439, 1441, 1446, 1447, 1449, 1451, 1456, 1458,1059 1460, 1465, 146 6, 1470, 1472, 1478, 1477, 1481, 1483, 1488,1060 1490, 149 6, 1497, 1502, 1503, 1505, 1506, 1515, 1516, 1518,1061 152 0, 1525, 1527, 1533, 1534, 1536, 1539, 1542, 1547, 1548,1062 155 3, 1558, 1562, 1564, 1570, 1569, 1576, 1578, 1584, 1585,1063 15 93, 1594, 1598, 1599, 1600, 1602, 1604, 1611, 1612, 1614,1064 16 16, 1621, 1622, 1628, 1629, 1633, 1634, 1639, 1640, 1641,1065 164 3, 1651, 1652, 1654, 1657, 1659, 1663, 1664, 1665, 1667,1066 16 69, 1673, 1678, 1686, 1687, 1696, 1698, 1703, 1704, 1705,1067 17 09, 1710, 1711, 1715, 1716, 1717, 1721, 1722, 1723, 1728,1068 17 29, 1730, 1731, 1737, 1738, 1740, 1745, 1746, 1751, 1752,1069 175 3, 1754, 1755, 1770, 1771, 1776, 1777, 1783, 1785, 1788,1070 179 0, 1792, 1815, 1816, 1818, 1820, 1825, 1826, 1828, 1833,1071 183 8, 1839, 1845, 1844, 1848, 1852, 1854, 1856, 1862, 1863,1072 186 8, 1873, 1875, 1880, 1882, 1883, 1885, 1890, 1892, 1894,1073 1899, 1901, 190 6, 1911, 1919, 1925, 1924, 1938, 1939, 1944,1074 194 5, 1949, 1954, 1959, 1967, 1972, 1983, 1984, 1989, 1990,1075 199 6, 1997, 2001, 2002, 2003, 2006, 2005, 2016, 2025, 2031,1076 20 37, 2046, 2052, 2058, 2064, 2070, 2078, 2084, 2092, 2098,1077 2 107, 2108, 2109, 2113, 2117, 2119, 2124, 2125, 2129, 2130,1078 213 5, 2141, 2142, 2145, 2147, 2148, 2152, 2153, 2154, 2155,1079 21 89, 2191, 2192, 2194, 2199, 2204, 2209, 2211, 2213, 2218,1080 2220, 2222, 222 4, 2229, 2231, 2240, 2242, 2243, 2248, 2250,1081 2252, 2257, 2259, 2261, 2266, 2268, 2270, 227 9, 2280, 2281,1082 228 5, 2287, 2289, 2294, 2296, 2298, 2303, 2305, 2307, 2322,1083 23 24, 2325, 2327, 2332, 2333, 2338, 2340, 2342, 2347, 2349,1084 2351, 235 3, 2358, 2360, 2362, 2372, 2374, 2375, 2377, 2382,1085 2384, 2386, 2391, 2393, 2395, 2 397, 2402, 2404, 2406, 2437,1086 24 39, 2440, 2442, 2447, 2452, 2460, 2462, 2464, 2469, 2471,1087 247 6, 2478, 2492, 2493, 2495, 2500, 2502, 2504, 2506, 2508,1088 2513, 251 4, 2516, 2518, 2523, 2525, 2527, 2533, 2535, 2537,1089 254 1, 2543, 2545, 2547, 2561, 2562, 2564, 2569, 2571, 2573,1090 257 5, 2577, 2582, 2583, 2585, 2587, 2592, 2594, 2596, 2602,1091 2603, 2605, 261 4, 2617, 2619, 2622, 2624, 2626, 2639, 2640,1092 26 42, 2647, 2649, 2651, 2653, 2655, 2660, 2661, 2663, 2665,1093 2670, 2672, 26 80, 2681, 2682, 2687, 2688, 2692, 2694, 2696,1094 2 698, 2700, 2702, 2709, 2711, 2713, 2715, 2717, 2719, 2721,1095 272 3, 2725, 2727, 2732, 2734, 2736, 2741, 2767, 2768, 2770,1096 277 4, 2775, 2779, 2781, 2783, 2785, 2787, 2789, 2796, 2798,1097 2 800, 2802, 2804, 2806, 2811, 2816, 2818, 2820, 2838, 2840,1098 28 45, 28461025 0, 302, 302, 306, 313, 314, 315, 319, 320, 321, 1026 325, 326, 330, 331, 335, 336, 340, 344, 345, 356, 1027 358, 360, 362, 367, 368, 374, 378, 380, 382, 384, 1028 386, 388, 390, 392, 394, 403, 404, 410, 411, 415, 1029 416, 420, 424, 426, 428, 430, 435, 436, 440, 443, 1030 445, 447, 452, 465, 467, 469, 471, 473, 475, 477, 1031 479, 481, 483, 485, 492, 493, 499, 500, 501, 502, 1032 506, 507, 509, 514, 515, 517, 519, 524, 525, 527, 1033 532, 533, 535, 540, 541, 543, 545, 547, 552, 553, 1034 555, 560, 561, 566, 567, 572, 573, 578, 579, 584, 1035 585, 590, 591, 594, 596, 601, 606, 607, 609, 615, 1036 616, 620, 621, 622, 623, 624, 625, 626, 627, 628, 1037 629, 630, 631, 637, 639, 641, 643, 648, 649, 654, 1038 655, 661, 662, 668, 669, 670, 671, 672, 673, 674, 1039 675, 676, 686, 693, 695, 705, 706, 711, 713, 719, 1040 721, 725, 726, 731, 736, 739, 741, 743, 753, 755, 1041 766, 767, 769, 773, 775, 779, 780, 785, 786, 790, 1042 795, 796, 800, 802, 808, 809, 813, 815, 817, 819, 1043 825, 826, 830, 832, 837, 839, 841, 846, 848, 853, 1044 855, 859, 862, 866, 869, 873, 875, 877, 879, 884, 1045 886, 888, 893, 895, 897, 899, 901, 906, 908, 910, 1046 912, 917, 929, 930, 935, 937, 942, 946, 948, 950, 1047 952, 954, 960, 961, 967, 968, 972, 973, 978, 980, 1048 986, 987, 989, 994, 999, 1009, 1011, 1015, 1016, 1021, 1049 1023, 1027, 1028, 1032, 1034, 1038, 1039, 1043, 1044, 1048, 1050 1049, 1064, 1065, 1066, 1067, 1068, 1072, 1077, 1084, 1094, 1051 1099, 1104, 1112, 1117, 1122, 1127, 1132, 1140, 1162, 1167, 1052 1174, 1176, 1183, 1188, 1193, 1204, 1209, 1214, 1219, 1224, 1053 1233, 1238, 1246, 1247, 1248, 1249, 1255, 1260, 1268, 1269, 1054 1270, 1271, 1275, 1276, 1277, 1278, 1283, 1284, 1293, 1294, 1055 1299, 1300, 1305, 1307, 1309, 1311, 1313, 1316, 1315, 1327, 1056 1328, 1330, 1340, 1341, 1346, 1348, 1350, 1352, 1354, 1357, 1057 1359, 1362, 1367, 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1058 1383, 1385, 1387, 1389, 1391, 1397, 1398, 1400, 1402, 1404, 1059 1409, 1410, 1416, 1417, 1419, 1421, 1426, 1428, 1430, 1432, 1060 1437, 1438, 1440, 1442, 1447, 1448, 1450, 1455, 1456, 1458, 1061 1460, 1465, 1467, 1469, 1474, 1475, 1479, 1481, 1487, 1486, 1062 1490, 1492, 1497, 1499, 1505, 1506, 1511, 1512, 1514, 1515, 1063 1524, 1525, 1527, 1529, 1534, 1536, 1542, 1543, 1545, 1548, 1064 1551, 1556, 1557, 1562, 1567, 1571, 1573, 1579, 1578, 1585, 1065 1587, 1593, 1594, 1602, 1603, 1607, 1608, 1609, 1611, 1613, 1066 1620, 1621, 1623, 1625, 1630, 1631, 1637, 1638, 1642, 1643, 1067 1648, 1649, 1650, 1652, 1660, 1661, 1663, 1666, 1668, 1672, 1068 1673, 1674, 1676, 1678, 1682, 1687, 1695, 1696, 1705, 1707, 1069 1712, 1713, 1714, 1718, 1719, 1720, 1724, 1725, 1726, 1730, 1070 1731, 1732, 1737, 1738, 1739, 1740, 1746, 1747, 1749, 1754, 1071 1755, 1760, 1761, 1762, 1763, 1764, 1779, 1780, 1785, 1786, 1072 1792, 1794, 1797, 1799, 1801, 1824, 1825, 1827, 1829, 1834, 1073 1835, 1837, 1842, 1847, 1848, 1854, 1853, 1857, 1861, 1863, 1074 1865, 1871, 1872, 1877, 1882, 1884, 1889, 1891, 1892, 1894, 1075 1899, 1901, 1903, 1908, 1910, 1915, 1920, 1928, 1934, 1933, 1076 1947, 1948, 1953, 1954, 1958, 1963, 1968, 1976, 1981, 1992, 1077 1993, 1998, 1999, 2005, 2006, 2010, 2011, 2012, 2015, 2014, 1078 2025, 2034, 2040, 2046, 2055, 2061, 2067, 2073, 2079, 2087, 1079 2093, 2101, 2107, 2116, 2117, 2118, 2122, 2126, 2128, 2133, 1080 2134, 2138, 2139, 2144, 2150, 2151, 2154, 2156, 2157, 2161, 1081 2162, 2163, 2164, 2198, 2200, 2201, 2203, 2208, 2213, 2218, 1082 2220, 2222, 2227, 2229, 2231, 2233, 2238, 2240, 2249, 2251, 1083 2252, 2257, 2259, 2261, 2266, 2268, 2270, 2275, 2277, 2279, 1084 2288, 2289, 2290, 2294, 2296, 2298, 2303, 2305, 2307, 2312, 1085 2314, 2316, 2331, 2333, 2334, 2336, 2341, 2342, 2347, 2349, 1086 2351, 2356, 2358, 2360, 2362, 2367, 2369, 2371, 2381, 2383, 1087 2384, 2386, 2391, 2393, 2395, 2400, 2402, 2404, 2406, 2411, 1088 2413, 2415, 2446, 2448, 2449, 2451, 2456, 2461, 2469, 2471, 1089 2473, 2478, 2480, 2485, 2487, 2501, 2502, 2504, 2509, 2511, 1090 2513, 2515, 2517, 2522, 2523, 2525, 2527, 2532, 2534, 2536, 1091 2542, 2544, 2546, 2550, 2552, 2554, 2556, 2570, 2571, 2573, 1092 2578, 2580, 2582, 2584, 2586, 2591, 2592, 2594, 2596, 2601, 1093 2603, 2605, 2611, 2612, 2614, 2623, 2626, 2628, 2631, 2633, 1094 2635, 2648, 2649, 2651, 2656, 2658, 2660, 2662, 2664, 2669, 1095 2670, 2672, 2674, 2679, 2681, 2689, 2690, 2691, 2696, 2697, 1096 2701, 2703, 2705, 2707, 2709, 2711, 2718, 2720, 2722, 2724, 1097 2726, 2728, 2730, 2732, 2734, 2736, 2741, 2743, 2745, 2750, 1098 2776, 2777, 2779, 2783, 2784, 2788, 2790, 2792, 2794, 2796, 1099 2798, 2805, 2807, 2809, 2811, 2813, 2815, 2820, 2825, 2827, 1100 2829, 2847, 2849, 2854, 2855 1099 1101 }; 1100 1102 #endif … … 1128 1130 "string_literal", "string_literal_list", "primary_expression", 1129 1131 "postfix_expression", "argument_expression_list", "argument_expression", 1130 "field_list", "field", " unary_expression", "ptrref_operator",1131 " unary_operator", "cast_expression", "multiplicative_expression",1132 " additive_expression", "shift_expression", "relational_expression",1133 " equality_expression", "AND_expression", "exclusive_OR_expression",1134 " inclusive_OR_expression", "logical_AND_expression",1135 "logical_ OR_expression", "conditional_expression", "constant_expression",1136 " assignment_expression", "assignment_expression_opt",1137 "assignment_ operator", "tuple", "tuple_expression_list",1138 " comma_expression", "comma_expression_opt", "statement",1139 " labeled_statement", "compound_statement", "block_item_list",1140 "block_item ", "statement_list", "expression_statement",1141 " selection_statement", "case_value", "case_value_list", "case_label",1142 "case_ label_list", "case_clause", "switch_clause_list_opt",1143 "switch_clause_list ", "choose_clause_list_opt", "choose_clause_list",1144 " fall_through_opt", "fall_through", "iteration_statement",1145 " for_control_expression", "jump_statement", "exception_statement",1146 " handler_list", "handler_clause", "finally_clause",1147 " exception_declaration", "asm_statement", "asm_volatile_opt",1148 "asm_ operands_opt", "asm_operands_list", "asm_operand",1149 "asm_ clobbers_list_opt", "label_list", "declaration_list_opt",1150 "declaration_list ", "old_declaration_list_opt", "old_declaration_list",1151 " local_label_declaration_opt", "local_label_declaration_list",1152 "local_label_ list", "declaration", "new_declaration",1153 "new_ variable_declaration", "new_variable_specifier",1132 "field_list", "field", "field_name", "unary_expression", 1133 "ptrref_operator", "unary_operator", "cast_expression", 1134 "multiplicative_expression", "additive_expression", "shift_expression", 1135 "relational_expression", "equality_expression", "AND_expression", 1136 "exclusive_OR_expression", "inclusive_OR_expression", 1137 "logical_AND_expression", "logical_OR_expression", 1138 "conditional_expression", "constant_expression", "assignment_expression", 1139 "assignment_expression_opt", "assignment_operator", "tuple", 1140 "tuple_expression_list", "comma_expression", "comma_expression_opt", 1141 "statement", "labeled_statement", "compound_statement", 1142 "block_item_list", "block_item", "statement_list", 1143 "expression_statement", "selection_statement", "case_value", 1144 "case_value_list", "case_label", "case_label_list", "case_clause", 1145 "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt", 1146 "choose_clause_list", "fall_through_opt", "fall_through", 1147 "iteration_statement", "for_control_expression", "jump_statement", 1148 "exception_statement", "handler_list", "handler_clause", 1149 "finally_clause", "exception_declaration", "asm_statement", 1150 "asm_volatile_opt", "asm_operands_opt", "asm_operands_list", 1151 "asm_operand", "asm_clobbers_list_opt", "label_list", 1152 "declaration_list_opt", "declaration_list", "old_declaration_list_opt", 1153 "old_declaration_list", "local_label_declaration_opt", 1154 "local_label_declaration_list", "local_label_list", "declaration", 1155 "new_declaration", "new_variable_declaration", "new_variable_specifier", 1154 1156 "new_function_declaration", "new_function_specifier", 1155 1157 "new_function_return", "new_typedef_declaration", "typedef_declaration", … … 1241 1243 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1242 1244 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1243 144, 144, 144, 144, 14 5, 145, 146, 146, 147, 147,1244 14 8, 148, 148, 148, 148, 149, 149, 149, 149, 149,1245 1 49, 149, 149, 149, 149, 149, 149, 149, 149, 149,1246 1 49, 150, 150, 151, 151, 151, 151, 152, 152, 152,1247 153, 153, 153, 15 3, 154, 154, 154, 155, 155, 155,1248 156, 156, 156, 15 6, 156, 157, 157, 157, 158, 158,1249 15 9, 159, 160, 160, 161, 161, 162, 162, 163, 163,1250 163, 16 3, 164, 165, 165, 165, 166, 166, 167, 167,1251 167, 16 7, 167, 167, 167, 167, 167, 167, 167, 167,1252 168, 168, 168, 16 8, 169, 169, 170, 170, 171, 171,1253 17 2, 172, 172, 172, 172, 172, 172, 172, 172, 173,1254 17 4, 174, 175, 175, 176, 176, 176, 176, 177, 177,1255 17 8, 179, 179, 179, 179, 179, 179, 180, 180, 180,1256 181, 181, 18 2, 182, 183, 183, 184, 185, 185, 186,1257 186, 18 7, 187, 188, 188, 188, 188, 189, 189, 190,1258 190, 19 1, 191, 191, 192, 192, 193, 193, 193, 193,1259 19 3, 193, 193, 193, 193, 193, 194, 194, 194, 195,1260 195, 195, 19 5, 195, 196, 196, 196, 196, 197, 198,1261 19 8, 198, 198, 198, 199, 199, 199, 199, 199, 200,1262 200, 20 1, 201, 202, 202, 203, 203, 204, 204, 204,1263 205, 205, 20 6, 206, 207, 207, 208, 208, 209, 209,1264 2 10, 210, 211, 211, 212, 212, 213, 213, 214, 214,1265 214, 21 4, 214, 215, 215, 215, 216, 216, 216, 217,1266 217, 217, 21 7, 217, 218, 218, 218, 219, 219, 220,1267 220, 220, 221, 221, 221, 22 1, 221, 222, 222, 223,1268 223, 223, 22 3, 224, 224, 225, 225, 225, 225, 226,1269 226, 226, 22 6, 227, 227, 228, 228, 229, 229, 230,1270 230, 230, 23 0, 230, 231, 230, 232, 232, 232, 233,1271 233, 23 4, 234, 234, 234, 234, 234, 234, 234, 235,1272 235, 235, 23 5, 235, 235, 235, 235, 235, 235, 235,1273 23 5, 235, 236, 236, 236, 236, 236, 237, 237, 238,1274 238, 238, 23 8, 239, 239, 239, 239, 240, 240, 240,1275 24 0, 241, 241, 241, 242, 242, 242, 242, 243, 243,1276 243, 244, 244, 24 5, 245, 246, 245, 245, 245, 247,1277 24 7, 248, 248, 249, 249, 249, 249, 250, 250, 250,1278 25 0, 251, 251, 252, 252, 252, 252, 252, 253, 253,1279 25 4, 255, 256, 256, 257, 256, 258, 258, 259, 259,1280 2 60, 260, 261, 261, 261, 261, 261, 262, 262, 262,1281 26 2, 263, 263, 264, 264, 265, 265, 266, 266, 266,1282 26 6, 267, 267, 267, 267, 267, 268, 268, 268, 268,1283 26 8, 269, 269, 270, 270, 271, 271, 272, 272, 272,1245 144, 144, 144, 144, 144, 145, 145, 146, 146, 147, 1246 147, 148, 148, 148, 148, 148, 149, 149, 150, 150, 1247 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 1248 150, 150, 150, 150, 151, 151, 152, 152, 152, 152, 1249 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 1250 156, 156, 156, 157, 157, 157, 157, 157, 158, 158, 1251 158, 159, 159, 160, 160, 161, 161, 162, 162, 163, 1252 163, 164, 164, 164, 164, 165, 166, 166, 166, 167, 1253 167, 168, 168, 168, 168, 168, 168, 168, 168, 168, 1254 168, 168, 168, 169, 169, 169, 169, 170, 170, 171, 1255 171, 172, 172, 173, 173, 173, 173, 173, 173, 173, 1256 173, 173, 174, 175, 175, 176, 176, 177, 177, 177, 1257 177, 178, 178, 179, 180, 180, 180, 180, 180, 180, 1258 181, 181, 181, 182, 182, 183, 183, 184, 184, 185, 1259 186, 186, 187, 187, 188, 188, 189, 189, 189, 189, 1260 190, 190, 191, 191, 192, 192, 192, 193, 193, 194, 1261 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, 1262 195, 195, 196, 196, 196, 196, 196, 197, 197, 197, 1263 197, 198, 199, 199, 199, 199, 199, 200, 200, 200, 1264 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 1265 205, 205, 205, 206, 206, 207, 207, 208, 208, 209, 1266 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, 1267 214, 215, 215, 215, 215, 215, 216, 216, 216, 217, 1268 217, 217, 218, 218, 218, 218, 218, 219, 219, 219, 1269 220, 220, 221, 221, 221, 222, 222, 222, 222, 222, 1270 223, 223, 224, 224, 224, 224, 225, 225, 226, 226, 1271 226, 226, 227, 227, 227, 227, 228, 228, 229, 229, 1272 230, 230, 231, 231, 231, 231, 231, 232, 231, 233, 1273 233, 233, 234, 234, 235, 235, 235, 235, 235, 235, 1274 235, 235, 236, 236, 236, 236, 236, 236, 236, 236, 1275 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 1276 238, 238, 239, 239, 239, 239, 240, 240, 240, 240, 1277 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 1278 243, 244, 244, 244, 245, 245, 246, 246, 247, 246, 1279 246, 246, 248, 248, 249, 249, 250, 250, 250, 250, 1280 251, 251, 251, 251, 252, 252, 253, 253, 253, 253, 1281 253, 254, 254, 255, 256, 257, 257, 258, 257, 259, 1282 259, 260, 260, 261, 261, 262, 262, 262, 262, 262, 1283 263, 263, 263, 263, 264, 264, 265, 265, 266, 266, 1284 267, 267, 267, 267, 268, 268, 268, 268, 268, 269, 1285 269, 269, 269, 269, 270, 270, 271, 271, 272, 272, 1284 1286 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1285 276, 276, 27 6, 277, 277, 277, 278, 278, 279, 279,1286 279, 2 79, 279, 280, 280, 281, 281, 282, 282, 282,1287 28 2, 282, 283, 283, 283, 283, 284, 284, 284, 285,1288 28 6, 286, 288, 287, 287, 289, 289, 289, 290, 290,1289 29 1, 291, 291, 292, 292, 292, 292, 293, 293, 293,1290 294, 294, 29 5, 295, 296, 297, 296, 298, 298, 299,1291 299, 300, 300, 300, 301, 301, 302, 302, 303, 303,1292 30 4, 304, 305, 305, 305, 306, 305, 305, 307, 307,1293 30 7, 308, 308, 308, 308, 308, 308, 308, 308, 308,1294 309, 309, 309, 310, 31 1, 311, 312, 312, 313, 313,1295 31 4, 315, 315, 316, 316, 316, 317, 317, 317, 317,1296 318, 318, 318, 31 8, 319, 319, 320, 320, 320, 321,1297 321, 321, 32 1, 322, 322, 323, 323, 323, 324, 324,1287 276, 276, 277, 277, 277, 277, 278, 278, 278, 279, 1288 279, 280, 280, 280, 280, 280, 281, 281, 282, 282, 1289 283, 283, 283, 283, 283, 284, 284, 284, 284, 285, 1290 285, 285, 286, 287, 287, 289, 288, 288, 290, 290, 1291 290, 291, 291, 292, 292, 292, 293, 293, 293, 293, 1292 294, 294, 294, 295, 295, 296, 296, 297, 298, 297, 1293 299, 299, 300, 300, 301, 301, 301, 302, 302, 303, 1294 303, 304, 304, 305, 305, 306, 306, 306, 307, 306, 1295 306, 308, 308, 308, 309, 309, 309, 309, 309, 309, 1296 309, 309, 309, 310, 310, 310, 311, 312, 312, 313, 1297 313, 314, 314, 315, 316, 316, 317, 317, 317, 318, 1298 318, 318, 318, 319, 319, 319, 319, 320, 320, 321, 1299 321, 321, 322, 322, 322, 322, 323, 323, 324, 324, 1298 1300 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1299 1301 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1300 331, 331, 33 1, 332, 332, 333, 333, 333, 334, 334,1301 334, 33 4, 335, 335, 335, 336, 336, 336, 336, 337,1302 337, 337, 338, 338, 338, 33 8, 339, 339, 339, 340,1303 340, 340, 34 0, 341, 341, 342, 342, 342, 343, 343,1304 34 4, 344, 345, 345, 345, 346, 346, 346, 346, 346,1305 347, 347, 347, 34 7, 348, 348, 348, 349, 349, 349,1306 350, 350, 350, 35 0, 351, 351, 351, 352, 352, 352,1307 35 2, 352, 353, 353, 353, 353, 354, 354, 354, 355,1308 355, 355, 356, 356, 356, 35 6, 356, 356, 357, 357,1309 357, 358, 358, 358, 35 8, 358, 359, 359, 359, 359,1310 360, 360, 36 1, 361, 361, 362, 362, 363, 363, 363,1311 36 3, 363, 363, 364, 364, 364, 364, 364, 364, 364,1312 36 4, 364, 364, 365, 365, 365, 365, 366, 366, 366,1313 367, 367, 36 8, 368, 368, 368, 368, 368, 369, 369,1314 369, 3 69, 369, 369, 370, 371, 371, 371, 372, 372,1315 37 3, 3731302 331, 331, 332, 332, 332, 332, 333, 333, 334, 334, 1303 334, 335, 335, 335, 335, 336, 336, 336, 337, 337, 1304 337, 337, 338, 338, 338, 339, 339, 339, 339, 340, 1305 340, 340, 341, 341, 341, 341, 342, 342, 343, 343, 1306 343, 344, 344, 345, 345, 346, 346, 346, 347, 347, 1307 347, 347, 347, 348, 348, 348, 348, 349, 349, 349, 1308 350, 350, 350, 351, 351, 351, 351, 352, 352, 352, 1309 353, 353, 353, 353, 353, 354, 354, 354, 354, 355, 1310 355, 355, 356, 356, 356, 357, 357, 357, 357, 357, 1311 357, 358, 358, 358, 359, 359, 359, 359, 359, 360, 1312 360, 360, 360, 361, 361, 362, 362, 362, 363, 363, 1313 364, 364, 364, 364, 364, 364, 365, 365, 365, 365, 1314 365, 365, 365, 365, 365, 365, 366, 366, 366, 366, 1315 367, 367, 367, 368, 368, 369, 369, 369, 369, 369, 1316 369, 370, 370, 370, 370, 370, 370, 371, 372, 372, 1317 372, 373, 373, 374, 374 1316 1318 }; 1317 1319 … … 1321 1323 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1322 1324 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1323 1, 3, 3, 1, 6, 4, 3, 7, 3, 7,1324 2, 2, 7, 4, 1, 3, 0, 1, 1, 3,1325 1, 3, 7, 3, 7, 1, 1, 1, 2, 2,1326 2, 2, 2, 2, 4, 2, 4, 6, 1, 4,1327 4, 1, 1, 1, 1, 1, 1, 1, 4, 4,1328 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,1329 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5,1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1,1325 1, 3, 3, 1, 6, 4, 3, 7, 3, 3, 1326 7, 2, 2, 7, 4, 1, 3, 0, 1, 1, 1327 3, 1, 3, 7, 3, 7, 1, 1, 1, 1, 1328 1, 2, 2, 2, 2, 2, 2, 4, 2, 4, 1329 6, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1330 1, 4, 4, 1, 3, 3, 3, 1, 3, 3, 1331 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1332 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 1333 3, 1, 5, 4, 5, 1, 1, 3, 2, 0, 1332 1334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 2, 5, 6, 7, 1, 3, 1, 3, 0, 1,1334 1, 1, 1, 1, 1, 1, 1, 1, 6, 4,1335 2, 7, 1, 3, 1, 2, 1, 2, 1, 2,1336 2, 5, 7, 5, 9, 5, 9, 1, 3, 1,1337 1, 3, 3, 2, 1, 2, 2, 0, 1, 2,1338 3, 0, 1, 2, 3, 3, 4, 0, 1, 1,1339 2, 5, 7, 6, 6, 4, 3, 4, 2, 3,1340 2, 3, 3, 3, 3, 5, 3, 3, 4, 1,1341 5, 6, 5, 6, 9, 10, 9, 10, 2, 1,1342 2, 2, 2, 1, 6, 8, 10, 12, 14,0,1343 1, 0, 1, 1, 3, 4, 7, 0, 1, 3,1344 1, 3, 1, 1, 1, 3, 1, 1, 1, 3,1345 0, 1, 3, 4, 1, 3, 1, 1, 3, 3,1346 3, 3, 3, 2, 3, 6, 3, 3, 4, 1,1347 2, 2, 3, 5, 8, 7, 7, 5, 9, 2,1348 2, 5, 3, 5, 4, 3, 4, 4, 7, 3,1349 3, 3, 3, 4, 6, 1, 1, 1, 1, 1,1350 1, 1, 1, 0, 1, 1, 2, 1, 1, 1,1351 1, 1, 1, 1, 0, 5, 1, 2, 3, 1,1352 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,1335 1, 1, 1, 2, 5, 6, 7, 1, 3, 1, 1336 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1337 1, 6, 4, 2, 7, 1, 3, 1, 2, 1, 1338 2, 1, 2, 2, 5, 7, 5, 9, 5, 9, 1339 1, 3, 1, 1, 3, 3, 2, 1, 2, 2, 1340 0, 1, 2, 3, 0, 1, 2, 3, 3, 4, 1341 0, 1, 1, 2, 5, 7, 6, 6, 4, 3, 1342 4, 2, 3, 2, 3, 3, 3, 3, 5, 3, 1343 3, 4, 1, 5, 6, 5, 6, 9, 10, 9, 1344 10, 2, 1, 2, 2, 2, 1, 6, 8, 10, 1345 12, 14, 0, 1, 0, 1, 1, 3, 4, 7, 1346 0, 1, 3, 1, 3, 1, 1, 1, 3, 1, 1347 1, 1, 3, 0, 1, 3, 4, 1, 3, 1, 1348 1, 3, 3, 3, 3, 3, 2, 3, 6, 3, 1349 3, 4, 1, 2, 2, 3, 5, 8, 7, 7, 1350 5, 9, 2, 2, 5, 3, 5, 4, 3, 4, 1351 4, 7, 3, 3, 3, 3, 4, 6, 1, 1, 1352 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1353 1, 1, 1, 1, 1, 1, 1, 0, 5, 1, 1354 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1353 1355 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 2, 2, 3, 3, 1, 3, 1,1355 2, 2, 2, 4, 4, 4, 4, 1, 2, 2,1356 3, 1, 2, 2, 1, 2, 2, 3, 1, 2,1357 2, 1, 1, 4, 2, 0, 6, 7, 2, 2,1358 2, 0, 2, 2, 3, 2, 3, 1, 2, 3,1359 2, 2, 4, 0, 1, 2, 2, 1, 0, 1,1360 2, 2, 5, 2, 0, 7, 2, 4, 0, 2,1361 0, 1, 1, 1, 5, 5, 5, 1, 5, 5,1362 9, 1, 5, 0, 1, 1, 5, 1, 1, 5,1363 5, 1, 3, 3, 4, 1, 1, 1, 1, 2,1364 1, 3, 3, 1, 2, 1, 3, 1, 1, 1,1365 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,1366 1, 1, 2, 0, 2, 2, 1, 4, 0, 1,1367 2, 3, 4, 2, 2, 1, 2, 2, 5, 5,1368 7, 6, 1, 2, 2, 3, 1, 2, 2, 4,1369 2, 4, 0, 4, 2, 1, 1, 1, 0, 2,1370 5, 5, 13, 1, 1, 3, 3, 2, 3, 3,1371 2, 4, 1, 6, 9, 0, 11, 1, 3, 3,1372 3, 1, 1, 5, 2, 5, 0, 1, 1, 3,1373 0, 1, 1, 1, 1, 0, 6, 2, 1, 2,1374 4, 2, 3, 3, 3, 4, 5, 5, 5, 6,1375 1, 1, 1, 3, 0, 5, 0, 1, 1, 2,1376 6, 1, 3, 0, 1, 4, 1, 1, 1, 1,1377 2, 1, 2, 2, 1, 3, 2, 3, 3, 2,1378 4, 4, 3, 8, 3, 2, 1, 2, 6, 8,1379 3, 2, 3, 3, 4, 4, 3, 1, 1, 1,1380 4, 6, 3, 2, 3, 3, 4, 4, 3, 2,1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4,1382 4, 3, 6, 8, 3, 2, 1, 2, 2, 2,1383 3, 3, 2, 4, 4, 3, 6, 8, 3, 2,1384 1, 2, 2, 1, 1, 2, 3, 3, 2, 4,1385 6, 8, 1, 2, 2, 1, 2, 2, 3, 3,1386 1, 4, 4, 3, 5, 8, 3, 2, 3, 1,1387 5, 5, 6, 6, 1, 2, 2, 1, 2, 2,1388 3, 3, 1, 4, 4, 3, 5, 8, 3, 1,1389 2, 1, 2, 6, 5, 6, 7, 7, 1, 2,1390 2, 1, 2, 2, 3, 3, 1, 4, 4, 3,1391 8, 3, 1, 1, 2, 1, 1, 2, 3, 2,1392 3, 2, 3, 3, 2, 4, 3, 2, 3, 2,1393 4, 3, 2, 6, 6, 6, 7, 1, 2, 1,1394 1, 1, 2, 3, 2, 3, 2, 3, 3, 4,1395 2, 3, 4, 2, 5, 5, 6, 6, 0, 1,1396 0, 21356 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 1357 1, 3, 1, 2, 2, 2, 4, 4, 4, 4, 1358 1, 2, 2, 3, 1, 2, 2, 1, 2, 2, 1359 3, 1, 2, 2, 1, 1, 4, 2, 0, 6, 1360 7, 2, 2, 2, 0, 2, 2, 3, 2, 3, 1361 1, 2, 3, 2, 2, 4, 0, 1, 2, 2, 1362 1, 0, 1, 2, 2, 5, 2, 0, 7, 2, 1363 4, 0, 2, 0, 1, 1, 1, 5, 5, 5, 1364 1, 5, 5, 9, 1, 5, 0, 1, 1, 5, 1365 1, 1, 5, 5, 1, 3, 3, 4, 1, 1, 1366 1, 1, 2, 1, 3, 3, 1, 2, 1, 3, 1367 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1368 1, 2, 1, 1, 1, 2, 0, 2, 2, 1, 1369 4, 0, 1, 2, 3, 4, 2, 2, 1, 2, 1370 2, 5, 5, 7, 6, 1, 2, 2, 3, 1, 1371 2, 2, 4, 2, 4, 0, 4, 2, 1, 1, 1372 1, 0, 2, 5, 5, 13, 1, 1, 3, 3, 1373 2, 3, 3, 2, 4, 1, 6, 9, 0, 11, 1374 1, 3, 3, 3, 1, 1, 5, 2, 5, 0, 1375 1, 1, 3, 0, 1, 1, 1, 1, 0, 6, 1376 2, 1, 2, 4, 2, 3, 3, 3, 4, 5, 1377 5, 5, 6, 1, 1, 1, 3, 0, 5, 0, 1378 1, 1, 2, 6, 1, 3, 0, 1, 4, 1, 1379 1, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1380 3, 3, 2, 4, 4, 3, 8, 3, 2, 1, 1381 2, 6, 8, 3, 2, 3, 3, 4, 4, 3, 1382 1, 1, 1, 4, 6, 3, 2, 3, 3, 4, 1383 4, 3, 2, 1, 2, 2, 1, 3, 2, 3, 1384 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1385 2, 2, 2, 3, 3, 2, 4, 4, 3, 6, 1386 8, 3, 2, 1, 2, 2, 1, 1, 2, 3, 1387 3, 2, 4, 6, 8, 1, 2, 2, 1, 2, 1388 2, 3, 3, 1, 4, 4, 3, 5, 8, 3, 1389 2, 3, 1, 5, 5, 6, 6, 1, 2, 2, 1390 1, 2, 2, 3, 3, 1, 4, 4, 3, 5, 1391 8, 3, 1, 2, 1, 2, 6, 5, 6, 7, 1392 7, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1393 4, 4, 3, 8, 3, 1, 1, 2, 1, 1, 1394 2, 3, 2, 3, 2, 3, 3, 2, 4, 3, 1395 2, 3, 2, 4, 3, 2, 6, 6, 6, 7, 1396 1, 2, 1, 1, 1, 2, 3, 2, 3, 2, 1397 3, 3, 4, 2, 3, 4, 2, 5, 5, 6, 1398 6, 0, 1, 0, 2 1397 1399 }; 1398 1400 … … 1402 1404 static const yytype_uint16 yydefact[] = 1403 1405 { 1404 29 3, 293, 313, 311, 314, 312, 315, 316, 299, 301,1405 30 0, 0, 302, 327, 319, 324, 322, 323, 321, 320,1406 32 5, 326, 331, 328, 329, 330, 546, 546, 546, 0,1407 0, 0, 29 3, 219, 303, 317, 318, 7, 358, 0,1408 8, 14, 15, 0, 2, 6 1, 62, 564, 9, 293,1409 52 4, 522, 246, 3, 453, 3, 259, 0, 3, 3,1410 3, 2 47, 3, 0, 0, 0, 294, 295, 297, 293,1411 30 6, 309, 339, 285, 332, 337, 286, 347, 287, 354,1412 35 1, 361, 0, 0, 362, 288, 472, 476, 3, 3,1413 0, 2, 5 18, 523, 528, 298, 0, 0, 546, 576,1414 54 6, 2, 587, 588, 589, 293, 0, 730, 731, 0,1415 12, 0, 13, 29 3, 269, 270, 0, 294, 289, 290,1416 29 1, 292, 525, 304, 391, 547, 548, 369, 370, 12,1417 44 4, 445, 11, 440, 443, 0, 502, 497, 488, 444,1418 44 5, 0, 0, 527, 220, 0, 293, 0, 0, 0,1419 0, 0, 0, 0, 0, 29 3, 293, 2, 0, 732,1420 29 4, 581, 593, 736, 729, 727, 734, 0, 0, 0,1421 25 3, 2, 0, 531, 438, 439, 437, 0, 0, 0,1422 0, 54 6, 0, 633, 634, 0, 0, 544, 540, 546,1423 56 1, 546, 546, 542, 2, 541, 546, 600, 546, 546,1424 60 3, 0, 0, 0, 293, 293, 311, 359, 2, 293,1425 26 0, 296, 307, 340, 352, 477, 0, 2, 0, 453,1426 26 1, 294, 333, 348, 355, 473, 0, 2, 0, 310,1427 33 4, 341, 342, 0, 349, 353, 356, 360, 445, 293,1428 37 1, 364, 368, 0, 393, 474, 478, 0, 0, 0,1429 1, 29 3, 2, 529, 575, 577, 293, 2, 740, 294,1430 74 3, 544, 544, 0, 294, 0, 0, 272, 546, 542,1431 2, 29 3, 0, 0, 293, 549, 2, 500, 2, 553,1432 0, 0, 0, 0, 0, 0, 19, 58, 4, 5,1433 6, 17, 0, 0, 29 3, 2, 63, 64, 65, 66,1434 4 6, 20, 47, 16, 23, 45, 67, 293, 0, 70,1435 7 4, 77, 80, 85, 88, 90, 92, 94, 96, 98,1436 10 3, 494, 750, 451, 493, 0, 449, 450, 0, 565,1437 58 0, 583, 586, 592, 595, 598, 358, 0, 2, 738,1438 0, 29 3, 741, 2, 61, 293, 3, 425, 0, 433,1439 29 4, 293, 306, 332, 286, 347, 354, 3, 3, 407,1440 41 1, 421, 426, 472, 293, 427, 705, 706, 293, 428,1441 43 0, 293, 2, 582, 594, 728, 2, 2, 248, 2,1442 4 58, 0, 456, 455, 454, 140, 2, 2, 250, 2,1443 2, 2 49, 2, 280, 2, 281, 0, 279, 0, 0,1444 0, 0, 0, 0, 0, 0, 0, 56 6, 605, 0,1445 45 3, 2, 560, 569, 659, 562, 563, 532, 293, 2,1446 599, 608, 601, 602, 0, 275, 293, 293, 338, 294,1447 0, 29 4, 0, 293, 733, 737, 735, 533, 293, 544,1448 25 4, 262, 308, 0, 2, 534, 293, 498, 335, 336,1449 28 2, 350, 357, 0, 293, 0, 748, 398, 0, 475,1450 499, 251, 252, 519, 293, 435, 0, 293, 236, 0,1451 2, 2 38, 0, 294, 0, 256, 2, 257, 277, 0,1452 0, 2, 29 3, 544, 293, 485, 487, 486, 0, 0,1453 75 0, 0, 293, 0, 293, 489, 293, 559, 557, 558,1454 55 6, 0, 551, 554, 0, 0, 293, 53, 293, 67,1455 48, 293, 55, 293, 293, 51, 52, 2, 126, 0,1456 0, 4 47, 0, 446, 727, 120, 293, 18, 0, 30,1457 3 1, 36, 2, 0, 36, 110, 111, 112, 113, 114,1458 11 5, 116, 117, 118, 119, 109, 108, 0, 49, 50,1406 296, 296, 316, 314, 317, 315, 318, 319, 302, 304, 1407 303, 0, 305, 330, 322, 327, 325, 326, 324, 323, 1408 328, 329, 334, 331, 332, 333, 549, 549, 549, 0, 1409 0, 0, 296, 222, 306, 320, 321, 7, 361, 0, 1410 8, 14, 15, 0, 2, 64, 65, 567, 9, 296, 1411 527, 525, 249, 3, 456, 3, 262, 0, 3, 3, 1412 3, 250, 3, 0, 0, 0, 297, 298, 300, 296, 1413 309, 312, 342, 288, 335, 340, 289, 350, 290, 357, 1414 354, 364, 0, 0, 365, 291, 475, 479, 3, 3, 1415 0, 2, 521, 526, 531, 301, 0, 0, 549, 579, 1416 549, 2, 590, 591, 592, 296, 0, 733, 734, 0, 1417 12, 0, 13, 296, 272, 273, 0, 297, 292, 293, 1418 294, 295, 528, 307, 394, 550, 551, 372, 373, 12, 1419 447, 448, 11, 443, 446, 0, 505, 500, 491, 447, 1420 448, 0, 0, 530, 223, 0, 296, 0, 0, 0, 1421 0, 0, 0, 0, 0, 296, 296, 2, 0, 735, 1422 297, 584, 596, 739, 732, 730, 737, 0, 0, 0, 1423 256, 2, 0, 534, 441, 442, 440, 0, 0, 0, 1424 0, 549, 0, 636, 637, 0, 0, 547, 543, 549, 1425 564, 549, 549, 545, 2, 544, 549, 603, 549, 549, 1426 606, 0, 0, 0, 296, 296, 314, 362, 2, 296, 1427 263, 299, 310, 343, 355, 480, 0, 2, 0, 456, 1428 264, 297, 336, 351, 358, 476, 0, 2, 0, 313, 1429 337, 344, 345, 0, 352, 356, 359, 363, 448, 296, 1430 374, 367, 371, 0, 396, 477, 481, 0, 0, 0, 1431 1, 296, 2, 532, 578, 580, 296, 2, 743, 297, 1432 746, 547, 547, 0, 297, 0, 0, 275, 549, 545, 1433 2, 296, 0, 0, 296, 552, 2, 503, 2, 556, 1434 0, 0, 0, 0, 0, 0, 19, 61, 4, 5, 1435 6, 17, 0, 0, 296, 2, 66, 67, 68, 69, 1436 49, 20, 50, 16, 23, 48, 70, 296, 0, 73, 1437 77, 80, 83, 88, 91, 93, 95, 97, 99, 101, 1438 106, 497, 753, 454, 496, 0, 452, 453, 0, 568, 1439 583, 586, 589, 595, 598, 601, 361, 0, 2, 741, 1440 0, 296, 744, 2, 64, 296, 3, 428, 0, 436, 1441 297, 296, 309, 335, 289, 350, 357, 3, 3, 410, 1442 414, 424, 429, 475, 296, 430, 708, 709, 296, 431, 1443 433, 296, 2, 585, 597, 731, 2, 2, 251, 2, 1444 461, 0, 459, 458, 457, 143, 2, 2, 253, 2, 1445 2, 252, 2, 283, 2, 284, 0, 282, 0, 0, 1446 0, 0, 0, 0, 0, 0, 0, 569, 608, 0, 1447 456, 2, 563, 572, 662, 565, 566, 535, 296, 2, 1448 602, 611, 604, 605, 0, 278, 296, 296, 341, 297, 1449 0, 297, 0, 296, 736, 740, 738, 536, 296, 547, 1450 257, 265, 311, 0, 2, 537, 296, 501, 338, 339, 1451 285, 353, 360, 0, 296, 0, 751, 401, 0, 478, 1452 502, 254, 255, 522, 296, 438, 0, 296, 239, 0, 1453 2, 241, 0, 297, 0, 259, 2, 260, 280, 0, 1454 0, 2, 296, 547, 296, 488, 490, 489, 0, 0, 1455 753, 0, 296, 0, 296, 492, 296, 562, 560, 561, 1456 559, 0, 554, 557, 0, 0, 296, 56, 296, 70, 1457 51, 296, 58, 296, 296, 54, 55, 2, 129, 0, 1458 0, 450, 0, 449, 730, 123, 296, 18, 0, 31, 1459 32, 37, 2, 0, 37, 113, 114, 115, 116, 117, 1460 118, 119, 120, 121, 122, 112, 111, 0, 52, 53, 1459 1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1460 1462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461 10 5, 2, 645, 452, 642, 546, 546, 650, 479, 293,1462 2, 58 4, 585, 0, 596, 597, 0, 2, 739, 742,1463 12 0, 293, 0, 2, 707, 294, 711, 702, 703, 709,1464 0, 2, 2, 6 67, 546, 750, 616, 546, 546, 750,1465 54 6, 630, 546, 546, 681, 434, 664, 546, 546, 672,1466 6 79, 293, 429, 294, 0, 0, 293, 717, 294, 722,1467 75 0, 714, 293, 719, 750, 293, 293, 293, 0, 120,1468 0, 19, 2, 0, 20, 0, 4 59, 748, 0, 0,1469 46 5, 240, 0, 293, 0, 0, 0, 544, 568, 572,1470 57 4, 604, 607, 611, 614, 567, 606, 0, 283, 657,1471 0, 29 3, 276, 0, 0, 0, 0, 274, 2, 0,1472 2 58, 535, 293, 0, 0, 293, 2, 363, 383, 372,1473 0, 0, 3 77, 371, 749, 0, 0, 396, 0, 294,1474 3, 41 4, 3, 418, 417, 590, 0, 530, 293, 61,1475 3, 29 3, 433, 294, 3, 427, 428, 2, 0, 0,1476 0, 48 4, 305, 293, 480, 482, 3, 2, 2, 0,1477 50 1, 3, 0, 553, 128, 0, 0, 221, 0, 0,1478 0, 0, 3 7, 0, 0, 120, 293, 21, 0, 22,1479 0, 69 1, 696, 448, 688, 546, 546, 0, 106, 3,1480 2, 2 8, 0, 34, 0, 2, 26, 0, 104, 71,1481 7 2, 73, 75, 76, 78, 79, 83, 84, 81, 82,1482 8 6, 87, 89, 91, 93, 95, 97, 0, 0, 751,1483 293, 0, 0, 0, 646, 647, 643, 644, 496, 495,1484 293, 0, 293, 713, 293, 718, 294, 293, 661, 293,1485 29 3, 704, 660, 2, 293, 0, 0, 0, 0, 0,1486 0, 0, 0, 682, 0, 668, 619, 635, 669,2,1487 615, 622, 431, 617, 618, 432, 2, 629, 638, 631,1488 63 2, 665, 666, 680, 708, 712, 710, 750, 267, 2,1489 744, 2, 422, 716, 721, 423, 0, 401, 3, 3,1490 3, 3, 453, 3, 0, 2, 467, 464, 749, 0,1491 460, 2, 463, 466, 0, 293, 241, 263, 3, 271,1492 27 3, 0, 453, 2, 570, 571, 2, 609, 610, 0,1493 658, 536, 3, 344, 343, 346, 345, 293, 537,0,1494 538, 371, 0, 0, 293, 293, 0, 0, 691, 381,1495 384, 38 8, 546, 388, 387, 380, 373, 546, 375, 378,1496 293, 398, 392, 102, 399, 748, 0, 0, 436, 239,1497 0, 0, 3, 2, 667, 429, 0, 526, 0, 750,1498 488, 0, 293, 293, 293, 0, 550, 552, 129, 0,1499 0, 214, 0, 0, 0, 222, 223, 54, 0, 56,1500 59, 6 0, 0, 2, 127, 0, 0, 0, 692, 693,1501 6 89, 690, 458, 68, 69, 107, 124, 3, 106, 0,1502 0, 25, 36, 3, 0, 33, 100, 0, 3, 649,1503 65 3, 656, 648, 3, 591, 3, 715, 720, 2, 61,1504 293, 3, 3, 294, 0, 3, 621, 625, 628, 637,1505 6 71, 675, 678, 293, 3, 620, 636, 670, 293, 293,1506 424, 293, 293, 745, 0, 0, 0, 0, 255, 0,1507 102, 0, 3, 3, 0, 461, 0, 457,0, 0,1508 244, 293, 0, 0, 128, 0, 0, 0, 0, 0,1509 128, 0, 0, 106, 106, 19, 2, 0, 0, 3,1510 130, 131, 2, 142, 132, 133, 134, 135, 136, 137,1511 14 4, 146, 0, 0, 0, 284, 293, 293, 546, 0,1512 539, 293, 374, 376, 0, 390, 692, 385, 389, 386,1513 3 79, 383, 366, 397, 0, 578, 2, 663, 662, 0,1514 668, 2, 481, 483, 503, 3, 511, 512, 0, 2,1515 507, 3, 3, 0, 0, 555, 221, 0, 0, 0,1516 221, 0, 0, 120, 695, 699, 701, 694, 748, 106,1517 0, 3, 660, 40, 3, 38, 35, 0, 3, 99,1518 101, 0, 2, 651, 652, 0, 0, 293, 0, 0,1519 0, 3, 637, 0, 2, 623, 624, 2, 639, 2,1520 673, 674, 0, 0, 61, 0, 3, 3, 3, 3,1521 409, 408, 412, 2, 2, 747, 746, 121, 0, 0,1522 0, 0, 3, 462, 3, 0, 242, 145, 3, 294,1523 293, 0, 0, 0, 0, 2, 0, 190, 0, 188,1524 0, 0, 0, 0, 0, 0, 0, 546, 120, 0,1525 150, 147, 293, 0, 0, 266, 278, 3, 3, 545,1526 612, 367, 382, 395, 293, 265, 293, 0, 514, 491,1527 293, 0, 0, 490, 505, 0, 0, 0, 215, 0,1528 224, 57, 2, 697, 698, 0, 125, 122, 0, 0,1529 0, 0, 0, 24, 0, 654, 293, 579, 264, 723,1530 724, 725, 0, 676, 293, 293, 293, 3, 3, 0,1531 684, 0, 0, 0, 0, 293, 293, 3, 543, 121,1532 469, 0, 0, 245, 294, 0, 0, 0, 0, 293,1533 191, 189, 186, 0, 192, 0, 0, 0, 0, 196,1534 199, 197, 193, 0, 194, 128, 36, 143, 141, 243,1535 0, 0, 416, 420, 419, 0, 508, 2, 509, 2,1536 510, 504, 293, 227, 0, 225, 0, 227, 293, 32,1537 123, 2, 43, 2, 41, 39, 29, 27, 3, 726,1538 3, 3, 3, 0, 0, 683, 685, 626, 640, 268,1539 2, 406, 3, 405, 0, 471, 468, 128, 0, 0,1540 1 28, 3, 0, 128, 187, 0, 2, 2, 208, 198,1541 0, 0, 0, 139, 0, 573, 613, 2, 0, 0,1542 2, 228, 0, 0, 216, 0, 3, 0, 0, 0,1543 0, 0, 0, 686, 687, 293, 0, 470, 151, 0,1544 0, 2, 164, 128, 153, 0, 181, 0, 128, 0,1545 2, 155, 0, 2, 0, 2, 2, 2, 195, 33,1546 293, 513, 515, 506, 0, 0, 0, 0, 0, 3,1547 3, 655, 627, 641, 677, 410, 128, 157, 160, 0,1548 1 59, 163, 3, 166, 165, 0, 128, 183, 128, 3,1549 0, 293, 0, 293, 0, 2, 0, 2, 138, 2,1550 229, 230, 0, 226, 217, 700, 0, 0, 152, 0,1551 0, 1 62, 232, 167, 2, 234, 182, 0, 185, 171,1552 200, 3, 209, 213, 202, 3, 0, 293, 0, 293,1553 0, 0, 0, 44, 42, 158, 161, 128, 0, 168,1554 293, 128, 128, 0, 172, 0, 0, 691, 210, 211,1555 212, 0, 201, 3, 203, 3, 293, 218, 231, 148,1556 169, 154, 128, 235, 184, 179, 177, 173, 156, 128,1557 0, 692, 0, 0, 0, 0, 149, 170, 180, 174,1558 17 8, 177, 175, 3, 3, 0, 0, 492, 176, 204,1559 206, 3, 3, 205, 2071463 108, 2, 648, 455, 645, 549, 549, 653, 482, 296, 1464 2, 587, 588, 0, 599, 600, 0, 2, 742, 745, 1465 123, 296, 0, 2, 710, 297, 714, 705, 706, 712, 1466 0, 2, 2, 670, 549, 753, 619, 549, 549, 753, 1467 549, 633, 549, 549, 684, 437, 667, 549, 549, 675, 1468 682, 296, 432, 297, 0, 0, 296, 720, 297, 725, 1469 753, 717, 296, 722, 753, 296, 296, 296, 0, 123, 1470 0, 19, 2, 0, 20, 0, 462, 751, 0, 0, 1471 468, 243, 0, 296, 0, 0, 0, 547, 571, 575, 1472 577, 607, 610, 614, 617, 570, 609, 0, 286, 660, 1473 0, 296, 279, 0, 0, 0, 0, 277, 2, 0, 1474 261, 538, 296, 0, 0, 296, 2, 366, 386, 375, 1475 0, 0, 380, 374, 752, 0, 0, 399, 0, 297, 1476 3, 417, 3, 421, 420, 593, 0, 533, 296, 64, 1477 3, 296, 436, 297, 3, 430, 431, 2, 0, 0, 1478 0, 487, 308, 296, 483, 485, 3, 2, 2, 0, 1479 504, 3, 0, 556, 131, 0, 0, 224, 0, 0, 1480 0, 0, 38, 0, 0, 123, 296, 21, 0, 22, 1481 0, 694, 699, 451, 691, 549, 549, 0, 109, 3, 1482 2, 29, 0, 35, 0, 28, 2, 26, 0, 107, 1483 74, 75, 76, 78, 79, 81, 82, 86, 87, 84, 1484 85, 89, 90, 92, 94, 96, 98, 100, 0, 0, 1485 754, 296, 0, 0, 0, 649, 650, 646, 647, 499, 1486 498, 296, 0, 296, 716, 296, 721, 297, 296, 664, 1487 296, 296, 707, 663, 2, 296, 0, 0, 0, 0, 1488 0, 0, 0, 0, 685, 0, 671, 622, 638, 672, 1489 2, 618, 625, 434, 620, 621, 435, 2, 632, 641, 1490 634, 635, 668, 669, 683, 711, 715, 713, 753, 270, 1491 2, 747, 2, 425, 719, 724, 426, 0, 404, 3, 1492 3, 3, 3, 456, 3, 0, 2, 470, 467, 752, 1493 0, 463, 2, 466, 469, 0, 296, 244, 266, 3, 1494 274, 276, 0, 456, 2, 573, 574, 2, 612, 613, 1495 0, 661, 539, 3, 347, 346, 349, 348, 296, 540, 1496 0, 541, 374, 0, 0, 296, 296, 0, 0, 694, 1497 384, 387, 391, 549, 391, 390, 383, 376, 549, 378, 1498 381, 296, 401, 395, 105, 402, 751, 0, 0, 439, 1499 242, 0, 0, 3, 2, 670, 432, 0, 529, 0, 1500 753, 491, 0, 296, 296, 296, 0, 553, 555, 132, 1501 0, 0, 217, 0, 0, 0, 225, 226, 57, 0, 1502 59, 62, 63, 0, 2, 130, 0, 0, 0, 695, 1503 696, 692, 693, 461, 71, 72, 110, 127, 3, 109, 1504 0, 0, 25, 37, 3, 0, 34, 103, 0, 3, 1505 652, 656, 659, 651, 3, 594, 3, 718, 723, 2, 1506 64, 296, 3, 3, 297, 0, 3, 624, 628, 631, 1507 640, 674, 678, 681, 296, 3, 623, 639, 673, 296, 1508 296, 427, 296, 296, 748, 0, 0, 0, 0, 258, 1509 0, 105, 0, 3, 3, 0, 464, 0, 460, 0, 1510 0, 247, 296, 0, 0, 131, 0, 0, 0, 0, 1511 0, 131, 0, 0, 109, 109, 19, 2, 0, 0, 1512 3, 133, 134, 2, 145, 135, 136, 137, 138, 139, 1513 140, 147, 149, 0, 0, 0, 287, 296, 296, 549, 1514 0, 542, 296, 377, 379, 0, 393, 695, 388, 392, 1515 389, 382, 386, 369, 400, 0, 581, 2, 666, 665, 1516 0, 671, 2, 484, 486, 506, 3, 514, 515, 0, 1517 2, 510, 3, 3, 0, 0, 558, 224, 0, 0, 1518 0, 224, 0, 0, 123, 698, 702, 704, 697, 751, 1519 109, 0, 3, 663, 47, 46, 3, 39, 41, 36, 1520 0, 3, 102, 104, 0, 2, 654, 655, 0, 0, 1521 296, 0, 0, 0, 3, 640, 0, 2, 626, 627, 1522 2, 642, 2, 676, 677, 0, 0, 64, 0, 3, 1523 3, 3, 3, 412, 411, 415, 2, 2, 750, 749, 1524 124, 0, 0, 0, 0, 3, 465, 3, 0, 245, 1525 148, 3, 297, 296, 0, 0, 0, 0, 2, 0, 1526 193, 0, 191, 0, 0, 0, 0, 0, 0, 0, 1527 549, 123, 0, 153, 150, 296, 0, 0, 269, 281, 1528 3, 3, 548, 615, 370, 385, 398, 296, 268, 296, 1529 0, 517, 494, 296, 0, 0, 493, 508, 0, 0, 1530 0, 218, 0, 227, 60, 2, 700, 701, 0, 128, 1531 125, 0, 0, 0, 0, 0, 24, 0, 657, 296, 1532 582, 267, 726, 727, 728, 0, 679, 296, 296, 296, 1533 3, 3, 0, 687, 0, 0, 0, 0, 296, 296, 1534 3, 546, 124, 472, 0, 0, 248, 297, 0, 0, 1535 0, 0, 296, 194, 192, 189, 0, 195, 0, 0, 1536 0, 0, 199, 202, 200, 196, 0, 197, 131, 37, 1537 146, 144, 246, 0, 0, 419, 423, 422, 0, 511, 1538 2, 512, 2, 513, 507, 296, 230, 0, 228, 0, 1539 230, 296, 33, 126, 40, 30, 2, 44, 2, 42, 1540 27, 3, 729, 3, 3, 3, 0, 0, 686, 688, 1541 629, 643, 271, 2, 409, 3, 408, 0, 474, 471, 1542 131, 0, 0, 131, 3, 0, 131, 190, 0, 2, 1543 2, 211, 201, 0, 0, 0, 142, 0, 576, 616, 1544 2, 0, 0, 2, 231, 0, 0, 219, 0, 3, 1545 0, 0, 0, 0, 0, 0, 689, 690, 296, 0, 1546 473, 154, 0, 0, 2, 167, 131, 156, 0, 184, 1547 0, 131, 0, 2, 158, 0, 2, 0, 2, 2, 1548 2, 198, 34, 296, 516, 518, 509, 0, 0, 0, 1549 0, 0, 3, 3, 658, 630, 644, 680, 413, 131, 1550 160, 163, 0, 162, 166, 3, 169, 168, 0, 131, 1551 186, 131, 3, 0, 296, 0, 296, 0, 2, 0, 1552 2, 141, 2, 232, 233, 0, 229, 220, 703, 0, 1553 0, 155, 0, 0, 165, 235, 170, 2, 237, 185, 1554 0, 188, 174, 203, 3, 212, 216, 205, 3, 0, 1555 296, 0, 296, 0, 0, 0, 45, 43, 161, 164, 1556 131, 0, 171, 296, 131, 131, 0, 175, 0, 0, 1557 694, 213, 214, 215, 0, 204, 3, 206, 3, 296, 1558 221, 234, 151, 172, 157, 131, 238, 187, 182, 180, 1559 176, 159, 131, 0, 695, 0, 0, 0, 0, 152, 1560 173, 183, 177, 181, 180, 178, 3, 3, 0, 0, 1561 495, 179, 207, 209, 3, 3, 208, 210 1560 1562 }; 1561 1563 … … 1563 1565 static const yytype_int16 yydefgoto[] = 1564 1566 { 1565 -1, 81 4, 468, 300, 47, 133, 134, 301, 302, 303,1566 304, 305, 762, 763, 113 4, 1135, 306, 381, 308, 309,1567 3 10, 311, 312, 313, 314, 315, 316, 317, 318, 319,1568 3 20, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519,1569 1 060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402,1570 140 3, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362,1571 1 067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955,1572 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039,1573 51, 52, 53, 54, 55, 347, 158, 58, 59, 60,1574 6 1, 62, 349, 64, 65, 264, 67, 68, 274, 351,1575 35 2, 71, 72, 73, 118, 75, 204, 354, 119, 78,1576 120, 80, 81, 455, 82, 454, 689, 690, 691, 909,1577 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858,1578 859, 700, 701, 702, 359, 360, 361, 362, 466, 340,1579 135, 136, 522, 324, 170, 646, 647, 648, 649, 650,1580 85, 121, 87, 489, 490, 940, 491, 277, 495, 325,1581 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90,1582 9 1, 718, 92, 273, 93, 94, 187, 1033, 680, 412,1583 125, 95, 501, 502, 503, 188, 268, 190, 191, 192,1584 269, 98, 99, 100, 101, 102, 103, 104, 195, 196,1585 19 7, 198, 199, 826, 606, 607, 608, 609, 200, 611,1586 61 2, 613, 573, 574, 575, 576, 752, 105, 615, 616,1587 61 7, 618, 619, 620, 969, 754, 755, 756, 596, 365,1588 36 6, 367, 368, 326, 164, 107, 108, 109, 370, 695,1589 5701567 -1, 815, 468, 300, 47, 133, 134, 301, 302, 303, 1568 304, 305, 762, 763, 1136, 1137, 1138, 306, 381, 308, 1569 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 1570 319, 320, 1032, 518, 977, 547, 322, 978, 949, 1059, 1571 1522, 1061, 1062, 1063, 1064, 1523, 1065, 1066, 1441, 1442, 1572 1405, 1406, 1407, 1501, 1502, 1506, 1507, 1542, 1543, 1067, 1573 1365, 1068, 1069, 1302, 1303, 1304, 1484, 1070, 145, 955, 1574 956, 957, 1385, 1465, 1476, 1477, 469, 470, 876, 877, 1575 1040, 51, 52, 53, 54, 55, 347, 158, 58, 59, 1576 60, 61, 62, 349, 64, 65, 264, 67, 68, 274, 1577 351, 352, 71, 72, 73, 118, 75, 204, 354, 119, 1578 78, 120, 80, 81, 455, 82, 454, 689, 690, 691, 1579 910, 1088, 911, 83, 84, 458, 456, 697, 857, 858, 1580 859, 860, 700, 701, 702, 359, 360, 361, 362, 466, 1581 340, 135, 136, 522, 324, 170, 646, 647, 648, 649, 1582 650, 85, 121, 87, 489, 490, 941, 491, 277, 495, 1583 325, 88, 137, 138, 89, 1325, 1110, 1111, 1112, 1113, 1584 90, 91, 718, 92, 273, 93, 94, 187, 1034, 680, 1585 412, 125, 95, 501, 502, 503, 188, 268, 190, 191, 1586 192, 269, 98, 99, 100, 101, 102, 103, 104, 195, 1587 196, 197, 198, 199, 827, 606, 607, 608, 609, 200, 1588 611, 612, 613, 573, 574, 575, 576, 752, 105, 615, 1589 616, 617, 618, 619, 620, 970, 754, 755, 756, 596, 1590 365, 366, 367, 368, 326, 164, 107, 108, 109, 370, 1591 695, 570 1590 1592 }; 1591 1593 1592 1594 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1593 1595 STATE-NUM. */ 1594 #define YYPACT_NINF -13 231596 #define YYPACT_NINF -1338 1595 1597 static const yytype_int16 yypact[] = 1596 1598 { 1597 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323,1598 -13 23, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,1599 -13 23, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873,1600 7 33, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191,1601 -13 23, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615,1602 -13 23, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323,1603 -13 23, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858,1604 1 038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103,1605 -13 23, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323,1606 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323,1607 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934,1608 -13 23, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844,1609 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584,1610 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323,1611 -13 23, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701,1612 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323,1613 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225,1614 -13 23, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480,1615 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50,1616 -13 23, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85,1617 -13 23, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615,1618 -13 23, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229,1619 -13 23, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323,1620 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797,1621 -13 23, 884, -1323, 733, 890, 844, -1323, 873, 888, 892,1622 -13 23, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621,1623 -13 23, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323,1624 -13 23, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561,1625 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323,1626 -13 23, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323,1627 -13 23, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323,1628 756, 338, 485, 411, 635, 955, 947, 957, 984, 237,1629 -13 23, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323,1630 -13 23, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323,1631 9 90, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030,1632 8 286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323,1633 -13 23, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575,1634 -13 23, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008,1635 5 958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,1636 -13 23, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991,1637 99 2, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029,1638 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323,1639 -13 23, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844,1640 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151,1641 -13 23, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323,1642 -13 23, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844,1643 -13 23, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285,1644 1044, -13 23, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015,1645 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436,1646 9 62, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323,1647 -13 23, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323,1648 -13 23, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606,1649 10 57, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323,1650 -13 23, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323,1651 -13 23, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323,1652 103 66, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366,1653 103 66, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214,1654 -13 23, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797,1655 -13 23, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323,1656 5 046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323,1657 106 7, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962,1658 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323,1659 9 85, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323,1660 9 62, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323,1661 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528,1662 -13 23, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985,1663 -13 23, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985,1664 2 85, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285,1665 -13 23, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323,1666 5 38, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788,1667 -13 23, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006,1668 -13 23, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843,1669 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102,1670 -13 23, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107,1671 11 11, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323,1672 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125,1673 -13 23, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323,1674 -13 23, -1323, 756, 756, 338, 338, 485, 485, 485, 485,1675 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323,1676 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323,1677 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017,1678 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143,1679 11 46, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323,1680 -13 23, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,1681 -13 23, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323,1682 -13 23, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159,1683 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158,1684 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323,1685 -13 23, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84,1686 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285,1687 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323,1688 -13 23, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323,1689 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323,1690 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962,1691 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187,1692 1 170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202,1693 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323,1694 -13 23, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212,1695 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558,1696 9 85, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006,1697 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813,1698 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660,1699 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232,1700 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564,1701 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96,1702 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323,1703 -13 23, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323,1704 -13 23, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257,1705 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323,1706 -13 23, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258,1707 1 901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260,1708 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252,1709 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214,1710 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323,1711 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290,1712 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323,1713 -13 23, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323,1714 -13 23, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366,1715 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213,1716 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323,1717 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625,1718 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323,1719 -13 23, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323,1720 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329,1721 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486,1722 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323,1723 -13 23, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348,1724 -13 23, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529,1725 -13 23, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837,1726 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419,1727 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323,1728 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323,1729 -13 23, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323,1730 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323,1731 -13 23, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323,1732 -13 23, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214,1733 101 00, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323,1734 1 399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899,1735 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407,1736 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366,1737 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403,1738 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411,1739 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270,1740 1 270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433,1741 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793,1742 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440,1743 -13 23, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366,1744 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909,1745 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512,1746 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909,1747 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323,1748 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323,1749 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924,1750 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323,1751 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323,1752 -13 23, -1323, -1323, -1323, -13231599 4794, 8872, -1338, 118, -1338, -1338, -1338, -1338, -1338, -1338, 1600 -1338, -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1601 -1338, -1338, -1338, -1338, -1338, -1338, 75, 75, 75, 889, 1602 761, 17, 6057, 231, -1338, -1338, -1338, -1338, -1338, 166, 1603 -1338, -1338, -1338, 566, 192, -1338, -1338, -1338, -1338, 4939, 1604 -1338, -1338, -1338, -1338, 195, 234, -1338, 1148, -1338, -1338, 1605 -1338, -1338, 170, 2042, 352, 44, 7574, -1338, -1338, 9333, 1606 1157, -1338, -1338, 1542, 364, 3919, 608, 982, 1542, 1041, 1607 -1338, -1338, 474, 402, -1338, 1542, 1242, -1338, 273, -1338, 1608 455, 478, -1338, -1338, -1338, -1338, 354, 234, 75, -1338, 1609 75, -1338, -1338, -1338, -1338, 9218, 1148, -1338, -1338, 1148, 1610 -1338, 387, -1338, 9518, -1338, -1338, 2342, 9556, -1338, 992, 1611 992, 992, -1338, -1338, -1338, 75, -1338, -1338, -1338, 374, 1612 386, 471, -1338, -1338, -1338, 480, -1338, -1338, -1338, -1338, 1613 -1338, 525, 539, -1338, -1338, 53, 8841, 1022, 54, 558, 1614 563, 587, 592, 605, 615, 8759, 7097, 644, 585, -1338, 1615 9371, -1338, -1338, -1338, -1338, 619, -1338, 349, 4637, 4637, 1616 -1338, 657, 446, -1338, -1338, -1338, -1338, 651, 453, 454, 1617 476, 75, 659, -1338, -1338, 2042, 2592, 742, -1338, 57, 1618 -1338, 75, 75, 234, -1338, -1338, 101, -1338, 75, 75, 1619 -1338, 3079, 687, 706, 992, 6771, -1338, -1338, 707, 4939, 1620 -1338, -1338, 1542, -1338, -1338, -1338, 234, -1338, 1148, 195, 1621 -1338, 7912, -1338, 992, 992, 992, 234, -1338, 889, -1338, 1622 4555, -1338, -1338, 691, 992, -1338, 992, -1338, 166, 8841, 1623 -1338, 713, -1338, 761, 725, 992, -1338, 889, 756, 768, 1624 -1338, 6057, 675, -1338, -1338, -1338, 9300, -1338, -1338, 2361, 1625 -1338, 742, 105, 10239, 9556, 2342, 3079, -1338, 194, -1338, 1626 -1338, 9518, 1148, 743, 7605, -1338, -1338, 126, -1338, 10586, 1627 755, 847, 10372, 832, 10391, 10448, -1338, 839, -1338, -1338, 1628 -1338, -1338, 10467, 10467, 8615, 824, -1338, -1338, -1338, -1338, 1629 -1338, -1338, -1338, 901, -1338, 679, 3121, 8954, 10391, -1338, 1630 507, 418, 680, 295, 694, 894, 852, 888, 930, 66, 1631 -1338, -1338, 938, 665, -1338, 380, -1338, -1338, 1022, -1338, 1632 -1338, 12, 949, -1338, 338, 949, 961, 166, -1338, -1338, 1633 968, 9218, -1338, 983, 984, 9067, -1338, -1338, 776, 1555, 1634 8330, 6771, 1542, -1338, 1542, 992, 992, -1338, -1338, -1338, 1635 -1338, -1338, -1338, 992, 9218, 1148, -1338, -1338, 9594, 1098, 1636 -1338, 8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 995, 1637 5881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1638 -1338, -1338, -1338, -1338, -1338, -1338, 2342, -1338, 489, 993, 1639 994, 1000, 732, 1004, 1007, 1008, 2592, -1338, -1338, 969, 1640 195, 1030, -1338, -1338, 1024, -1338, -1338, -1338, 9300, -1338, 1641 -1338, -1338, -1338, -1338, 3079, -1338, 8841, 8841, -1338, 992, 1642 2342, 6890, 1148, 8403, -1338, -1338, -1338, -1338, 9300, 105, 1643 -1338, -1338, 1542, 234, -1338, -1338, 9300, -1338, 6655, -1338, 1644 -1338, 992, 992, 465, 8248, 1029, 1028, 1015, 1033, 992, 1645 -1338, -1338, -1338, -1338, 9742, -1338, 591, 6518, -1338, 234, 1646 1044, -1338, 2342, 10668, 10296, -1338, -1338, -1338, -1338, 929, 1647 3079, -1338, 8476, 742, 5771, -1338, -1338, -1338, 1039, 645, 1648 938, 761, 7605, 809, 9518, -1338, 7605, -1338, -1338, -1338, 1649 -1338, 688, -1338, 1046, 847, 251, 8615, -1338, 9627, -1338, 1650 -1338, 8615, -1338, 8728, 8615, -1338, -1338, 1048, -1338, 751, 1651 1043, 711, 1057, -1338, -1338, 9447, 6740, -1338, 107, -1338, 1652 -1338, 10239, -1338, 318, 10239, -1338, -1338, -1338, -1338, -1338, 1653 -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338, 1654 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 1655 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 4422, 10239, 1656 -1338, 665, 1831, -1338, -1338, 75, 75, -1338, -1338, 8841, 1657 -1338, -1338, 1024, 675, -1338, 1024, 10315, -1338, -1338, -1338, 1658 5500, 6740, 1056, 1064, -1338, 9556, -1338, -1338, 619, -1338, 1659 1065, 1323, 1067, 2196, 209, 938, -1338, 75, 75, 938, 1660 243, -1338, 75, 75, 1024, -1338, -1338, 75, 75, -1338, 1661 949, 9665, 1148, 10813, 217, 306, 9665, -1338, 2361, -1338, 1662 938, -1338, 9218, -1338, 212, 8027, 8027, 8027, 1148, -1338, 1663 6120, 1053, 995, 535, 1061, 1066, -1338, 1071, 4637, 421, 1664 -1338, 1166, 1148, 8027, 675, 2342, 675, 742, 394, 949, 1665 -1338, -1338, 788, 949, -1338, -1338, -1338, 847, -1338, 949, 1666 234, 9742, -1338, 764, 1087, 806, 1088, -1338, 1089, 234, 1667 -1338, -1338, 9300, 234, 1090, 9627, 1096, -1338, 1729, -1338, 1668 527, 550, 761, -1338, 761, 1102, 10391, -1338, 761, 10813, 1669 -1338, -1338, 1092, -1338, -1338, -1338, 675, -1338, 10741, 984, 1670 -1338, 8027, 857, 8330, -1338, -1338, 619, 1103, 1112, 1039, 1671 3523, -1338, -1338, 7605, -1338, -1338, 1097, -1338, -1338, 1121, 1672 -1338, 1097, 1124, 10586, 10239, 1105, 1104, 94, 1128, 1123, 1673 1132, 1133, -1338, 1136, 1138, 9485, 6859, -1338, 10239, -1338, 1674 711, 1914, -1338, -1338, -1338, 75, 75, 6186, 10239, 1134, 1675 -1338, -1338, 822, -1338, 10239, -1338, -1338, -1338, 715, -1338, 1676 -1338, -1338, -1338, 507, 507, 418, 418, 680, 680, 680, 1677 680, 295, 295, 694, 894, 852, 888, 930, 10391, 250, 1678 -1338, 9742, 1151, 1153, 1158, 1831, -1338, -1338, -1338, -1338, 1679 -1338, 9742, 827, 8027, -1338, 9218, -1338, 7216, 9180, -1338, 1680 8061, 7097, -1338, -1338, 1323, 9742, 936, 1159, 1162, 1164, 1681 1167, 1170, 1175, 1178, -1338, 3437, 2196, -1338, -1338, -1338, 1682 -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1683 -1338, -1338, -1338, -1338, 1024, -1338, -1338, -1338, 938, -1338, 1684 -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1179, -1338, 1180, 1685 1181, -1338, -1338, 195, 1134, 6120, -1338, -1338, -1338, 5881, 1686 1143, -1338, -1338, -1338, -1338, 761, 6348, 1247, -1338, -1338, 1687 -1338, -1338, 1165, 195, -1338, -1338, 1024, -1338, -1338, 1024, 1688 230, 1024, -1338, -1338, -1338, -1338, -1338, -1338, 9409, -1338, 1689 234, -1338, -1338, 554, 555, 9594, 7335, 2114, 10391, 2586, 1690 -1338, -1338, 1163, 40, 1163, -1338, 761, -1338, 75, -1338, 1691 -1338, 8985, 1015, -1338, -1338, -1338, 1028, 1185, 1186, -1338, 1692 -1338, 1189, 1191, -1338, 857, 1994, -1338, 444, -1338, 3523, 1693 938, -1338, 1195, 7605, 9703, 8841, 1196, -1338, -1338, 1192, 1694 1200, 1182, -1338, 10391, 1205, 298, 1203, -1338, 1206, 675, 1695 1206, -1338, -1338, 1206, 1209, -1338, 1214, 1216, 1217, 1914, 1696 -1338, -1338, -1338, 5881, -1338, -1338, -1338, -1338, 1215, 10239, 1697 1220, 831, -1338, 10239, -1338, 831, -1338, -1338, 10239, -1338, 1698 972, 949, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 995, 1699 984, 9067, -1338, -1338, 7454, 1229, -1338, 975, 949, -1338, 1700 979, 991, 949, -1338, 992, 3705, -1338, -1338, -1338, 9742, 1701 9742, -1338, 8403, 8403, -1338, 1226, 1232, 1235, 1240, -1338, 1702 1244, 564, 43, 1134, -1338, 831, -1338, 4637, -1338, 10239, 1703 582, -1338, 6621, 1243, 1245, 10182, 1248, 1251, 46, 70, 1704 103, 10239, 1252, 234, 10239, 10239, 1238, 1257, 333, 1239, 1705 -1338, -1338, -1338, 1258, -1338, -1338, -1338, -1338, -1338, -1338, 1706 -1338, -1338, -1338, 761, 1268, 10239, -1338, 9742, 9742, 75, 1707 1269, -1338, 9098, -1338, -1338, 767, -1338, 2586, -1338, -1338, 1708 -1338, -1338, 1729, -1338, -1338, 1270, -1338, -1338, -1338, -1338, 1709 1273, 1994, -1338, -1338, 1256, -1338, 1097, -1338, -1338, 2342, 1710 1271, -1338, -1338, -1338, 836, 1276, -1338, 94, 1279, 10391, 1711 1265, 94, 94, 1293, 9447, 1023, 949, -1338, -1338, 1071, 1712 10239, 1292, 1215, 513, -1338, -1338, 1296, -1338, -5, -1338, 1713 1297, 1296, -1338, -1338, 1304, -1338, -1338, 1024, 1306, 1309, 1714 6978, 1310, 1312, 1313, -1338, -1338, 1316, -1338, -1338, 1024, 1715 -1338, -1338, -1338, -1338, 1024, 10239, 10239, 984, 1315, -1338, 1716 -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1717 -1338, 10391, 10391, 1317, 1318, 1296, -1338, -1338, 761, -1338, 1718 -1338, -1338, 7839, 9703, 10239, 10239, 1381, 10239, -1338, 1299, 1719 -1338, 1303, -1338, 1305, 10239, 1311, 10239, 1014, 1314, 39, 1720 75, 5221, 1493, -1338, -1338, 6348, 1321, 584, -1338, -1338, 1721 -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338, 8476, 1722 1328, -1338, -1338, 9703, 589, 606, -1338, 1327, 1325, 847, 1723 1334, -1338, 331, -1338, -1338, -1338, -1338, 1024, 1332, -1338, 1724 -1338, 1336, 831, 1339, 320, 457, -1338, 1341, -1338, 9742, 1725 -1338, -1338, -1338, -1338, -1338, 1345, -1338, 9742, 9742, 9742, 1726 -1338, -1338, 1351, -1338, 1355, 1358, 1360, 623, 8100, 8215, 1727 -1338, -1338, 463, -1338, 1361, 1370, -1338, 8549, 841, 866, 1728 1374, 868, 6487, -1338, -1338, -1338, 616, -1338, 881, 1375, 1729 1379, 234, 1429, 861, -1338, -1338, 10239, -1338, 10182, 10239, 1730 -1338, -1338, -1338, 1383, 1384, -1338, -1338, -1338, 1382, -1338, 1731 -1338, -1338, -1338, -1338, -1338, 9703, 847, 1386, -1338, 1366, 1732 847, 9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, 1733 -1338, -1338, -1338, -1338, -1338, -1338, 1389, 1390, -1338, -1338, 1734 -1338, -1338, -1338, -1338, -1338, 1395, -1338, 1394, -1338, -1338, 1735 10182, 334, 10239, 10182, -1338, 1398, 10239, -1338, 339, 1415, 1736 1417, -1338, -1338, 1405, 1406, 1393, -1338, 840, -1338, -1338, 1737 -1338, 1148, 2342, 1403, -1338, 329, 10391, -1338, 897, -1338, 1738 831, 831, 1411, 1412, 1416, 1421, -1338, -1338, 8403, 1423, 1739 -1338, 1485, 10391, 1407, -1338, -1338, 10094, -1338, 898, -1338, 1740 1410, 10182, 1422, -1338, -1338, 1434, -1338, 1443, -1338, 1459, 1741 1461, -1338, 1428, 9703, -1338, -1338, -1338, 847, 675, 1452, 1742 1431, 1455, 1296, 1296, -1338, -1338, -1338, -1338, -1338, 10182, 1743 81, -1338, 447, -1338, -1338, 7690, -1338, -1338, 1435, 10239, 1744 -1338, 10239, 7690, 234, 9627, 234, 9627, 1465, -1338, 1466, 1745 -1338, -1338, 1456, -1338, -1338, 909, -1338, -1338, -1338, 1470, 1746 1471, -1338, 10391, 10391, -1338, -1338, 880, 254, -1338, -1338, 1747 1453, -1338, 880, -1338, -1338, 2645, 675, -1338, -1338, 234, 1748 9627, 234, 9627, 1480, 1458, 675, -1338, -1338, -1338, -1338, 1749 10094, 1476, 880, 7766, 10239, 10006, 1478, 880, 1486, 2645, 1750 2922, -1338, -1338, -1338, 1487, -1338, -1338, -1338, -1338, 8841, 1751 -1338, -1338, -1338, 9873, -1338, 10094, -1338, -1338, 1467, 9785, 1752 -1338, -1338, 10006, 234, 2922, 234, 1495, 1498, 927, -1338, 1753 9873, -1338, -1338, -1338, 9785, -1338, -1338, -1338, 234, 234, 1754 -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338 1753 1755 }; 1754 1756 … … 1756 1758 static const yytype_int16 yypgoto[] = 1757 1759 { 1758 -13 23, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910,1759 -13 23, 521, -520, -467, -853, -64, 3183, 0, -1323, -150,1760 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323,1761 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413,1762 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823,1763 -11 06, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323,1764 -13 23, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323,1765 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535,1766 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323,1767 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80,1768 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323,1769 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524,1770 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106,1771 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5,1772 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979,1773 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235,1774 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323,1775 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267,1776 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170,1777 7, -40, -35, -33, 60, -6, 25, 93, -168, -164,1778 -1 58, -147, -144, -292, -471, -462, -452, -551, -302, -537,1779 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514,1780 -5 02, -495, -500, -1323, -508, -724, -717, -708, -590, -305,1781 - 195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623,1782 - 3971760 -1338, 4260, 2887, -1338, 1463, -1338, 1198, 661, -268, 942, 1761 -1338, 552, -528, -471, -934, -784, -1338, 4910, 0, -1338, 1762 -100, 434, 472, 506, 438, 1049, 1050, 1051, 1062, 1055, 1763 -1338, 1094, -577, 5180, -896, -1338, -712, 636, -68, -593, 1764 -654, -1338, 1469, -1338, 408, -1065, -1338, -1338, 159, -1338, 1765 -1118, -880, 265, -1338, -1338, -1338, -1338, 92, -1253, -1338, 1766 -1338, -1338, -1338, -1338, -1338, 341, -1303, 36, -1338, -904, 1767 -1338, 518, 311, -1338, 196, -1338, -309, -1338, -1338, -1338, 1768 571, -749, -1338, -1338, 16, -930, 172, 1119, -1338, -1338, 1769 -1338, -149, -1338, 71, 966, -196, 1532, 4034, -1338, -1338, 1770 83, 174, 287, 2700, -1338, 1836, -1338, -1338, 55, 2097, 1771 -1338, 2401, 2181, -1338, -1338, -1338, -656, -1338, 962, 964, 1772 560, 736, -249, -1338, -1338, -1338, 955, 734, -456, -1338, 1773 -116, -94, 869, -1338, -1338, -963, -979, -2, 913, 1074, 1774 29, -1338, 719, 357, -283, -191, -146, 681, 789, -1338, 1775 1010, -1338, 2818, 1589, -439, 940, -1338, -1338, 720, -1338, 1776 -237, -1338, 109, -1338, -1338, -1338, -1275, 435, -1338, -1338, 1777 -1338, 1183, -1338, 32, -1338, -1338, -845, -111, -1337, -112, 1778 3150, -1338, 3946, -1338, 941, -1338, -138, 1137, -181, -176, 1779 -174, 7, -40, -33, -28, 1352, 38, 50, 77, -134, 1780 -173, -171, -166, -165, -261, -504, -490, -476, -565, -319, 1781 -523, -1338, -1338, -525, 1107, 1111, 1115, -135, 4740, -582, 1782 -583, -534, -519, -480, -1338, -505, -725, -715, -709, -592, 1783 -312, -258, -1338, -1338, 326, 26, -81, -1338, 3689, -15, 1784 -601, -356 1783 1785 }; 1784 1786 … … 1786 1788 positive, shift that token. If negative, reduce the rule which 1787 1789 number is the opposite. If YYTABLE_NINF, syntax error. */ 1788 #define YYTABLE_NINF -52 21790 #define YYTABLE_NINF -525 1789 1791 static const yytype_int16 yytable[] = 1790 1792 { 1791 49, 113, 407, 149, 453, 399, 428, 97, 150, 440, 1792 151, 267, 400, 753, 767, 401, 114, 1071, 408, 106, 1793 106, 402, 974, 280, 869, 828, 965, 403, 57, 57, 1794 505, 845, 49, 966, 1188, 50, 1172, 152, 404, 97, 1795 597, 405, 967, 147, 383, 384, 741, 610, 1070, 49, 1796 357, 106, 827, 143, 70, 920, 161, 605, 410, 96, 1797 57, 795, 177, 186, 819, 1380, 209, 50, 153, 49, 1798 193, 56, 115, 216, 923, 1303, 226, 1440, 949, 726, 1799 69, 281, 407, 731, 219, 399, 70, 820, 106, 31, 1800 31, 96, 400, 724, 57, 401, 425, 57, 408, 821, 1801 31, 402, 148, 56, 831, 113, 822, 403, 96, 162, 1802 838, 261, 69, 113, 262, 670, 266, 271, 404, 122, 1803 212, 405, 189, 194, 31, 96, 217, 31, 96, 227, 1804 816, 1138, 475, 477, 510, 679, 154, 210, 202, 817, 1805 220, 260, 1196, 683, 1304, 149, 307, 147, 1440, 818, 1806 150, 1198, 151, 166, 161, 113, 345, 548, 549, 252, 1807 209, 411, 411, 1459, 31, 986, 527, 373, 1200, 629, 1808 419, 31, 411, 633, 1170, 1171, 291, 715, 1178, 152, 1809 914, 1182, 965, 1235, 348, 186, 186, 1239, 203, 966, 1810 358, 342, 76, 161, 1078, 548, 721, 481, 967, 411, 1811 668, 266, 1197, 1469, 1179, 952, 96, 162, 832, 49, 1812 153, 1199, 835, 1201, 1187, 409, 161, 166, 123, 96, 1813 374, 209, 665, 439, 76, 149, 252, 329, 443, 1179, 1814 150, 548, 151, 852, 829, 471, 602, 855, 666, 307, 1815 1172, 836, 1030, 602, 398, 189, 162, 1017, 816, 57, 1816 327, 49, 1140, 735, 176, -233, -233, 817, 97, 271, 1817 476, 674, 676, 1081, 271, 266, 266, 818, 96, 162, 1818 106, 113, 463, 161, 1016, 442, 1004, 483, 154, 57, 1819 96, 444, 1188, 992, 500, 923, 50, 142, 924, 1249, 1820 1172, 657, 441, 1527, 307, 163, 665, 860, 861, 820, 1821 146, 610, 1094, 176, 1485, 70, 176, 307, 1205, 1206, 1822 96, 821, 666, 436, 878, 831, 597, 1250, 822, 672, 1823 1542, 597, 56, 572, 479, 677, -233, 357, 147, 730, 1824 923, 69, 567, 1399, 1400, 373, 168, 155, 1513, 377, 1825 1515, 113, 816, 327, 580, 345, 411, 476, 743, 603, 1826 621, 817, 176, 177, 1071, 378, 828, 63, 736, 163, 1827 169, 818, 1399, 1400, 626, 1139, 568, 1497, 626, 569, 1828 630, 113, 932, 1502, 634, 436, 748, 589, 737, 899, 1829 110, 144, 139, 140, 1246, 1070, 447, 96, 374, 63, 1830 987, 41, 42, 1522, 1202, 805, 266, 471, 1529, 171, 1831 769, 770, 771, 1401, 212, 460, 186, 342, 604, 1172, 1832 845, 166, 578, 373, 799, 176, 1030, 471, 579, 820, 1833 357, 583, 243, 411, 266, 471, 307, 307, 1170, 1171, 1834 266, 821, 1410, 626, 110, 1188, 1119, 854, 822, 1326, 1835 110, 715, 1188, 76, 1526, 41, 42, 684, 76, 599, 1836 1020, 41, 42, 579, 113, 435, 1120, 553, 554, 1327, 1837 1127, 348, 1363, 995, 1537, 189, 374, 358, -121, 176, 1838 -121, 1541, 266, 760, -121, 493, 176, 705, 494, 765, 1839 266, 387, 626, 706, 49, 357, 953, 373, 720, -121, 1840 -121, 97, 229, 1188, 113, 230, 923, 388, 234, 1085, 1841 236, 557, 558, 106, 911, 1245, 307, 245, 113, 1158, 1842 1160, 307, 57, 307, 307, 1136, 714, 435, 1424, 50, 1843 913, 751, 1017, 610, 870, 113, 345, 212, 882, 1105, 1844 327, 327, 1425, 1015, 1429, 1430, 559, 560, 70, 883, 1845 523, 411, 1102, 96, 1117, 176, 722, 604, 1435, 1470, 1846 880, 181, 723, 163, 348, 56, 923, 923, 110, 390, 1847 358, 342, 176, 1471, 69, 110, 176, 139, 140, 41, 1848 42, 572, 572, 555, 556, 391, 41, 42, 1127, 307, 1849 1444, 110, 201, 914, 2, 206, 4, 5, 6, 7, 1850 626, 345, 41, 42, 286, 621, 392, 1331, 327, -289, 1851 715, 603, 111, 603, 865, 41, 42, 973, 63, 997, 1852 76, 247, 393, 472, 805, 1475, 250, 327, 732, 348, 1853 1333, 626, 1475, -517, 733, 358, 626, 847, 621, 176, 1854 76, 514, 626, 1361, 229, 626, 626, 626, 76, 871, 1855 -468, 643, -468, 862, 848, 886, 1015, 411, 849, 35, 1856 394, 36, 1028, 626, 915, 266, 252, 877, 872, -468, 1857 815, 471, 604, 348, 348, 348, 395, 1142, 917, 411, 1858 916, 807, 1075, 1523, 1444, 915, 76, 442, 917, 1444, 1859 1185, 348, 263, 327, 918, 113, 37, 929, 908, 1185, 1860 40, 1082, 1317, -10, 1083, 597, 1186, 41, 42, 1444, 1861 692, 498, 805, 110, 357, 1309, 1444, 1409, 1318, 1113, 1862 1237, 626, 934, 621, 41, 42, 747, -441, 1319, 720, 1863 720, 748, 748, 43, 407, 846, 399, 561, 562, 893, 1864 599, 45, 46, 400, 1320, 748, 401, 1364, 500, 348, 1865 408, -442, 402, 895, 1035, 113, 345, 912, 403, 748, 1866 751, 751, 523, 212, 523, 276, 571, 523, 411, 404, 1867 523, 923, 405, 981, 45, 46, 519, 212, 850, 982, 1868 1277, 1278, 851, 278, 229, 472, 234, 923, 815, 604, 1869 714, 342, 965, 1154, 850, 411, 1374, 176, 1101, 966, 1870 1477, 750, 1478, 411, 572, 472, 279, -103, 967, 45, 1871 46, -103, 626, 472, 626, 110, 1000, 139, 140, 626, 1872 345, 330, 933, 603, 602, 1162, 41, 42, 994, 176, 1873 45, 46, 37, 1233, 706, 603, 40, 331, 1349, 579, 1874 348, 1357, 1350, 41, 42, 176, 332, 748, 348, 712, 1875 1358, 63, 715, 371, 358, 1524, 748, 923, 923, 176, 1876 548, 985, 982, 465, 8, 9, 10, 11, 12, 813, 1877 212, 602, 329, 411, 229, 953, 372, 45, 46, 953, 1878 953, 1360, 815, 550, 76, 307, 1365, 748, -290, 551, 1879 552, 333, 748, 31, 604, 8, 9, 10, 11, 12, 1880 807, 510, 1370, 1371, 106, 1427, 334, 626, 673, 675, 1881 76, 1424, 665, 57, 113, 345, 908, 911, 908, 335, 1882 1445, 34, 1183, 376, 31, 37, 748, 385, 666, 40, 1883 113, 715, 1157, 913, 602, 389, 41, 42, 805, 70, 1884 176, 692, 409, 934, 934, 1491, 1419, 982, 720, 714, 1885 342, 1492, 34, 113, 307, 129, 56, 130, 131, 132, 1886 48, 112, 719, 1399, 1400, 69, 41, 42, 1106, 397, 1887 45, 46, 106, 1547, 214, 1084, 426, 912, 751, 579, 1888 1159, 57, 602, 427, 1509, 1426, 772, 773, 519, 112, 1889 112, 432, 48, 519, 450, 1324, 519, 738, 1242, 739, 1890 411, 1437, 740, 48, 1088, 744, 1088, 604, -365, 48, 1891 345, 774, 775, 1228, -394, 484, 37, 48, 174, 175, 1892 40, 780, 781, 48, 1107, 214, 48, 41, 42, 48, 1893 461, 626, 626, 1127, 462, 2, 206, 4, 5, 6, 1894 7, 504, 112, 112, 776, 777, 778, 779, 291, 472, 1895 788, 307, 2, 206, 4, 5, 6, 7, 327, 348, 1896 348, 528, 529, 530, 508, 1169, 48, 442, 214, 48, 1897 106, 1495, 1437, 513, 525, 472, 48, 76, 111, 57, 1898 527, 228, 1381, 563, 564, 531, 1381, 532, 566, 533, 1899 534, 113, 252, 329, 411, 565, 908, 419, 661, 411, 1900 35, 908, 36, 569, 176, 70, 338, 48, -438, 587, 1901 934, 658, 659, 712, 846, 48, -291, 35, 266, 36, 1902 48, 590, 56, 8, 9, 10, 11, 12, -3, 214, 1903 639, 1190, 660, 626, 481, 329, 411, 662, 663, 761, 1904 664, 829, 329, 602, 766, 48, 48, 37, 667, 183, 1905 184, 40, 31, 669, 257, 912, 693, 345, 41, 42, 1906 912, 48, 694, -3, 696, 498, 698, 214, -237, 48, 1907 734, 745, 214, 1296, 1297, 1298, 692, 749, 48, 757, 1908 34, 48, 808, 1460, 906, 809, 411, -12, 112, 812, 1909 823, 714, 45, 46, 465, 1332, 1334, 1335, -13, 271, 1910 113, 867, 868, 112, 874, 907, 894, 112, 896, 897, 1911 922, 48, 112, 901, 904, 219, -415, 723, 113, 106, 1912 -521, 944, 307, 937, 946, 48, 48, 57, 57, 957, 1913 950, 959, 48, 958, 960, 951, 626, -292, 961, 48, 1914 113, 106, 63, 76, 8, 9, 10, 11, 12, 962, 1915 57, 978, 989, 212, 342, 1106, 990, 991, 214, 106, 1916 1006, 1007, 1008, 1009, 116, 879, 1010, 881, 57, 1011, 1917 210, 220, 712, 31, 1012, 1023, 70, -403, 37, -402, 1918 183, 184, 40, 1037, 1422, 626, 626, 1072, 48, 41, 1919 42, 1535, 1074, 56, 271, 1095, 907, 1096, 1059, 307, 1920 1097, 34, 69, 1098, 1104, 1114, 748, 1115, 48, 48, 1921 1116, 1107, 159, 348, 348, 185, 1118, 928, 106, 1352, 1922 1121, 1123, 57, 45, 46, 48, 972, 57, 1124, 48, 1923 1125, 1126, 113, 407, 1132, 1129, 399, 692, 1152, 214, 1924 644, 1173, 1174, 400, 173, 1175, 401, 1106, 442, 408, 1925 1176, 106, 402, 70, 1177, 1191, 48, 665, 403, 1192, 1926 57, 1194, 1195, 1203, 1210, 441, 48, 1207, 258, 404, 1927 56, 1208, 405, 666, 1215, -3, 159, 1220, 1225, 1190, 1928 1223, 214, 1241, 493, 48, 1229, 253, 1508, 1234, 266, 1929 48, 1236, 48, 1421, 1238, 1247, 1251, 1253, 1255, 110, 1930 1257, 139, 238, 1107, 1258, 626, 1263, 1259, 472, 323, 1931 41, 42, 1260, 1261, 76, 176, 1270, 37, 339, 174, 1932 175, 40, 1279, 110, 1280, 139, 140, 112, 41, 42, 1933 113, 1287, 48, 348, 41, 42, 239, 1290, 1291, 1292, 1934 48, 240, 1330, 1294, 48, 1106, 1302, 1308, 48, 106, 1935 1315, 112, 113, 112, 372, 1323, 1321, 1325, 57, 113, 1936 727, 113, 1336, 113, 1329, 728, 1337, 1193, 430, 1339, 1937 1345, 106, 434, 1346, 1347, 1348, 149, 1359, 106, 1355, 1938 57, 150, 417, 151, 1356, 1366, 1367, 57, 112, 1298, 1939 1375, 76, 1507, 112, 1384, 1376, 1377, 113, 1383, 113, 1940 1393, 1107, 323, 214, 1394, 437, 70, -404, 1397, 1408, 1941 113, 1412, 1414, 70, 712, 445, 1507, 1507, 1416, 1417, 1942 703, 1423, 1418, 56, 161, 1441, 307, 1431, 1432, 106, 1943 56, 214, 1190, 1433, 434, 1434, 214, 488, 57, 1190, 1944 1350, 1507, 1436, 112, 1446, 1448, 1450, 1452, 373, 213, 1945 48, 1454, 1456, 1458, 1463, 1465, 1486, 521, 232, 1464, 1946 1476, 48, 1488, 48, 70, 1490, 1493, 1501, 1521, 1122, 1947 159, 1494, 1516, 1517, 1530, 479, 141, 1528, 1532, 63, 1948 1538, 56, 48, 520, 1545, 176, 1546, 889, 1209, 782, 1949 1190, 1133, 1131, 712, 784, 1133, 1307, 1411, 48, 783, 1950 213, 704, 785, 112, 588, 786, 1496, 214, 594, 1548, 1951 1369, 1385, 48, 1240, 112, 48, 112, 1214, 1479, 902, 1952 903, 214, 1089, 925, 215, 1222, 1093, 627, 241, 244, 1953 327, 631, 801, 1128, 339, 1059, 1036, 939, 873, 1103, 1954 242, 1316, 717, 213, 76, 1133, 66, 117, 48, 947, 1955 791, 76, 112, 792, 112, 793, 472, 37, 112, 174, 1956 175, 40, 0, 0, 0, 0, 112, 0, 41, 42, 1957 0, 0, 0, 1285, 1286, 215, 1288, 0, 66, 48, 1958 48, 0, 0, 1293, 0, 1295, 0, 0, 0, 323, 1959 323, 0, 0, 48, 376, 160, 0, 8, 9, 10, 1960 11, 12, 76, 0, 213, 0, 0, 1483, 0, 1483, 1961 0, 0, 0, 0, 214, 221, 0, 688, 215, 0, 1962 528, 529, 530, 0, 0, 0, 31, 703, 1373, 0, 1963 116, 0, 681, 0, 0, 0, 0, 8, 9, 10, 1964 11, 12, 213, 1483, 531, 1483, 532, 213, 533, 1306, 1965 0, 259, 0, 0, 34, 488, 0, 323, 707, 488, 1966 0, 0, 499, 0, 0, 0, 31, 0, 0, 521, 1967 0, 521, 0, 48, 521, 0, 323, 521, 0, 215, 1968 1398, 0, 0, 1406, 0, 48, 0, 0, 339, 457, 1969 0, 0, 0, 328, 34, 520, 571, 0, 411, 0, 1970 520, 259, 350, 520, 45, 46, 0, 0, 704, 472, 1971 0, 0, 0, 0, 0, 0, 472, 215, 0, 0, 1972 0, 0, 215, 0, 0, 0, 1443, 0, 644, 0, 1973 0, 1447, 406, 213, 112, 0, 750, 0, 411, 0, 1974 0, 1405, 323, 0, 45, 46, 703, 424, 0, 0, 1975 429, 431, 0, 803, 0, 160, 703, 48, 0, 1468, 1976 1133, 1133, 1133, 0, 0, 0, 48, 472, 48, 0, 1977 703, 0, 0, 0, 0, 112, 448, 0, 0, 0, 1978 451, 0, 452, 0, 844, 0, 0, 0, 0, 594, 1979 0, 459, 0, 0, 0, 853, 74, 66, 48, 0, 1980 0, 0, 473, 0, 0, 0, 0, 0, 215, 0, 1981 0, 214, 480, 0, 213, 0, 0, 0, 112, 0, 1982 431, 8, 9, 10, 11, 12, 645, 704, 74, 0, 1983 0, 213, 644, 0, 0, 0, 0, 704, 0, 0, 1984 112, 0, 0, 1536, 112, 0, 0, 0, 688, 1536, 1985 31, 704, 0, 0, 0, 0, 213, 0, 0, 891, 1986 1536, 0, 892, 0, 1536, 222, 0, 0, 898, 0, 1987 0, 0, 900, 0, 0, 0, 0, 0, 34, 0, 1988 0, 37, 0, 183, 184, 40, 488, 259, 0, 215, 1989 0, 595, 41, 42, 112, 0, 0, 623, 1133, 1133, 1990 0, 0, 0, 0, 0, 0, 0, 0, 339, 0, 1991 628, 0, 0, 0, 628, 0, 0, 259, 265, 0, 1992 933, 0, 602, 0, 0, 0, 45, 46, 45, 46, 1993 0, 215, 112, 0, 0, 0, 1461, 725, 0, 729, 1994 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 1995 0, 48, 353, 535, 536, 537, 538, 539, 540, 541, 1996 542, 543, 544, 545, 473, 0, 0, 996, 48, 0, 1997 0, 0, 803, 0, 703, 703, 0, 0, 213, 350, 1998 0, 988, 0, 0, 473, 0, 0, 546, 0, 0, 1999 0, 993, 473, 0, 1510, 0, 0, 214, 0, 0, 2000 0, 0, 0, 1518, 0, 1005, 213, 0, 0, 0, 2001 699, 213, 37, 431, 183, 184, 40, 0, 0, 0, 2002 0, 0, 0, 41, 42, 0, 449, 0, 713, 0, 2003 66, 0, 703, 703, 0, 0, 0, 0, 431, 0, 2004 0, 0, 431, 0, 0, 112, 0, 74, 0, 601, 2005 0, 602, 74, 215, 0, 704, 704, 45, 46, 0, 2006 803, 0, 0, 0, 0, 0, 0, 339, 48, 0, 2007 0, 259, 350, 0, 0, 0, 0, 0, 0, 0, 2008 0, 215, 213, 688, 0, 0, 215, 0, 1080, 866, 2009 0, 0, 214, 77, 0, 0, 213, 0, 0, 0, 2010 0, 0, 0, 0, 0, 488, 1108, 323, 0, 112, 2011 112, 112, 0, 704, 704, 0, 499, 0, 794, 37, 2012 0, 183, 184, 40, 0, 77, 0, 0, 0, 0, 2013 41, 42, 0, 0, 0, 0, 628, 806, 919, 0, 2014 921, 0, 0, 0, 457, 0, 0, 222, 37, 825, 2015 183, 184, 40, 0, 0, 0, 906, 215, 411, 41, 2016 42, 0, 223, 844, 45, 46, 0, 595, 0, 0, 2017 0, 215, 595, 0, 0, 0, 0, 0, 628, 0, 2018 1313, 350, 350, 350, 0, 1506, 0, 411, 0, 213, 2019 0, 0, 0, 45, 46, 0, 0, 0, 0, 350, 2020 0, 0, 0, 124, 127, 128, 0, 0, 0, 1167, 2021 1168, 0, 703, 0, 74, 0, 0, 699, 0, 0, 2022 703, 703, 703, 0, 0, 0, 0, 0, 473, 353, 2023 0, 0, 0, 0, 74, 0, 0, 0, 48, 48, 2024 0, 1204, 74, 0, 688, 0, 0, 112, 112, 355, 2025 0, 0, 0, 0, 473, 0, 0, 350, 0, 0, 2026 353, 1314, 0, 0, 215, 0, 938, 1217, 1218, 431, 2027 0, 0, 0, 0, 0, 254, 0, 255, 353, 0, 2028 74, 0, 0, 0, 703, 112, 803, 0, 0, 0, 2029 0, 259, 713, 704, 0, 0, 0, 968, 0, 0, 2030 0, 704, 704, 704, 0, 0, 0, 0, 0, 0, 2031 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 2032 1040, 0, 353, 0, 0, 0, 0, 126, 126, 126, 2033 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, 2034 0, 0, 48, 112, 77, 0, 699, 0, 350, 77, 2035 628, 0, 112, 1003, 0, 628, 806, 0, 396, 0, 2036 699, 1090, 0, 0, 0, 704, 48, 48, 415, 416, 2037 1014, 339, 0, 420, 0, 422, 423, 0, 0, 0, 2038 0, 0, 0, 0, 0, 0, 213, 353, 0, 0, 2039 0, 48, 0, 1108, 0, 0, 0, 0, 0, 126, 2040 0, 126, 0, 0, 0, 79, 0, 0, 0, 0, 2041 0, 0, 0, 0, 0, 0, 0, 0, 645, 0, 2042 0, 66, 0, 0, 0, 0, 275, 0, 0, 0, 2043 0, 353, 353, 353, 0, 0, 0, 79, 0, 0, 2044 0, 0, 0, 628, 223, 0, 0, 1338, 0, 353, 2045 259, 713, 0, 0, 1086, 1340, 1341, 1342, 0, 0, 2046 0, 215, 0, 0, 0, 0, 0, 353, 0, 0, 2047 0, 0, 0, 0, 224, 0, 0, 0, 74, 0, 2048 1100, 0, 126, 0, 0, 1108, 0, 1368, 431, 117, 2049 126, 0, 126, 126, 0, 0, 0, 126, 0, 126, 2050 126, 0, 0, 0, 74, 0, 0, 353, 0, 0, 2051 0, 77, 0, 0, 0, 0, 0, 0, 1040, 1386, 1793 49, 113, 453, 149, 399, 267, 768, 97, 428, 400, 1794 150, 401, 402, 505, 403, 151, 753, 114, 821, 404, 1795 405, 829, 383, 384, 260, 966, 106, 106, 440, 846, 1796 610, 1072, 49, 597, 166, 967, 50, 921, 828, 97, 1797 357, 968, 741, 147, 1175, 975, 870, 796, 407, 49, 1798 1383, 1141, 408, 726, 413, 76, 161, 731, 106, 1173, 1799 1174, 421, 358, 186, 143, 1443, 209, 822, 50, 49, 1800 193, 63, 202, 216, 342, 410, 226, 123, 820, 31, 1801 1254, 152, 823, 69, 399, 219, 177, 76, 605, 400, 1802 425, 401, 402, 153, 403, 106, 31, 817, 166, 404, 1803 405, 1185, 1306, 63, 280, 113, 629, 471, 1255, 670, 1804 633, 818, 1191, 113, 31, 69, 266, 271, 1199, 925, 1805 154, 580, 203, 411, 832, 819, 142, 1071, 407, 679, 1806 839, 327, 408, 413, 724, 261, 1443, 683, 262, 1181, 1807 31, 950, 1201, 674, 676, 149, 307, 147, 1462, 475, 1808 477, 411, 150, 1488, 161, 113, 345, 151, 1208, 1209, 1809 209, 567, 281, 252, 329, 1182, 252, 373, 411, 409, 1810 715, 1307, 56, 115, 70, 1203, 291, 1472, 1200, 110, 1811 861, 862, 966, 915, 510, 186, 186, 1516, 577, 1518, 1812 41, 42, 967, 161, 436, 568, 581, 879, 968, 584, 1813 122, 266, 1202, 1182, 56, 953, 70, 548, 549, 49, 1814 419, 730, 411, 1238, 476, 817, 161, 1242, 760, 668, 1815 1204, 209, 1060, 152, 327, 149, 519, 721, 443, 818, 1816 743, 821, 150, 31, 1249, 153, 735, 151, 210, 307, 1817 212, 220, 144, 819, 1018, 548, 1082, 439, 31, 833, 1818 1175, 49, 1530, 836, 493, 933, 436, 494, 97, 271, 1819 589, 1017, 154, 413, 271, 266, 266, 421, 665, 471, 1820 993, 113, 666, 161, 853, 146, 1143, 106, 856, 1545, 1821 822, 548, 31, 463, 610, 657, 181, 50, 1447, 471, 1822 342, 1005, 166, 1190, 307, 823, 800, 471, -236, -236, 1823 1175, 483, 168, 481, 155, 411, 76, 307, 500, 597, 1824 817, 76, 527, 672, 597, 1173, 1174, 357, 830, 677, 1825 602, 476, 63, 572, 818, 1095, 169, 472, 147, 849, 1826 599, 1086, 806, 850, 69, 373, 832, 447, 819, 358, 1827 1079, 113, 665, 569, 413, 345, 666, 996, 171, 603, 1828 621, 821, 837, 829, 602, 201, 460, 229, 673, 675, 1829 230, 736, 1191, 234, 626, 236, 748, -292, 626, -236, 1830 1072, 113, 245, 900, 855, 163, 1118, 177, 1402, 1403, 1831 988, 737, 1447, 1402, 1403, 557, 558, 1447, 714, 247, 1832 110, 1196, 110, 441, 630, 442, 266, 765, 634, 1134, 1833 822, 41, 42, 41, 42, 286, 186, 1447, 1120, 846, 1834 357, 327, 327, 373, 1447, 823, 41, 42, 851, 1175, 1835 559, 560, 852, 56, 266, 70, 307, 307, 1121, 766, 1836 266, 1336, 358, 626, 715, 1438, 577, 577, 519, 163, 1837 1529, 1329, 514, 519, 342, 1427, 519, 583, 1404, 411, 1838 770, 771, 772, 1413, 113, 250, 1432, 1433, 1205, 1428, 1839 1540, 1330, 703, 252, 1128, 377, 1071, 1544, 1334, 954, 1840 1337, 1339, 266, 76, 110, 357, 139, 140, -520, 327, 1841 266, 378, 626, -10, 49, 41, 42, 373, 720, 472, 1842 578, 97, 1021, 76, 113, -444, 579, 358, 327, 229, 1843 789, 76, 871, 884, 1106, 411, 307, 610, 113, 472, 1844 106, 307, 1139, 307, 307, 1191, 243, 472, 263, 1018, 1845 50, 751, 1191, 885, 212, 113, 345, 888, 1248, 110, 1846 1161, 1163, 872, 471, 643, 435, 1134, 553, 554, 76, 1847 41, 42, 1240, 1366, 881, 883, 110, 998, 139, 238, 1848 912, 873, 806, 712, 914, 63, 851, 41, 42, 930, 1849 1102, 1060, 387, 1473, 327, 1016, 498, 69, 1338, 390, 1850 392, 572, 572, 1191, -471, 684, -471, 1474, 388, 307, 1851 -445, 579, 1128, 239, 1103, 391, 393, 915, 240, 276, 1852 626, 345, 394, -471, 715, 621, 1500, 435, 252, 329, 1853 411, 603, 1505, 603, 1280, 1281, 847, 110, 395, 139, 1854 140, 599, 2, 206, 4, 5, 6, 7, 41, 42, 1855 523, 626, 1525, -124, 550, -124, 626, 1532, 621, -124, 1856 551, 552, 626, 163, 278, 626, 626, 626, 37, 229, 1857 806, 234, 40, 916, -124, -124, 866, 212, 279, 41, 1858 42, 848, 714, 626, 1376, 266, 56, 974, 70, 917, 1859 577, 48, 112, 1089, 342, 1089, 918, 863, 330, 703, 1860 916, 918, 1029, 331, 808, 43, -106, 35, 1016, 36, 1861 -106, 878, 919, 45, 46, 113, 1083, 1084, 909, 597, 1862 112, 112, 1076, 48, 372, 357, 1478, 332, 1188, 1364, 1863 1188, 705, 333, 1478, 48, 1320, 1401, 706, 1114, 1409, 1864 48, 626, 935, 621, 1189, 334, 1312, 358, 48, 720, 1865 720, 1321, 1322, 1036, 48, 335, 399, 48, 376, 229, 1866 48, 400, 748, 401, 402, 1352, 403, 76, 1323, 1353, 1867 -3, 404, 405, 112, 112, 113, 345, 110, 1367, 141, 1868 751, 751, 1446, 472, 1526, 722, 371, 1450, 41, 42, 1869 389, 723, 500, 76, 528, 529, 530, 48, 555, 556, 1870 48, 407, 385, 1412, 571, 408, 411, 48, 413, 472, 1871 692, 1377, 45, 46, 966, 1471, 561, 562, 531, 703, 1872 532, 397, 533, 534, 967, 572, 426, 442, 732, 703, 1873 968, 241, 244, 626, 733, 626, 409, 1001, 48, 1429, 1874 626, 345, 714, 703, 603, 427, 48, 712, 1165, 432, 1875 750, 48, 411, 450, 342, 1440, 603, -368, 45, 46, 1876 986, 983, 523, 110, 523, 139, 140, 523, 715, -397, 1877 523, 419, 661, 411, 41, 42, 48, 48, 37, 954, 1878 174, 175, 40, 954, 954, 1146, 1480, 484, 1481, 41, 1879 42, 747, 48, 738, 504, 739, 806, 748, 740, 1539, 1880 48, 744, 1158, 212, 894, 1539, 307, 329, 411, 48, 1881 748, 110, 48, 139, 140, 372, 1539, 212, 461, 112, 1882 1539, 1186, 41, 42, 808, 1498, 1440, 887, 626, 411, 1883 462, 548, 106, 110, 112, 113, 345, 909, 112, 909, 1884 1134, 1527, 48, 112, 41, 42, 896, 715, 727, 1373, 1885 1374, 113, 748, 728, 1402, 1403, 48, 48, 1172, 291, 1886 327, 76, 982, 48, 935, 935, 525, 995, 983, 720, 1887 48, 508, 510, 706, 113, 307, 1236, 63, 513, 665, 1888 413, 1360, 579, 666, 912, 1422, 983, 748, 914, 69, 1889 1107, 129, 457, 130, 131, 132, 934, 116, 602, 751, 1890 106, 1327, 41, 42, 45, 46, 1361, 712, 1363, 564, 1891 1512, 212, 748, 527, 748, -293, 847, 773, 774, 48, 1892 1246, 1368, 8, 9, 10, 11, 12, 748, 1231, 781, 1893 782, 345, 8, 9, 10, 11, 12, 1430, 1448, 48, 1894 48, 692, 563, 1427, 748, 159, 565, 703, 703, 1494, 1895 498, 31, 626, 626, 566, 1495, 48, 775, 776, 1128, 1896 48, 31, 8, 9, 10, 11, 12, 1550, 481, 329, 1897 411, 644, 307, 579, -294, 830, 329, 602, 56, 34, 1898 70, 8, 9, 10, 11, 12, 714, 48, 1384, 34, 1899 338, 31, 1384, 777, 778, 779, 780, 48, 106, 569, 1900 -441, 258, 1299, 1300, 1301, 703, 703, 587, 667, 159, 1901 31, 1145, 113, 411, 1157, 48, 411, 909, 1160, 34, 1902 602, 48, 909, 48, 37, 590, -3, 76, 40, 645, 1903 1162, 935, 602, 658, 659, 41, 42, 639, 34, 266, 1904 660, 37, 323, 472, 662, 40, 1108, 663, 664, 57, 1905 57, 339, 41, 42, 626, 1193, 1288, 1289, 112, 1291, 1906 342, 43, 1245, 48, 411, 257, 1296, 96, 1298, 45, 1907 46, 48, 669, 693, 694, 48, 696, 698, 719, 48, 1908 345, 57, 112, 749, 112, 734, 45, 46, -240, 1463, 1909 745, 2, 206, 4, 5, 6, 7, 757, 809, 96, 1910 37, 430, 174, 175, 40, 434, 810, 813, 442, 824, 1911 148, 41, 42, -12, 1355, 57, 96, 869, 57, 112, 1912 228, -13, 271, 113, 112, 875, 868, 895, 897, 111, 1913 189, 898, -418, 96, 902, 323, 96, 376, 905, 219, 1914 725, 113, 729, 723, 56, 307, 70, 923, -524, 106, 1915 37, 712, 174, 175, 40, 1316, 35, 938, 36, 626, 1916 945, 41, 42, 113, 947, 951, 952, 434, 958, 959, 1917 488, 106, 960, 961, 112, -295, 962, 692, 963, 1107, 1918 979, 48, 8, 9, 10, 11, 12, 703, 1038, 106, 1919 521, 990, 48, 991, 48, 703, 703, 703, 992, 1007, 1920 76, 1425, 1008, 159, 1009, 348, 1073, 1010, 626, 626, 1921 1011, 31, 1538, 48, 96, 1012, 63, 271, 1013, 1024, 1922 -406, -405, 307, 908, 1408, 1096, 1075, 96, 69, 48, 1923 712, 1098, 1097, 1099, 112, 1105, 1115, 588, 748, 34, 1924 1116, 594, 1117, 48, 1119, 112, 48, 112, 106, 1122, 1925 973, 1124, 398, 189, 1125, 113, 1126, 1127, 399, 703, 1926 627, 1130, 1133, 400, 631, 401, 402, 339, 403, 1155, 1927 57, 1107, 1176, 404, 405, 1178, 96, 76, 1177, 48, 1928 1179, 106, 1194, 112, 1195, 112, 1180, 1197, 96, 112, 1929 1198, 1206, 867, 472, 210, 220, 212, 112, 1210, 1211, 1930 57, 1213, 407, -3, 1511, 1193, 408, 704, 1218, 1223, 1931 48, 48, 266, 1228, 493, 1226, 1232, 56, 96, 70, 1932 1237, 1239, 323, 323, 48, 37, 665, 1241, 626, 40, 1933 666, 162, 479, 1244, 1250, 1108, 41, 42, 692, 1256, 1934 1424, 920, 1252, 922, 1258, 194, 1260, 457, 217, 1261, 1935 688, 227, 1262, 113, 1263, 1264, 1266, 1273, 1290, 1282, 1936 1283, 1293, 814, 116, 602, 1294, 1311, 1295, 1318, 1107, 1937 45, 46, 1324, 1297, 1328, 113, 1305, 1332, 1333, 106, 1938 465, 1335, 113, 1340, 113, 1326, 113, 1342, 488, 441, 1939 323, 442, 488, 1348, 56, 96, 70, 1349, 1350, 149, 1940 1351, 106, 521, 1358, 521, 48, 150, 521, 106, 323, 1941 521, 151, 1359, 1362, 1369, 1510, 604, 48, 1370, 1301, 1942 113, 339, 113, 1378, 1379, 1386, 1380, 1108, 1387, 162, 1943 76, 1396, 1397, 113, 327, -407, 1400, 76, 1411, 1510, 1944 1510, 1415, 374, 1417, 1419, 1420, 472, 161, 1426, 307, 1945 176, 1434, 1435, 472, 173, 1421, 1436, 1439, 1193, 106, 1946 644, 1437, 66, 117, 1510, 1193, 112, 1444, 162, 1353, 1947 893, 373, 1449, 189, 1453, 323, 2, 206, 4, 5, 1948 6, 7, 348, 1455, 1451, 1457, 804, 1459, 76, 48, 1949 1461, 162, 1466, 1467, 66, 1468, 253, 1479, 48, 176, 1950 48, 1493, 176, 444, 472, 1489, 1491, 112, 528, 529, 1951 530, 160, 1496, 1497, 704, 1504, 1193, 845, 645, 1519, 1952 1520, 1524, 594, 1531, 1041, 1108, 1533, 1535, 854, 1541, 1953 48, 221, 531, 57, 532, 1548, 533, 1309, 1549, 890, 1954 1212, 35, 783, 36, 784, 1132, 785, 56, 176, 70, 1955 112, 96, 787, 1310, 56, 604, 70, 37, 786, 183, 1956 184, 40, 1499, 1414, 644, 1091, 1551, 259, 41, 42, 1957 1243, 1388, 112, 1372, 1217, 348, 112, 903, 1482, 904, 1958 1090, 688, 1225, 926, 1129, 215, 1094, 802, 1037, 874, 1959 989, 1104, 417, 940, 601, 111, 602, 717, 1319, 0, 1960 994, 242, 45, 46, 948, 56, 0, 70, 792, 328, 1961 374, 176, 793, 0, 1006, 437, 794, 259, 350, 488, 1962 0, 0, 645, 0, 0, 445, 112, 0, 0, 0, 1963 0, 0, 0, 0, 704, 0, 215, 0, 0, 0, 1964 348, 339, 0, 0, 704, 0, 0, 0, 406, 0, 1965 0, 0, 0, 0, 0, 0, 761, 0, 704, 0, 1966 0, 767, 0, 424, 112, 176, 429, 431, 816, 0, 1967 604, 160, 176, 0, 0, 0, 0, 0, 48, 215, 1968 0, 0, 0, 48, 348, 348, 348, 0, 374, 0, 1969 0, 0, 448, 520, 0, 0, 451, 0, 452, 0, 1970 48, 997, 348, 0, 0, 0, 804, 459, 0, 0, 1971 1486, 465, 1486, 66, 0, 0, 0, 0, 473, 0, 1972 924, 0, 1041, 0, 0, 0, 0, 0, 480, 0, 1973 0, 37, 0, 183, 184, 40, 431, 0, 0, 0, 1974 215, 176, 41, 42, 0, 0, 1486, 0, 1486, 0, 1975 0, 0, 0, 0, 0, 913, 0, 0, 176, 0, 1976 348, 0, 176, 0, 0, 0, 74, 0, 907, 0, 1977 411, 8, 9, 10, 11, 12, 45, 46, 215, 112, 1978 0, 0, 880, 215, 882, 0, 816, 604, 0, 908, 1979 0, 0, 0, 0, 804, 0, 0, 0, 74, 0, 1980 31, 339, 48, 259, 0, 0, 0, 595, 0, 0, 1981 0, 0, 987, 623, 0, 0, 0, 688, 1170, 1171, 1982 0, 0, 0, 0, 0, 176, 628, 0, 34, 0, 1983 628, 0, 0, 259, 929, 222, 0, 1286, 0, 488, 1984 1109, 323, 681, 112, 0, 112, 112, 0, 0, 0, 1985 0, 0, 348, 0, 8, 9, 10, 11, 12, 0, 1986 348, 0, 704, 704, 0, 0, 0, 0, 707, 215, 1987 571, 0, 411, 0, 0, 0, 1220, 1221, 45, 46, 1988 473, 816, 0, 31, 0, 0, 0, 0, 0, 1031, 1989 0, 0, 0, 604, 0, 350, 0, 845, 0, 0, 1990 473, 0, 0, 0, 0, 520, 0, 0, 473, 0, 1991 520, 34, 0, 520, 0, 0, 0, 0, 0, 0, 1992 704, 704, 353, 0, 0, 57, 699, 0, 0, 431, 1993 0, 0, 924, 0, 8, 9, 10, 11, 12, 0, 1994 0, 0, 0, 0, 713, 0, 66, 0, 0, 0, 1995 215, 0, 0, 750, 431, 411, 0, 0, 431, 0, 1996 0, 45, 46, 31, 0, 0, 0, 0, 0, 0, 1997 0, 0, 48, 48, 1085, 0, 913, 924, 688, 0, 1998 0, 112, 112, 176, 0, 0, 0, 259, 350, 0, 1999 0, 34, 215, 57, 0, 0, 449, 0, 0, 0, 2000 0, 0, 0, 0, 0, 0, 604, 0, 0, 0, 2001 0, 0, 1142, 0, 0, 176, 0, 74, 0, 112, 2002 804, 0, 74, 0, 0, 0, 0, 77, 0, 0, 2003 0, 176, 0, 934, 795, 602, 0, 0, 0, 0, 2004 0, 45, 46, 0, 37, 176, 183, 184, 40, 0, 2005 0, 0, 628, 807, 0, 41, 42, 0, 1341, 77, 2006 0, 0, 0, 1031, 0, 826, 1343, 1344, 1345, 892, 2007 1317, 348, 348, 0, 0, 0, 48, 112, 899, 0, 2008 0, 185, 901, 595, 0, 0, 112, 1123, 595, 45, 2009 46, 57, 0, 0, 628, 0, 223, 350, 350, 350, 2010 48, 48, 704, 0, 0, 0, 0, 339, 0, 1135, 2011 704, 704, 704, 1135, 215, 350, 37, 222, 183, 184, 2012 40, 0, 0, 0, 0, 48, 176, 41, 42, 1109, 2013 1389, 0, 0, 699, 0, 0, 8, 9, 10, 11, 2014 12, 0, 215, 924, 473, 0, 0, 215, 0, 0, 2015 0, 0, 0, 907, 913, 411, 0, 0, 0, 913, 2016 0, 45, 46, 1135, 0, 31, 0, 0, 0, 0, 2017 473, 0, 0, 350, 704, 0, 0, 214, 0, 0, 2018 0, 0, 939, 355, 74, 431, 0, 0, 0, 0, 2019 0, 0, 0, 34, 0, 0, 0, 0, 37, 353, 2020 183, 184, 40, 0, 74, 924, 924, 259, 713, 41, 2021 42, 0, 74, 969, 0, 0, 0, 0, 215, 0, 2022 0, 1109, 0, 0, 0, 0, 0, 0, 214, 0, 2023 353, 0, 215, 0, 0, 601, 0, 602, 0, 0, 2024 0, 57, 57, 45, 46, 0, 0, 0, 353, 0, 2025 74, 0, 0, 699, 0, 0, 0, 0, 0, 0, 2026 0, 0, 0, 699, 57, 350, 0, 628, 0, 0, 2027 1004, 214, 628, 807, 0, 0, 0, 699, 77, 0, 2028 0, 0, 57, 77, 0, 0, 0, 1015, 0, 0, 2029 0, 176, 353, 0, 0, 0, 0, 0, 0, 1081, 2030 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2031 17, 18, 19, 20, 21, 22, 23, 24, 25, 1109, 2032 0, 26, 27, 28, 0, 0, 215, 348, 348, 0, 2033 31, 79, 214, 0, 0, 0, 57, 0, 66, 0, 2034 0, 57, 0, 0, 37, 0, 183, 184, 40, 0, 2035 1485, 0, 1485, 0, 0, 41, 42, 353, 34, 0, 2036 628, 0, 0, 79, 0, 207, 39, 259, 713, 0, 2037 214, 1087, 0, 0, 57, 214, 0, 0, 223, 0, 2038 1135, 265, 1135, 1135, 0, 0, 1485, 0, 1485, 45, 2039 46, 0, 0, 0, 0, 0, 0, 1101, 0, 0, 2040 224, 353, 353, 353, 0, 431, 117, 0, 45, 46, 2041 924, 0, 0, 0, 0, 323, 0, 0, 0, 353, 2042 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 2043 0, 0, 0, 0, 0, 0, 0, 353, 0, 0, 2044 0, 0, 0, 0, 0, 77, 0, 348, 74, 0, 2045 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 2046 355, 214, 0, 595, 0, 77, 0, 0, 0, 0, 2047 0, 0, 57, 77, 74, 0, 429, 353, 0, 0, 2048 0, 699, 699, 0, 350, 350, 0, 356, 0, 0, 2049 0, 355, 0, 0, 57, 0, 924, 924, 0, 0, 2050 0, 57, 0, 0, 1192, 0, 0, 0, 0, 355, 2051 0, 77, 353, 0, 0, 0, 0, 0, 1135, 1135, 2052 0, 0, 0, 215, 0, 0, 8, 9, 10, 11, 2053 12, 0, 8, 9, 10, 11, 12, 0, 0, 699, 2054 699, 0, 214, 0, 0, 0, 0, 0, 0, 0, 2055 0, 0, 57, 355, 0, 31, 1464, 353, 0, 0, 2056 0, 31, 0, 0, 0, 0, 0, 353, 0, 353, 2057 0, 0, 0, 0, 222, 0, 479, 353, 0, 0, 2058 0, 353, 79, 34, 214, 0, 628, 79, 37, 34, 2059 183, 184, 40, 0, 37, 0, 183, 184, 40, 41, 2060 42, 0, 0, 0, 176, 41, 42, 0, 0, 0, 2061 0, 0, 713, 0, 1513, 0, 0, 0, 355, 0, 2062 0, 0, 0, 1521, 0, 907, 0, 411, 0, 0, 2063 0, 185, 0, 45, 46, 0, 0, 0, 0, 45, 2064 46, 0, 74, 0, 0, 0, 0, 37, 0, 183, 2065 184, 40, 0, 0, 0, 1287, 0, 0, 41, 42, 2066 0, 0, 355, 355, 355, 0, 0, 0, 0, 0, 2067 0, 0, 353, 259, 0, 0, 0, 66, 0, 0, 2068 355, 0, 224, 0, 1509, 0, 411, 0, 0, 699, 2069 0, 713, 45, 46, 0, 117, 213, 0, 355, 0, 2070 1371, 0, 0, 0, 0, 232, 214, 0, 0, 77, 2071 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 2072 0, 699, 0, 0, 0, 0, 0, 0, 0, 699, 2073 699, 699, 0, 0, 214, 77, 0, 0, 355, 214, 2074 350, 350, 0, 0, 0, 0, 0, 213, 86, 79, 2075 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 2076 0, 0, 0, 0, 356, 0, 0, 0, 0, 79, 2077 0, 0, 0, 355, 176, 0, 0, 79, 0, 0, 2078 86, 0, 0, 0, 0, 353, 353, 117, 353, 353, 2079 213, 0, 0, 699, 0, 356, 0, 0, 0, 0, 2080 0, 0, 0, 0, 0, 0, 215, 0, 74, 0, 2081 214, 0, 0, 356, 0, 79, 0, 225, 355, 0, 2082 0, 0, 0, 0, 214, 0, 0, 0, 355, 0, 2083 355, 0, 0, 0, 0, 223, 0, 0, 355, 0, 2084 0, 0, 355, 353, 353, 0, 0, 0, 0, 0, 2085 0, 213, 1483, 0, 1487, 0, 0, 356, 0, 0, 2086 350, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2087 167, 0, 172, 0, 0, 178, 179, 180, 0, 182, 2088 0, 0, 0, 0, 0, 117, 0, 0, 1515, 213, 2089 1517, 31, 0, 233, 213, 0, 0, 0, 0, 0, 2090 0, 0, 0, 77, 363, 248, 249, 1192, 0, 499, 2091 0, 0, 0, 0, 1192, 0, 353, 0, 214, 34, 2092 0, 0, 356, 0, 37, 0, 183, 184, 40, 0, 2093 0, 0, 1546, 355, 1547, 41, 42, 0, 0, 0, 2094 0, 0, 0, 0, 0, 0, 0, 1554, 1555, 0, 2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 2096 0, 1509, 0, 411, 0, 1192, 356, 356, 356, 45, 2097 46, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 2098 213, 74, 0, 0, 356, 0, 0, 0, 0, 0, 2099 0, 0, 0, 353, 0, 353, 0, 0, 0, 86, 2100 0, 0, 356, 0, 86, 0, 0, 0, 0, 0, 2101 0, 0, 0, 79, 0, 0, 0, 0, 0, 8, 2102 9, 10, 11, 12, 0, 353, 0, 0, 0, 0, 2103 0, 0, 0, 353, 353, 353, 0, 0, 0, 79, 2104 0, 0, 356, 0, 353, 353, 355, 355, 31, 355, 2105 355, 0, 0, 0, 0, 0, 0, 0, 74, 0, 2106 0, 213, 0, 0, 0, 0, 0, 0, 0, 77, 2107 0, 0, 0, 0, 0, 0, 34, 356, 213, 0, 2108 0, 37, 0, 183, 184, 40, 0, 0, 0, 0, 2109 0, 0, 41, 42, 0, 0, 0, 353, 0, 225, 2110 0, 0, 0, 213, 355, 355, 124, 127, 128, 0, 2111 0, 0, 0, 0, 0, 214, 0, 0, 265, 0, 2112 0, 0, 356, 0, 0, 0, 45, 46, 0, 0, 2113 0, 0, 356, 0, 356, 0, 0, 0, 0, 224, 2114 0, 0, 356, 0, 0, 0, 356, 0, 535, 536, 2115 537, 538, 539, 540, 541, 542, 543, 544, 545, 0, 2116 0, 592, 0, 600, 353, 0, 86, 0, 0, 0, 2117 0, 0, 0, 0, 624, 625, 0, 355, 254, 0, 2118 255, 363, 546, 0, 0, 0, 86, 0, 0, 0, 2119 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 2121 0, 74, 363, 0, 0, 0, 0, 0, 74, 0, 2122 223, 0, 0, 0, 0, 213, 0, 0, 0, 0, 2123 363, 0, 86, 0, 0, 0, 0, 356, 0, 0, 2124 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 2125 0, 0, 0, 213, 355, 0, 355, 0, 213, 0, 2126 0, 396, 0, 0, 0, 0, 0, 0, 0, 74, 2127 0, 415, 416, 0, 363, 0, 420, 0, 422, 423, 2052 2128 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2053 0, 77, 0, 0, 0, 0, 0, 0, 0, 77, 2054 0, 0, 353, 0, 0, 0, 595, 8, 9, 10, 2055 11, 12, 0, 0, 0, 0, 0, 355, 0, 429, 2056 0, 356, 0, 0, 699, 699, 0, 350, 350, 126, 2057 0, 0, 213, 0, 0, 355, 31, 77, 0, 0, 2058 0, 0, 0, 1108, 0, 0, 353, 1189, 0, 0, 2059 0, 0, 0, 0, 0, 0, 353, 0, 353, 0, 2060 0, 0, 0, 222, 34, 0, 353, 0, 0, 37, 2061 353, 183, 184, 40, 1482, 0, 1482, 0, 0, 355, 2062 41, 42, 699, 699, 0, 0, 0, 0, 0, 0, 2063 0, 1283, 0, 0, 0, 0, 0, 0, 0, 1480, 2064 0, 1484, 0, 0, 0, 0, 601, 215, 602, 0, 2065 1482, 0, 1482, 0, 45, 46, 79, 0, 0, 0, 2066 0, 79, 0, 0, 0, 0, 0, 213, 0, 628, 2067 0, 74, 0, 0, 0, 1512, 0, 1514, 0, 323, 2068 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 2069 0, 0, 0, 713, 0, 0, 0, 0, 0, 86, 2070 0, 353, 0, 0, 0, 0, 0, 413, 0, 0, 2071 0, 0, 0, 0, 421, 0, 0, 0, 0, 1543, 2072 0, 1544, 0, 0, 0, 0, 0, 0, 355, 355, 2073 355, 86, 0, 0, 1551, 1552, 1284, 0, 0, 0, 2074 0, 0, 215, 0, 0, 0, 355, 0, 0, 0, 2075 0, 0, 796, 797, 259, 0, 224, 0, 66, 0, 2076 0, 0, 0, 0, 355, 0, 0, 0, 225, 0, 2077 699, 0, 713, 0, 0, 77, 117, 0, 0, 0, 2078 0, 830, 0, 0, 833, 834, 413, 837, 0, 839, 2079 840, 0, 0, 0, 841, 842, 0, 0, 0, 0, 2080 0, 77, 699, 0, 355, 0, 0, 0, 0, 0, 2081 699, 699, 699, 0, 353, 353, 0, 353, 353, 0, 2082 0, 350, 350, 79, 0, 0, 0, 0, 8, 9, 2083 10, 11, 12, 0, 0, 1189, 0, 74, 356, 355, 2084 0, 577, 0, 79, 0, 0, 0, 0, 0, 581, 2085 0, 79, 584, 0, 0, 363, 0, 31, 0, 0, 2086 0, 0, 0, 0, 0, 0, 0, 0, 117, 356, 2087 0, 0, 353, 353, 699, 0, 126, 126, 0, 0, 2088 0, 0, 0, 355, 0, 34, 0, 356, 0, 79, 2089 37, 0, 0, 355, 40, 355, 0, 0, 0, 0, 2090 223, 41, 42, 355, 0, 126, 0, 355, 126, 126, 2091 0, 126, 0, 126, 126, 0, 413, 0, 126, 126, 2092 421, 0, 0, 0, 0, 0, 0, 43, 0, 0, 2093 0, 356, 970, 971, 0, 45, 46, 0, 0, 0, 2094 0, 350, 0, 353, 0, 0, 0, 0, 0, 0, 2095 86, 0, 0, 0, 0, 86, 0, 0, 0, 0, 2096 0, 0, 0, 0, 0, 0, 117, 0, 77, 0, 2129 0, 0, 0, 0, 355, 355, 355, 0, 0, 0, 2130 0, 0, 0, 214, 0, 355, 355, 0, 0, 0, 2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2134 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 2135 356, 356, 0, 356, 356, 0, 0, 0, 355, 0, 2136 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 79, 1014, 0, 0, 8, 9, 10, 2138 11, 12, 0, 363, 363, 363, 0, 0, 0, 0, 2139 0, 0, 0, 0, 0, 0, 0, 0, 214, 0, 2140 0, 363, 0, 0, 282, 283, 31, 284, 356, 356, 2141 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2142 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2143 86, 0, 0, 285, 34, 0, 0, 213, 0, 286, 2144 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2145 41, 42, 0, 292, 293, 0, 86, 0, 0, 363, 2146 0, 0, 0, 8, 9, 10, 11, 12, 0, 0, 2147 0, 0, 77, 0, 0, 0, 294, 0, 379, 77, 2148 0, 356, 0, 0, 344, 46, 296, 297, 298, 299, 2149 0, 0, 31, 0, 363, 0, 0, 0, 0, 0, 2097 2150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 0, 222, 0, 1189, 0, 2099 0, 0, 0, 0, 0, 1189, 356, 413, 355, 0, 2100 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 2151 0, 0, 0, 0, 0, 0, 0, 927, 0, 928, 2152 34, 0, 0, 0, 224, 37, 931, 932, 0, 40, 2153 77, 937, 0, 0, 0, 0, 41, 42, 0, 363, 2154 0, 0, 0, 942, 0, 0, 79, 0, 946, 363, 2155 0, 363, 0, 0, 0, 0, 225, 0, 356, 363, 2156 356, 0, 719, 363, 0, 0, 0, 0, 0, 0, 2157 45, 46, 0, 0, 0, 0, 980, 0, 0, 0, 2101 2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2102 353, 0, 353, 0, 0, 0, 0, 0, 0, 0, 2103 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 2104 356, 356, 356, 0, 0, 0, 1189, 0, 0, 0, 2105 225, 0, 353, 1531, 0, 0, 126, 126, 356, 0, 2106 353, 353, 353, 31, 0, 0, 0, 0, 0, 0, 2107 0, 353, 353, 0, 0, 0, 356, 0, 0, 0, 2108 0, 0, 0, 0, 0, 74, 0, 79, 0, 577, 2109 577, 34, 0, 0, 1091, 0, 37, 0, 183, 184, 2159 356, 0, 0, 0, 0, 0, 0, 0, 356, 356, 2160 356, 0, 0, 0, 0, 0, 0, 0, 0, 356, 2161 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 79, 86, 0, 0, 0, 0, 0, 2163 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2164 0, 0, 1166, 0, 0, 8, 9, 10, 11, 12, 2165 0, 0, 0, 0, 363, 797, 798, 0, 0, 0, 2166 0, 0, 356, 0, 0, 0, 0, 0, 165, 0, 2167 0, 0, 282, 283, 31, 284, 1025, 1026, 1027, 1028, 2168 0, 1030, 0, 0, 831, 218, 0, 834, 835, 0, 2169 838, 0, 840, 841, 0, 0, 1074, 842, 843, 0, 2170 0, 285, 34, 0, 0, 0, 0, 286, 0, 0, 2171 1080, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2172 0, 292, 293, 0, 0, 0, 0, 0, 0, 356, 2173 0, 0, 165, 0, 0, 0, 272, 0, 0, 0, 2174 0, 0, 0, 0, 294, 0, 379, 0, 0, 0, 2175 1100, 0, 1167, 46, 296, 297, 298, 299, 0, 0, 2176 0, 0, 0, 0, 0, 165, 0, 363, 363, 0, 2177 363, 363, 0, 0, 0, 369, 79, 0, 0, 375, 2178 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 2179 86, 0, 0, 0, 0, 1131, 0, 0, 0, 0, 2180 0, 1140, 0, 0, 0, 0, 1144, 0, 0, 0, 2181 0, 1148, 0, 1149, 0, 0, 0, 1151, 0, 1152, 2182 1153, 0, 213, 1156, 0, 363, 363, 0, 165, 0, 2183 0, 0, 1168, 0, 79, 971, 972, 0, 0, 0, 2184 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2185 1183, 1184, 0, 0, 0, 0, 0, 0, 165, 8, 2186 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2187 19, 20, 21, 22, 23, 24, 25, 1214, 0, 0, 2188 1216, 0, 0, 375, 0, 0, 0, 0, 31, 0, 2189 165, 0, 0, 0, 0, 0, 0, 0, 363, 0, 2190 0, 0, 126, 126, 126, 0, 0, 0, 0, 0, 2191 0, 0, 0, 524, 0, 0, 34, 213, 0, 0, 2192 0, 0, 0, 1230, 0, 0, 165, 0, 0, 1234, 2193 1235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 0, 225, 0, 0, 0, 0, 0, 0, 0, 1251, 2195 0, 0, 0, 1253, 0, 0, 0, 0, 1257, 0, 2196 0, 0, 0, 86, 598, 0, 0, 0, 0, 622, 2197 0, 1265, 0, 0, 126, 363, 126, 363, 0, 0, 2198 0, 0, 0, 0, 1272, 0, 1274, 1275, 1276, 1277, 2199 0, 0, 0, 0, 0, 0, 0, 0, 1092, 0, 2200 0, 275, 1284, 0, 1285, 0, 0, 363, 172, 0, 2201 0, 0, 0, 0, 0, 363, 363, 363, 0, 0, 2202 0, 0, 0, 0, 0, 0, 363, 363, 0, 0, 2203 211, 0, 0, 0, 0, 0, 0, 1313, 1314, 231, 2204 86, 235, 0, 237, 0, 165, 165, 0, 0, 0, 2205 246, 0, 369, 0, 0, 0, 0, 126, 0, 0, 2206 0, 0, 0, 0, 0, 126, 0, 126, 126, 0, 2207 0, 0, 126, 524, 126, 126, 0, 0, 0, 363, 2208 0, 211, 0, 235, 237, 246, 0, 1346, 1347, 0, 2209 0, 0, 0, 0, 0, 0, 0, 1357, 0, 0, 2210 0, 716, 0, 0, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 2212 0, 0, 0, 0, 211, 524, 0, 524, 0, 0, 2213 524, 0, 165, 524, 0, 0, 0, 0, 0, 0, 2214 0, 0, 0, 0, 126, 369, 363, 0, 0, 0, 2215 0, 0, 0, 0, 0, 0, 0, 0, 1392, 1222, 2216 1393, 1394, 1395, 0, 0, 0, 0, 0, 0, 0, 2217 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 2218 0, 1410, 0, 0, 0, 211, 0, 235, 237, 246, 2219 0, 0, 0, 86, 0, 0, 0, 0, 165, 0, 2220 86, 0, 0, 0, 0, 0, 1431, 0, 0, 0, 2221 369, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2222 0, 0, 0, 211, 0, 0, 0, 0, 211, 0, 2223 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 2224 598, 0, 0, 497, 0, 598, 0, 0, 0, 1469, 2225 1470, 86, 0, 0, 369, 369, 369, 0, 0, 0, 2226 0, 0, 1475, 0, 0, 0, 0, 0, 0, 1475, 2227 0, 0, 369, 0, 0, 0, 0, 0, 0, 0, 2228 0, 251, 0, 0, 0, 0, 0, 0, 0, 0, 2229 1308, 256, 211, 0, 0, 0, 0, 0, 0, 0, 2230 0, 1508, 0, 0, 524, 1514, 0, 0, 0, 0, 2231 0, 0, 0, 0, 211, 0, 0, 0, 0, 235, 2232 237, 0, 0, 0, 0, 0, 0, 246, 0, 0, 2233 369, 0, 936, 1536, 0, 1537, 0, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 0, 386, 0, 1552, 1553, 716, 0, 0, 0, 0, 2237 211, 1556, 1557, 0, 0, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 418, 0, 0, 0, 211, 282, 2239 283, 0, 284, 211, 0, 211, 0, 0, 433, 0, 2240 0, 0, 0, 0, 0, 0, 0, 438, 0, 0, 2241 0, 0, 211, 0, 0, 211, 211, 446, 285, 0, 2242 0, 0, 369, 211, 286, 0, 622, 0, 287, 0, 2243 369, 288, 289, 290, 291, 41, 42, 211, 292, 293, 2244 0, 0, 464, 0, 211, 0, 0, 474, 0, 0, 2245 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, 2246 482, 294, 0, 379, 0, 0, 492, 0, 496, 45, 2247 46, 296, 297, 298, 299, 0, 0, 0, 0, 0, 2248 126, 0, 788, 126, 126, 526, 126, 0, 126, 126, 2249 0, 0, 0, 126, 126, 8, 9, 10, 11, 12, 2250 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2251 23, 24, 25, -296, 0, 0, 0, 0, 0, 0, 2252 0, 0, 0, 0, 31, 716, 0, 0, 586, 0, 2253 0, 0, 0, 591, 0, 0, 0, 0, 0, 0, 2254 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2255 0, 0, 34, 0, 0, 0, 0, 0, 0, 211, 2256 0, 0, 636, -296, 165, 0, 637, 638, 0, 640, 2257 0, 0, 0, 0, 0, 0, 651, 652, 0, 653, 2258 654, 0, 655, 0, 656, 0, 0, 211, 0, 0, 2259 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 2260 0, 586, 0, 0, 282, 283, 0, 284, 0, 671, 2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2262 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2263 0, 126, 126, 285, 682, 0, 0, 0, 0, 286, 2264 0, 369, 369, 287, 0, 0, 288, 289, 290, 291, 2265 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2266 708, 0, 0, 211, 0, 0, 711, 0, 0, 0, 2267 0, 464, 0, 0, 0, 0, 294, 211, 379, 0, 2268 0, 380, 0, 0, 45, 46, 296, 297, 298, 299, 2269 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, 2270 0, 524, 0, 0, 0, 0, 0, 746, 0, 0, 2271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2272 0, 0, 764, 0, -519, 0, 0, 1, 2, 3, 2273 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2274 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2275 24, 25, 0, 0, 26, 27, 28, 29, 0, 211, 2276 30, 791, 0, 31, 32, 0, 0, 0, 0, 716, 2277 801, 211, 0, 0, 0, 0, 0, 803, 0, 0, 2278 0, 0, 0, 811, 0, 0, 0, 0, 33, 126, 2279 211, 34, 825, 35, 126, 36, 37, 0, 38, 39, 2110 2280 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2111 0, 355, 355, 79, 355, 355, 356, 86, 0, 0, 2112 0, 0, 0, 0, 353, 0, 0, 0, 0, 0, 2113 0, 0, 363, 906, 77, 411, 0, 86, 0, 0, 2114 0, 45, 46, 0, 0, 86, 0, 0, 0, 0, 2115 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 0, 363, 0, 0, 0, 0, 0, 355, 2117 355, 0, 0, 0, 0, 0, 884, 0, 0, 0, 2118 887, 363, 0, 86, 0, 0, 0, 0, 0, 0, 2119 0, 353, 0, 0, 0, 356, 0, 0, 0, 0, 2120 0, 0, 0, 0, 0, 356, 0, 356, 0, 0, 2121 0, 0, 224, 126, 0, 356, 0, 0, 126, 356, 2122 0, 0, 0, 0, 0, 363, 167, 0, 172, 0, 2123 0, 178, 179, 180, 0, 182, 0, 0, 74, 0, 2124 355, 0, 0, 0, 0, 74, 0, 0, 0, 233, 2125 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 2126 0, 248, 249, 0, 8, 9, 10, 11, 12, 0, 2281 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 2282 0, 0, 0, 0, 0, 341, 364, 0, 0, 0, 2283 0, 0, 865, 43, 0, 44, 0, 0, 0, 0, 2284 0, 45, 46, 0, 0, 0, 0, 0, 716, 0, 2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 414, 2286 0, 0, 0, 0, 0, 0, 414, 0, 811, 0, 2287 0, 0, 0, 0, 0, 0, 906, 0, 0, 8, 2288 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2289 19, 20, 21, 22, 23, 24, 25, 369, 369, 26, 2290 27, 28, 0, 211, 0, 0, 218, 251, 31, 0, 2291 0, 0, 0, 0, 0, 0, 0, 943, 944, 0, 2127 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128 79, 0, 0, 223, 0, 0, 0, 0, 0, 0, 2129 363, 0, 0, 31, 0, 0, 74, 0, 0, 0, 2130 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 2131 356, 0, 577, 0, 0, 0, 0, 355, 0, 355, 2132 0, 34, 0, 0, 0, 0, 37, 0, 183, 184, 2133 40, 0, 0, 0, 363, 363, 363, 41, 42, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 355, 2135 0, 0, 363, 0, 0, 0, 0, 355, 355, 355, 2136 0, 0, 0, 1506, 0, 411, 0, 0, 355, 355, 2137 363, 45, 46, 0, 0, 507, 0, 509, 512, 126, 2138 0, 86, 77, 0, 1305, 515, 516, 0, 0, 0, 2293 0, 0, 0, 211, 0, 0, 34, 0, 414, 0, 2294 0, 37, 0, 38, 39, 40, 0, 0, 0, 0, 2295 981, 0, 41, 42, 0, 126, 985, 0, 0, 0, 2296 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 2297 0, 0, 0, 0, 0, 0, 0, 0, 43, 211, 2298 157, 0, 0, 0, 0, 0, 45, 46, 0, 0, 2299 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2300 0, 414, 582, 0, 414, 585, 0, 0, 0, 0, 2301 0, 0, 0, 0, 0, 364, 0, 369, 0, 614, 2302 1019, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 2303 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, 2304 1022, 341, 1023, 0, 0, 0, 0, 0, 0, 0, 2305 0, 211, 0, 0, 0, 0, 1035, 0, 0, 0, 2306 0, 0, 1039, 0, 0, 211, 0, 0, 414, 0, 2307 0, 0, 414, 524, 1077, 524, 0, 1078, 0, 0, 2308 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 2139 2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140 509, 509, 0, 0, 0, 0, 0, 86, 0, 0, 2141 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142 0, 355, 0, 356, 356, 0, 356, 356, 0, 0, 2143 413, 0, 0, 0, 0, 0, 0, 0, 509, 0, 2144 0, 0, 0, 0, 0, 363, 79, 8, 9, 10, 2310 0, 0, 0, 364, 0, 0, 0, 0, 0, 524, 2311 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 2312 0, 0, 507, 0, 509, 512, 0, 0, 0, 0, 2313 0, 0, 515, 516, 0, 0, 0, 0, 165, 0, 2314 0, 0, 0, 0, 0, 0, 0, 509, 509, 414, 2315 0, 0, 364, 0, 591, 0, 211, 0, 0, 0, 2316 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2317 17, 18, 19, 20, 21, 22, 23, 24, 25, -296, 2318 0, 26, 27, 28, 0, 509, 0, 0, 0, 1150, 2319 31, 414, 0, 0, 0, 341, 364, 0, 0, 0, 2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2322 0, 509, 0, 37, 0, 336, 337, 40, 0, -296, 2323 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2324 0, 414, 414, 0, 0, 0, 0, 526, 0, 0, 2325 0, 211, 0, 1215, 0, 0, 321, 0, 0, 0, 2326 805, 364, 338, 0, 0, 0, 346, 0, 45, 46, 2327 0, 614, 0, 614, 614, 0, 0, 0, 382, 382, 2328 614, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 2329 844, 364, 1229, 0, 0, 0, 364, 0, 0, 0, 2330 1233, 0, 0, 0, 0, 364, 364, 364, 0, 0, 2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2332 0, 0, 0, 364, 0, 0, 0, 0, 414, 886, 2333 0, 0, 414, 889, 0, 1259, 0, 0, 0, 891, 2334 0, 0, 0, 0, 0, 0, 0, 1267, 0, 321, 2335 1268, 0, 1269, 0, 0, 0, 0, 0, 414, 0, 2336 0, 0, 0, 0, 0, 0, 1278, 1279, 0, 0, 2337 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 2338 0, 364, 614, 0, 0, 0, 0, 0, 1292, 0, 2339 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2340 509, 509, 509, 509, 509, 509, 509, 509, 0, 0, 2341 0, 0, 0, 0, 0, 341, 364, 0, 0, 0, 2342 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 2343 0, 0, 0, 0, 0, 1331, 0, 0, 0, 0, 2344 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2345 18, 19, 20, 21, 22, 23, 24, 25, -296, 0, 2346 26, 27, 28, 0, 0, 414, 0, 0, 0, 31, 2347 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 2348 805, 364, 0, 0, 614, 0, 614, 0, 0, 0, 2349 382, 0, 0, 0, 0, 0, 614, 34, 211, 0, 2350 0, 0, 37, 0, 336, 337, 40, 0, -296, 0, 2351 1381, 0, 1382, 41, 42, 0, 0, 0, 0, 0, 2352 0, 0, 0, 0, 0, 0, 1390, 0, 1391, 0, 2353 0, 0, 0, 0, 0, 0, 509, 0, 0, 635, 2354 0, 338, 0, 1398, 0, 0, 0, 45, 46, 0, 2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 1416, 2356 1418, 0, 0, 0, 0, 0, 0, 0, 805, 0, 2357 1423, 0, 0, 1233, 0, 341, 364, 414, 0, 414, 2358 0, 0, 0, 414, 710, 0, 0, 0, 0, 0, 2359 0, 0, 0, 0, 1445, 0, 0, 509, 0, 0, 2360 0, 0, 0, 1452, 614, 614, 1454, 0, 1456, 1458, 2361 1460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2362 0, 0, 0, 742, 0, 0, 0, 0, 509, 0, 2363 0, 0, 0, 0, 0, 0, 759, 0, 0, 414, 2364 0, 742, 0, 0, 742, 0, 0, 0, 1490, 0, 2365 1492, 0, 1233, 0, 0, 0, 0, 769, 0, 0, 2366 414, 1147, 0, 0, 0, 0, 0, 1503, 0, 0, 2367 0, 364, 0, 0, 0, 0, 0, 414, 1159, 790, 2368 614, 614, 1164, 0, 0, 0, 0, 0, 0, 799, 2369 0, 0, 364, 364, 0, 0, 346, 0, 0, 0, 2370 0, 759, 0, 0, 1, 2, 3, 4, 5, 6, 2371 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2372 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2373 0, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2374 31, 32, 0, 0, 0, 0, 0, 0, 509, 0, 2375 864, 0, 0, 0, 0, 414, 0, 414, 382, 0, 2376 0, 0, 414, 0, 0, 33, 0, 0, 34, 0, 2377 35, 614, 36, 37, 0, 38, 39, 40, 0, 0, 2378 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2379 0, 0, 0, 509, 805, 414, 1247, 0, 0, 0, 2380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2381 43, 0, 44, 0, 0, 0, -523, 0, 45, 46, 2382 364, 0, 0, 0, 0, 0, 0, 0, 509, 0, 2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 0, 509, 0, 0, 0, 0, 0, 0, 282, 283, 2385 0, 284, 0, 0, 0, 0, 759, 0, 965, 0, 2386 0, 0, 0, 0, 0, 0, 0, 0, 976, 0, 2387 0, 0, 0, 0, 984, 0, 0, 285, 0, 0, 2388 0, 341, 509, 641, 0, 139, 140, 287, 0, 0, 2389 288, 289, 290, 291, 41, 42, 0, 292, 293, 364, 2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 0, 1002, 1003, 0, 2392 294, 346, 642, 0, 643, 380, 0, 0, 45, 46, 2393 296, 297, 298, 299, 0, 346, 0, 0, 0, 0, 2394 0, 0, 0, 0, 0, 0, 0, 0, 364, 364, 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 509, 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 1033, 0, 0, 0, 382, 2398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2399 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2145 2400 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2146 21, 22, 23, 24, 25, -293, 0, 26, 27, 28, 2147 0, 0, 0, 0, 509, 0, 31, 0, 0, 0, 2148 0, 356, 356, 0, 0, 0, 0, 0, 355, 363, 2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2150 0, 363, 0, 0, 34, 0, 225, 1143, 126, 363, 2151 0, 38, 39, 363, 0, -293, 0, 592, 0, 600, 2152 0, 0, 0, 0, 1155, 0, 0, 0, 0, 0, 2153 624, 625, 0, 0, 0, 77, 0, 0, 0, 0, 2154 282, 283, 77, 284, 0, 0, 635, 0, 338, 0, 2155 0, 0, 356, 0, 45, 46, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 2157 0, 0, 0, 0, 86, 286, 0, 0, 0, 287, 2158 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2159 293, 0, 0, 77, 0, 224, 0, 0, 0, 0, 2160 0, 0, 413, 0, 363, 0, 0, 0, 0, 0, 2161 0, 0, 294, 0, 379, 0, 0, 79, 0, 0, 2162 45, 46, 296, 297, 298, 299, 0, 0, 0, 356, 2163 0, 356, 1013, 787, 0, 8, 9, 10, 11, 12, 2164 0, 0, 1243, 509, 509, 509, 509, 509, 509, 509, 2165 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2166 509, 356, 282, 283, 31, 284, 0, 0, 0, 356, 2167 356, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2168 356, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 285, 34, 0, 79, 0, 0, 286, 0, 0, 2170 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2171 0, 292, 293, 0, 0, 0, 0, 363, 363, 0, 2172 363, 363, 0, 0, 0, 0, 0, 0, 0, 0, 2173 0, 0, 0, 356, 294, 0, 379, 0, 0, 0, 2174 86, 0, 344, 46, 296, 297, 298, 299, 0, 0, 2401 21, 22, 23, 24, 25, 0, 346, 26, 27, 28, 2402 29, 509, 509, 30, 0, 0, 31, 32, 0, 0, 2403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405 0, 33, 0, 0, 34, 321, 35, 0, 36, 37, 2406 0, 38, 39, 40, 0, 0, 0, 0, 364, 0, 2407 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 0, 382, 0, 0, 0, 282, 283, 976, 2409 284, 0, 0, 742, 0, 0, 43, 0, 44, 0, 2410 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2411 0, 0, 0, 0, 1154, 0, 285, 0, 0, 0, 2412 0, 0, 286, 0, 0, 1169, 287, 0, 0, 288, 2413 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2414 0, 0, 0, 0, 0, 0, 0, 382, 0, 1187, 2415 0, 0, 0, 282, 283, 414, 284, 0, 0, 294, 2416 0, 379, 0, 0, 976, 976, 758, 45, 46, 296, 2417 297, 298, 299, 0, 0, 0, 0, 0, 0, 414, 2418 414, 0, 285, 0, 0, 1219, 0, 0, 286, 0, 2419 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2420 42, 0, 292, 293, 414, 0, 0, 0, 0, 0, 2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 294, 509, 379, 0, 0, 2423 973, 0, 0, 45, 46, 296, 297, 298, 299, 0, 2424 976, 0, 509, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2426 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 0, 1270, 1271, 0, 0, 0, 2428 0, 1, 2, 206, 4, 5, 6, 7, 8, 9, 2429 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2430 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2431 28, 29, 509, 509, 30, 282, 283, 31, 1042, 1043, 2432 0, 1044, 0, 0, 1045, 1046, 1047, 1048, 1049, 1050, 2433 1051, 1052, 0, 0, 0, 1053, 0, 0, 0, 1054, 2434 1055, 0, 33, 0, 285, 34, 0, 35, 0, 36, 2435 1056, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2436 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 0, 0, 0, 0, 0, 0, 0, 294, 0, 1057, 2439 0, 0, 171, 0, 0, 45, 46, 296, 297, 298, 2440 299, 0, 0, 0, 0, 1058, 0, 0, 0, 0, 2441 -131, 0, 0, 0, 0, 0, 1375, 0, 0, 742, 2175 2442 1, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2176 2443 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2177 21, 22, 23, 24, 25, 363, 363, 26, 27, 28,2178 29, 0, 0, 30, 282, 283, 31, 284, 0, 509,2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2180 356, 0, 0, 0, 0, 0, 0, 0, 0, 0,2181 0, 0, 0, 285, 34, 0, 35, 0, 36, 286,2182 0, 38, 39, 287, 165, 0, 288, 289, 290, 291,2444 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2445 29, 0, 0, 30, 282, 283, 31, 284, 8, 9, 2446 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2447 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2448 28, 0, 0, 285, 34, 0, 35, 31, 36, 286, 2449 0, 38, 39, 287, 0, 0, 288, 289, 290, 291, 2183 2450 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2184 0, 218, 0, 0, 0, 0, 363, 79, 0, 0,2185 509, 0, 0, 0, 79, 0, 294, 0, 1056, 0,2186 0, 0, 0, 0, 45, 46, 296, 297, 298, 299,2187 0, 0, 0, 926, 0, 927, 0, 0, 0, -128,2188 509, 0, 930, 931, 0, 0, 0, 936, 165, 225,2189 0, 0, 272, 0, 0, 0, 0, 0, 0, 941,2190 0, 0, 0, 0, 945, 79, 0, 0, 0, 0,2191 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,2192 0, 165, 0, 363, 0, 363, 0, 0, 0, 0,2193 0, 369, 979, 0, 0, 375, 0, 0, 0, 0,2194 0, 0, 0, 0, 0, 0, 1163, 0, 0, 8,2195 9, 10, 11, 12, 0, 363, 0, 0, 0, 0,2196 0, 0, 0, 363, 363, 363, 0, 0, 0, 0,2197 0, 0, 0, 0, 363, 363, 282, 283, 31, 284,2198 0, 0, 0, 0, 165, 0, 0, 0, 86, 0,2199 0, 0, 0, 0, 0, 0, 218, 0, 0, 0,2200 509, 0, 0, 0, 0, 285, 34, 0, 0, 0,2201 0, 286, 0, 0, 165, 287, 0, 0, 288, 289,2202 290, 291, 41, 42, 0, 292, 293, 363, 0, 0,2203 0, 1024, 1025, 1026, 1027, 0, 1029, 0, 0, 375,2204 0, 0, 0, 0, 0, 509, 165, 0, 294, 0,2205 379, 1073, 0, 0, 0, 0, 1164, 46, 296, 297,2206 298, 299, 0, 0, 0, 1079, 0, 0, 0, 524,2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2208 509, 0, 165, 0, 0, 0, 0, 0, 0, 211,2209 0, 0, 0, 509, 363, 0, 0, 0, 231, 0,2210 235, 0, 237, 0, 0, 1099, 0, 0, 0, 246,2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2212 598, 0, 0, 0, 0, 622, 0, 0, 0, 0,2213 0, 0, 0, 0, 509, 0, 0, 0, 0, 0,2214 211, 86, 235, 237, 246, 0, 0, 0, 86, 0,2215 1130, 0, 0, 0, 0, 0, 1137, 0, 0, 0,2216 0, 1141, 0, 0, 0, 0, 1145, 0, 1146, 0,2217 0, 0, 1148, 0, 1149, 1150, 0, 0, 1153, 0,2218 0, 0, 0, 211, 0, 0, 0, 1165, 0, 0,2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,2220 0, 165, 165, 0, 0, 1180, 1181, 0, 369, 0,2221 0, 509, 0, 0, 0, 0, 0, 0, 0, 0,2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 524,2223 0, 0, 1211, 0, 0, 1213, 0, 0, 0, 0,2224 0, 0, 0, 0, 211, 0, 235, 237, 246, 0,2225 0, 0, 0, 0, 0, 0, 0, 716, 0, 0,2226 0, 8, 9, 10, 11, 12, 0, 0, 0, 165,2227 0, 509, 509, 0, 0, 0, 0, 0, 1227, 0,2228 0, 524, 211, 524, 1231, 1232, 524, 211, 165, 524,2229 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,2230 0, 369, 497, 0, 1248, 0, 0, 1252, 0, 0,2231 0, 1254, 0, 0, 0, 0, 0, 0, 34, 0,2232 0, 0, 0, 37, 1262, 183, 184, 40, 0, 0,2233 0, 0, 0, 0, 41, 42, 0, 1269, 0, 1271,2234 1272, 1273, 1274, 0, 0, 0, 0, 0, 0, 0,2235 0, 211, 0, 0, 165, 1281, 0, 1282, 0, 0,2236 185, 172, 0, 0, 0, 0, 369, 0, 45, 46,2237 811, 0, 0, 211, 0, 0, 0, 0, 235, 237,2238 0, 0, 0, 0, 0, 0, 246, 0, 0, 0,2239 1310, 1311, 0, 0, 0, 0, 598, 0, 0, 0,2240 0, 598, 0, 0, 0, 0, 0, 0, 0, 0,2241 369, 369, 369, 0, 0, 0, 0, 0, 0, 0,2242 0, 0, 0, 0, 0, 0, 0, 0, 369, 211,2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2244 1343, 1344, 0, 0, 0, 0, 0, 211, 0, 0,2245 1354, 0, 211, 0, 211, 0, 0, 0, 0, 0,2246 524, 0, 0, 0, 0, 0, 0, 0, 0, 0,2247 0, 211, 0, 0, 211, 211, 509, 0, 0, 0,2248 0, 0, 211, 0, 0, 0, 369, 0, 935, 0,2249 0, 0, 509, 0, 0, 0, 211, 0, 0, 0,2250 0, 0, 0, 211, 0, 0, 0, 0, 0, 0,2251 0, 1389, 0, 1390, 1391, 1392, 0, 0, 0, 0,2252 0, 716, 0, 0, 0, 1396, 156, 0, 0, 0,2253 0, 0, 0, 0, 1407, 8, 9, 10, 11, 12,2254 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,2255 23, 24, 25, 0, 0, 26, 27, 28, 0, 1428,2256 0, 0, 509, 509, 31, 0, 0, 8, 9, 10,2257 11, 12, 0, 251, 0, 0, 0, 369, 0, 0,2258 0, 622, 0, 256, 0, 369, 0, 0, 0, 0,2259 0, 0, 34, 0, 0, 0, 31, 37, 0, 38,2260 39, 40, 1466, 1467, 0, 0, 0, 0, 41, 42,2261 0, 0, 0, 0, 0, 1472, 0, 0, 211, 0,2262 0, 0, 1472, 0, 34, 0, 0, 0, 0, 37,2263 0, 183, 184, 40, 43, 0, 157, 0, 0, 156,2264 41, 42, 45, 46, 0, 0, 211, 0, 0, 0,2265 0, 211, 0, 386, 1505, 0, 0, 0, 1511, 0,2266 0, 0, 0, 0, 0, 0, 265, 0, 0, 0,2267 0, 0, 0, 0, 45, 46, 418, 0, 0, 0,2268 716, 0, 0, 0, 0, 0, 1533, 0, 1534, 0,2269 433, 0, 0, 0, 0, 524, 0, 0, 0, 438,2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,2271 0, 0, 0, 0, 0, 0, 1549, 1550, 0, 165,2272 0, 0, 211, 0, 1553, 1554, 0, 0, 0, 0,2273 0, 0, 0, 0, 464, 0, 211, 0, 0, 474,2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2275 0, 0, 482, 0, 0, 0, 497, 0, 492, 0,2276 496, 0, 0, 0, 0, 0, 0, 0, 0, 0,2277 0, 0, 0, 0, 0, 598, 0, 526, 8, 9,2278 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,2279 20, 21, 22, 23, 24, 25, 369, 369, 26, 27,2280 28, 0, 0, 0, 0, 0, 0, 31, 0, 0,2281 0, 0, 0, 0, 0, 0, 0, 211, 0, 0,2282 586, 0, 0, 0, 0, 591, 0, 0, 0, 211,2283 2451 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2284 37, 0, 38, 39, 40, 0, 0, 0, 211, 0, 2285 0, 41, 42, 0, 636, 0, 524, 0, 637, 638, 2286 0, 640, 0, 0, 0, 0, 0, 0, 651, 652, 2287 0, 653, 654, 0, 655, 0, 656, 43, 0, 44, 2288 0, 0, 0, 0, 0, 45, 46, 0, 0, 0, 2289 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 2290 0, 671, 0, 0, 0, 0, 0, 0, 0, 341, 2291 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2292 0, 0, 716, 0, 0, 0, 682, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2294 12, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2295 414, 0, 708, 0, 0, 0, 0, 0, 711, 0, 2296 0, 211, 0, 464, 218, 31, 8, 9, 10, 11, 2297 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2298 22, 23, 24, 25, -293, 0, 26, 27, 28, 0, 2299 0, 211, 0, 34, 0, 31, 0, 0, 37, 746, 2300 0, 716, 40, 0, 0, 0, 0, 0, 0, 41, 2301 42, 0, 0, 0, 764, 0, 0, 0, 0, 0, 2302 0, 0, 414, 34, 0, 0, 211, 0, 37, 0, 2303 336, 337, 40, 0, -293, 719, 0, 211, 0, 41, 2304 42, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2305 369, 369, 0, 790, 0, 0, 0, 0, 0, 218, 2306 0, 0, 800, 0, 0, 635, 0, 338, 321, 802, 2307 0, 0, 0, 45, 46, 810, 0, 414, 346, 0, 2308 0, 0, 0, 0, 824, 414, 582, 0, 414, 585, 2309 382, 382, 0, 0, 0, 0, 0, 0, 0, 364, 2310 0, 0, 0, 614, 0, 0, 0, 0, 0, 211, 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2312 0, 0, 632, 211, 864, 341, 205, 2, 206, 4, 2313 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2314 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2315 25, 0, 414, 26, 27, 28, 414, 0, 0, 0, 2316 810, 321, 31, 0, 0, 0, 0, 0, 905, 0, 2317 369, 0, 282, 283, 0, 284, 0, 0, 0, 0, 2318 0, 0, 0, 0, 0, 478, 0, 364, 0, 0, 2319 34, 0, 35, 0, 36, 0, 0, 207, 39, 251, 2320 0, 285, 0, 0, 0, 0, 0, 286, 0, 942, 2321 943, 287, 211, 0, 288, 289, 290, 291, 41, 42, 2322 0, 292, 293, 0, 0, 0, 524, 0, 524, 0, 2323 0, 0, 0, 414, 208, 0, 364, 0, 0, 0, 2324 45, 46, 980, 0, 294, 0, 379, 984, 0, 380, 2325 0, 0, 45, 46, 296, 297, 298, 299, 0, 0, 2326 0, 0, 524, 0, 524, 0, 0, 0, 0, 0, 2327 0, 0, 0, 0, 0, 414, 0, 0, 0, 341, 2328 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 2330 0, 0, 382, 0, 0, 0, 0, 211, 0, 0, 2331 0, 1018, 0, 0, 0, 0, 0, 0, 1019, 0, 2332 0, 0, 0, 0, 0, 414, 414, 0, 0, 0, 2333 0, 1021, 0, 1022, 0, 0, 0, 0, 0, 0, 2334 0, 0, 0, 0, 804, 364, 0, 1034, 0, 0, 2335 0, 0, 0, 1038, 0, 614, 0, 614, 614, 0, 2336 0, 0, 0, 0, 614, 1076, 0, 0, 1077, 0, 2337 0, 0, 0, 0, 843, 364, 0, 0, 0, 0, 2338 364, 0, 0, 0, 0, 0, 0, 0, 0, 364, 2339 364, 364, 0, 0, 0, 0, 710, 0, 0, 0, 2340 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2341 0, 0, 414, 885, 0, 0, 414, 888, 0, 0, 2342 0, 0, 0, 890, 0, 0, 0, 0, 0, 0, 2343 0, 0, 0, 0, 0, 742, 0, 0, 0, 0, 2344 0, 0, 414, 0, 0, 591, 0, 0, 759, 0, 2345 0, 0, 0, 742, 0, 0, 742, 0, 0, 0, 2346 0, 0, 0, 0, 0, 364, 614, 0, 0, 768, 2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2348 1147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2349 0, 789, 0, 0, 0, 0, 0, 0, 0, 341, 2350 364, 798, 0, 0, 414, 414, 0, 0, 346, 0, 2351 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 2352 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2353 18, 19, 20, 21, 22, 23, 24, 25, 526, 0, 2354 26, 27, 28, 0, 1212, 0, 0, 0, 414, 31, 2355 0, 0, 0, 0, 211, 0, 364, 0, 0, 0, 2356 0, 0, 863, 804, 364, 0, 0, 614, 0, 614, 2357 382, 0, 0, 0, 0, 0, 0, 34, 1224, 614, 2358 0, 0, 37, 1226, 207, 39, 40, 0, 0, 0, 2359 0, 1230, 0, 41, 42, 0, 8, 9, 10, 11, 2360 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2361 22, 23, 24, 25, -293, 0, 0, 0, 0, 43, 2362 0, 270, 0, 0, 1256, 31, 0, 45, 46, 0, 2363 0, 0, 0, 0, 0, 0, 1264, 0, 0, 1265, 2364 0, 1266, 0, 0, 0, 0, 0, 0, 0, 0, 2365 0, 804, 0, 34, 0, 1275, 1276, 0, 341, 364, 2366 414, 0, 414, 0, -293, 0, 414, 0, 759, 0, 2367 964, 0, 0, 0, 0, 0, 0, 1289, 0, 0, 2368 975, 0, 0, 0, 0, 0, 983, 614, 614, 0, 2369 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2370 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2371 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2372 0, 0, 414, 0, 1328, 0, 0, 0, 1001, 1002, 2373 0, 0, 346, 0, 0, 0, 0, 0, 282, 283, 2374 0, 284, 0, 414, 1144, 0, 346, 34, 0, 0, 2375 0, 0, 0, 0, 364, 0, 0, 0, -294, 0, 2376 414, 1156, 0, 614, 614, 1161, 0, 285, 0, 0, 2377 0, 0, 0, 286, 0, 364, 364, 287, 0, 0, 2378 288, 289, 290, 291, 41, 42, 1032, 292, 293, 0, 2379 382, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 2380 0, 1379, 0, 0, 0, 0, 0, 0, 0, 0, 2381 294, 0, 379, 1387, 0, 1388, 0, 758, 45, 46, 2382 296, 297, 298, 299, 0, 0, 0, 346, 0, 0, 2383 0, 0, 1395, 0, 0, 0, 0, 0, 414, 0, 2384 414, 0, 0, 0, 0, 414, 0, 0, 1413, 1415, 2385 0, 0, 0, 0, 614, 0, 0, 0, 0, 1420, 2386 0, 0, 1230, 0, 0, 0, 321, 0, 0, 0, 2387 0, 0, 0, 0, 0, 0, 0, 804, 414, 1244, 2388 0, 0, 0, 1442, 0, 0, 0, 0, 0, 0, 2389 0, 0, 1449, 0, 382, 1451, 0, 1453, 1455, 1457, 2390 975, 364, 0, 0, 742, 282, 283, 0, 284, 0, 2391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2392 0, 0, 0, 0, 0, 1151, 0, 0, 0, 0, 2393 0, 0, 0, 0, 285, 0, 1166, 1487, 0, 1489, 2394 641, 1230, 139, 140, 287, 0, 0, 288, 289, 290, 2395 291, 41, 42, 0, 292, 293, 1500, 0, 382, 0, 2396 1184, 0, 341, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 975, 975, 294, 0, 642, 2398 364, 643, 380, 0, 0, 45, 46, 296, 297, 298, 2399 299, 0, 0, 0, 0, 0, 1216, 0, 0, 0, 2452 110, 0, 38, 39, 0, 0, 294, 0, 1057, 0, 2453 0, 41, 42, 0, 45, 46, 296, 297, 298, 299, 2454 0, 0, 0, 0, 0, 0, 0, 0, 0, -131, 2400 2455 0, 0, 0, 0, 1, 2, 206, 4, 5, 6, 2401 2456 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2402 17, 18, 19, 20, 21, 22, 23, 24, 25, 364, 2403 364, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2404 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2405 0, 975, 0, 0, 0, 0, 0, 0, 0, 0, 2406 0, 0, 0, 0, 0, 0, 0, 0, 34, 863, 2407 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 2408 0, 0, 0, 0, 1267, 1268, 0, 1, 2, 206, 2409 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2410 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2411 24, 25, 44, 0, 26, 27, 28, 29, 45, 46, 2412 30, 282, 283, 31, 1041, 1042, 0, 1043, 0, 0, 2413 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 2414 0, 1052, 0, 0, 0, 1053, 1054, 0, 33, 364, 2415 285, 34, 0, 35, 0, 36, 1055, 0, 38, 39, 2416 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2417 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2457 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2458 0, 26, 27, 28, 29, 0, 0, 30, 282, 283, 2459 31, 284, 0, 0, 0, 8, 9, 10, 11, 12, 2460 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2461 23, 24, 25, -297, 0, 0, 0, 285, 34, 0, 2462 35, 0, 36, 286, 31, 38, 39, 287, 0, 321, 2463 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2418 2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2419 0, 0, 0, 294, 0, 1056, 0, 0, 171, 0, 2420 0, 45, 46, 296, 297, 298, 299, 0, 0, 0, 2421 0, 1057, 0, 0, 0, 0, -128, 0, 0, 0, 2422 0, 0, 0, 0, 0, 1372, 0, 0, 742, 0, 2423 0, 0, 0, 0, 0, 0, 414, 0, 0, 0, 2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2426 414, 414, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2428 0, 0, 0, 0, 0, 414, 1, 2, 206, 4, 2429 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2430 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2431 25, 0, 0, 26, 27, 28, 29, 0, 0, 30, 2432 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 2433 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2434 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 2435 34, 0, 35, 31, 36, 286, 0, 38, 39, 287, 2436 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2437 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 0, 34, 0, 0, 0, 0, 110, 0, 38, 39, 2439 0, 0, 294, 0, 44, 0, 0, 41, 42, 0, 2440 45, 46, 296, 297, 298, 299, 2, 206, 4, 5, 2441 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2442 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2443 0, 0, 26, 27, 28, 0, 0, 0, 321, 282, 2444 283, 31, 284, 8, 9, 10, 11, 12, 13, 14, 2445 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2446 25, 0, 0, 26, 27, 28, 0, 0, 285, 34, 2447 0, 35, 31, 36, 286, 0, 38, 39, 287, 0, 2448 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2450 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2451 0, 294, 0, 343, 0, 0, 0, 0, 758, 344, 2452 46, 296, 297, 298, 299, 2, 206, 4, 5, 6, 2453 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2454 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2455 0, 26, 27, 28, 0, 0, 0, 0, 282, 283, 2456 31, 284, 8, 9, 10, 11, 12, 13, 14, 15, 2457 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2458 0, 0, 26, 27, 28, 0, 0, 285, 34, 0, 2459 35, 31, 36, 286, 0, 38, 39, 287, 0, 0, 2460 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2461 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2462 0, 0, 0, 0, 0, 0, 207, 39, 0, 0, 2463 294, 0, 963, 0, 0, 0, 0, 758, 344, 46, 2465 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2466 294, 0, 44, -297, 0, 0, 0, 0, 45, 46, 2464 2467 296, 297, 298, 299, 2, 206, 4, 5, 6, 7, 2465 2468 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … … 2468 2471 284, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2469 2472 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2470 0, 0, 0, 0, 0, 0, 285, 34, 0, 35,2473 0, 26, 27, 28, 0, 0, 285, 34, 0, 35, 2471 2474 31, 36, 286, 0, 38, 39, 287, 0, 0, 288, 2472 2475 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2473 2476 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 294,2475 0, 963, 0, 0, 0, 0, 758, 45, 46, 296,2477 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2478 0, 343, 0, 0, 0, 0, 758, 344, 46, 296, 2476 2479 297, 298, 299, 2, 206, 4, 5, 6, 7, 8, 2477 2480 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2478 2481 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2479 2482 27, 28, 0, 0, 0, 0, 282, 283, 31, 284, 2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2482 0, 0, 0, 0, 0, 285, 34, 0, 35, 0,2483 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2484 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2485 26, 27, 28, 0, 0, 285, 34, 0, 35, 31, 2483 2486 36, 286, 0, 38, 39, 287, 0, 0, 288, 289, 2484 2487 290, 291, 41, 42, 0, 292, 293, 0, 0, 0, 2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2486 0, 0, 0, 0, 0, 0, 0, 0, 294, 0,2487 343, 0, 0, 0, 0, 0, 344, 46, 296, 297,2488 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2489 0, 0, 0, 0, 207, 39, 0, 0, 294, 0, 2490 964, 0, 0, 0, 0, 758, 344, 46, 296, 297, 2488 2491 298, 299, 2, 206, 4, 5, 6, 7, 8, 9, 2489 2492 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 2493 2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 2497 0, 0, 0, 0, 285, 34, 0, 35, 0, 36, 2495 286, 0, 207, 39, 287, 0, 0, 288, 289, 290,2498 286, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2496 2499 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2497 2500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498 0, 0, 0, 0, 0, 0, 0, 294, 0, 9 98,2499 0, 0, 0, 0, 0, 999, 46, 296, 297, 298,2501 0, 0, 0, 0, 0, 0, 0, 294, 0, 964, 2502 0, 0, 0, 0, 758, 45, 46, 296, 297, 298, 2500 2503 299, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2501 2504 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, … … 2508 2511 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2509 2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510 0, 0, 0, 0, 0, 0, 294, 0, 963, 0,2513 0, 0, 0, 0, 0, 0, 294, 0, 343, 0, 2511 2514 0, 0, 0, 0, 344, 46, 296, 297, 298, 299, 2512 2515 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, … … 2520 2523 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2521 2524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522 0, 0, 0, 0, 0, 294, 0, 379, 0, 0, 2523 0, 0, 0, 45, 46, 296, 297, 298, 299, -516, 2524 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 2525 0, 0, 0, 0, 0, 294, 0, 999, 0, 0, 2526 0, 0, 0, 1000, 46, 296, 297, 298, 299, 2, 2527 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2528 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2529 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2530 0, 0, 282, 283, 31, 284, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 285, 34, 0, 35, 0, 36, 286, 0, 38, 2534 39, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2535 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2537 0, 0, 0, 0, 294, 0, 964, 0, 0, 0, 2538 0, 0, 344, 46, 296, 297, 298, 299, 2, 206, 2539 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2540 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2541 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2542 0, 282, 283, 31, 284, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 285, 34, 0, 35, 0, 36, 286, 0, 207, 39, 2546 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2547 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2549 0, 0, 0, 294, 0, 379, 0, 0, 0, 0, 2550 0, 45, 46, 296, 297, 298, 299, 205, 2, 206, 2551 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2552 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2553 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2554 0, 0, 0, 31, 0, 8, 9, 10, 11, 12, 2555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2556 23, 24, 25, 0, 0, 26, 27, 28, 485, 486, 2557 487, 34, 0, 35, 31, 36, 37, 0, 207, 39, 2558 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2560 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2561 39, 0, 0, 43, 0, 208, 0, 0, 0, 0, 2562 0, 45, 46, 1, 2, 206, 4, 5, 6, 7, 2563 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2564 18, 19, 20, 21, 22, 23, 24, 25, -296, 0, 2565 26, 27, 28, 29, 0, 0, 30, 0, 0, 31, 2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2569 0, 36, 0, 0, 38, 39, 0, 0, -296, 1, 2570 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2571 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2572 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2573 0, 44, 30, 0, 0, 31, 0, 45, 46, 0, 2574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2577 38, 39, 205, 2, 206, 4, 5, 6, 7, 8, 2525 2578 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2526 2579 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2527 27, 28, 29, 0, 0, 30, 0, 0, 31, 32, 2580 27, 28, 0, 0, 0, 0, 0, 44, 31, 0, 2581 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2583 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2584 36, 0, 0, 207, 39, 0, 2, 206, 4, 5, 2585 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2586 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2587 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2588 208, 31, 0, 0, 0, 0, 45, 46, 0, 0, 2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2591 0, 35, 0, 36, 37, 0, 207, 39, 40, 0, 2592 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2528 2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2529 2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2530 0, 0, 0, 33, 0, 0, 34, 0, 35, 0, 2531 36, 37, 0, 38, 39, 40, 0, 0, 0, 0, 2532 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2595 0, 43, 0, 208, 0, 0, 0, 0, 0, 45, 2596 46, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2597 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2598 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2599 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2600 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2601 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2602 0, 26, 27, 28, 34, 0, 35, 0, 36, 0, 2603 31, 38, 39, 0, 2, 206, 4, 5, 6, 7, 2604 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2605 18, 19, 20, 21, 22, 23, 24, 25, 34, 0, 2606 26, 27, 28, 0, 0, 38, 39, -403, 678, 31, 2607 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2533 2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2534 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2535 44, 0, 0, 0, 0, 0, 45, 46, 1, 2, 2536 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2609 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2610 635, 36, 338, 0, 38, 39, 0, 0, 45, 46, 2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 1354, 0, 0, 0, 2613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2614 0, 678, 0, 0, 0, 0, 0, 45, 46, 2, 2615 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2537 2616 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2538 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2539 0, 30, 0, 0, 31, 32, 0, 0, 0, 0, 2617 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2618 0, 0, 0, 0, 31, 0, 0, 0, 8, 9, 2619 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2620 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2621 28, 0, 34, 0, 35, 0, 36, 31, 685, 38, 2622 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2540 2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2542 0, 0, 34, 0, 35, 0, 36, 37, 0, 38, 2543 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2624 0, 1356, 0, 0, 0, 34, 0, 0, 0, 0, 2625 0, 0, 38, 39, 0, 0, 678, 0, 0, 0, 2626 0, 0, 45, 46, 2, 206, 4, 5, 6, 7, 2627 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2628 18, 19, 20, 21, 22, 23, 24, 25, 0, 686, 2629 26, 27, 28, 687, 0, 45, 46, 0, 0, 31, 2544 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2546 0, 0, 0, 0, 43, 0, 44, 0, 0, 0, 2547 -520, 0, 45, 46, 1, 2, 3, 4, 5, 6, 2548 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2549 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2550 0, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2551 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 33, 0, 0, 34, 0, 2554 35, 0, 36, 37, 0, 38, 39, 40, 0, 0, 2555 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2558 43, 0, 44, 0, 0, 0, 0, 0, 45, 46, 2559 205, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2560 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2561 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2562 0, 0, 0, 0, 0, 0, 31, 0, 8, 9, 2563 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2564 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2565 28, 485, 486, 487, 34, 0, 35, 31, 36, 37, 2566 0, 207, 39, 40, 0, 0, 0, 0, 0, 0, 2567 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2569 0, 0, 38, 39, 0, 0, 43, 0, 208, 0, 2570 0, 0, 0, 0, 45, 46, 1, 2, 206, 4, 2632 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2633 0, 36, 0, 0, 207, 39, 0, 2, 206, 4, 2571 2634 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2572 2635 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2573 25, -293, 0, 26, 27, 28, 29, 0, 0, 30,2574 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,2636 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2637 0, 270, 31, 0, 0, 0, 0, 45, 46, 0, 2575 2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577 2640 34, 0, 35, 0, 36, 0, 0, 38, 39, 0, 2578 0, -293, 2, 206, 4, 5, 6, 7, 8, 9,2579 1 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,2580 2 0, 21, 22, 23, 24, 25, 0, 0, 26, 27,2581 28, 0, 0, 0, 44, 0, 0, 31, 0, 0,2641 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2642 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2643 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2644 0, 0, 0, 0, 678, 31, 0, 0, 0, 0, 2582 2645 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2583 2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2584 0, 0, 0, 0, 0, 34, 0, 35, 0, 36,2585 37, 0, 207, 39, 40, 0, 0, 0, 0, 0,2586 0, 41, 42, 0, 0, 0, 0, 0, 0, 0,2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2588 0, 0, 0, 0, 0, 0, 0, 43, 0, 208,2589 0, 0, 0, 0, 0, 45, 46, 2, 206, 4,2590 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,2591 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,2592 25, 0, 0, 26, 27, 28, 0, 0, 0, 0,2593 0, 0, 31, 0, 0, 0, 0, 8, 9, 10,2594 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,2595 21, 22, 23, 24, 25, 0, 0, 26, 27, 28,2596 34, 0, 35, 0, 36, 0, 31, 38, 39, 0,2597 2, 206, 4, 5, 6, 7, 8, 9, 10, 11,2598 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,2599 22, 23, 24, 25, 34, 0, 26, 27, 28, 0,2600 0, 38, 39, -400, 678, 31, 0, 0, 0, 0,2601 45, 46, 0, 0, 0, 0, 0, 0, 0, 0,2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2603 0, 0, 0, 34, 0, 35, 635, 36, 338, 0,2604 38, 39, 0, 0, 45, 46, 0, 0, 0, 0,2605 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2606 0, 0, 1351, 0, 0, 0, 0, 0, 0, 0,2607 0, 0, 0, 0, 0, 0, 0, 678, 0, 0,2608 0, 0, 0, 45, 46, 2, 206, 4, 5, 6,2609 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,2610 17, 18, 19, 20, 21, 22, 23, 24, 25, 0,2611 0, 26, 27, 28, 0, 0, 0, 0, 0, 0,2612 31, 0, 0, 0, 8, 9, 10, 11, 12, 13,2613 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,2614 24, 25, 0, 0, 26, 27, 28, 0, 34, 0,2615 35, 0, 36, 31, 685, 38, 39, 0, 0, 0,2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2617 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0,2618 0, 34, 0, 0, 0, 0, 0, 0, 38, 39,2619 0, 0, 678, 0, 0, 0, 0, 0, 45, 46,2620 2, 206, 4, 5, 6, 7, 8, 9, 10, 11,2621 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,2622 22, 23, 24, 25, 0, 686, 26, 27, 28, 687,2623 0, 45, 46, 0, 0, 31, 0, 0, 0, 0,2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2626 2647 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2627 207, 39, 0, 2, 206, 4, 5, 6, 7, 8,2648 38, 39, 0, 2, 206, 4, 5, 6, 7, 8, 2628 2649 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2629 2650 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2630 27, 28, 0, 0, 0, 0, 0, 270, 31, 0,2651 27, 28, 0, 0, 0, 0, 0, 593, 31, 0, 2631 2652 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2632 2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 2654 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2634 36, 0, 0, 38, 39, 0, 2, 206, 4, 5, 2635 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2636 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2637 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2638 678, 31, 0, 0, 0, 0, 45, 46, 0, 0, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2641 0, 35, 0, 36, 0, 0, 38, 39, 0, 2, 2642 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2655 36, 0, 0, 207, 39, 8, 9, 10, 11, 12, 2643 2656 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2644 2657 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2645 0, 0, 0, 593, 31, 0, 0, 0, 0, 45,2646 46, 0, 0, 0, 0, 0, 0, 0, 0, 0,2658 0, 0, 282, 283, 31, 284, 0, 0, 0, 0, 2659 208, 0, 0, 0, 0, 0, 45, 46, 0, 0, 2647 2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2648 0, 0, 34, 0, 35, 0, 36, 0, 0, 207, 2649 39, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2661 0, 285, 34, 0, 0, 0, 0, 286, 0, 38, 2662 39, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2663 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2665 0, 0, 0, 0, 294, 0, 517, 0, 0, 171, 2666 0, 0, 45, 46, 296, 297, 298, 299, 8, 9, 2667 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2668 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2669 28, 0, 0, 0, 0, 282, 283, 31, 284, 8, 2670 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2671 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2672 27, 28, 0, 0, 285, 34, 0, 0, 31, 0, 2673 286, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2674 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2675 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2676 0, 37, 0, 336, 337, 40, 0, 294, -37, 295, 2677 0, 0, 41, 42, 0, 45, 46, 296, 297, 298, 2678 299, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2650 2679 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2651 0, 26, 27, 28, 0, 0, 0, 0, 282, 283,2652 31, 284, 0, 0, 0, 0, 208, 0, 0, 0,2653 0, 0, 45, 46, 0, 0, 0, 0, 0, 0,2654 0, 0, 0, 0, 0, 0, 0, 285, 34, 0,2655 0, 0, 0, 286, 0, 38, 39, 287, 0, 0,2680 338, 26, 27, 28, 0, 0, 45, 46, 282, 283, 2681 31, 284, 8, 9, 10, 11, 12, 13, 14, 15, 2682 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2683 0, 0, 26, 27, 28, 0, 0, 285, 34, 0, 2684 0, 31, 0, 286, 0, 38, 39, 287, 0, 0, 2656 2685 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2659 294, 0, 517, 0, 0, 171, 0, 0, 45, 46,2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2687 0, 0, 0, 0, 110, 0, 38, 39, 0, 0, 2688 294, 0, 295, 0, 0, 41, 42, 0, 45, 46, 2660 2689 296, 297, 298, 299, 8, 9, 10, 11, 12, 13, 2661 2690 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2662 24, 25, 0, 0, 26, 27, 28, 0, 0, 0,2663 0, 282, 283, 31, 284, 8, 9, 10, 11, 12,2691 24, 25, 0, 44, 26, 27, 28, 0, 0, 45, 2692 46, 282, 283, 31, 284, 8, 9, 10, 11, 12, 2664 2693 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2665 2694 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2666 285, 34, 0, 0, 31, 0, 286, 0, 38, 39,2695 285, 34, 0, 0, 31, 685, 286, 0, 38, 39, 2667 2696 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2668 2697 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2669 0, 0, 34, 0, 0, 0, 0, 37, 0, 336,2670 337, 40, 0, 294, -36, 295, 0, 0, 41, 42,2698 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2699 39, 0, 0, 294, 0, 157, 0, 0, 0, 0, 2671 2700 0, 45, 46, 296, 297, 298, 299, 8, 9, 10, 2672 2701 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2673 21, 22, 23, 24, 25, 0, 338, 26, 27, 28,2674 0, 0, 45, 46, 282, 283, 31, 284, 8, 9,2702 21, 22, 23, 24, 25, 0, 686, 26, 27, 28, 2703 1093, 0, 45, 46, 282, 283, 31, 284, 8, 9, 2675 2704 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2676 2705 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2677 28, 0, 0, 285, 34, 0, 0, 31, 0, 286,2706 28, 0, 0, 285, 34, 0, 0, 31, 685, 286, 2678 2707 0, 38, 39, 287, 0, 0, 288, 289, 290, 291, 2679 2708 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2680 2709 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2681 110, 0, 38, 39, 0, 0, 294, 0, 295, 0,2682 0, 41, 42, 0, 45, 46, 296, 297, 298, 299,2710 0, 0, 38, 39, 0, 0, 294, 0, 593, 0, 2711 0, 0, 0, 0, 45, 46, 296, 297, 298, 299, 2683 2712 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2684 18, 19, 20, 21, 22, 23, 24, 25, 0, 44, 2685 26, 27, 28, 0, 0, 45, 46, 282, 283, 31, 2686 284, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2713 18, 19, 20, 21, 22, 23, 24, 25, 0, 686, 2714 26, 27, 28, 1224, 0, 45, 46, 282, 283, 31, 2715 284, 0, 0, 0, 0, 0, 0, 0, 8, 9, 2716 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2717 20, 21, 22, 23, 24, 25, 285, 34, 26, 27, 2718 28, 0, 286, 0, 38, 39, 287, 31, 0, 288, 2719 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2721 0, 0, 0, 0, 0, 34, 0, 0, 0, 294, 2722 0, 379, 38, 39, 0, 0, 0, 45, 46, 296, 2723 297, 298, 299, 467, 2, 206, 4, 5, 6, 7, 2724 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2725 18, 19, 20, 21, 22, 23, 24, 25, 0, 257, 2726 26, 27, 28, 0, 0, 45, 46, 0, 0, 31, 2727 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2728 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2729 25, 0, 0, 26, 27, 28, 0, 34, 0, 35, 2730 0, 36, 31, 0, 38, 39, 0, 0, 0, 0, 2731 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2687 2732 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2688 0, 26, 27, 28, 0, 0, 285, 34, 0, 0, 2689 31, 685, 286, 0, 38, 39, 287, 0, 0, 288, 2690 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2691 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2692 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2693 0, 157, 0, 0, 0, 0, 0, 45, 46, 296, 2694 297, 298, 299, 8, 9, 10, 11, 12, 13, 14, 2695 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2696 25, 0, 686, 26, 27, 28, 1092, 0, 45, 46, 2697 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 2698 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2699 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 2700 34, 0, 0, 31, 685, 286, 0, 38, 39, 287, 2701 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2702 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2703 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2704 0, 0, 294, 0, 593, 0, 0, 0, 0, 0, 2705 45, 46, 296, 297, 298, 299, 8, 9, 10, 11, 2733 34, 26, 27, 28, 0, 37, 0, 38, 39, 40, 2734 31, 0, 0, 0, -3, 0, 41, 42, 0, 8, 2735 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2736 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2737 27, 28, 43, 37, 44, 207, 39, 40, 31, 0, 2738 45, 46, 0, 0, 41, 42, 0, 8, 9, 10, 2739 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2740 21, 22, 23, 24, 25, -296, 34, 26, 27, 28, 2741 43, 37, 270, 336, 337, 40, 31, 0, 45, 46, 2742 0, 0, 41, 42, 0, 8, 9, 10, 11, 12, 2743 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2744 23, 24, 25, -296, 34, 26, 27, 28, 635, 0, 2745 338, 38, 39, 0, 31, -296, 45, 46, 8, 9, 2746 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2747 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2748 28, 0, 34, 0, 0, 0, 635, 31, 338, 38, 2749 39, 0, 0, -296, 45, 46, 8, 9, 10, 11, 2706 2750 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2707 22, 23, 24, 25, 0, 686, 26, 27, 28, 1221, 2708 0, 45, 46, 282, 283, 31, 284, 0, 0, 0, 2709 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2710 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2711 24, 25, 285, 34, 26, 27, 28, 0, 286, 0, 2712 38, 39, 287, 31, 0, 288, 289, 290, 291, 41, 2713 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 34, 0, 0, 0, 294, 0, 379, 38, 39, 2716 0, 0, 0, 45, 46, 296, 297, 298, 299, 467, 2717 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2718 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2719 22, 23, 24, 25, 0, 257, 26, 27, 28, 0, 2720 0, 45, 46, 0, 0, 31, 0, 0, 0, 8, 2721 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2722 19, 20, 21, 22, 23, 24, 25, -293, 0, 26, 2723 27, 28, 0, 34, 0, 35, 0, 36, 31, 0, 2724 38, 39, 0, 0, 0, 0, 0, 8, 9, 10, 2725 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2726 21, 22, 23, 24, 25, 0, 34, 26, 27, 28, 2727 0, 37, 0, 336, 337, 40, 31, -293, 0, 0, 2728 -3, 0, 41, 42, 0, 8, 9, 10, 11, 12, 2729 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2730 23, 24, 25, -293, 34, 26, 27, 28, 0, 37, 2731 338, 336, 337, 40, 31, 0, 45, 46, 0, 0, 2732 41, 42, 0, 8, 9, 10, 11, 12, 13, 14, 2733 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2734 25, 0, 34, 26, 27, 28, 635, 0, 338, 38, 2735 39, 0, 31, -293, 45, 46, 8, 9, 10, 11, 2736 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2737 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2738 34, 0, 0, 0, 0, 31, 338, 38, 39, 0, 2751 22, 23, 24, 25, 0, 34, 26, 27, 28, 0, 2752 0, 0, 38, 39, 0, 31, 338, 0, 0, 0, 2739 2753 0, 0, 45, 46, 8, 9, 10, 11, 12, 13, 2740 2754 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2741 24, 25, 0, 34, 26, 27, 28, 0, 0, 0,2742 207, 39, 0, 31, 157, 0, 0, 0, 0,0,2743 45, 46, 8, 9, 10, 11, 12, 13, 14, 15,2744 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,2745 0, 34, 26, 27, 28, 0, 0, 270, 38, 39,2746 0, 31, 0, 45, 46, 8, 9, 10, 11, 12,2755 24, 25, 0, 34, 26, 27, 28, 0, 0, 157, 2756 207, 39, 0, 31, 0, 45, 46, 8, 9, 10, 2757 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2758 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2759 0, 34, 0, 0, 0, 0, 31, 270, 38, 39, 2760 0, 0, 0, 45, 46, 8, 9, 10, 11, 12, 2747 2761 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2748 23, 24, 25, 0, 0, 26, 27, 28, 0, 34,2749 0, 0, 0, 0, 31, 338, 38, 39, 0, 0,2762 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2763 0, 38, 39, 0, 31, 338, 0, 0, 0, 0, 2750 2764 0, 45, 46, 8, 9, 10, 11, 12, 13, 14, 2751 2765 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2752 25, 0, 34, 26, 27, 28, 0, 0, 0, 38, 2753 39, 0, 31, 686, 0, 0, 0, 0, 0, 45, 2754 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2755 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2756 34, 26, 27, 28, 0, 0, 593, 38, 39, 0, 2757 31, 0, 45, 46, 2, 206, 4, 5, 6, 7, 2758 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2759 18, 19, 20, 21, 22, 23, 24, 25, 34, 0, 2760 26, 27, 28, 0, 44, 207, 39, 0, 0, 31, 2761 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2766 25, 0, 34, 26, 27, 28, 0, 0, 686, 38, 2767 39, 0, 31, 0, 45, 46, 2, 206, 4, 5, 2768 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2769 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2770 34, 0, 26, 27, 28, 0, 593, 38, 39, 0, 2771 0, 31, 45, 46, 0, 0, 0, 0, 0, 0, 2762 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2763 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2764 0, 36, 0, 0, 38, 39, 0, 0, 45, 46, 2765 282, 283, 0, 284, 1042, 0, 1043, 0, 0, 1044, 2766 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 1525, 2767 1052, 0, 0, 0, 1053, 1054, 0, 33, 0, 285, 2768 -413, 0, 0, 0, 0, 1055, 0, 0, 0, 287, 2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2774 0, 35, 0, 36, 44, 0, 38, 39, 0, 0, 2775 45, 46, 282, 283, 0, 284, 1043, 0, 1044, 0, 2776 0, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 2777 0, 1528, 1053, 0, 0, 0, 1054, 1055, 0, 33, 2778 0, 285, -416, 0, 0, 0, 0, 1056, 0, 0, 2779 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2780 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782 0, 0, 0, 0, 294, 0, 379, 0, 0, 171, 2783 0, 0, 45, 46, 296, 297, 298, 299, 0, 0, 2784 282, 283, 1058, 284, 1043, 0, 1044, -131, 0, 1045, 2785 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 0, 0, 2786 1053, 0, 0, 0, 1054, 1055, 0, 33, 0, 285, 2787 0, 0, 0, 0, 0, 1056, 0, 0, 0, 287, 2769 2788 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2770 2789 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2771 2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2772 2791 0, 0, 294, 0, 379, 0, 0, 171, 0, 0, 2773 45, 46, 296, 297, 298, 299, 0, 0, 282, 283, 2774 1057, 284, 1042, 0, 1043, -128, 0, 1044, 1045, 1046, 2775 1047, 1048, 1049, 1050, 1051, 0, 0, 0, 1052, 0, 2776 0, 0, 1053, 1054, 0, 33, 0, 285, 0, 0, 2777 0, 0, 0, 1055, 0, 0, 0, 287, 0, 0, 2778 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2792 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 2793 1058, 0, 0, 0, 0, -131, 2, 206, 4, 5, 2794 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2795 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2796 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2797 0, 31, 0, 282, 283, 0, 284, 1043, 0, 1044, 2798 1402, 1403, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 2799 0, 0, 1528, 1053, 0, 0, 0, 1054, 1055, 34, 2800 33, 35, 285, 36, 0, 0, 38, 39, 1056, 0, 2801 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2802 42, 0, 292, 293, 0, 0, 0, 0, 1315, 0, 2779 2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781 294, 0, 379, 0, 0, 171, 0, 0, 45, 46, 2782 296, 297, 298, 299, 0, 0, 0, 0, 1057, 0, 2783 0, 0, 0, -128, 2, 206, 4, 5, 6, 7, 2784 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2785 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2786 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2787 0, 282, 283, 0, 284, 1042, 0, 1043, 1399, 1400, 2788 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 0, 0, 2789 1525, 1052, 0, 0, 0, 1053, 1054, 34, 33, 35, 2790 285, 36, 0, 0, 38, 39, 1055, 0, 0, 0, 2804 0, 0, 0, 0, 0, 294, 0, 379, 0, 0, 2805 171, 0, 0, 45, 46, 296, 297, 298, 299, 0, 2806 0, 282, 283, 1058, 284, 1043, 0, 1044, 1402, 1403, 2807 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 0, 0, 2808 0, 1053, 0, 0, 0, 1054, 1055, 0, 33, 0, 2809 285, 0, 0, 0, 0, 0, 1056, 0, 0, 0, 2791 2810 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2792 292, 293, 0, 0, 0, 0, 1312, 0, 0, 0,2811 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2793 2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2794 2813 0, 0, 0, 294, 0, 379, 0, 0, 171, 0, 2795 2814 0, 45, 46, 296, 297, 298, 299, 0, 0, 282, 2796 283, 105 7, 284, 1042, 0, 1043, 1399, 1400, 1044, 1045,2797 104 6, 1047, 1048, 1049, 1050, 1051, 0, 0, 0, 1052,2798 0, 0, 0, 105 3, 1054, 0, 33, 0, 285, 0,2799 0, 0, 0, 0, 105 5, 0, 0, 0, 287, 0,2815 283, 1058, 284, 1043, 0, 1044, 0, 0, 1045, 1046, 2816 1047, 1048, 1049, 1050, 1051, 1052, 0, 0, 0, 1053, 2817 0, 0, 0, 1054, 1055, 0, 33, 0, 285, 0, 2818 0, 0, 0, 0, 1056, 0, 0, 0, 287, 0, 2800 2819 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2820 0, 0, 0, 0, 0, 0, 282, 283, 0, 284, 2821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2822 0, 294, 0, 379, 0, 0, 171, 0, 0, 45, 2823 46, 296, 297, 298, 299, 285, 0, 0, 0, 1058, 2824 0, 286, 0, 0, 0, 287, 0, 0, 288, 289, 2825 290, 291, 41, 42, 0, 292, 293, 0, 0, 0, 2826 0, 0, 0, 282, 283, 0, 284, 0, 0, 0, 2827 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2828 379, 0, 282, 283, 0, 284, 45, 46, 296, 297, 2829 298, 299, 285, 0, 0, 0, 0, 0, 286, 0, 2830 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2831 42, 285, 292, 293, 0, 0, 0, 286, 0, 0, 2832 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2833 0, 292, 293, 0, 0, 294, 0, 379, 0, 282, 2834 283, 0, 284, 709, 46, 296, 297, 298, 299, 0, 2835 0, 0, 0, 0, 294, 0, 379, 0, 282, 283, 2836 0, 284, 344, 46, 296, 297, 298, 299, 285, 0, 2837 0, 0, 0, 0, 286, 0, 0, 0, 287, 0, 2838 0, 288, 289, 290, 291, 41, 42, 285, 292, 293, 2839 0, 0, 0, 286, 0, 0, 0, 287, 0, 0, 2840 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2841 0, 506, 0, 0, 0, 282, 283, 0, 284, 45, 2842 46, 296, 297, 298, 299, 0, 0, 0, 0, 0, 2843 294, 0, 0, 0, 282, 283, 0, 284, 45, 46, 2844 296, 297, 298, 299, 285, 0, 0, 0, 0, 0, 2845 286, 0, 0, 0, 287, 0, 0, 288, 289, 290, 2846 291, 41, 42, 285, 292, 293, 0, 0, 0, 286, 2847 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2848 41, 42, 0, 292, 293, 0, 0, 511, 0, 0, 2849 0, 0, 0, 0, 0, 45, 46, 296, 297, 298, 2850 299, 0, 0, 0, 0, 0, 514, 0, 0, 0, 2851 0, 0, 0, 0, 45, 46, 296, 297, 298, 299, 2852 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2853 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2854 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2801 2856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802 2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 0, 294, 0, 379, 0, 0, 171, 0, 0, 45, 2804 46, 296, 297, 298, 299, 0, 0, 282, 283, 1057, 2805 284, 1042, 0, 1043, 0, 0, 1044, 1045, 1046, 1047, 2806 1048, 1049, 1050, 1051, 0, 0, 0, 1052, 0, 0, 2807 0, 1053, 1054, 0, 33, 0, 285, 0, 0, 0, 2808 0, 0, 1055, 0, 0, 0, 287, 0, 0, 288, 2809 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2810 0, 0, 0, 0, 282, 283, 0, 284, 0, 0, 2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2812 0, 379, 0, 0, 171, 0, 0, 45, 46, 296, 2813 297, 298, 299, 285, 0, 0, 0, 1057, 0, 286, 2814 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2815 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2816 0, 282, 283, 0, 284, 0, 0, 0, 0, 0, 2817 0, 0, 0, 0, 0, 0, 294, 0, 379, 0, 2818 0, 972, 0, 0, 45, 46, 296, 297, 298, 299, 2819 285, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2820 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2821 292, 293, 0, 0, 0, 0, 0, 0, 282, 283, 2822 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 2823 0, 0, 0, 294, 0, 379, 0, 282, 283, 0, 2824 284, 45, 46, 296, 297, 298, 299, 285, 0, 0, 2825 0, 0, 0, 286, 0, 0, 0, 287, 0, 0, 2826 288, 289, 290, 291, 41, 42, 285, 292, 293, 0, 2827 0, 0, 286, 0, 0, 0, 287, 0, 0, 288, 2828 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2829 294, 0, 379, 0, 282, 283, 0, 284, 709, 46, 2830 296, 297, 298, 299, 0, 0, 0, 0, 0, 294, 2831 0, 379, 0, 282, 283, 0, 284, 344, 46, 296, 2832 297, 298, 299, 285, 0, 0, 0, 0, 0, 286, 2833 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2834 41, 42, 285, 292, 293, 0, 0, 0, 286, 0, 2835 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2836 42, 0, 292, 293, 0, 0, 506, 0, 0, 0, 2837 282, 283, 0, 284, 45, 46, 296, 297, 298, 299, 2838 0, 0, 0, 0, 0, 294, 0, 0, 0, 282, 2839 283, 0, 284, 45, 46, 296, 297, 298, 299, 285, 2840 0, 0, 0, 0, 0, 286, 0, 0, 0, 287, 2841 0, 0, 288, 289, 290, 291, 41, 42, 285, 292, 2842 293, 0, 0, 0, 286, 0, 0, 0, 287, 0, 2843 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 2844 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 2845 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 2846 0, 514, 0, 0, 0, 0, 0, 0, 0, 45, 2847 46, 296, 297, 298, 299, 2, 206, 4, 5, 6, 2858 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2859 174, 175, 40, 0, 0, 0, 0, 0, 0, 41, 2860 42, 205, 2, 206, 4, 5, 6, 7, 8, 9, 2861 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2862 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2863 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2866 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2867 0, 0, 207, 39, 467, 2, 206, 4, 5, 6, 2848 2868 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2849 2869 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2870 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2851 2871 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852 2872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2853 2873 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2854 35, 0, 36, 37, 0, 174, 175, 40, 0, 0, 2855 0, 0, 0, 0, 41, 42, 205, 2, 206, 4, 2874 35, 0, 36, 0, 0, 38, 39, 2, 206, 4, 2856 2875 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2857 2876 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 2860 2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2861 2880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2862 34, 0, 35, 0, 36, 0, 0, 207, 39, 467, 2863 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2864 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2865 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2866 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2869 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2870 38, 39, 2, 206, 4, 5, 6, 7, 8, 9, 2871 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2872 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2873 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2876 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2877 0, 0, 207, 39 2881 34, 0, 35, 0, 36, 0, 0, 207, 39 2878 2882 }; 2879 2883 2880 2884 #define yypact_value_is_default(yystate) \ 2881 ((yystate) == (-13 23))2885 ((yystate) == (-1338)) 2882 2886 2883 2887 #define yytable_value_is_error(yytable_value) \ … … 2886 2890 static const yytype_int16 yycheck[] = 2887 2891 { 2888 0, 1, 186, 43, 239, 185, 204, 0, 43, 219, 2889 43, 116, 185, 521, 534, 185, 1, 875, 186, 0, 2890 1, 185, 757, 51, 647, 603, 750, 185, 0, 1, 2891 281, 621, 32, 750, 1041, 0, 1022, 43, 185, 32, 2892 345, 185, 750, 43, 168, 169, 513, 349, 875, 49, 2893 156, 32, 603, 32, 0, 693, 49, 349, 187, 0, 2894 32, 572, 57, 63, 601, 1322, 66, 32, 43, 69, 2895 63, 0, 1, 66, 696, 63, 69, 1399, 734, 492, 2896 0, 109, 266, 496, 69, 265, 32, 601, 69, 39, 2897 39, 32, 265, 490, 66, 265, 201, 69, 266, 601, 2898 39, 265, 43, 32, 604, 105, 601, 265, 49, 49, 2899 610, 106, 32, 113, 109, 418, 116, 117, 265, 82, 2900 66, 265, 63, 63, 39, 66, 66, 39, 69, 69, 2901 601, 984, 261, 262, 284, 438, 43, 66, 28, 601, 2902 69, 105, 72, 446, 132, 185, 146, 147, 1470, 601, 2903 185, 72, 185, 49, 147, 155, 156, 307, 308, 109, 2904 160, 111, 111, 1420, 39, 787, 82, 160, 72, 364, 2905 109, 39, 111, 368, 1021, 1022, 82, 482, 96, 185, 2906 688, 1034, 906, 1116, 156, 185, 186, 1120, 78, 906, 2907 156, 155, 0, 186, 110, 345, 488, 109, 906, 111, 2908 410, 201, 132, 96, 122, 111, 147, 147, 605, 209, 2909 185, 132, 609, 117, 1041, 64, 209, 113, 109, 160, 2910 160, 221, 406, 218, 32, 265, 109, 110, 221, 122, 2911 265, 381, 265, 630, 109, 256, 111, 634, 406, 239, 2912 1226, 109, 864, 111, 185, 186, 186, 825, 719, 221, 2913 146, 251, 987, 504, 57, 44, 45, 719, 251, 259, 2914 109, 426, 427, 901, 264, 265, 266, 719, 209, 209, 2915 251, 271, 251, 266, 825, 221, 813, 272, 185, 251, 2916 221, 221, 1289, 794, 279, 907, 251, 109, 696, 85, 2917 1276, 396, 221, 1502, 294, 49, 480, 636, 637, 813, 2918 109, 603, 925, 106, 1453, 251, 109, 307, 1053, 1054, 2919 251, 813, 480, 209, 653, 815, 621, 113, 813, 424, 2920 1529, 626, 251, 323, 265, 430, 115, 433, 328, 494, 2921 952, 251, 95, 44, 45, 328, 107, 112, 1487, 116, 2922 1489, 341, 813, 239, 109, 345, 111, 109, 513, 349, 2923 350, 813, 155, 348, 1212, 132, 934, 0, 110, 113, 2924 131, 813, 44, 45, 364, 987, 129, 1473, 368, 131, 2925 365, 371, 711, 1479, 369, 271, 116, 341, 130, 682, 2926 72, 11, 74, 75, 1129, 1212, 228, 328, 328, 32, 2927 130, 83, 84, 1499, 1050, 590, 396, 418, 1504, 114, 2928 550, 551, 552, 114, 350, 247, 406, 371, 349, 1395, 2929 1000, 307, 110, 406, 579, 218, 1038, 438, 116, 933, 2930 526, 109, 114, 111, 424, 446, 426, 427, 1275, 1276, 2931 430, 933, 114, 433, 72, 1442, 110, 632, 933, 110, 2932 72, 746, 1449, 251, 1502, 83, 84, 110, 256, 345, 2933 847, 83, 84, 116, 454, 209, 130, 119, 120, 130, 2934 968, 433, 1289, 802, 1522, 406, 406, 433, 110, 272, 2935 112, 1529, 472, 111, 116, 128, 279, 110, 131, 111, 2936 480, 116, 482, 116, 484, 591, 737, 480, 488, 131, 2937 132, 484, 70, 1500, 494, 73, 1118, 132, 76, 907, 2938 78, 90, 91, 484, 688, 1128, 506, 85, 508, 1009, 2939 1010, 511, 484, 513, 514, 982, 482, 271, 116, 484, 2940 688, 521, 1100, 825, 648, 525, 526, 473, 657, 942, 2941 426, 427, 130, 825, 1387, 1388, 125, 126, 484, 109, 2942 294, 111, 939, 484, 952, 348, 110, 488, 1395, 116, 2943 655, 116, 116, 307, 526, 484, 1178, 1179, 72, 116, 2944 526, 525, 365, 130, 484, 72, 369, 74, 75, 83, 2945 84, 571, 572, 88, 89, 132, 83, 84, 1086, 579, 2946 1403, 72, 3, 1091, 4, 5, 6, 7, 8, 9, 2947 590, 591, 83, 84, 72, 595, 116, 111, 494, 3, 2948 905, 601, 1, 603, 111, 83, 84, 757, 251, 804, 2949 418, 116, 132, 256, 809, 1442, 0, 513, 110, 591, 2950 111, 621, 1449, 0, 116, 591, 626, 622, 628, 432, 2951 438, 109, 632, 1289, 212, 635, 636, 637, 446, 111, 2952 111, 113, 113, 638, 112, 109, 938, 111, 116, 69, 2953 116, 71, 862, 653, 116, 655, 109, 652, 130, 130, 2954 601, 682, 603, 635, 636, 637, 132, 109, 116, 111, 2955 132, 591, 882, 1500, 1497, 116, 484, 623, 116, 1502, 2956 116, 653, 131, 579, 132, 685, 72, 708, 688, 116, 2957 76, 132, 116, 109, 132, 1000, 132, 83, 84, 1522, 2958 454, 279, 897, 72, 810, 132, 1529, 1363, 132, 944, 2959 1118, 711, 712, 713, 83, 84, 110, 109, 116, 719, 2960 720, 116, 116, 109, 908, 621, 906, 92, 93, 110, 2961 626, 117, 118, 906, 132, 116, 906, 132, 733, 711, 2962 908, 109, 906, 110, 868, 745, 746, 688, 906, 116, 2963 750, 751, 506, 699, 508, 109, 109, 511, 111, 906, 2964 514, 1383, 906, 110, 117, 118, 294, 713, 112, 116, 2965 1178, 1179, 116, 109, 352, 418, 354, 1399, 719, 720, 2966 746, 745, 1506, 109, 112, 111, 1306, 590, 116, 1506, 2967 1446, 109, 1448, 111, 794, 438, 109, 112, 1506, 117, 2968 118, 116, 802, 446, 804, 72, 806, 74, 75, 809, 2969 810, 110, 109, 813, 111, 1013, 83, 84, 110, 622, 2970 117, 118, 72, 110, 116, 825, 76, 110, 112, 116, 2971 802, 110, 116, 83, 84, 638, 110, 116, 810, 482, 2972 110, 484, 1147, 112, 810, 1501, 116, 1469, 1470, 652, 2973 1000, 115, 116, 252, 10, 11, 12, 13, 14, 109, 2974 806, 111, 110, 111, 442, 1116, 109, 117, 118, 1120, 2975 1121, 110, 813, 117, 682, 875, 110, 116, 3, 123, 2976 124, 110, 116, 39, 825, 10, 11, 12, 13, 14, 2977 810, 1041, 58, 59, 875, 110, 110, 897, 426, 427, 2978 708, 116, 1086, 875, 904, 905, 906, 1091, 908, 110, 2979 110, 67, 1036, 109, 39, 72, 116, 115, 1086, 76, 2980 920, 1226, 109, 1091, 111, 109, 83, 84, 1123, 875, 2981 733, 685, 64, 933, 934, 110, 115, 116, 938, 905, 2982 904, 116, 67, 943, 944, 72, 875, 74, 75, 76, 2983 0, 1, 109, 44, 45, 875, 83, 84, 943, 132, 2984 117, 118, 943, 110, 66, 906, 109, 908, 968, 116, 2985 109, 943, 111, 109, 1482, 1383, 553, 554, 506, 29, 2986 30, 112, 32, 511, 132, 1236, 514, 506, 109, 508, 2987 111, 1399, 511, 43, 911, 514, 913, 938, 114, 49, 2988 1000, 555, 556, 1108, 114, 114, 72, 57, 74, 75, 2989 76, 561, 562, 63, 943, 117, 66, 83, 84, 69, 2990 132, 1021, 1022, 1531, 132, 4, 5, 6, 7, 8, 2991 9, 109, 82, 83, 557, 558, 559, 560, 82, 682, 2992 568, 1041, 4, 5, 6, 7, 8, 9, 944, 1021, 2993 1022, 85, 86, 87, 109, 1021, 106, 1003, 160, 109, 2994 1041, 1469, 1470, 109, 112, 708, 116, 875, 467, 1041, 2995 82, 33, 1323, 118, 127, 109, 1327, 111, 94, 113, 2996 114, 1081, 109, 110, 111, 128, 1086, 109, 110, 111, 2997 69, 1091, 71, 131, 897, 1041, 111, 147, 109, 109, 2998 1100, 110, 110, 746, 1000, 155, 3, 69, 1108, 71, 2999 160, 112, 1041, 10, 11, 12, 13, 14, 112, 221, 3000 112, 1041, 110, 1123, 109, 110, 111, 110, 110, 528, 3001 110, 109, 110, 111, 533, 185, 186, 72, 109, 74, 3002 75, 76, 39, 112, 111, 1086, 114, 1147, 83, 84, 3003 1091, 201, 116, 132, 131, 733, 114, 259, 114, 209, 3004 109, 112, 264, 58, 59, 60, 920, 110, 218, 110, 3005 67, 221, 112, 1424, 109, 112, 111, 130, 228, 112, 3006 112, 1147, 117, 118, 583, 1249, 1250, 1251, 130, 1189, 3007 1190, 130, 116, 243, 29, 130, 110, 247, 110, 112, 3008 115, 251, 252, 114, 112, 1190, 110, 116, 1208, 1190, 3009 115, 109, 1212, 115, 110, 265, 266, 1189, 1190, 110, 3010 130, 110, 272, 116, 110, 132, 1226, 3, 110, 279, 3011 1230, 1212, 875, 1041, 10, 11, 12, 13, 14, 110, 3012 1212, 116, 110, 1189, 1208, 1230, 110, 110, 350, 1230, 3013 110, 110, 110, 110, 1, 654, 110, 656, 1230, 110, 3014 1189, 1190, 905, 39, 110, 110, 1212, 110, 72, 110, 3015 74, 75, 76, 115, 1379, 1275, 1276, 29, 328, 83, 3016 84, 1516, 131, 1212, 1284, 110, 130, 116, 875, 1289, 3017 112, 67, 1212, 112, 110, 110, 116, 110, 348, 349, 3018 130, 1230, 49, 1275, 1276, 109, 109, 706, 1289, 1275, 3019 116, 112, 1284, 117, 118, 365, 114, 1289, 110, 369, 3020 110, 110, 1322, 1507, 112, 116, 1506, 1081, 110, 431, 3021 380, 116, 116, 1506, 55, 110, 1506, 1322, 1284, 1507, 3022 110, 1322, 1506, 1289, 112, 109, 396, 1531, 1506, 109, 3023 1322, 109, 109, 109, 132, 1284, 406, 130, 105, 1506, 3024 1289, 112, 1506, 1531, 110, 115, 113, 110, 110, 1289, 3025 115, 473, 110, 128, 424, 115, 97, 1482, 114, 1379, 3026 430, 112, 432, 1378, 132, 112, 116, 112, 110, 72, 3027 110, 74, 75, 1322, 110, 1395, 110, 112, 1041, 146, 3028 83, 84, 112, 112, 1212, 1208, 112, 72, 155, 74, 3029 75, 76, 112, 72, 112, 74, 75, 467, 83, 84, 3030 1420, 47, 472, 1395, 83, 84, 109, 132, 132, 132, 3031 480, 114, 112, 132, 484, 1420, 132, 115, 488, 1420, 3032 110, 491, 1442, 493, 109, 130, 115, 110, 1420, 1449, 3033 109, 1451, 112, 1453, 115, 114, 112, 1044, 205, 112, 3034 112, 1442, 209, 112, 110, 110, 1506, 109, 1449, 112, 3035 1442, 1506, 193, 1506, 112, 109, 109, 1449, 528, 60, 3036 110, 1289, 1482, 533, 132, 110, 114, 1487, 109, 1489, 3037 112, 1420, 239, 595, 112, 216, 1442, 110, 112, 110, 3038 1500, 96, 96, 1449, 1147, 226, 1506, 1507, 109, 109, 3039 464, 115, 132, 1442, 1507, 130, 1516, 110, 110, 1500, 3040 1449, 623, 1442, 110, 271, 110, 628, 274, 1500, 1449, 3041 116, 1531, 42, 583, 132, 132, 110, 110, 1531, 66, 3042 590, 96, 96, 132, 110, 110, 110, 294, 75, 132, 3043 132, 601, 110, 603, 1500, 115, 112, 132, 115, 958, 3044 307, 112, 109, 132, 110, 1506, 30, 115, 110, 1212, 3045 132, 1500, 622, 294, 110, 1378, 110, 667, 1057, 563, 3046 1500, 980, 978, 1226, 565, 984, 1212, 1365, 638, 564, 3047 117, 464, 566, 643, 341, 567, 1470, 699, 345, 1541, 3048 1299, 1327, 652, 1121, 654, 655, 656, 1072, 1449, 685, 3049 685, 713, 913, 698, 66, 1091, 921, 364, 82, 83, 3050 1516, 368, 583, 972, 371, 1212, 868, 723, 649, 940, 3051 82, 1230, 484, 160, 1442, 1034, 0, 1, 688, 733, 3052 571, 1449, 692, 571, 694, 571, 1289, 72, 698, 74, 3053 75, 76, -1, -1, -1, -1, 706, -1, 83, 84, 3054 -1, -1, -1, 1191, 1192, 117, 1194, -1, 32, 719, 3055 720, -1, -1, 1201, -1, 1203, -1, -1, -1, 426, 3056 427, -1, -1, 733, 109, 49, -1, 10, 11, 12, 3057 13, 14, 1500, -1, 221, -1, -1, 1451, -1, 1453, 3058 -1, -1, -1, -1, 806, 69, -1, 454, 160, -1, 3059 85, 86, 87, -1, -1, -1, 39, 671, 1305, -1, 3060 467, -1, 443, -1, -1, -1, -1, 10, 11, 12, 3061 13, 14, 259, 1487, 109, 1489, 111, 264, 113, 114, 3062 -1, 105, -1, -1, 67, 492, -1, 494, 469, 496, 3063 -1, -1, 279, -1, -1, -1, 39, -1, -1, 506, 3064 -1, 508, -1, 813, 511, -1, 513, 514, -1, 221, 3065 1357, -1, -1, 1360, -1, 825, -1, -1, 525, 243, 3066 -1, -1, -1, 147, 67, 506, 109, -1, 111, -1, 3067 511, 155, 156, 514, 117, 118, -1, -1, 671, 1442, 3068 -1, -1, -1, -1, -1, -1, 1449, 259, -1, -1, 3069 -1, -1, 264, -1, -1, -1, 1403, -1, 868, -1, 3070 -1, 1408, 186, 350, 874, -1, 109, -1, 111, -1, 3071 -1, 1359, 579, -1, 117, 118, 790, 201, -1, -1, 3072 204, 205, -1, 590, -1, 209, 800, 897, -1, 1436, 3073 1249, 1250, 1251, -1, -1, -1, 906, 1500, 908, -1, 3074 814, -1, -1, -1, -1, 915, 230, -1, -1, -1, 3075 234, -1, 236, -1, 621, -1, -1, -1, -1, 626, 3076 -1, 245, -1, -1, -1, 632, 0, 251, 938, -1, 3077 -1, -1, 256, -1, -1, -1, -1, -1, 350, -1, 3078 -1, 1003, 266, -1, 431, -1, -1, -1, 958, -1, 3079 274, 10, 11, 12, 13, 14, 380, 790, 32, -1, 3080 -1, 448, 972, -1, -1, -1, -1, 800, -1, -1, 3081 980, -1, -1, 1520, 984, -1, -1, -1, 685, 1526, 3082 39, 814, -1, -1, -1, -1, 473, -1, -1, 670, 3083 1537, -1, 671, -1, 1541, 69, -1, -1, 679, -1, 3084 -1, -1, 683, -1, -1, -1, -1, -1, 67, -1, 3085 -1, 72, -1, 74, 75, 76, 723, 341, -1, 431, 3086 -1, 345, 83, 84, 1034, -1, -1, 351, 1387, 1388, 3087 -1, -1, -1, -1, -1, -1, -1, -1, 745, -1, 3088 364, -1, -1, -1, 368, -1, -1, 371, 109, -1, 3089 109, -1, 111, -1, -1, -1, 117, 118, 117, 118, 3090 -1, 473, 1072, -1, -1, -1, 1425, 491, -1, 493, 3091 -1, -1, -1, -1, -1, -1, 1086, -1, -1, -1, 3092 -1, 1091, 156, 97, 98, 99, 100, 101, 102, 103, 3093 104, 105, 106, 107, 418, -1, -1, 804, 1108, -1, 3094 -1, -1, 809, -1, 1018, 1019, -1, -1, 595, 433, 3095 -1, 790, -1, -1, 438, -1, -1, 131, -1, -1, 3096 -1, 800, 446, -1, 1483, -1, -1, 1189, -1, -1, 3097 -1, -1, -1, 1492, -1, 814, 623, -1, -1, -1, 3098 464, 628, 72, 467, 74, 75, 76, -1, -1, -1, 3099 -1, -1, -1, 83, 84, -1, 230, -1, 482, -1, 3100 484, -1, 1076, 1077, -1, -1, -1, -1, 492, -1, 3101 -1, -1, 496, -1, -1, 1185, -1, 251, -1, 109, 3102 -1, 111, 256, 595, -1, 1018, 1019, 117, 118, -1, 3103 897, -1, -1, -1, -1, -1, -1, 904, 1208, -1, 3104 -1, 525, 526, -1, -1, -1, -1, -1, -1, -1, 3105 -1, 623, 699, 920, -1, -1, 628, -1, 899, 643, 3106 -1, -1, 1284, 0, -1, -1, 713, -1, -1, -1, 3107 -1, -1, -1, -1, -1, 942, 943, 944, -1, 1249, 3108 1250, 1251, -1, 1076, 1077, -1, 733, -1, 572, 72, 3109 -1, 74, 75, 76, -1, 32, -1, -1, -1, -1, 3110 83, 84, -1, -1, -1, -1, 590, 591, 692, -1, 3111 694, -1, -1, -1, 698, -1, -1, 351, 72, 603, 3112 74, 75, 76, -1, -1, -1, 109, 699, 111, 83, 3113 84, -1, 69, 1000, 117, 118, -1, 621, -1, -1, 3114 -1, 713, 626, -1, -1, -1, -1, -1, 632, -1, 3115 1224, 635, 636, 637, -1, 109, -1, 111, -1, 806, 3116 -1, -1, -1, 117, 118, -1, -1, -1, -1, 653, 3117 -1, -1, -1, 26, 27, 28, -1, -1, -1, 1018, 3118 1019, -1, 1256, -1, 418, -1, -1, 671, -1, -1, 3119 1264, 1265, 1266, -1, -1, -1, -1, -1, 682, 433, 3120 -1, -1, -1, -1, 438, -1, -1, -1, 1378, 1379, 3121 -1, 1052, 446, -1, 1081, -1, -1, 1387, 1388, 156, 3122 -1, -1, -1, -1, 708, -1, -1, 711, -1, -1, 3123 464, 1224, -1, -1, 806, -1, 720, 1076, 1077, 723, 3124 -1, -1, -1, -1, -1, 98, -1, 100, 482, -1, 3125 484, -1, -1, -1, 1328, 1425, 1123, -1, -1, -1, 3126 -1, 745, 746, 1256, -1, -1, -1, 751, -1, -1, 3127 -1, 1264, 1265, 1266, -1, -1, -1, -1, -1, -1, 3128 -1, -1, -1, -1, 868, -1, -1, -1, -1, -1, 3129 874, -1, 526, -1, -1, -1, -1, 26, 27, 28, 3130 -1, -1, -1, -1, -1, -1, 790, -1, -1, -1, 3131 -1, -1, 1482, 1483, 251, -1, 800, -1, 802, 256, 3132 804, -1, 1492, 807, -1, 809, 810, -1, 181, -1, 3133 814, 915, -1, -1, -1, 1328, 1506, 1507, 191, 192, 3134 824, 1208, -1, 196, -1, 198, 199, -1, -1, -1, 3135 -1, -1, -1, -1, -1, -1, 1003, 591, -1, -1, 3136 -1, 1531, -1, 1230, -1, -1, -1, -1, -1, 98, 3137 -1, 100, -1, -1, -1, 0, -1, -1, -1, -1, 3138 -1, -1, -1, -1, -1, -1, -1, -1, 972, -1, 3139 -1, 875, -1, -1, -1, -1, 125, -1, -1, -1, 3140 -1, 635, 636, 637, -1, -1, -1, 32, -1, -1, 3141 -1, -1, -1, 897, 351, -1, -1, 1256, -1, 653, 3142 904, 905, -1, -1, 908, 1264, 1265, 1266, -1, -1, 3143 -1, 1003, -1, -1, -1, -1, -1, 671, -1, -1, 3144 -1, -1, -1, -1, 69, -1, -1, -1, 682, -1, 3145 934, -1, 181, -1, -1, 1322, -1, 1298, 942, 943, 3146 189, -1, 191, 192, -1, -1, -1, 196, -1, 198, 3147 199, -1, -1, -1, 708, -1, -1, 711, -1, -1, 3148 -1, 418, -1, -1, -1, -1, -1, -1, 1072, 1328, 3149 -1, -1, -1, -1, -1, -1, 433, -1, -1, -1, 3150 -1, 438, -1, -1, -1, -1, -1, -1, -1, 446, 3151 -1, -1, 746, -1, -1, -1, 1000, 10, 11, 12, 3152 13, 14, -1, -1, -1, -1, -1, 464, -1, 1013, 3153 -1, 156, -1, -1, 1018, 1019, -1, 1021, 1022, 268, 3154 -1, -1, 1189, -1, -1, 482, 39, 484, -1, -1, 3155 -1, -1, -1, 1420, -1, -1, 790, 1041, -1, -1, 3156 -1, -1, -1, -1, -1, -1, 800, -1, 802, -1, 3157 -1, -1, -1, 807, 67, -1, 810, -1, -1, 72, 3158 814, 74, 75, 76, 1451, -1, 1453, -1, -1, 526, 3159 83, 84, 1076, 1077, -1, -1, -1, -1, -1, -1, 3160 -1, 1185, -1, -1, -1, -1, -1, -1, -1, 1450, 3161 -1, 1452, -1, -1, -1, -1, 109, 1189, 111, -1, 3162 1487, -1, 1489, -1, 117, 118, 251, -1, -1, -1, 3163 -1, 256, -1, -1, -1, -1, -1, 1284, -1, 1123, 3164 -1, 875, -1, -1, -1, 1486, -1, 1488, -1, 1516, 3165 -1, -1, -1, -1, 591, -1, -1, -1, -1, -1, 3166 -1, -1, -1, 1147, -1, -1, -1, -1, -1, 0, 3167 -1, 905, -1, -1, -1, -1, -1, 189, -1, -1, 3168 -1, -1, -1, -1, 196, -1, -1, -1, -1, 1530, 3169 -1, 1532, -1, -1, -1, -1, -1, -1, 635, 636, 3170 637, 32, -1, -1, 1545, 1546, 1190, -1, -1, -1, 3171 -1, -1, 1284, -1, -1, -1, 653, -1, -1, -1, 3172 -1, -1, 575, 576, 1208, -1, 351, -1, 1212, -1, 3173 -1, -1, -1, -1, 671, -1, -1, -1, 69, -1, 3174 1224, -1, 1226, -1, -1, 682, 1230, -1, -1, -1, 3175 -1, 604, -1, -1, 607, 608, 268, 610, -1, 612, 3176 613, -1, -1, -1, 617, 618, -1, -1, -1, -1, 3177 -1, 708, 1256, -1, 711, -1, -1, -1, -1, -1, 3178 1264, 1265, 1266, -1, 1018, 1019, -1, 1021, 1022, -1, 3179 -1, 1275, 1276, 418, -1, -1, -1, -1, 10, 11, 3180 12, 13, 14, -1, -1, 1289, -1, 1041, 433, 746, 3181 -1, 323, -1, 438, -1, -1, -1, -1, -1, 331, 3182 -1, 446, 334, -1, -1, 156, -1, 39, -1, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 1322, 464, 3184 -1, -1, 1076, 1077, 1328, -1, 575, 576, -1, -1, 3185 -1, -1, -1, 790, -1, 67, -1, 482, -1, 484, 3186 72, -1, -1, 800, 76, 802, -1, -1, -1, -1, 3187 807, 83, 84, 810, -1, 604, -1, 814, 607, 608, 3188 -1, 610, -1, 612, 613, -1, 398, -1, 617, 618, 3189 402, -1, -1, -1, -1, -1, -1, 109, -1, -1, 3190 -1, 526, 755, 756, -1, 117, 118, -1, -1, -1, 3191 -1, 1395, -1, 1147, -1, -1, -1, -1, -1, -1, 3192 251, -1, -1, -1, -1, 256, -1, -1, -1, -1, 3193 -1, -1, -1, -1, -1, -1, 1420, -1, 875, -1, 2892 0, 1, 239, 43, 185, 116, 534, 0, 204, 185, 2893 43, 185, 185, 281, 185, 43, 521, 1, 601, 185, 2894 185, 603, 168, 169, 105, 750, 0, 1, 219, 621, 2895 349, 876, 32, 345, 49, 750, 0, 693, 603, 32, 2896 156, 750, 513, 43, 1023, 757, 647, 572, 186, 49, 2897 1325, 985, 186, 492, 189, 0, 49, 496, 32, 1022, 2898 1023, 196, 156, 63, 32, 1402, 66, 601, 32, 69, 2899 63, 0, 28, 66, 155, 187, 69, 109, 601, 39, 2900 85, 43, 601, 0, 265, 69, 57, 32, 349, 265, 2901 201, 265, 265, 43, 265, 69, 39, 601, 113, 265, 2902 265, 1035, 63, 32, 51, 105, 364, 256, 113, 418, 2903 368, 601, 1042, 113, 39, 32, 116, 117, 72, 696, 2904 43, 109, 78, 111, 604, 601, 109, 876, 266, 438, 2905 610, 146, 266, 268, 490, 106, 1473, 446, 109, 96, 2906 39, 734, 72, 426, 427, 185, 146, 147, 1423, 261, 2907 262, 111, 185, 1456, 147, 155, 156, 185, 1054, 1055, 2908 160, 95, 109, 109, 110, 122, 109, 160, 111, 64, 2909 482, 132, 0, 1, 0, 72, 82, 96, 132, 72, 2910 636, 637, 907, 688, 284, 185, 186, 1490, 323, 1492, 2911 83, 84, 907, 186, 209, 129, 331, 653, 907, 334, 2912 82, 201, 132, 122, 32, 111, 32, 307, 308, 209, 2913 109, 494, 111, 1117, 109, 719, 209, 1121, 111, 410, 2914 117, 221, 876, 185, 239, 265, 294, 488, 221, 719, 2915 513, 814, 265, 39, 1130, 185, 504, 265, 66, 239, 2916 66, 69, 11, 719, 826, 345, 902, 218, 39, 605, 2917 1229, 251, 1505, 609, 128, 711, 271, 131, 251, 259, 2918 341, 826, 185, 398, 264, 265, 266, 402, 406, 418, 2919 795, 271, 406, 266, 630, 109, 988, 251, 634, 1532, 2920 814, 381, 39, 251, 603, 396, 116, 251, 1406, 438, 2921 371, 814, 307, 1042, 294, 814, 579, 446, 44, 45, 2922 1279, 272, 107, 109, 112, 111, 251, 307, 279, 621, 2923 814, 256, 82, 424, 626, 1278, 1279, 433, 109, 430, 2924 111, 109, 251, 323, 814, 926, 131, 256, 328, 112, 2925 345, 908, 590, 116, 251, 328, 816, 228, 814, 433, 2926 110, 341, 480, 131, 479, 345, 480, 803, 114, 349, 2927 350, 934, 109, 935, 111, 3, 247, 70, 426, 427, 2928 73, 110, 1292, 76, 364, 78, 116, 3, 368, 115, 2929 1215, 371, 85, 682, 632, 49, 953, 348, 44, 45, 2930 130, 130, 1500, 44, 45, 90, 91, 1505, 482, 116, 2931 72, 1045, 72, 221, 365, 221, 396, 79, 369, 79, 2932 934, 83, 84, 83, 84, 72, 406, 1525, 110, 1001, 2933 526, 426, 427, 406, 1532, 934, 83, 84, 112, 1398, 2934 125, 126, 116, 251, 424, 251, 426, 427, 130, 111, 2935 430, 111, 526, 433, 746, 1398, 571, 572, 506, 113, 2936 1505, 110, 109, 511, 525, 116, 514, 109, 114, 111, 2937 550, 551, 552, 114, 454, 0, 1390, 1391, 1051, 130, 2938 1525, 130, 464, 109, 969, 116, 1215, 1532, 1252, 737, 2939 1254, 1255, 472, 418, 72, 591, 74, 75, 0, 494, 2940 480, 132, 482, 109, 484, 83, 84, 480, 488, 418, 2941 110, 484, 848, 438, 494, 109, 116, 591, 513, 212, 2942 568, 446, 648, 109, 943, 111, 506, 826, 508, 438, 2943 484, 511, 983, 513, 514, 1445, 114, 446, 131, 1101, 2944 484, 521, 1452, 658, 350, 525, 526, 662, 1129, 72, 2945 1010, 1011, 111, 682, 113, 209, 79, 119, 120, 484, 2946 83, 84, 1119, 1292, 655, 657, 72, 805, 74, 75, 2947 688, 130, 810, 482, 688, 484, 112, 83, 84, 708, 2948 116, 1215, 116, 116, 579, 826, 279, 484, 111, 116, 2949 116, 571, 572, 1503, 111, 110, 113, 130, 132, 579, 2950 109, 116, 1087, 109, 940, 132, 132, 1092, 114, 109, 2951 590, 591, 116, 130, 906, 595, 1476, 271, 109, 110, 2952 111, 601, 1482, 603, 1181, 1182, 621, 72, 132, 74, 2953 75, 626, 4, 5, 6, 7, 8, 9, 83, 84, 2954 294, 621, 1502, 110, 117, 112, 626, 1507, 628, 116, 2955 123, 124, 632, 307, 109, 635, 636, 637, 72, 352, 2956 898, 354, 76, 116, 131, 132, 111, 473, 109, 83, 2957 84, 622, 746, 653, 1308, 655, 484, 757, 484, 132, 2958 795, 0, 1, 912, 745, 914, 116, 638, 110, 671, 2959 116, 116, 863, 110, 591, 109, 112, 69, 939, 71, 2960 116, 652, 132, 117, 118, 685, 132, 132, 688, 1001, 2961 29, 30, 883, 32, 109, 811, 1445, 110, 116, 1292, 2962 116, 110, 110, 1452, 43, 116, 1360, 116, 945, 1363, 2963 49, 711, 712, 713, 132, 110, 132, 811, 57, 719, 2964 720, 132, 116, 869, 63, 110, 907, 66, 109, 442, 2965 69, 907, 116, 907, 907, 112, 907, 682, 132, 116, 2966 132, 907, 907, 82, 83, 745, 746, 72, 132, 30, 2967 750, 751, 1406, 682, 1503, 110, 112, 1411, 83, 84, 2968 109, 116, 733, 708, 85, 86, 87, 106, 88, 89, 2969 109, 909, 115, 1366, 109, 909, 111, 116, 913, 708, 2970 454, 1309, 117, 118, 1509, 1439, 92, 93, 109, 791, 2971 111, 132, 113, 114, 1509, 795, 109, 623, 110, 801, 2972 1509, 82, 83, 803, 116, 805, 64, 807, 147, 1386, 2973 810, 811, 906, 815, 814, 109, 155, 746, 1014, 112, 2974 109, 160, 111, 132, 905, 1402, 826, 114, 117, 118, 2975 115, 116, 506, 72, 508, 74, 75, 511, 1150, 114, 2976 514, 109, 110, 111, 83, 84, 185, 186, 72, 1117, 2977 74, 75, 76, 1121, 1122, 990, 1449, 114, 1451, 83, 2978 84, 110, 201, 506, 109, 508, 1124, 116, 511, 1523, 2979 209, 514, 1007, 699, 110, 1529, 876, 110, 111, 218, 2980 116, 72, 221, 74, 75, 109, 1540, 713, 132, 228, 2981 1544, 1037, 83, 84, 811, 1472, 1473, 109, 898, 111, 2982 132, 1001, 876, 72, 243, 905, 906, 907, 247, 909, 2983 79, 1504, 251, 252, 83, 84, 110, 1229, 109, 58, 2984 59, 921, 116, 114, 44, 45, 265, 266, 1022, 82, 2985 945, 876, 110, 272, 934, 935, 112, 110, 116, 939, 2986 279, 109, 1042, 116, 944, 945, 110, 876, 109, 1087, 2987 1085, 110, 116, 1087, 1092, 115, 116, 116, 1092, 876, 2988 944, 72, 243, 74, 75, 76, 109, 1, 111, 969, 2989 944, 1239, 83, 84, 117, 118, 110, 906, 110, 127, 2990 1485, 807, 116, 82, 116, 3, 1001, 553, 554, 328, 2991 1125, 110, 10, 11, 12, 13, 14, 116, 1109, 561, 2992 562, 1001, 10, 11, 12, 13, 14, 110, 110, 348, 2993 349, 685, 118, 116, 116, 49, 128, 1019, 1020, 110, 2994 733, 39, 1022, 1023, 94, 116, 365, 555, 556, 1534, 2995 369, 39, 10, 11, 12, 13, 14, 110, 109, 110, 2996 111, 380, 1042, 116, 3, 109, 110, 111, 876, 67, 2997 876, 10, 11, 12, 13, 14, 1150, 396, 1326, 67, 2998 111, 39, 1330, 557, 558, 559, 560, 406, 1042, 131, 2999 109, 105, 58, 59, 60, 1077, 1078, 109, 109, 113, 3000 39, 109, 1082, 111, 109, 424, 111, 1087, 109, 67, 3001 111, 430, 1092, 432, 72, 112, 112, 1042, 76, 380, 3002 109, 1101, 111, 110, 110, 83, 84, 112, 67, 1109, 3003 110, 72, 146, 1042, 110, 76, 944, 110, 110, 0, 3004 1, 155, 83, 84, 1124, 1042, 1194, 1195, 467, 1197, 3005 1211, 109, 109, 472, 111, 111, 1204, 0, 1206, 117, 3006 118, 480, 112, 114, 116, 484, 131, 114, 109, 488, 3007 1150, 32, 491, 110, 493, 109, 117, 118, 114, 1427, 3008 112, 4, 5, 6, 7, 8, 9, 110, 112, 32, 3009 72, 205, 74, 75, 76, 209, 112, 112, 1004, 112, 3010 43, 83, 84, 130, 1278, 66, 49, 116, 69, 528, 3011 33, 130, 1192, 1193, 533, 29, 130, 110, 110, 1, 3012 63, 112, 110, 66, 114, 239, 69, 109, 112, 1193, 3013 491, 1211, 493, 116, 1042, 1215, 1042, 115, 115, 1193, 3014 72, 1150, 74, 75, 76, 1227, 69, 115, 71, 1229, 3015 109, 83, 84, 1233, 110, 130, 132, 271, 110, 116, 3016 274, 1215, 110, 110, 583, 3, 110, 921, 110, 1233, 3017 116, 590, 10, 11, 12, 13, 14, 1259, 115, 1233, 3018 294, 110, 601, 110, 603, 1267, 1268, 1269, 110, 110, 3019 1215, 1382, 110, 307, 110, 156, 29, 110, 1278, 1279, 3020 110, 39, 1519, 622, 147, 110, 1215, 1287, 110, 110, 3021 110, 110, 1292, 130, 1362, 110, 131, 160, 1215, 638, 3022 1229, 112, 116, 112, 643, 110, 110, 341, 116, 67, 3023 110, 345, 130, 652, 109, 654, 655, 656, 1292, 116, 3024 114, 112, 185, 186, 110, 1325, 110, 110, 1509, 1331, 3025 364, 116, 112, 1509, 368, 1509, 1509, 371, 1509, 110, 3026 221, 1325, 116, 1509, 1509, 110, 209, 1292, 116, 688, 3027 110, 1325, 109, 692, 109, 694, 112, 109, 221, 698, 3028 109, 109, 643, 1292, 1192, 1193, 1192, 706, 130, 112, 3029 251, 132, 1510, 115, 1485, 1292, 1510, 464, 110, 110, 3030 719, 720, 1382, 110, 128, 115, 115, 1215, 251, 1215, 3031 114, 112, 426, 427, 733, 72, 1534, 132, 1398, 76, 3032 1534, 49, 265, 110, 112, 1233, 83, 84, 1082, 112, 3033 1381, 692, 116, 694, 110, 63, 110, 698, 66, 110, 3034 454, 69, 112, 1423, 112, 112, 110, 112, 47, 112, 3035 112, 132, 109, 467, 111, 132, 115, 132, 110, 1423, 3036 117, 118, 115, 132, 110, 1445, 132, 115, 112, 1423, 3037 252, 112, 1452, 112, 1454, 130, 1456, 112, 492, 1287, 3038 494, 1287, 496, 112, 1292, 328, 1292, 112, 110, 1509, 3039 110, 1445, 506, 112, 508, 814, 1509, 511, 1452, 513, 3040 514, 1509, 112, 109, 109, 1485, 349, 826, 109, 60, 3041 1490, 525, 1492, 110, 110, 109, 114, 1325, 132, 147, 3042 1445, 112, 112, 1503, 1519, 110, 112, 1452, 110, 1509, 3043 1510, 96, 160, 96, 109, 109, 1445, 1510, 115, 1519, 3044 57, 110, 110, 1452, 55, 132, 110, 42, 1445, 1503, 3045 869, 110, 0, 1, 1534, 1452, 875, 130, 186, 116, 3046 671, 1534, 132, 406, 110, 579, 4, 5, 6, 7, 3047 8, 9, 433, 110, 132, 96, 590, 96, 1503, 898, 3048 132, 209, 110, 132, 32, 110, 97, 132, 907, 106, 3049 909, 115, 109, 221, 1503, 110, 110, 916, 85, 86, 3050 87, 49, 112, 112, 671, 132, 1503, 621, 869, 109, 3051 132, 115, 626, 115, 875, 1423, 110, 110, 632, 132, 3052 939, 69, 109, 484, 111, 110, 113, 114, 110, 667, 3053 1058, 69, 563, 71, 564, 979, 565, 1445, 155, 1445, 3054 959, 484, 567, 1215, 1452, 488, 1452, 72, 566, 74, 3055 75, 76, 1473, 1368, 973, 916, 1544, 105, 83, 84, 3056 1122, 1330, 981, 1302, 1073, 526, 985, 685, 1452, 685, 3057 914, 685, 1092, 698, 973, 66, 922, 583, 869, 649, 3058 791, 941, 193, 723, 109, 467, 111, 484, 1233, -1, 3059 801, 82, 117, 118, 733, 1503, -1, 1503, 571, 147, 3060 328, 218, 571, -1, 815, 216, 571, 155, 156, 723, 3061 -1, -1, 973, -1, -1, 226, 1035, -1, -1, -1, 3062 -1, -1, -1, -1, 791, -1, 117, -1, -1, -1, 3063 591, 745, -1, -1, 801, -1, -1, -1, 186, -1, 3064 -1, -1, -1, -1, -1, -1, 528, -1, 815, -1, 3065 -1, 533, -1, 201, 1073, 272, 204, 205, 601, -1, 3066 603, 209, 279, -1, -1, -1, -1, -1, 1087, 160, 3067 -1, -1, -1, 1092, 635, 636, 637, -1, 406, -1, 3068 -1, -1, 230, 294, -1, -1, 234, -1, 236, -1, 3069 1109, 805, 653, -1, -1, -1, 810, 245, -1, -1, 3070 1454, 583, 1456, 251, -1, -1, -1, -1, 256, -1, 3071 696, -1, 1073, -1, -1, -1, -1, -1, 266, -1, 3072 -1, 72, -1, 74, 75, 76, 274, -1, -1, -1, 3073 221, 348, 83, 84, -1, -1, 1490, -1, 1492, -1, 3074 -1, -1, -1, -1, -1, 688, -1, -1, 365, -1, 3075 711, -1, 369, -1, -1, -1, 0, -1, 109, -1, 3076 111, 10, 11, 12, 13, 14, 117, 118, 259, 1188, 3077 -1, -1, 654, 264, 656, -1, 719, 720, -1, 130, 3078 -1, -1, -1, -1, 898, -1, -1, -1, 32, -1, 3079 39, 905, 1211, 341, -1, -1, -1, 345, -1, -1, 3080 -1, -1, 788, 351, -1, -1, -1, 921, 1019, 1020, 3081 -1, -1, -1, -1, -1, 432, 364, -1, 67, -1, 3082 368, -1, -1, 371, 706, 69, -1, 1188, -1, 943, 3083 944, 945, 443, 1252, -1, 1254, 1255, -1, -1, -1, 3084 -1, -1, 803, -1, 10, 11, 12, 13, 14, -1, 3085 811, -1, 1019, 1020, -1, -1, -1, -1, 469, 350, 3086 109, -1, 111, -1, -1, -1, 1077, 1078, 117, 118, 3087 418, 814, -1, 39, -1, -1, -1, -1, -1, 865, 3088 -1, -1, -1, 826, -1, 433, -1, 1001, -1, -1, 3089 438, -1, -1, -1, -1, 506, -1, -1, 446, -1, 3090 511, 67, -1, 514, -1, -1, -1, -1, -1, -1, 3091 1077, 1078, 156, -1, -1, 876, 464, -1, -1, 467, 3092 -1, -1, 908, -1, 10, 11, 12, 13, 14, -1, 3093 -1, -1, -1, -1, 482, -1, 484, -1, -1, -1, 3094 431, -1, -1, 109, 492, 111, -1, -1, 496, -1, 3095 -1, 117, 118, 39, -1, -1, -1, -1, -1, -1, 3096 -1, -1, 1381, 1382, 907, -1, 909, 953, 1082, -1, 3097 -1, 1390, 1391, 590, -1, -1, -1, 525, 526, -1, 3098 -1, 67, 473, 944, -1, -1, 230, -1, -1, -1, 3099 -1, -1, -1, -1, -1, -1, 939, -1, -1, -1, 3100 -1, -1, 988, -1, -1, 622, -1, 251, -1, 1428, 3101 1124, -1, 256, -1, -1, -1, -1, 0, -1, -1, 3102 -1, 638, -1, 109, 572, 111, -1, -1, -1, -1, 3103 -1, 117, 118, -1, 72, 652, 74, 75, 76, -1, 3104 -1, -1, 590, 591, -1, 83, 84, -1, 1259, 32, 3105 -1, -1, -1, 1039, -1, 603, 1267, 1268, 1269, 670, 3106 1227, 1022, 1023, -1, -1, -1, 1485, 1486, 679, -1, 3107 -1, 109, 683, 621, -1, -1, 1495, 959, 626, 117, 3108 118, 1042, -1, -1, 632, -1, 69, 635, 636, 637, 3109 1509, 1510, 1259, -1, -1, -1, -1, 1211, -1, 981, 3110 1267, 1268, 1269, 985, 595, 653, 72, 351, 74, 75, 3111 76, -1, -1, -1, -1, 1534, 733, 83, 84, 1233, 3112 1331, -1, -1, 671, -1, -1, 10, 11, 12, 13, 3113 14, -1, 623, 1119, 682, -1, -1, 628, -1, -1, 3114 -1, -1, -1, 109, 1087, 111, -1, -1, -1, 1092, 3115 -1, 117, 118, 1035, -1, 39, -1, -1, -1, -1, 3116 708, -1, -1, 711, 1331, -1, -1, 66, -1, -1, 3117 -1, -1, 720, 156, 418, 723, -1, -1, -1, -1, 3118 -1, -1, -1, 67, -1, -1, -1, -1, 72, 433, 3119 74, 75, 76, -1, 438, 1181, 1182, 745, 746, 83, 3120 84, -1, 446, 751, -1, -1, -1, -1, 699, -1, 3121 -1, 1325, -1, -1, -1, -1, -1, -1, 117, -1, 3122 464, -1, 713, -1, -1, 109, -1, 111, -1, -1, 3123 -1, 1192, 1193, 117, 118, -1, -1, -1, 482, -1, 3124 484, -1, -1, 791, -1, -1, -1, -1, -1, -1, 3125 -1, -1, -1, 801, 1215, 803, -1, 805, -1, -1, 3126 808, 160, 810, 811, -1, -1, -1, 815, 251, -1, 3127 -1, -1, 1233, 256, -1, -1, -1, 825, -1, -1, 3128 -1, 898, 526, -1, -1, -1, -1, -1, -1, 900, 3129 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3130 19, 20, 21, 22, 23, 24, 25, 26, 27, 1423, 3131 -1, 30, 31, 32, -1, -1, 807, 1278, 1279, -1, 3132 39, 0, 221, -1, -1, -1, 1287, -1, 876, -1, 3133 -1, 1292, -1, -1, 72, -1, 74, 75, 76, -1, 3134 1454, -1, 1456, -1, -1, 83, 84, 591, 67, -1, 3135 898, -1, -1, 32, -1, 74, 75, 905, 906, -1, 3136 259, 909, -1, -1, 1325, 264, -1, -1, 351, -1, 3137 1252, 109, 1254, 1255, -1, -1, 1490, -1, 1492, 117, 3138 118, -1, -1, -1, -1, -1, -1, 935, -1, -1, 3139 69, 635, 636, 637, -1, 943, 944, -1, 117, 118, 3140 1386, -1, -1, -1, -1, 1519, -1, -1, -1, 653, 3141 -1, -1, -1, -1, -1, -1, 1402, -1, -1, -1, 3142 -1, -1, -1, -1, -1, -1, -1, 671, -1, -1, 3143 -1, -1, -1, -1, -1, 418, -1, 1398, 682, -1, 3144 -1, -1, 1053, -1, -1, -1, -1, -1, -1, -1, 3145 433, 350, -1, 1001, -1, 438, -1, -1, -1, -1, 3146 -1, -1, 1423, 446, 708, -1, 1014, 711, -1, -1, 3147 -1, 1019, 1020, -1, 1022, 1023, -1, 156, -1, -1, 3148 -1, 464, -1, -1, 1445, -1, 1472, 1473, -1, -1, 3149 -1, 1452, -1, -1, 1042, -1, -1, -1, -1, 482, 3150 -1, 484, 746, -1, -1, -1, -1, -1, 1390, 1391, 3151 -1, -1, -1, 1004, -1, -1, 10, 11, 12, 13, 3152 14, -1, 10, 11, 12, 13, 14, -1, -1, 1077, 3153 1078, -1, 431, -1, -1, -1, -1, -1, -1, -1, 3154 -1, -1, 1503, 526, -1, 39, 1428, 791, -1, -1, 3155 -1, 39, -1, -1, -1, -1, -1, 801, -1, 803, 3156 -1, -1, -1, -1, 808, -1, 1509, 811, -1, -1, 3157 -1, 815, 251, 67, 473, -1, 1124, 256, 72, 67, 3158 74, 75, 76, -1, 72, -1, 74, 75, 76, 83, 3159 84, -1, -1, -1, 1211, 83, 84, -1, -1, -1, 3160 -1, -1, 1150, -1, 1486, -1, -1, -1, 591, -1, 3161 -1, -1, -1, 1495, -1, 109, -1, 111, -1, -1, 3162 -1, 109, -1, 117, 118, -1, -1, -1, -1, 117, 3163 118, -1, 876, -1, -1, -1, -1, 72, -1, 74, 3164 75, 76, -1, -1, -1, 1193, -1, -1, 83, 84, 3165 -1, -1, 635, 636, 637, -1, -1, -1, -1, -1, 3166 -1, -1, 906, 1211, -1, -1, -1, 1215, -1, -1, 3167 653, -1, 351, -1, 109, -1, 111, -1, -1, 1227, 3168 -1, 1229, 117, 118, -1, 1233, 66, -1, 671, -1, 3169 1301, -1, -1, -1, -1, 75, 595, -1, -1, 682, 3170 -1, 1192, -1, -1, -1, -1, -1, -1, -1, -1, 3171 -1, 1259, -1, -1, -1, -1, -1, -1, -1, 1267, 3172 1268, 1269, -1, -1, 623, 708, -1, -1, 711, 628, 3173 1278, 1279, -1, -1, -1, -1, -1, 117, 0, 418, 3174 -1, -1, -1, -1, 1292, -1, -1, -1, -1, -1, 3175 -1, -1, -1, -1, 433, -1, -1, -1, -1, 438, 3176 -1, -1, -1, 746, 1381, -1, -1, 446, -1, -1, 3177 32, -1, -1, -1, -1, 1019, 1020, 1325, 1022, 1023, 3178 160, -1, -1, 1331, -1, 464, -1, -1, -1, -1, 3179 -1, -1, -1, -1, -1, -1, 1287, -1, 1042, -1, 3180 699, -1, -1, 482, -1, 484, -1, 69, 791, -1, 3181 -1, -1, -1, -1, 713, -1, -1, -1, 801, -1, 3182 803, -1, -1, -1, -1, 808, -1, -1, 811, -1, 3183 -1, -1, 815, 1077, 1078, -1, -1, -1, -1, -1, 3184 -1, 221, 1453, -1, 1455, -1, -1, 526, -1, -1, 3185 1398, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3186 53, -1, 55, -1, -1, 58, 59, 60, -1, 62, 3187 -1, -1, -1, -1, -1, 1423, -1, -1, 1489, 259, 3188 1491, 39, -1, 76, 264, -1, -1, -1, -1, -1, 3189 -1, -1, -1, 876, 156, 88, 89, 1445, -1, 279, 3190 -1, -1, -1, -1, 1452, -1, 1150, -1, 807, 67, 3191 -1, -1, 591, -1, 72, -1, 74, 75, 76, -1, 3192 -1, -1, 1533, 906, 1535, 83, 84, -1, -1, -1, 3193 -1, -1, -1, -1, -1, -1, -1, 1548, 1549, -1, 3194 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1193, 3195 -1, 109, -1, 111, -1, 1503, 635, 636, 637, 117, 3196 118, -1, 1510, -1, -1, -1, -1, -1, -1, -1, 3197 350, 1215, -1, -1, 653, -1, -1, -1, -1, -1, 3198 -1, -1, -1, 1227, -1, 1229, -1, -1, -1, 251, 3199 -1, -1, 671, -1, 256, -1, -1, -1, -1, -1, 3200 -1, -1, -1, 682, -1, -1, -1, -1, -1, 10, 3201 11, 12, 13, 14, -1, 1259, -1, -1, -1, -1, 3202 -1, -1, -1, 1267, 1268, 1269, -1, -1, -1, 708, 3203 -1, -1, 711, -1, 1278, 1279, 1019, 1020, 39, 1022, 3204 1023, -1, -1, -1, -1, -1, -1, -1, 1292, -1, 3205 -1, 431, -1, -1, -1, -1, -1, -1, -1, 1042, 3206 -1, -1, -1, -1, -1, -1, 67, 746, 448, -1, 3207 -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3208 -1, -1, 83, 84, -1, -1, -1, 1331, -1, 351, 3209 -1, -1, -1, 473, 1077, 1078, 26, 27, 28, -1, 3210 -1, -1, -1, -1, -1, 1004, -1, -1, 109, -1, 3211 -1, -1, 791, -1, -1, -1, 117, 118, -1, -1, 3212 -1, -1, 801, -1, 803, -1, -1, -1, -1, 808, 3213 -1, -1, 811, -1, -1, -1, 815, -1, 97, 98, 3214 99, 100, 101, 102, 103, 104, 105, 106, 107, -1, 3215 -1, 344, -1, 346, 1398, -1, 418, -1, -1, -1, 3216 -1, -1, -1, -1, 357, 358, -1, 1150, 98, -1, 3217 100, 433, 131, -1, -1, -1, 438, -1, -1, -1, 3218 -1, -1, -1, -1, 446, -1, -1, -1, -1, -1, 3219 -1, -1, -1, -1, -1, -1, -1, 876, -1, -1, 3220 -1, 1445, 464, -1, -1, -1, -1, -1, 1452, -1, 3221 1193, -1, -1, -1, -1, 595, -1, -1, -1, -1, 3222 482, -1, 484, -1, -1, -1, -1, 906, -1, -1, 3223 -1, -1, 1215, -1, -1, -1, -1, -1, -1, -1, 3224 -1, -1, -1, 623, 1227, -1, 1229, -1, 628, -1, 3225 -1, 181, -1, -1, -1, -1, -1, -1, -1, 1503, 3226 -1, 191, 192, -1, 526, -1, 196, -1, 198, 199, 3227 -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, 3228 -1, -1, -1, -1, 1267, 1268, 1269, -1, -1, -1, 3229 -1, -1, -1, 1192, -1, 1278, 1279, -1, -1, -1, 3230 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1292, 3231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 699, 3232 -1, -1, -1, -1, -1, -1, -1, -1, -1, 591, 3233 -1, -1, -1, 713, -1, -1, -1, -1, -1, -1, 3234 1019, 1020, -1, 1022, 1023, -1, -1, -1, 1331, -1, 3235 -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, 3236 -1, -1, -1, 1042, 7, -1, -1, 10, 11, 12, 3237 13, 14, -1, 635, 636, 637, -1, -1, -1, -1, 3238 -1, -1, -1, -1, -1, -1, -1, -1, 1287, -1, 3239 -1, 653, -1, -1, 37, 38, 39, 40, 1077, 1078, 3240 -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, 3241 -1, -1, -1, -1, -1, 1398, -1, -1, -1, -1, 3242 682, -1, -1, 66, 67, -1, -1, 807, -1, 72, 3243 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3244 83, 84, -1, 86, 87, -1, 708, -1, -1, 711, 3245 -1, -1, -1, 10, 11, 12, 13, 14, -1, -1, 3246 -1, -1, 1445, -1, -1, -1, 109, -1, 111, 1452, 3247 -1, 1150, -1, -1, 117, 118, 119, 120, 121, 122, 3248 -1, -1, 39, -1, 746, -1, -1, -1, -1, -1, 3194 3249 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3195 -1, -1, -1, -1, -1, -1, 1190, -1, 1442, -1, 3196 -1, -1, -1, -1, -1, 1449, 591, 479, 905, -1, 3197 -1, -1, -1, -1, -1, -1, -1, -1, 1212, -1, 3250 -1, -1, -1, -1, -1, -1, -1, 700, -1, 702, 3251 67, -1, -1, -1, 1193, 72, 709, 710, -1, 76, 3252 1503, 714, -1, -1, -1, -1, 83, 84, -1, 791, 3253 -1, -1, -1, 726, -1, -1, 1215, -1, 731, 801, 3254 -1, 803, -1, -1, -1, -1, 808, -1, 1227, 811, 3255 1229, -1, 109, 815, -1, -1, -1, -1, -1, -1, 3256 117, 118, -1, -1, -1, -1, 759, -1, -1, -1, 3198 3257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3199 1224, -1, 1226, -1, -1, -1, -1, -1, -1, -1, 3200 -1, -1, -1, -1, 10, 11, 12, 13, 14, -1, 3201 635, 636, 637, -1, -1, -1, 1500, -1, -1, -1, 3202 351, -1, 1256, 1507, -1, -1, 755, 756, 653, -1, 3203 1264, 1265, 1266, 39, -1, -1, -1, -1, -1, -1, 3204 -1, 1275, 1276, -1, -1, -1, 671, -1, -1, -1, 3205 -1, -1, -1, -1, -1, 1289, -1, 682, -1, 571, 3206 572, 67, -1, -1, 917, -1, 72, -1, 74, 75, 3258 1259, -1, -1, -1, -1, -1, -1, -1, 1267, 1268, 3259 1269, -1, -1, -1, -1, -1, -1, -1, -1, 1278, 3260 1279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, 1292, 876, -1, -1, -1, -1, -1, 3262 -1, -1, -1, -1, 1004, -1, -1, -1, -1, -1, 3263 -1, -1, 7, -1, -1, 10, 11, 12, 13, 14, 3264 -1, -1, -1, -1, 906, 575, 576, -1, -1, -1, 3265 -1, -1, 1331, -1, -1, -1, -1, -1, 49, -1, 3266 -1, -1, 37, 38, 39, 40, 859, 860, 861, 862, 3267 -1, 864, -1, -1, 604, 66, -1, 607, 608, -1, 3268 610, -1, 612, 613, -1, -1, 879, 617, 618, -1, 3269 -1, 66, 67, -1, -1, -1, -1, 72, -1, -1, 3270 893, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3271 -1, 86, 87, -1, -1, -1, -1, -1, -1, 1398, 3272 -1, -1, 113, -1, -1, -1, 117, -1, -1, -1, 3273 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3274 933, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3275 -1, -1, -1, -1, -1, 146, -1, 1019, 1020, -1, 3276 1022, 1023, -1, -1, -1, 156, 1445, -1, -1, 160, 3277 -1, -1, -1, 1452, -1, -1, -1, -1, -1, -1, 3278 1042, -1, -1, -1, -1, 978, -1, -1, -1, -1, 3279 -1, 984, -1, -1, -1, -1, 989, -1, -1, -1, 3280 -1, 994, -1, 996, -1, -1, -1, 1000, -1, 1002, 3281 1003, -1, 1192, 1006, -1, 1077, 1078, -1, 209, -1, 3282 -1, -1, 1015, -1, 1503, 755, 756, -1, -1, -1, 3283 221, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3284 1033, 1034, -1, -1, -1, -1, -1, -1, 239, 10, 3285 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3286 21, 22, 23, 24, 25, 26, 27, 1060, -1, -1, 3287 1063, -1, -1, 264, -1, -1, -1, -1, 39, -1, 3288 271, -1, -1, -1, -1, -1, -1, -1, 1150, -1, 3289 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1, 3290 -1, -1, -1, 294, -1, -1, 67, 1287, -1, -1, 3291 -1, -1, -1, 1106, -1, -1, 307, -1, -1, 1112, 3292 1113, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3293 -1, 1193, -1, -1, -1, -1, -1, -1, -1, 1132, 3294 -1, -1, -1, 1136, -1, -1, -1, -1, 1141, -1, 3295 -1, -1, -1, 1215, 345, -1, -1, -1, -1, 350, 3296 -1, 1154, -1, -1, 98, 1227, 100, 1229, -1, -1, 3297 -1, -1, -1, -1, 1167, -1, 1169, 1170, 1171, 1172, 3298 -1, -1, -1, -1, -1, -1, -1, -1, 918, -1, 3299 -1, 125, 1185, -1, 1187, -1, -1, 1259, 1191, -1, 3300 -1, -1, -1, -1, -1, 1267, 1268, 1269, -1, -1, 3301 -1, -1, -1, -1, -1, -1, 1278, 1279, -1, -1, 3302 66, -1, -1, -1, -1, -1, -1, 1220, 1221, 75, 3303 1292, 77, -1, 79, -1, 426, 427, -1, -1, -1, 3304 86, -1, 433, -1, -1, -1, -1, 181, -1, -1, 3305 -1, -1, -1, -1, -1, 189, -1, 191, 192, -1, 3306 -1, -1, 196, 454, 198, 199, -1, -1, -1, 1331, 3307 -1, 117, -1, 119, 120, 121, -1, 1270, 1271, -1, 3308 -1, -1, -1, -1, -1, -1, -1, 1280, -1, -1, 3309 -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, 3310 -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, 3311 -1, -1, -1, -1, 160, 506, -1, 508, -1, -1, 3312 511, -1, 513, 514, -1, -1, -1, -1, -1, -1, 3313 -1, -1, -1, -1, 268, 526, 1398, -1, -1, -1, 3314 -1, -1, -1, -1, -1, -1, -1, -1, 1341, 1079, 3315 1343, 1344, 1345, -1, -1, -1, -1, -1, -1, -1, 3316 -1, -1, 1355, -1, -1, -1, -1, -1, -1, -1, 3317 -1, 1364, -1, -1, -1, 221, -1, 223, 224, 225, 3318 -1, -1, -1, 1445, -1, -1, -1, -1, 579, -1, 3319 1452, -1, -1, -1, -1, -1, 1389, -1, -1, -1, 3320 591, -1, -1, -1, 595, -1, -1, -1, -1, -1, 3321 -1, -1, -1, 259, -1, -1, -1, -1, 264, -1, 3322 -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 3323 621, -1, -1, 279, -1, 626, -1, -1, -1, 1432, 3324 1433, 1503, -1, -1, 635, 636, 637, -1, -1, -1, 3325 -1, -1, 1445, -1, -1, -1, -1, -1, -1, 1452, 3326 -1, -1, 653, -1, -1, -1, -1, -1, -1, -1, 3327 -1, 91, -1, -1, -1, -1, -1, -1, -1, -1, 3328 1210, 101, 328, -1, -1, -1, -1, -1, -1, -1, 3329 -1, 1484, -1, -1, 685, 1488, -1, -1, -1, -1, 3330 -1, -1, -1, -1, 350, -1, -1, -1, -1, 355, 3331 356, -1, -1, -1, -1, -1, -1, 363, -1, -1, 3332 711, -1, 713, 1516, -1, 1518, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, -1, -1, 157, -1, -1, 3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, 171, -1, 1546, 1547, 746, -1, -1, -1, -1, 3336 406, 1554, 1555, -1, -1, -1, -1, -1, -1, -1, 3337 -1, -1, -1, -1, 194, -1, -1, -1, 424, 37, 3338 38, -1, 40, 429, -1, 431, -1, -1, 208, -1, 3339 -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, 3340 -1, -1, 448, -1, -1, 451, 452, 227, 66, -1, 3341 -1, -1, 803, 459, 72, -1, 807, -1, 76, -1, 3342 811, 79, 80, 81, 82, 83, 84, 473, 86, 87, 3343 -1, -1, 252, -1, 480, -1, -1, 257, -1, -1, 3344 -1, 575, 576, -1, -1, -1, -1, -1, -1, -1, 3345 270, 109, -1, 111, -1, -1, 276, -1, 278, 117, 3346 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3347 604, -1, 130, 607, 608, 295, 610, -1, 612, 613, 3348 -1, -1, -1, 617, 618, 10, 11, 12, 13, 14, 3349 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3350 25, 26, 27, 28, -1, -1, -1, -1, -1, -1, 3351 -1, -1, -1, -1, 39, 906, -1, -1, 338, -1, 3352 -1, -1, -1, 343, -1, -1, -1, -1, -1, -1, 3353 921, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3354 -1, -1, 67, -1, -1, -1, -1, -1, -1, 595, 3355 -1, -1, 372, 78, 945, -1, 376, 377, -1, 379, 3356 -1, -1, -1, -1, -1, -1, 386, 387, -1, 389, 3357 390, -1, 392, -1, 394, -1, -1, 623, -1, -1, 3358 -1, -1, 628, -1, -1, -1, -1, -1, -1, -1, 3359 -1, 411, -1, -1, 37, 38, -1, 40, -1, 419, 3360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 1001, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3362 -1, 755, 756, 66, 444, -1, -1, -1, -1, 72, 3363 -1, 1022, 1023, 76, -1, -1, 79, 80, 81, 82, 3364 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3365 470, -1, -1, 699, -1, -1, 476, -1, -1, -1, 3366 -1, 481, -1, -1, -1, -1, 109, 713, 111, -1, 3367 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122, 3368 -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, 3369 -1, 1082, -1, -1, -1, -1, -1, 517, -1, -1, 3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, 532, -1, 0, -1, -1, 3, 4, 5, 3372 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3373 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3374 26, 27, -1, -1, 30, 31, 32, 33, -1, 795, 3375 36, 571, -1, 39, 40, -1, -1, -1, -1, 1150, 3376 580, 807, -1, -1, -1, -1, -1, 587, -1, -1, 3377 -1, -1, -1, 593, -1, -1, -1, -1, 64, 913, 3378 826, 67, 602, 69, 918, 71, 72, -1, 74, 75, 3207 3379 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3208 -1, 1018, 1019, 708, 1021, 1022, 711, 418, -1, -1, 3209 -1, -1, -1, -1, 1328, -1, -1, -1, -1, -1, 3210 -1, -1, 433, 109, 1041, 111, -1, 438, -1, -1, 3211 -1, 117, 118, -1, -1, 446, -1, -1, -1, -1, 3212 -1, 746, -1, -1, -1, -1, -1, -1, -1, -1, 3213 -1, -1, -1, 464, -1, -1, -1, -1, -1, 1076, 3214 1077, -1, -1, -1, -1, -1, 658, -1, -1, -1, 3215 662, 482, -1, 484, -1, -1, -1, -1, -1, -1, 3216 -1, 1395, -1, -1, -1, 790, -1, -1, -1, -1, 3217 -1, -1, -1, -1, -1, 800, -1, 802, -1, -1, 3218 -1, -1, 807, 912, -1, 810, -1, -1, 917, 814, 3219 -1, -1, -1, -1, -1, 526, 53, -1, 55, -1, 3220 -1, 58, 59, 60, -1, 62, -1, -1, 1442, -1, 3221 1147, -1, -1, -1, -1, 1449, -1, -1, -1, 76, 3222 -1, -1, -1, -1, -1, 1078, -1, -1, -1, -1, 3223 -1, 88, 89, -1, 10, 11, 12, 13, 14, -1, 3380 -1, 1192, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, -1, -1, -1, 155, 156, -1, -1, -1, 3382 -1, -1, 642, 109, -1, 111, -1, -1, -1, -1, 3383 -1, 117, 118, -1, -1, -1, -1, -1, 1229, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 189, 3385 -1, -1, -1, -1, -1, -1, 196, -1, 678, -1, 3386 -1, -1, -1, -1, -1, -1, 686, -1, -1, 10, 3387 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3388 21, 22, 23, 24, 25, 26, 27, 1278, 1279, 30, 3389 31, 32, -1, 939, -1, -1, 1287, 717, 39, -1, 3390 -1, -1, -1, -1, -1, -1, -1, 727, 728, -1, 3224 3391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3225 875, -1, -1, 1190, -1, -1, -1, -1, -1, -1, 3226 591, -1, -1, 39, -1, -1, 1500, -1, -1, -1, 3227 -1, -1, -1, -1, -1, 1212, -1, -1, -1, -1, 3228 905, -1, 794, -1, -1, -1, -1, 1224, -1, 1226, 3229 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3230 76, -1, -1, -1, 635, 636, 637, 83, 84, -1, 3231 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1256, 3232 -1, -1, 653, -1, -1, -1, -1, 1264, 1265, 1266, 3233 -1, -1, -1, 109, -1, 111, -1, -1, 1275, 1276, 3234 671, 117, 118, -1, -1, 282, -1, 284, 285, 1078, 3235 -1, 682, 1289, -1, 1207, 292, 293, -1, -1, -1, 3392 -1, -1, -1, 969, -1, -1, 67, -1, 268, -1, 3393 -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3394 760, -1, 83, 84, -1, 1079, 766, -1, -1, -1, 3395 -1, -1, -1, -1, -1, -1, -1, -1, 1004, -1, 3396 -1, -1, -1, -1, -1, -1, -1, -1, 109, 1015, 3397 111, -1, -1, -1, -1, -1, 117, 118, -1, -1, 3398 -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 3399 -1, 331, 332, -1, 334, 335, -1, -1, -1, -1, 3400 -1, -1, -1, -1, -1, 345, -1, 1398, -1, 349, 3401 830, -1, -1, -1, -1, -1, -1, 837, -1, -1, 3402 -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, 3403 850, 371, 852, -1, -1, -1, -1, -1, -1, -1, 3404 -1, 1087, -1, -1, -1, -1, 866, -1, -1, -1, 3405 -1, -1, 872, -1, -1, 1101, -1, -1, 398, -1, 3406 -1, -1, 402, 1454, 884, 1456, -1, 887, -1, -1, 3407 -1, -1, -1, -1, -1, -1, 1210, -1, -1, -1, 3236 3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3237 307, 308, -1, -1, -1, -1, -1, 708, -1, -1, 3238 711, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3239 -1, 1328, -1, 1018, 1019, -1, 1021, 1022, -1, -1, 3240 912, -1, -1, -1, -1, -1, -1, -1, 345, -1, 3241 -1, -1, -1, -1, -1, 746, 1041, 10, 11, 12, 3242 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3243 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, 3244 -1, -1, -1, -1, 381, -1, 39, -1, -1, -1, 3245 -1, 1076, 1077, -1, -1, -1, -1, -1, 1395, 790, 3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, 800, 3247 -1, 802, -1, -1, 67, -1, 807, 989, 1207, 810, 3248 -1, 74, 75, 814, -1, 78, -1, 344, -1, 346, 3249 -1, -1, -1, -1, 1006, -1, -1, -1, -1, -1, 3250 357, 358, -1, -1, -1, 1442, -1, -1, -1, -1, 3251 37, 38, 1449, 40, -1, -1, 109, -1, 111, -1, 3252 -1, -1, 1147, -1, 117, 118, -1, -1, -1, -1, 3253 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3254 -1, -1, -1, -1, 875, 72, -1, -1, -1, 76, 3255 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3256 87, -1, -1, 1500, -1, 1190, -1, -1, -1, -1, 3257 -1, -1, 1084, -1, 905, -1, -1, -1, -1, -1, 3258 -1, -1, 109, -1, 111, -1, -1, 1212, -1, -1, 3259 117, 118, 119, 120, 121, 122, -1, -1, -1, 1224, 3260 -1, 1226, 7, 130, -1, 10, 11, 12, 13, 14, 3261 -1, -1, 1124, 550, 551, 552, 553, 554, 555, 556, 3262 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 3263 567, 1256, 37, 38, 39, 40, -1, -1, -1, 1264, 3264 1265, 1266, -1, -1, -1, -1, -1, -1, -1, -1, 3265 1275, 1276, -1, -1, -1, -1, -1, -1, -1, -1, 3266 -1, 66, 67, -1, 1289, -1, -1, 72, -1, -1, 3267 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3268 -1, 86, 87, -1, -1, -1, -1, 1018, 1019, -1, 3269 1021, 1022, -1, -1, -1, -1, -1, -1, -1, -1, 3270 -1, -1, -1, 1328, 109, -1, 111, -1, -1, -1, 3271 1041, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3409 -1, -1, -1, 433, -1, -1, -1, -1, -1, 1490, 3410 -1, 1492, -1, -1, -1, -1, -1, -1, -1, -1, 3411 -1, -1, 282, -1, 284, 285, -1, -1, -1, -1, 3412 -1, -1, 292, 293, -1, -1, -1, -1, 1519, -1, 3413 -1, -1, -1, -1, -1, -1, -1, 307, 308, 479, 3414 -1, -1, 482, -1, 964, -1, 1192, -1, -1, -1, 3415 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3416 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3417 -1, 30, 31, 32, -1, 345, -1, -1, -1, 999, 3418 39, 521, -1, -1, -1, 525, 526, -1, -1, -1, 3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3421 -1, 381, -1, 72, -1, 74, 75, 76, -1, 78, 3422 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3423 -1, 571, 572, -1, -1, -1, -1, 1057, -1, -1, 3424 -1, 1287, -1, 1063, -1, -1, 146, -1, -1, -1, 3425 590, 591, 111, -1, -1, -1, 156, -1, 117, 118, 3426 -1, 601, -1, 603, 604, -1, -1, -1, 168, 169, 3427 610, -1, -1, -1, -1, -1, -1, 1097, -1, -1, 3428 620, 621, 1102, -1, -1, -1, 626, -1, -1, -1, 3429 1110, -1, -1, -1, -1, 635, 636, 637, -1, -1, 3430 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, 653, -1, -1, -1, -1, 658, 659, 3432 -1, -1, 662, 663, -1, 1145, -1, -1, -1, 669, 3433 -1, -1, -1, -1, -1, -1, -1, 1157, -1, 239, 3434 1160, -1, 1162, -1, -1, -1, -1, -1, 688, -1, 3435 -1, -1, -1, -1, -1, -1, 1176, 1177, -1, -1, 3436 -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, 3437 -1, 711, 712, -1, -1, -1, -1, -1, 1198, -1, 3438 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 3439 560, 561, 562, 563, 564, 565, 566, 567, -1, -1, 3440 -1, -1, -1, -1, -1, 745, 746, -1, -1, -1, 3441 750, 751, -1, -1, -1, -1, -1, -1, -1, -1, 3442 -1, -1, -1, -1, -1, 1245, -1, -1, -1, -1, 3443 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3444 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3445 30, 31, 32, -1, -1, 795, -1, -1, -1, 39, 3446 -1, -1, -1, 803, -1, -1, -1, -1, -1, -1, 3447 810, 811, -1, -1, 814, -1, 816, -1, -1, -1, 3448 380, -1, -1, -1, -1, -1, 826, 67, 1534, -1, 3449 -1, -1, 72, -1, 74, 75, 76, -1, 78, -1, 3450 1320, -1, 1322, 83, 84, -1, -1, -1, -1, -1, 3451 -1, -1, -1, -1, -1, -1, 1336, -1, 1338, -1, 3452 -1, -1, -1, -1, -1, -1, 696, -1, -1, 109, 3453 -1, 111, -1, 1353, -1, -1, -1, 117, 118, -1, 3454 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1369, 3455 1370, -1, -1, -1, -1, -1, -1, -1, 898, -1, 3456 1380, -1, -1, 1383, -1, 905, 906, 907, -1, 909, 3457 -1, -1, -1, 913, 474, -1, -1, -1, -1, -1, 3458 -1, -1, -1, -1, 1404, -1, -1, 757, -1, -1, 3459 -1, -1, -1, 1413, 934, 935, 1416, -1, 1418, 1419, 3460 1420, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, 513, -1, -1, -1, -1, 788, -1, 3462 -1, -1, -1, -1, -1, -1, 526, -1, -1, 969, 3463 -1, 531, -1, -1, 534, -1, -1, -1, 1458, -1, 3464 1460, -1, 1462, -1, -1, -1, -1, 547, -1, -1, 3465 990, 991, -1, -1, -1, -1, -1, 1477, -1, -1, 3466 -1, 1001, -1, -1, -1, -1, -1, 1007, 1008, 569, 3467 1010, 1011, 1012, -1, -1, -1, -1, -1, -1, 579, 3468 -1, -1, 1022, 1023, -1, -1, 586, -1, -1, -1, 3469 -1, 591, -1, -1, 3, 4, 5, 6, 7, 8, 3470 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3471 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3472 -1, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3473 39, 40, -1, -1, -1, -1, -1, -1, 908, -1, 3474 640, -1, -1, -1, -1, 1085, -1, 1087, 648, -1, 3475 -1, -1, 1092, -1, -1, 64, -1, -1, 67, -1, 3476 69, 1101, 71, 72, -1, 74, 75, 76, -1, -1, 3477 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3478 -1, -1, -1, 953, 1124, 1125, 1126, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 109, -1, 111, -1, -1, -1, 115, -1, 117, 118, 3481 1150, -1, -1, -1, -1, -1, -1, -1, 988, -1, 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3483 -1, 1001, -1, -1, -1, -1, -1, -1, 37, 38, 3484 -1, 40, -1, -1, -1, -1, 746, -1, 748, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, 758, -1, 3486 -1, -1, -1, -1, 764, -1, -1, 66, -1, -1, 3487 -1, 1211, 1042, 72, -1, 74, 75, 76, -1, -1, 3488 79, 80, 81, 82, 83, 84, -1, 86, 87, 1229, 3489 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3490 -1, -1, -1, -1, -1, -1, -1, 807, 808, -1, 3491 109, 811, 111, -1, 113, 114, -1, -1, 117, 118, 3492 119, 120, 121, 122, -1, 825, -1, -1, -1, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, 1278, 1279, 3494 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1119, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3496 -1, -1, -1, -1, -1, 865, -1, -1, -1, 869, 3497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3272 3498 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3273 3499 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3274 23, 24, 25, 26, 27, 1076, 1077, 30, 31, 32,3275 33, -1, -1, 36, 37, 38, 39, 40, -1, 696,3500 23, 24, 25, 26, 27, -1, 906, 30, 31, 32, 3501 33, 1181, 1182, 36, -1, -1, 39, 40, -1, -1, 3276 3502 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3277 1395, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278 -1, -1, -1, 66, 67, -1, 69, -1, 71, 72, 3279 -1, 74, 75, 76, 49, -1, 79, 80, 81, 82, 3503 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3504 -1, 64, -1, -1, 67, 945, 69, -1, 71, 72, 3505 -1, 74, 75, 76, -1, -1, -1, -1, 1398, -1, 3506 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3507 -1, -1, -1, 973, -1, -1, -1, 37, 38, 979, 3508 40, -1, -1, 983, -1, -1, 109, -1, 111, -1, 3509 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3510 -1, -1, -1, -1, 1004, -1, 66, -1, -1, -1, 3511 -1, -1, 72, -1, -1, 1015, 76, -1, -1, 79, 3512 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3513 -1, -1, -1, -1, -1, -1, -1, 1037, -1, 1039, 3514 -1, -1, -1, 37, 38, 1485, 40, -1, -1, 109, 3515 -1, 111, -1, -1, 1054, 1055, 116, 117, 118, 119, 3516 120, 121, 122, -1, -1, -1, -1, -1, -1, 1509, 3517 1510, -1, 66, -1, -1, 1075, -1, -1, 72, -1, 3518 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3519 84, -1, 86, 87, 1534, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3521 -1, -1, -1, -1, -1, 109, 1386, 111, -1, -1, 3522 114, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3523 1130, -1, 1402, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3525 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3526 -1, -1, -1, -1, -1, 1165, 1166, -1, -1, -1, 3527 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3528 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3529 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3530 32, 33, 1472, 1473, 36, 37, 38, 39, 40, 41, 3531 -1, 43, -1, -1, 46, 47, 48, 49, 50, 51, 3532 52, 53, -1, -1, -1, 57, -1, -1, -1, 61, 3533 62, -1, 64, -1, 66, 67, -1, 69, -1, 71, 3534 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3535 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3538 -1, -1, 114, -1, -1, 117, 118, 119, 120, 121, 3539 122, -1, -1, -1, -1, 127, -1, -1, -1, -1, 3540 132, -1, -1, -1, -1, -1, 1306, -1, -1, 1309, 3541 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3542 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3543 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3544 33, -1, -1, 36, 37, 38, 39, 40, 10, 11, 3545 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3546 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3547 32, -1, -1, 66, 67, -1, 69, 39, 71, 72, 3548 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3280 3549 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3281 -1, 66, -1, -1, -1, -1, 1147, 1442, -1, -1,3282 757, -1, -1, -1, 1449, -1, 109, -1, 111, -1,3283 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122,3284 -1, -1, -1, 700, -1, 702, -1, -1, -1, 132,3285 787, -1, 709, 710, -1, -1, -1, 714, 113, 1190,3286 -1, -1, 117, -1, -1, -1, -1, -1, -1, 726,3287 -1, -1, -1, -1, 731, 1500, -1, -1, -1, -1,3288 -1, 1212, -1, -1, -1, -1, -1, -1, -1, -1,3289 -1, 146, -1, 1224, -1, 1226, -1, -1, -1, -1,3290 -1, 156, 759, -1, -1, 160, -1, -1, -1, -1,3291 -1, -1, -1, -1, -1, -1, 7, -1, -1, 10,3292 11, 12, 13, 14, -1, 1256, -1, -1, -1, -1,3293 -1, -1, -1, 1264, 1265, 1266, -1, -1, -1, -1,3294 -1, -1, -1, -1, 1275, 1276, 37, 38, 39, 40,3295 -1, -1, -1, -1, 209, -1, -1, -1, 1289, -1,3296 -1, -1, -1, -1, -1, -1, 221, -1, -1, -1,3297 907, -1, -1, -1, -1, 66, 67, -1, -1, -1,3298 -1, 72, -1, -1, 239, 76, -1, -1, 79, 80,3299 81, 82, 83, 84, -1, 86, 87, 1328, -1, -1,3300 -1, 858, 859, 860, 861, -1, 863, -1, -1, 264,3301 -1, -1, -1, -1, -1, 952, 271, -1, 109, -1,3302 111, 878, -1, -1, -1, -1, 117, 118, 119, 120,3303 121, 122, -1, -1, -1, 892, -1, -1, -1, 294,3304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3305 987, -1, 307, -1, -1, -1, -1, -1, -1, 66,3306 -1, -1, -1, 1000, 1395, -1, -1, -1, 75, -1,3307 77, -1, 79, -1, -1, 932, -1, -1, -1, 86,3308 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3309 345, -1, -1, -1, -1, 350, -1, -1, -1, -1,3310 -1, -1, -1, -1, 1041, -1, -1, -1, -1, -1,3311 117, 1442, 119, 120, 121, -1, -1, -1, 1449, -1,3312 977, -1, -1, -1, -1, -1, 983, -1, -1, -1,3313 -1, 988, -1, -1, -1, -1, 993, -1, 995, -1,3314 -1, -1, 999, -1, 1001, 1002, -1, -1, 1005, -1,3315 -1, -1, -1, 160, -1, -1, -1, 1014, -1, -1,3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1500,3317 -1, 426, 427, -1, -1, 1032, 1033, -1, 433, -1,3318 -1, 1118, -1, -1, -1, -1, -1, -1, -1, -1,3319 -1, -1, -1, -1, -1, -1, -1, -1, -1, 454,3320 -1, -1, 1059, -1, -1, 1062, -1, -1, -1, -1,3321 -1, -1, -1, -1, 221, -1, 223, 224, 225, -1,3322 -1, -1, -1, -1, -1, -1, -1, 482, -1, -1,3323 -1, 10, 11, 12, 13, 14, -1, -1, -1, 494,3324 -1, 1178, 1179, -1, -1, -1, -1, -1, 1105, -1,3325 -1, 506, 259, 508, 1111, 1112, 511, 264, 513, 514,3326 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,3327 -1, 526, 279, -1, 1131, -1, -1, 1134, -1, -1,3328 -1, 1138, -1, -1, -1, -1, -1, -1, 67, -1,3329 -1, -1, -1, 72, 1151, 74, 75, 76, -1, -1,3330 -1, -1, -1, -1, 83, 84, -1, 1164, -1, 1166,3331 1167, 1168, 1169, -1, -1, -1, -1, -1, -1, -1,3332 -1, 328, -1, -1, 579, 1182, -1, 1184, -1, -1,3333 109, 1188, -1, -1, -1, -1, 591, -1, 117, 118,3334 595, -1, -1, 350, -1, -1, -1, -1, 355, 356,3335 -1, -1, -1, -1, -1, -1, 363, -1, -1, -1,3336 1217, 1218, -1, -1, -1, -1, 621, -1, -1, -1,3337 -1, 626, -1, -1, -1, -1, -1, -1, -1, -1,3338 635, 636, 637, -1, -1, -1, -1, -1, -1, -1,3339 -1, -1, -1, -1, -1, -1, -1, -1, 653, 406,3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3341 1267, 1268, -1, -1, -1, -1, -1, 424, -1, -1,3342 1277, -1, 429, -1, 431, -1, -1, -1, -1, -1,3343 685, -1, -1, -1, -1, -1, -1, -1, -1, -1,3344 -1, 448, -1, -1, 451, 452, 1383, -1, -1, -1,3345 -1, -1, 459, -1, -1, -1, 711, -1, 713, -1,3346 -1, -1, 1399, -1, -1, -1, 473, -1, -1, -1,3347 -1, -1, -1, 480, -1, -1, -1, -1, -1, -1,3348 -1, 1338, -1, 1340, 1341, 1342, -1, -1, -1, -1,3349 -1, 746, -1, -1, -1, 1352, 44, -1, -1, -1,3350 -1, -1, -1, -1, 1361, 10, 11, 12, 13, 14,3351 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,3352 25, 26, 27, -1, -1, 30, 31, 32, -1, 1386,3353 -1, -1, 1469, 1470, 39, -1, -1, 10, 11, 12,3354 13, 14, -1, 91, -1, -1, -1, 802, -1, -1,3355 -1, 806, -1, 101, -1, 810, -1, -1, -1, -1,3356 -1, -1, 67, -1, -1, -1, 39, 72, -1, 74,3357 75, 76, 1429, 1430, -1, -1, -1, -1, 83, 84,3358 -1, -1, -1, -1, -1, 1442, -1, -1, 595, -1,3359 -1, -1, 1449, -1, 67, -1, -1, -1, -1, 72,3360 -1, 74, 75, 76, 109, -1, 111, -1, -1, 157,3361 83, 84, 117, 118, -1, -1, 623, -1, -1, -1,3362 -1, 628, -1, 171, 1481, -1, -1, -1, 1485, -1,3363 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1,3364 -1, -1, -1, -1, 117, 118, 194, -1, -1, -1,3365 905, -1, -1, -1, -1, -1, 1513, -1, 1515, -1,3366 208, -1, -1, -1, -1, 920, -1, -1, -1, 217,3367 -1, -1, -1, -1, -1, -1, -1, -1, -1, 227,3368 -1, -1, -1, -1, -1, -1, 1543, 1544, -1, 944,3369 -1, -1, 699, -1, 1551, 1552, -1, -1, -1, -1,3370 -1, -1, -1, -1, 252, -1, 713, -1, -1, 257,3371 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3372 -1, -1, 270, -1, -1, -1, 733, -1, 276, -1,3373 278, -1, -1, -1, -1, -1, -1, -1, -1, -1,3374 -1, -1, -1, -1, -1, 1000, -1, 295, 10, 11,3375 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,3376 22, 23, 24, 25, 26, 27, 1021, 1022, 30, 31,3377 32, -1, -1, -1, -1, -1, -1, 39, -1, -1,3378 -1, -1, -1, -1, -1, -1, -1, 794, -1, -1,3379 338, -1, -1, -1, -1, 343, -1, -1, -1, 806,3380 3550 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3381 72, -1, 74, 75, 76, -1, -1, -1, 825, -1, 3382 -1, 83, 84, -1, 372, -1, 1081, -1, 376, 377, 3383 -1, 379, -1, -1, -1, -1, -1, -1, 386, 387, 3384 -1, 389, 390, -1, 392, -1, 394, 109, -1, 111, 3385 -1, -1, -1, -1, -1, 117, 118, -1, -1, -1, 3386 -1, -1, -1, 411, -1, -1, -1, -1, -1, -1, 3387 -1, 419, -1, -1, -1, -1, -1, -1, -1, 155, 3388 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3389 -1, -1, 1147, -1, -1, -1, 444, -1, -1, -1, 3390 -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3391 14, -1, -1, 189, -1, -1, -1, -1, -1, -1, 3392 196, -1, 470, -1, -1, -1, -1, -1, 476, -1, 3393 -1, 938, -1, 481, 1189, 39, 10, 11, 12, 13, 3394 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3395 24, 25, 26, 27, 28, -1, 30, 31, 32, -1, 3396 -1, 968, -1, 67, -1, 39, -1, -1, 72, 517, 3397 -1, 1226, 76, -1, -1, -1, -1, -1, -1, 83, 3398 84, -1, -1, -1, 532, -1, -1, -1, -1, -1, 3399 -1, -1, 268, 67, -1, -1, 1003, -1, 72, -1, 3400 74, 75, 76, -1, 78, 109, -1, 1014, -1, 83, 3401 84, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3402 1275, 1276, -1, 571, -1, -1, -1, -1, -1, 1284, 3403 -1, -1, 580, -1, -1, 109, -1, 111, 146, 587, 3404 -1, -1, -1, 117, 118, 593, -1, 323, 156, -1, 3405 -1, -1, -1, -1, 602, 331, 332, -1, 334, 335, 3406 168, 169, -1, -1, -1, -1, -1, -1, -1, 345, 3407 -1, -1, -1, 349, -1, -1, -1, -1, -1, 1086, 3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3409 -1, -1, 368, 1100, 642, 371, 3, 4, 5, 6, 3410 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3411 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3412 27, -1, 398, 30, 31, 32, 402, -1, -1, -1, 3413 678, 239, 39, -1, -1, -1, -1, -1, 686, -1, 3414 1395, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3415 -1, -1, -1, -1, -1, 263, -1, 433, -1, -1, 3416 67, -1, 69, -1, 71, -1, -1, 74, 75, 717, 3417 -1, 66, -1, -1, -1, -1, -1, 72, -1, 727, 3418 728, 76, 1189, -1, 79, 80, 81, 82, 83, 84, 3419 -1, 86, 87, -1, -1, -1, 1451, -1, 1453, -1, 3420 -1, -1, -1, 479, 111, -1, 482, -1, -1, -1, 3421 117, 118, 760, -1, 109, -1, 111, 765, -1, 114, 3422 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3423 -1, -1, 1487, -1, 1489, -1, -1, -1, -1, -1, 3424 -1, -1, -1, -1, -1, 521, -1, -1, -1, 525, 3425 526, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3426 -1, 1516, -1, -1, -1, -1, -1, -1, -1, -1, 3427 -1, -1, 380, -1, -1, -1, -1, 1284, -1, -1, 3428 -1, 829, -1, -1, -1, -1, -1, -1, 836, -1, 3429 -1, -1, -1, -1, -1, 571, 572, -1, -1, -1, 3430 -1, 849, -1, 851, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, -1, 590, 591, -1, 865, -1, -1, 3432 -1, -1, -1, 871, -1, 601, -1, 603, 604, -1, 3433 -1, -1, -1, -1, 610, 883, -1, -1, 886, -1, 3434 -1, -1, -1, -1, 620, 621, -1, -1, -1, -1, 3435 626, -1, -1, -1, -1, -1, -1, -1, -1, 635, 3436 636, 637, -1, -1, -1, -1, 474, -1, -1, -1, 3437 -1, -1, -1, -1, -1, -1, -1, 653, -1, -1, 3438 -1, -1, 658, 659, -1, -1, 662, 663, -1, -1, 3439 -1, -1, -1, 669, -1, -1, -1, -1, -1, -1, 3440 -1, -1, -1, -1, -1, 513, -1, -1, -1, -1, 3441 -1, -1, 688, -1, -1, 963, -1, -1, 526, -1, 3442 -1, -1, -1, 531, -1, -1, 534, -1, -1, -1, 3443 -1, -1, -1, -1, -1, 711, 712, -1, -1, 547, 3444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3445 998, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3446 -1, 569, -1, -1, -1, -1, -1, -1, -1, 745, 3447 746, 579, -1, -1, 750, 751, -1, -1, 586, -1, 3448 -1, -1, -1, 591, -1, -1, -1, -1, -1, -1, 3449 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3450 20, 21, 22, 23, 24, 25, 26, 27, 1056, -1, 3451 30, 31, 32, -1, 1062, -1, -1, -1, 794, 39, 3452 -1, -1, -1, -1, 1531, -1, 802, -1, -1, -1, 3453 -1, -1, 640, 809, 810, -1, -1, 813, -1, 815, 3454 648, -1, -1, -1, -1, -1, -1, 67, 1096, 825, 3455 -1, -1, 72, 1101, 74, 75, 76, -1, -1, -1, 3456 -1, 1109, -1, 83, 84, -1, 10, 11, 12, 13, 3457 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3458 24, 25, 26, 27, 28, -1, -1, -1, -1, 109, 3459 -1, 111, -1, -1, 1142, 39, -1, 117, 118, -1, 3460 -1, -1, -1, -1, -1, -1, 1154, -1, -1, 1157, 3461 -1, 1159, -1, -1, -1, -1, -1, -1, -1, -1, 3462 -1, 897, -1, 67, -1, 1173, 1174, -1, 904, 905, 3463 906, -1, 908, -1, 78, -1, 912, -1, 746, -1, 3464 748, -1, -1, -1, -1, -1, -1, 1195, -1, -1, 3465 758, -1, -1, -1, -1, -1, 764, 933, 934, -1, 3466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3467 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, 39, 3469 -1, -1, 968, -1, 1242, -1, -1, -1, 806, 807, 3470 -1, -1, 810, -1, -1, -1, -1, -1, 37, 38, 3471 -1, 40, -1, 989, 990, -1, 824, 67, -1, -1, 3472 -1, -1, -1, -1, 1000, -1, -1, -1, 78, -1, 3473 1006, 1007, -1, 1009, 1010, 1011, -1, 66, -1, -1, 3474 -1, -1, -1, 72, -1, 1021, 1022, 76, -1, -1, 3475 79, 80, 81, 82, 83, 84, 864, 86, 87, -1, 3476 868, -1, -1, -1, -1, -1, -1, -1, -1, 1317, 3477 -1, 1319, -1, -1, -1, -1, -1, -1, -1, -1, 3478 109, -1, 111, 1331, -1, 1333, -1, 116, 117, 118, 3479 119, 120, 121, 122, -1, -1, -1, 905, -1, -1, 3480 -1, -1, 1350, -1, -1, -1, -1, -1, 1084, -1, 3481 1086, -1, -1, -1, -1, 1091, -1, -1, 1366, 1367, 3482 -1, -1, -1, -1, 1100, -1, -1, -1, -1, 1377, 3483 -1, -1, 1380, -1, -1, -1, 944, -1, -1, -1, 3484 -1, -1, -1, -1, -1, -1, -1, 1123, 1124, 1125, 3485 -1, -1, -1, 1401, -1, -1, -1, -1, -1, -1, 3486 -1, -1, 1410, -1, 972, 1413, -1, 1415, 1416, 1417, 3487 978, 1147, -1, -1, 982, 37, 38, -1, 40, -1, 3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3489 -1, -1, -1, -1, -1, 1003, -1, -1, -1, -1, 3490 -1, -1, -1, -1, 66, -1, 1014, 1455, -1, 1457, 3491 72, 1459, 74, 75, 76, -1, -1, 79, 80, 81, 3492 82, 83, 84, -1, 86, 87, 1474, -1, 1036, -1, 3493 1038, -1, 1208, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, 1053, 1054, 109, -1, 111, 3495 1226, 113, 114, -1, -1, 117, 118, 119, 120, 121, 3496 122, -1, -1, -1, -1, -1, 1074, -1, -1, -1, 3551 72, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3552 -1, 83, 84, -1, 117, 118, 119, 120, 121, 122, 3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, 132, 3497 3554 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3498 3555 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3499 19, 20, 21, 22, 23, 24, 25, 26, 27, 1275, 3500 1276, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3501 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3502 -1, 1129, -1, -1, -1, -1, -1, -1, -1, -1, 3503 -1, -1, -1, -1, -1, -1, -1, -1, 67, 1147, 3504 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 3505 -1, -1, -1, -1, 1162, 1163, -1, 3, 4, 5, 3506 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3507 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3508 26, 27, 111, -1, 30, 31, 32, 33, 117, 118, 3509 36, 37, 38, 39, 40, 41, -1, 43, -1, -1, 3510 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3511 -1, 57, -1, -1, -1, 61, 62, -1, 64, 1395, 3512 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3513 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3514 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3556 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3557 -1, 30, 31, 32, 33, -1, -1, 36, 37, 38, 3558 39, 40, -1, -1, -1, 10, 11, 12, 13, 14, 3559 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3560 25, 26, 27, 28, -1, -1, -1, 66, 67, -1, 3561 69, -1, 71, 72, 39, 74, 75, 76, -1, 1519, 3562 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3515 3563 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3516 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3517 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3518 -1, 127, -1, -1, -1, -1, 132, -1, -1, -1, 3519 -1, -1, -1, -1, -1, 1303, -1, -1, 1306, -1, 3520 -1, -1, -1, -1, -1, -1, 1482, -1, -1, -1, 3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3523 1506, 1507, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3525 -1, -1, -1, -1, -1, 1531, 3, 4, 5, 6, 3526 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3527 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3528 27, -1, -1, 30, 31, 32, 33, -1, -1, 36, 3529 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3530 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3531 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3532 67, -1, 69, 39, 71, 72, -1, 74, 75, 76, 3533 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3534 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3535 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3536 -1, -1, 109, -1, 111, -1, -1, 83, 84, -1, 3537 117, 118, 119, 120, 121, 122, 4, 5, 6, 7, 3538 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3539 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3540 -1, -1, 30, 31, 32, -1, -1, -1, 1516, 37, 3541 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3542 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3543 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3544 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3545 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3546 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3547 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3548 -1, 109, -1, 111, -1, -1, -1, -1, 116, 117, 3549 118, 119, 120, 121, 122, 4, 5, 6, 7, 8, 3550 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3551 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3552 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3553 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3554 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3555 -1, -1, 30, 31, 32, -1, -1, 66, 67, -1, 3556 69, 39, 71, 72, -1, 74, 75, 76, -1, -1, 3557 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3558 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3559 -1, -1, -1, -1, -1, -1, 74, 75, -1, -1, 3560 109, -1, 111, -1, -1, -1, -1, 116, 117, 118, 3564 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3565 109, -1, 111, 78, -1, -1, -1, -1, 117, 118, 3561 3566 119, 120, 121, 122, 4, 5, 6, 7, 8, 9, 3562 3567 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 3565 3570 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3566 3571 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3567 -1, -1, -1, -1, -1, -1, 66, 67, -1, 69,3572 -1, 30, 31, 32, -1, -1, 66, 67, -1, 69, 3568 3573 39, 71, 72, -1, 74, 75, 76, -1, -1, 79, 3569 3574 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3570 3575 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,3576 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3572 3577 -1, 111, -1, -1, -1, -1, 116, 117, 118, 119, 3573 3578 120, 121, 122, 4, 5, 6, 7, 8, 9, 10, … … 3575 3580 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3576 3581 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3578 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3579 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1,3582 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3583 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3584 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3580 3585 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3581 3586 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3583 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1,3584 111, -1, -1, -1, -1, -1, 117, 118, 119, 120,3587 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3588 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3589 111, -1, -1, -1, -1, 116, 117, 118, 119, 120, 3585 3590 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3586 3591 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, … … 3594 3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3595 3600 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3596 -1, -1, -1, -1, -1, 117, 118, 119, 120, 121,3601 -1, -1, -1, -1, 116, 117, 118, 119, 120, 121, 3597 3602 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3598 3603 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, … … 3618 3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3619 3624 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3620 -1, -1, -1, 117, 118, 119, 120, 121, 122, 0,3621 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,3622 1 1, 12, 13, 14, 15, 16, 17, 18, 19, 20,3623 2 1, 22, 23, 24, 25, 26, 27, -1, -1, 30,3624 31, 32, 33, -1, -1, 36, -1, -1, 39, 40,3625 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3626 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3627 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3628 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3629 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3625 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3626 3631 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3627 -1, -1, -1, 64, -1, -1, 67, -1, 69, -1,3628 7 1, 72, -1, 74, 75, 76, -1, -1, -1, -1,3629 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1,3632 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3633 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3634 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3630 3635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3632 111, -1, -1, -1, -1, -1, 117, 118, 3, 4, 3633 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3634 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3635 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3636 -1, 36, -1, -1, 39, 40, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3638 -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 3639 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3640 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3636 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3637 -1, -1, 117, 118, 119, 120, 121, 122, 4, 5, 3638 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3639 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3640 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3641 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3641 3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3644 115, -1, 117, 118, 3, 4, 5, 6, 7, 8, 3645 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3646 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3647 -1, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3648 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3644 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3645 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3646 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3649 3647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3650 -1, -1, -1, -1, -1, 64, -1, -1, 67, -1, 3651 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3652 -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, 3648 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3649 -1, 117, 118, 119, 120, 121, 122, 3, 4, 5, 3650 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3651 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3652 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3653 -1, -1, -1, 39, -1, 10, 11, 12, 13, 14, 3654 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3655 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, 3656 35, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3657 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3660 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3661 -1, 117, 118, 3, 4, 5, 6, 7, 8, 9, 3662 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3663 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3664 30, 31, 32, 33, -1, -1, 36, -1, -1, 39, 3653 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 3666 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 109, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3656 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3658 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3659 -1, -1, -1, -1, -1, -1, 39, -1, 10, 11, 3660 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3661 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3662 32, 33, 34, 35, 67, -1, 69, 39, 71, 72, 3663 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3664 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3666 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3667 -1, -1, -1, -1, 117, 118, 3, 4, 5, 6, 3668 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3669 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3670 27, 28, -1, 30, 31, 32, 33, -1, -1, 36, 3671 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3672 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3674 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3675 -1, 78, 4, 5, 6, 7, 8, 9, 10, 11, 3676 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3677 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3678 32, -1, -1, -1, 111, -1, -1, 39, -1, -1, 3679 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3682 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3683 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3686 -1, -1, -1, -1, -1, 117, 118, 4, 5, 6, 3687 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3688 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3689 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3690 -1, -1, 39, -1, -1, -1, -1, 10, 11, 12, 3691 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3692 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3693 67, -1, 69, -1, 71, -1, 39, 74, 75, -1, 3667 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3668 -1, 71, -1, -1, 74, 75, -1, -1, 78, 3, 3694 3669 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3695 3670 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3696 24, 25, 26, 27, 67, -1, 30, 31, 32, -1, 3697 -1, 74, 75, 110, 111, 39, -1, -1, -1, -1, 3698 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, 67, -1, 69, 109, 71, 111, -1, 3701 74, 75, -1, -1, 117, 118, -1, -1, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 3705 -1, -1, -1, 117, 118, 4, 5, 6, 7, 8, 3706 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3707 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3708 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3709 39, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3710 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3711 26, 27, -1, -1, 30, 31, 32, -1, 67, -1, 3712 69, -1, 71, 39, 40, 74, 75, -1, -1, -1, 3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714 -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 3715 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3716 -1, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3717 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3718 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3719 24, 25, 26, 27, -1, 111, 30, 31, 32, 115, 3720 -1, 117, 118, -1, -1, 39, -1, -1, -1, -1, 3671 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3672 -1, 111, 36, -1, -1, 39, -1, 117, 118, -1, 3721 3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3722 3674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3723 3675 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3724 74, 75, -1, 4, 5, 6, 7, 8, 9, 10,3676 74, 75, 3, 4, 5, 6, 7, 8, 9, 10, 3725 3677 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3726 3678 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, … … 3736 3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 3689 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3738 -1, 69, -1, 71, -1, -1, 74, 75, -1, 4, 3690 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3691 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3695 118, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3696 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3697 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3698 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 3699 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3700 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3701 -1, 30, 31, 32, 67, -1, 69, -1, 71, -1, 3702 39, 74, 75, -1, 4, 5, 6, 7, 8, 9, 3703 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3704 20, 21, 22, 23, 24, 25, 26, 27, 67, -1, 3705 30, 31, 32, -1, -1, 74, 75, 110, 111, 39, 3706 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3709 109, 71, 111, -1, 74, 75, -1, -1, 117, 118, 3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3713 -1, 111, -1, -1, -1, -1, -1, 117, 118, 4, 3739 3714 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3740 3715 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3741 3716 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3742 -1, -1, -1, 111, 39, -1, -1, -1, -1, 117, 3743 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, -1, -1, -1, 39, -1, -1, -1, 10, 11, 3718 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3719 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3720 32, -1, 67, -1, 69, -1, 71, 39, 40, 74, 3721 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3744 3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3745 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3746 75, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3747 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3748 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3749 39, 40, -1, -1, -1, -1, 111, -1, -1, -1, 3750 -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, 3751 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 3752 -1, -1, -1, 72, -1, 74, 75, 76, -1, -1, 3753 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3723 -1, 96, -1, -1, -1, 67, -1, -1, -1, -1, 3724 -1, -1, 74, 75, -1, -1, 111, -1, -1, -1, 3725 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3727 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3728 30, 31, 32, 115, -1, 117, 118, -1, -1, 39, 3754 3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3755 3730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3756 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3731 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3732 -1, 71, -1, -1, 74, 75, -1, 4, 5, 6, 3733 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3734 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3735 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3736 -1, 111, 39, -1, -1, -1, -1, 117, 118, -1, 3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3739 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3740 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3741 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3742 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3743 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3744 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3746 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3747 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3748 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3749 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3750 31, 32, -1, -1, -1, -1, -1, 111, 39, -1, 3751 -1, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3754 71, -1, -1, 74, 75, 10, 11, 12, 13, 14, 3755 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3756 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3757 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3758 111, -1, -1, -1, -1, -1, 117, 118, -1, -1, 3759 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3760 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3761 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3762 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3764 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3765 -1, -1, 117, 118, 119, 120, 121, 122, 10, 11, 3766 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3767 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3768 32, -1, -1, -1, -1, 37, 38, 39, 40, 10, 3769 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3770 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3771 31, 32, -1, -1, 66, 67, -1, -1, 39, -1, 3772 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3773 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3774 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3775 -1, 72, -1, 74, 75, 76, -1, 109, 110, 111, 3776 -1, -1, 83, 84, -1, 117, 118, 119, 120, 121, 3777 122, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3778 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3779 111, 30, 31, 32, -1, -1, 117, 118, 37, 38, 3780 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3781 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3782 -1, -1, 30, 31, 32, -1, -1, 66, 67, -1, 3783 -1, 39, -1, 72, -1, 74, 75, 76, -1, -1, 3784 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3786 -1, -1, -1, -1, 72, -1, 74, 75, -1, -1, 3787 109, -1, 111, -1, -1, 83, 84, -1, 117, 118, 3757 3788 119, 120, 121, 122, 10, 11, 12, 13, 14, 15, 3758 3789 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3759 26, 27, -1, -1, 30, 31, 32, -1, -1, -1,3760 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14,3790 26, 27, -1, 111, 30, 31, 32, -1, -1, 117, 3791 118, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3761 3792 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3762 3793 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3763 66, 67, -1, -1, 39, -1, 72, -1, 74, 75,3794 66, 67, -1, -1, 39, 40, 72, -1, 74, 75, 3764 3795 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3765 3796 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3766 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74,3767 75, 76, -1, 109, 110, 111, -1, -1, 83, 84,3797 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3798 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3768 3799 -1, 117, 118, 119, 120, 121, 122, 10, 11, 12, 3769 3800 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3770 3801 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3771 -1, -1, 117, 118, 37, 38, 39, 40, 10, 11,3802 115, -1, 117, 118, 37, 38, 39, 40, 10, 11, 3772 3803 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3773 3804 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3774 32, -1, -1, 66, 67, -1, -1, 39, -1, 72,3805 32, -1, -1, 66, 67, -1, -1, 39, 40, 72, 3775 3806 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3776 3807 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3777 3808 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3778 72, -1, 74, 75, -1, -1, 109, -1, 111, -1,3779 -1, 83, 84, -1, 117, 118, 119, 120, 121, 122,3809 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3810 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3780 3811 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3781 3812 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3782 30, 31, 32, -1, -1, 117, 118, 37, 38, 39, 3783 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3813 30, 31, 32, 115, -1, 117, 118, 37, 38, 39, 3814 40, -1, -1, -1, -1, -1, -1, -1, 10, 11, 3815 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3816 22, 23, 24, 25, 26, 27, 66, 67, 30, 31, 3817 32, -1, 72, -1, 74, 75, 76, 39, -1, 79, 3818 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3820 -1, -1, -1, -1, -1, 67, -1, -1, -1, 109, 3821 -1, 111, 74, 75, -1, -1, -1, 117, 118, 119, 3822 120, 121, 122, 3, 4, 5, 6, 7, 8, 9, 3823 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3824 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3825 30, 31, 32, -1, -1, 117, 118, -1, -1, 39, 3826 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3827 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3828 27, -1, -1, 30, 31, 32, -1, 67, -1, 69, 3829 -1, 71, 39, -1, 74, 75, -1, -1, -1, -1, 3830 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3784 3831 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3785 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3786 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3787 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3788 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3789 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3790 -1, 111, -1, -1, -1, -1, -1, 117, 118, 119, 3791 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3792 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3793 27, -1, 111, 30, 31, 32, 115, -1, 117, 118, 3794 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3795 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3796 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3797 67, -1, -1, 39, 40, 72, -1, 74, 75, 76, 3798 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3799 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3801 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3802 117, 118, 119, 120, 121, 122, 10, 11, 12, 13, 3832 67, 30, 31, 32, -1, 72, -1, 74, 75, 76, 3833 39, -1, -1, -1, 114, -1, 83, 84, -1, 10, 3834 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3835 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3836 31, 32, 109, 72, 111, 74, 75, 76, 39, -1, 3837 117, 118, -1, -1, 83, 84, -1, 10, 11, 12, 3838 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3839 23, 24, 25, 26, 27, 28, 67, 30, 31, 32, 3840 109, 72, 111, 74, 75, 76, 39, -1, 117, 118, 3841 -1, -1, 83, 84, -1, 10, 11, 12, 13, 14, 3842 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3843 25, 26, 27, 28, 67, 30, 31, 32, 109, -1, 3844 111, 74, 75, -1, 39, 78, 117, 118, 10, 11, 3845 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3846 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3847 32, -1, 67, -1, -1, -1, 109, 39, 111, 74, 3848 75, -1, -1, 78, 117, 118, 10, 11, 12, 13, 3803 3849 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, 111, 30, 31, 32, 115, 3805 -1, 117, 118, 37, 38, 39, 40, -1, -1, -1, 3806 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3807 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3808 26, 27, 66, 67, 30, 31, 32, -1, 72, -1, 3809 74, 75, 76, 39, -1, 79, 80, 81, 82, 83, 3810 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3812 -1, 67, -1, -1, -1, 109, -1, 111, 74, 75, 3813 -1, -1, -1, 117, 118, 119, 120, 121, 122, 3, 3814 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3815 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3816 24, 25, 26, 27, -1, 111, 30, 31, 32, -1, 3817 -1, 117, 118, -1, -1, 39, -1, -1, -1, 10, 3818 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3819 21, 22, 23, 24, 25, 26, 27, 28, -1, 30, 3820 31, 32, -1, 67, -1, 69, -1, 71, 39, -1, 3821 74, 75, -1, -1, -1, -1, -1, 10, 11, 12, 3822 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3823 23, 24, 25, 26, 27, -1, 67, 30, 31, 32, 3824 -1, 72, -1, 74, 75, 76, 39, 78, -1, -1, 3825 114, -1, 83, 84, -1, 10, 11, 12, 13, 14, 3826 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3827 25, 26, 27, 28, 67, 30, 31, 32, -1, 72, 3828 111, 74, 75, 76, 39, -1, 117, 118, -1, -1, 3829 83, 84, -1, 10, 11, 12, 13, 14, 15, 16, 3830 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3831 27, -1, 67, 30, 31, 32, 109, -1, 111, 74, 3832 75, -1, 39, 78, 117, 118, 10, 11, 12, 13, 3833 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3834 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3835 67, -1, -1, -1, -1, 39, 111, 74, 75, -1, 3850 24, 25, 26, 27, -1, 67, 30, 31, 32, -1, 3851 -1, -1, 74, 75, -1, 39, 111, -1, -1, -1, 3836 3852 -1, -1, 117, 118, 10, 11, 12, 13, 14, 15, 3837 3853 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3838 26, 27, -1, 67, 30, 31, 32, -1, -1, -1,3839 74, 75, -1, 39, 111, -1, -1, -1, -1, -1,3840 117, 118, 10, 11, 12, 13, 14, 15, 16, 17,3841 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,3842 -1, 67, 30, 31, 32, -1, -1, 111, 74, 75,3843 -1, 39, -1, 117, 118, 10, 11, 12, 13, 14,3854 26, 27, -1, 67, 30, 31, 32, -1, -1, 111, 3855 74, 75, -1, 39, -1, 117, 118, 10, 11, 12, 3856 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3857 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3858 -1, 67, -1, -1, -1, -1, 39, 111, 74, 75, 3859 -1, -1, -1, 117, 118, 10, 11, 12, 13, 14, 3844 3860 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3845 25, 26, 27, -1, -1, 30, 31, 32, -1, 67,3846 -1, -1, -1, -1, 39, 111, 74, 75, -1, -1,3861 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3862 -1, 74, 75, -1, 39, 111, -1, -1, -1, -1, 3847 3863 -1, 117, 118, 10, 11, 12, 13, 14, 15, 16, 3848 3864 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3849 27, -1, 67, 30, 31, 32, -1, -1, -1, 74, 3850 75, -1, 39, 111, -1, -1, -1, -1, -1, 117, 3851 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3852 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3853 67, 30, 31, 32, -1, -1, 111, 74, 75, -1, 3854 39, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3855 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3856 20, 21, 22, 23, 24, 25, 26, 27, 67, -1, 3857 30, 31, 32, -1, 111, 74, 75, -1, -1, 39, 3858 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3865 27, -1, 67, 30, 31, 32, -1, -1, 111, 74, 3866 75, -1, 39, -1, 117, 118, 4, 5, 6, 7, 3867 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3868 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3869 67, -1, 30, 31, 32, -1, 111, 74, 75, -1, 3870 -1, 39, 117, 118, -1, -1, -1, -1, -1, -1, 3859 3871 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3860 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3861 -1, 71, -1, -1, 74, 75, -1, -1, 117, 118, 3862 37, 38, -1, 40, 41, -1, 43, -1, -1, 46, 3863 47, 48, 49, 50, 51, 52, 53, -1, -1, 56, 3872 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3873 -1, 69, -1, 71, 111, -1, 74, 75, -1, -1, 3874 117, 118, 37, 38, -1, 40, 41, -1, 43, -1, 3875 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3876 -1, 56, 57, -1, -1, -1, 61, 62, -1, 64, 3877 -1, 66, 110, -1, -1, -1, -1, 72, -1, -1, 3878 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3879 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3881 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3882 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3883 37, 38, 127, 40, 41, -1, 43, 132, -1, 46, 3884 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3864 3885 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3865 110, -1, -1, -1, -1, 72, -1, -1, -1, 76,3886 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3866 3887 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3867 3888 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3868 3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3869 3890 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3870 117, 118, 119, 120, 121, 122, -1, -1, 37, 38, 3871 127, 40, 41, -1, 43, 132, -1, 46, 47, 48, 3872 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3873 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3874 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3875 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3891 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3892 127, -1, -1, -1, -1, 132, 4, 5, 6, 7, 3893 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3894 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3895 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3896 -1, 39, -1, 37, 38, -1, 40, 41, -1, 43, 3897 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 3898 -1, -1, 56, 57, -1, -1, -1, 61, 62, 67, 3899 64, 69, 66, 71, -1, -1, 74, 75, 72, -1, 3900 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3901 84, -1, 86, 87, -1, -1, -1, -1, 96, -1, 3876 3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3878 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3879 119, 120, 121, 122, -1, -1, -1, -1, 127, -1, 3880 -1, -1, -1, 132, 4, 5, 6, 7, 8, 9, 3881 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3882 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3883 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3884 -1, 37, 38, -1, 40, 41, -1, 43, 44, 45, 3903 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3904 114, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3905 -1, 37, 38, 127, 40, 41, -1, 43, 44, 45, 3885 3906 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3886 56, 57, -1, -1, -1, 61, 62, 67, 64, 69,3887 66, 71, -1, -1, 74, 75, 72, -1, -1, -1,3907 -1, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3908 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3888 3909 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3889 86, 87, -1, -1, -1, -1, 96, -1, -1, -1,3910 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3890 3911 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3891 3912 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3892 3913 -1, 117, 118, 119, 120, 121, 122, -1, -1, 37, 3893 38, 127, 40, 41, -1, 43, 44, 45, 46, 47,3914 38, 127, 40, 41, -1, 43, -1, -1, 46, 47, 3894 3915 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3895 3916 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3896 3917 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3897 3918 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3919 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40, 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3921 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3922 118, 119, 120, 121, 122, 66, -1, -1, -1, 127, 3923 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3924 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3925 -1, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3926 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3927 111, -1, 37, 38, -1, 40, 117, 118, 119, 120, 3928 121, 122, 66, -1, -1, -1, -1, -1, 72, -1, 3929 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3930 84, 66, 86, 87, -1, -1, -1, 72, -1, -1, 3931 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3932 -1, 86, 87, -1, -1, 109, -1, 111, -1, 37, 3933 38, -1, 40, 117, 118, 119, 120, 121, 122, -1, 3934 -1, -1, -1, -1, 109, -1, 111, -1, 37, 38, 3935 -1, 40, 117, 118, 119, 120, 121, 122, 66, -1, 3936 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3937 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 3938 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3939 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3940 -1, 109, -1, -1, -1, 37, 38, -1, 40, 117, 3941 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3942 109, -1, -1, -1, 37, 38, -1, 40, 117, 118, 3943 119, 120, 121, 122, 66, -1, -1, -1, -1, -1, 3944 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3945 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3946 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3947 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3948 -1, -1, -1, -1, -1, 117, 118, 119, 120, 121, 3949 122, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3950 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3951 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3952 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3953 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 3954 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3898 3955 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3899 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3901 118, 119, 120, 121, 122, -1, -1, 37, 38, 127, 3902 40, 41, -1, 43, -1, -1, 46, 47, 48, 49, 3903 50, 51, 52, 53, -1, -1, -1, 57, -1, -1, 3904 -1, 61, 62, -1, 64, -1, 66, -1, -1, -1, 3905 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3906 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3907 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3908 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3909 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3910 120, 121, 122, 66, -1, -1, -1, 127, -1, 72, 3911 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3912 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3913 -1, 37, 38, -1, 40, -1, -1, -1, -1, -1, 3914 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3915 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122, 3916 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3917 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3918 86, 87, -1, -1, -1, -1, -1, -1, 37, 38, 3919 -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3920 -1, -1, -1, 109, -1, 111, -1, 37, 38, -1, 3921 40, 117, 118, 119, 120, 121, 122, 66, -1, -1, 3922 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3923 79, 80, 81, 82, 83, 84, 66, 86, 87, -1, 3924 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3925 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3926 109, -1, 111, -1, 37, 38, -1, 40, 117, 118, 3927 119, 120, 121, 122, -1, -1, -1, -1, -1, 109, 3928 -1, 111, -1, 37, 38, -1, 40, 117, 118, 119, 3929 120, 121, 122, 66, -1, -1, -1, -1, -1, 72, 3930 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3931 83, 84, 66, 86, 87, -1, -1, -1, 72, -1, 3932 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3933 84, -1, 86, 87, -1, -1, 109, -1, -1, -1, 3934 37, 38, -1, 40, 117, 118, 119, 120, 121, 122, 3935 -1, -1, -1, -1, -1, 109, -1, -1, -1, 37, 3936 38, -1, 40, 117, 118, 119, 120, 121, 122, 66, 3937 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3938 -1, -1, 79, 80, 81, 82, 83, 84, 66, 86, 3939 87, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3940 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3941 -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, 3942 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3943 -1, 109, -1, -1, -1, -1, -1, -1, -1, 117, 3944 118, 119, 120, 121, 122, 4, 5, 6, 7, 8, 3957 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3958 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3959 84, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3960 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3961 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3962 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3963 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3964 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3965 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3966 -1, -1, 74, 75, 3, 4, 5, 6, 7, 8, 3945 3967 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3946 3968 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3947 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3969 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3948 3970 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3949 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3950 3972 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3951 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3952 -1, -1, -1, -1, 83, 84, 3, 4, 5, 6, 3973 69, -1, 71, -1, -1, 74, 75, 4, 5, 6, 3953 3974 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3954 3975 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, … … 3957 3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3958 3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3959 67, -1, 69, -1, 71, -1, -1, 74, 75, 3, 3960 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3961 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3962 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3963 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 3964 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3965 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3966 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3967 74, 75, 4, 5, 6, 7, 8, 9, 10, 11, 3968 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3969 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3970 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3972 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3973 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3974 -1, -1, 74, 75 3980 67, -1, 69, -1, 71, -1, -1, 74, 75 3975 3981 }; 3976 3982 … … 3983 3989 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 3984 3990 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 3985 76, 83, 84, 109, 111, 117, 118, 137, 140, 15 0,3986 199, 213, 214, 215, 216, 217, 218, 219, 220, 221,3987 22 2, 223, 224, 225, 226, 227, 228, 229, 230, 232,3988 23 3, 234, 235, 236, 237, 238, 240, 241, 242, 243,3989 24 4, 245, 247, 255, 256, 283, 284, 285, 293, 296,3990 30 2, 303, 305, 307, 308, 314, 319, 323, 324, 325,3991 32 6, 327, 328, 329, 330, 350, 367, 368, 369, 370,3992 72, 139, 140, 15 0, 216, 218, 226, 228, 237, 241,3993 24 3, 284, 82, 109, 312, 313, 314, 312, 312, 72,3994 74, 75, 76, 138, 139, 27 3, 274, 294, 295, 74,3995 75, 27 4, 109, 305, 11, 200, 109, 150, 319, 324,3996 32 5, 326, 328, 329, 330, 112, 134, 111, 219, 226,3997 22 8, 323, 327, 366, 367, 370, 371, 135, 107, 131,3998 27 7, 114, 135, 174, 74, 75, 137, 272, 135, 135,3999 135, 116, 135, 74, 75, 109, 15 0, 309, 318, 319,4000 32 0, 321, 322, 323, 327, 331, 332, 333, 334, 335,4001 34 1, 3, 28, 78, 239, 3, 5, 74, 111, 150,4002 21 8, 229, 233, 235, 244, 285, 323, 327, 370, 216,4003 21 8, 228, 237, 241, 243, 284, 323, 327, 33, 234,4004 23 4, 229, 235, 135, 234, 229, 234, 229, 75, 109,4005 114, 27 4, 285, 114, 274, 234, 229, 116, 135, 135,4006 0, 134, 109, 17 4, 312, 312, 134, 111, 226, 228,4007 36 8, 272, 272, 131, 228, 109, 150, 309, 319, 323,4008 111, 15 0, 370, 306, 231, 314, 109, 290, 109, 109,3991 76, 83, 84, 109, 111, 117, 118, 137, 140, 151, 3992 200, 214, 215, 216, 217, 218, 219, 220, 221, 222, 3993 223, 224, 225, 226, 227, 228, 229, 230, 231, 233, 3994 234, 235, 236, 237, 238, 239, 241, 242, 243, 244, 3995 245, 246, 248, 256, 257, 284, 285, 286, 294, 297, 3996 303, 304, 306, 308, 309, 315, 320, 324, 325, 326, 3997 327, 328, 329, 330, 331, 351, 368, 369, 370, 371, 3998 72, 139, 140, 151, 217, 219, 227, 229, 238, 242, 3999 244, 285, 82, 109, 313, 314, 315, 313, 313, 72, 4000 74, 75, 76, 138, 139, 274, 275, 295, 296, 74, 4001 75, 275, 109, 306, 11, 201, 109, 151, 320, 325, 4002 326, 327, 329, 330, 331, 112, 134, 111, 220, 227, 4003 229, 324, 328, 367, 368, 371, 372, 135, 107, 131, 4004 278, 114, 135, 175, 74, 75, 137, 273, 135, 135, 4005 135, 116, 135, 74, 75, 109, 151, 310, 319, 320, 4006 321, 322, 323, 324, 328, 332, 333, 334, 335, 336, 4007 342, 3, 28, 78, 240, 3, 5, 74, 111, 151, 4008 219, 230, 234, 236, 245, 286, 324, 328, 371, 217, 4009 219, 229, 238, 242, 244, 285, 324, 328, 33, 235, 4010 235, 230, 236, 135, 235, 230, 235, 230, 75, 109, 4011 114, 275, 286, 114, 275, 235, 230, 116, 135, 135, 4012 0, 134, 109, 175, 313, 313, 134, 111, 227, 229, 4013 369, 273, 273, 131, 229, 109, 151, 310, 320, 324, 4014 111, 151, 371, 307, 232, 315, 109, 291, 109, 109, 4009 4015 51, 109, 37, 38, 40, 66, 72, 76, 79, 80, 4010 4016 81, 82, 86, 87, 109, 111, 119, 120, 121, 122, 4011 136, 140, 141, 142, 143, 144, 1 49, 150, 151, 152,4012 15 3, 154, 155, 156, 157, 158, 159, 160, 161, 162,4013 16 3, 165, 168, 226, 276, 292, 366, 371, 228, 110,4014 110, 110, 110, 110, 110, 110, 74, 75, 111, 22 6,4015 27 2, 350, 368, 111, 117, 150, 165, 218, 219, 225,4016 22 8, 232, 233, 237, 240, 241, 243, 262, 263, 267,4017 26 8, 269, 270, 284, 350, 362, 363, 364, 365, 370,4018 37 1, 112, 109, 323, 327, 370, 109, 116, 132, 111,4019 114, 15 0, 165, 278, 278, 115, 134, 116, 132, 109,4020 116, 132, 116, 132, 116, 132, 31 2, 132, 319, 320,4021 32 1, 322, 332, 333, 334, 335, 228, 318, 331, 64,4022 31 1, 111, 312, 349, 350, 312, 312, 174, 134, 109,4023 31 2, 349, 312, 312, 228, 309, 109, 109, 227, 228,4024 22 6, 228, 112, 134, 226, 366, 371, 174, 134, 272,4025 27 7, 218, 233, 323, 327, 174, 134, 294, 228, 237,4026 132, 22 8, 228, 292, 248, 246, 258, 274, 257, 228,4027 29 4, 132, 132, 305, 134, 139, 271, 3, 135, 208,4028 2 09, 223, 225, 228, 134, 311, 109, 311, 165, 319,4029 22 8, 109, 134, 272, 114, 33, 34, 35, 226, 286,4030 28 7, 289, 134, 128, 131, 291, 134, 229, 234, 235,4031 27 2, 315, 316, 317, 109, 141, 109, 149, 109, 149,4032 15 2, 109, 149, 109, 109, 149, 149, 111, 165, 170,4033 17 4, 226, 275, 366, 370, 112, 134, 82, 85, 86,4017 136, 140, 141, 142, 143, 144, 150, 151, 152, 153, 4018 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 4019 164, 166, 169, 227, 277, 293, 367, 372, 229, 110, 4020 110, 110, 110, 110, 110, 110, 74, 75, 111, 227, 4021 273, 351, 369, 111, 117, 151, 166, 219, 220, 226, 4022 229, 233, 234, 238, 241, 242, 244, 263, 264, 268, 4023 269, 270, 271, 285, 351, 363, 364, 365, 366, 371, 4024 372, 112, 109, 324, 328, 371, 109, 116, 132, 111, 4025 114, 151, 166, 279, 279, 115, 134, 116, 132, 109, 4026 116, 132, 116, 132, 116, 132, 313, 132, 320, 321, 4027 322, 323, 333, 334, 335, 336, 229, 319, 332, 64, 4028 312, 111, 313, 350, 351, 313, 313, 175, 134, 109, 4029 313, 350, 313, 313, 229, 310, 109, 109, 228, 229, 4030 227, 229, 112, 134, 227, 367, 372, 175, 134, 273, 4031 278, 219, 234, 324, 328, 175, 134, 295, 229, 238, 4032 132, 229, 229, 293, 249, 247, 259, 275, 258, 229, 4033 295, 132, 132, 306, 134, 139, 272, 3, 135, 209, 4034 210, 224, 226, 229, 134, 312, 109, 312, 166, 320, 4035 229, 109, 134, 273, 114, 33, 34, 35, 227, 287, 4036 288, 290, 134, 128, 131, 292, 134, 230, 235, 236, 4037 273, 316, 317, 318, 109, 141, 109, 150, 109, 150, 4038 153, 109, 150, 109, 109, 150, 150, 111, 166, 171, 4039 175, 227, 276, 367, 371, 112, 134, 82, 85, 86, 4034 4040 87, 109, 111, 113, 114, 97, 98, 99, 100, 101, 4035 102, 103, 104, 105, 106, 107, 131, 16 7, 152, 152,4041 102, 103, 104, 105, 106, 107, 131, 168, 153, 153, 4036 4042 117, 123, 124, 119, 120, 88, 89, 90, 91, 125, 4037 4043 126, 92, 93, 118, 127, 128, 94, 95, 129, 131, 4038 37 3, 109, 150, 345, 346, 347, 348, 349, 110, 116,4039 109, 3 49, 350, 109, 349, 350, 134, 109, 226, 368,4040 112, 134, 135, 111, 22 6, 228, 361, 362, 370, 371,4041 135, 109, 111, 15 0, 319, 336, 337, 338, 339, 340,4042 34 1, 342, 343, 344, 350, 351, 352, 353, 354, 355,4043 35 6, 150, 370, 228, 135, 135, 150, 226, 228, 363,4044 27 2, 226, 350, 363, 272, 109, 134, 134, 134, 112,4045 134, 72, 111, 113, 140, 27 4, 278, 279, 280, 281,4046 28 2, 134, 134, 134, 134, 134, 134, 309, 110, 110,4047 110, 110, 110, 110, 110, 31 8, 331, 109, 277, 112,4048 20 8, 134, 309, 170, 276, 170, 276, 309, 111, 208,4049 31 1, 174, 134, 208, 110, 40, 111, 115, 226, 249,4050 25 0, 251, 366, 114, 116, 372, 131, 259, 114, 228,4051 26 4, 265, 266, 269, 270, 110, 116, 174, 134, 117,4052 16 5, 134, 225, 228, 263, 362, 370, 303, 304, 109,4053 15 0, 336, 110, 116, 373, 274, 286, 109, 114, 274,4054 27 6, 286, 110, 116, 109, 141, 110, 130, 275, 275,4055 27 5, 146, 165, 276, 275, 112, 134, 110, 116, 110,4056 109, 15 0, 349, 357, 358, 359, 360, 110, 116, 165,4057 111, 139, 145, 146, 134, 111, 139, 145, 165, 152,4058 15 2, 152, 153, 153, 154, 154, 155, 155, 155, 155,4059 156, 15 6, 157, 158, 159, 160, 161, 130, 170, 165,4060 1 34, 346, 347, 348, 228, 345, 312, 312, 165, 276,4061 134, 271, 134, 226, 350, 363, 228, 232, 112, 112,4062 1 34, 370, 112, 109, 134, 319, 337, 338, 339, 342,4063 3 52, 353, 354, 112, 134, 228, 336, 340, 351, 109,4064 312, 355, 373, 312, 312, 373, 109, 312, 355, 312,4065 31 2, 312, 312, 350, 226, 361, 371, 272, 112, 116,4066 11 2, 116, 373, 226, 363, 373, 260, 261, 262, 263,4067 26 0, 260, 272, 165, 134, 111, 274, 130, 116, 372,4068 278, 111, 130, 282, 29, 210, 211, 272, 260, 139,4069 309, 139, 311, 109, 349, 350, 109, 349, 350, 142,4070 350, 174, 264, 110, 110, 110, 110, 112, 174, 208,4071 174, 114, 250, 251, 112, 134, 109, 130, 150, 252,4072 25 4, 318, 319, 331, 357, 116, 132, 116, 132, 274,4073 2 48, 274, 115, 163, 164, 258, 135, 135, 139, 223,4074 135, 135, 260, 109, 150, 370, 135, 115, 228, 287,4075 288, 135, 134, 134, 109, 135, 110, 316, 170, 171,4076 1 30, 132, 111, 141, 201, 202, 203, 110, 116, 110,4077 110, 110, 110, 11 1, 165, 358, 359, 360, 228, 357,4078 3 12, 312, 114, 152, 168, 165, 166, 169, 116, 135,4079 13 4, 110, 116, 165, 134, 115, 163, 130, 264, 110,4080 110, 110, 345, 264, 110, 260, 226, 363, 111, 117,4081 1 50, 165, 165, 228, 342, 264, 110, 110, 110, 110,4082 110, 110, 110, 7, 228, 336, 340, 351, 134, 134,4083 373, 134, 134, 110, 135, 135, 135, 135, 277, 135,4084 1 63, 164, 165, 310, 134, 278, 280, 115, 134, 212,4085 2 74, 40, 41, 43, 46, 47, 48, 49, 50, 51,4086 5 2, 53, 57, 61, 62, 72, 111, 127, 171, 172,4087 173, 174, 175, 176, 17 8, 179, 191, 193, 194, 199,4088 2 13, 308, 29, 135, 131, 277, 134, 134, 110, 135,4089 1 74, 248, 132, 132, 319, 164, 228, 253, 254, 253,4090 2 74, 312, 115, 259, 372, 110, 116, 112, 112, 135,4091 228, 116, 373, 290, 110, 286, 216, 218, 226, 298,4092 299, 300, 301, 292, 110, 110, 130, 164, 109, 110,4093 1 30, 116, 139, 112, 110, 110, 110, 357, 279, 116,4094 1 35, 169, 112, 139, 147, 148, 146, 135, 147, 163,4095 1 68, 135, 109, 349, 350, 135, 135, 134, 135, 135,4096 13 5, 165, 110, 135, 109, 349, 350, 109, 355, 109,4097 355, 350, 227, 7, 117, 135, 165, 264, 264, 263,4098 26 7, 267, 268, 116, 116, 110, 110, 112, 96, 122,4099 1 35, 135, 147, 278, 165, 116, 132, 213, 217, 228,4100 2 32, 109, 109, 172, 109, 109, 72, 132, 72, 132,4101 72, 117, 171, 109, 174, 166, 166, 130, 112, 144,4102 13 2, 135, 134, 135, 212, 110, 165, 264, 264, 312,4103 110, 115, 252, 115, 134, 110, 134, 135, 309, 115,4104 13 4, 135, 135, 110, 114, 201, 112, 164, 132, 201,4105 203, 110, 109, 349, 350, 372, 166, 112, 135, 85,4106 11 3, 116, 135, 112, 135, 110, 134, 110, 110, 112,4107 11 2, 112, 135, 110, 134, 134, 134, 165, 165, 135,4108 1 12, 135, 135, 135, 135, 134, 134, 164, 164, 112,4109 1 12, 135, 135, 274, 228, 170, 170, 47, 170, 134,4110 132, 132, 132, 170, 132, 170, 58, 59, 60, 195,4111 196, 197, 132, 63, 132, 312, 114, 176, 115, 132,4112 1 35, 135, 96, 269, 270, 110, 299, 116, 132, 116,4113 1 32, 115, 297, 130, 141, 110, 110, 130, 134, 115,4114 1 12, 111, 148, 111, 148, 148, 112, 112, 264, 112,4115 264, 264, 264, 135, 135, 112, 112, 110, 110, 112,4116 11 6, 96, 263, 96, 135, 112, 112, 110, 110, 109,4117 110, 1 71, 192, 213, 132, 110, 109, 109, 174, 197,4118 58, 59, 165, 172, 145, 110, 110, 114, 134, 134,4119 298, 141, 204, 109, 132, 204, 264, 134, 134, 135,4120 13 5, 135, 135, 112, 112, 134, 135, 112, 172, 44,4121 45, 114, 182, 183, 184, 170, 172, 135, 110, 171,4122 1 14, 184, 96, 134, 96, 134, 109, 109, 132, 115,4123 1 34, 272, 309, 115, 116, 130, 164, 110, 135, 147,4124 1 47, 110, 110, 110, 110, 267, 42, 164, 180, 181,4125 310, 130, 134, 172, 182, 110, 132, 172, 132, 134,4126 1 10, 134, 110, 134, 96, 134, 96, 134, 132, 298,4127 1 41, 139, 205, 110, 132, 110, 135, 135, 172, 96,4128 1 16, 130, 135, 206, 207, 213, 132, 171, 171, 206,4129 17 4, 198, 226, 366, 174, 198, 110, 134, 110, 134,4130 1 15, 110, 116, 112, 112, 164, 180, 183, 185, 186,4131 1 34, 132, 183, 187, 188, 135, 109, 150, 309, 357,4132 1 39, 135, 174, 198, 174, 198, 109, 132, 139, 172,4133 1 77, 115, 183, 213, 171, 56, 177, 190, 115, 183,4134 1 10, 228, 110, 135, 135, 292, 172, 177, 132, 189,4135 1 90, 177, 190, 174, 174, 110, 110, 110, 189, 135,4136 1 35, 174, 174, 135, 1354044 374, 109, 151, 346, 347, 348, 349, 350, 110, 116, 4045 109, 350, 351, 109, 350, 351, 134, 109, 227, 369, 4046 112, 134, 135, 111, 227, 229, 362, 363, 371, 372, 4047 135, 109, 111, 151, 320, 337, 338, 339, 340, 341, 4048 342, 343, 344, 345, 351, 352, 353, 354, 355, 356, 4049 357, 151, 371, 229, 135, 135, 151, 227, 229, 364, 4050 273, 227, 351, 364, 273, 109, 134, 134, 134, 112, 4051 134, 72, 111, 113, 140, 275, 279, 280, 281, 282, 4052 283, 134, 134, 134, 134, 134, 134, 310, 110, 110, 4053 110, 110, 110, 110, 110, 319, 332, 109, 278, 112, 4054 209, 134, 310, 171, 277, 171, 277, 310, 111, 209, 4055 312, 175, 134, 209, 110, 40, 111, 115, 227, 250, 4056 251, 252, 367, 114, 116, 373, 131, 260, 114, 229, 4057 265, 266, 267, 270, 271, 110, 116, 175, 134, 117, 4058 166, 134, 226, 229, 264, 363, 371, 304, 305, 109, 4059 151, 337, 110, 116, 374, 275, 287, 109, 114, 275, 4060 277, 287, 110, 116, 109, 141, 110, 130, 276, 276, 4061 276, 146, 166, 277, 276, 112, 134, 110, 116, 110, 4062 109, 151, 350, 358, 359, 360, 361, 110, 116, 166, 4063 111, 139, 145, 146, 134, 79, 111, 139, 145, 166, 4064 153, 153, 153, 154, 154, 155, 155, 156, 156, 156, 4065 156, 157, 157, 158, 159, 160, 161, 162, 130, 171, 4066 166, 134, 347, 348, 349, 229, 346, 313, 313, 166, 4067 277, 134, 272, 134, 227, 351, 364, 229, 233, 112, 4068 112, 134, 371, 112, 109, 134, 320, 338, 339, 340, 4069 343, 353, 354, 355, 112, 134, 229, 337, 341, 352, 4070 109, 313, 356, 374, 313, 313, 374, 109, 313, 356, 4071 313, 313, 313, 313, 351, 227, 362, 372, 273, 112, 4072 116, 112, 116, 374, 227, 364, 374, 261, 262, 263, 4073 264, 261, 261, 273, 166, 134, 111, 275, 130, 116, 4074 373, 279, 111, 130, 283, 29, 211, 212, 273, 261, 4075 139, 310, 139, 312, 109, 350, 351, 109, 350, 351, 4076 142, 351, 175, 265, 110, 110, 110, 110, 112, 175, 4077 209, 175, 114, 251, 252, 112, 134, 109, 130, 151, 4078 253, 255, 319, 320, 332, 358, 116, 132, 116, 132, 4079 275, 249, 275, 115, 164, 165, 259, 135, 135, 139, 4080 224, 135, 135, 261, 109, 151, 371, 135, 115, 229, 4081 288, 289, 135, 134, 134, 109, 135, 110, 317, 171, 4082 172, 130, 132, 111, 141, 202, 203, 204, 110, 116, 4083 110, 110, 110, 110, 111, 166, 359, 360, 361, 229, 4084 358, 313, 313, 114, 153, 169, 166, 167, 170, 116, 4085 135, 134, 110, 116, 166, 134, 115, 164, 130, 265, 4086 110, 110, 110, 346, 265, 110, 261, 227, 364, 111, 4087 117, 151, 166, 166, 229, 343, 265, 110, 110, 110, 4088 110, 110, 110, 110, 7, 229, 337, 341, 352, 134, 4089 134, 374, 134, 134, 110, 135, 135, 135, 135, 278, 4090 135, 164, 165, 166, 311, 134, 279, 281, 115, 134, 4091 213, 275, 40, 41, 43, 46, 47, 48, 49, 50, 4092 51, 52, 53, 57, 61, 62, 72, 111, 127, 172, 4093 173, 174, 175, 176, 177, 179, 180, 192, 194, 195, 4094 200, 214, 309, 29, 135, 131, 278, 134, 134, 110, 4095 135, 175, 249, 132, 132, 320, 165, 229, 254, 255, 4096 254, 275, 313, 115, 260, 373, 110, 116, 112, 112, 4097 135, 229, 116, 374, 291, 110, 287, 217, 219, 227, 4098 299, 300, 301, 302, 293, 110, 110, 130, 165, 109, 4099 110, 130, 116, 139, 112, 110, 110, 110, 358, 280, 4100 116, 135, 170, 112, 79, 139, 147, 148, 149, 146, 4101 135, 147, 164, 169, 135, 109, 350, 351, 135, 135, 4102 134, 135, 135, 135, 166, 110, 135, 109, 350, 351, 4103 109, 356, 109, 356, 351, 228, 7, 117, 135, 166, 4104 265, 265, 264, 268, 268, 269, 116, 116, 110, 110, 4105 112, 96, 122, 135, 135, 147, 279, 166, 116, 132, 4106 214, 218, 229, 233, 109, 109, 173, 109, 109, 72, 4107 132, 72, 132, 72, 117, 172, 109, 175, 167, 167, 4108 130, 112, 144, 132, 135, 134, 135, 213, 110, 166, 4109 265, 265, 313, 110, 115, 253, 115, 134, 110, 134, 4110 135, 310, 115, 134, 135, 135, 110, 114, 202, 112, 4111 165, 132, 202, 204, 110, 109, 350, 351, 373, 167, 4112 112, 135, 116, 135, 85, 113, 112, 135, 110, 134, 4113 110, 110, 112, 112, 112, 135, 110, 134, 134, 134, 4114 166, 166, 135, 112, 135, 135, 135, 135, 134, 134, 4115 165, 165, 112, 112, 135, 135, 275, 229, 171, 171, 4116 47, 171, 134, 132, 132, 132, 171, 132, 171, 58, 4117 59, 60, 196, 197, 198, 132, 63, 132, 313, 114, 4118 177, 115, 132, 135, 135, 96, 270, 271, 110, 300, 4119 116, 132, 116, 132, 115, 298, 130, 141, 110, 110, 4120 130, 134, 115, 112, 148, 112, 111, 148, 111, 148, 4121 112, 265, 112, 265, 265, 265, 135, 135, 112, 112, 4122 110, 110, 112, 116, 96, 264, 96, 135, 112, 112, 4123 110, 110, 109, 110, 172, 193, 214, 132, 110, 109, 4124 109, 175, 198, 58, 59, 166, 173, 145, 110, 110, 4125 114, 134, 134, 299, 141, 205, 109, 132, 205, 265, 4126 134, 134, 135, 135, 135, 135, 112, 112, 134, 135, 4127 112, 173, 44, 45, 114, 183, 184, 185, 171, 173, 4128 135, 110, 172, 114, 185, 96, 134, 96, 134, 109, 4129 109, 132, 115, 134, 273, 310, 115, 116, 130, 165, 4130 110, 135, 147, 147, 110, 110, 110, 110, 268, 42, 4131 165, 181, 182, 311, 130, 134, 173, 183, 110, 132, 4132 173, 132, 134, 110, 134, 110, 134, 96, 134, 96, 4133 134, 132, 299, 141, 139, 206, 110, 132, 110, 135, 4134 135, 173, 96, 116, 130, 135, 207, 208, 214, 132, 4135 172, 172, 207, 175, 199, 227, 367, 175, 199, 110, 4136 134, 110, 134, 115, 110, 116, 112, 112, 165, 181, 4137 184, 186, 187, 134, 132, 184, 188, 189, 135, 109, 4138 151, 310, 358, 139, 135, 175, 199, 175, 199, 109, 4139 132, 139, 173, 178, 115, 184, 214, 172, 56, 178, 4140 191, 115, 184, 110, 229, 110, 135, 135, 293, 173, 4141 178, 132, 190, 191, 178, 191, 175, 175, 110, 110, 4142 110, 190, 135, 135, 175, 175, 135, 135 4137 4143 }; 4138 4144 … … 4971 4977 4972 4978 /* Line 1806 of yacc.c */ 4973 #line 30 0"parser.yy"4979 #line 302 "parser.yy" 4974 4980 { typedefTable.enterScope(); } 4975 4981 break; … … 4978 4984 4979 4985 /* Line 1806 of yacc.c */ 4980 #line 30 4"parser.yy"4986 #line 306 "parser.yy" 4981 4987 { typedefTable.leaveScope(); } 4982 4988 break; … … 4985 4991 4986 4992 /* Line 1806 of yacc.c */ 4987 #line 31 1"parser.yy"4993 #line 313 "parser.yy" 4988 4994 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4989 4995 break; … … 4992 4998 4993 4999 /* Line 1806 of yacc.c */ 4994 #line 31 2"parser.yy"5000 #line 314 "parser.yy" 4995 5001 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4996 5002 break; … … 4999 5005 5000 5006 /* Line 1806 of yacc.c */ 5001 #line 31 3"parser.yy"5007 #line 315 "parser.yy" 5002 5008 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 5003 5009 break; … … 5006 5012 5007 5013 /* Line 1806 of yacc.c */ 5008 #line 3 38"parser.yy"5014 #line 340 "parser.yy" 5009 5015 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 5010 5016 break; … … 5013 5019 5014 5020 /* Line 1806 of yacc.c */ 5015 #line 34 2"parser.yy"5021 #line 344 "parser.yy" 5016 5022 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 5017 5023 break; … … 5020 5026 5021 5027 /* Line 1806 of yacc.c */ 5022 #line 34 4"parser.yy"5028 #line 346 "parser.yy" 5023 5029 { 5024 5030 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 5031 5037 5032 5038 /* Line 1806 of yacc.c */ 5033 #line 355 "parser.yy"5034 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }5035 break;5036 5037 case 20:5038 5039 /* Line 1806 of yacc.c */5040 5039 #line 357 "parser.yy" 5041 5040 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5042 5041 break; 5043 5042 5043 case 20: 5044 5045 /* Line 1806 of yacc.c */ 5046 #line 359 "parser.yy" 5047 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5048 break; 5049 5044 5050 case 21: 5045 5051 5046 5052 /* Line 1806 of yacc.c */ 5047 #line 3 59"parser.yy"5053 #line 361 "parser.yy" 5048 5054 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5049 5055 break; … … 5052 5058 5053 5059 /* Line 1806 of yacc.c */ 5054 #line 36 1"parser.yy"5060 #line 363 "parser.yy" 5055 5061 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5056 5062 break; … … 5059 5065 5060 5066 /* Line 1806 of yacc.c */ 5061 #line 37 1"parser.yy"5067 #line 373 "parser.yy" 5062 5068 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5063 5069 break; … … 5066 5072 5067 5073 /* Line 1806 of yacc.c */ 5068 #line 37 3"parser.yy"5074 #line 375 "parser.yy" 5069 5075 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5070 5076 break; … … 5073 5079 5074 5080 /* Line 1806 of yacc.c */ 5075 #line 37 7"parser.yy"5081 #line 379 "parser.yy" 5076 5082 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5077 5083 break; … … 5080 5086 5081 5087 /* Line 1806 of yacc.c */ 5082 #line 3 79"parser.yy"5088 #line 381 "parser.yy" 5083 5089 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5084 5090 break; … … 5087 5093 5088 5094 /* Line 1806 of yacc.c */ 5089 #line 381 "parser.yy" 5095 #line 383 "parser.yy" 5096 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); } 5097 break; 5098 5099 case 29: 5100 5101 /* Line 1806 of yacc.c */ 5102 #line 385 "parser.yy" 5090 5103 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5091 5104 break; 5092 5105 5093 case 29:5094 5095 /* Line 1806 of yacc.c */ 5096 #line 38 3"parser.yy"5106 case 30: 5107 5108 /* Line 1806 of yacc.c */ 5109 #line 387 "parser.yy" 5097 5110 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5098 5111 break; 5099 5112 5100 case 3 0:5101 5102 /* Line 1806 of yacc.c */ 5103 #line 38 5"parser.yy"5113 case 31: 5114 5115 /* Line 1806 of yacc.c */ 5116 #line 389 "parser.yy" 5104 5117 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5105 5118 break; 5106 5119 5107 case 3 1:5108 5109 /* Line 1806 of yacc.c */ 5110 #line 3 87"parser.yy"5120 case 32: 5121 5122 /* Line 1806 of yacc.c */ 5123 #line 391 "parser.yy" 5111 5124 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5112 5125 break; 5113 5126 5114 case 3 2:5115 5116 /* Line 1806 of yacc.c */ 5117 #line 3 89"parser.yy"5127 case 33: 5128 5129 /* Line 1806 of yacc.c */ 5130 #line 393 "parser.yy" 5118 5131 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5119 5132 break; 5120 5133 5121 case 3 3:5122 5123 /* Line 1806 of yacc.c */ 5124 #line 39 1"parser.yy"5134 case 34: 5135 5136 /* Line 1806 of yacc.c */ 5137 #line 395 "parser.yy" 5125 5138 { 5126 5139 Token fn; 5127 fn.str = new std::string( "?{}" ); 5140 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 5128 5141 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) ); 5129 5142 } 5130 5143 break; 5131 5144 5132 case 3 5:5133 5134 /* Line 1806 of yacc.c */ 5135 #line 40 1"parser.yy"5145 case 36: 5146 5147 /* Line 1806 of yacc.c */ 5148 #line 405 "parser.yy" 5136 5149 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5137 5150 break; 5138 5151 5139 case 3 6:5140 5141 /* Line 1806 of yacc.c */ 5142 #line 4 06"parser.yy"5152 case 37: 5153 5154 /* Line 1806 of yacc.c */ 5155 #line 410 "parser.yy" 5143 5156 { (yyval.en) = 0; } 5144 5157 break; 5145 5158 5146 case 39:5147 5148 /* Line 1806 of yacc.c */ 5149 #line 41 2"parser.yy"5159 case 40: 5160 5161 /* Line 1806 of yacc.c */ 5162 #line 416 "parser.yy" 5150 5163 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5151 5164 break; 5152 5165 5153 case 4 0:5154 5155 /* Line 1806 of yacc.c */ 5156 #line 4 17"parser.yy"5166 case 41: 5167 5168 /* Line 1806 of yacc.c */ 5169 #line 423 "parser.yy" 5157 5170 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5158 5171 break; 5159 5172 5160 case 4 1:5161 5162 /* Line 1806 of yacc.c */ 5163 #line 42 1"parser.yy"5173 case 42: 5174 5175 /* Line 1806 of yacc.c */ 5176 #line 425 "parser.yy" 5164 5177 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5165 5178 break; 5166 5179 5167 case 4 2:5168 5169 /* Line 1806 of yacc.c */ 5170 #line 42 3"parser.yy"5180 case 43: 5181 5182 /* Line 1806 of yacc.c */ 5183 #line 427 "parser.yy" 5171 5184 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5172 5185 break; 5173 5186 5174 case 4 3:5175 5176 /* Line 1806 of yacc.c */ 5177 #line 42 5"parser.yy"5187 case 44: 5188 5189 /* Line 1806 of yacc.c */ 5190 #line 429 "parser.yy" 5178 5191 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5179 5192 break; 5180 5193 5181 case 4 4:5182 5183 /* Line 1806 of yacc.c */ 5184 #line 4 27"parser.yy"5194 case 45: 5195 5196 /* Line 1806 of yacc.c */ 5197 #line 431 "parser.yy" 5185 5198 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5186 5199 break; 5187 5200 5188 case 4 6:5189 5190 /* Line 1806 of yacc.c */ 5191 #line 4 35"parser.yy"5201 case 49: 5202 5203 /* Line 1806 of yacc.c */ 5204 #line 444 "parser.yy" 5192 5205 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5193 5206 break; 5194 5207 5195 case 47:5196 5197 /* Line 1806 of yacc.c */ 5198 #line 4 37"parser.yy"5208 case 50: 5209 5210 /* Line 1806 of yacc.c */ 5211 #line 446 "parser.yy" 5199 5212 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5200 5213 break; 5201 5214 5202 case 48:5203 5204 /* Line 1806 of yacc.c */ 5205 #line 4 39"parser.yy"5215 case 51: 5216 5217 /* Line 1806 of yacc.c */ 5218 #line 448 "parser.yy" 5206 5219 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5207 5220 break; 5208 5221 5209 case 49:5210 5211 /* Line 1806 of yacc.c */ 5212 #line 4 44"parser.yy"5222 case 52: 5223 5224 /* Line 1806 of yacc.c */ 5225 #line 453 "parser.yy" 5213 5226 { 5214 5227 switch ( (yyvsp[(1) - (2)].op) ) { … … 5225 5238 break; 5226 5239 5227 case 5 0:5228 5229 /* Line 1806 of yacc.c */ 5230 #line 4 57"parser.yy"5240 case 53: 5241 5242 /* Line 1806 of yacc.c */ 5243 #line 466 "parser.yy" 5231 5244 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5232 5245 break; 5233 5246 5234 case 5 1:5235 5236 /* Line 1806 of yacc.c */ 5237 #line 4 59"parser.yy"5247 case 54: 5248 5249 /* Line 1806 of yacc.c */ 5250 #line 468 "parser.yy" 5238 5251 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5239 5252 break; 5240 5253 5241 case 5 2:5242 5243 /* Line 1806 of yacc.c */ 5244 #line 4 61"parser.yy"5254 case 55: 5255 5256 /* Line 1806 of yacc.c */ 5257 #line 470 "parser.yy" 5245 5258 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5246 5259 break; 5247 5260 5248 case 5 3:5249 5250 /* Line 1806 of yacc.c */ 5251 #line 4 63"parser.yy"5261 case 56: 5262 5263 /* Line 1806 of yacc.c */ 5264 #line 472 "parser.yy" 5252 5265 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5253 5266 break; 5254 5267 5255 case 5 4:5256 5257 /* Line 1806 of yacc.c */ 5258 #line 4 65"parser.yy"5268 case 57: 5269 5270 /* Line 1806 of yacc.c */ 5271 #line 474 "parser.yy" 5259 5272 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5260 5273 break; 5261 5274 5262 case 5 5:5263 5264 /* Line 1806 of yacc.c */ 5265 #line 4 67"parser.yy"5275 case 58: 5276 5277 /* Line 1806 of yacc.c */ 5278 #line 476 "parser.yy" 5266 5279 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5267 5280 break; 5268 5281 5269 case 5 6:5270 5271 /* Line 1806 of yacc.c */ 5272 #line 4 69"parser.yy"5282 case 59: 5283 5284 /* Line 1806 of yacc.c */ 5285 #line 478 "parser.yy" 5273 5286 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5274 5287 break; 5275 5288 5276 case 57:5277 5278 /* Line 1806 of yacc.c */ 5279 #line 4 71"parser.yy"5289 case 60: 5290 5291 /* Line 1806 of yacc.c */ 5292 #line 480 "parser.yy" 5280 5293 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5281 5294 break; 5282 5295 5283 case 58:5284 5285 /* Line 1806 of yacc.c */ 5286 #line 4 73"parser.yy"5296 case 61: 5297 5298 /* Line 1806 of yacc.c */ 5299 #line 482 "parser.yy" 5287 5300 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5288 5301 break; 5289 5302 5290 case 59:5291 5292 /* Line 1806 of yacc.c */ 5293 #line 4 75"parser.yy"5303 case 62: 5304 5305 /* Line 1806 of yacc.c */ 5306 #line 484 "parser.yy" 5294 5307 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5295 5308 break; 5296 5309 5297 case 6 0:5298 5299 /* Line 1806 of yacc.c */ 5300 #line 4 77"parser.yy"5310 case 63: 5311 5312 /* Line 1806 of yacc.c */ 5313 #line 486 "parser.yy" 5301 5314 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5302 5315 break; 5303 5316 5304 case 6 1:5305 5306 /* Line 1806 of yacc.c */ 5307 #line 4 83"parser.yy"5317 case 64: 5318 5319 /* Line 1806 of yacc.c */ 5320 #line 492 "parser.yy" 5308 5321 { (yyval.op) = OperKinds::PointTo; } 5309 5322 break; 5310 5323 5311 case 6 2:5312 5313 /* Line 1806 of yacc.c */ 5314 #line 4 84"parser.yy"5324 case 65: 5325 5326 /* Line 1806 of yacc.c */ 5327 #line 493 "parser.yy" 5315 5328 { (yyval.op) = OperKinds::AddressOf; } 5316 5329 break; 5317 5330 5318 case 6 3:5319 5320 /* Line 1806 of yacc.c */ 5321 #line 49 0"parser.yy"5331 case 66: 5332 5333 /* Line 1806 of yacc.c */ 5334 #line 499 "parser.yy" 5322 5335 { (yyval.op) = OperKinds::UnPlus; } 5323 5336 break; 5324 5337 5325 case 6 4:5326 5327 /* Line 1806 of yacc.c */ 5328 #line 491"parser.yy"5338 case 67: 5339 5340 /* Line 1806 of yacc.c */ 5341 #line 500 "parser.yy" 5329 5342 { (yyval.op) = OperKinds::UnMinus; } 5330 5343 break; 5331 5344 5332 case 6 5:5333 5334 /* Line 1806 of yacc.c */ 5335 #line 492"parser.yy"5345 case 68: 5346 5347 /* Line 1806 of yacc.c */ 5348 #line 501 "parser.yy" 5336 5349 { (yyval.op) = OperKinds::Neg; } 5337 5350 break; 5338 5351 5339 case 6 6:5340 5341 /* Line 1806 of yacc.c */ 5342 #line 493"parser.yy"5352 case 69: 5353 5354 /* Line 1806 of yacc.c */ 5355 #line 502 "parser.yy" 5343 5356 { (yyval.op) = OperKinds::BitNeg; } 5344 5357 break; 5345 5358 5346 case 68:5347 5348 /* Line 1806 of yacc.c */ 5349 #line 499"parser.yy"5359 case 71: 5360 5361 /* Line 1806 of yacc.c */ 5362 #line 508 "parser.yy" 5350 5363 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5351 5364 break; 5352 5365 5353 case 69:5354 5355 /* Line 1806 of yacc.c */ 5356 #line 5 01"parser.yy"5366 case 72: 5367 5368 /* Line 1806 of yacc.c */ 5369 #line 510 "parser.yy" 5357 5370 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5358 5371 break; 5359 5372 5360 case 7 1:5361 5362 /* Line 1806 of yacc.c */ 5363 #line 5 07"parser.yy"5373 case 74: 5374 5375 /* Line 1806 of yacc.c */ 5376 #line 516 "parser.yy" 5364 5377 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5365 5378 break; 5366 5379 5367 case 7 2:5368 5369 /* Line 1806 of yacc.c */ 5370 #line 5 09"parser.yy"5380 case 75: 5381 5382 /* Line 1806 of yacc.c */ 5383 #line 518 "parser.yy" 5371 5384 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5372 5385 break; 5373 5386 5374 case 7 3:5375 5376 /* Line 1806 of yacc.c */ 5377 #line 5 11"parser.yy"5387 case 76: 5388 5389 /* Line 1806 of yacc.c */ 5390 #line 520 "parser.yy" 5378 5391 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5379 5392 break; 5380 5393 5381 case 7 5:5382 5383 /* Line 1806 of yacc.c */ 5384 #line 5 17"parser.yy"5394 case 78: 5395 5396 /* Line 1806 of yacc.c */ 5397 #line 526 "parser.yy" 5385 5398 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5386 5399 break; 5387 5400 5388 case 7 6:5389 5390 /* Line 1806 of yacc.c */ 5391 #line 5 19"parser.yy"5401 case 79: 5402 5403 /* Line 1806 of yacc.c */ 5404 #line 528 "parser.yy" 5392 5405 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5393 5406 break; 5394 5407 5395 case 78:5396 5397 /* Line 1806 of yacc.c */ 5398 #line 5 25"parser.yy"5408 case 81: 5409 5410 /* Line 1806 of yacc.c */ 5411 #line 534 "parser.yy" 5399 5412 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5400 5413 break; 5401 5414 5402 case 79:5403 5404 /* Line 1806 of yacc.c */ 5405 #line 5 27"parser.yy"5415 case 82: 5416 5417 /* Line 1806 of yacc.c */ 5418 #line 536 "parser.yy" 5406 5419 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5407 5420 break; 5408 5421 5409 case 8 1:5410 5411 /* Line 1806 of yacc.c */ 5412 #line 5 33"parser.yy"5422 case 84: 5423 5424 /* Line 1806 of yacc.c */ 5425 #line 542 "parser.yy" 5413 5426 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5414 5427 break; 5415 5428 5416 case 8 2:5417 5418 /* Line 1806 of yacc.c */ 5419 #line 5 35"parser.yy"5429 case 85: 5430 5431 /* Line 1806 of yacc.c */ 5432 #line 544 "parser.yy" 5420 5433 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5421 5434 break; 5422 5435 5423 case 8 3:5424 5425 /* Line 1806 of yacc.c */ 5426 #line 5 37"parser.yy"5436 case 86: 5437 5438 /* Line 1806 of yacc.c */ 5439 #line 546 "parser.yy" 5427 5440 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5428 5441 break; 5429 5442 5430 case 8 4:5431 5432 /* Line 1806 of yacc.c */ 5433 #line 5 39"parser.yy"5443 case 87: 5444 5445 /* Line 1806 of yacc.c */ 5446 #line 548 "parser.yy" 5434 5447 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5435 5448 break; 5436 5449 5437 case 8 6:5438 5439 /* Line 1806 of yacc.c */ 5440 #line 5 45"parser.yy"5450 case 89: 5451 5452 /* Line 1806 of yacc.c */ 5453 #line 554 "parser.yy" 5441 5454 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5442 5455 break; 5443 5456 5444 case 87:5445 5446 /* Line 1806 of yacc.c */ 5447 #line 5 47"parser.yy"5457 case 90: 5458 5459 /* Line 1806 of yacc.c */ 5460 #line 556 "parser.yy" 5448 5461 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5449 5462 break; 5450 5463 5451 case 89:5452 5453 /* Line 1806 of yacc.c */ 5454 #line 5 53"parser.yy"5464 case 92: 5465 5466 /* Line 1806 of yacc.c */ 5467 #line 562 "parser.yy" 5455 5468 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5456 5469 break; 5457 5470 5458 case 9 1:5459 5460 /* Line 1806 of yacc.c */ 5461 #line 5 59"parser.yy"5471 case 94: 5472 5473 /* Line 1806 of yacc.c */ 5474 #line 568 "parser.yy" 5462 5475 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5463 5476 break; 5464 5477 5465 case 9 3:5466 5467 /* Line 1806 of yacc.c */ 5468 #line 5 65"parser.yy"5478 case 96: 5479 5480 /* Line 1806 of yacc.c */ 5481 #line 574 "parser.yy" 5469 5482 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5470 5483 break; 5471 5484 5472 case 9 5:5473 5474 /* Line 1806 of yacc.c */ 5475 #line 5 71"parser.yy"5485 case 98: 5486 5487 /* Line 1806 of yacc.c */ 5488 #line 580 "parser.yy" 5476 5489 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5477 5490 break; 5478 5491 5479 case 97:5480 5481 /* Line 1806 of yacc.c */ 5482 #line 5 77"parser.yy"5492 case 100: 5493 5494 /* Line 1806 of yacc.c */ 5495 #line 586 "parser.yy" 5483 5496 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5484 5497 break; 5485 5498 5486 case 99:5487 5488 /* Line 1806 of yacc.c */ 5489 #line 5 83"parser.yy"5499 case 102: 5500 5501 /* Line 1806 of yacc.c */ 5502 #line 592 "parser.yy" 5490 5503 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5491 5504 break; 5492 5505 5493 case 10 0:5494 5495 /* Line 1806 of yacc.c */ 5496 #line 5 86"parser.yy"5506 case 103: 5507 5508 /* Line 1806 of yacc.c */ 5509 #line 595 "parser.yy" 5497 5510 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5498 5511 break; 5499 5512 5500 case 10 1:5501 5502 /* Line 1806 of yacc.c */ 5503 #line 5 88"parser.yy"5513 case 104: 5514 5515 /* Line 1806 of yacc.c */ 5516 #line 597 "parser.yy" 5504 5517 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5505 5518 break; 5506 5519 5507 case 10 4:5508 5509 /* Line 1806 of yacc.c */ 5510 #line 599"parser.yy"5520 case 107: 5521 5522 /* Line 1806 of yacc.c */ 5523 #line 608 "parser.yy" 5511 5524 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5512 5525 break; 5513 5526 5514 case 10 5:5515 5516 /* Line 1806 of yacc.c */ 5517 #line 6 01"parser.yy"5527 case 108: 5528 5529 /* Line 1806 of yacc.c */ 5530 #line 610 "parser.yy" 5518 5531 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5519 5532 break; 5520 5533 5521 case 10 6:5522 5523 /* Line 1806 of yacc.c */ 5524 #line 6 06"parser.yy"5534 case 109: 5535 5536 /* Line 1806 of yacc.c */ 5537 #line 615 "parser.yy" 5525 5538 { (yyval.en) = nullptr; } 5526 5539 break; 5527 5540 5528 case 1 08:5529 5530 /* Line 1806 of yacc.c */ 5531 #line 6 11"parser.yy"5541 case 111: 5542 5543 /* Line 1806 of yacc.c */ 5544 #line 620 "parser.yy" 5532 5545 { (yyval.op) = OperKinds::Assign; } 5533 5546 break; 5534 5547 5535 case 1 09:5536 5537 /* Line 1806 of yacc.c */ 5538 #line 6 12"parser.yy"5548 case 112: 5549 5550 /* Line 1806 of yacc.c */ 5551 #line 621 "parser.yy" 5539 5552 { (yyval.op) = OperKinds::AtAssn; } 5540 5553 break; 5541 5554 5542 case 11 0:5543 5544 /* Line 1806 of yacc.c */ 5545 #line 6 13"parser.yy"5555 case 113: 5556 5557 /* Line 1806 of yacc.c */ 5558 #line 622 "parser.yy" 5546 5559 { (yyval.op) = OperKinds::MulAssn; } 5547 5560 break; 5548 5561 5549 case 11 1:5550 5551 /* Line 1806 of yacc.c */ 5552 #line 6 14"parser.yy"5562 case 114: 5563 5564 /* Line 1806 of yacc.c */ 5565 #line 623 "parser.yy" 5553 5566 { (yyval.op) = OperKinds::DivAssn; } 5554 5567 break; 5555 5568 5556 case 11 2:5557 5558 /* Line 1806 of yacc.c */ 5559 #line 6 15"parser.yy"5569 case 115: 5570 5571 /* Line 1806 of yacc.c */ 5572 #line 624 "parser.yy" 5560 5573 { (yyval.op) = OperKinds::ModAssn; } 5561 5574 break; 5562 5575 5563 case 11 3:5564 5565 /* Line 1806 of yacc.c */ 5566 #line 6 16"parser.yy"5576 case 116: 5577 5578 /* Line 1806 of yacc.c */ 5579 #line 625 "parser.yy" 5567 5580 { (yyval.op) = OperKinds::PlusAssn; } 5568 5581 break; 5569 5582 5570 case 11 4:5571 5572 /* Line 1806 of yacc.c */ 5573 #line 6 17"parser.yy"5583 case 117: 5584 5585 /* Line 1806 of yacc.c */ 5586 #line 626 "parser.yy" 5574 5587 { (yyval.op) = OperKinds::MinusAssn; } 5575 5588 break; 5576 5589 5577 case 11 5:5578 5579 /* Line 1806 of yacc.c */ 5580 #line 6 18"parser.yy"5590 case 118: 5591 5592 /* Line 1806 of yacc.c */ 5593 #line 627 "parser.yy" 5581 5594 { (yyval.op) = OperKinds::LSAssn; } 5582 5595 break; 5583 5596 5584 case 11 6:5585 5586 /* Line 1806 of yacc.c */ 5587 #line 6 19"parser.yy"5597 case 119: 5598 5599 /* Line 1806 of yacc.c */ 5600 #line 628 "parser.yy" 5588 5601 { (yyval.op) = OperKinds::RSAssn; } 5589 5602 break; 5590 5603 5591 case 1 17:5592 5593 /* Line 1806 of yacc.c */ 5594 #line 62 0"parser.yy"5604 case 120: 5605 5606 /* Line 1806 of yacc.c */ 5607 #line 629 "parser.yy" 5595 5608 { (yyval.op) = OperKinds::AndAssn; } 5596 5609 break; 5597 5610 5598 case 1 18:5599 5600 /* Line 1806 of yacc.c */ 5601 #line 6 21"parser.yy"5611 case 121: 5612 5613 /* Line 1806 of yacc.c */ 5614 #line 630 "parser.yy" 5602 5615 { (yyval.op) = OperKinds::ERAssn; } 5603 5616 break; 5604 5617 5605 case 1 19:5606 5607 /* Line 1806 of yacc.c */ 5608 #line 6 22"parser.yy"5618 case 122: 5619 5620 /* Line 1806 of yacc.c */ 5621 #line 631 "parser.yy" 5609 5622 { (yyval.op) = OperKinds::OrAssn; } 5610 5623 break; 5611 5624 5612 case 12 0:5613 5614 /* Line 1806 of yacc.c */ 5615 #line 6 29"parser.yy"5625 case 123: 5626 5627 /* Line 1806 of yacc.c */ 5628 #line 638 "parser.yy" 5616 5629 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5617 5630 break; 5618 5631 5619 case 12 1:5620 5621 /* Line 1806 of yacc.c */ 5622 #line 6 31"parser.yy"5632 case 124: 5633 5634 /* Line 1806 of yacc.c */ 5635 #line 640 "parser.yy" 5623 5636 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5624 5637 break; 5625 5638 5626 case 12 2:5627 5628 /* Line 1806 of yacc.c */ 5629 #line 6 33"parser.yy"5639 case 125: 5640 5641 /* Line 1806 of yacc.c */ 5642 #line 642 "parser.yy" 5630 5643 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5631 5644 break; 5632 5645 5633 case 12 3:5634 5635 /* Line 1806 of yacc.c */ 5636 #line 6 35"parser.yy"5646 case 126: 5647 5648 /* Line 1806 of yacc.c */ 5649 #line 644 "parser.yy" 5637 5650 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5638 5651 break; 5639 5652 5640 case 12 5:5641 5642 /* Line 1806 of yacc.c */ 5643 #line 6 41"parser.yy"5653 case 128: 5654 5655 /* Line 1806 of yacc.c */ 5656 #line 650 "parser.yy" 5644 5657 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5645 5658 break; 5646 5659 5647 case 1 27:5648 5649 /* Line 1806 of yacc.c */ 5650 #line 6 47"parser.yy"5660 case 130: 5661 5662 /* Line 1806 of yacc.c */ 5663 #line 656 "parser.yy" 5651 5664 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5652 5665 break; 5653 5666 5654 case 1 28:5655 5656 /* Line 1806 of yacc.c */ 5657 #line 6 52"parser.yy"5667 case 131: 5668 5669 /* Line 1806 of yacc.c */ 5670 #line 661 "parser.yy" 5658 5671 { (yyval.en) = 0; } 5659 5672 break; 5660 5673 5661 case 13 2:5662 5663 /* Line 1806 of yacc.c */ 5664 #line 6 61"parser.yy"5674 case 135: 5675 5676 /* Line 1806 of yacc.c */ 5677 #line 670 "parser.yy" 5665 5678 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5666 5679 break; 5667 5680 5668 case 1 38:5669 5670 /* Line 1806 of yacc.c */ 5671 #line 6 68"parser.yy"5681 case 141: 5682 5683 /* Line 1806 of yacc.c */ 5684 #line 677 "parser.yy" 5672 5685 { 5673 5686 Token fn; 5674 fn.str = new st d::string( "^?{}" );// location undefined5687 fn.str = new string( "^?{}" ); // location undefined 5675 5688 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) ); 5676 5689 } 5677 5690 break; 5678 5691 5679 case 1 39:5680 5681 /* Line 1806 of yacc.c */ 5682 #line 6 78"parser.yy"5692 case 142: 5693 5694 /* Line 1806 of yacc.c */ 5695 #line 687 "parser.yy" 5683 5696 { 5684 5697 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5686 5699 break; 5687 5700 5688 case 14 0:5689 5690 /* Line 1806 of yacc.c */ 5691 #line 6 85"parser.yy"5701 case 143: 5702 5703 /* Line 1806 of yacc.c */ 5704 #line 694 "parser.yy" 5692 5705 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5693 5706 break; 5694 5707 5695 case 14 1:5696 5697 /* Line 1806 of yacc.c */ 5698 #line 692"parser.yy"5708 case 144: 5709 5710 /* Line 1806 of yacc.c */ 5711 #line 701 "parser.yy" 5699 5712 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5700 5713 break; 5701 5714 5702 case 14 3:5703 5704 /* Line 1806 of yacc.c */ 5705 #line 698"parser.yy"5715 case 146: 5716 5717 /* Line 1806 of yacc.c */ 5718 #line 707 "parser.yy" 5706 5719 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5707 5720 break; 5708 5721 5709 case 14 4:5710 5711 /* Line 1806 of yacc.c */ 5712 #line 7 03"parser.yy"5722 case 147: 5723 5724 /* Line 1806 of yacc.c */ 5725 #line 712 "parser.yy" 5713 5726 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5714 5727 break; 5715 5728 5716 case 14 5:5717 5718 /* Line 1806 of yacc.c */ 5719 #line 7 05"parser.yy"5729 case 148: 5730 5731 /* Line 1806 of yacc.c */ 5732 #line 714 "parser.yy" 5720 5733 { // mark all fields in list 5721 5734 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5725 5738 break; 5726 5739 5727 case 14 6:5728 5729 /* Line 1806 of yacc.c */ 5730 #line 7 11"parser.yy"5740 case 149: 5741 5742 /* Line 1806 of yacc.c */ 5743 #line 720 "parser.yy" 5731 5744 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5732 5745 break; 5733 5746 5734 case 1 49:5735 5736 /* Line 1806 of yacc.c */ 5737 #line 7 18"parser.yy"5747 case 152: 5748 5749 /* Line 1806 of yacc.c */ 5750 #line 727 "parser.yy" 5738 5751 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5739 5752 break; 5740 5753 5741 case 15 0:5742 5743 /* Line 1806 of yacc.c */ 5744 #line 7 23"parser.yy"5754 case 153: 5755 5756 /* Line 1806 of yacc.c */ 5757 #line 732 "parser.yy" 5745 5758 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5746 5759 break; 5747 5760 5748 case 15 1:5749 5750 /* Line 1806 of yacc.c */ 5751 #line 7 29"parser.yy"5761 case 154: 5762 5763 /* Line 1806 of yacc.c */ 5764 #line 738 "parser.yy" 5752 5765 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5753 5766 break; 5754 5767 5755 case 15 2:5756 5757 /* Line 1806 of yacc.c */ 5758 #line 7 31"parser.yy"5768 case 155: 5769 5770 /* Line 1806 of yacc.c */ 5771 #line 740 "parser.yy" 5759 5772 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5760 5773 break; 5761 5774 5762 case 15 3:5763 5764 /* Line 1806 of yacc.c */ 5765 #line 7 33"parser.yy"5775 case 156: 5776 5777 /* Line 1806 of yacc.c */ 5778 #line 742 "parser.yy" 5766 5779 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5767 5780 break; 5768 5781 5769 case 15 4:5770 5771 /* Line 1806 of yacc.c */ 5772 #line 7 35"parser.yy"5782 case 157: 5783 5784 /* Line 1806 of yacc.c */ 5785 #line 744 "parser.yy" 5773 5786 { 5774 5787 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5782 5795 break; 5783 5796 5784 case 15 5:5785 5786 /* Line 1806 of yacc.c */ 5787 #line 7 45"parser.yy"5797 case 158: 5798 5799 /* Line 1806 of yacc.c */ 5800 #line 754 "parser.yy" 5788 5801 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5789 5802 break; 5790 5803 5791 case 15 6:5792 5793 /* Line 1806 of yacc.c */ 5794 #line 7 47"parser.yy"5804 case 159: 5805 5806 /* Line 1806 of yacc.c */ 5807 #line 756 "parser.yy" 5795 5808 { 5796 5809 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5799 5812 break; 5800 5813 5801 case 1 57:5802 5803 /* Line 1806 of yacc.c */ 5804 #line 7 57"parser.yy"5814 case 160: 5815 5816 /* Line 1806 of yacc.c */ 5817 #line 766 "parser.yy" 5805 5818 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5806 5819 break; 5807 5820 5808 case 1 58:5809 5810 /* Line 1806 of yacc.c */ 5811 #line 7 59"parser.yy"5821 case 161: 5822 5823 /* Line 1806 of yacc.c */ 5824 #line 768 "parser.yy" 5812 5825 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5813 5826 break; 5814 5827 5815 case 16 0:5816 5817 /* Line 1806 of yacc.c */ 5818 #line 7 64"parser.yy"5828 case 163: 5829 5830 /* Line 1806 of yacc.c */ 5831 #line 773 "parser.yy" 5819 5832 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5820 5833 break; 5821 5834 5822 case 16 1:5823 5824 /* Line 1806 of yacc.c */ 5825 #line 7 66"parser.yy"5835 case 164: 5836 5837 /* Line 1806 of yacc.c */ 5838 #line 775 "parser.yy" 5826 5839 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5827 5840 break; 5828 5841 5829 case 16 2:5830 5831 /* Line 1806 of yacc.c */ 5832 #line 77 0"parser.yy"5842 case 165: 5843 5844 /* Line 1806 of yacc.c */ 5845 #line 779 "parser.yy" 5833 5846 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5834 5847 break; 5835 5848 5836 case 16 3:5837 5838 /* Line 1806 of yacc.c */ 5839 #line 7 71"parser.yy"5849 case 166: 5850 5851 /* Line 1806 of yacc.c */ 5852 #line 780 "parser.yy" 5840 5853 { (yyval.sn) = new StatementNode( build_default() ); } 5841 5854 break; 5842 5855 5843 case 16 5:5844 5845 /* Line 1806 of yacc.c */ 5846 #line 7 77"parser.yy"5856 case 168: 5857 5858 /* Line 1806 of yacc.c */ 5859 #line 786 "parser.yy" 5847 5860 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5848 5861 break; 5849 5862 5850 case 16 6:5851 5852 /* Line 1806 of yacc.c */ 5853 #line 7 81"parser.yy"5863 case 169: 5864 5865 /* Line 1806 of yacc.c */ 5866 #line 790 "parser.yy" 5854 5867 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5855 5868 break; 5856 5869 5857 case 1 67:5858 5859 /* Line 1806 of yacc.c */ 5860 #line 7 86"parser.yy"5870 case 170: 5871 5872 /* Line 1806 of yacc.c */ 5873 #line 795 "parser.yy" 5861 5874 { (yyval.sn) = 0; } 5862 5875 break; 5863 5876 5864 case 1 69:5865 5866 /* Line 1806 of yacc.c */ 5867 #line 792"parser.yy"5877 case 172: 5878 5879 /* Line 1806 of yacc.c */ 5880 #line 801 "parser.yy" 5868 5881 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5869 5882 break; 5870 5883 5871 case 17 0:5872 5873 /* Line 1806 of yacc.c */ 5874 #line 794"parser.yy"5884 case 173: 5885 5886 /* Line 1806 of yacc.c */ 5887 #line 803 "parser.yy" 5875 5888 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5876 5889 break; 5877 5890 5878 case 17 1:5879 5880 /* Line 1806 of yacc.c */ 5881 #line 799"parser.yy"5891 case 174: 5892 5893 /* Line 1806 of yacc.c */ 5894 #line 808 "parser.yy" 5882 5895 { (yyval.sn) = 0; } 5883 5896 break; 5884 5897 5885 case 17 3:5886 5887 /* Line 1806 of yacc.c */ 5888 #line 8 05"parser.yy"5898 case 176: 5899 5900 /* Line 1806 of yacc.c */ 5901 #line 814 "parser.yy" 5889 5902 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5890 5903 break; 5891 5904 5892 case 17 4:5893 5894 /* Line 1806 of yacc.c */ 5895 #line 8 07"parser.yy"5905 case 177: 5906 5907 /* Line 1806 of yacc.c */ 5908 #line 816 "parser.yy" 5896 5909 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5897 5910 break; 5898 5911 5899 case 17 5:5900 5901 /* Line 1806 of yacc.c */ 5902 #line 8 09"parser.yy"5912 case 178: 5913 5914 /* Line 1806 of yacc.c */ 5915 #line 818 "parser.yy" 5903 5916 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5904 5917 break; 5905 5918 5906 case 17 6:5907 5908 /* Line 1806 of yacc.c */ 5909 #line 8 11"parser.yy"5919 case 179: 5920 5921 /* Line 1806 of yacc.c */ 5922 #line 820 "parser.yy" 5910 5923 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5911 5924 break; 5912 5925 5913 case 1 77:5914 5915 /* Line 1806 of yacc.c */ 5916 #line 8 16"parser.yy"5926 case 180: 5927 5928 /* Line 1806 of yacc.c */ 5929 #line 825 "parser.yy" 5917 5930 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5918 5931 break; 5919 5932 5920 case 1 79:5921 5922 /* Line 1806 of yacc.c */ 5923 #line 8 22"parser.yy"5933 case 182: 5934 5935 /* Line 1806 of yacc.c */ 5936 #line 831 "parser.yy" 5924 5937 { (yyval.sn) = 0; } 5925 5938 break; 5926 5939 5927 case 18 0:5928 5929 /* Line 1806 of yacc.c */ 5930 #line 8 24"parser.yy"5940 case 183: 5941 5942 /* Line 1806 of yacc.c */ 5943 #line 833 "parser.yy" 5931 5944 { (yyval.sn) = 0; } 5932 5945 break; 5933 5946 5934 case 18 1:5935 5936 /* Line 1806 of yacc.c */ 5937 #line 8 29"parser.yy"5947 case 184: 5948 5949 /* Line 1806 of yacc.c */ 5950 #line 838 "parser.yy" 5938 5951 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5939 5952 break; 5940 5953 5941 case 18 2:5942 5943 /* Line 1806 of yacc.c */ 5944 #line 8 31"parser.yy"5954 case 185: 5955 5956 /* Line 1806 of yacc.c */ 5957 #line 840 "parser.yy" 5945 5958 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5946 5959 break; 5947 5960 5948 case 18 3:5949 5950 /* Line 1806 of yacc.c */ 5951 #line 8 33"parser.yy"5961 case 186: 5962 5963 /* Line 1806 of yacc.c */ 5964 #line 842 "parser.yy" 5952 5965 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5953 5966 break; 5954 5967 5955 case 18 4:5956 5957 /* Line 1806 of yacc.c */ 5958 #line 8 38"parser.yy"5968 case 187: 5969 5970 /* Line 1806 of yacc.c */ 5971 #line 847 "parser.yy" 5959 5972 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5960 5973 break; 5961 5974 5962 case 18 5:5963 5964 /* Line 1806 of yacc.c */ 5965 #line 84 0"parser.yy"5975 case 188: 5976 5977 /* Line 1806 of yacc.c */ 5978 #line 849 "parser.yy" 5966 5979 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5967 5980 break; 5968 5981 5969 case 18 6:5970 5971 /* Line 1806 of yacc.c */ 5972 #line 8 45"parser.yy"5982 case 189: 5983 5984 /* Line 1806 of yacc.c */ 5985 #line 854 "parser.yy" 5973 5986 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5974 5987 break; 5975 5988 5976 case 1 87:5977 5978 /* Line 1806 of yacc.c */ 5979 #line 8 49"parser.yy"5989 case 190: 5990 5991 /* Line 1806 of yacc.c */ 5992 #line 858 "parser.yy" 5980 5993 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5981 5994 break; 5982 5995 5983 case 1 88:5984 5985 /* Line 1806 of yacc.c */ 5986 #line 8 52"parser.yy"5996 case 191: 5997 5998 /* Line 1806 of yacc.c */ 5999 #line 861 "parser.yy" 5987 6000 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5988 6001 break; 5989 6002 5990 case 1 89:5991 5992 /* Line 1806 of yacc.c */ 5993 #line 8 56"parser.yy"6003 case 192: 6004 6005 /* Line 1806 of yacc.c */ 6006 #line 865 "parser.yy" 5994 6007 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5995 6008 break; 5996 6009 5997 case 19 0:5998 5999 /* Line 1806 of yacc.c */ 6000 #line 8 59"parser.yy"6010 case 193: 6011 6012 /* Line 1806 of yacc.c */ 6013 #line 868 "parser.yy" 6001 6014 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 6002 6015 break; 6003 6016 6004 case 19 1:6005 6006 /* Line 1806 of yacc.c */ 6007 #line 8 63"parser.yy"6017 case 194: 6018 6019 /* Line 1806 of yacc.c */ 6020 #line 872 "parser.yy" 6008 6021 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 6009 6022 break; 6010 6023 6011 case 19 2:6012 6013 /* Line 1806 of yacc.c */ 6014 #line 8 65"parser.yy"6024 case 195: 6025 6026 /* Line 1806 of yacc.c */ 6027 #line 874 "parser.yy" 6015 6028 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 6016 6029 break; 6017 6030 6018 case 19 3:6019 6020 /* Line 1806 of yacc.c */ 6021 #line 8 67"parser.yy"6031 case 196: 6032 6033 /* Line 1806 of yacc.c */ 6034 #line 876 "parser.yy" 6022 6035 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6023 6036 break; 6024 6037 6025 case 19 4:6026 6027 /* Line 1806 of yacc.c */ 6028 #line 8 69"parser.yy"6038 case 197: 6039 6040 /* Line 1806 of yacc.c */ 6041 #line 878 "parser.yy" 6029 6042 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6030 6043 break; 6031 6044 6032 case 19 5:6033 6034 /* Line 1806 of yacc.c */ 6035 #line 8 71"parser.yy"6045 case 198: 6046 6047 /* Line 1806 of yacc.c */ 6048 #line 880 "parser.yy" 6036 6049 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6037 6050 break; 6038 6051 6039 case 19 6:6040 6041 /* Line 1806 of yacc.c */ 6042 #line 8 76"parser.yy"6052 case 199: 6053 6054 /* Line 1806 of yacc.c */ 6055 #line 885 "parser.yy" 6043 6056 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6044 6057 break; 6045 6058 6046 case 197:6047 6048 /* Line 1806 of yacc.c */ 6049 #line 8 78"parser.yy"6059 case 200: 6060 6061 /* Line 1806 of yacc.c */ 6062 #line 887 "parser.yy" 6050 6063 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 6051 6064 break; 6052 6065 6053 case 198:6054 6055 /* Line 1806 of yacc.c */ 6056 #line 88 0"parser.yy"6066 case 201: 6067 6068 /* Line 1806 of yacc.c */ 6069 #line 889 "parser.yy" 6057 6070 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6058 6071 break; 6059 6072 6060 case 20 0:6061 6062 /* Line 1806 of yacc.c */ 6063 #line 8 87"parser.yy"6073 case 203: 6074 6075 /* Line 1806 of yacc.c */ 6076 #line 896 "parser.yy" 6064 6077 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6065 6078 break; 6066 6079 6067 case 20 1:6068 6069 /* Line 1806 of yacc.c */ 6070 #line 8 89"parser.yy"6080 case 204: 6081 6082 /* Line 1806 of yacc.c */ 6083 #line 898 "parser.yy" 6071 6084 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6072 6085 break; 6073 6086 6074 case 20 2:6075 6076 /* Line 1806 of yacc.c */ 6077 #line 891"parser.yy"6087 case 205: 6088 6089 /* Line 1806 of yacc.c */ 6090 #line 900 "parser.yy" 6078 6091 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6079 6092 break; 6080 6093 6081 case 20 3:6082 6083 /* Line 1806 of yacc.c */ 6084 #line 893"parser.yy"6094 case 206: 6095 6096 /* Line 1806 of yacc.c */ 6097 #line 902 "parser.yy" 6085 6098 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6086 6099 break; 6087 6100 6088 case 20 4:6089 6090 /* Line 1806 of yacc.c */ 6091 #line 898"parser.yy"6101 case 207: 6102 6103 /* Line 1806 of yacc.c */ 6104 #line 907 "parser.yy" 6092 6105 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6093 6106 break; 6094 6107 6095 case 20 5:6096 6097 /* Line 1806 of yacc.c */ 6098 #line 90 0"parser.yy"6108 case 208: 6109 6110 /* Line 1806 of yacc.c */ 6111 #line 909 "parser.yy" 6099 6112 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6100 6113 break; 6101 6114 6102 case 20 6:6103 6104 /* Line 1806 of yacc.c */ 6105 #line 9 02"parser.yy"6115 case 209: 6116 6117 /* Line 1806 of yacc.c */ 6118 #line 911 "parser.yy" 6106 6119 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6107 6120 break; 6108 6121 6109 case 2 07:6110 6111 /* Line 1806 of yacc.c */ 6112 #line 9 04"parser.yy"6122 case 210: 6123 6124 /* Line 1806 of yacc.c */ 6125 #line 913 "parser.yy" 6113 6126 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6114 6127 break; 6115 6128 6116 case 2 08:6117 6118 /* Line 1806 of yacc.c */ 6119 #line 9 09"parser.yy"6129 case 211: 6130 6131 /* Line 1806 of yacc.c */ 6132 #line 918 "parser.yy" 6120 6133 { 6121 6134 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6123 6136 break; 6124 6137 6125 case 21 0:6126 6127 /* Line 1806 of yacc.c */ 6128 #line 9 22"parser.yy"6138 case 213: 6139 6140 /* Line 1806 of yacc.c */ 6141 #line 931 "parser.yy" 6129 6142 { 6130 6143 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6133 6146 break; 6134 6147 6135 case 21 1:6136 6137 /* Line 1806 of yacc.c */ 6138 #line 9 27"parser.yy"6148 case 214: 6149 6150 /* Line 1806 of yacc.c */ 6151 #line 936 "parser.yy" 6139 6152 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6140 6153 break; 6141 6154 6142 case 21 2:6143 6144 /* Line 1806 of yacc.c */ 6145 #line 9 29"parser.yy"6155 case 215: 6156 6157 /* Line 1806 of yacc.c */ 6158 #line 938 "parser.yy" 6146 6159 { 6147 6160 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6150 6163 break; 6151 6164 6152 case 21 4:6153 6154 /* Line 1806 of yacc.c */ 6155 #line 9 38"parser.yy"6165 case 217: 6166 6167 /* Line 1806 of yacc.c */ 6168 #line 947 "parser.yy" 6156 6169 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6157 6170 break; 6158 6171 6159 case 21 5:6160 6161 /* Line 1806 of yacc.c */ 6162 #line 94 0"parser.yy"6172 case 218: 6173 6174 /* Line 1806 of yacc.c */ 6175 #line 949 "parser.yy" 6163 6176 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6164 6177 break; 6165 6178 6166 case 21 6:6167 6168 /* Line 1806 of yacc.c */ 6169 #line 9 42"parser.yy"6179 case 219: 6180 6181 /* Line 1806 of yacc.c */ 6182 #line 951 "parser.yy" 6170 6183 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6171 6184 break; 6172 6185 6173 case 2 17:6174 6175 /* Line 1806 of yacc.c */ 6176 #line 9 44"parser.yy"6186 case 220: 6187 6188 /* Line 1806 of yacc.c */ 6189 #line 953 "parser.yy" 6177 6190 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 6178 6191 break; 6179 6192 6180 case 2 18:6181 6182 /* Line 1806 of yacc.c */ 6183 #line 9 46"parser.yy"6193 case 221: 6194 6195 /* Line 1806 of yacc.c */ 6196 #line 955 "parser.yy" 6184 6197 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 6185 6198 break; 6186 6199 6187 case 2 19:6188 6189 /* Line 1806 of yacc.c */ 6190 #line 9 51"parser.yy"6200 case 222: 6201 6202 /* Line 1806 of yacc.c */ 6203 #line 960 "parser.yy" 6191 6204 { (yyval.flag) = false; } 6192 6205 break; 6193 6206 6194 case 22 0:6195 6196 /* Line 1806 of yacc.c */ 6197 #line 9 53"parser.yy"6207 case 223: 6208 6209 /* Line 1806 of yacc.c */ 6210 #line 962 "parser.yy" 6198 6211 { (yyval.flag) = true; } 6199 6212 break; 6200 6213 6201 case 22 1:6202 6203 /* Line 1806 of yacc.c */ 6204 #line 9 58"parser.yy"6214 case 224: 6215 6216 /* Line 1806 of yacc.c */ 6217 #line 967 "parser.yy" 6205 6218 { (yyval.en) = 0; } 6206 6219 break; 6207 6220 6208 case 22 4:6209 6210 /* Line 1806 of yacc.c */ 6211 #line 9 65"parser.yy"6221 case 227: 6222 6223 /* Line 1806 of yacc.c */ 6224 #line 974 "parser.yy" 6212 6225 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6213 6226 break; 6214 6227 6215 case 22 5:6216 6217 /* Line 1806 of yacc.c */ 6218 #line 97 0"parser.yy"6228 case 228: 6229 6230 /* Line 1806 of yacc.c */ 6231 #line 979 "parser.yy" 6219 6232 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6220 6233 break; 6221 6234 6222 case 22 6:6223 6224 /* Line 1806 of yacc.c */ 6225 #line 9 72"parser.yy"6235 case 229: 6236 6237 /* Line 1806 of yacc.c */ 6238 #line 981 "parser.yy" 6226 6239 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6227 6240 break; 6228 6241 6229 case 2 27:6230 6231 /* Line 1806 of yacc.c */ 6232 #line 9 77"parser.yy"6242 case 230: 6243 6244 /* Line 1806 of yacc.c */ 6245 #line 986 "parser.yy" 6233 6246 { (yyval.en) = 0; } 6234 6247 break; 6235 6248 6236 case 2 28:6237 6238 /* Line 1806 of yacc.c */ 6239 #line 9 79"parser.yy"6249 case 231: 6250 6251 /* Line 1806 of yacc.c */ 6252 #line 988 "parser.yy" 6240 6253 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6241 6254 break; 6242 6255 6243 case 2 29:6244 6245 /* Line 1806 of yacc.c */ 6246 #line 9 81"parser.yy"6256 case 232: 6257 6258 /* Line 1806 of yacc.c */ 6259 #line 990 "parser.yy" 6247 6260 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6248 6261 break; 6249 6262 6250 case 23 0:6251 6252 /* Line 1806 of yacc.c */ 6253 #line 9 86"parser.yy"6263 case 233: 6264 6265 /* Line 1806 of yacc.c */ 6266 #line 995 "parser.yy" 6254 6267 { 6255 6268 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6258 6271 break; 6259 6272 6260 case 23 1:6261 6262 /* Line 1806 of yacc.c */ 6263 #line 991"parser.yy"6273 case 234: 6274 6275 /* Line 1806 of yacc.c */ 6276 #line 1000 "parser.yy" 6264 6277 { 6265 6278 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6268 6281 break; 6269 6282 6270 case 23 2:6271 6272 /* Line 1806 of yacc.c */ 6273 #line 10 01"parser.yy"6283 case 235: 6284 6285 /* Line 1806 of yacc.c */ 6286 #line 1010 "parser.yy" 6274 6287 { (yyval.decl) = 0; } 6275 6288 break; 6276 6289 6277 case 23 5:6278 6279 /* Line 1806 of yacc.c */ 6280 #line 10 08"parser.yy"6290 case 238: 6291 6292 /* Line 1806 of yacc.c */ 6293 #line 1017 "parser.yy" 6281 6294 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6282 6295 break; 6283 6296 6284 case 23 6:6285 6286 /* Line 1806 of yacc.c */ 6287 #line 10 13"parser.yy"6297 case 239: 6298 6299 /* Line 1806 of yacc.c */ 6300 #line 1022 "parser.yy" 6288 6301 { (yyval.decl) = 0; } 6289 6302 break; 6290 6303 6291 case 2 39:6292 6293 /* Line 1806 of yacc.c */ 6294 #line 102 0"parser.yy"6304 case 242: 6305 6306 /* Line 1806 of yacc.c */ 6307 #line 1029 "parser.yy" 6295 6308 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6296 6309 break; 6297 6310 6298 case 24 4:6299 6300 /* Line 1806 of yacc.c */ 6301 #line 10 34"parser.yy"6311 case 247: 6312 6313 /* Line 1806 of yacc.c */ 6314 #line 1043 "parser.yy" 6302 6315 {} 6303 6316 break; 6304 6317 6305 case 24 5:6306 6307 /* Line 1806 of yacc.c */ 6308 #line 10 35"parser.yy"6318 case 248: 6319 6320 /* Line 1806 of yacc.c */ 6321 #line 1044 "parser.yy" 6309 6322 {} 6310 6323 break; 6311 6324 6312 case 25 3:6313 6314 /* Line 1806 of yacc.c */ 6315 #line 10 64"parser.yy"6325 case 256: 6326 6327 /* Line 1806 of yacc.c */ 6328 #line 1073 "parser.yy" 6316 6329 { 6317 6330 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6320 6333 break; 6321 6334 6322 case 25 4:6323 6324 /* Line 1806 of yacc.c */ 6325 #line 10 71"parser.yy"6335 case 257: 6336 6337 /* Line 1806 of yacc.c */ 6338 #line 1080 "parser.yy" 6326 6339 { 6327 6340 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6330 6343 break; 6331 6344 6332 case 25 5:6333 6334 /* Line 1806 of yacc.c */ 6335 #line 10 76"parser.yy"6345 case 258: 6346 6347 /* Line 1806 of yacc.c */ 6348 #line 1085 "parser.yy" 6336 6349 { 6337 6350 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6340 6353 break; 6341 6354 6342 case 25 6:6343 6344 /* Line 1806 of yacc.c */ 6345 #line 10 86"parser.yy"6355 case 259: 6356 6357 /* Line 1806 of yacc.c */ 6358 #line 1095 "parser.yy" 6346 6359 { 6347 6360 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6350 6363 break; 6351 6364 6352 case 2 57:6353 6354 /* Line 1806 of yacc.c */ 6355 #line 1 091"parser.yy"6365 case 260: 6366 6367 /* Line 1806 of yacc.c */ 6368 #line 1100 "parser.yy" 6356 6369 { 6357 6370 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6360 6373 break; 6361 6374 6362 case 2 58:6363 6364 /* Line 1806 of yacc.c */ 6365 #line 1 096"parser.yy"6375 case 261: 6376 6377 /* Line 1806 of yacc.c */ 6378 #line 1105 "parser.yy" 6366 6379 { 6367 6380 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6370 6383 break; 6371 6384 6372 case 2 59:6373 6374 /* Line 1806 of yacc.c */ 6375 #line 11 04"parser.yy"6385 case 262: 6386 6387 /* Line 1806 of yacc.c */ 6388 #line 1113 "parser.yy" 6376 6389 { 6377 6390 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6380 6393 break; 6381 6394 6382 case 26 0:6383 6384 /* Line 1806 of yacc.c */ 6385 #line 11 09"parser.yy"6395 case 263: 6396 6397 /* Line 1806 of yacc.c */ 6398 #line 1118 "parser.yy" 6386 6399 { 6387 6400 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6390 6403 break; 6391 6404 6392 case 26 1:6393 6394 /* Line 1806 of yacc.c */ 6395 #line 11 14"parser.yy"6405 case 264: 6406 6407 /* Line 1806 of yacc.c */ 6408 #line 1123 "parser.yy" 6396 6409 { 6397 6410 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6400 6413 break; 6401 6414 6402 case 26 2:6403 6404 /* Line 1806 of yacc.c */ 6405 #line 11 19"parser.yy"6415 case 265: 6416 6417 /* Line 1806 of yacc.c */ 6418 #line 1128 "parser.yy" 6406 6419 { 6407 6420 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6410 6423 break; 6411 6424 6412 case 26 3:6413 6414 /* Line 1806 of yacc.c */ 6415 #line 11 24"parser.yy"6425 case 266: 6426 6427 /* Line 1806 of yacc.c */ 6428 #line 1133 "parser.yy" 6416 6429 { 6417 6430 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6420 6433 break; 6421 6434 6422 case 26 4:6423 6424 /* Line 1806 of yacc.c */ 6425 #line 11 32"parser.yy"6435 case 267: 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1141 "parser.yy" 6426 6439 { 6427 6440 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6429 6442 break; 6430 6443 6431 case 26 5:6432 6433 /* Line 1806 of yacc.c */ 6434 #line 11 55"parser.yy"6444 case 268: 6445 6446 /* Line 1806 of yacc.c */ 6447 #line 1164 "parser.yy" 6435 6448 { 6436 6449 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6438 6451 break; 6439 6452 6440 case 26 6:6441 6442 /* Line 1806 of yacc.c */ 6443 #line 11 59"parser.yy"6453 case 269: 6454 6455 /* Line 1806 of yacc.c */ 6456 #line 1168 "parser.yy" 6444 6457 { 6445 6458 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6447 6460 break; 6448 6461 6449 case 2 67:6450 6451 /* Line 1806 of yacc.c */ 6452 #line 11 66"parser.yy"6462 case 270: 6463 6464 /* Line 1806 of yacc.c */ 6465 #line 1175 "parser.yy" 6453 6466 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6454 6467 break; 6455 6468 6456 case 2 68:6457 6458 /* Line 1806 of yacc.c */ 6459 #line 117 0"parser.yy"6469 case 271: 6470 6471 /* Line 1806 of yacc.c */ 6472 #line 1179 "parser.yy" 6460 6473 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6461 6474 break; 6462 6475 6463 case 2 69:6464 6465 /* Line 1806 of yacc.c */ 6466 #line 11 75"parser.yy"6476 case 272: 6477 6478 /* Line 1806 of yacc.c */ 6479 #line 1184 "parser.yy" 6467 6480 { 6468 6481 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6471 6484 break; 6472 6485 6473 case 27 0:6474 6475 /* Line 1806 of yacc.c */ 6476 #line 118 0"parser.yy"6486 case 273: 6487 6488 /* Line 1806 of yacc.c */ 6489 #line 1189 "parser.yy" 6477 6490 { 6478 6491 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6481 6494 break; 6482 6495 6483 case 27 1:6484 6485 /* Line 1806 of yacc.c */ 6486 #line 11 85"parser.yy"6496 case 274: 6497 6498 /* Line 1806 of yacc.c */ 6499 #line 1194 "parser.yy" 6487 6500 { 6488 6501 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6491 6504 break; 6492 6505 6493 case 27 2:6494 6495 /* Line 1806 of yacc.c */ 6496 #line 1 196"parser.yy"6506 case 275: 6507 6508 /* Line 1806 of yacc.c */ 6509 #line 1205 "parser.yy" 6497 6510 { 6498 6511 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6501 6514 break; 6502 6515 6503 case 27 3:6504 6505 /* Line 1806 of yacc.c */ 6506 #line 12 01"parser.yy"6516 case 276: 6517 6518 /* Line 1806 of yacc.c */ 6519 #line 1210 "parser.yy" 6507 6520 { 6508 6521 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6511 6524 break; 6512 6525 6513 case 27 4:6514 6515 /* Line 1806 of yacc.c */ 6516 #line 12 06"parser.yy"6526 case 277: 6527 6528 /* Line 1806 of yacc.c */ 6529 #line 1215 "parser.yy" 6517 6530 { 6518 6531 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6521 6534 break; 6522 6535 6523 case 27 5:6524 6525 /* Line 1806 of yacc.c */ 6526 #line 12 11"parser.yy"6536 case 278: 6537 6538 /* Line 1806 of yacc.c */ 6539 #line 1220 "parser.yy" 6527 6540 { 6528 6541 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6531 6544 break; 6532 6545 6533 case 27 6:6534 6535 /* Line 1806 of yacc.c */ 6536 #line 12 16"parser.yy"6546 case 279: 6547 6548 /* Line 1806 of yacc.c */ 6549 #line 1225 "parser.yy" 6537 6550 { 6538 6551 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6541 6554 break; 6542 6555 6543 case 2 77:6544 6545 /* Line 1806 of yacc.c */ 6546 #line 12 25"parser.yy"6556 case 280: 6557 6558 /* Line 1806 of yacc.c */ 6559 #line 1234 "parser.yy" 6547 6560 { 6548 6561 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6551 6564 break; 6552 6565 6553 case 2 78:6554 6555 /* Line 1806 of yacc.c */ 6556 #line 123 0"parser.yy"6566 case 281: 6567 6568 /* Line 1806 of yacc.c */ 6569 #line 1239 "parser.yy" 6557 6570 { 6558 6571 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6561 6574 break; 6562 6575 6563 case 28 3:6564 6565 /* Line 1806 of yacc.c */ 6566 #line 12 47"parser.yy"6576 case 286: 6577 6578 /* Line 1806 of yacc.c */ 6579 #line 1256 "parser.yy" 6567 6580 { 6568 6581 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6571 6584 break; 6572 6585 6573 case 28 4:6574 6575 /* Line 1806 of yacc.c */ 6576 #line 12 52"parser.yy"6586 case 287: 6587 6588 /* Line 1806 of yacc.c */ 6589 #line 1261 "parser.yy" 6577 6590 { 6578 6591 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6581 6594 break; 6582 6595 6583 case 29 3:6584 6585 /* Line 1806 of yacc.c */ 6586 #line 12 74"parser.yy"6596 case 296: 6597 6598 /* Line 1806 of yacc.c */ 6599 #line 1283 "parser.yy" 6587 6600 { (yyval.decl) = 0; } 6588 6601 break; 6589 6602 6590 case 29 6:6591 6592 /* Line 1806 of yacc.c */ 6593 #line 12 86"parser.yy"6603 case 299: 6604 6605 /* Line 1806 of yacc.c */ 6606 #line 1295 "parser.yy" 6594 6607 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6595 6608 break; 6596 6609 6597 case 299:6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1 297"parser.yy"6610 case 302: 6611 6612 /* Line 1806 of yacc.c */ 6613 #line 1306 "parser.yy" 6601 6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6602 6615 break; 6603 6616 6604 case 30 0:6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1 299"parser.yy"6617 case 303: 6618 6619 /* Line 1806 of yacc.c */ 6620 #line 1308 "parser.yy" 6608 6621 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6609 6622 break; 6610 6623 6611 case 30 1:6612 6613 /* Line 1806 of yacc.c */ 6614 #line 13 01"parser.yy"6624 case 304: 6625 6626 /* Line 1806 of yacc.c */ 6627 #line 1310 "parser.yy" 6615 6628 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6616 6629 break; 6617 6630 6618 case 30 2:6619 6620 /* Line 1806 of yacc.c */ 6621 #line 13 03"parser.yy"6631 case 305: 6632 6633 /* Line 1806 of yacc.c */ 6634 #line 1312 "parser.yy" 6622 6635 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6623 6636 break; 6624 6637 6625 case 30 3:6626 6627 /* Line 1806 of yacc.c */ 6628 #line 13 05"parser.yy"6638 case 306: 6639 6640 /* Line 1806 of yacc.c */ 6641 #line 1314 "parser.yy" 6629 6642 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6630 6643 break; 6631 6644 6632 case 30 4:6633 6634 /* Line 1806 of yacc.c */ 6635 #line 13 07"parser.yy"6645 case 307: 6646 6647 /* Line 1806 of yacc.c */ 6648 #line 1316 "parser.yy" 6636 6649 { 6637 6650 typedefTable.enterScope(); … … 6639 6652 break; 6640 6653 6641 case 30 5:6642 6643 /* Line 1806 of yacc.c */ 6644 #line 13 11"parser.yy"6654 case 308: 6655 6656 /* Line 1806 of yacc.c */ 6657 #line 1320 "parser.yy" 6645 6658 { 6646 6659 typedefTable.leaveScope(); … … 6649 6662 break; 6650 6663 6651 case 3 07:6652 6653 /* Line 1806 of yacc.c */ 6654 #line 132 0"parser.yy"6664 case 310: 6665 6666 /* Line 1806 of yacc.c */ 6667 #line 1329 "parser.yy" 6655 6668 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6656 6669 break; 6657 6670 6658 case 3 08:6659 6660 /* Line 1806 of yacc.c */ 6661 #line 13 22"parser.yy"6671 case 311: 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1331 "parser.yy" 6662 6675 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6663 6676 break; 6664 6677 6665 case 31 0:6666 6667 /* Line 1806 of yacc.c */ 6668 #line 13 33"parser.yy"6678 case 313: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1342 "parser.yy" 6669 6682 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6670 6683 break; 6671 6684 6672 case 31 1:6673 6674 /* Line 1806 of yacc.c */ 6675 #line 13 38"parser.yy"6685 case 314: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1347 "parser.yy" 6676 6689 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6677 6690 break; 6678 6691 6679 case 31 2:6680 6681 /* Line 1806 of yacc.c */ 6682 #line 134 0"parser.yy"6692 case 315: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1349 "parser.yy" 6683 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6684 6697 break; 6685 6698 6686 case 31 3:6687 6688 /* Line 1806 of yacc.c */ 6689 #line 13 42"parser.yy"6699 case 316: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1351 "parser.yy" 6690 6703 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6691 6704 break; 6692 6705 6693 case 31 4:6694 6695 /* Line 1806 of yacc.c */ 6696 #line 13 44"parser.yy"6706 case 317: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1353 "parser.yy" 6697 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6698 6711 break; 6699 6712 6700 case 31 5:6701 6702 /* Line 1806 of yacc.c */ 6703 #line 13 47"parser.yy"6713 case 318: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1356 "parser.yy" 6704 6717 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6705 6718 break; 6706 6719 6707 case 31 6:6708 6709 /* Line 1806 of yacc.c */ 6710 #line 13 49"parser.yy"6720 case 319: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1358 "parser.yy" 6711 6724 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6712 6725 break; 6713 6726 6714 case 3 17:6715 6716 /* Line 1806 of yacc.c */ 6717 #line 13 52"parser.yy"6727 case 320: 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1361 "parser.yy" 6718 6731 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6719 6732 break; 6720 6733 6721 case 3 18:6722 6723 /* Line 1806 of yacc.c */ 6724 #line 13 54"parser.yy"6734 case 321: 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1363 "parser.yy" 6725 6738 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6726 6739 break; 6727 6740 6728 case 3 19:6729 6730 /* Line 1806 of yacc.c */ 6731 #line 13 59"parser.yy"6741 case 322: 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1368 "parser.yy" 6732 6745 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6733 6746 break; 6734 6747 6735 case 32 0:6736 6737 /* Line 1806 of yacc.c */ 6738 #line 13 61"parser.yy"6748 case 323: 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1370 "parser.yy" 6739 6752 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6740 6753 break; 6741 6754 6742 case 32 1:6743 6744 /* Line 1806 of yacc.c */ 6745 #line 13 63"parser.yy"6755 case 324: 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1372 "parser.yy" 6746 6759 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6747 6760 break; 6748 6761 6749 case 32 2:6750 6751 /* Line 1806 of yacc.c */ 6752 #line 13 65"parser.yy"6762 case 325: 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1374 "parser.yy" 6753 6766 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6754 6767 break; 6755 6768 6756 case 32 3:6757 6758 /* Line 1806 of yacc.c */ 6759 #line 13 67"parser.yy"6769 case 326: 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1376 "parser.yy" 6760 6773 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6761 6774 break; 6762 6775 6763 case 32 4:6764 6765 /* Line 1806 of yacc.c */ 6766 #line 13 69"parser.yy"6776 case 327: 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1378 "parser.yy" 6767 6780 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6768 6781 break; 6769 6782 6770 case 32 5:6771 6772 /* Line 1806 of yacc.c */ 6773 #line 13 71"parser.yy"6783 case 328: 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1380 "parser.yy" 6774 6787 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6775 6788 break; 6776 6789 6777 case 32 6:6778 6779 /* Line 1806 of yacc.c */ 6780 #line 13 73"parser.yy"6790 case 329: 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1382 "parser.yy" 6781 6794 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6782 6795 break; 6783 6796 6784 case 3 27:6785 6786 /* Line 1806 of yacc.c */ 6787 #line 13 75"parser.yy"6797 case 330: 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1384 "parser.yy" 6788 6801 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6789 6802 break; 6790 6803 6791 case 3 28:6792 6793 /* Line 1806 of yacc.c */ 6794 #line 13 77"parser.yy"6804 case 331: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1386 "parser.yy" 6795 6808 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6796 6809 break; 6797 6810 6798 case 3 29:6799 6800 /* Line 1806 of yacc.c */ 6801 #line 13 79"parser.yy"6811 case 332: 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1388 "parser.yy" 6802 6815 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6803 6816 break; 6804 6817 6805 case 33 0:6806 6807 /* Line 1806 of yacc.c */ 6808 #line 13 81"parser.yy"6818 case 333: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1390 "parser.yy" 6809 6822 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6810 6823 break; 6811 6824 6812 case 33 1:6813 6814 /* Line 1806 of yacc.c */ 6815 #line 13 83"parser.yy"6825 case 334: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1392 "parser.yy" 6816 6829 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6817 6830 break; 6818 6831 6819 case 33 3:6820 6821 /* Line 1806 of yacc.c */ 6822 #line 139 0"parser.yy"6832 case 336: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1399 "parser.yy" 6823 6836 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6824 6837 break; 6825 6838 6826 case 33 4:6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1 392"parser.yy"6839 case 337: 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1401 "parser.yy" 6830 6843 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6831 6844 break; 6832 6845 6833 case 33 5:6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1 394"parser.yy"6846 case 338: 6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1403 "parser.yy" 6837 6850 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6838 6851 break; 6839 6852 6840 case 33 6:6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1 396"parser.yy"6853 case 339: 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1405 "parser.yy" 6844 6857 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6845 6858 break; 6846 6859 6847 case 3 38:6848 6849 /* Line 1806 of yacc.c */ 6850 #line 14 02"parser.yy"6860 case 341: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1411 "parser.yy" 6851 6864 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6852 6865 break; 6853 6866 6854 case 34 0:6855 6856 /* Line 1806 of yacc.c */ 6857 #line 14 09"parser.yy"6867 case 343: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1418 "parser.yy" 6858 6871 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6859 6872 break; 6860 6873 6861 case 34 1:6862 6863 /* Line 1806 of yacc.c */ 6864 #line 14 11"parser.yy"6874 case 344: 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1420 "parser.yy" 6865 6878 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6866 6879 break; 6867 6880 6868 case 34 2:6869 6870 /* Line 1806 of yacc.c */ 6871 #line 14 13"parser.yy"6881 case 345: 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1422 "parser.yy" 6872 6885 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6873 6886 break; 6874 6887 6875 case 34 3:6876 6877 /* Line 1806 of yacc.c */ 6878 #line 14 18"parser.yy"6888 case 346: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1427 "parser.yy" 6879 6892 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6880 6893 break; 6881 6894 6882 case 34 4:6883 6884 /* Line 1806 of yacc.c */ 6885 #line 142 0"parser.yy"6895 case 347: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1429 "parser.yy" 6886 6899 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6887 6900 break; 6888 6901 6889 case 34 5:6890 6891 /* Line 1806 of yacc.c */ 6892 #line 14 22"parser.yy"6902 case 348: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1431 "parser.yy" 6893 6906 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6894 6907 break; 6895 6908 6896 case 34 6:6897 6898 /* Line 1806 of yacc.c */ 6899 #line 14 24"parser.yy"6909 case 349: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1433 "parser.yy" 6900 6913 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6901 6914 break; 6902 6915 6903 case 3 48:6904 6905 /* Line 1806 of yacc.c */ 6906 #line 143 0"parser.yy"6916 case 351: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1439 "parser.yy" 6907 6920 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6908 6921 break; 6909 6922 6910 case 3 49:6911 6912 /* Line 1806 of yacc.c */ 6913 #line 14 32"parser.yy"6923 case 352: 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1441 "parser.yy" 6914 6927 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6915 6928 break; 6916 6929 6917 case 35 0:6918 6919 /* Line 1806 of yacc.c */ 6920 #line 14 34"parser.yy"6930 case 353: 6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1443 "parser.yy" 6921 6934 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6922 6935 break; 6923 6936 6924 case 35 2:6925 6926 /* Line 1806 of yacc.c */ 6927 #line 144 0"parser.yy"6937 case 355: 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1449 "parser.yy" 6928 6941 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6929 6942 break; 6930 6943 6931 case 35 3:6932 6933 /* Line 1806 of yacc.c */ 6934 #line 14 42"parser.yy"6944 case 356: 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1451 "parser.yy" 6935 6948 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6936 6949 break; 6937 6950 6938 case 35 5:6939 6940 /* Line 1806 of yacc.c */ 6941 #line 14 48"parser.yy"6951 case 358: 6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1457 "parser.yy" 6942 6955 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6943 6956 break; 6944 6957 6945 case 35 6:6946 6947 /* Line 1806 of yacc.c */ 6948 #line 145 0"parser.yy"6958 case 359: 6959 6960 /* Line 1806 of yacc.c */ 6961 #line 1459 "parser.yy" 6949 6962 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6950 6963 break; 6951 6964 6952 case 3 57:6953 6954 /* Line 1806 of yacc.c */ 6955 #line 14 52"parser.yy"6965 case 360: 6966 6967 /* Line 1806 of yacc.c */ 6968 #line 1461 "parser.yy" 6956 6969 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6957 6970 break; 6958 6971 6959 case 3 58:6960 6961 /* Line 1806 of yacc.c */ 6962 #line 14 57"parser.yy"6972 case 361: 6973 6974 /* Line 1806 of yacc.c */ 6975 #line 1466 "parser.yy" 6963 6976 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6964 6977 break; 6965 6978 6966 case 3 59:6967 6968 /* Line 1806 of yacc.c */ 6969 #line 14 59"parser.yy"6979 case 362: 6980 6981 /* Line 1806 of yacc.c */ 6982 #line 1468 "parser.yy" 6970 6983 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6971 6984 break; 6972 6985 6973 case 36 0:6974 6975 /* Line 1806 of yacc.c */ 6976 #line 14 61"parser.yy"6986 case 363: 6987 6988 /* Line 1806 of yacc.c */ 6989 #line 1470 "parser.yy" 6977 6990 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6978 6991 break; 6979 6992 6980 case 36 3:6981 6982 /* Line 1806 of yacc.c */ 6983 #line 14 71"parser.yy"6984 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); }6985 break; 6986 6987 case 36 4:6988 6989 /* Line 1806 of yacc.c */ 6990 #line 14 73"parser.yy"6993 case 366: 6994 6995 /* Line 1806 of yacc.c */ 6996 #line 1480 "parser.yy" 6997 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6998 break; 6999 7000 case 367: 7001 7002 /* Line 1806 of yacc.c */ 7003 #line 1482 "parser.yy" 6991 7004 { 6992 7005 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6993 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false );7006 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false ); 6994 7007 } 6995 7008 break; 6996 7009 6997 case 36 5:6998 6999 /* Line 1806 of yacc.c */ 7000 #line 14 78"parser.yy"7010 case 368: 7011 7012 /* Line 1806 of yacc.c */ 7013 #line 1487 "parser.yy" 7001 7014 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7002 7015 break; 7003 7016 7004 case 36 6:7005 7006 /* Line 1806 of yacc.c */ 7007 #line 148 0"parser.yy"7008 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); }7009 break; 7010 7011 case 3 67:7012 7013 /* Line 1806 of yacc.c */ 7014 #line 14 82"parser.yy"7015 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }7016 break; 7017 7018 case 3 68:7019 7020 /* Line 1806 of yacc.c */ 7021 #line 14 84"parser.yy"7017 case 369: 7018 7019 /* Line 1806 of yacc.c */ 7020 #line 1489 "parser.yy" 7021 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 7022 break; 7023 7024 case 370: 7025 7026 /* Line 1806 of yacc.c */ 7027 #line 1491 "parser.yy" 7028 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7029 break; 7030 7031 case 371: 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1493 "parser.yy" 7022 7035 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7023 7036 break; 7024 7037 7025 case 3 69:7026 7027 /* Line 1806 of yacc.c */ 7028 #line 14 89"parser.yy"7038 case 372: 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1498 "parser.yy" 7029 7042 { (yyval.aggKey) = DeclarationNode::Struct; } 7030 7043 break; 7031 7044 7032 case 37 0:7033 7034 /* Line 1806 of yacc.c */ 7035 #line 1 491"parser.yy"7045 case 373: 7046 7047 /* Line 1806 of yacc.c */ 7048 #line 1500 "parser.yy" 7036 7049 { (yyval.aggKey) = DeclarationNode::Union; } 7037 7050 break; 7038 7051 7039 case 37 1:7040 7041 /* Line 1806 of yacc.c */ 7042 #line 1 496"parser.yy"7052 case 374: 7053 7054 /* Line 1806 of yacc.c */ 7055 #line 1505 "parser.yy" 7043 7056 { (yyval.decl) = 0; } 7044 7057 break; 7045 7058 7046 case 37 2:7047 7048 /* Line 1806 of yacc.c */ 7049 #line 1 498"parser.yy"7059 case 375: 7060 7061 /* Line 1806 of yacc.c */ 7062 #line 1507 "parser.yy" 7050 7063 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7051 7064 break; 7052 7065 7053 case 37 4:7054 7055 /* Line 1806 of yacc.c */ 7056 #line 15 04"parser.yy"7066 case 377: 7067 7068 /* Line 1806 of yacc.c */ 7069 #line 1513 "parser.yy" 7057 7070 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7058 7071 break; 7059 7072 7060 case 37 6:7061 7062 /* Line 1806 of yacc.c */ 7063 #line 15 07"parser.yy"7073 case 379: 7074 7075 /* Line 1806 of yacc.c */ 7076 #line 1516 "parser.yy" 7064 7077 { // mark all fields in list 7065 7078 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7069 7082 break; 7070 7083 7071 case 3 78:7072 7073 /* Line 1806 of yacc.c */ 7074 #line 15 17"parser.yy"7084 case 381: 7085 7086 /* Line 1806 of yacc.c */ 7087 #line 1526 "parser.yy" 7075 7088 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7076 7089 break; 7077 7090 7078 case 3 79:7079 7080 /* Line 1806 of yacc.c */ 7081 #line 15 19"parser.yy"7091 case 382: 7092 7093 /* Line 1806 of yacc.c */ 7094 #line 1528 "parser.yy" 7082 7095 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7083 7096 break; 7084 7097 7085 case 38 0:7086 7087 /* Line 1806 of yacc.c */ 7088 #line 15 21"parser.yy"7098 case 383: 7099 7100 /* Line 1806 of yacc.c */ 7101 #line 1530 "parser.yy" 7089 7102 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7090 7103 break; 7091 7104 7092 case 38 1:7093 7094 /* Line 1806 of yacc.c */ 7095 #line 15 26"parser.yy"7105 case 384: 7106 7107 /* Line 1806 of yacc.c */ 7108 #line 1535 "parser.yy" 7096 7109 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7097 7110 break; 7098 7111 7099 case 38 2:7100 7101 /* Line 1806 of yacc.c */ 7102 #line 15 28"parser.yy"7112 case 385: 7113 7114 /* Line 1806 of yacc.c */ 7115 #line 1537 "parser.yy" 7103 7116 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7104 7117 break; 7105 7118 7106 case 38 3:7107 7108 /* Line 1806 of yacc.c */ 7109 #line 15 33"parser.yy"7119 case 386: 7120 7121 /* Line 1806 of yacc.c */ 7122 #line 1542 "parser.yy" 7110 7123 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7111 7124 break; 7112 7125 7113 case 38 4:7114 7115 /* Line 1806 of yacc.c */ 7116 #line 15 35"parser.yy"7126 case 387: 7127 7128 /* Line 1806 of yacc.c */ 7129 #line 1544 "parser.yy" 7117 7130 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7118 7131 break; 7119 7132 7120 case 38 5:7121 7122 /* Line 1806 of yacc.c */ 7123 #line 15 38"parser.yy"7133 case 388: 7134 7135 /* Line 1806 of yacc.c */ 7136 #line 1547 "parser.yy" 7124 7137 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7125 7138 break; 7126 7139 7127 case 38 6:7128 7129 /* Line 1806 of yacc.c */ 7130 #line 15 41"parser.yy"7140 case 389: 7141 7142 /* Line 1806 of yacc.c */ 7143 #line 1550 "parser.yy" 7131 7144 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7132 7145 break; 7133 7146 7134 case 3 88:7135 7136 /* Line 1806 of yacc.c */ 7137 #line 15 47"parser.yy"7147 case 391: 7148 7149 /* Line 1806 of yacc.c */ 7150 #line 1556 "parser.yy" 7138 7151 { (yyval.en) = 0; } 7139 7152 break; 7140 7153 7141 case 3 89:7142 7143 /* Line 1806 of yacc.c */ 7144 #line 15 49"parser.yy"7154 case 392: 7155 7156 /* Line 1806 of yacc.c */ 7157 #line 1558 "parser.yy" 7145 7158 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7146 7159 break; 7147 7160 7148 case 39 0:7149 7150 /* Line 1806 of yacc.c */ 7151 #line 15 54"parser.yy"7161 case 393: 7162 7163 /* Line 1806 of yacc.c */ 7164 #line 1563 "parser.yy" 7152 7165 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7153 7166 break; 7154 7167 7155 case 39 2:7156 7157 /* Line 1806 of yacc.c */ 7158 #line 15 63"parser.yy"7159 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }7160 break; 7161 7162 case 39 3:7163 7164 /* Line 1806 of yacc.c */ 7165 #line 15 65"parser.yy"7168 case 395: 7169 7170 /* Line 1806 of yacc.c */ 7171 #line 1572 "parser.yy" 7172 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7173 break; 7174 7175 case 396: 7176 7177 /* Line 1806 of yacc.c */ 7178 #line 1574 "parser.yy" 7166 7179 { 7167 7180 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7170 7183 break; 7171 7184 7172 case 39 4:7173 7174 /* Line 1806 of yacc.c */ 7175 #line 157 0"parser.yy"7185 case 397: 7186 7187 /* Line 1806 of yacc.c */ 7188 #line 1579 "parser.yy" 7176 7189 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7177 7190 break; 7178 7191 7179 case 39 5:7180 7181 /* Line 1806 of yacc.c */ 7182 #line 15 72"parser.yy"7192 case 398: 7193 7194 /* Line 1806 of yacc.c */ 7195 #line 1581 "parser.yy" 7183 7196 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7184 7197 break; 7185 7198 7186 case 39 6:7187 7188 /* Line 1806 of yacc.c */ 7189 #line 15 77"parser.yy"7199 case 399: 7200 7201 /* Line 1806 of yacc.c */ 7202 #line 1586 "parser.yy" 7190 7203 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7191 7204 break; 7192 7205 7193 case 397:7194 7195 /* Line 1806 of yacc.c */ 7196 #line 15 79"parser.yy"7206 case 400: 7207 7208 /* Line 1806 of yacc.c */ 7209 #line 1588 "parser.yy" 7197 7210 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7198 7211 break; 7199 7212 7200 case 398:7201 7202 /* Line 1806 of yacc.c */ 7203 #line 15 84"parser.yy"7213 case 401: 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1593 "parser.yy" 7204 7217 { (yyval.en) = 0; } 7205 7218 break; 7206 7219 7207 case 399:7208 7209 /* Line 1806 of yacc.c */ 7210 #line 15 86"parser.yy"7220 case 402: 7221 7222 /* Line 1806 of yacc.c */ 7223 #line 1595 "parser.yy" 7211 7224 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7212 7225 break; 7213 7226 7214 case 40 0:7215 7216 /* Line 1806 of yacc.c */ 7217 #line 1 593"parser.yy"7227 case 403: 7228 7229 /* Line 1806 of yacc.c */ 7230 #line 1602 "parser.yy" 7218 7231 { (yyval.decl) = 0; } 7219 7232 break; 7220 7233 7221 case 40 4:7222 7223 /* Line 1806 of yacc.c */ 7224 #line 16 01"parser.yy"7234 case 407: 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1610 "parser.yy" 7225 7238 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7226 7239 break; 7227 7240 7228 case 40 5:7229 7230 /* Line 1806 of yacc.c */ 7231 #line 16 03"parser.yy"7241 case 408: 7242 7243 /* Line 1806 of yacc.c */ 7244 #line 1612 "parser.yy" 7232 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7233 7246 break; 7234 7247 7235 case 40 6:7236 7237 /* Line 1806 of yacc.c */ 7238 #line 16 05"parser.yy"7248 case 409: 7249 7250 /* Line 1806 of yacc.c */ 7251 #line 1614 "parser.yy" 7239 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7240 7253 break; 7241 7254 7242 case 4 08:7243 7244 /* Line 1806 of yacc.c */ 7245 #line 16 13"parser.yy"7255 case 411: 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1622 "parser.yy" 7246 7259 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7247 7260 break; 7248 7261 7249 case 4 09:7250 7251 /* Line 1806 of yacc.c */ 7252 #line 16 15"parser.yy"7262 case 412: 7263 7264 /* Line 1806 of yacc.c */ 7265 #line 1624 "parser.yy" 7253 7266 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7254 7267 break; 7255 7268 7256 case 41 0:7257 7258 /* Line 1806 of yacc.c */ 7259 #line 16 17"parser.yy"7269 case 413: 7270 7271 /* Line 1806 of yacc.c */ 7272 #line 1626 "parser.yy" 7260 7273 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7261 7274 break; 7262 7275 7263 case 41 2:7264 7265 /* Line 1806 of yacc.c */ 7266 #line 16 23"parser.yy"7276 case 415: 7277 7278 /* Line 1806 of yacc.c */ 7279 #line 1632 "parser.yy" 7267 7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7268 7281 break; 7269 7282 7270 case 41 3:7271 7272 /* Line 1806 of yacc.c */ 7273 #line 16 28"parser.yy"7283 case 416: 7284 7285 /* Line 1806 of yacc.c */ 7286 #line 1637 "parser.yy" 7274 7287 { (yyval.decl) = 0; } 7275 7288 break; 7276 7289 7277 case 41 6:7278 7279 /* Line 1806 of yacc.c */ 7280 #line 16 35"parser.yy"7290 case 419: 7291 7292 /* Line 1806 of yacc.c */ 7293 #line 1644 "parser.yy" 7281 7294 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7282 7295 break; 7283 7296 7284 case 4 19:7285 7286 /* Line 1806 of yacc.c */ 7287 #line 16 42"parser.yy"7297 case 422: 7298 7299 /* Line 1806 of yacc.c */ 7300 #line 1651 "parser.yy" 7288 7301 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7289 7302 break; 7290 7303 7291 case 42 0:7292 7293 /* Line 1806 of yacc.c */ 7294 #line 16 44"parser.yy"7304 case 423: 7305 7306 /* Line 1806 of yacc.c */ 7307 #line 1653 "parser.yy" 7295 7308 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7296 7309 break; 7297 7310 7298 case 42 2:7299 7300 /* Line 1806 of yacc.c */ 7301 #line 16 53"parser.yy"7311 case 425: 7312 7313 /* Line 1806 of yacc.c */ 7314 #line 1662 "parser.yy" 7302 7315 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7303 7316 break; 7304 7317 7305 case 42 3:7306 7307 /* Line 1806 of yacc.c */ 7308 #line 16 56"parser.yy"7318 case 426: 7319 7320 /* Line 1806 of yacc.c */ 7321 #line 1665 "parser.yy" 7309 7322 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7310 7323 break; 7311 7324 7312 case 42 4:7313 7314 /* Line 1806 of yacc.c */ 7315 #line 16 58"parser.yy"7325 case 427: 7326 7327 /* Line 1806 of yacc.c */ 7328 #line 1667 "parser.yy" 7316 7329 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7317 7330 break; 7318 7331 7319 case 4 29:7320 7321 /* Line 1806 of yacc.c */ 7322 #line 16 68"parser.yy"7332 case 432: 7333 7334 /* Line 1806 of yacc.c */ 7335 #line 1677 "parser.yy" 7323 7336 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7324 7337 break; 7325 7338 7326 case 43 1:7327 7328 /* Line 1806 of yacc.c */ 7329 #line 16 74"parser.yy"7339 case 434: 7340 7341 /* Line 1806 of yacc.c */ 7342 #line 1683 "parser.yy" 7330 7343 { 7331 7344 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7334 7347 break; 7335 7348 7336 case 43 2:7337 7338 /* Line 1806 of yacc.c */ 7339 #line 16 79"parser.yy"7349 case 435: 7350 7351 /* Line 1806 of yacc.c */ 7352 #line 1688 "parser.yy" 7340 7353 { 7341 7354 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7344 7357 break; 7345 7358 7346 case 43 4:7347 7348 /* Line 1806 of yacc.c */ 7349 #line 16 88"parser.yy"7359 case 437: 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1697 "parser.yy" 7350 7363 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7351 7364 break; 7352 7365 7353 case 43 5:7354 7355 /* Line 1806 of yacc.c */ 7356 #line 1 697"parser.yy"7366 case 438: 7367 7368 /* Line 1806 of yacc.c */ 7369 #line 1706 "parser.yy" 7357 7370 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7358 7371 break; 7359 7372 7360 case 43 6:7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1 699"parser.yy"7373 case 439: 7374 7375 /* Line 1806 of yacc.c */ 7376 #line 1708 "parser.yy" 7364 7377 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7365 7378 break; 7366 7379 7367 case 4 48:7368 7369 /* Line 1806 of yacc.c */ 7370 #line 17 24"parser.yy"7380 case 451: 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1733 "parser.yy" 7371 7384 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7372 7385 break; 7373 7386 7374 case 45 2:7375 7376 /* Line 1806 of yacc.c */ 7377 #line 17 32"parser.yy"7387 case 455: 7388 7389 /* Line 1806 of yacc.c */ 7390 #line 1741 "parser.yy" 7378 7391 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7379 7392 break; 7380 7393 7381 case 45 3:7382 7383 /* Line 1806 of yacc.c */ 7384 #line 17 37"parser.yy"7394 case 456: 7395 7396 /* Line 1806 of yacc.c */ 7397 #line 1746 "parser.yy" 7385 7398 { (yyval.in) = 0; } 7386 7399 break; 7387 7400 7388 case 45 4:7389 7390 /* Line 1806 of yacc.c */ 7391 #line 17 39"parser.yy"7401 case 457: 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1748 "parser.yy" 7392 7405 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7393 7406 break; 7394 7407 7395 case 45 5:7396 7397 /* Line 1806 of yacc.c */ 7398 #line 17 41"parser.yy"7408 case 458: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1750 "parser.yy" 7399 7412 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7400 7413 break; 7401 7414 7402 case 45 6:7403 7404 /* Line 1806 of yacc.c */ 7405 #line 17 45"parser.yy"7415 case 459: 7416 7417 /* Line 1806 of yacc.c */ 7418 #line 1754 "parser.yy" 7406 7419 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7407 7420 break; 7408 7421 7409 case 4 57:7410 7411 /* Line 1806 of yacc.c */ 7412 #line 17 46"parser.yy"7422 case 460: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1755 "parser.yy" 7413 7426 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7414 7427 break; 7415 7428 7416 case 4 58:7417 7418 /* Line 1806 of yacc.c */ 7419 #line 17 51"parser.yy"7429 case 461: 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1760 "parser.yy" 7420 7433 { (yyval.in) = 0; } 7421 7434 break; 7422 7435 7423 case 46 0:7424 7425 /* Line 1806 of yacc.c */ 7426 #line 17 53"parser.yy"7436 case 463: 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1762 "parser.yy" 7427 7440 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7428 7441 break; 7429 7442 7430 case 46 1:7431 7432 /* Line 1806 of yacc.c */ 7433 #line 17 54"parser.yy"7443 case 464: 7444 7445 /* Line 1806 of yacc.c */ 7446 #line 1763 "parser.yy" 7434 7447 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7435 7448 break; 7436 7449 7437 case 46 2:7438 7439 /* Line 1806 of yacc.c */ 7440 #line 17 56"parser.yy"7450 case 465: 7451 7452 /* Line 1806 of yacc.c */ 7453 #line 1765 "parser.yy" 7441 7454 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7442 7455 break; 7443 7456 7444 case 46 4:7445 7446 /* Line 1806 of yacc.c */ 7447 #line 17 72"parser.yy"7457 case 467: 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1781 "parser.yy" 7448 7461 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7449 7462 break; 7450 7463 7451 case 46 6:7452 7453 /* Line 1806 of yacc.c */ 7454 #line 17 78"parser.yy"7464 case 469: 7465 7466 /* Line 1806 of yacc.c */ 7467 #line 1787 "parser.yy" 7455 7468 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7456 7469 break; 7457 7470 7458 case 4 67:7459 7460 /* Line 1806 of yacc.c */ 7461 #line 17 84"parser.yy"7471 case 470: 7472 7473 /* Line 1806 of yacc.c */ 7474 #line 1793 "parser.yy" 7462 7475 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7463 7476 break; 7464 7477 7465 case 4 68:7466 7467 /* Line 1806 of yacc.c */ 7468 #line 17 87"parser.yy"7478 case 471: 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1796 "parser.yy" 7469 7482 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7470 7483 break; 7471 7484 7472 case 4 69:7473 7474 /* Line 1806 of yacc.c */ 7475 #line 17 89"parser.yy"7485 case 472: 7486 7487 /* Line 1806 of yacc.c */ 7488 #line 1798 "parser.yy" 7476 7489 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7477 7490 break; 7478 7491 7479 case 47 0:7480 7481 /* Line 1806 of yacc.c */ 7482 #line 1 791"parser.yy"7492 case 473: 7493 7494 /* Line 1806 of yacc.c */ 7495 #line 1800 "parser.yy" 7483 7496 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7484 7497 break; 7485 7498 7486 case 47 1:7487 7488 /* Line 1806 of yacc.c */ 7489 #line 1 793"parser.yy"7499 case 474: 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1802 "parser.yy" 7490 7503 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7491 7504 break; 7492 7505 7493 case 47 3:7494 7495 /* Line 1806 of yacc.c */ 7496 #line 18 17"parser.yy"7506 case 476: 7507 7508 /* Line 1806 of yacc.c */ 7509 #line 1826 "parser.yy" 7497 7510 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7498 7511 break; 7499 7512 7500 case 47 4:7501 7502 /* Line 1806 of yacc.c */ 7503 #line 18 19"parser.yy"7513 case 477: 7514 7515 /* Line 1806 of yacc.c */ 7516 #line 1828 "parser.yy" 7504 7517 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7505 7518 break; 7506 7519 7507 case 47 5:7508 7509 /* Line 1806 of yacc.c */ 7510 #line 18 21"parser.yy"7520 case 478: 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1830 "parser.yy" 7511 7524 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7512 7525 break; 7513 7526 7514 case 4 77:7515 7516 /* Line 1806 of yacc.c */ 7517 #line 18 27"parser.yy"7527 case 480: 7528 7529 /* Line 1806 of yacc.c */ 7530 #line 1836 "parser.yy" 7518 7531 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7519 7532 break; 7520 7533 7521 case 4 78:7522 7523 /* Line 1806 of yacc.c */ 7524 #line 18 29"parser.yy"7534 case 481: 7535 7536 /* Line 1806 of yacc.c */ 7537 #line 1838 "parser.yy" 7525 7538 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7526 7539 break; 7527 7540 7528 case 4 79:7529 7530 /* Line 1806 of yacc.c */ 7531 #line 18 34"parser.yy"7541 case 482: 7542 7543 /* Line 1806 of yacc.c */ 7544 #line 1843 "parser.yy" 7532 7545 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7533 7546 break; 7534 7547 7535 case 48 1:7536 7537 /* Line 1806 of yacc.c */ 7538 #line 184 0"parser.yy"7548 case 484: 7549 7550 /* Line 1806 of yacc.c */ 7551 #line 1849 "parser.yy" 7539 7552 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7540 7553 break; 7541 7554 7542 case 48 2:7543 7544 /* Line 1806 of yacc.c */ 7545 #line 18 45"parser.yy"7555 case 485: 7556 7557 /* Line 1806 of yacc.c */ 7558 #line 1854 "parser.yy" 7546 7559 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7547 7560 break; 7548 7561 7549 case 48 3:7550 7551 /* Line 1806 of yacc.c */ 7552 #line 18 47"parser.yy"7562 case 486: 7563 7564 /* Line 1806 of yacc.c */ 7565 #line 1856 "parser.yy" 7553 7566 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7554 7567 break; 7555 7568 7556 case 48 5:7557 7558 /* Line 1806 of yacc.c */ 7559 #line 18 53"parser.yy"7569 case 488: 7570 7571 /* Line 1806 of yacc.c */ 7572 #line 1862 "parser.yy" 7560 7573 { (yyval.tclass) = DeclarationNode::Otype; } 7561 7574 break; 7562 7575 7563 case 48 6:7564 7565 /* Line 1806 of yacc.c */ 7566 #line 18 55"parser.yy"7576 case 489: 7577 7578 /* Line 1806 of yacc.c */ 7579 #line 1864 "parser.yy" 7567 7580 { (yyval.tclass) = DeclarationNode::Ftype; } 7568 7581 break; 7569 7582 7570 case 4 87:7571 7572 /* Line 1806 of yacc.c */ 7573 #line 18 57"parser.yy"7583 case 490: 7584 7585 /* Line 1806 of yacc.c */ 7586 #line 1866 "parser.yy" 7574 7587 { (yyval.tclass) = DeclarationNode::Dtype; } 7575 7588 break; 7576 7589 7577 case 4 88:7578 7579 /* Line 1806 of yacc.c */ 7580 #line 18 62"parser.yy"7590 case 491: 7591 7592 /* Line 1806 of yacc.c */ 7593 #line 1871 "parser.yy" 7581 7594 { (yyval.decl) = 0; } 7582 7595 break; 7583 7596 7584 case 4 89:7585 7586 /* Line 1806 of yacc.c */ 7587 #line 18 64"parser.yy"7597 case 492: 7598 7599 /* Line 1806 of yacc.c */ 7600 #line 1873 "parser.yy" 7588 7601 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7589 7602 break; 7590 7603 7591 case 49 0:7592 7593 /* Line 1806 of yacc.c */ 7594 #line 18 69"parser.yy"7604 case 493: 7605 7606 /* Line 1806 of yacc.c */ 7607 #line 1878 "parser.yy" 7595 7608 { 7596 7609 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7599 7612 break; 7600 7613 7601 case 49 1:7602 7603 /* Line 1806 of yacc.c */ 7604 #line 18 74"parser.yy"7614 case 494: 7615 7616 /* Line 1806 of yacc.c */ 7617 #line 1883 "parser.yy" 7605 7618 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7606 7619 break; 7607 7620 7608 case 49 2:7609 7610 /* Line 1806 of yacc.c */ 7611 #line 18 76"parser.yy"7621 case 495: 7622 7623 /* Line 1806 of yacc.c */ 7624 #line 1885 "parser.yy" 7612 7625 { (yyval.decl) = 0; } 7613 7626 break; 7614 7627 7615 case 49 3:7616 7617 /* Line 1806 of yacc.c */ 7618 #line 18 81"parser.yy"7628 case 496: 7629 7630 /* Line 1806 of yacc.c */ 7631 #line 1890 "parser.yy" 7619 7632 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7620 7633 break; 7621 7634 7622 case 49 5:7623 7624 /* Line 1806 of yacc.c */ 7625 #line 18 84"parser.yy"7635 case 498: 7636 7637 /* Line 1806 of yacc.c */ 7638 #line 1893 "parser.yy" 7626 7639 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7627 7640 break; 7628 7641 7629 case 49 6:7630 7631 /* Line 1806 of yacc.c */ 7632 #line 18 86"parser.yy"7642 case 499: 7643 7644 /* Line 1806 of yacc.c */ 7645 #line 1895 "parser.yy" 7633 7646 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7634 7647 break; 7635 7648 7636 case 497:7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1 891"parser.yy"7649 case 500: 7650 7651 /* Line 1806 of yacc.c */ 7652 #line 1900 "parser.yy" 7640 7653 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7641 7654 break; 7642 7655 7643 case 498:7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1 893"parser.yy"7656 case 501: 7657 7658 /* Line 1806 of yacc.c */ 7659 #line 1902 "parser.yy" 7647 7660 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7648 7661 break; 7649 7662 7650 case 499:7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1 895"parser.yy"7663 case 502: 7664 7665 /* Line 1806 of yacc.c */ 7666 #line 1904 "parser.yy" 7654 7667 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7655 7668 break; 7656 7669 7657 case 50 0:7658 7659 /* Line 1806 of yacc.c */ 7660 #line 190 0"parser.yy"7670 case 503: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1909 "parser.yy" 7661 7674 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7662 7675 break; 7663 7676 7664 case 50 1:7665 7666 /* Line 1806 of yacc.c */ 7667 #line 19 02"parser.yy"7677 case 504: 7678 7679 /* Line 1806 of yacc.c */ 7680 #line 1911 "parser.yy" 7668 7681 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7669 7682 break; 7670 7683 7671 case 50 2:7672 7673 /* Line 1806 of yacc.c */ 7674 #line 19 07"parser.yy"7684 case 505: 7685 7686 /* Line 1806 of yacc.c */ 7687 #line 1916 "parser.yy" 7675 7688 { 7676 7689 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7679 7692 break; 7680 7693 7681 case 50 3:7682 7683 /* Line 1806 of yacc.c */ 7684 #line 19 12"parser.yy"7694 case 506: 7695 7696 /* Line 1806 of yacc.c */ 7697 #line 1921 "parser.yy" 7685 7698 { 7686 7699 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7689 7702 break; 7690 7703 7691 case 50 4:7692 7693 /* Line 1806 of yacc.c */ 7694 #line 192 0"parser.yy"7704 case 507: 7705 7706 /* Line 1806 of yacc.c */ 7707 #line 1929 "parser.yy" 7695 7708 { 7696 7709 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7699 7712 break; 7700 7713 7701 case 50 5:7702 7703 /* Line 1806 of yacc.c */ 7704 #line 19 25"parser.yy"7714 case 508: 7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1934 "parser.yy" 7705 7718 { 7706 7719 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7709 7722 break; 7710 7723 7711 case 50 6:7712 7713 /* Line 1806 of yacc.c */ 7714 #line 193 0"parser.yy"7724 case 509: 7725 7726 /* Line 1806 of yacc.c */ 7727 #line 1939 "parser.yy" 7715 7728 { 7716 7729 typedefTable.leaveTrait(); … … 7720 7733 break; 7721 7734 7722 case 5 08:7723 7724 /* Line 1806 of yacc.c */ 7725 #line 194 0"parser.yy"7735 case 511: 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1949 "parser.yy" 7726 7739 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7727 7740 break; 7728 7741 7729 case 51 1:7730 7731 /* Line 1806 of yacc.c */ 7732 #line 195 0"parser.yy"7742 case 514: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1959 "parser.yy" 7733 7746 { 7734 7747 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7737 7750 break; 7738 7751 7739 case 51 2:7740 7741 /* Line 1806 of yacc.c */ 7742 #line 19 55"parser.yy"7752 case 515: 7753 7754 /* Line 1806 of yacc.c */ 7755 #line 1964 "parser.yy" 7743 7756 { 7744 7757 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7747 7760 break; 7748 7761 7749 case 51 3:7750 7751 /* Line 1806 of yacc.c */ 7752 #line 196 0"parser.yy"7762 case 516: 7763 7764 /* Line 1806 of yacc.c */ 7765 #line 1969 "parser.yy" 7753 7766 { 7754 7767 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7757 7770 break; 7758 7771 7759 case 51 4:7760 7761 /* Line 1806 of yacc.c */ 7762 #line 19 68"parser.yy"7772 case 517: 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 1977 "parser.yy" 7763 7776 { 7764 7777 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7767 7780 break; 7768 7781 7769 case 51 5:7770 7771 /* Line 1806 of yacc.c */ 7772 #line 19 73"parser.yy"7782 case 518: 7783 7784 /* Line 1806 of yacc.c */ 7785 #line 1982 "parser.yy" 7773 7786 { 7774 7787 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7777 7790 break; 7778 7791 7779 case 51 6:7780 7781 /* Line 1806 of yacc.c */ 7782 #line 19 83"parser.yy"7792 case 519: 7793 7794 /* Line 1806 of yacc.c */ 7795 #line 1992 "parser.yy" 7783 7796 {} 7784 7797 break; 7785 7798 7786 case 5 17:7787 7788 /* Line 1806 of yacc.c */ 7789 #line 19 85"parser.yy"7799 case 520: 7800 7801 /* Line 1806 of yacc.c */ 7802 #line 1994 "parser.yy" 7790 7803 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7791 7804 break; 7792 7805 7793 case 5 19:7794 7795 /* Line 1806 of yacc.c */ 7796 #line 1991"parser.yy"7806 case 522: 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 2000 "parser.yy" 7797 7810 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7798 7811 break; 7799 7812 7800 case 52 0:7801 7802 /* Line 1806 of yacc.c */ 7803 #line 1996"parser.yy"7813 case 523: 7814 7815 /* Line 1806 of yacc.c */ 7816 #line 2005 "parser.yy" 7804 7817 { (yyval.decl) = 0; } 7805 7818 break; 7806 7819 7807 case 52 4:7808 7809 /* Line 1806 of yacc.c */ 7810 #line 20 04"parser.yy"7820 case 527: 7821 7822 /* Line 1806 of yacc.c */ 7823 #line 2013 "parser.yy" 7811 7824 {} 7812 7825 break; 7813 7826 7814 case 52 5:7815 7816 /* Line 1806 of yacc.c */ 7817 #line 20 06"parser.yy"7827 case 528: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 2015 "parser.yy" 7818 7831 { 7819 7832 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 7820 linkage = LinkageSpec:: fromString( *(yyvsp[(2) - (2)].tok) );7833 linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) ); 7821 7834 } 7822 7835 break; 7823 7836 7824 case 52 6:7825 7826 /* Line 1806 of yacc.c */ 7827 #line 20 11"parser.yy"7837 case 529: 7838 7839 /* Line 1806 of yacc.c */ 7840 #line 2020 "parser.yy" 7828 7841 { 7829 7842 linkage = linkageStack.top(); … … 7833 7846 break; 7834 7847 7835 case 5 27:7836 7837 /* Line 1806 of yacc.c */ 7838 #line 20 17"parser.yy"7848 case 530: 7849 7850 /* Line 1806 of yacc.c */ 7851 #line 2026 "parser.yy" 7839 7852 { // mark all fields in list 7840 7853 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7844 7857 break; 7845 7858 7846 case 5 29:7847 7848 /* Line 1806 of yacc.c */ 7849 #line 20 32"parser.yy"7859 case 532: 7860 7861 /* Line 1806 of yacc.c */ 7862 #line 2041 "parser.yy" 7850 7863 { 7851 7864 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7855 7868 break; 7856 7869 7857 case 53 0:7858 7859 /* Line 1806 of yacc.c */ 7860 #line 20 38"parser.yy"7870 case 533: 7871 7872 /* Line 1806 of yacc.c */ 7873 #line 2047 "parser.yy" 7861 7874 { 7862 7875 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7866 7879 break; 7867 7880 7868 case 53 1:7869 7870 /* Line 1806 of yacc.c */ 7871 #line 20 47"parser.yy"7881 case 534: 7882 7883 /* Line 1806 of yacc.c */ 7884 #line 2056 "parser.yy" 7872 7885 { 7873 7886 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7877 7890 break; 7878 7891 7879 case 53 2:7880 7881 /* Line 1806 of yacc.c */ 7882 #line 20 53"parser.yy"7892 case 535: 7893 7894 /* Line 1806 of yacc.c */ 7895 #line 2062 "parser.yy" 7883 7896 { 7884 7897 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7888 7901 break; 7889 7902 7890 case 53 3:7891 7892 /* Line 1806 of yacc.c */ 7893 #line 20 59"parser.yy"7903 case 536: 7904 7905 /* Line 1806 of yacc.c */ 7906 #line 2068 "parser.yy" 7894 7907 { 7895 7908 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7899 7912 break; 7900 7913 7901 case 53 4:7902 7903 /* Line 1806 of yacc.c */ 7904 #line 20 65"parser.yy"7914 case 537: 7915 7916 /* Line 1806 of yacc.c */ 7917 #line 2074 "parser.yy" 7905 7918 { 7906 7919 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7910 7923 break; 7911 7924 7912 case 53 5:7913 7914 /* Line 1806 of yacc.c */ 7915 #line 20 71"parser.yy"7925 case 538: 7926 7927 /* Line 1806 of yacc.c */ 7928 #line 2080 "parser.yy" 7916 7929 { 7917 7930 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7921 7934 break; 7922 7935 7923 case 53 6:7924 7925 /* Line 1806 of yacc.c */ 7926 #line 20 79"parser.yy"7936 case 539: 7937 7938 /* Line 1806 of yacc.c */ 7939 #line 2088 "parser.yy" 7927 7940 { 7928 7941 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7932 7945 break; 7933 7946 7934 case 5 37:7935 7936 /* Line 1806 of yacc.c */ 7937 #line 20 85"parser.yy"7947 case 540: 7948 7949 /* Line 1806 of yacc.c */ 7950 #line 2094 "parser.yy" 7938 7951 { 7939 7952 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7943 7956 break; 7944 7957 7945 case 5 38:7946 7947 /* Line 1806 of yacc.c */ 7948 #line 2 093"parser.yy"7958 case 541: 7959 7960 /* Line 1806 of yacc.c */ 7961 #line 2102 "parser.yy" 7949 7962 { 7950 7963 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7954 7967 break; 7955 7968 7956 case 5 39:7957 7958 /* Line 1806 of yacc.c */ 7959 #line 2 099"parser.yy"7969 case 542: 7970 7971 /* Line 1806 of yacc.c */ 7972 #line 2108 "parser.yy" 7960 7973 { 7961 7974 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7965 7978 break; 7966 7979 7967 case 54 3:7968 7969 /* Line 1806 of yacc.c */ 7970 #line 21 14"parser.yy"7980 case 546: 7981 7982 /* Line 1806 of yacc.c */ 7983 #line 2123 "parser.yy" 7971 7984 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7972 7985 break; 7973 7986 7974 case 54 5:7975 7976 /* Line 1806 of yacc.c */ 7977 #line 21 19"parser.yy"7987 case 548: 7988 7989 /* Line 1806 of yacc.c */ 7990 #line 2128 "parser.yy" 7978 7991 { delete (yyvsp[(3) - (5)].str); } 7979 7992 break; 7980 7993 7981 case 54 6:7982 7983 /* Line 1806 of yacc.c */ 7984 #line 21 24"parser.yy"7994 case 549: 7995 7996 /* Line 1806 of yacc.c */ 7997 #line 2133 "parser.yy" 7985 7998 { (yyval.decl) = 0; } 7986 7999 break; 7987 8000 7988 case 5 49:7989 7990 /* Line 1806 of yacc.c */ 7991 #line 21 31"parser.yy"8001 case 552: 8002 8003 /* Line 1806 of yacc.c */ 8004 #line 2140 "parser.yy" 7992 8005 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7993 8006 break; 7994 8007 7995 case 55 0:7996 7997 /* Line 1806 of yacc.c */ 7998 #line 21 37"parser.yy"8008 case 553: 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2146 "parser.yy" 7999 8012 { (yyval.decl) = 0; } 8000 8013 break; 8001 8014 8002 case 55 5:8003 8004 /* Line 1806 of yacc.c */ 8005 #line 21 48"parser.yy"8015 case 558: 8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2157 "parser.yy" 8006 8019 { delete (yyvsp[(3) - (4)].en); } 8007 8020 break; 8008 8021 8009 case 55 6:8010 8011 /* Line 1806 of yacc.c */ 8012 #line 21 52"parser.yy"8022 case 559: 8023 8024 /* Line 1806 of yacc.c */ 8025 #line 2161 "parser.yy" 8013 8026 { delete (yyvsp[(1) - (1)].tok); } 8014 8027 break; 8015 8028 8016 case 5 57:8017 8018 /* Line 1806 of yacc.c */ 8019 #line 21 53"parser.yy"8029 case 560: 8030 8031 /* Line 1806 of yacc.c */ 8032 #line 2162 "parser.yy" 8020 8033 { delete (yyvsp[(1) - (1)].decl); } 8021 8034 break; 8022 8035 8023 case 5 58:8024 8025 /* Line 1806 of yacc.c */ 8026 #line 21 54"parser.yy"8036 case 561: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2163 "parser.yy" 8027 8040 { delete (yyvsp[(1) - (1)].decl); } 8028 8041 break; 8029 8042 8030 case 5 59:8031 8032 /* Line 1806 of yacc.c */ 8033 #line 21 55"parser.yy"8043 case 562: 8044 8045 /* Line 1806 of yacc.c */ 8046 #line 2164 "parser.yy" 8034 8047 { delete (yyvsp[(1) - (1)].decl); } 8035 8048 break; 8036 8049 8037 case 56 0:8038 8039 /* Line 1806 of yacc.c */ 8040 #line 219 0"parser.yy"8050 case 563: 8051 8052 /* Line 1806 of yacc.c */ 8053 #line 2199 "parser.yy" 8041 8054 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8042 8055 break; 8043 8056 8044 case 56 2:8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2 193"parser.yy"8057 case 565: 8058 8059 /* Line 1806 of yacc.c */ 8060 #line 2202 "parser.yy" 8048 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8049 8062 break; 8050 8063 8051 case 56 3:8052 8053 /* Line 1806 of yacc.c */ 8054 #line 2 195"parser.yy"8064 case 566: 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2204 "parser.yy" 8055 8068 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8056 8069 break; 8057 8070 8058 case 56 4:8059 8060 /* Line 1806 of yacc.c */ 8061 #line 220 0"parser.yy"8071 case 567: 8072 8073 /* Line 1806 of yacc.c */ 8074 #line 2209 "parser.yy" 8062 8075 { 8063 8076 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8066 8079 break; 8067 8080 8068 case 565:8069 8070 /* Line 1806 of yacc.c */8071 #line 2205 "parser.yy"8072 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8073 break;8074 8075 case 566:8076 8077 /* Line 1806 of yacc.c */8078 #line 2210 "parser.yy"8079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8080 break;8081 8082 case 567:8083 8084 /* Line 1806 of yacc.c */8085 #line 2212 "parser.yy"8086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8087 break;8088 8089 8081 case 568: 8090 8082 … … 8098 8090 /* Line 1806 of yacc.c */ 8099 8091 #line 2219 "parser.yy" 8092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8093 break; 8094 8095 case 570: 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2221 "parser.yy" 8099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8100 break; 8101 8102 case 571: 8103 8104 /* Line 1806 of yacc.c */ 8105 #line 2223 "parser.yy" 8106 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8107 break; 8108 8109 case 572: 8110 8111 /* Line 1806 of yacc.c */ 8112 #line 2228 "parser.yy" 8100 8113 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8101 8114 break; 8102 8115 8103 case 57 0:8104 8105 /* Line 1806 of yacc.c */ 8106 #line 22 21"parser.yy"8116 case 573: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2230 "parser.yy" 8107 8120 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8108 8121 break; 8109 8122 8110 case 57 1:8111 8112 /* Line 1806 of yacc.c */ 8113 #line 22 23"parser.yy"8123 case 574: 8124 8125 /* Line 1806 of yacc.c */ 8126 #line 2232 "parser.yy" 8114 8127 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8115 8128 break; 8116 8129 8117 case 57 2:8118 8119 /* Line 1806 of yacc.c */ 8120 #line 22 25"parser.yy"8130 case 575: 8131 8132 /* Line 1806 of yacc.c */ 8133 #line 2234 "parser.yy" 8121 8134 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8122 8135 break; 8123 8136 8124 case 57 3:8125 8126 /* Line 1806 of yacc.c */ 8127 #line 223 0"parser.yy"8137 case 576: 8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2239 "parser.yy" 8128 8141 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8129 8142 break; 8130 8143 8131 case 57 4:8132 8133 /* Line 1806 of yacc.c */ 8134 #line 22 32"parser.yy"8144 case 577: 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2241 "parser.yy" 8135 8148 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8136 8149 break; 8137 8150 8138 case 57 5:8139 8140 /* Line 1806 of yacc.c */ 8141 #line 22 41"parser.yy"8151 case 578: 8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2250 "parser.yy" 8142 8155 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8143 8156 break; 8144 8157 8145 case 5 77:8146 8147 /* Line 1806 of yacc.c */ 8148 #line 22 44"parser.yy"8158 case 580: 8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2253 "parser.yy" 8149 8162 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8150 8163 break; 8151 8164 8152 case 5 78:8153 8154 /* Line 1806 of yacc.c */ 8155 #line 22 49"parser.yy"8165 case 581: 8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2258 "parser.yy" 8156 8169 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8157 8170 break; 8158 8171 8159 case 5 79:8160 8161 /* Line 1806 of yacc.c */ 8162 #line 22 51"parser.yy"8172 case 582: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2260 "parser.yy" 8163 8176 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8164 break;8165 8166 case 580:8167 8168 /* Line 1806 of yacc.c */8169 #line 2253 "parser.yy"8170 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8171 break;8172 8173 case 581:8174 8175 /* Line 1806 of yacc.c */8176 #line 2258 "parser.yy"8177 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8178 break;8179 8180 case 582:8181 8182 /* Line 1806 of yacc.c */8183 #line 2260 "parser.yy"8184 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8185 8177 break; 8186 8178 … … 8196 8188 /* Line 1806 of yacc.c */ 8197 8189 #line 2267 "parser.yy" 8198 { (yyval.decl) = (yyvsp[(2) - ( 4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8190 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8199 8191 break; 8200 8192 … … 8203 8195 /* Line 1806 of yacc.c */ 8204 8196 #line 2269 "parser.yy" 8205 { (yyval.decl) = (yyvsp[( 2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8197 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8206 8198 break; 8207 8199 … … 8213 8205 break; 8214 8206 8215 case 590: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2286 "parser.yy" 8207 case 587: 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2276 "parser.yy" 8211 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8212 break; 8213 8214 case 588: 8215 8216 /* Line 1806 of yacc.c */ 8217 #line 2278 "parser.yy" 8218 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8219 break; 8220 8221 case 589: 8222 8223 /* Line 1806 of yacc.c */ 8224 #line 2280 "parser.yy" 8225 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8226 break; 8227 8228 case 593: 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2295 "parser.yy" 8219 8232 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8220 8233 break; 8221 8234 8222 case 59 1:8223 8224 /* Line 1806 of yacc.c */ 8225 #line 22 88"parser.yy"8235 case 594: 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2297 "parser.yy" 8226 8239 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8227 break;8228 8229 case 592:8230 8231 /* Line 1806 of yacc.c */8232 #line 2290 "parser.yy"8233 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8234 break;8235 8236 case 593:8237 8238 /* Line 1806 of yacc.c */8239 #line 2295 "parser.yy"8240 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8241 break;8242 8243 case 594:8244 8245 /* Line 1806 of yacc.c */8246 #line 2297 "parser.yy"8247 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8248 8240 break; 8249 8241 … … 8259 8251 /* Line 1806 of yacc.c */ 8260 8252 #line 2304 "parser.yy" 8261 { (yyval.decl) = (yyvsp[(2) - ( 4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8253 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8262 8254 break; 8263 8255 … … 8266 8258 /* Line 1806 of yacc.c */ 8267 8259 #line 2306 "parser.yy" 8268 { (yyval.decl) = (yyvsp[( 2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8260 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8269 8261 break; 8270 8262 … … 8279 8271 8280 8272 /* Line 1806 of yacc.c */ 8281 #line 2323 "parser.yy" 8273 #line 2313 "parser.yy" 8274 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8275 break; 8276 8277 case 600: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2315 "parser.yy" 8281 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8282 break; 8283 8284 case 601: 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2317 "parser.yy" 8288 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8289 break; 8290 8291 case 602: 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2332 "parser.yy" 8282 8295 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8283 8296 break; 8284 8297 8285 case 60 1:8286 8287 /* Line 1806 of yacc.c */ 8288 #line 23 26"parser.yy"8298 case 604: 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2335 "parser.yy" 8289 8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8290 8303 break; 8291 8304 8292 case 60 2:8293 8294 /* Line 1806 of yacc.c */ 8295 #line 23 28"parser.yy"8305 case 605: 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2337 "parser.yy" 8296 8309 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8297 break;8298 8299 case 604:8300 8301 /* Line 1806 of yacc.c */8302 #line 2334 "parser.yy"8303 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8304 break;8305 8306 case 605:8307 8308 /* Line 1806 of yacc.c */8309 #line 2339 "parser.yy"8310 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8311 break;8312 8313 case 606:8314 8315 /* Line 1806 of yacc.c */8316 #line 2341 "parser.yy"8317 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8318 8310 break; 8319 8311 … … 8329 8321 /* Line 1806 of yacc.c */ 8330 8322 #line 2348 "parser.yy" 8323 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8324 break; 8325 8326 case 609: 8327 8328 /* Line 1806 of yacc.c */ 8329 #line 2350 "parser.yy" 8330 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8331 break; 8332 8333 case 610: 8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2352 "parser.yy" 8337 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8338 break; 8339 8340 case 611: 8341 8342 /* Line 1806 of yacc.c */ 8343 #line 2357 "parser.yy" 8331 8344 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8332 8345 break; 8333 8346 8334 case 6 09:8335 8336 /* Line 1806 of yacc.c */ 8337 #line 235 0"parser.yy"8347 case 612: 8348 8349 /* Line 1806 of yacc.c */ 8350 #line 2359 "parser.yy" 8338 8351 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8339 8352 break; 8340 8353 8341 case 61 0:8342 8343 /* Line 1806 of yacc.c */ 8344 #line 23 52"parser.yy"8354 case 613: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2361 "parser.yy" 8345 8358 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8346 break;8347 8348 case 611:8349 8350 /* Line 1806 of yacc.c */8351 #line 2354 "parser.yy"8352 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8353 break;8354 8355 case 612:8356 8357 /* Line 1806 of yacc.c */8358 #line 2359 "parser.yy"8359 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8360 break;8361 8362 case 613:8363 8364 /* Line 1806 of yacc.c */8365 #line 2361 "parser.yy"8366 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8367 8359 break; 8368 8360 … … 8377 8369 8378 8370 /* Line 1806 of yacc.c */ 8379 #line 2373 "parser.yy" 8371 #line 2368 "parser.yy" 8372 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8373 break; 8374 8375 case 616: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2370 "parser.yy" 8379 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8380 break; 8381 8382 case 617: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2372 "parser.yy" 8386 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8387 break; 8388 8389 case 618: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2382 "parser.yy" 8380 8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8381 8394 break; 8382 8395 8383 case 6 17:8384 8385 /* Line 1806 of yacc.c */ 8386 #line 23 76"parser.yy"8396 case 620: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2385 "parser.yy" 8387 8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8388 8401 break; 8389 8402 8390 case 6 18:8391 8392 /* Line 1806 of yacc.c */ 8393 #line 23 78"parser.yy"8403 case 621: 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2387 "parser.yy" 8394 8407 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8395 8408 break; 8396 8409 8397 case 6 19:8398 8399 /* Line 1806 of yacc.c */ 8400 #line 23 83"parser.yy"8410 case 622: 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2392 "parser.yy" 8401 8414 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8402 8415 break; 8403 8416 8404 case 62 0:8405 8406 /* Line 1806 of yacc.c */ 8407 #line 23 85"parser.yy"8417 case 623: 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2394 "parser.yy" 8408 8421 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8409 8422 break; 8410 8423 8411 case 62 1:8412 8413 /* Line 1806 of yacc.c */ 8414 #line 23 87"parser.yy"8424 case 624: 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2396 "parser.yy" 8415 8428 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8416 8429 break; 8417 8430 8418 case 62 2:8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2 392"parser.yy"8431 case 625: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2401 "parser.yy" 8422 8435 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8423 8436 break; 8424 8437 8425 case 62 3:8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2 394"parser.yy"8438 case 626: 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2403 "parser.yy" 8429 8442 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8430 8443 break; 8431 8444 8432 case 62 4:8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2 396"parser.yy"8445 case 627: 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2405 "parser.yy" 8436 8449 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8437 break;8438 8439 case 625:8440 8441 /* Line 1806 of yacc.c */8442 #line 2398 "parser.yy"8443 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8444 break;8445 8446 case 626:8447 8448 /* Line 1806 of yacc.c */8449 #line 2403 "parser.yy"8450 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8451 break;8452 8453 case 627:8454 8455 /* Line 1806 of yacc.c */8456 #line 2405 "parser.yy"8457 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8458 8450 break; 8459 8451 … … 8468 8460 8469 8461 /* Line 1806 of yacc.c */ 8470 #line 2438 "parser.yy" 8462 #line 2412 "parser.yy" 8463 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8464 break; 8465 8466 case 630: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2414 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8471 break; 8472 8473 case 631: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2416 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8478 break; 8479 8480 case 632: 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2447 "parser.yy" 8471 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8472 8485 break; 8473 8486 8474 case 63 1:8475 8476 /* Line 1806 of yacc.c */ 8477 #line 24 41"parser.yy"8487 case 634: 8488 8489 /* Line 1806 of yacc.c */ 8490 #line 2450 "parser.yy" 8478 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8479 8492 break; 8480 8493 8481 case 63 2:8482 8483 /* Line 1806 of yacc.c */ 8484 #line 24 43"parser.yy"8494 case 635: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2452 "parser.yy" 8485 8498 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8486 8499 break; 8487 8500 8488 case 63 3:8489 8490 /* Line 1806 of yacc.c */ 8491 #line 24 48"parser.yy"8501 case 636: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2457 "parser.yy" 8492 8505 { 8493 8506 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8496 8509 break; 8497 8510 8498 case 63 4:8499 8500 /* Line 1806 of yacc.c */ 8501 #line 24 53"parser.yy"8511 case 637: 8512 8513 /* Line 1806 of yacc.c */ 8514 #line 2462 "parser.yy" 8502 8515 { 8503 8516 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8506 8519 break; 8507 8520 8508 case 63 5:8509 8510 /* Line 1806 of yacc.c */ 8511 #line 24 61"parser.yy"8521 case 638: 8522 8523 /* Line 1806 of yacc.c */ 8524 #line 2470 "parser.yy" 8512 8525 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8513 8526 break; 8514 8527 8515 case 63 6:8516 8517 /* Line 1806 of yacc.c */ 8518 #line 24 63"parser.yy"8528 case 639: 8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2472 "parser.yy" 8519 8532 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8520 8533 break; 8521 8534 8522 case 6 37:8523 8524 /* Line 1806 of yacc.c */ 8525 #line 24 65"parser.yy"8535 case 640: 8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2474 "parser.yy" 8526 8539 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8527 8540 break; 8528 8541 8529 case 6 38:8530 8531 /* Line 1806 of yacc.c */ 8532 #line 247 0"parser.yy"8542 case 641: 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2479 "parser.yy" 8533 8546 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8534 8547 break; 8535 8548 8536 case 6 39:8537 8538 /* Line 1806 of yacc.c */ 8539 #line 24 72"parser.yy"8549 case 642: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2481 "parser.yy" 8540 8553 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8541 8554 break; 8542 8555 8543 case 64 0:8544 8545 /* Line 1806 of yacc.c */ 8546 #line 24 77"parser.yy"8556 case 643: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2486 "parser.yy" 8547 8560 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8548 8561 break; 8549 8562 8550 case 64 1:8551 8552 /* Line 1806 of yacc.c */ 8553 #line 24 79"parser.yy"8563 case 644: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2488 "parser.yy" 8554 8567 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8555 8568 break; 8556 8569 8557 case 64 3:8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2 494"parser.yy"8570 case 646: 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2503 "parser.yy" 8561 8574 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8562 8575 break; 8563 8576 8564 case 64 4:8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2 496"parser.yy"8577 case 647: 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2505 "parser.yy" 8568 8581 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8569 8582 break; 8570 8583 8571 case 64 5:8572 8573 /* Line 1806 of yacc.c */ 8574 #line 25 01"parser.yy"8584 case 648: 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2510 "parser.yy" 8575 8588 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8576 8589 break; 8577 8590 8578 case 64 6:8579 8580 /* Line 1806 of yacc.c */ 8581 #line 25 03"parser.yy"8591 case 649: 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2512 "parser.yy" 8582 8595 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8583 8596 break; 8584 8597 8585 case 6 47:8586 8587 /* Line 1806 of yacc.c */ 8588 #line 25 05"parser.yy"8598 case 650: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2514 "parser.yy" 8589 8602 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8590 8603 break; 8591 8604 8592 case 6 48:8593 8594 /* Line 1806 of yacc.c */ 8595 #line 25 07"parser.yy"8605 case 651: 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2516 "parser.yy" 8596 8609 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8597 8610 break; 8598 8611 8599 case 6 49:8600 8601 /* Line 1806 of yacc.c */ 8602 #line 25 09"parser.yy"8612 case 652: 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2518 "parser.yy" 8603 8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8604 8617 break; 8605 8618 8606 case 65 1:8607 8608 /* Line 1806 of yacc.c */ 8609 #line 25 15"parser.yy"8619 case 654: 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2524 "parser.yy" 8610 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8611 8624 break; 8612 8625 8613 case 65 2:8614 8615 /* Line 1806 of yacc.c */ 8616 #line 25 17"parser.yy"8626 case 655: 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2526 "parser.yy" 8617 8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8618 break;8619 8620 case 653:8621 8622 /* Line 1806 of yacc.c */8623 #line 2519 "parser.yy"8624 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8625 break;8626 8627 case 654:8628 8629 /* Line 1806 of yacc.c */8630 #line 2524 "parser.yy"8631 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }8632 break;8633 8634 case 655:8635 8636 /* Line 1806 of yacc.c */8637 #line 2526 "parser.yy"8638 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8639 8631 break; 8640 8632 … … 8649 8641 8650 8642 /* Line 1806 of yacc.c */ 8651 #line 2534 "parser.yy" 8643 #line 2533 "parser.yy" 8644 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8645 break; 8646 8647 case 658: 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2535 "parser.yy" 8651 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8652 break; 8653 8654 case 659: 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2537 "parser.yy" 8658 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8659 break; 8660 8661 case 660: 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2543 "parser.yy" 8652 8665 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8653 8666 break; 8654 8667 8655 case 6 58:8656 8657 /* Line 1806 of yacc.c */ 8658 #line 25 36"parser.yy"8668 case 661: 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2545 "parser.yy" 8659 8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8660 8673 break; 8661 8674 8662 case 66 0:8663 8664 /* Line 1806 of yacc.c */ 8665 #line 25 42"parser.yy"8675 case 663: 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2551 "parser.yy" 8666 8679 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8667 8680 break; 8668 8681 8669 case 66 1:8670 8671 /* Line 1806 of yacc.c */ 8672 #line 25 44"parser.yy"8682 case 664: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2553 "parser.yy" 8673 8686 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8674 8687 break; 8675 8688 8676 case 66 2:8677 8678 /* Line 1806 of yacc.c */ 8679 #line 25 46"parser.yy"8689 case 665: 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2555 "parser.yy" 8680 8693 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8681 8694 break; 8682 8695 8683 case 66 3:8684 8685 /* Line 1806 of yacc.c */ 8686 #line 25 48"parser.yy"8696 case 666: 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2557 "parser.yy" 8687 8700 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8688 8701 break; 8689 8702 8690 case 66 5:8691 8692 /* Line 1806 of yacc.c */ 8693 #line 25 63"parser.yy"8703 case 668: 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2572 "parser.yy" 8694 8707 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8695 8708 break; 8696 8709 8697 case 66 6:8698 8699 /* Line 1806 of yacc.c */ 8700 #line 25 65"parser.yy"8710 case 669: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2574 "parser.yy" 8701 8714 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8702 8715 break; 8703 8716 8704 case 6 67:8705 8706 /* Line 1806 of yacc.c */ 8707 #line 257 0"parser.yy"8717 case 670: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2579 "parser.yy" 8708 8721 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8709 8722 break; 8710 8723 8711 case 6 68:8712 8713 /* Line 1806 of yacc.c */ 8714 #line 25 72"parser.yy"8724 case 671: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2581 "parser.yy" 8715 8728 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8716 8729 break; 8717 8730 8718 case 6 69:8719 8720 /* Line 1806 of yacc.c */ 8721 #line 25 74"parser.yy"8731 case 672: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2583 "parser.yy" 8722 8735 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8723 8736 break; 8724 8737 8725 case 67 0:8726 8727 /* Line 1806 of yacc.c */ 8728 #line 25 76"parser.yy"8738 case 673: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2585 "parser.yy" 8729 8742 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8730 8743 break; 8731 8744 8732 case 67 1:8733 8734 /* Line 1806 of yacc.c */ 8735 #line 25 78"parser.yy"8745 case 674: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2587 "parser.yy" 8736 8749 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8737 8750 break; 8738 8751 8739 case 67 3:8740 8741 /* Line 1806 of yacc.c */ 8742 #line 25 84"parser.yy"8752 case 676: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2593 "parser.yy" 8743 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8744 8757 break; 8745 8758 8746 case 67 4:8747 8748 /* Line 1806 of yacc.c */ 8749 #line 25 86"parser.yy"8759 case 677: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2595 "parser.yy" 8750 8763 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8751 break;8752 8753 case 675:8754 8755 /* Line 1806 of yacc.c */8756 #line 2588 "parser.yy"8757 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8758 break;8759 8760 case 676:8761 8762 /* Line 1806 of yacc.c */8763 #line 2593 "parser.yy"8764 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }8765 break;8766 8767 case 677:8768 8769 /* Line 1806 of yacc.c */8770 #line 2595 "parser.yy"8771 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8772 8764 break; 8773 8765 … … 8779 8771 break; 8780 8772 8773 case 679: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2602 "parser.yy" 8777 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8778 break; 8779 8781 8780 case 680: 8782 8781 8783 8782 /* Line 1806 of yacc.c */ 8784 8783 #line 2604 "parser.yy" 8784 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8785 break; 8786 8787 case 681: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2606 "parser.yy" 8791 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8792 break; 8793 8794 case 683: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2613 "parser.yy" 8785 8798 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8786 8799 break; 8787 8800 8788 case 68 2:8789 8790 /* Line 1806 of yacc.c */ 8791 #line 26 15"parser.yy"8801 case 685: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2624 "parser.yy" 8792 8805 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8793 8806 break; 8794 8807 8795 case 68 3:8796 8797 /* Line 1806 of yacc.c */ 8798 #line 26 18"parser.yy"8808 case 686: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2627 "parser.yy" 8799 8812 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8800 8813 break; 8801 8814 8802 case 68 4:8803 8804 /* Line 1806 of yacc.c */ 8805 #line 262 0"parser.yy"8815 case 687: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2629 "parser.yy" 8806 8819 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8807 8820 break; 8808 8821 8809 case 68 5:8810 8811 /* Line 1806 of yacc.c */ 8812 #line 26 23"parser.yy"8822 case 688: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2632 "parser.yy" 8813 8826 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8814 8827 break; 8815 8828 8816 case 68 6:8817 8818 /* Line 1806 of yacc.c */ 8819 #line 26 25"parser.yy"8829 case 689: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2634 "parser.yy" 8820 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8821 8834 break; 8822 8835 8823 case 6 87:8824 8825 /* Line 1806 of yacc.c */ 8826 #line 26 27"parser.yy"8836 case 690: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2636 "parser.yy" 8827 8840 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8828 8841 break; 8829 8842 8830 case 6 89:8831 8832 /* Line 1806 of yacc.c */ 8833 #line 26 41"parser.yy"8843 case 692: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2650 "parser.yy" 8834 8847 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8835 8848 break; 8836 8849 8837 case 69 0:8838 8839 /* Line 1806 of yacc.c */ 8840 #line 26 43"parser.yy"8850 case 693: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2652 "parser.yy" 8841 8854 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8842 8855 break; 8843 8856 8844 case 69 1:8845 8846 /* Line 1806 of yacc.c */ 8847 #line 26 48"parser.yy"8857 case 694: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2657 "parser.yy" 8848 8861 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8849 8862 break; 8850 8863 8851 case 69 2:8852 8853 /* Line 1806 of yacc.c */ 8854 #line 265 0"parser.yy"8864 case 695: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2659 "parser.yy" 8855 8868 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8856 8869 break; 8857 8870 8858 case 69 3:8859 8860 /* Line 1806 of yacc.c */ 8861 #line 26 52"parser.yy"8871 case 696: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2661 "parser.yy" 8862 8875 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8863 8876 break; 8864 8877 8865 case 69 4:8866 8867 /* Line 1806 of yacc.c */ 8868 #line 26 54"parser.yy"8878 case 697: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2663 "parser.yy" 8869 8882 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8870 8883 break; 8871 8884 8872 case 69 5:8873 8874 /* Line 1806 of yacc.c */ 8875 #line 26 56"parser.yy"8885 case 698: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2665 "parser.yy" 8876 8889 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8877 8890 break; 8878 8891 8879 case 697:8880 8881 /* Line 1806 of yacc.c */ 8882 #line 26 62"parser.yy"8892 case 700: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2671 "parser.yy" 8883 8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8884 8897 break; 8885 8898 8886 case 698:8887 8888 /* Line 1806 of yacc.c */ 8889 #line 26 64"parser.yy"8899 case 701: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2673 "parser.yy" 8890 8903 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8891 8904 break; 8892 8905 8893 case 699:8894 8895 /* Line 1806 of yacc.c */ 8896 #line 26 66"parser.yy"8906 case 702: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2675 "parser.yy" 8897 8910 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8898 8911 break; 8899 8912 8900 case 70 0:8901 8902 /* Line 1806 of yacc.c */ 8903 #line 26 71"parser.yy"8913 case 703: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2680 "parser.yy" 8904 8917 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8905 8918 break; 8906 8919 8907 case 70 1:8908 8909 /* Line 1806 of yacc.c */ 8910 #line 26 73"parser.yy"8920 case 704: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2682 "parser.yy" 8911 8924 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8912 8925 break; 8913 8926 8914 case 70 4:8915 8916 /* Line 1806 of yacc.c */ 8917 #line 26 83"parser.yy"8927 case 707: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2692 "parser.yy" 8918 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8919 8932 break; 8920 8933 8921 case 7 07:8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2 693"parser.yy"8934 case 710: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2702 "parser.yy" 8925 8938 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8926 8939 break; 8927 8940 8928 case 7 08:8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2 695"parser.yy"8941 case 711: 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2704 "parser.yy" 8932 8945 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8933 8946 break; 8934 8947 8935 case 7 09:8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2 697"parser.yy"8948 case 712: 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2706 "parser.yy" 8939 8952 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8940 8953 break; 8941 8954 8942 case 71 0:8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2 699"parser.yy"8955 case 713: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2708 "parser.yy" 8946 8959 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8947 8960 break; 8948 8961 8949 case 71 1:8950 8951 /* Line 1806 of yacc.c */ 8952 #line 27 01"parser.yy"8962 case 714: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2710 "parser.yy" 8953 8966 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8954 8967 break; 8955 8968 8956 case 71 2:8957 8958 /* Line 1806 of yacc.c */ 8959 #line 27 03"parser.yy"8969 case 715: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2712 "parser.yy" 8960 8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8961 8974 break; 8962 8975 8963 case 71 3:8964 8965 /* Line 1806 of yacc.c */ 8966 #line 271 0"parser.yy"8976 case 716: 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2719 "parser.yy" 8967 8980 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8968 8981 break; 8969 8982 8970 case 71 4:8971 8972 /* Line 1806 of yacc.c */ 8973 #line 27 12"parser.yy"8983 case 717: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2721 "parser.yy" 8974 8987 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8975 8988 break; 8976 8989 8977 case 71 5:8978 8979 /* Line 1806 of yacc.c */ 8980 #line 27 14"parser.yy"8990 case 718: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2723 "parser.yy" 8981 8994 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8982 8995 break; 8983 8996 8984 case 71 6:8985 8986 /* Line 1806 of yacc.c */ 8987 #line 27 16"parser.yy"8997 case 719: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2725 "parser.yy" 8988 9001 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8989 9002 break; 8990 9003 8991 case 7 17:8992 8993 /* Line 1806 of yacc.c */ 8994 #line 27 18"parser.yy"9004 case 720: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2727 "parser.yy" 8995 9008 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8996 9009 break; 8997 9010 8998 case 7 18:8999 9000 /* Line 1806 of yacc.c */ 9001 #line 272 0"parser.yy"9011 case 721: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2729 "parser.yy" 9002 9015 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9003 9016 break; 9004 9017 9005 case 7 19:9006 9007 /* Line 1806 of yacc.c */ 9008 #line 27 22"parser.yy"9018 case 722: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2731 "parser.yy" 9009 9022 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9010 9023 break; 9011 9024 9012 case 72 0:9013 9014 /* Line 1806 of yacc.c */ 9015 #line 27 24"parser.yy"9025 case 723: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2733 "parser.yy" 9016 9029 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9017 9030 break; 9018 9031 9019 case 72 1:9020 9021 /* Line 1806 of yacc.c */ 9022 #line 27 26"parser.yy"9032 case 724: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2735 "parser.yy" 9023 9036 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9024 9037 break; 9025 9038 9026 case 72 2:9027 9028 /* Line 1806 of yacc.c */ 9029 #line 27 28"parser.yy"9039 case 725: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2737 "parser.yy" 9030 9043 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9031 9044 break; 9032 9045 9033 case 72 3:9034 9035 /* Line 1806 of yacc.c */ 9036 #line 27 33"parser.yy"9046 case 726: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2742 "parser.yy" 9037 9050 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9038 9051 break; 9039 9052 9040 case 72 4:9041 9042 /* Line 1806 of yacc.c */ 9043 #line 27 35"parser.yy"9053 case 727: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2744 "parser.yy" 9044 9057 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9045 9058 break; 9046 9059 9047 case 72 5:9048 9049 /* Line 1806 of yacc.c */ 9050 #line 274 0"parser.yy"9060 case 728: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2749 "parser.yy" 9051 9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9052 9065 break; 9053 9066 9054 case 72 6:9055 9056 /* Line 1806 of yacc.c */ 9057 #line 27 42"parser.yy"9067 case 729: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2751 "parser.yy" 9058 9071 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9059 9072 break; 9060 9073 9061 case 7 28:9062 9063 /* Line 1806 of yacc.c */ 9064 #line 27 69"parser.yy"9074 case 731: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2778 "parser.yy" 9065 9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9066 9079 break; 9067 9080 9068 case 73 2:9069 9070 /* Line 1806 of yacc.c */ 9071 #line 278 0"parser.yy"9081 case 735: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2789 "parser.yy" 9072 9085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9073 9086 break; 9074 9087 9075 case 73 3:9076 9077 /* Line 1806 of yacc.c */ 9078 #line 27 82"parser.yy"9088 case 736: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2791 "parser.yy" 9079 9092 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9080 9093 break; 9081 9094 9082 case 73 4:9083 9084 /* Line 1806 of yacc.c */ 9085 #line 27 84"parser.yy"9095 case 737: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2793 "parser.yy" 9086 9099 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9087 9100 break; 9088 9101 9089 case 73 5:9090 9091 /* Line 1806 of yacc.c */ 9092 #line 27 86"parser.yy"9102 case 738: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2795 "parser.yy" 9093 9106 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9094 9107 break; 9095 9108 9096 case 73 6:9097 9098 /* Line 1806 of yacc.c */ 9099 #line 27 88"parser.yy"9109 case 739: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2797 "parser.yy" 9100 9113 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9101 9114 break; 9102 9115 9103 case 7 37:9104 9105 /* Line 1806 of yacc.c */ 9106 #line 279 0"parser.yy"9116 case 740: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2799 "parser.yy" 9107 9120 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9108 9121 break; 9109 9122 9110 case 7 38:9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2 797"parser.yy"9114 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9115 break; 9116 9117 case 7 39:9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2 799"parser.yy"9121 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9122 break; 9123 9124 case 74 0:9125 9126 /* Line 1806 of yacc.c */ 9127 #line 28 01"parser.yy"9123 case 741: 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2806 "parser.yy" 9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9128 break; 9129 9130 case 742: 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2808 "parser.yy" 9134 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9135 break; 9136 9137 case 743: 9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2810 "parser.yy" 9128 9141 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9129 9142 break; 9130 9143 9131 case 74 1:9132 9133 /* Line 1806 of yacc.c */ 9134 #line 28 03"parser.yy"9135 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9136 break; 9137 9138 case 74 2:9139 9140 /* Line 1806 of yacc.c */ 9141 #line 28 05"parser.yy"9142 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9143 break; 9144 9145 case 74 3:9146 9147 /* Line 1806 of yacc.c */ 9148 #line 28 07"parser.yy"9144 case 744: 9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2812 "parser.yy" 9148 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9149 break; 9150 9151 case 745: 9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2814 "parser.yy" 9155 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9156 break; 9157 9158 case 746: 9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2816 "parser.yy" 9149 9162 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9150 9163 break; 9151 9164 9152 case 74 4:9153 9154 /* Line 1806 of yacc.c */ 9155 #line 28 12"parser.yy"9165 case 747: 9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2821 "parser.yy" 9156 9169 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9157 9170 break; 9158 9171 9159 case 745: 9160 9161 /* Line 1806 of yacc.c */ 9162 #line 2817 "parser.yy" 9163 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9164 break; 9165 9166 case 746: 9167 9168 /* Line 1806 of yacc.c */ 9169 #line 2819 "parser.yy" 9170 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9171 break; 9172 9173 case 747: 9174 9175 /* Line 1806 of yacc.c */ 9176 #line 2821 "parser.yy" 9177 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9172 case 748: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2826 "parser.yy" 9176 { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); } 9177 break; 9178 9179 case 749: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2828 "parser.yy" 9183 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9178 9184 break; 9179 9185 … … 9181 9187 9182 9188 /* Line 1806 of yacc.c */ 9183 #line 2845 "parser.yy" 9189 #line 2830 "parser.yy" 9190 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9191 break; 9192 9193 case 753: 9194 9195 /* Line 1806 of yacc.c */ 9196 #line 2854 "parser.yy" 9184 9197 { (yyval.en) = 0; } 9185 9198 break; 9186 9199 9187 case 75 1:9188 9189 /* Line 1806 of yacc.c */ 9190 #line 28 47"parser.yy"9200 case 754: 9201 9202 /* Line 1806 of yacc.c */ 9203 #line 2856 "parser.yy" 9191 9204 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9192 9205 break; … … 9195 9208 9196 9209 /* Line 1806 of yacc.c */ 9197 #line 9 198"Parser/parser.cc"9210 #line 9211 "Parser/parser.cc" 9198 9211 default: break; 9199 9212 } … … 9426 9439 9427 9440 /* Line 2067 of yacc.c */ 9428 #line 285 0"parser.yy"9441 #line 2859 "parser.yy" 9429 9442 9430 9443 // ----end of grammar---- … … 9433 9446 9434 9447 void yyerror( const char * ) { 9435 std::cout << "Error ";9448 cout << "Error "; 9436 9449 if ( yyfilename ) { 9437 std::cout << "in file " << yyfilename << " ";9450 cout << "in file " << yyfilename << " "; 9438 9451 } // if 9439 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;9452 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl; 9440 9453 } 9441 9454 -
src/Parser/parser.h
rac9ca96 r7756647 262 262 263 263 /* Line 2068 of yacc.c */ 264 #line 11 5"parser.yy"264 #line 116 "parser.yy" 265 265 266 266 Token tok; -
src/Parser/parser.yy
rac9ca96 r7756647 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 12 17:29:45201613 // Update Count : 196912 // Last Modified On : Wed Oct 5 14:10:46 2016 13 // Update Count : 2002 14 14 // 15 15 … … 54 54 #include "TypeData.h" 55 55 #include "LinkageSpec.h" 56 using namespace std; 56 57 57 58 extern DeclarationNode * parseTree; … … 59 60 extern TypedefTable typedefTable; 60 61 61 st d::stack< LinkageSpec::Spec > linkageStack;62 63 void appendStr( st d::string *to, std::string *from ) {62 stack< LinkageSpec::Spec > linkageStack; 63 64 void appendStr( string *to, string *from ) { 64 65 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 65 66 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); … … 195 196 %type<decl> field_declaration field_declaration_list field_declarator field_declaring_list 196 197 %type<en> field field_list 198 %type<tok> field_name 197 199 198 200 %type<decl> external_function_definition function_definition function_array function_declarator function_no_ptr function_ptr … … 359 361 { $$ = $2; } 360 362 | '(' compound_statement ')' // GCC, lambda expression 361 { $$ = new ExpressionNode( build_valexpr( $2 ) ); }363 { $$ = new ExpressionNode( build_valexpr( $2 ) ); } 362 364 ; 363 365 … … 378 380 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 379 381 { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $5 ) ) ); } 382 | postfix_expression '.' INTEGERconstant 383 { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$3 ) ) ); } 380 384 | postfix_expression ARROW no_attr_identifier 381 385 { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); } … … 391 395 { 392 396 Token fn; 393 fn.str = new std::string( "?{}" ); 397 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 394 398 $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) ); 395 399 } … … 414 418 415 419 field: // CFA, tuple field selector 416 no_attr_identifier 417 { $$ = new ExpressionNode( build_varref( $1 ) ); } 420 field_name 418 421 // ambiguity with .0 so space required after field-selection, e.g. 419 422 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 420 | no_attr_identifier '.' field 423 { $$ = new ExpressionNode( build_varref( $1 ) ); } 424 | field_name '.' field 421 425 { $$ = new ExpressionNode( build_fieldSel( $3, build_varref( $1 ) ) ); } 422 | no_attr_identifier'.' '[' push field_list pop ']'426 | field_name '.' '[' push field_list pop ']' 423 427 { $$ = new ExpressionNode( build_fieldSel( $5, build_varref( $1 ) ) ); } 424 | no_attr_identifierARROW field428 | field_name ARROW field 425 429 { $$ = new ExpressionNode( build_pfieldSel( $3, build_varref( $1 ) ) ); } 426 | no_attr_identifierARROW '[' push field_list pop ']'430 | field_name ARROW '[' push field_list pop ']' 427 431 { $$ = new ExpressionNode( build_pfieldSel( $5, build_varref( $1 ) ) ); } 432 ; 433 434 field_name: 435 no_attr_identifier 436 | INTEGERconstant 428 437 ; 429 438 … … 668 677 { 669 678 Token fn; 670 fn.str = new st d::string( "^?{}" );// location undefined679 fn.str = new string( "^?{}" ); // location undefined 671 680 $$ = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $2 )->set_last( $4 ) ) ) ) ); 672 681 } … … 898 907 { $$ = new StatementNode( build_catch( $5, $8 ) ); } 899 908 | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop 900 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); }909 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $6, $9 ) ) ); } 901 910 | CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop 902 911 { $$ = new StatementNode( build_catch( $5, $8 ) ); } … … 970 979 { $$ = new ExpressionNode( build_asmexpr( 0, $1, $3 ) ); } 971 980 | '[' constant_expression ']' string_literal '(' constant_expression ')' 972 { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); }981 { $$ = new ExpressionNode( build_asmexpr( $2, $4, $6 ) ); } 973 982 ; 974 983 … … 1469 1478 aggregate_name: 1470 1479 aggregate_key '{' field_declaration_list '}' 1471 { $$ = DeclarationNode::newAggregate( $1, 0, 0, $3, true ); }1480 { $$ = DeclarationNode::newAggregate( $1, nullptr, nullptr, $3, true ); } 1472 1481 | aggregate_key no_attr_identifier_or_type_name 1473 1482 { 1474 1483 typedefTable.makeTypedef( *$2 ); 1475 $$ = DeclarationNode::newAggregate( $1, $2, 0, 0, false );1484 $$ = DeclarationNode::newAggregate( $1, $2, nullptr, nullptr, false ); 1476 1485 } 1477 1486 | aggregate_key no_attr_identifier_or_type_name 1478 1487 { typedefTable.makeTypedef( *$2 ); } 1479 1488 '{' field_declaration_list '}' 1480 { $$ = DeclarationNode::newAggregate( $1, $2, 0, $5, true ); }1489 { $$ = DeclarationNode::newAggregate( $1, $2, nullptr, $5, true ); } 1481 1490 | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1482 { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6, false ); }1491 { $$ = DeclarationNode::newAggregate( $1, nullptr, $3, $6, false ); } 1483 1492 | aggregate_key typegen_name // CFA, S/R conflict 1484 1493 { $$ = $2; } … … 1561 1570 enum_name: 1562 1571 enum_key '{' enumerator_list comma_opt '}' 1563 { $$ = DeclarationNode::newEnum( 0, $3 ); }1572 { $$ = DeclarationNode::newEnum( nullptr, $3 ); } 1564 1573 | enum_key no_attr_identifier_or_type_name 1565 1574 { … … 2006 2015 { 2007 2016 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 2008 linkage = LinkageSpec:: fromString( *$2 );2017 linkage = LinkageSpec::linkageCheck( $2 ); 2009 2018 } 2010 2019 '{' external_definition_list_opt '}' // C++-style linkage specifier … … 2522 2531 abstract_function: 2523 2532 '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2524 { $$ = DeclarationNode::newFunction( 0, 0, $3, 0); }2533 { $$ = DeclarationNode::newFunction( nullptr, nullptr, $3, nullptr ); } 2525 2534 | '(' abstract_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2526 2535 { $$ = $2->addParamList( $6 ); } … … 2591 2600 abstract_parameter_function: 2592 2601 '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2593 { $$ = DeclarationNode::newFunction( 0, 0, $3, 0); }2602 { $$ = DeclarationNode::newFunction( nullptr, nullptr, $3, nullptr ); } 2594 2603 | '(' abstract_parameter_ptr ')' '(' push parameter_type_list_opt pop ')' // empty parameter list OBSOLESCENT (see 3) 2595 2604 { $$ = $2->addParamList( $6 ); } … … 2795 2804 // empty (void) function return type. 2796 2805 '[' ']' type_specifier 2797 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }2806 { $$ = $3->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2798 2807 | '[' ']' multi_array_dimension type_specifier 2799 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }2808 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2800 2809 | multi_array_dimension type_specifier 2801 2810 { $$ = $2->addNewArray( $1 ); } 2802 2811 | '[' ']' new_abstract_ptr 2803 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }2812 { $$ = $3->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2804 2813 | '[' ']' multi_array_dimension new_abstract_ptr 2805 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }2814 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2806 2815 | multi_array_dimension new_abstract_ptr 2807 2816 { $$ = $2->addNewArray( $1 ); } … … 2815 2824 new_abstract_function: // CFA 2816 2825 '[' ']' '(' new_parameter_type_list_opt ')' 2817 { $$ = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), $4, 0); }2826 { $$ = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), $4, nullptr ); } 2818 2827 | new_abstract_tuple '(' push new_parameter_type_list_opt pop ')' 2819 { $$ = DeclarationNode::newFunction( 0, $1, $4, 0); }2828 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); } 2820 2829 | new_function_return '(' push new_parameter_type_list_opt pop ')' 2821 { $$ = DeclarationNode::newFunction( 0, $1, $4, 0); }2830 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); } 2822 2831 ; 2823 2832 … … 2854 2863 2855 2864 void yyerror( const char * ) { 2856 std::cout << "Error ";2865 cout << "Error "; 2857 2866 if ( yyfilename ) { 2858 std::cout << "in file " << yyfilename << " ";2867 cout << "in file " << yyfilename << " "; 2859 2868 } // if 2860 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;2869 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl; 2861 2870 } 2862 2871 -
src/SynTree/FunctionDecl.cc
rac9ca96 r7756647 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:50:14201613 // Update Count : 2 012 // Last Modified On : Sat Oct 1 23:06:32 2016 13 // Update Count : 21 14 14 // 15 15 … … 60 60 } // if 61 61 if ( get_linkage() != LinkageSpec::Cforall ) { 62 os << LinkageSpec:: toString( get_linkage() ) << " ";62 os << LinkageSpec::linkageName( get_linkage() ) << " "; 63 63 } // if 64 64 if ( get_isInline() ) { -
src/SynTree/ObjectDecl.cc
rac9ca96 r7756647 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:50:33201613 // Update Count : 3 112 // Last Modified On : Sat Oct 1 23:05:56 2016 13 // Update Count : 32 14 14 // 15 15 … … 44 44 45 45 if ( get_linkage() != LinkageSpec::Cforall ) { 46 os << LinkageSpec:: toString( get_linkage() ) << " ";46 os << LinkageSpec::linkageName( get_linkage() ) << " "; 47 47 } // if 48 48
Note: See TracChangeset
for help on using the changeset viewer.