Changes in / [0800284:b0be06ac]


Ignore:
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • doc/refrat/Makefile

    r0800284 rb0be06ac  
    3232
    3333clean :
    34         rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t *.cf \
     34        rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t \
    3535                ${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}
    3636
     
    5858        ${LaTeX} ${basename $@}.tex
    5959
    60 predefined :
    61         sed -f predefined.sed ${basename ${DOCUMENT}}.tex > ${basename $@}.cf
    62 
    6360## Define the default recipes.
    6461
  • doc/refrat/predefined.sed

    r0800284 rb0be06ac  
    1 /^\\predefined/,/^\\end{lstlisting}/ !d
    2 /^\\begin{lstlisting}/,/^\\end{lstlisting}/ s/@\\use{.*}@//g
    3 /^\\predefined/ d
    4 /^\\begin{lstlisting}/ d
    5 /^\\end{lstlisting}/ d
     1/\\begin{predefined}/,/\\end{predefined}/ !d
     2/\\begin{predefined}/,/\\end{predefined}/ s/\\use{.*}//g
     3/\\begin{predefined}/ d
     4/\\end{predefined}/ d
  • doc/refrat/refrat.tex

    r0800284 rb0be06ac  
    1010\usepackage{varioref}
    1111\usepackage{listings}
    12 \usepackage{comment}
    1312\usepackage{latexsym}                                   % \Box
    1413\usepackage{mathptmx}                                   % better math font with "times"
     
    3029%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    3130
    32 % Bespoke macros used in the document.
    33 
    34 \makeatletter
    35 % index macros
     31% Specialized macros used in the document.
     32
    3633\newcommand{\italic}[1]{\emph{\hyperpage{#1}}}
    3734\newcommand{\definition}[1]{\textbf{\hyperpage{#1}}}
    3835\newcommand{\see}[1]{\emph{see} #1}
    3936
     37\makeatletter
    4038% Define some commands that produce formatted index entries suitable for cross-references.
    4139% ``\spec'' produces entries for specifications of entities.  ``\impl'' produces entries for their
     
    5755    \indexentry{#2@{\lstinline$#2$}#1}{\thepage}}}\endgroup\@gtempa
    5856    \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
     57\makeatother
    5958%\newcommand{\use}[1]{\index{#1@{\lstinline$#1$}}}
    6059%\newcommand{\impl}[1]{\index{\protect#1@{\lstinline$\protect#1$}|definition}}
    6160
    62 % text inline and lowercase index: \Index{Inline and index text}
    63 % text inline and as-in index: \Index{Inline and Index text}
    64 % text inline but index with different as-is text: \Index[index text]{inline text}
    65 \newcommand{\Index}{\@ifstar\@sIndex\@Index}
    66 \newcommand{\@Index}[2][\@empty]{\lowercase{\def\temp{#2}}#2\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi}
    67 \newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
    68 \makeatother
    69 
    70 % blocks and titles
    7161\newcommand{\define}[1]{\emph{#1\/}\index{#1}}
    7262\newenvironment{rationale}{%
     
    7666}%
    7767\newcommand{\rewrite}{\(\Rightarrow\)}
    78 \newcommand{\rewriterules}{\paragraph{Rewrite Rules}~\par\noindent}
    79 \newcommand{\examples}{\paragraph{Examples}~\par\noindent}
    80 \newcommand{\semantics}{\paragraph{Semantics}~\par\noindent}
    81 \newcommand{\constraints}{\paragraph{Constraints}~\par\noindent}
    82 \newcommand{\predefined}{\paragraph{Predefined Identifiers}~\par\noindent}
    83 
    84 % BNF macros
     68\newcommand{\rewriterules}{\paragraph{Rewrite Rules}\hskip1em\par\noindent}
     69\newcommand{\examples}{\paragraph{Examples}\hskip1em\par\noindent}
     70\newcommand{\semantics}{\paragraph{Semantics}\hskip1em\par\noindent}
     71\newcommand{\constraints}{\paragraph{Constraints}\hskip1em\par\noindent}
     72\newenvironment{predefined}{%
     73  \paragraph{Predefined Identifiers}%
     74%  \begin{code}%
     75}{%
     76%  \end{code}
     77}%
     78
    8579\def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]}
    8680\let\endsyntax=\endtrivlist
     
    9185\newcommand{\opt}{$_{opt}$\ }
    9286
    93 % adjust varioref package with default "section" and "page" titles, and optional title with faraway page numbers
    94 % \VRef{label} => Section 2.7, \VPageref{label} => page 17
    95 % \VRef[Figure]{label} => Figure 3.4, \VPageref{label} => page 17
    9687\renewcommand{\reftextfaceafter}{\unskip}
    9788\renewcommand{\reftextfacebefore}{\unskip}
     
    10394\newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
    10495
    105 % adjust listings macros
     96% replace/adjust characters that look bad in sanserif
     97\makeatletter
     98\lst@CCPutMacro
     99\lst@ProcessOther{"2D}{\lst@ttfamily{-{}}{{\ttfamily\upshape -}}} % replace minus
     100\lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than
     101\lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than
     102\lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % circumflex
     103\lst@ProcessLetter{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore
     104%\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
     105\lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % lower tilde
     106\@empty\z@\@empty
     107
     108\newcommand{\Index}{\@ifstar\@sIndex\@Index}
     109\newcommand{\@Index}[2][\@empty]{\lowercase{\def\temp{#2}}#2\ifx#1\@empty\index{\temp}\else\index{#1@{\protect#2}}\fi}
     110\newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
     111\makeatother
     112
    106113\lstdefinelanguage{CFA}[ANSI]{C}%
    107 {morekeywords={asm,_At,_Atomic,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
    108 fallthru,finally,forall,ftype,_Imaginary,lvalue,restrict,throw,throwResume,try,type,},
    109 }%
     114  {morekeywords={asm,_Atomic,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
     115        fallthru,finally,forall,ftype,_Imaginary,lvalue,restrict,throw,throwResume,try,type,},
     116}
    110117
    111118\lstset{
     
    121128showtabs=true,
    122129tab=,
    123 }%
    124 
    125 \makeatletter
    126 % replace/adjust listings characters that look bad in sanserif
    127 \lst@CCPutMacro
    128 \lst@ProcessOther{"2D}{\lst@ttfamily{-{}}{{\ttfamily\upshape -}}} % replace minus
    129 \lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than
    130 \lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than
    131 \lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % replace circumflex
    132 \lst@ProcessLetter{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore
    133 \lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % replace tilde
    134 %\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
    135 \@empty\z@\@empty
    136 \makeatother
     130}
    137131
    138132\setcounter{secnumdepth}{3}     % number subsubsections
     
    147141
    148142\title{\CFA (\CFAA) Reference Manual and Rationale}
    149 \author{Glen Ditchfield \and Peter A. Buhr}
     143\author{Glen Ditchfield}
    150144\date{DRAFT\\\today}
    151145
     
    179173
    180174The manual deliberately imitates the ordering of the {\c11} standard (although the section numbering
    181 differs). Unfortunately, this means the manual contains more ``forward references'' than usual,
    182 making it harder to follow if the reader does not have a copy of the {\c11} standard. For a simple
    183 introduction to \CFA, see the companion document ``An Overview of \CFA''
    184 \cite{Ditchfield96:Overview}.
     175differs). Unfortunately, this means that the manual contains more ``forward references'' than
     176usual, and that it will be hard to follow if the reader does not have a copy of the {\c11} standard
     177near-by. For a gentle introduction to \CFA, see the companion document ``An Overview of
     178\CFA'' \cite{Ditchfield96:Overview}.
    185179
    186180\begin{rationale}
     
    190184
    191185% No ``Scope'' or ``Normative references'' chapters yet.
    192 
    193 
    194186\setcounter{chapter}{2}
    195187\chapter{Terms, definitions, and symbols}
    196 
    197188Terms from the {\c11} standard used in this document have the same meaning as in the {\c11}
    198189standard.
    199190
    200191% No ``Conformance'' or ``Environment'' chapters yet.
    201 
    202 
    203192\setcounter{chapter}{5}
    204193\chapter{Language}
    205 
    206 
    207194\section{Notation}
    208 The syntax notation used in this document is the same as in the {\c11} standard, with one exception:
    209 ellipsis in the definition of a nonterminal, as in ``\emph{declaration:} \ldots'', indicates that
    210 these rules extend a previous definition, which occurs in this document or in the {\c11} standard.
     195The syntax notation used in this document is the same as is used in the {\c11} standard, with one
     196exception: ellipsis in the definition of a nonterminal, as in ``\emph{declaration:} \ldots'',
     197indicates that these rules extend a previous definition, which occurs in this document or in the
     198{\c11} standard.
    211199
    212200
     
    247235\end{rationale}
    248236
    249 
    250 \setcounter{subsection}{8}
    251 \subsection{Generic Types}
    252 
    253 
    254 \subsubsection{Semantics}
    255 
    256 \CFA provides a capability for generic types; using this capability a single "generic type
    257 generator" can be written that can represent multiple concrete type instantiations by substitution
    258 of the "type parameters" of the generic type for concrete types. Syntactically a generic type
    259 generator is represented by putting a forall specifier on a struct or union declaration, as defined
    260 in \VRef{forall}. An instantiation of the generic type is written by specifying the type parameters
    261 in parentheses after the name of the generic type generator:
    262 \begin{lstlisting}
    263 forall( type T | sumable( T ) ) struct pair {
    264         T x;
    265         T y;
    266 };
    267 pair( int ) p = { 3, 14 };
    268 \end{lstlisting}
    269 
    270 The type parameters in an instantiation of a generic type must satisfy any constraints in the forall
    271 specifier on the type generator declaration, e.g., \lstinline$sumable$. The instantiation then has
    272 the semantics that would result if the type parameters were substituted into the type generator
    273 declaration by macro substitution.
    274 
    275 Polymorphic functions may have generic types as parameters, and those generic types may use type
    276 parameters of the polymorphic function as type parameters of the generic type:
    277 \begin{lstlisting}
    278 forall( type T ) void swap( pair(T) *p ) {
    279         T z = p->x;
    280         p->x = p->y;
    281         p->y = z;
    282 }
    283 \end{lstlisting}
    284 
    285 
    286 \subsubsection{Constraints}
    287 
    288 To avoid unduly constraining implementors, the generic type generator definition must be visible at
    289 any point where it is instantiated.  Forward declarations of generic type generators are not
    290 forbidden, but the definition must be visible to instantiate the generic type.  Equivalently,
    291 instantiations of generic types are not allowed to be incomplete types.
    292 
    293 \examples
    294 \begin{lstlisting}
    295 forall( type T ) struct A;
    296 
    297 forall( type T ) struct B {
    298         A(T) *a;  // legal, but cannot instantiate B(T)
    299 };
    300 
    301 B(T) x; // illegal, *x.a is of an incomplete generic type
    302 
    303 forall( type T ) struct A {
    304         B( T ) *b;
    305 };
    306 
    307 B( T ) y; // legal, *x.a is now of a complete generic type
    308 
    309 
    310 // box.h:
    311         forall( type T ) struct box;
    312         forall( type T ) box( T ) *make_box( T );
    313         forall( type T ) void use_box( box( T ) *b );
    314        
    315 // main.c:
    316         box( int ) *b = make_box( 42 ); // illegal, def'n of box not visible
    317         use_box( b ); // illegal
    318 \end{lstlisting}
    319 
    320 
    321237\section{Conversions}
    322238\CFA defines situations where values of one type are automatically converted to another type.
     
    326242
    327243\subsection{Arithmetic operands}
    328 
    329 
    330 \setcounter{subsubsection}{8}
     244\setcounter{subsubsection}{7}
     245
     246
    331247\subsubsection{Safe arithmetic conversions}
    332 
    333248In C, a pattern of conversions known as the \define{usual arithmetic conversion}s is used with most
    334249binary arithmetic operators to convert the operands to a common type and determine the type of the
     
    387302
    388303\subsection{Other operands}
    389 
    390 
    391304\setcounter{subsubsection}{3}
     305
     306
    392307\subsubsection{Anonymous structures and unions}
    393308\label{anon-conv}
     
    653568
    654569\begin{rationale}
    655 The use of ``\lstinline$?$'' in identifiers means that some C programs are not \CFA programs.  For
    656 instance, the sequence of characters ``\lstinline$(i < 0)?--i:i$'' is legal in a C program, but a
    657 \CFA compiler detects a syntax error because it treats ``\lstinline$?--$'' as an identifier, not
    658 as the two tokens ``\lstinline$?$'' and ``\lstinline$--$''.
     570The use of ``\lstinline$?$'' in identifiers means that some C programs are not \CFA programs.
     571For instance, the sequence of characters ``\lstinline$(i < 0)?--i:i$'' is legal in a C program, but
     572a \CFA compiler will detect a syntax error because it will treat ``\lstinline$?--$'' as an
     573identifier, not as the two tokens ``\lstinline$?$'' and ``\lstinline$--$''.
    659574\end{rationale}
    660575
     
    798713\end{syntax}
    799714
    800 \predefined
     715\paragraph{Predefined Identifiers}%
    801716\begin{lstlisting}
    802717const int 1;@\use{1}@
     
    894809\subsubsection{Array subscripting}
    895810
    896 \predefined
    897811\begin{lstlisting}
    898812forall( type T ) lvalue T ?[?]( T *, ptrdiff_t );@\use{ptrdiff_t}@
     
    11351049\subsubsection{Postfix increment and decrement operators}
    11361050
    1137 \predefined
    11381051\begin{lstlisting}
    11391052_Bool ?++( volatile _Bool * ),
     
    14681381\subsubsection{Prefix increment and decrement operators}
    14691382
    1470 \predefined
    14711383\begin{lstlisting}
    14721384_Bool ++?( volatile _Bool * ),
     
    16531565\subsubsection{Address and indirection operators}
    16541566
    1655 \predefined
    16561567\begin{lstlisting}
    16571568forall( type T ) lvalue T *?( T * );
     
    16891600\subsubsection{Unary arithmetic operators}
    16901601
    1691 \predefined
    16921602\begin{lstlisting}
    16931603int
     
    18981808\end{lstlisting}
    18991809
    1900 \predefined
    19011810\begin{lstlisting}
    19021811int?*?( int, int ),
     
    20421951\end{lstlisting}
    20431952
    2044 \predefined
    20451953\begin{lstlisting}
    20461954int?+?( int, int ),
     
    21832091\end{lstlisting}
    21842092
    2185 \predefined
    21862093\begin{lstlisting}
    21872094int ?<<?( int, int ),
     
    22342141\end{lstlisting}
    22352142
    2236 \predefined
    22372143\begin{lstlisting}
    22382144int ?<?( int, int ),
     
    23132219\end{lstlisting}
    23142220
    2315 \predefined
    23162221\begin{lstlisting}
    23172222int ?==?( int, int ),
     
    24312336\end{lstlisting}
    24322337
    2433 \predefined
    24342338\begin{lstlisting}
    24352339int ?&?( int, int );
     
    24652369\end{lstlisting}
    24662370
    2467 \predefined
    24682371\begin{lstlisting}
    24692372int ?^?( int, int );
     
    24992402\end{lstlisting}
    25002403
    2501 \predefined
    25022404\begin{lstlisting}
    25032405int ?|?( int, int );
     
    27312633\subsubsection{Simple assignment}
    27322634
    2733 \predefined
    27342635\begin{lstlisting}
    27352636_Bool
     
    30192920\subsubsection{Compound assignment}
    30202921
    3021 \predefined
    30222922\begin{lstlisting}
    30232923forall( type T ) T
     
    34193319
    34203320\setcounter{subsubsection}{4}
    3421 \subsubsection{Forall specifiers}
    3422 \label{forall}
     3321\subsubsection{Forall specifiers}\label{forall}
    34233322
    34243323\begin{syntax}
     
    34273326\end{syntax}
    34283327
    3429 \begin{comment}
    34303328\constraints
    34313329If the \nonterm{declaration-specifiers} of a declaration that contains a \nonterm{forall-specifier}
     
    34413339members' type be?
    34423340\end{rationale}
    3443 \end{comment}
    34443341
    34453342\semantics
     
    34473344identifiers, function and object identifiers with \Index{no linkage}.
    34483345
    3449 If, in the declaration ``\lstinline$T D$'', \lstinline$T$ contains \nonterm{forall-specifier}s and
    3450 \lstinline$D$ has the form
     3346If, in the declaration ``\lstinline$T D1$'', \lstinline$T$ contains \nonterm{forall-specifier}s and
     3347\lstinline$D1$ has the form
    34513348\begin{lstlisting}
    34523349D( @\normalsize\nonterm{parameter-type-list}@ )
     
    34593356assertions that use an inferred parameter of a function declarator are \Index{assertion parameter}s
    34603357of that function declarator.
    3461 
    3462 \begin{comment}
    34633358\begin{rationale}
    34643359Since every inferred parameter is used by some parameter, inference can be understood as a single
     
    34813376\end{lstlisting}
    34823377\end{rationale}
    3483 \end{comment}
    34843378
    34853379If a function declarator is part of a function definition, its inferred parameters and assertion
  • src/Parser/lex.cc

    r0800284 rb0be06ac  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 177
    385 #define YY_END_OF_BUFFER 178
     384#define YY_NUM_RULES 171
     385#define YY_END_OF_BUFFER 172
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[851] =
     393static yyconst flex_int16_t yy_accept[826] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  113,  113,  116,  116,
    396       178,  176,    7,    9,    8,  136,  115,  100,  141,  144,
    397       112,  123,  124,  139,  137,  127,  138,  130,  140,  105,
    398       106,  107,  128,  129,  146,  148,  147,  149,  176,  100,
    399       121,  176,  122,  142,  100,  102,  100,  100,  100,  100,
    400       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    401       100,  125,  145,  126,  143,    7,  176,    4,    4,  177,
    402       103,  177,  104,  113,  114,  120,  116,  117,    7,    9,
    403         0,    8,  153,  171,  100,    0,  165,  135,  158,  166,
    404       163,  150,  161,  151,  162,  160,    0,  110,    3,    0,
    405 
    406       164,  110,  108,    0,    0,  108,  108,    0,    0,  108,
    407       107,  107,  107,    0,  107,  133,  134,  132,  154,  156,
    408       152,  157,  155,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,    0,  101,    0,
    410       115,  112,  100,    0,    0,  168,    0,  100,  100,  100,
    411       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    412       100,  100,  100,  100,   39,  100,  100,  100,  100,  100,
    413       100,  100,  100,  100,  100,   57,  100,  100,  100,  100,
    414       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    415       100,  167,  159,    7,    0,    0,    0,    2,    0,    5,
    416 
    417       103,    0,    0,    0,  113,    0,  119,  118,  118,    0,
    418         0,    0,  116,    0,    0,    0,    0,    0,    0,    0,
    419         0,    0,    0,    0,    0,    0,    0,    0,  131,  110,
    420         0,  110,    0,    0,    6,    0,  108,    0,    0,    0,
    421       110,    0,  108,  108,  108,  108,    0,  109,    0,    0,
    422       107,  107,  107,  107,    0,  169,  170,    0,  174,  172,
    423         0,    0,    0,  101,    0,    0,    0,    0,    0,    0,
    424         0,    0,  100,   17,  100,  100,  100,  100,  100,  100,
    425       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    426       100,   14,  100,  100,  100,  100,  100,  100,  100,  100,
    427 
    428       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    429        51,  100,  100,  100,   64,  100,  100,  100,  100,  100,
    430       100,  100,  100,  100,  100,  100,  100,   87,  100,  100,
    431       100,  100,  100,  100,  100,    0,    0,    0,    0,    0,
    432         0,    0,    0,  118,    0,    0,    0,    0,    0,  118,
    433         0,    0,  175,    0,    0,    0,    0,    0,    0,    0,
    434         0,  110,    0,    0,    0,  110,    0,  108,  108,    0,
    435         0,  109,  109,    0,  109,    0,  109,  107,  107,    0,
    436         0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
    437       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    438 
    439       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    440       100,  100,   21,  100,   24,  100,   27,  100,  100,  100,
    441       100,  100,  100,  100,   42,  100,   44,  100,  100,  100,
    442       100,  100,  100,  100,   56,  100,   67,  100,  100,  100,
    443       100,  100,  100,  100,  100,  100,  100,  100,   88,  100,
    444       100,   95,  100,  100,    0,    0,    0,    0,    0,    0,
    445         0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
    446         0,    0,    0,    0,  110,    0,    0,    0,    0,    0,
    447         0,  109,  109,    0,  111,    0,  109,  109,    0,    0,
     395        0,    0,    0,    0,    0,    0,  108,  108,  111,  111,
     396      172,  170,    7,    9,    8,  131,  110,   95,  136,  139,
     397      107,  118,  119,  134,  132,  122,  133,  125,  135,  100,
     398      101,  102,  123,  124,  141,  143,  142,  144,  170,   95,
     399      116,  170,  117,  137,   95,   97,   95,   95,   95,   95,
     400       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     401       95,  120,  140,  121,  138,    7,  170,    4,    4,  171,
     402       98,  171,   99,  108,  109,  115,  111,  112,    7,    9,
     403        0,    8,  148,  166,   95,    0,  160,  130,  153,  161,
     404      158,  145,  156,  146,  157,  155,    0,  105,    3,    0,
     405
     406      159,  105,  103,    0,    0,  103,  103,    0,    0,  103,
     407      102,  102,  102,    0,  102,  128,  129,  127,  149,  151,
     408      147,  152,  150,    0,    0,    0,    0,    0,    0,    0,
     409        0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
     410      110,  107,   95,    0,    0,  163,   95,   95,   95,   95,
     411       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     412       95,   95,   36,   95,   95,   95,   95,   95,   95,   95,
     413       95,   95,   95,   53,   95,   95,   95,   95,   95,   95,
     414       95,   95,   95,   95,   95,   95,   95,   95,   95,  162,
     415      154,    7,    0,    0,    0,    2,    0,    5,   98,    0,
     416
     417        0,    0,  108,    0,  114,  113,  113,    0,    0,    0,
     418      111,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     419        0,    0,    0,    0,    0,    0,  126,  105,    0,  105,
     420        0,    0,    6,    0,  103,    0,    0,    0,  105,    0,
     421      103,  103,  103,  103,    0,  104,    0,    0,  102,  102,
     422      102,  102,    0,  164,  165,    0,  168,  167,    0,    0,
     423        0,   96,    0,    0,    0,    0,    0,    0,    0,   95,
     424       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     425       95,   95,   95,   95,   95,   95,   95,   95,   14,   95,
     426       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     427
     428       95,   95,   95,   95,   95,   47,   95,   95,   95,   60,
     429       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     430       95,   95,   82,   95,   95,   95,   95,   95,   95,   95,
     431        0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
     432        0,    0,    0,    0,  113,    0,    0,  169,    0,    0,
     433        0,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     434      105,    0,  103,  103,    0,    0,  104,  104,    0,  104,
     435        0,  104,  102,  102,    0,    0,    0,    0,    0,    0,
     436        0,    0,    0,    0,   95,   95,   95,   95,   95,   95,
     437       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     438
     439       95,   95,   95,   95,   95,   95,   20,   95,   23,   95,
     440       25,   95,   95,   95,   95,   95,   95,   39,   40,   95,
     441       95,   95,   95,   95,   95,   95,   52,   95,   63,   95,
     442       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     443       83,   95,   95,   90,   95,   95,    0,    0,    0,    0,
    448444        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    449 
    450         0,  100,  100,   22,  100,  100,  100,  100,  100,  100,
    451       100,   15,  100,  100,  100,  100,  100,  100,  100,  100,
    452       100,  100,  100,  100,  100,   23,   25,  100,   32,  100,
    453       100,  100,  100,  100,   41,  100,  100,  100,  100,   49,
    454       100,  100,   54,  100,  100,  100,  100,  100,   75,  100,
    455       100,  100,  100,  100,   85,  100,  100,   93,  100,  100,
    456        99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     445      113,    0,    0,    0,    0,    0,  105,    0,    0,    0,
     446        0,    0,    0,  104,  104,    0,  106,    0,  104,  104,
    457447        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    458       111,    0,    0,  109,  111,  111,    0,  109,    0,    0,
    459         0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
    460 
    461       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
    462       100,  100,  100,  100,  100,   59,  100,  100,  100,  100,
    463       100,  100,  100,  100,   28,  100,  100,  100,  100,   40,
    464        43,   46,  100,  100,   52,  100,   61,   68,  100,  100,
    465        74,   76,   79,   80,   82,   83,  100,  100,   90,  100,
    466       100,    0,    1,    0,    0,    0,    0,    0,    0,  103,
    467         0,    0,    0,  118,    0,    0,    0,    0,  111,    0,
    468         0,    0,    0,    0,    0,    0,    0,    0,    0,  100,
    469       100,   18,  100,  100,  100,  100,  100,  100,  100,   16,
    470       100,  100,   33,  100,  100,  100,  100,  100,  100,  100,
    471 
    472       100,  100,  100,  100,   35,  100,   37,   38,  100,   48,
    473        53,  100,  100,  100,   89,  100,  100,    0,    0,    0,
     448        0,    0,    0,   95,   95,   21,   95,   95,   95,   95,
     449
     450       95,   95,   95,   15,   95,   95,   95,   95,   95,   95,
     451       95,   95,   95,   95,   95,   95,   95,   22,   24,   95,
     452       30,   95,   95,   95,   95,   38,   95,   95,   95,   45,
     453       95,   95,   50,   95,   95,   95,   95,   95,   71,   95,
     454       95,   95,   95,   95,   81,   95,   95,   88,   95,   95,
     455       94,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    474456        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    475        10,   11,   29,   55,  100,  100,  100,  100,  100,  100,
    476       100,  100,  100,  100,   60,   62,   65,  100,  100,   77,
    477        91,  100,  100,   36,   47,   70,   71,  100,   94,   96,
     457      106,    0,    0,  104,  106,  106,    0,  104,    0,    0,
     458        0,    0,    0,    0,    0,    0,    0,    0,   95,    0,
     459       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
     460
     461       95,   95,   95,   95,   95,   55,   95,   95,   95,   95,
     462       95,   95,   95,   26,   95,   95,   95,   37,   42,   95,
     463       95,   48,   95,   57,   64,   95,   95,   70,   72,   75,
     464       76,   78,   79,   95,   85,   95,   95,    0,    1,    0,
     465        0,    0,    0,    0,    0,   98,    0,    0,    0,  113,
     466        0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
     467        0,    0,    0,    0,    0,   95,   95,   17,   95,   95,
     468       95,   95,   95,   95,   95,   16,   95,   95,   31,   95,
     469       95,   95,   95,   95,   95,   95,   95,   95,   95,   33,
     470       95,   35,   95,   44,   49,   95,   95,   84,   95,   95,
     471
    478472        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    479         0,    0,  100,   69,  100,  100,   12,  100,   30,   34,
    480       100,  100,  100,   66,  100,  100,  100,  100,  100,  100,
     473        0,    0,    0,   10,   11,   27,   51,   95,   95,   95,
     474       95,   95,   95,   95,   95,   95,   95,   56,   58,   61,
     475       95,   95,   73,   86,   95,   34,   43,   66,   67,   89,
     476       91,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     477        0,    0,    0,   95,   65,   95,   95,   12,   95,   28,
     478       32,   95,   95,   95,   62,   95,   95,   95,   95,    0,
    481479        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    482 
    483         0,    0,    0,   58,  100,  100,  100,  100,  100,  100,
    484        50,   63,   72,   78,   92,   97,  100,  100,    0,    0,
    485         0,    0,    0,    0,    0,    0,  100,  100,   13,   19,
    486        31,  100,  100,  100,   26,   86,    0,    0,  100,  100,
    487       100,  100,   73,   98,  100,   84,   20,   45,   81,    0
     480        0,    0,   54,   95,   95,   95,   95,   95,   95,   46,
     481       59,   68,   74,   87,   92,    0,    0,    0,    0,    0,
     482
     483        0,    0,    0,   95,   95,   13,   18,   29,   95,   95,
     484       95,    0,    0,   95,   95,   95,   95,   69,   93,   95,
     485       80,   19,   41,   77,    0
    488486    } ;
    489487
     
    498496       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
    499497       42,   11,   43,   11,   11,   44,   11,   45,   11,   46,
    500        11,   47,   48,   49,   50,   11,   11,   51,   11,   11,
    501        52,   53,   54,   55,   56,   57,   58,   59,   60,   61,
    502 
    503        62,   63,   64,   65,   66,   11,   67,   68,   69,   70,
    504        71,   72,   11,   73,   74,   75,   76,   77,   78,   79,
    505        80,   81,   82,   83,   84,   85,    1,    1,    1,    1,
     498       11,   11,   47,   48,   49,   11,   11,   50,   11,   11,
     499       51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
     500
     501       61,   62,   63,   64,   65,   11,   66,   67,   68,   69,
     502       70,   71,   11,   72,   73,   74,   75,   76,   77,   78,
     503       79,   80,   81,   82,   83,   84,    1,    1,    1,    1,
    506504        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    507505        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    520518    } ;
    521519
    522 static yyconst flex_int32_t yy_meta[86] =
     520static yyconst flex_int32_t yy_meta[85] =
    523521    {   0,
    524522        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
     
    526524        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
    527525        1,    1,    1,    1,    1,    8,    8,    8,    8,    8,
    528         8,    4,    4,    9,    4,   10,    4,    4,    4,    9,
    529         4,    1,   11,    1,    1,   12,    1,    8,    8,    8,
    530         8,    8,    8,    4,    4,    4,    4,    9,    4,    4,
    531         4,   10,    4,    4,    4,    9,    4,    4,    4,    4,
    532         4,    1,    1,    1,    1
     526        8,    4,    4,    9,    4,   10,    4,    4,    9,    4,
     527        1,   11,    1,    1,   12,    1,    8,    8,    8,    8,
     528        8,    8,    4,    4,    4,    4,    9,    4,    4,    4,
     529       10,    4,    4,    4,    9,    4,    4,    4,    4,    4,
     530        1,    1,    1,    1
    533531    } ;
    534532
    535 static yyconst flex_int16_t yy_base[1024] =
     533static yyconst flex_int16_t yy_base[999] =
    536534    {   0,
    537         0,   84, 2338, 2332,   94,    0,  177,  178,  179,  180,
    538      2348, 2604,  191, 2604,  197,   55, 2604, 2294,   60,  173,
    539      2604, 2604, 2604,   56,  188, 2604,  191,  189,  204,  216,
    540       275,    0, 2310, 2604,  216, 2310,  152,  344, 2288,  220,
    541      2604,  159, 2604,  217,  226, 2604,  185,  134,  212,  251,
    542       237,  270,  137,  257,  235,  165,  305,  314,  333,  238,
    543       193, 2604,  225, 2604, 2301,  402,  390, 2604, 2312, 2604,
    544      2280,  204, 2604,    0, 2604,  426,    0, 2604,  417, 2604,
    545       439,  451, 2604,  498, 2274,  205, 2604, 2604, 2604, 2604,
    546      2604, 2292, 2604, 2291, 2604, 2604, 2298,  559, 2604, 2315,
    547 
    548      2604,  605,  413,  498,  516,  274,  243,  229,  293,  305,
    549         0,  289,  253,  273,  334, 2604, 2604, 2604, 2285, 2604,
    550      2604, 2604, 2279, 2278,  298,  314, 2293,  356,  429,  439,
    551       366,  400,  433,  448, 2269,  434, 2218,  438, 2248,  319,
    552      2604, 2604,  484, 2239, 2238, 2604, 2211,  310,  282,  377,
    553       329,  409,  424,  422,  421,  503,  438,  434,  451,  474,
    554       475,  430,  348,  461,  441,  479,  494,  499,  437,  502,
    555       492,  520,  281,  514,  521, 2234,  536,  535,  537,  544,
    556       539,  545,  567,  498,  540,  526,  563,  598,  570,  571,
    557       548, 2604, 2604,  653,  662, 2283,  668, 2604,  674, 2604,
    558 
    559      2232,  562, 2223, 2222,    0,  640, 2604, 2604,  680, 2221,
    560      2200, 2199,    0, 2218,  616,  640,  646,  689,  688,  650,
    561       678,  679,  682, 2215,  685,  692, 2192, 2186, 2604,  714,
    562       707, 2604, 2185, 2237, 2604,  703,    0,  596,  760,  725,
    563       767,  778,  603, 2604, 2190, 2165,    0,  768, 2211,  822,
    564       696, 2604, 2182, 2157,  828, 2604, 2604, 2190, 2604, 2604,
    565       725,  728, 2164, 2164,  723, 2160, 2154, 2153,    0, 2152,
    566         0, 2120,  703,  708,  744,  676,  711,  722,  754,  767,
    567       756,  764,  757,  778,  766,  773,  805,  806,  807,  784,
    568       808, 2150,  809,  812,  813,  233,  760,  814,  816,  818,
    569 
    570       819,  315,  821,  830,  715,  828,  833,  834,  836,  843,
    571       845,  835,  829,  846, 2149,  714,  851,  852,  853,  855,
    572       768,  856,  860,  857,  858,  861,  862, 2145,  863,  549,
    573       864,  871,  868,  885,  874,  937,  938, 2140, 2134, 2133,
    574         0, 2132,    0,  925,  929, 2126,    0, 2125,    0, 2124,
    575         0, 2142, 2604,  924,  925, 2121, 2118,    0, 2112,    0,
    576       937,  943,  965,  949,  989,  995, 1003, 2604, 2604,  952,
    577       992, 1011,  957, 1050,  934, 1044,  984, 2604, 2604, 2111,
    578      2110, 2104,    0, 2103,    0, 2102,    0, 2096,    0, 2604,
    579       933,  926,  877,  982,  941,  989,  947,  929,  984,  990,
    580 
    581       927,  987, 1016,  997, 1027, 1031, 1028, 1038,  588, 1029,
    582      1039,  957, 2098, 1042, 2097, 1048, 2091, 1049, 1046, 1052,
    583      1051, 1066, 1054, 1055, 2090, 1062, 2089, 1071, 1057, 1073,
    584      1075, 1078, 1076, 1080, 2083, 1081, 2082, 1082, 1083, 1086,
    585      1087, 1090, 1085, 1084, 1095, 1092, 1103, 1100, 1101, 1111,
    586      1113, 2081, 1114, 1117, 1165, 2072,    0, 2071,    0, 2070,
    587         0, 2049,    0, 1159, 2048,    0, 2043,    0, 2042, 2041,
    588      2035,    0, 2034,    0, 1167, 1173, 1219, 1130, 1230, 1159,
    589      1134, 1137, 2604, 1236, 1243, 1254, 2045, 2015, 2026, 2025,
    590         0, 2019,    0, 2018,    0, 2017,    0, 2013,    0, 2012,
    591 
    592         0, 1118, 1150, 2014, 1151, 1154, 1156, 1157, 1159, 1168,
    593      1175, 1181, 1165, 1180, 1220, 1187, 1230, 1212, 1232, 1265,
    594      1238, 1237, 1239, 1240, 1243, 2010, 1122, 1242, 2009, 1244,
    595      1250, 1254, 1257, 1252, 2008, 1255, 1260, 1262, 1263, 2004,
    596      1266, 1268, 1997, 1271, 1275, 1276, 1279, 1282, 1995,  988,
    597       665, 1283, 1285, 1288, 1293, 1286, 1291, 1991, 1289, 1296,
    598      1989, 2033, 1979,    0, 1978,    0, 1972,    0, 1971,    0,
    599      1970,    0, 1964,    0, 1963,    0, 1962,    0, 1340, 1346,
    600      1353, 1364, 1956, 2604, 1376, 2604, 1387, 2604, 1955,    0,
    601      1954,    0, 1948,    0, 1947,    0,    0,    0, 1949,    0,
    602 
    603      1365, 1297, 1294, 1332, 1305, 1330, 1333, 1366, 1352, 1373,
    604      1342, 1372, 1371, 1377, 1381, 1382, 1384, 1408, 1389, 1392,
    605      1396, 1388, 1395, 1398, 1943, 1399, 1400, 1409, 1410, 1942,
    606      1941, 1935, 1413, 1171, 1934, 1411, 1933, 1929, 1415, 1418,
    607      1928, 1927, 1923, 1922, 1921, 1888, 1420, 1416, 1887, 1427,
    608      1422, 1932, 2604, 1878,    0, 1877,    0,    0,    0, 1874,
    609         0,    0,    0, 2604,    0,    0,    0,    0, 1468, 1474,
    610      1520, 1870,    0, 1869,    0,    0,    0,    0, 1865, 1414,
    611      1450, 1867, 1432, 1454, 1452, 1453, 1463, 1464, 1451, 1866,
    612      1302, 1470, 1472, 1434, 1497, 1482, 1487, 1500, 1498, 1486,
    613 
    614      1480, 1502, 1503, 1504, 1862, 1505, 1861, 1860, 1506, 1853,
    615      1832, 1507, 1508, 1510, 1831, 1509, 1511,    0,    0, 1827,
    616      1823, 1822, 1821, 1562,    0, 1817, 1816, 1815, 1811, 1810,
    617      1812, 1808, 1807, 1806, 1518, 1522, 1476, 1513, 1540, 1519,
    618      1515, 1521, 1543, 1554, 1802, 1544, 1801, 1545, 1546, 1549,
    619      1555, 1551, 1557, 1800, 1796, 1795, 1794, 1559, 1790, 1789,
    620      1785, 1781, 1780, 1779, 1770, 1769, 1766, 1765, 1764, 1747,
    621      1739, 1738, 1560, 1738, 1562, 1561, 1564, 1563, 1568, 1732,
    622      1570, 1595, 1572, 1729, 1574, 1573, 1578, 1577, 1584, 1589,
    623      1718, 1717, 1698, 1697, 1696, 1688, 1687, 1648, 1647, 1646,
    624 
    625      1645, 1644, 1643, 1645, 1590, 1591, 1594, 1592, 1599, 1593,
    626      1644, 1643, 1603, 1642, 1640, 1604, 1608, 1609, 1636, 1635,
    627      1634, 1633, 1631, 1630, 1427, 1351, 1612, 1614, 1167, 1613,
    628      1120, 1620, 1622, 1624,  870,  613,  578,  452, 1615, 1626,
    629      1628, 1629,  372,  287, 1630,  236,  200,  199,  166, 2604,
    630      1705, 1717, 1729, 1738, 1747, 1759, 1768, 1780, 1792, 1804,
    631      1811, 1820, 1826, 1832, 1838, 1844, 1850, 1856, 1862, 1868,
    632      1874, 1886, 1892, 1895, 1902, 1904, 1910, 1916, 1922, 1924,
    633      1930, 1935, 1947, 1959, 1965, 1971, 1977, 1983, 1985, 1991,
    634      1993, 1999, 2001, 2007, 2009, 2015, 2017, 2023, 2025, 2031,
    635 
    636      2033, 2039, 2046, 2052, 2058, 2064, 2070, 2072, 2078, 2080,
    637      2086, 2088, 2094, 2099, 2111, 2117, 2123, 2125, 2131, 2133,
    638      2139, 2141, 2147, 2149, 2155, 2157, 2163, 2165, 2171, 2177,
    639      2179, 2185, 2187, 2193, 2199, 2205, 2207, 2213, 2215, 2221,
    640      2223, 2229, 2231, 2237, 2239, 2245, 2250, 2262, 2268, 2274,
    641      2276, 2282, 2284, 2290, 2292, 2298, 2300, 2306, 2308, 2314,
    642      2316, 2322, 2324, 2330, 2332, 2338, 2344, 2346, 2352, 2354,
    643      2360, 2362, 2368, 2370, 2372, 2377, 2383, 2391, 2397, 2403,
    644      2405, 2411, 2413, 2415, 2420, 2426, 2428, 2430, 2432, 2434,
    645      2436, 2438, 2440, 2446, 2448, 2454, 2456, 2458, 2460, 2462,
    646 
    647      2471, 2477, 2479, 2481, 2487, 2493, 2499, 2501, 2507, 2513,
    648      2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567, 2573,
    649      2579, 2585, 2591
     535        0,   83, 2266, 2265,   93,    0,  175,  176,  177,  178,
     536     2281, 2568,  189, 2568,  195,   54, 2568, 2223,   59,  171,
     537     2568, 2568, 2568,   55,  186, 2568,  189,  187,  202,  214,
     538      272,    0, 2241, 2568,  214, 2241,  150,  340, 2215,  222,
     539     2568,  157, 2568, 2234,  277, 2568,  192,  133,  196,  198,
     540      204,  271,  155,  218,  181,  200,  266,  238,  337,  224,
     541      227, 2568,  223, 2568, 2231,  372,  400, 2568, 2237, 2568,
     542     2206,  213, 2568,    0, 2568,  427,    0, 2568,  363, 2568,
     543      381,  393, 2568,  498, 2205,  229, 2568, 2568, 2568, 2568,
     544     2568, 2217, 2568, 2216, 2568, 2568, 2228,  558, 2568, 2240,
     545
     546     2568,  603,  385,  443,  419,  259,  239,  280,  399,  406,
     547        0,  305,  240,  335,  411, 2568, 2568, 2568, 2210, 2568,
     548     2568, 2568, 2209, 2188,  215,  277, 2203,  310,  383,  384,
     549      327,  425,  380,  399, 2180,  448, 2130,  458, 2160,  288,
     550     2568, 2568,  486, 2151, 2150, 2568,  420,  423,  439,  456,
     551      445,  455,  460,  329,  483,  469,  462,  467,  480,  494,
     552      396,  471,  472,  487,  470,  513,  489,  506,  508,  509,
     553      386,  510,  516, 2152,  520,  522,  518,  541,  526,  543,
     554      540,  551,  549,  553,  565,  598,  572,  581,  557, 2568,
     555     2568,  669,  659, 2195,  686, 2568,  692, 2568, 2145,  559,
     556
     557     2141, 2135,    0,  649, 2568, 2568,  679, 2134, 2133, 2127,
     558        0, 2149,  535,  606,  607,  674,  635,  625,  646,  664,
     559      689, 2146,  692,  693, 2119, 2118, 2568,  712,  723, 2568,
     560     2117, 2165, 2568,  714,    0,  555,  705,  759,  765,  776,
     561      593, 2568, 2123, 2099,    0,  784, 2141,  787,  632, 2568,
     562     2116, 2087,  798, 2568, 2568, 2119, 2568, 2568,  710,  725,
     563     2099, 2094,  720, 2090, 2089, 2085,    0, 2084,    0,  712,
     564      548,  710,  766,  767,  597,  745,  711,  777,  764,  788,
     565      720,  783,  792,  713,  639,  789,  611,  793, 2086,  794,
     566      791,  795,  810,  800,  805,  813,  814,  361,  818,  815,
     567
     568      816,  821,  825,  822,  826,  828,  829,  836,  838, 2080,
     569      841,  842,  843,  839,  844,  845,  846,  849,  847,  853,
     570      855,  860, 2079,  859,  905,  864,  866,  872,  870,  871,
     571      933,  930, 2075, 2069, 2068,    0, 2067,    0,  920,  924,
     572     2061,    0, 2060,    0, 2059,    0, 2074, 2568,  919,  920,
     573     2054, 2051,    0, 2045,    0,  935,  941,  953,  963,  974,
     574      986,  996, 2568, 2568,  960,  961, 1013,  989, 1047,  926,
     575     1045,  968, 2568, 2568, 2044, 2043, 2037,    0, 2036,    0,
     576     2035,    0, 2014,    0,  874,  873,  987,  903,  931,  932,
     577      984,  920,  994,  995,  974,  976, 1009, 1024, 1017,  992,
     578
     579     1029, 1027,  952, 1030, 1034, 1040, 2016, 1031, 2011, 1047,
     580     2010, 1049, 1043, 1054, 1038, 1056, 1057, 2009, 2003, 1052,
     581     1058, 1062, 1069, 1073, 1074, 1075, 2002, 1076, 2001, 1078,
     582     1079, 1082, 1083, 1085, 1081, 1086, 1092, 1089, 1099,  583,
     583     1108, 1095, 1087, 1995, 1097, 1109, 1160, 1991,    0, 1990,
     584        0, 1984,    0, 1983,    0, 1149, 1982,    0, 1978,    0,
     585     1977, 1976, 1972,    0, 1971,    0, 1156, 1162, 1207, 1121,
     586     1218, 1149, 1120, 1144, 2568, 1224, 1230, 1241, 1981, 1954,
     587     1959, 1957,    0, 1953,    0, 1951,    0, 1945,    0, 1944,
     588        0, 1943,    0, 1125, 1144, 1940, 1146, 1149, 1147, 1153,
     589
     590     1150, 1218, 1162, 1110, 1156, 1155, 1164, 1211, 1224, 1225,
     591     1226,  164, 1228, 1208, 1170, 1232, 1238, 1939, 1938, 1235,
     592     1932, 1227, 1231, 1234, 1242, 1931, 1246, 1247, 1250, 1930,
     593     1252, 1255, 1924, 1257, 1261, 1254, 1256, 1258, 1923, 1264,
     594      709, 1271, 1262, 1268, 1922, 1273, 1277, 1916, 1274, 1279,
     595     1915, 1963, 1905,    0, 1904,    0, 1903,    0, 1897,    0,
     596     1896,    0, 1895,    0, 1891,    0, 1890,    0, 1322, 1328,
     597     1334, 1345, 1889, 2568, 1356, 2568, 1380, 2568, 1885,    0,
     598     1884,    0, 1883,    0, 1850,    0,    0,    0, 1852,    0,
     599     1342, 1281, 1315, 1322, 1333, 1289, 1283, 1338, 1340, 1336,
     600
     601     1361, 1343, 1341, 1362, 1364, 1365, 1367, 1397, 1373, 1314,
     602     1376, 1375, 1377, 1847, 1378, 1380, 1382, 1846, 1845, 1381,
     603     1387, 1839, 1389, 1838, 1837, 1396, 1391, 1833, 1832, 1831,
     604     1827, 1826, 1825, 1392, 1818, 1407, 1394, 1846, 2568, 1793,
     605        0, 1792,    0,    0,    0, 1791,    0,    0,    0, 2568,
     606        0,    0,    0,    0, 1446, 1452, 1497, 1787,    0, 1786,
     607        0,    0,    0,    0, 1782, 1408, 1430, 1784, 1410, 1432,
     608     1437, 1411, 1412, 1443, 1433, 1783, 1447, 1445, 1457, 1413,
     609     1476, 1463, 1450, 1477, 1475, 1474, 1480, 1479, 1481, 1779,
     610     1482, 1778, 1483, 1777, 1773, 1464, 1485, 1772, 1490, 1486,
     611
     612        0,    0, 1768, 1764, 1763, 1762, 1537,    0, 1758, 1757,
     613     1756, 1752, 1751, 1753, 1749, 1748, 1747, 1496, 1497, 1499,
     614     1502, 1493, 1492, 1501, 1518, 1519, 1547, 1738, 1522, 1737,
     615     1523, 1458, 1528, 1530, 1524, 1734, 1733, 1732, 1715, 1707,
     616     1706, 1700, 1694, 1691, 1683, 1682, 1663, 1662, 1661, 1653,
     617     1652, 1613, 1612, 1529, 1614, 1534, 1535, 1538, 1536, 1542,
     618     1613, 1543, 1562, 1546, 1612, 1544, 1548, 1554, 1550, 1608,
     619     1607, 1606, 1605, 1604, 1603, 1602, 1601, 1600, 1598, 1597,
     620     1567, 1566, 1505, 1552, 1560, 1565, 1563, 1571, 1564, 1286,
     621     1285, 1575, 1188, 1158, 1576, 1001,  997,  950,  901,  753,
     622
     623      752,  642,  556, 1577, 1580,  519, 1584,  475, 1588, 1589,
     624     1590,  471,  407, 1582, 1583, 1594, 1596,  353,  298, 1595,
     625      274,  234,  233,  165, 2568, 1669, 1681, 1693, 1702, 1711,
     626     1723, 1732, 1744, 1756, 1768, 1775, 1784, 1790, 1796, 1802,
     627     1808, 1814, 1820, 1826, 1832, 1838, 1850, 1856, 1859, 1866,
     628     1868, 1874, 1880, 1886, 1888, 1894, 1899, 1911, 1923, 1929,
     629     1935, 1941, 1947, 1949, 1955, 1957, 1963, 1965, 1971, 1973,
     630     1979, 1981, 1987, 1989, 1995, 1997, 2003, 2010, 2016, 2022,
     631     2028, 2034, 2036, 2042, 2044, 2050, 2052, 2058, 2063, 2075,
     632     2081, 2087, 2089, 2095, 2097, 2103, 2105, 2111, 2113, 2119,
     633
     634     2121, 2127, 2129, 2135, 2141, 2143, 2149, 2151, 2157, 2163,
     635     2169, 2171, 2177, 2179, 2185, 2187, 2193, 2195, 2201, 2203,
     636     2209, 2214, 2226, 2232, 2238, 2240, 2246, 2248, 2254, 2256,
     637     2262, 2264, 2270, 2272, 2278, 2280, 2286, 2288, 2294, 2296,
     638     2302, 2308, 2310, 2316, 2318, 2324, 2326, 2332, 2334, 2336,
     639     2341, 2347, 2355, 2361, 2367, 2369, 2375, 2377, 2379, 2384,
     640     2390, 2392, 2394, 2396, 2398, 2400, 2402, 2404, 2410, 2412,
     641     2418, 2420, 2422, 2424, 2426, 2435, 2441, 2443, 2445, 2451,
     642     2457, 2463, 2465, 2471, 2477, 2483, 2489, 2495, 2501, 2507,
     643     2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555
     644
    650645    } ;
    651646
    652 static yyconst flex_int16_t yy_def[1024] =
     647static yyconst flex_int16_t yy_def[999] =
    653648    {   0,
    654       850,    1,  851,  851,  850,    5,  852,  852,  853,  853,
    655       850,  850,  850,  850,  850,  850,  850,  854,  850,  850,
    656       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    657       850,   31,  850,  850,  850,  850,  850,  850,  855,  854,
    658       850,  850,  850,  850,  854,  850,  854,  854,  854,  854,
    659       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    660       854,  850,  850,  850,  850,  850,  856,  850,  850,  850,
    661       857,  850,  850,  858,  850,  850,  859,  850,  850,  850,
    662       850,  850,  850,  850,  854,  850,  850,  850,  850,  850,
    663       850,  850,  850,  850,  850,  850,  850,  850,  850,  860,
    664 
    665       850,  850,   30,  850,  850,  850,  850,  861,   30,  850,
    666        31,  850,  850,   31,  850,  850,  850,  850,  850,  850,
    667       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    668       850,  850,  850,  850,  850,  850,  850,  850,  862,  850,
    669       850,  850,  854,  863,  864,  850,  850,  854,  854,  854,
    670       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    671       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    672       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    673       854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    674       854,  850,  850,  850,  856,  856,  856,  850,  856,  850,
    675 
    676       857,  850,  865,  866,  858,  850,  850,  850,  850,  867,
    677       868,  869,  859,  850,  850,  850,  850,  850,  850,  850,
    678       850,  850,  850,  850,  850,  850,  870,  871,  850,  850,
    679       850,  850,  230,  872,  850,  850,  103,  103,  850,  850,
    680       850,  850,  850,  850,  850,  850,  873,  874,  875,  850,
    681       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    682       850,  850,  850,  862,  850,  876,  877,  878,  879,  880,
    683       881,  850,  882,  882,  882,  882,  882,  882,  882,  882,
    684       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    685       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    686 
    687       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    688       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    689       882,  882,  882,  882,  882,  882,  882,  882,  882,  882,
    690       882,  882,  882,  882,  882,  883,  884,  885,  886,  887,
    691       888,  889,  890,  850,  850,  891,  892,  893,  894,  895,
    692       896,  850,  850,  850,  850,  850,  897,  898,  899,  900,
    693       850,  850,  850,  850,  850,  850,  850,  850,  850,  901,
    694       902,  903,  850,  850,  850,  903,  850,  850,  850,  904,
    695       905,  906,  907,  908,  909,  910,  911,  912,  913,  850,
    696       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    697 
    698       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    699       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    700       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    701       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    702       914,  914,  914,  914,  914,  914,  914,  914,  914,  914,
    703       914,  914,  914,  914,  915,  916,  917,  918,  919,  920,
    704       921,  922,  923,  850,  924,  925,  926,  927,  928,  928,
    705       929,  930,  931,  932,  850,  850,  850,  933,  850,  933,
    706       850,  850,  850,  850,  850,  850,  850,  850,  934,  935,
    707       936,  937,  938,  939,  940,  941,  942,  943,  944,  945,
    708 
    709       946,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    710       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    711       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    712       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    713       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    714       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    715       947,  948,  949,  950,  951,  952,  953,  954,  955,  956,
    716       957,  958,  959,  960,  961,  962,  963,  964,  850,  850,
    717       850,  850,  965,  850,  850,  850,  850,  850,  966,  967,
    718       968,  969,  970,  971,  972,  973,  974,  975,  976,  977,
    719 
     649      825,    1,  826,  826,  825,    5,  827,  827,  828,  828,
     650      825,  825,  825,  825,  825,  825,  825,  829,  825,  825,
     651      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     652      825,   31,  825,  825,  825,  825,  825,  825,  830,  829,
     653      825,  825,  825,  825,  829,  825,  829,  829,  829,  829,
     654      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     655      829,  825,  825,  825,  825,  825,  831,  825,  825,  825,
     656      832,  825,  825,  833,  825,  825,  834,  825,  825,  825,
     657      825,  825,  825,  825,  829,  825,  825,  825,  825,  825,
     658      825,  825,  825,  825,  825,  825,  825,  825,  825,  835,
     659
     660      825,  825,   30,  825,  825,  825,  825,  836,   30,  825,
     661       31,  825,  825,   31,  825,  825,  825,  825,  825,  825,
     662      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     663      825,  825,  825,  825,  825,  825,  825,  825,  837,  825,
     664      825,  825,  829,  838,  839,  825,  829,  829,  829,  829,
     665      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     666      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     667      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
     668      829,  829,  829,  829,  829,  829,  829,  829,  829,  825,
     669      825,  825,  831,  831,  831,  825,  831,  825,  832,  825,
     670
     671      840,  841,  833,  825,  825,  825,  825,  842,  843,  844,
     672      834,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     673      825,  825,  825,  825,  845,  846,  825,  825,  825,  825,
     674      228,  847,  825,  825,  103,  103,  825,  825,  825,  825,
     675      825,  825,  825,  825,  848,  849,  850,  825,  825,  825,
     676      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     677      825,  837,  825,  851,  852,  853,  854,  855,  856,  857,
     678      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     679      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     680      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     681
     682      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     683      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     684      857,  857,  857,  857,  857,  857,  857,  857,  857,  857,
     685      858,  859,  860,  861,  862,  863,  864,  865,  825,  825,
     686      866,  867,  868,  869,  870,  871,  825,  825,  825,  825,
     687      825,  872,  873,  874,  875,  825,  825,  825,  825,  825,
     688      825,  825,  825,  825,  876,  877,  878,  825,  825,  825,
     689      878,  825,  825,  825,  879,  880,  881,  882,  883,  884,
     690      885,  886,  887,  888,  889,  889,  889,  889,  889,  889,
     691      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     692
     693      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     694      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     695      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     696      889,  889,  889,  889,  889,  889,  889,  889,  889,  889,
     697      889,  889,  889,  889,  889,  889,  890,  891,  892,  893,
     698      894,  895,  896,  897,  898,  825,  899,  900,  901,  902,
     699      903,  903,  904,  905,  906,  907,  825,  825,  825,  908,
     700      825,  908,  825,  825,  825,  825,  825,  825,  825,  825,
     701      909,  910,  911,  912,  913,  914,  915,  916,  917,  918,
     702      919,  920,  921,  922,  922,  922,  922,  922,  922,  922,
     703
     704      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     705      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     706      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     707      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     708      922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
     709      922,  923,  924,  925,  926,  927,  928,  929,  930,  931,
     710      932,  933,  934,  935,  936,  937,  938,  939,  825,  825,
     711      825,  825,  940,  825,  825,  825,  825,  825,  941,  942,
     712      943,  944,  945,  946,  947,  948,  949,  950,  951,  952,
     713      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     714
     715      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     716      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     717      951,  951,  951,  951,  951,  951,  951,  951,  951,  951,
     718      951,  951,  951,  951,  951,  951,  951,  953,  825,  954,
     719      955,  956,  957,  958,  959,  960,  961,  962,  963,  825,
     720      964,  965,  966,  967,  825,  825,  825,  968,  969,  970,
     721      971,  972,  973,  974,  975,  976,  976,  976,  976,  976,
    720722      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    721723      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    722724      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
     725
     726      977,  978,  956,  979,  980,  981,  825,  982,  968,  970,
     727      983,  984,  975,  976,  976,  976,  976,  976,  976,  976,
    723728      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    724729      976,  976,  976,  976,  976,  976,  976,  976,  976,  976,
    725       976,  978,  850,  979,  980,  981,  982,  983,  984,  985,
    726       986,  987,  988,  850,  989,  990,  991,  992,  850,  850,
    727       850,  993,  994,  995,  996,  997,  998,  999, 1000, 1001,
    728      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    729      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    730 
    731      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    732      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003,  981,
    733      1004, 1005, 1006,  850, 1007,  993,  995, 1008, 1009, 1000,
    734      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    735      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    736      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    737      1010, 1011, 1004, 1012, 1005, 1013, 1006, 1014, 1015, 1008,
    738      1016, 1009, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    739      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    740      1017, 1010, 1018, 1011, 1019, 1012, 1020, 1013, 1021, 1014,
    741 
    742      1022, 1015, 1016, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
    743      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1023, 1017,
    744      1018, 1019, 1020,  995, 1021, 1022, 1001, 1001, 1001, 1001,
    745      1001, 1001, 1001, 1001, 1001, 1001, 1023,  995, 1001, 1001,
    746      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,    0,
    747       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    748       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    749       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    750       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    751       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    752 
    753       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    754       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    755       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    756       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    757       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    758       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    759       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    760       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    761       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    762       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    763 
    764       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    765       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    766       850,  850,  850
     730      976,  985,  986,  979,  987,  980,  988,  981,  989,  990,
     731      983,  991,  984,  976,  976,  976,  976,  976,  976,  976,
     732      976,  976,  976,  976,  976,  976,  976,  976,  976,  992,
     733      985,  993,  986,  994,  987,  995,  988,  996,  989,  997,
     734      990,  991,  976,  976,  976,  976,  976,  976,  976,  976,
     735      976,  976,  976,  976,  976,  998,  992,  993,  994,  995,
     736
     737      970,  996,  997,  976,  976,  976,  976,  976,  976,  976,
     738      976,  998,  970,  976,  976,  976,  976,  976,  976,  976,
     739      976,  976,  976,  976,    0,  825,  825,  825,  825,  825,
     740      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     741      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     742      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     743      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     744      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     745      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     746      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     747
     748      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     749      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     750      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     751      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     752      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     753      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     754      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     755      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     756      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     757      825,  825,  825,  825,  825,  825,  825,  825
     758
    767759    } ;
    768760
    769 static yyconst flex_int16_t yy_nxt[2690] =
     761static yyconst flex_int16_t yy_nxt[2653] =
    770762    {   0,
    771763       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    773765       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
    774766       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
    775        18,   18,   18,   40,   18,   18,   18,   18,   18,   40,
    776        18,   41,   42,   43,   44,   45,   46,   47,   48,   49,
    777        50,   51,   52,   53,   18,   54,   18,   55,   18,   18,
    778        18,   18,   56,   57,   58,   59,   60,   61,   18,   18,
    779        18,   62,   63,   64,   65,   66,   83,   91,   84,   84,
    780        66,   87,   88,   67,   70,   70,   70,   70,   70,   70,
    781 
    782        70,   70,   70,   70,   71,   70,   70,   70,   70,   70,
     767       18,   18,   18,   40,   18,   18,   18,   18,   40,   18,
     768       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
     769       51,   52,   53,   18,   54,   18,   55,   18,   18,   18,
     770       18,   56,   57,   58,   59,   60,   61,   18,   18,   18,
     771       62,   63,   64,   65,   66,   83,   91,   84,   84,   66,
     772       87,   88,   67,   70,   70,   70,   70,   70,   70,   70,
     773
     774       70,   70,   70,   71,   70,   70,   70,   70,   70,   70,
    783775       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
    784        70,   70,   70,   70,   70,   70,   70,   70,   70,   71,
     776       70,   70,   70,   70,   70,   70,   70,   70,   71,   71,
    785777       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    786        71,   71,   71,   71,   71,   70,   72,   70,   70,   71,
    787        73,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     778       71,   71,   71,   70,   72,   70,   70,   71,   73,   71,
    788779       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    789        71,   71,   71,   71,   71,   70,   70,   70,   70,   75,
    790        75,   78,   78,  122,  123,   89,   86,   78,   78,   86,
    791        75,   75,   79,   80,   81,   81,   81,   79,   81,   80,
    792 
    793        82,   82,   82,   81,   90,   92,  159,  175,  144,   97,
    794        94,   98,   98,   98,   98,   98,   98,   86,   86,   93,
    795        99,   84,   95,   96,   84,  100,  180,  117,  141,   76,
    796        76,   76,   76,  142,  145,  101,  102,   86,  103,  103,
    797       103,  103,  104,  104,  118,   86,  119,  120,  146,  247,
    798       147,   86,   86,  203,  227,  105,  192,  191,  157,  106,
    799       158,  148,  149,  150,   86,  107,  108,  151,  152,  160,
    800       153,  109,   86,  154,  155,  143,  161,  105,   86,  204,
    801       228,  156,  162,  110,  249,   86,  245,   86,   86,   86,
    802        86,  107,  416,  850,  108,  102,  253,  111,  111,  111,
    803 
    804       111,  111,  111,   86,  167,  178,  168,  193,  190,   86,
    805       246,  179,  163,  850,  105,  169,  164,  243,  112,  176,
    806       254,  165,   86,  244,  113,  166,  177,  170,  255,  258,
    807       114,  259,  251,   86,   86,  171,  105,  172,  252,   86,
    808       173,  141,  115,  850,  174,  258,  142,  259,  250,  244,
    809       113,  124,  275,  311,  244,  125,  126,   86,  127,  188,
    810       128,  129,   86,  130,  252,  131,   86,   86,  266,  181,
    811       182,  850,  243,  423,  132,  133,  134,  273,  185,  183,
    812       244,   86,  184,  252,  274,   86,  186,  258,  143,  259,
    813       277,  197,  198,  187,  267,  135,  197,  258,  136,  259,
    814 
    815        86,  251,  189,  194,   80,   81,   81,   81,  194,  252,
    816       300,  195,  199,  199,  199,  199,  199,  199,   79,   80,
    817        81,   81,   81,   79,   86,  137,  138,  206,  207,   86,
    818       261,  258,  206,  259,  208,  237,  237,  237,  237,  208,
    819        81,   80,   81,   81,   81,   81,  260,  276,  209,  209,
    820       209,  209,   81,   80,   82,   82,   82,   81,  260,  208,
    821       258,   86,  259,  850,  258,  258,  259,  259,  238,  258,
    822       258,  259,  259,   86,   86,  210,   86,  278,  208,  258,
    823       262,  259,   86,  208,  208,  281,   86,  208,  208,   86,
    824        86,  850,  141,   86,  279,  208,  280,  142,  208,  299,
    825 
    826       208,  211,  208,   86,  212,  214,  292,  850,  293,  215,
    827       216,  307,  294,   86,  217,  218,  302,  219,  102,  220,
    828       104,  104,  104,  104,  104,  104,   86,   86,  221,  222,
    829       223,   86,  297,  240,  301,  240,   86,  105,  241,  241,
    830       241,  241,  241,  241,   86,  298,   86,  295,  296,  224,
    831        86,   86,  225,  239,   86,   86,  305,  141,  303,  105,
    832       282,  309,  283,  326,  284,  285,   86,  304,  286,  308,
    833       287,  242,   86,   86,  306,  288,  289,  290,   86,  291,
    834       226,  230,  230,  230,  230,  230,  230,   86,   86,   86,
    835       310,   86,   86,  312,  317,  313,   86,   86,  231,  232,
    836 
    837        86,   86,  232,  314,  316,  328,  141,  318,  322,  321,
    838       315,  338,  327,  335,  233,   86,  850,  319,  320,   86,
    839       231,  232,   86,   86,  324,  323,  232,   98,   98,   98,
    840        98,   98,   98,  850,  329,  331,  333,  339,  334,  325,
    841        86,  206,  207,  332,  231,  232,  206,  352,  232,  353,
    842        86,  365,  368,  330,  194,   80,   81,   81,   81,  194,
    843       236,  522,  195,  197,  198,   86,  231,  232,  197,  197,
    844       198,  352,  232,  353,  197,  336,  198,  352,  368,  353,
    845       336,  352,  337,  353,  199,  199,  199,  199,  199,  199,
    846       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    847 
    848       199,  199,  344,  344,  344,  344,  353,  353,  354,  352,
    849       352,  353,  353,  352,  355,  353,  352,   86,  353,  352,
    850       352,  353,  353,  352,  361,  353,  361,  643,   86,  362,
    851       362,  362,  362,  362,  362,  345,  230,  230,  230,  230,
    852       230,  230,  231,  232,  394,  378,  232,  241,  241,  241,
    853       241,  241,  241,  231,  232,   86,  258,  232,  259,  258,
    854        86,  259,  363,   86,  231,  232,   86,   86,  391,  233,
    855       232,  378,  380,  426,   86,  231,  232,  437,  392,  396,
    856       395,  232,  104,  104,  104,  104,  104,  104,  371,  366,
    857       366,  366,  366,  366,  366,  240,   86,  240,  381,  105,
    858 
    859       241,  241,  241,  241,  241,  241,   86,  232,   86,   86,
    860       232,  373,   86,  374,  393,  250,   86,  375,   86,   86,
    861        86,  105,  367,  376,  398,   86,  397,  403,  399,  232,
    862        86,  400,  417,  405,  232,  377,   86,  401,  402,  374,
    863       442,  406,  407,  375,  104,  104,  104,  104,  104,  104,
    864       111,  111,  111,  111,  111,  111,  404,   86,   86,   86,
    865        86,   86,  408,  411,   86,   86,   86,  409,   86,  414,
    866        86,   86,  410,   86,  415,  421,  422,  250,  412,  413,
    867        86,   86,   86,  255,  418,   86,   86,   86,   86,  419,
    868       420,  425,  424,  430,  428,   86,  427,   86,   86,  435,
    869 
    870       431,  429,  432,   86,   86,   86,  434,   86,   86,   86,
    871        86,  436,   86,   86,   86,   86,   86,  439,  438,  433,
    872        86,  444,   86,   86,  449,  443,   86,  440,  452,   86,
    873       441,  445,  448,  446,  450,  447,  451,   86,  336,  198,
    874       198,  454,  453,  336,  504,  337,  196,  208,  208,  208,
    875       208,  344,  344,  344,  344,  352,  352,  353,  353,  362,
    876       362,  362,  362,  362,  362,  475,  475,  475,  475,  475,
    877       475,  230,  230,  230,  230,  230,  230,  487,   86,   86,
    878       464,   86,  361,  232,  361,   86,  232,  362,  362,  362,
    879       362,  362,  362,   86,  503,  512,  502,  479,  476,   86,
    880 
    881       482,  488,  506,  509,  364,  232,  483,  480,  508,   86,
    882       232,  237,  237,  237,  237,  104,  104,  366,  366,  366,
    883       366,  366,  366,  479,  525,  366,  366,  366,  366,  366,
    884       366,  371,  483,  483,   86,  232,   86,  479,  232,   86,
    885        86,   86,   86,  232,  365,  510,  232,  481,  642,   86,
    886       367,  482,  507,  505,  373,  511,  374,  232,  477,  483,
    887       375,  513,  232,  479,  850,  232,  376,  484,   86,  484,
    888       232,  516,  485,  485,  485,  485,  485,  485,  377,   86,
    889        86,   86,  374,   86,  514,  515,  375,  373,  518,  374,
    890        86,   86,  523,  375,   86,  519,  521,  517,   86,  489,
    891 
    892        86,   86,  520,   86,   86,  486,   86,   86,  526,   86,
    893       524,  377,  527,  530,   86,  374,  535,  531,   86,  375,
    894       529,  534,  528,   86,  533,   86,  532,   86,   86,  536,
    895        86,  538,   86,   86,   86,   86,   86,   86,   86,   86,
    896       539,  543,   86,  537,   86,  541,  550,   86,  542,  540,
    897       544,  553,   86,   86,  551,   86,  546,  545,  547,  548,
    898       552,  556,  554,   86,  549,   86,   86,  198,  624,   86,
    899        86,  557,   86,  562,   86,  479,  559,  555,  561,  479,
    900       558,  208,  208,  208,  208,  480,  584,  601,  560,  475,
    901       475,  475,  475,  475,  475,  475,  475,  475,  475,  475,
    902 
    903       475,  479,   86,   86,  479,  479,   86,  232,   86,   86,
    904       232,   86,  584,  232,  583,  602,  232,   86,  603,   86,
    905        86,  605,  476,   86,  607,  608,  604,   86,  579,  232,
    906       479,  606,   86,   86,  232,  232,  610,  611,  609,   86,
    907       232,  366,  366,  366,  366,  366,  366,  580,  614,  580,
    908       710,  612,  581,  581,  581,  581,  581,  581,  485,  485,
    909       485,  485,  485,  485,   86,  585,  585,  585,  585,  585,
    910       585,  484,   86,  484,  477,  616,  485,  485,  485,  485,
    911       485,  485,   86,  586,   86,  582,  586,  615,  618,   86,
    912        86,   86,   86,  613,   86,   86,   86,  617,  587,  619,
    913 
    914       623,  622,   86,  625,   86,  586,   86,   86,  621,   86,
    915       586,  620,   86,  630,   86,   86,  631,   86,   86,  627,
    916        86,  628,  626,   86,  629,  636,  633,   86,   86,  632,
    917       634,   86,  637,  635,   86,   86,  638,   86,   86,  647,
    918        86,   86,  644,   86,  640,   86,   86,  648,   86,   86,
    919       639,  641,  646,  649,   86,  683,  682,   86,  650,  645,
    920       740,  651,  475,  475,  475,  475,  475,  475,  581,  581,
    921       581,  581,  581,  581,  685,  669,  669,  669,  669,  669,
    922       669,  580,   86,  580,   86,   86,  581,  581,  581,  581,
    923       581,  581,  687,  586,   86,  579,  586,  684,  585,  585,
    924 
    925       585,  585,  585,  585,   86,  686,  850,  691,  670,  585,
    926       585,  585,  585,  585,  585,  586,  586,   86,   86,  586,
    927       586,  689,  680,   86,   86,   86,  688,  586,  690,   86,
    928       586,  587,  698,   86,   86,  681,   86,  696,  586,  692,
    929        86,   86,  671,  586,   86,  693,  694,   86,   86,  586,
    930        86,   86,   86,  697,  586,  695,  699,  701,  702,  704,
    931        86,   86,   86,   86,  700,   86,   86,   86,   86,  703,
    932        86,  708,   86,  705,   86,  706,  712,  713,  715,   86,
    933       711,  714,  850,  707,   86,  709,   86,  731,  716,  717,
    934       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
    935 
    936       669,  669,   86,   86,   86,   86,   86,  743,  586,  735,
    937       733,  586,  732,  734,  586,   86,   86,  586,  737,  738,
    938       744,  739,   86,  670,   86,  736,  747,  742,   86,  724,
    939       586,  741,   86,  775,   86,  586,  586,  745,   86,   86,
    940       750,  586,  585,  585,  585,  585,  585,  585,  746,   86,
    941        86,  749,   86,  748,   86,   86,   86,   86,   86,   86,
    942        86,   86,   86,   86,  751,   86,  754,   86,  752,  759,
    943        86,   86,  760,   86,   86,  671,  780,  753,  782,  756,
    944       776,  755,  757,  758,  669,  669,  669,  669,  669,  669,
    945       773,  774,   86,  779,  778,   86,   86,   86,   86,  783,
    946 
    947       784,   86,  777,   86,  786,  785,   86,   86,  781,   86,
    948       787,   86,   86,   86,   86,   86,   86,  724,  788,  807,
    949        86,  811,   86,  809,   86,   86,   86,  812,  814,   86,
    950        86,  806,  789,  815,  790,  805,   86,  808,  816,  804,
    951       810,   86,   86,   86,   86,   86,   86,   86,  813,  829,
    952       828,   86,  817,  830,  831,   86,   86,  818,  833,  834,
    953        86,   86,  832,  827,   86,   86,   86,   86,  841,  835,
    954       836,  840,   86,  839,   86,  842,   86,  843,   86,  844,
    955        86,   86,   86,  847,  848,  838,  850,  845,  850,  850,
    956       850,  837,   86,  846,   86,   86,   86,   86,  850,  850,
    957 
    958       826,  850,  825,  850,  849,   68,   68,   68,   68,   68,
    959        68,   68,   68,   68,   68,   68,   68,   74,   74,   74,
    960        74,   74,   74,   74,   74,   74,   74,   74,   74,   77,
    961        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    962        77,   85,  823,  850,   85,   85,   85,   85,   85,   85,
    963       139,  822,  850,  821,  139,  139,  139,  139,  139,  196,
    964       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
    965       196,  201,  850,  820,  201,  201,  201,  201,  201,  201,
    966       205,   86,  205,  205,   86,  205,  205,  205,  205,  205,
    967        86,  205,  213,  850,  803,  213,  213,  213,  213,  213,
    968 
    969       213,  213,  850,  213,  234,  234,  234,  234,  234,  234,
    970       234,  234,  234,  234,  234,  234,  248,  248,  248,  802,
    971       800,  850,  248,  264,  798,  850,  264,  264,  264,  264,
    972       264,  264,  268,  268,  796,  850,  794,  268,  270,  270,
    973       792,   86,   86,  270,  340,  340,   86,   86,   86,  340,
    974       342,  342,   86,   86,   86,  342,  346,  346,   86,   86,
    975        86,  346,  348,  348,   86,  850,  772,  348,  350,  350,
    976       770,  850,  850,  350,  357,  357,  767,  765,  763,  357,
    977       359,  359,  850,   86,   86,  359,  234,  234,  234,  234,
    978       234,  234,  234,  234,  234,  234,  234,  234,  370,  370,
    979 
    980       372,  372,  372,  372,  372,   86,  372,  248,  248,  248,
    981       382,  382,   86,   86,   86,  382,  384,  384,   86,   86,
    982       730,  384,  386,  386,  727,  726,  202,  386,  268,  268,
    983       388,  388,  720,  719,  653,  388,  270,  270,   85,   86,
    984        86,   85,   85,   85,   85,   85,   85,  196,  196,  196,
    985       196,  196,  196,  196,  196,  196,  196,  196,  196,  455,
    986       455,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    987       455,  456,  456,   86,   86,   86,  456,  458,  458,   86,
    988        86,   86,  458,  460,  460,   86,   86,   86,  460,  340,
    989       340,  462,  462,   86,   86,   86,  462,  342,  342,  465,
    990 
    991       465,   86,  678,  677,  465,  346,  346,  467,  467,  675,
    992       673,  583,  467,  348,  348,  469,  469,  668,  667,  665,
    993       469,  350,  350,  471,  471,  663,  661,  659,  471,  357,
    994       357,  473,  473,  657,  655,  653,  473,  359,  359,  478,
    995       478,   86,  478,   86,  478,  370,  370,   86,  370,   86,
    996       370,  372,  372,  372,  372,  372,   86,  372,  490,  490,
    997        86,   86,   86,  490,  492,  492,   86,  600,  598,  492,
    998       494,  494,  596,  594,  592,  494,  382,  382,  496,  496,
    999       590,  489,  588,  496,  384,  384,  498,  498,  588,  578,
    1000       576,  498,  386,  386,  500,  500,  470,  470,  574,  500,
    1001 
    1002       388,  388,   85,  572,  570,   85,   85,   85,   85,   85,
    1003        85,  455,  455,  455,  455,  455,  455,  455,  455,  455,
    1004       455,  455,  455,  563,  563,  568,  566,  564,  563,  456,
    1005       456,  565,  565,   86,   86,   86,  565,  458,  458,  567,
    1006       567,   86,   86,   86,  567,  460,  460,  569,  569,   86,
    1007        86,  501,  569,  462,  462,  571,  571,  499,  497,  495,
    1008       571,  465,  465,  573,  573,  493,  491,  474,  573,  467,
    1009       467,  469,  469,  472,  353,  353,  469,  575,  575,  470,
    1010       468,  466,  575,  471,  471,  577,  577,  463,  461,  459,
    1011       577,  473,  473,  478,  478,  457,  478,   86,  478,  372,
    1012 
    1013       372,   86,   86,  390,  372,  589,  589,  389,  387,  385,
    1014       589,  490,  490,  591,  591,  383,  265,  260,  591,  492,
    1015       492,  593,  593,  259,  379,  379,  593,  494,  494,  595,
    1016       595,  247,  369,  369,  595,  496,  496,  597,  597,  235,
    1017       364,  360,  597,  498,  498,  599,  599,  358,  356,  352,
    1018       599,  500,  500,   85,  351,  349,   85,   85,   85,   85,
    1019        85,   85,  652,  652,  652,  652,  652,  652,  652,  652,
    1020       652,  652,  652,  652,  654,  654,  347,  343,  341,  654,
    1021       563,  563,  656,  656,  202,  198,   86,  656,  565,  565,
    1022       658,  658,  272,  271,  269,  658,  567,  567,  660,  660,
    1023 
    1024       265,  260,  263,  660,  569,  569,  662,  662,  260,  258,
    1025       257,  662,  571,  571,  664,  664,  256,  235,  229,  664,
    1026       573,  573,  666,  666,   84,   84,   86,  666,  575,  575,
    1027        85,   85,  202,  200,   84,   85,  577,  577,  478,  478,
    1028       140,  121,  116,  478,  672,  672,   86,  850,   69,  672,
    1029       589,  589,  674,  674,   69,  850,  850,  674,  591,  591,
    1030       676,  676,  850,  850,  850,  676,  593,  593,  139,  139,
    1031       850,  850,  850,  139,  595,  595,  679,  679,  597,  597,
    1032        85,  850,  850,   85,   85,   85,   85,   85,   85,  599,
    1033       599,  652,  652,  652,  652,  652,  652,  652,  652,  652,
    1034 
    1035       652,  652,  652,  718,  718,  850,  850,  850,  718,  654,
    1036       654,  201,  201,  850,  850,  850,  201,  656,  656,  721,
    1037       721,  658,  658,  201,  850,  850,  201,  201,  201,  201,
    1038       201,  201,  660,  660,  722,  722,  662,  662,  664,  664,
    1039       723,  723,  666,  666,   85,   85,  725,  725,  850,  850,
    1040       850,  725,  672,  672,  264,  264,  850,  850,  850,  264,
    1041       674,  674,  728,  728,  676,  676,  139,  139,  729,  729,
    1042       850,  850,  850,  729,   85,  850,  850,   85,   85,   85,
    1043        85,   85,   85,  761,  761,  718,  718,  762,  762,  850,
    1044       850,  850,  762,  764,  764,  850,  850,  850,  764,  766,
    1045 
    1046       766,  850,  850,  850,  766,  768,  768,  769,  769,  850,
    1047       850,  850,  769,  771,  771,  850,  850,  850,  771,  791,
    1048       791,  850,  850,  850,  791,  793,  793,  850,  850,  850,
    1049       793,  795,  795,  850,  850,  850,  795,  797,  797,  850,
    1050       850,  850,  797,  799,  799,  850,  850,  850,  799,  801,
    1051       801,  850,  850,  850,  801,  599,  599,  850,  850,  850,
    1052       599,  819,  819,  850,  850,  850,  819,  660,  660,  850,
    1053       850,  850,  660,  664,  664,  850,  850,  850,  664,   85,
    1054        85,  850,  850,  850,   85,  824,  824,  850,  850,  850,
    1055       824,  139,  139,  850,  850,  850,  139,  201,  201,  850,
    1056 
    1057       850,  850,  201,   11,  850,  850,  850,  850,  850,  850,
    1058       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1059       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1060       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1061       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1062       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1063       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1064       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1065       850,  850,  850,  850,  850,  850,  850,  850,  850
     780       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
     781       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
     782       78,  122,  123,   89,   86,   78,   78,  608,   75,   75,
     783       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
     784
     785       82,   81,   90,   92,  158,  144,   86,   97,   94,   98,
     786       98,   98,   98,   98,   98,   86,   86,   93,   99,   84,
     787       95,   96,   84,  100,  173,  117,   76,   76,   76,   76,
     788      141,  145,   86,  101,  102,  142,  103,  103,  103,  103,
     789      104,  104,  118,   86,  119,  120,  256,   86,  257,   86,
     790      176,   86,  159,  105,  190,   86,  177,  106,  162,  160,
     791      178,  201,  107,  108,  156,  161,  157,  163,  109,   86,
     792      165,  164,  166,   86,  105,   86,  143,  225,   86,  174,
     793      110,  167,  243,  251,   86,   86,  175,  202,  107,   86,
     794      189,  108,  102,  188,  111,  111,  111,  111,  111,  111,
     795
     796      245,  183,  241,  226,  191,  244,  252,  242,  256,  184,
     797      257,  105,  147,  148,  149,  112,  185,   86,  150,  151,
     798      113,  152,   86,  153,  154,   86,  114,  168,   86,  179,
     799      180,  155,  105,  242,  247,  169,  264,  170,  115,  181,
     800      171,  256,  182,  257,  172,  141,  113,  124,  249,   86,
     801      142,  125,  126,  250,  127,  825,  128,  129,  256,  130,
     802      257,  131,  265,  186,   79,   80,   81,   81,   81,   79,
     803      132,  133,  134,  192,   80,   81,   81,   81,  192,  250,
     804       86,  193,   81,   80,   81,   81,   81,   81,   86,  253,
     805      135,  143,  278,  136,   81,   80,   82,   82,   82,   81,
     806
     807      258,  195,  196,  258,   86,  187,  195,  235,  235,  235,
     808      235,  256,   86,  257,  256,  256,  257,  257,  416,  825,
     809      137,  138,  197,  197,  197,  197,  197,  197,  204,  205,
     810      256,  260,  257,  204,  825,  206,  238,   86,  238,  236,
     811      206,  239,  239,  239,  239,  239,  239,   86,  825,  207,
     812      207,  207,  207,  248,  242,  259,  256,  306,  257,  250,
     813      206,  825,  825,  102,  296,  104,  104,  104,  104,  104,
     814      104,   86,  241,  240,   86,  208,  825,  249,  206,  256,
     815      242,  257,  105,  206,  206,  250,  270,  206,  206,  256,
     816       86,  257,  272,  271,  141,  206,   86,  237,  206,  142,
     817
     818      206,  209,  206,  105,  210,  212,   86,   86,  273,  213,
     819      214,   86,  275,   86,  215,  216,  274,  217,   86,  218,
     820       86,   86,   86,   86,  276,  825,   86,  291,  219,  220,
     821      221,   86,  297,  277,   86,  290,  289,   86,   86,  279,
     822       86,  280,  300,  281,  282,   86,  298,  283,  222,  284,
     823      294,  223,  292,  293,  285,  286,  287,   86,  288,   86,
     824       86,   86,  302,  295,   86,  299,  347,   86,  348,   86,
     825       86,   86,  303,   86,  312,  825,  304,   86,  305,  224,
     826      228,  228,  228,  228,  228,  228,  309,  301,  307,  308,
     827      311,   86,   86,  310,   86,  316,  319,  229,  230,   86,
     828
     829       86,  230,   86,  313,   86,  317,  141,  333,   86,  360,
     830      825,  320,  231,  314,  315,  321,   86,  386,  229,  230,
     831      322,  330,  318,   86,  230,   98,   98,   98,   98,   98,
     832       98,  323,   86,  334,   86,  324,  326,  347,  347,  348,
     833      348,  363,  229,  230,  327,  328,  230,  329,   86,   86,
     834      204,  205,  325,  390,  348,  204,  347,  234,  348,  545,
     835      195,  196,   86,  229,  230,  195,  347,  363,  348,  230,
     836      192,   80,   81,   81,   81,  192,  349,  347,  193,  348,
     837      373,  197,  197,  197,  197,  197,  197,  195,  196,  405,
     838       86,  348,  195,  331,  196,  347,  825,  348,  331,  403,
     839
     840      332,  339,  339,  339,  339,  347,  373,  348,  197,  197,
     841      197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
     842      347,  350,  348,  347,  347,  348,  348,  104,  104,  104,
     843      104,  104,  104,  340,  228,  228,  228,  228,  228,  228,
     844      356,  256,  356,  257,  105,  357,  357,  357,  357,  357,
     845      357,  229,  230,  229,  230,  230,  256,  230,  257,  248,
     846       86,   86,   86,   86,   86,  105,  231,  392,  375,  402,
     847      630,   86,  229,  230,  229,  230,  385,  358,  230,  387,
     848      230,  239,  239,  239,  239,  239,  239,  361,  361,  361,
     849      361,  361,  361,  238,  376,  238,   86,  398,  239,  239,
     850
     851      239,  239,  239,  239,  366,  230,  813,  825,  230,  104,
     852      104,  104,  104,  104,  104,   86,  391,   86,   86,  362,
     853      111,  111,  111,  111,  111,  111,  230,  368,   86,  369,
     854      394,  230,  370,  388,   86,  389,  395,  396,  371,   86,
     855       86,  248,   86,   86,   86,   86,   86,  408,  393,  399,
     856      372,   86,  253,  404,  369,  409,   86,  397,  370,  400,
     857      401,   86,  406,  407,   86,   86,   86,   86,  410,   86,
     858      415,  411,   86,   86,  412,  418,   86,   86,  422,   86,
     859       86,  420,  423,  419,  424,  413,  414,   86,  417,   86,
     860       86,  421,   86,   86,   86,   86,   86,   86,   86,  426,
     861
     862       86,  425,  428,  429,   86,  427,   86,  431,  430,  436,
     863       86,   86,  432,  141,  435,   86,  434,   86,  433,  441,
     864      437,   86,   86,   86,   86,   86,  445,  438,  439,  440,
     865      443,  444,  196,  442,  331,  196,  494,  446,  194,  331,
     866      495,  332,  206,  206,  206,  206,  339,  339,  339,  339,
     867      347,  347,  348,  348,   86,  825,   86,  357,  357,  357,
     868      357,  357,  357,  467,  467,  467,  467,  467,  467,  479,
     869      356,   86,  356,  497,  456,  357,  357,  357,  357,  357,
     870      357,  230,   86,   86,  230,  228,  228,  228,  228,  228,
     871      228,  498,  480,  501,  499,  468,  235,  235,  235,  235,
     872
     873      104,  104,  230,   86,  825,  471,  471,  230,  361,  361,
     874      361,  361,  361,  361,  472,  473,  475,  359,  361,  361,
     875      361,  361,  361,  361,  514,   86,  230,   86,  360,  230,
     876      471,  471,  474,  366,  474,   86,  230,  475,   86,  230,
     877      362,  504,  475,   86,  500,   86,   86,  230,  510,  505,
     878      469,  825,  230,  496,  502,  812,  368,  230,  369,  503,
     879       86,  370,  230,  475,  476,  825,  476,  371,   86,  477,
     880      477,  477,  477,  477,  477,   86,  506,  507,   86,  372,
     881       86,   86,   86,  369,  513,   86,  509,  370,  368,   86,
     882      369,   86,  515,  370,   86,  511,  518,  508,   86,  481,
     883
     884       86,  478,  512,   86,  516,   86,  517,   86,   86,   86,
     885      519,  372,  524,   86,  522,  369,  521,  526,  523,  370,
     886       86,  520,  525,  527,   86,   86,   86,   86,  529,   86,
     887       86,  528,   86,   86,   86,  533,   86,   86,   86,  531,
     888       86,  540,  530,   86,  534,  532,   86,  543,   86,  549,
     889       86,  536,  535,  537,  538,  541,  542,  544,  539,   86,
     890       86,   86,  196,  548,  600,  471,  471,  546,  552,  551,
     891      550,  206,  206,  206,  206,  472,   86,  547,  467,  467,
     892      467,  467,  467,  467,  467,  467,  467,  467,  467,  467,
     893      471,  471,  574,  591,  471,   86,  230,   86,   86,  230,
     894
     895       86,   86,  230,  573,   86,  230,   86,   86,  592,   86,
     896      468,  595,  593,   86,  597,   86,  569,  230,  574,  471,
     897      594,   86,  230,  230,  599,  602,  596,  601,  230,  361,
     898      361,  361,  361,  361,  361,  570,  603,  570,  611,   86,
     899      571,  571,  571,  571,  571,  571,  477,  477,  477,  477,
     900      477,  477,  575,  575,  575,  575,  575,  575,  476,   86,
     901      476,  469,   86,  477,  477,  477,  477,  477,  477,   86,
     902      576,  604,  572,  576,  598,   86,   86,   86,   86,   86,
     903      605,  610,   86,   86,  577,   86,   86,  606,  609,   86,
     904      607,  576,  612,   86,  613,  614,  576,   86,   86,  616,
     905
     906      617,   86,  618,   86,  615,   86,   86,   86,   86,   86,
     907      620,  623,   86,   86,  619,   86,  621,  624,  622,   86,
     908      627,  625,   86,  629,   86,   86,  628,  626,   86,  631,
     909       86,  633,   86,  634,   86,  632,   86,   86,  635,  668,
     910       86,  673,  636,  637,  467,  467,  467,  467,  467,  467,
     911      571,  571,  571,  571,  571,  571,  655,  655,  655,  655,
     912      655,  655,  570,  672,  570,   86,   86,  571,  571,  571,
     913      571,  571,  571,   86,  576,  669,  569,  576,  575,  575,
     914      575,  575,  575,  575,   86,  686,  670,   86,  656,   86,
     915      676,   86,   86,   86,   86,  576,  576,  674,  666,  576,
     916
     917      576,  671,  575,  575,  575,  575,  575,  575,  675,  678,
     918      577,  667,   86,   86,  679,   86,   86,  576,   86,  682,
     919      576,  684,  576,  576,   86,  677,   86,   86,   86,   86,
     920      680,   86,   86,   86,  657,  683,  687,  681,   86,  685,
     921       86,  576,   86,   86,  688,   86,  576,   86,   86,  697,
     922      689,  690,  693,  698,  691,  692,  696,  695,   86,   86,
     923      700,   86,   86,   86,   86,  694,  720,  699,  655,  655,
     924      655,  655,  655,  655,  655,  655,  655,  655,  655,  655,
     925      714,   86,  719,   86,   86,  726,  576,  716,   86,  576,
     926      717,  715,  576,  718,   86,  576,   86,  721,   86,  727,
     927
     928      656,   86,  722,  730,  723,  724,  707,  576,   86,   86,
     929      729,  725,  576,  576,   86,   86,  766,  728,  576,  575,
     930      575,  575,  575,  575,  575,   86,   86,   86,   86,  731,
     931       86,   86,   86,   86,   86,  738,   86,   86,  732,  733,
     932      734,   86,  736,   86,   86,  735,  741,   86,   86,  740,
     933       86,  657,   86,   86,  758,  756,   86,  737,  739,  655,
     934      655,  655,  655,  655,  655,  755,  759,  754,  757,   86,
     935       86,  763,  761,   86,   86,   86,  764,  765,  760,   86,
     936       86,   86,  767,  762,  768,   86,   86,   86,  790,   86,
     937      769,  707,  786,   86,   86,   86,  788,   86,   86,   86,
     938
     939      791,   86,  793,   86,  785,   86,  784,  783,  794,  787,
     940      795,   86,  789,   86,   86,   86,   86,  792,  805,  806,
     941      825,  825,   86,  807,  804,  808,   86,   86,   86,  810,
     942      811,   86,  809,   86,   86,   86,  815,  814,  816,   86,
     943       86,   86,  817,  818,  819,   86,   86,   86,  822,  821,
     944      823,  803,  825,  820,  802,  825,  800,  825,  799,  825,
     945      798,  825,  797,   86,   86,   86,  825,  782,  824,   68,
     946       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
     947       68,   74,   74,   74,   74,   74,   74,   74,   74,   74,
     948       74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
     949
     950       77,   77,   77,   77,   77,   85,  825,  781,   85,   85,
     951       85,   85,   85,   85,  139,  779,  825,  777,  139,  139,
     952      139,  139,  139,  194,  194,  194,  194,  194,  194,  194,
     953      194,  194,  194,  194,  194,  199,  825,  775,  199,  199,
     954      199,  199,  199,  199,  203,  825,  203,  203,  773,  203,
     955      203,  203,  203,  203,  771,  203,  211,   86,   86,  211,
     956      211,  211,  211,  211,  211,  211,   86,  211,  232,  232,
     957      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
     958      246,  246,  246,   86,   86,   86,  246,  262,   86,   86,
     959      262,  262,  262,  262,  262,  262,  266,  266,   86,   86,
     960
     961       86,  266,  268,  268,   86,  825,  753,  268,  335,  335,
     962      751,  825,  825,  335,  337,  337,  748,  746,  744,  337,
     963      341,  341,  825,   86,   86,  341,  343,  343,   86,   86,
     964       86,  343,  345,  345,   86,   86,  713,  345,  352,  352,
     965      710,  709,  200,  352,  354,  354,  703,  702,  639,  354,
     966      232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
     967      232,  232,  365,  365,  367,  367,  367,  367,  367,   86,
     968      367,  246,  246,  246,  377,  377,   86,   86,   86,  377,
     969      379,  379,   86,   86,   86,  379,  381,  381,   86,   86,
     970       86,  381,  266,  266,  383,  383,   86,   86,   86,  383,
     971
     972      268,  268,   85,   86,  664,   85,   85,   85,   85,   85,
     973       85,  194,  194,  194,  194,  194,  194,  194,  194,  194,
     974      194,  194,  194,  447,  447,  447,  447,  447,  447,  447,
     975      447,  447,  447,  447,  447,  448,  448,  663,  661,  659,
     976      448,  450,  450,  573,  654,  653,  450,  452,  452,  651,
     977      649,  647,  452,  335,  335,  454,  454,  645,  643,  641,
     978      454,  337,  337,  457,  457,  639,   86,   86,  457,  341,
     979      341,  459,  459,   86,   86,   86,  459,  343,  343,  461,
     980      461,   86,   86,   86,  461,  345,  345,  463,  463,   86,
     981       86,   86,  463,  352,  352,  465,  465,  590,  588,  586,
     982
     983      465,  354,  354,  470,  470,  584,  470,  582,  470,  365,
     984      365,  580,  365,  481,  365,  367,  367,  367,  367,  367,
     985      578,  367,  482,  482,  578,  568,  566,  482,  484,  484,
     986      462,  462,  564,  484,  486,  486,  562,  560,  558,  486,
     987      377,  377,  488,  488,  556,  554,   86,  488,  379,  379,
     988      490,  490,   86,   86,   86,  490,  381,  381,  492,  492,
     989       86,   86,   86,  492,  383,  383,   85,   86,  493,   85,
     990       85,   85,   85,   85,   85,  447,  447,  447,  447,  447,
     991      447,  447,  447,  447,  447,  447,  447,  553,  553,  491,
     992      489,  487,  553,  448,  448,  555,  555,  485,  483,  466,
     993
     994      555,  450,  450,  557,  557,  464,  348,  348,  557,  452,
     995      452,  559,  559,  462,  460,  458,  559,  454,  454,  561,
     996      561,  455,  453,  451,  561,  457,  457,  563,  563,  449,
     997       86,   86,  563,  459,  459,  461,  461,   86,  384,  382,
     998      461,  565,  565,  380,  378,  263,  565,  463,  463,  567,
     999      567,  258,  257,  374,  567,  465,  465,  470,  470,  374,
     1000      470,  245,  470,  367,  367,  364,  364,  233,  367,  579,
     1001      579,  359,  355,  353,  579,  482,  482,  581,  581,  351,
     1002      347,  346,  581,  484,  484,  583,  583,  344,  342,  338,
     1003      583,  486,  486,  585,  585,  336,  200,  196,  585,  488,
     1004
     1005      488,  587,  587,   86,  269,  267,  587,  490,  490,  589,
     1006      589,  263,  258,  261,  589,  492,  492,   85,  258,  256,
     1007       85,   85,   85,   85,   85,   85,  638,  638,  638,  638,
     1008      638,  638,  638,  638,  638,  638,  638,  638,  640,  640,
     1009      255,  254,  233,  640,  553,  553,  642,  642,  227,   84,
     1010       84,  642,  555,  555,  644,  644,   86,  200,  198,  644,
     1011      557,  557,  646,  646,   84,  146,  140,  646,  559,  559,
     1012      648,  648,  121,  116,   86,  648,  561,  561,  650,  650,
     1013      825,   69,   69,  650,  563,  563,  652,  652,  825,  825,
     1014      825,  652,  565,  565,   85,   85,  825,  825,  825,   85,
     1015
     1016      567,  567,  470,  470,  825,  825,  825,  470,  658,  658,
     1017      825,  825,  825,  658,  579,  579,  660,  660,  825,  825,
     1018      825,  660,  581,  581,  662,  662,  825,  825,  825,  662,
     1019      583,  583,  139,  139,  825,  825,  825,  139,  585,  585,
     1020      665,  665,  587,  587,   85,  825,  825,   85,   85,   85,
     1021       85,   85,   85,  589,  589,  638,  638,  638,  638,  638,
     1022      638,  638,  638,  638,  638,  638,  638,  701,  701,  825,
     1023      825,  825,  701,  640,  640,  199,  199,  825,  825,  825,
     1024      199,  642,  642,  704,  704,  644,  644,  199,  825,  825,
     1025      199,  199,  199,  199,  199,  199,  646,  646,  705,  705,
     1026
     1027      648,  648,  650,  650,  706,  706,  652,  652,   85,   85,
     1028      708,  708,  825,  825,  825,  708,  658,  658,  262,  262,
     1029      825,  825,  825,  262,  660,  660,  711,  711,  662,  662,
     1030      139,  139,  712,  712,  825,  825,  825,  712,   85,  825,
     1031      825,   85,   85,   85,   85,   85,   85,  742,  742,  701,
     1032      701,  743,  743,  825,  825,  825,  743,  745,  745,  825,
     1033      825,  825,  745,  747,  747,  825,  825,  825,  747,  749,
     1034      749,  750,  750,  825,  825,  825,  750,  752,  752,  825,
     1035      825,  825,  752,  770,  770,  825,  825,  825,  770,  772,
     1036      772,  825,  825,  825,  772,  774,  774,  825,  825,  825,
     1037
     1038      774,  776,  776,  825,  825,  825,  776,  778,  778,  825,
     1039      825,  825,  778,  780,  780,  825,  825,  825,  780,  589,
     1040      589,  825,  825,  825,  589,  796,  796,  825,  825,  825,
     1041      796,  646,  646,  825,  825,  825,  646,  650,  650,  825,
     1042      825,  825,  650,   85,   85,  825,  825,  825,   85,  801,
     1043      801,  825,  825,  825,  801,  139,  139,  825,  825,  825,
     1044      139,  199,  199,  825,  825,  825,  199,   11,  825,  825,
     1045      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1046      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1047      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1048
     1049      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1050      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1051      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1052      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1053      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1054      825,  825
    10661055    } ;
    10671056
    1068 static yyconst flex_int16_t yy_chk[2690] =
     1057static yyconst flex_int16_t yy_chk[2653] =
    10691058    {   0,
    10701059        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    10761065        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    10771066        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    1078         1,    1,    1,    1,    1,    2,   16,   24,   16,   24,
    1079         2,   19,   19,    2,    5,    5,    5,    5,    5,    5,
     1067        1,    1,    1,    1,    2,   16,   24,   16,   24,    2,
     1068       19,   19,    2,    5,    5,    5,    5,    5,    5,    5,
    10801069
    10811070        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
     
    10861075        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    10871076        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    1088         5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1089         8,    9,   10,   37,   37,   20,   48,    9,   10,   53,
    1090         7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    1091 
    1092        15,   15,   15,   15,   20,   25,   48,   53,   42,   28,
    1093        27,   28,   28,   28,   28,   28,   28,   56,  849,   25,
    1094        29,   25,   27,   27,   27,   29,   56,   35,   40,    7,
    1095         8,    9,   10,   40,   42,   29,   30,   47,   30,   30,
    1096        30,   30,   30,   30,   35,   61,   35,   35,   44,  108,
    1097        44,  848,  847,   72,   86,   30,   63,   61,   47,   30,
    1098        47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    1099        45,   30,   40,   45,   45,   40,   49,   30,   45,   72,
    1100        86,   45,   49,   30,  108,  296,  107,   55,  846,   51,
    1101        60,   30,  296,  114,   30,   31,  113,   31,   31,   31,
    1102 
    1103        31,   31,   31,   50,   51,   55,   51,   63,   60,   54,
    1104       107,   55,   50,  109,   31,   51,   50,  106,   31,   54,
    1105       113,   50,   52,  106,   31,   50,   54,   52,  114,  125,
    1106        31,  125,  112,  173,  149,   52,   31,   52,  112,  844,
    1107        52,   59,   31,  109,   52,  126,   59,  126,  109,  106,
    1108        31,   38,  149,  173,  110,   38,   38,   57,   38,   59,
    1109        38,   38,  148,   38,  112,   38,   58,  302,  140,   57,
    1110        57,  109,  110,  302,   38,   38,   38,  148,   58,   57,
    1111       110,  151,   57,  115,  148,   59,   58,  128,   59,  128,
    1112       151,   67,   67,   58,  140,   38,   67,  131,   38,  131,
    1113 
    1114       163,  115,   59,   66,   66,   66,   66,   66,   66,  115,
    1115       163,   66,   67,   67,   67,   67,   67,   67,   79,   79,
    1116        79,   79,   79,   79,  843,   38,   38,   76,   76,  150,
    1117       132,  132,   76,  132,   76,  103,  103,  103,  103,   76,
    1118        81,   81,   81,   81,   81,   81,  129,  150,   76,   76,
    1119        76,   76,   82,   82,   82,   82,   82,   82,  130,   76,
    1120       129,  152,  129,  103,  133,  136,  133,  136,  103,  138,
    1121       130,  138,  130,  155,  154,   76,  153,  152,   76,  134,
    1122       134,  134,  162,   76,   76,  155,  158,   76,   76,  169,
    1123       157,  103,  143,  165,  153,   76,  154,  143,   76,  162,
    1124 
    1125        76,   76,   76,  159,   76,   84,  157,  838,  158,   84,
    1126        84,  169,  159,  164,   84,   84,  165,   84,  104,   84,
    1127       104,  104,  104,  104,  104,  104,  160,  161,   84,   84,
    1128        84,  166,  161,  105,  164,  105,  143,  104,  105,  105,
    1129       105,  105,  105,  105,  171,  161,  167,  160,  160,   84,
    1130       184,  168,   84,  104,  170,  156,  168,  330,  166,  104,
    1131       156,  171,  156,  184,  156,  156,  174,  167,  156,  170,
    1132       156,  105,  172,  175,  168,  156,  156,  156,  186,  156,
    1133        84,   98,   98,   98,   98,   98,   98,  178,  177,  179,
    1134       172,  181,  185,  174,  179,  175,  180,  182,   98,   98,
    1135 
    1136       191,  330,   98,  177,  178,  186,  188,  180,  182,  181,
    1137       177,  202,  185,  191,   98,  187,  238,  180,  180,  183,
    1138        98,   98,  189,  190,  183,  182,   98,  102,  102,  102,
    1139       102,  102,  102,  837,  187,  189,  190,  202,  190,  183,
    1140       409,  206,  206,  189,  102,  102,  206,  215,  102,  215,
    1141       188,  238,  243,  188,  194,  194,  194,  194,  194,  194,
    1142       102,  409,  194,  195,  195,  836,  102,  102,  195,  197,
    1143       197,  216,  102,  216,  197,  199,  199,  217,  243,  217,
    1144       199,  220,  199,  220,  195,  195,  195,  195,  195,  195,
    1145       197,  197,  197,  197,  197,  197,  199,  199,  199,  199,
    1146 
    1147       199,  199,  209,  209,  209,  209,  218,  219,  221,  221,
    1148       222,  221,  222,  223,  223,  223,  225,  551,  225,  219,
    1149       218,  219,  218,  226,  231,  226,  231,  551,  276,  231,
    1150       231,  231,  231,  231,  231,  209,  230,  230,  230,  230,
    1151       230,  230,  236,  236,  276,  251,  236,  240,  240,  240,
    1152       240,  240,  240,  230,  230,  273,  261,  230,  261,  262,
    1153       274,  262,  231,  277,  236,  236,  316,  305,  273,  230,
    1154       236,  251,  265,  305,  278,  230,  230,  316,  274,  278,
    1155       277,  230,  239,  239,  239,  239,  239,  239,  248,  241,
    1156       241,  241,  241,  241,  241,  242,  275,  242,  265,  239,
    1157 
    1158       242,  242,  242,  242,  242,  242,  279,  241,  281,  283,
    1159       241,  248,  297,  248,  275,  239,  282,  248,  285,  280,
    1160       321,  239,  241,  248,  280,  286,  279,  283,  281,  241,
    1161       284,  282,  297,  285,  241,  248,  290,  282,  282,  248,
    1162       321,  286,  286,  248,  250,  250,  250,  250,  250,  250,
    1163       255,  255,  255,  255,  255,  255,  284,  287,  288,  289,
    1164       291,  293,  287,  290,  294,  295,  298,  288,  299,  294,
    1165       300,  301,  289,  303,  295,  300,  301,  250,  291,  293,
    1166       306,  313,  304,  255,  298,  307,  308,  312,  309,  299,
    1167       299,  304,  303,  309,  307,  310,  306,  311,  314,  313,
    1168 
    1169       310,  308,  311,  317,  318,  319,  312,  320,  322,  324,
    1170       325,  314,  323,  326,  327,  329,  331,  318,  317,  311,
    1171       333,  323,  835,  332,  329,  322,  335,  319,  333,  393,
    1172       320,  324,  327,  325,  331,  326,  332,  334,  336,  336,
    1173       337,  335,  334,  336,  393,  336,  337,  344,  344,  344,
    1174       344,  345,  345,  345,  345,  354,  355,  354,  355,  361,
    1175       361,  361,  361,  361,  361,  362,  362,  362,  362,  362,
    1176       362,  364,  364,  364,  364,  364,  364,  375,  392,  401,
    1177       344,  398,  363,  362,  363,  391,  362,  363,  363,  363,
    1178       363,  363,  363,  395,  392,  401,  391,  370,  362,  397,
    1179 
    1180       373,  375,  395,  398,  364,  362,  373,  370,  397,  412,
    1181       362,  365,  365,  365,  365,  365,  365,  366,  366,  366,
    1182       366,  366,  366,  370,  412,  367,  367,  367,  367,  367,
    1183       367,  372,  373,  377,  394,  366,  399,  371,  366,  402,
    1184       550,  396,  400,  367,  365,  399,  367,  371,  550,  404,
    1185       366,  377,  396,  394,  372,  400,  372,  366,  367,  377,
    1186       372,  402,  366,  371,  376,  367,  372,  374,  403,  374,
    1187       367,  404,  374,  374,  374,  374,  374,  374,  372,  405,
    1188       407,  410,  372,  406,  403,  403,  372,  376,  406,  376,
    1189       408,  411,  410,  376,  414,  407,  408,  405,  419,  376,
    1190 
    1191       416,  418,  407,  421,  420,  374,  423,  424,  414,  429,
    1192       411,  376,  416,  420,  426,  376,  424,  420,  422,  376,
    1193       419,  423,  418,  428,  422,  430,  421,  431,  433,  426,
    1194       432,  429,  434,  436,  438,  439,  444,  443,  440,  441,
    1195       430,  434,  442,  428,  446,  432,  443,  445,  433,  431,
    1196       436,  446,  448,  449,  444,  447,  439,  438,  440,  441,
    1197       445,  449,  447,  450,  442,  451,  453,  455,  527,  454,
    1198       502,  449,  831,  455,  527,  478,  451,  448,  454,  481,
    1199       450,  464,  464,  464,  464,  478,  482,  502,  453,  475,
    1200       475,  475,  475,  475,  475,  476,  476,  476,  476,  476,
    1201 
    1202       476,  478,  503,  505,  480,  481,  506,  475,  507,  508,
    1203       475,  509,  482,  476,  480,  503,  476,  513,  505,  829,
    1204       510,  507,  475,  634,  509,  510,  506,  511,  476,  475,
    1205       480,  508,  514,  512,  475,  476,  512,  513,  511,  516,
    1206       476,  477,  477,  477,  477,  477,  477,  479,  516,  479,
    1207       634,  514,  479,  479,  479,  479,  479,  479,  484,  484,
    1208       484,  484,  484,  484,  518,  485,  485,  485,  485,  485,
    1209       485,  486,  515,  486,  477,  518,  486,  486,  486,  486,
    1210       486,  486,  517,  485,  519,  479,  485,  517,  520,  522,
    1211       521,  523,  524,  515,  528,  525,  530,  519,  485,  521,
    1212 
    1213       525,  524,  531,  528,  534,  485,  532,  536,  523,  533,
    1214       485,  522,  537,  534,  538,  539,  536,  520,  541,  531,
    1215       542,  532,  530,  544,  533,  542,  538,  545,  546,  537,
    1216       539,  547,  544,  541,  548,  552,  545,  553,  556,  555,
    1217       554,  559,  552,  557,  547,  555,  603,  556,  560,  602,
    1218       546,  548,  554,  557,  691,  603,  602,  605,  559,  553,
    1219       691,  560,  579,  579,  579,  579,  579,  579,  580,  580,
    1220       580,  580,  580,  580,  605,  581,  581,  581,  581,  581,
    1221       581,  582,  606,  582,  604,  607,  582,  582,  582,  582,
    1222       582,  582,  607,  581,  611,  579,  581,  604,  585,  585,
    1223 
    1224       585,  585,  585,  585,  609,  606,  826,  611,  581,  587,
    1225       587,  587,  587,  587,  587,  581,  585,  601,  608,  585,
    1226       581,  609,  601,  613,  612,  610,  608,  587,  610,  614,
    1227       587,  585,  618,  615,  616,  601,  617,  616,  585,  612,
    1228       622,  619,  587,  585,  620,  613,  614,  623,  621,  587,
    1229       624,  626,  627,  617,  587,  615,  619,  621,  622,  624,
    1230       618,  628,  629,  636,  620,  633,  680,  639,  648,  623,
    1231       640,  629,  647,  626,  651,  627,  639,  640,  648,  650,
    1232       636,  647,  825,  628,  683,  633,  694,  680,  650,  651,
    1233       669,  669,  669,  669,  669,  669,  670,  670,  670,  670,
    1234 
    1235       670,  670,  681,  689,  685,  686,  684,  694,  669,  685,
    1236       683,  669,  681,  684,  670,  687,  688,  670,  687,  688,
    1237       695,  689,  692,  669,  693,  686,  698,  693,  737,  670,
    1238       669,  692,  701,  737,  696,  669,  670,  696,  700,  697,
    1239       701,  670,  671,  671,  671,  671,  671,  671,  697,  695,
    1240       699,  700,  698,  699,  702,  703,  704,  706,  709,  712,
    1241       713,  716,  714,  717,  702,  738,  706,  741,  703,  716,
    1242       735,  740,  717,  742,  736,  671,  742,  704,  744,  712,
    1243       738,  709,  713,  714,  724,  724,  724,  724,  724,  724,
    1244       735,  736,  739,  741,  740,  743,  746,  748,  749,  746,
    1245 
    1246       748,  750,  739,  752,  750,  749,  744,  751,  743,  753,
    1247       751,  758,  773,  776,  775,  778,  777,  724,  752,  777,
    1248       779,  782,  781,  779,  783,  786,  785,  783,  786,  788,
    1249       787,  776,  753,  787,  758,  775,  789,  778,  788,  773,
    1250       781,  790,  805,  806,  808,  810,  807,  782,  785,  807,
    1251       806,  809,  789,  808,  809,  813,  816,  790,  813,  816,
    1252       817,  818,  810,  805,  827,  830,  828,  839,  830,  817,
    1253       818,  828,  832,  827,  833,  832,  834,  833,  840,  834,
    1254       841,  842,  845,  841,  842,  824,  823,  839,  822,  821,
    1255       820,  819,  815,  840,  814,  812,  811,  804,  803,  802,
    1256 
    1257       801,  800,  799,  798,  845,  851,  851,  851,  851,  851,
    1258       851,  851,  851,  851,  851,  851,  851,  852,  852,  852,
    1259       852,  852,  852,  852,  852,  852,  852,  852,  852,  853,
    1260       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    1261       853,  854,  797,  796,  854,  854,  854,  854,  854,  854,
    1262       855,  795,  794,  793,  855,  855,  855,  855,  855,  856,
    1263       856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
    1264       856,  857,  792,  791,  857,  857,  857,  857,  857,  857,
    1265       858,  784,  858,  858,  780,  858,  858,  858,  858,  858,
    1266       774,  858,  859,  772,  771,  859,  859,  859,  859,  859,
    1267 
    1268       859,  859,  770,  859,  860,  860,  860,  860,  860,  860,
    1269       860,  860,  860,  860,  860,  860,  861,  861,  861,  769,
    1270       768,  767,  861,  862,  766,  765,  862,  862,  862,  862,
    1271       862,  862,  863,  863,  764,  763,  762,  863,  864,  864,
    1272       761,  760,  759,  864,  865,  865,  757,  756,  755,  865,
    1273       866,  866,  754,  747,  745,  866,  867,  867,  734,  733,
    1274       732,  867,  868,  868,  731,  730,  729,  868,  869,  869,
    1275       728,  727,  726,  869,  870,  870,  723,  722,  721,  870,
    1276       871,  871,  720,  715,  711,  871,  872,  872,  872,  872,
    1277       872,  872,  872,  872,  872,  872,  872,  872,  873,  873,
    1278 
    1279       874,  874,  874,  874,  874,  710,  874,  875,  875,  875,
    1280       876,  876,  708,  707,  705,  876,  877,  877,  690,  682,
    1281       679,  877,  878,  878,  674,  672,  660,  878,  879,  879,
    1282       880,  880,  656,  654,  652,  880,  881,  881,  882,  649,
    1283       646,  882,  882,  882,  882,  882,  882,  883,  883,  883,
    1284       883,  883,  883,  883,  883,  883,  883,  883,  883,  884,
    1285       884,  884,  884,  884,  884,  884,  884,  884,  884,  884,
    1286       884,  885,  885,  645,  644,  643,  885,  886,  886,  642,
    1287       641,  638,  886,  887,  887,  637,  635,  632,  887,  888,
    1288       888,  889,  889,  631,  630,  625,  889,  890,  890,  891,
    1289 
    1290       891,  599,  595,  593,  891,  892,  892,  893,  893,  591,
    1291       589,  583,  893,  894,  894,  895,  895,  577,  575,  573,
    1292       895,  896,  896,  897,  897,  571,  569,  567,  897,  898,
    1293       898,  899,  899,  565,  563,  562,  899,  900,  900,  901,
    1294       901,  561,  901,  558,  901,  902,  902,  549,  902,  543,
    1295       902,  903,  903,  903,  903,  903,  540,  903,  904,  904,
    1296       535,  529,  526,  904,  905,  905,  504,  500,  498,  905,
    1297       906,  906,  496,  494,  492,  906,  907,  907,  908,  908,
    1298       490,  489,  488,  908,  909,  909,  910,  910,  487,  473,
    1299       471,  910,  911,  911,  912,  912,  470,  469,  467,  912,
    1300 
    1301       913,  913,  914,  465,  462,  914,  914,  914,  914,  914,
    1302       914,  915,  915,  915,  915,  915,  915,  915,  915,  915,
    1303       915,  915,  915,  916,  916,  460,  458,  456,  916,  917,
    1304       917,  918,  918,  452,  437,  435,  918,  919,  919,  920,
    1305       920,  427,  425,  417,  920,  921,  921,  922,  922,  415,
    1306       413,  388,  922,  923,  923,  924,  924,  386,  384,  382,
    1307       924,  925,  925,  926,  926,  381,  380,  359,  926,  927,
    1308       927,  928,  928,  357,  356,  352,  928,  929,  929,  350,
    1309       348,  346,  929,  930,  930,  931,  931,  342,  340,  339,
    1310       931,  932,  932,  933,  933,  338,  933,  328,  933,  934,
    1311 
    1312       934,  315,  292,  272,  934,  935,  935,  270,  268,  267,
    1313       935,  936,  936,  937,  937,  266,  264,  263,  937,  938,
    1314       938,  939,  939,  258,  254,  253,  939,  940,  940,  941,
    1315       941,  249,  246,  245,  941,  942,  942,  943,  943,  234,
    1316       233,  228,  943,  944,  944,  945,  945,  227,  224,  214,
    1317       945,  946,  946,  947,  212,  211,  947,  947,  947,  947,
    1318       947,  947,  948,  948,  948,  948,  948,  948,  948,  948,
    1319       948,  948,  948,  948,  949,  949,  210,  204,  203,  949,
    1320       950,  950,  951,  951,  201,  196,  176,  951,  952,  952,
    1321       953,  953,  147,  145,  144,  953,  954,  954,  955,  955,
    1322 
    1323       139,  137,  135,  955,  956,  956,  957,  957,  127,  124,
    1324       123,  957,  958,  958,  959,  959,  119,  100,   97,  959,
    1325       960,  960,  961,  961,   94,   92,   85,  961,  962,  962,
    1326       963,  963,   71,   69,   65,  963,  964,  964,  965,  965,
    1327        39,   36,   33,  965,  966,  966,   18,   11,    4,  966,
    1328       967,  967,  968,  968,    3,    0,    0,  968,  969,  969,
    1329       970,  970,    0,    0,    0,  970,  971,  971,  972,  972,
    1330         0,    0,    0,  972,  973,  973,  974,  974,  975,  975,
    1331       976,    0,    0,  976,  976,  976,  976,  976,  976,  977,
    1332       977,  978,  978,  978,  978,  978,  978,  978,  978,  978,
    1333 
    1334       978,  978,  978,  979,  979,    0,    0,    0,  979,  980,
    1335       980,  981,  981,    0,    0,    0,  981,  982,  982,  983,
    1336       983,  984,  984,  985,    0,    0,  985,  985,  985,  985,
    1337       985,  985,  986,  986,  987,  987,  988,  988,  989,  989,
    1338       990,  990,  991,  991,  992,  992,  993,  993,    0,    0,
    1339         0,  993,  994,  994,  995,  995,    0,    0,    0,  995,
    1340       996,  996,  997,  997,  998,  998,  999,  999, 1000, 1000,
    1341         0,    0,    0, 1000, 1001,    0,    0, 1001, 1001, 1001,
    1342      1001, 1001, 1001, 1002, 1002, 1003, 1003, 1004, 1004,    0,
    1343         0,    0, 1004, 1005, 1005,    0,    0,    0, 1005, 1006,
    1344 
    1345      1006,    0,    0,    0, 1006, 1007, 1007, 1008, 1008,    0,
    1346         0,    0, 1008, 1009, 1009,    0,    0,    0, 1009, 1010,
    1347      1010,    0,    0,    0, 1010, 1011, 1011,    0,    0,    0,
    1348      1011, 1012, 1012,    0,    0,    0, 1012, 1013, 1013,    0,
    1349         0,    0, 1013, 1014, 1014,    0,    0,    0, 1014, 1015,
    1350      1015,    0,    0,    0, 1015, 1016, 1016,    0,    0,    0,
    1351      1016, 1017, 1017,    0,    0,    0, 1017, 1018, 1018,    0,
    1352         0,    0, 1018, 1019, 1019,    0,    0,    0, 1019, 1020,
    1353      1020,    0,    0,    0, 1020, 1021, 1021,    0,    0,    0,
    1354      1021, 1022, 1022,    0,    0,    0, 1022, 1023, 1023,    0,
    1355 
    1356         0,    0, 1023,  850,  850,  850,  850,  850,  850,  850,
    1357       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1358       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1359       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1360       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1361       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1362       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1363       850,  850,  850,  850,  850,  850,  850,  850,  850,  850,
    1364       850,  850,  850,  850,  850,  850,  850,  850,  850
     1077        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
     1078       10,   37,   37,   20,   48,    9,   10,  512,    7,    8,
     1079       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
     1080
     1081       15,   15,   20,   25,   48,   42,   53,   28,   27,   28,
     1082       28,   28,   28,   28,   28,  512,  824,   25,   29,   25,
     1083       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
     1084       40,   42,   55,   29,   30,   40,   30,   30,   30,   30,
     1085       30,   30,   35,   47,   35,   35,  125,   49,  125,   50,
     1086       55,   56,   49,   30,   63,   51,   55,   30,   50,   49,
     1087       56,   72,   30,   30,   47,   49,   47,   50,   30,   54,
     1088       51,   50,   51,   40,   30,   60,   40,   86,   61,   54,
     1089       30,   51,  107,  113,  823,  822,   54,   72,   30,   58,
     1090       61,   30,   31,   60,   31,   31,   31,   31,   31,   31,
     1091
     1092      108,   58,  106,   86,   63,  107,  113,  106,  126,   58,
     1093      126,   31,   45,   45,   45,   31,   58,   57,   45,   45,
     1094       31,   45,   52,   45,   45,  821,   31,   52,   45,   57,
     1095       57,   45,   31,  106,  108,   52,  140,   52,   31,   57,
     1096       52,  128,   57,  128,   52,   59,   31,   38,  112,  819,
     1097       59,   38,   38,  112,   38,  114,   38,   38,  131,   38,
     1098      131,   38,  140,   59,   79,   79,   79,   79,   79,   79,
     1099       38,   38,   38,   66,   66,   66,   66,   66,   66,  112,
     1100      154,   66,   81,   81,   81,   81,   81,   81,   59,  114,
     1101       38,   59,  154,   38,   82,   82,   82,   82,   82,   82,
     1102
     1103      129,   67,   67,  130,  818,   59,   67,  103,  103,  103,
     1104      103,  133,  298,  133,  129,  130,  129,  130,  298,  109,
     1105       38,   38,   67,   67,   67,   67,   67,   67,   76,   76,
     1106      134,  134,  134,   76,  103,   76,  105,  171,  105,  103,
     1107       76,  105,  105,  105,  105,  105,  105,  161,  109,   76,
     1108       76,   76,   76,  109,  110,  132,  132,  171,  132,  115,
     1109       76,  813,  103,  104,  161,  104,  104,  104,  104,  104,
     1110      104,  147,  110,  105,  148,   76,  109,  115,   76,  136,
     1111      110,  136,  104,   76,   76,  115,  147,   76,   76,  138,
     1112      149,  138,  148,  147,  143,   76,  151,  104,   76,  143,
     1113
     1114       76,   76,   76,  104,   76,   84,  152,  150,  149,   84,
     1115       84,  153,  151,  157,   84,   84,  150,   84,  158,   84,
     1116      156,  165,  162,  163,  152,  812,  808,  158,   84,   84,
     1117       84,  159,  162,  153,  155,  157,  156,  143,  164,  155,
     1118      167,  155,  165,  155,  155,  160,  163,  155,   84,  155,
     1119      160,   84,  159,  159,  155,  155,  155,  168,  155,  169,
     1120      170,  172,  167,  160,  166,  164,  213,  173,  213,  177,
     1121      806,  175,  168,  176,  177,  236,  169,  179,  170,   84,
     1122       98,   98,   98,   98,   98,   98,  175,  166,  172,  173,
     1123      176,  181,  178,  175,  180,  179,  181,   98,   98,  271,
     1124
     1125      183,   98,  182,  178,  184,  180,  186,  200,  189,  236,
     1126      803,  181,   98,  178,  178,  182,  185,  271,   98,   98,
     1127      183,  189,  180,  187,   98,  102,  102,  102,  102,  102,
     1128      102,  184,  188,  200,  440,  185,  187,  214,  215,  214,
     1129      215,  241,  102,  102,  187,  188,  102,  188,  275,  186,
     1130      204,  204,  186,  275,  217,  204,  218,  102,  218,  440,
     1131      193,  193,  287,  102,  102,  193,  217,  241,  217,  102,
     1132      192,  192,  192,  192,  192,  192,  219,  219,  192,  219,
     1133      249,  193,  193,  193,  193,  193,  193,  195,  195,  287,
     1134      285,  216,  195,  197,  197,  220,  802,  220,  197,  285,
     1135
     1136      197,  207,  207,  207,  207,  216,  249,  216,  195,  195,
     1137      195,  195,  195,  195,  197,  197,  197,  197,  197,  197,
     1138      221,  221,  221,  223,  224,  223,  224,  237,  237,  237,
     1139      237,  237,  237,  207,  228,  228,  228,  228,  228,  228,
     1140      229,  259,  229,  259,  237,  229,  229,  229,  229,  229,
     1141      229,  228,  228,  234,  234,  228,  260,  234,  260,  237,
     1142      541,  272,  277,  270,  284,  237,  228,  277,  263,  284,
     1143      541,  281,  228,  228,  234,  234,  270,  229,  228,  272,
     1144      234,  238,  238,  238,  238,  238,  238,  239,  239,  239,
     1145      239,  239,  239,  240,  263,  240,  276,  281,  240,  240,
     1146
     1147      240,  240,  240,  240,  246,  239,  801,  800,  239,  248,
     1148      248,  248,  248,  248,  248,  279,  276,  273,  274,  239,
     1149      253,  253,  253,  253,  253,  253,  239,  246,  278,  246,
     1150      279,  239,  246,  273,  282,  274,  279,  279,  246,  280,
     1151      286,  248,  291,  283,  288,  290,  292,  291,  278,  282,
     1152      246,  294,  253,  286,  246,  292,  295,  280,  246,  283,
     1153      283,  293,  288,  290,  296,  297,  300,  301,  293,  299,
     1154      297,  294,  302,  304,  295,  300,  303,  305,  304,  306,
     1155      307,  302,  305,  301,  306,  296,  296,  308,  299,  309,
     1156      314,  303,  311,  312,  313,  315,  316,  317,  319,  307,
     1157
     1158      318,  306,  309,  311,  320,  308,  321,  313,  312,  318,
     1159      324,  322,  314,  325,  317,  326,  316,  327,  315,  324,
     1160      319,  329,  330,  328,  386,  385,  329,  320,  321,  322,
     1161      327,  328,  332,  326,  331,  331,  385,  330,  332,  331,
     1162      386,  331,  339,  339,  339,  339,  340,  340,  340,  340,
     1163      349,  350,  349,  350,  388,  799,  325,  356,  356,  356,
     1164      356,  356,  356,  357,  357,  357,  357,  357,  357,  370,
     1165      358,  392,  358,  388,  339,  358,  358,  358,  358,  358,
     1166      358,  357,  389,  390,  357,  359,  359,  359,  359,  359,
     1167      359,  389,  370,  392,  390,  357,  360,  360,  360,  360,
     1168
     1169      360,  360,  357,  403,  798,  365,  366,  357,  361,  361,
     1170      361,  361,  361,  361,  365,  366,  372,  359,  362,  362,
     1171      362,  362,  362,  362,  403,  395,  361,  396,  360,  361,
     1172      365,  366,  368,  367,  372,  391,  362,  368,  387,  362,
     1173      361,  395,  372,  400,  391,  393,  394,  361,  400,  396,
     1174      362,  797,  361,  387,  393,  796,  367,  362,  367,  394,
     1175      397,  367,  362,  368,  369,  371,  369,  367,  399,  369,
     1176      369,  369,  369,  369,  369,  398,  397,  397,  402,  367,
     1177      401,  404,  408,  367,  402,  405,  399,  367,  371,  415,
     1178      371,  406,  404,  371,  413,  401,  408,  398,  410,  371,
     1179
     1180      412,  369,  401,  420,  405,  414,  406,  416,  417,  421,
     1181      410,  371,  415,  422,  414,  371,  413,  417,  414,  371,
     1182      423,  412,  416,  420,  424,  425,  426,  428,  422,  430,
     1183      431,  421,  435,  432,  433,  426,  434,  436,  443,  424,
     1184      438,  435,  423,  437,  428,  425,  442,  438,  445,  443,
     1185      439,  431,  430,  432,  433,  436,  437,  439,  434,  441,
     1186      446,  504,  447,  442,  504,  473,  470,  441,  447,  446,
     1187      445,  456,  456,  456,  456,  470,  494,  441,  467,  467,
     1188      467,  467,  467,  467,  468,  468,  468,  468,  468,  468,
     1189      473,  470,  474,  494,  472,  495,  467,  497,  499,  467,
     1190
     1191      498,  501,  468,  472,  500,  468,  506,  505,  495,  794,
     1192      467,  499,  497,  503,  501,  507,  468,  467,  474,  472,
     1193      498,  515,  467,  468,  503,  506,  500,  505,  468,  469,
     1194      469,  469,  469,  469,  469,  471,  507,  471,  515,  793,
     1195      471,  471,  471,  471,  471,  471,  476,  476,  476,  476,
     1196      476,  476,  477,  477,  477,  477,  477,  477,  478,  514,
     1197      478,  469,  508,  478,  478,  478,  478,  478,  478,  502,
     1198      477,  508,  471,  477,  502,  509,  510,  511,  522,  513,
     1199      509,  514,  523,  516,  477,  524,  520,  510,  513,  517,
     1200      511,  477,  516,  525,  517,  520,  477,  527,  528,  523,
     1201
     1202      524,  529,  525,  531,  522,  536,  532,  537,  534,  538,
     1203      528,  532,  535,  543,  527,  540,  529,  534,  531,  544,
     1204      537,  535,  542,  540,  546,  549,  538,  536,  547,  542,
     1205      550,  544,  592,  546,  597,  543,  791,  790,  547,  592,
     1206      596,  597,  549,  550,  569,  569,  569,  569,  569,  569,
     1207      570,  570,  570,  570,  570,  570,  571,  571,  571,  571,
     1208      571,  571,  572,  596,  572,  610,  593,  572,  572,  572,
     1209      572,  572,  572,  594,  571,  593,  569,  571,  575,  575,
     1210      575,  575,  575,  575,  595,  610,  594,  600,  571,  598,
     1211      600,  599,  603,  591,  602,  571,  575,  598,  591,  575,
     1212
     1213      571,  595,  577,  577,  577,  577,  577,  577,  599,  602,
     1214      575,  591,  601,  604,  603,  605,  606,  575,  607,  606,
     1215      577,  608,  575,  577,  609,  601,  612,  611,  613,  615,
     1216      604,  616,  620,  617,  577,  607,  611,  605,  621,  609,
     1217      623,  577,  627,  634,  612,  637,  577,  626,  608,  627,
     1218      613,  615,  620,  634,  616,  617,  626,  623,  636,  666,
     1219      637,  669,  672,  673,  680,  621,  673,  636,  655,  655,
     1220      655,  655,  655,  655,  656,  656,  656,  656,  656,  656,
     1221      666,  667,  672,  670,  675,  680,  655,  669,  671,  655,
     1222      670,  667,  656,  671,  674,  656,  678,  674,  677,  681,
     1223
     1224      655,  683,  675,  684,  677,  678,  656,  655,  679,  732,
     1225      683,  679,  655,  656,  682,  696,  732,  682,  656,  657,
     1226      657,  657,  657,  657,  657,  686,  685,  681,  684,  685,
     1227      688,  687,  689,  691,  693,  696,  697,  700,  686,  687,
     1228      688,  699,  691,  723,  722,  689,  700,  718,  719,  699,
     1229      720,  657,  724,  721,  722,  720,  783,  693,  697,  707,
     1230      707,  707,  707,  707,  707,  719,  723,  718,  721,  725,
     1231      726,  727,  725,  729,  731,  735,  729,  731,  724,  733,
     1232      754,  734,  733,  726,  734,  756,  757,  759,  763,  758,
     1233      735,  707,  758,  760,  762,  766,  760,  764,  727,  767,
     1234
     1235      764,  769,  767,  784,  757,  768,  756,  754,  768,  759,
     1236      769,  785,  762,  763,  787,  789,  786,  766,  785,  786,
     1237      782,  781,  788,  787,  784,  788,  792,  795,  804,  792,
     1238      795,  805,  789,  814,  815,  807,  805,  804,  807,  809,
     1239      810,  811,  809,  810,  811,  816,  820,  817,  816,  815,
     1240      817,  780,  779,  814,  778,  777,  776,  775,  774,  773,
     1241      772,  771,  770,  765,  761,  755,  753,  752,  820,  826,
     1242      826,  826,  826,  826,  826,  826,  826,  826,  826,  826,
     1243      826,  827,  827,  827,  827,  827,  827,  827,  827,  827,
     1244      827,  827,  827,  828,  828,  828,  828,  828,  828,  828,
     1245
     1246      828,  828,  828,  828,  828,  829,  751,  750,  829,  829,
     1247      829,  829,  829,  829,  830,  749,  748,  747,  830,  830,
     1248      830,  830,  830,  831,  831,  831,  831,  831,  831,  831,
     1249      831,  831,  831,  831,  831,  832,  746,  745,  832,  832,
     1250      832,  832,  832,  832,  833,  744,  833,  833,  743,  833,
     1251      833,  833,  833,  833,  742,  833,  834,  741,  740,  834,
     1252      834,  834,  834,  834,  834,  834,  739,  834,  835,  835,
     1253      835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
     1254      836,  836,  836,  738,  737,  736,  836,  837,  730,  728,
     1255      837,  837,  837,  837,  837,  837,  838,  838,  717,  716,
     1256
     1257      715,  838,  839,  839,  714,  713,  712,  839,  840,  840,
     1258      711,  710,  709,  840,  841,  841,  706,  705,  704,  841,
     1259      842,  842,  703,  698,  695,  842,  843,  843,  694,  692,
     1260      690,  843,  844,  844,  676,  668,  665,  844,  845,  845,
     1261      660,  658,  646,  845,  846,  846,  642,  640,  638,  846,
     1262      847,  847,  847,  847,  847,  847,  847,  847,  847,  847,
     1263      847,  847,  848,  848,  849,  849,  849,  849,  849,  635,
     1264      849,  850,  850,  850,  851,  851,  633,  632,  631,  851,
     1265      852,  852,  630,  629,  628,  852,  853,  853,  625,  624,
     1266      622,  853,  854,  854,  855,  855,  619,  618,  614,  855,
     1267
     1268      856,  856,  857,  589,  585,  857,  857,  857,  857,  857,
     1269      857,  858,  858,  858,  858,  858,  858,  858,  858,  858,
     1270      858,  858,  858,  859,  859,  859,  859,  859,  859,  859,
     1271      859,  859,  859,  859,  859,  860,  860,  583,  581,  579,
     1272      860,  861,  861,  573,  567,  565,  861,  862,  862,  563,
     1273      561,  559,  862,  863,  863,  864,  864,  557,  555,  553,
     1274      864,  865,  865,  866,  866,  552,  551,  548,  866,  867,
     1275      867,  868,  868,  545,  539,  533,  868,  869,  869,  870,
     1276      870,  530,  526,  521,  870,  871,  871,  872,  872,  519,
     1277      518,  496,  872,  873,  873,  874,  874,  492,  490,  488,
     1278
     1279      874,  875,  875,  876,  876,  486,  876,  484,  876,  877,
     1280      877,  482,  877,  481,  877,  878,  878,  878,  878,  878,
     1281      480,  878,  879,  879,  479,  465,  463,  879,  880,  880,
     1282      462,  461,  459,  880,  881,  881,  457,  454,  452,  881,
     1283      882,  882,  883,  883,  450,  448,  444,  883,  884,  884,
     1284      885,  885,  429,  427,  419,  885,  886,  886,  887,  887,
     1285      418,  411,  409,  887,  888,  888,  889,  407,  383,  889,
     1286      889,  889,  889,  889,  889,  890,  890,  890,  890,  890,
     1287      890,  890,  890,  890,  890,  890,  890,  891,  891,  381,
     1288      379,  377,  891,  892,  892,  893,  893,  376,  375,  354,
     1289
     1290      893,  894,  894,  895,  895,  352,  351,  347,  895,  896,
     1291      896,  897,  897,  345,  343,  341,  897,  898,  898,  899,
     1292      899,  337,  335,  334,  899,  900,  900,  901,  901,  333,
     1293      323,  310,  901,  902,  902,  903,  903,  289,  268,  266,
     1294      903,  904,  904,  265,  264,  262,  904,  905,  905,  906,
     1295      906,  261,  256,  252,  906,  907,  907,  908,  908,  251,
     1296      908,  247,  908,  909,  909,  244,  243,  232,  909,  910,
     1297      910,  231,  226,  225,  910,  911,  911,  912,  912,  222,
     1298      212,  210,  912,  913,  913,  914,  914,  209,  208,  202,
     1299      914,  915,  915,  916,  916,  201,  199,  194,  916,  917,
     1300
     1301      917,  918,  918,  174,  145,  144,  918,  919,  919,  920,
     1302      920,  139,  137,  135,  920,  921,  921,  922,  127,  124,
     1303      922,  922,  922,  922,  922,  922,  923,  923,  923,  923,
     1304      923,  923,  923,  923,  923,  923,  923,  923,  924,  924,
     1305      123,  119,  100,  924,  925,  925,  926,  926,   97,   94,
     1306       92,  926,  927,  927,  928,  928,   85,   71,   69,  928,
     1307      929,  929,  930,  930,   65,   44,   39,  930,  931,  931,
     1308      932,  932,   36,   33,   18,  932,  933,  933,  934,  934,
     1309       11,    4,    3,  934,  935,  935,  936,  936,    0,    0,
     1310        0,  936,  937,  937,  938,  938,    0,    0,    0,  938,
     1311
     1312      939,  939,  940,  940,    0,    0,    0,  940,  941,  941,
     1313        0,    0,    0,  941,  942,  942,  943,  943,    0,    0,
     1314        0,  943,  944,  944,  945,  945,    0,    0,    0,  945,
     1315      946,  946,  947,  947,    0,    0,    0,  947,  948,  948,
     1316      949,  949,  950,  950,  951,    0,    0,  951,  951,  951,
     1317      951,  951,  951,  952,  952,  953,  953,  953,  953,  953,
     1318      953,  953,  953,  953,  953,  953,  953,  954,  954,    0,
     1319        0,    0,  954,  955,  955,  956,  956,    0,    0,    0,
     1320      956,  957,  957,  958,  958,  959,  959,  960,    0,    0,
     1321      960,  960,  960,  960,  960,  960,  961,  961,  962,  962,
     1322
     1323      963,  963,  964,  964,  965,  965,  966,  966,  967,  967,
     1324      968,  968,    0,    0,    0,  968,  969,  969,  970,  970,
     1325        0,    0,    0,  970,  971,  971,  972,  972,  973,  973,
     1326      974,  974,  975,  975,    0,    0,    0,  975,  976,    0,
     1327        0,  976,  976,  976,  976,  976,  976,  977,  977,  978,
     1328      978,  979,  979,    0,    0,    0,  979,  980,  980,    0,
     1329        0,    0,  980,  981,  981,    0,    0,    0,  981,  982,
     1330      982,  983,  983,    0,    0,    0,  983,  984,  984,    0,
     1331        0,    0,  984,  985,  985,    0,    0,    0,  985,  986,
     1332      986,    0,    0,    0,  986,  987,  987,    0,    0,    0,
     1333
     1334      987,  988,  988,    0,    0,    0,  988,  989,  989,    0,
     1335        0,    0,  989,  990,  990,    0,    0,    0,  990,  991,
     1336      991,    0,    0,    0,  991,  992,  992,    0,    0,    0,
     1337      992,  993,  993,    0,    0,    0,  993,  994,  994,    0,
     1338        0,    0,  994,  995,  995,    0,    0,    0,  995,  996,
     1339      996,    0,    0,    0,  996,  997,  997,    0,    0,    0,
     1340      997,  998,  998,    0,    0,    0,  998,  825,  825,  825,
     1341      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1342      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1343      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1344
     1345      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1346      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1347      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1348      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1349      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     1350      825,  825
    13651351    } ;
    13661352
    13671353/* Table of booleans, true if rule could match eol. */
    1368 static yyconst flex_int32_t yy_rule_can_match_eol[178] =
     1354static yyconst flex_int32_t yy_rule_can_match_eol[172] =
    13691355    {   0,
    137013561, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    13731359    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    13741360    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1375     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1,
     1361    0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
    13761362    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    13771363    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1378     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
     1364    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
    13791365
    13801366static yy_state_type yy_last_accepting_state;
     
    14041390 * Created On       : Sat Sep 22 08:58:10 2001
    14051391 * Last Modified By : Peter A. Buhr
    1406  * Last Modified On : Mon Sep 28 17:07:48 2015
    1407  * Update Count     : 402
     1392 * Last Modified On : Fri Jun 19 11:10:14 2015
     1393 * Update Count     : 392
    14081394 */
    14091395#line 20 "lex.ll"
     
    14621448
    14631449
    1464 #line 1465 "Parser/lex.cc"
     1450#line 1451 "Parser/lex.cc"
    14651451
    14661452#define INITIAL 0
     
    16571643
    16581644                                   /* line directives */
    1659 #line 1660 "Parser/lex.cc"
     1645#line 1646 "Parser/lex.cc"
    16601646
    16611647        if ( !(yy_init) )
     
    17111697                                {
    17121698                                yy_current_state = (int) yy_def[yy_current_state];
    1713                                 if ( yy_current_state >= 851 )
     1699                                if ( yy_current_state >= 826 )
    17141700                                        yy_c = yy_meta[(unsigned int) yy_c];
    17151701                                }
     
    17171703                        ++yy_cp;
    17181704                        }
    1719                 while ( yy_base[yy_current_state] != 2604 );
     1705                while ( yy_base[yy_current_state] != 2568 );
    17201706
    17211707yy_find_action:
     
    18641850YY_RULE_SETUP
    18651851#line 184 "lex.ll"
    1866 { KEYWORD_RETURN(AT); }                                 // CFA
     1852{ KEYWORD_RETURN(ATOMIC); }                             // C11
    18671853        YY_BREAK
    18681854case 18:
    18691855YY_RULE_SETUP
    18701856#line 185 "lex.ll"
    1871 { KEYWORD_RETURN(ATOMIC); }                             // C11
     1857{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    18721858        YY_BREAK
    18731859case 19:
     
    18791865YY_RULE_SETUP
    18801866#line 187 "lex.ll"
    1881 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1867{ KEYWORD_RETURN(AUTO); }
    18821868        YY_BREAK
    18831869case 21:
    18841870YY_RULE_SETUP
    18851871#line 188 "lex.ll"
    1886 { KEYWORD_RETURN(AUTO); }
     1872{ KEYWORD_RETURN(BOOL); }                               // C99
    18871873        YY_BREAK
    18881874case 22:
    18891875YY_RULE_SETUP
    18901876#line 189 "lex.ll"
    1891 { KEYWORD_RETURN(BOOL); }                               // C99
     1877{ KEYWORD_RETURN(BREAK); }
    18921878        YY_BREAK
    18931879case 23:
    18941880YY_RULE_SETUP
    18951881#line 190 "lex.ll"
    1896 { KEYWORD_RETURN(BREAK); }
     1882{ KEYWORD_RETURN(CASE); }
    18971883        YY_BREAK
    18981884case 24:
    18991885YY_RULE_SETUP
    19001886#line 191 "lex.ll"
    1901 { KEYWORD_RETURN(CASE); }
     1887{ KEYWORD_RETURN(CATCH); }                              // CFA
    19021888        YY_BREAK
    19031889case 25:
    19041890YY_RULE_SETUP
    19051891#line 192 "lex.ll"
    1906 { KEYWORD_RETURN(CATCH); }                              // CFA
     1892{ KEYWORD_RETURN(CHAR); }
    19071893        YY_BREAK
    19081894case 26:
    19091895YY_RULE_SETUP
    19101896#line 193 "lex.ll"
    1911 { KEYWORD_RETURN(CATCHRESUME); }                // CFA
     1897{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19121898        YY_BREAK
    19131899case 27:
    19141900YY_RULE_SETUP
    19151901#line 194 "lex.ll"
    1916 { KEYWORD_RETURN(CHAR); }
     1902{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19171903        YY_BREAK
    19181904case 28:
    19191905YY_RULE_SETUP
    19201906#line 195 "lex.ll"
    1921 { KEYWORD_RETURN(CHOOSE); }                             // CFA
     1907{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19221908        YY_BREAK
    19231909case 29:
    19241910YY_RULE_SETUP
    19251911#line 196 "lex.ll"
    1926 { KEYWORD_RETURN(COMPLEX); }                    // C99
     1912{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    19271913        YY_BREAK
    19281914case 30:
    19291915YY_RULE_SETUP
    19301916#line 197 "lex.ll"
    1931 { KEYWORD_RETURN(COMPLEX); }                    // GCC
     1917{ KEYWORD_RETURN(CONST); }
    19321918        YY_BREAK
    19331919case 31:
    19341920YY_RULE_SETUP
    19351921#line 198 "lex.ll"
    1936 { KEYWORD_RETURN(COMPLEX); }                    // GCC
     1922{ KEYWORD_RETURN(CONST); }                              // GCC
    19371923        YY_BREAK
    19381924case 32:
    19391925YY_RULE_SETUP
    19401926#line 199 "lex.ll"
    1941 { KEYWORD_RETURN(CONST); }
     1927{ KEYWORD_RETURN(CONST); }                              // GCC
    19421928        YY_BREAK
    19431929case 33:
    19441930YY_RULE_SETUP
    19451931#line 200 "lex.ll"
    1946 { KEYWORD_RETURN(CONST); }                              // GCC
     1932{ KEYWORD_RETURN(CONTEXT); }                    // CFA
    19471933        YY_BREAK
    19481934case 34:
    19491935YY_RULE_SETUP
    19501936#line 201 "lex.ll"
    1951 { KEYWORD_RETURN(CONST); }                              // GCC
     1937{ KEYWORD_RETURN(CONTINUE); }
    19521938        YY_BREAK
    19531939case 35:
    19541940YY_RULE_SETUP
    19551941#line 202 "lex.ll"
    1956 { KEYWORD_RETURN(CONTEXT); }                    // CFA
     1942{ KEYWORD_RETURN(DEFAULT); }
    19571943        YY_BREAK
    19581944case 36:
    19591945YY_RULE_SETUP
    19601946#line 203 "lex.ll"
    1961 { KEYWORD_RETURN(CONTINUE); }
     1947{ KEYWORD_RETURN(DO); }
    19621948        YY_BREAK
    19631949case 37:
    19641950YY_RULE_SETUP
    19651951#line 204 "lex.ll"
    1966 { KEYWORD_RETURN(DEFAULT); }
     1952{ KEYWORD_RETURN(DOUBLE); }
    19671953        YY_BREAK
    19681954case 38:
    19691955YY_RULE_SETUP
    19701956#line 205 "lex.ll"
    1971 { KEYWORD_RETURN(DISABLE); }                    // CFA
     1957{ KEYWORD_RETURN(DTYPE); }                              // CFA
    19721958        YY_BREAK
    19731959case 39:
    19741960YY_RULE_SETUP
    19751961#line 206 "lex.ll"
    1976 { KEYWORD_RETURN(DO); }
     1962{ KEYWORD_RETURN(ELSE); }
    19771963        YY_BREAK
    19781964case 40:
    19791965YY_RULE_SETUP
    19801966#line 207 "lex.ll"
    1981 { KEYWORD_RETURN(DOUBLE); }
     1967{ KEYWORD_RETURN(ENUM); }
    19821968        YY_BREAK
    19831969case 41:
    19841970YY_RULE_SETUP
    19851971#line 208 "lex.ll"
    1986 { KEYWORD_RETURN(DTYPE); }                              // CFA
     1972{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    19871973        YY_BREAK
    19881974case 42:
    19891975YY_RULE_SETUP
    19901976#line 209 "lex.ll"
    1991 { KEYWORD_RETURN(ELSE); }
     1977{ KEYWORD_RETURN(EXTERN); }
    19921978        YY_BREAK
    19931979case 43:
    19941980YY_RULE_SETUP
    19951981#line 210 "lex.ll"
    1996 { KEYWORD_RETURN(ENABLE); }                             // CFA
     1982{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    19971983        YY_BREAK
    19981984case 44:
    19991985YY_RULE_SETUP
    20001986#line 211 "lex.ll"
    2001 { KEYWORD_RETURN(ENUM); }
     1987{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20021988        YY_BREAK
    20031989case 45:
    20041990YY_RULE_SETUP
    20051991#line 212 "lex.ll"
    2006 { KEYWORD_RETURN(EXTENSION); }                  // GCC
     1992{ KEYWORD_RETURN(FLOAT); }
    20071993        YY_BREAK
    20081994case 46:
    20091995YY_RULE_SETUP
    20101996#line 213 "lex.ll"
    2011 { KEYWORD_RETURN(EXTERN); }
     1997{ KEYWORD_RETURN(FLOAT); }                              // GCC
    20121998        YY_BREAK
    20131999case 47:
    20142000YY_RULE_SETUP
    20152001#line 214 "lex.ll"
    2016 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2002{ KEYWORD_RETURN(FOR); }
    20172003        YY_BREAK
    20182004case 48:
    20192005YY_RULE_SETUP
    20202006#line 215 "lex.ll"
    2021 { KEYWORD_RETURN(FINALLY); }                    // CFA
     2007{ KEYWORD_RETURN(FORALL); }                             // CFA
    20222008        YY_BREAK
    20232009case 49:
    20242010YY_RULE_SETUP
    20252011#line 216 "lex.ll"
    2026 { KEYWORD_RETURN(FLOAT); }
     2012{ KEYWORD_RETURN(FORTRAN); }
    20272013        YY_BREAK
    20282014case 50:
    20292015YY_RULE_SETUP
    20302016#line 217 "lex.ll"
    2031 { KEYWORD_RETURN(FLOAT); }                              // GCC
     2017{ KEYWORD_RETURN(FTYPE); }                              // CFA
    20322018        YY_BREAK
    20332019case 51:
    20342020YY_RULE_SETUP
    20352021#line 218 "lex.ll"
    2036 { KEYWORD_RETURN(FOR); }
     2022{ KEYWORD_RETURN(GENERIC); }                    // C11
    20372023        YY_BREAK
    20382024case 52:
    20392025YY_RULE_SETUP
    20402026#line 219 "lex.ll"
    2041 { KEYWORD_RETURN(FORALL); }                             // CFA
     2027{ KEYWORD_RETURN(GOTO); }
    20422028        YY_BREAK
    20432029case 53:
    20442030YY_RULE_SETUP
    20452031#line 220 "lex.ll"
    2046 { KEYWORD_RETURN(FORTRAN); }
     2032{ KEYWORD_RETURN(IF); }
    20472033        YY_BREAK
    20482034case 54:
    20492035YY_RULE_SETUP
    20502036#line 221 "lex.ll"
    2051 { KEYWORD_RETURN(FTYPE); }                              // CFA
     2037{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    20522038        YY_BREAK
    20532039case 55:
    20542040YY_RULE_SETUP
    20552041#line 222 "lex.ll"
    2056 { KEYWORD_RETURN(GENERIC); }                    // C11
     2042{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    20572043        YY_BREAK
    20582044case 56:
    20592045YY_RULE_SETUP
    20602046#line 223 "lex.ll"
    2061 { KEYWORD_RETURN(GOTO); }
     2047{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    20622048        YY_BREAK
    20632049case 57:
    20642050YY_RULE_SETUP
    20652051#line 224 "lex.ll"
    2066 { KEYWORD_RETURN(IF); }
     2052{ KEYWORD_RETURN(INLINE); }                             // C99
    20672053        YY_BREAK
    20682054case 58:
    20692055YY_RULE_SETUP
    20702056#line 225 "lex.ll"
    2071 { KEYWORD_RETURN(IMAGINARY); }                  // C99
     2057{ KEYWORD_RETURN(INLINE); }                             // GCC
    20722058        YY_BREAK
    20732059case 59:
    20742060YY_RULE_SETUP
    20752061#line 226 "lex.ll"
    2076 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2062{ KEYWORD_RETURN(INLINE); }                             // GCC
    20772063        YY_BREAK
    20782064case 60:
    20792065YY_RULE_SETUP
    20802066#line 227 "lex.ll"
    2081 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2067{ KEYWORD_RETURN(INT); }
    20822068        YY_BREAK
    20832069case 61:
    20842070YY_RULE_SETUP
    20852071#line 228 "lex.ll"
    2086 { KEYWORD_RETURN(INLINE); }                             // C99
     2072{ KEYWORD_RETURN(INT); }                                // GCC
    20872073        YY_BREAK
    20882074case 62:
    20892075YY_RULE_SETUP
    20902076#line 229 "lex.ll"
    2091 { KEYWORD_RETURN(INLINE); }                             // GCC
     2077{ KEYWORD_RETURN(LABEL); }                              // GCC
    20922078        YY_BREAK
    20932079case 63:
    20942080YY_RULE_SETUP
    20952081#line 230 "lex.ll"
    2096 { KEYWORD_RETURN(INLINE); }                             // GCC
     2082{ KEYWORD_RETURN(LONG); }
    20972083        YY_BREAK
    20982084case 64:
    20992085YY_RULE_SETUP
    21002086#line 231 "lex.ll"
    2101 { KEYWORD_RETURN(INT); }
     2087{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21022088        YY_BREAK
    21032089case 65:
    21042090YY_RULE_SETUP
    21052091#line 232 "lex.ll"
    2106 { KEYWORD_RETURN(INT); }                                // GCC
     2092{ KEYWORD_RETURN(NORETURN); }                   // C11
    21072093        YY_BREAK
    21082094case 66:
    21092095YY_RULE_SETUP
    21102096#line 233 "lex.ll"
    2111 { KEYWORD_RETURN(LABEL); }                              // GCC
     2097{ KEYWORD_RETURN(REGISTER); }
    21122098        YY_BREAK
    21132099case 67:
    21142100YY_RULE_SETUP
    21152101#line 234 "lex.ll"
    2116 { KEYWORD_RETURN(LONG); }
     2102{ KEYWORD_RETURN(RESTRICT); }                   // C99
    21172103        YY_BREAK
    21182104case 68:
    21192105YY_RULE_SETUP
    21202106#line 235 "lex.ll"
    2121 { KEYWORD_RETURN(LVALUE); }                             // CFA
     2107{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21222108        YY_BREAK
    21232109case 69:
    21242110YY_RULE_SETUP
    21252111#line 236 "lex.ll"
    2126 { KEYWORD_RETURN(NORETURN); }                   // C11
     2112{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    21272113        YY_BREAK
    21282114case 70:
    21292115YY_RULE_SETUP
    21302116#line 237 "lex.ll"
    2131 { KEYWORD_RETURN(REGISTER); }
     2117{ KEYWORD_RETURN(RETURN); }
    21322118        YY_BREAK
    21332119case 71:
    21342120YY_RULE_SETUP
    21352121#line 238 "lex.ll"
    2136 { KEYWORD_RETURN(RESTRICT); }                   // C99
     2122{ KEYWORD_RETURN(SHORT); }
    21372123        YY_BREAK
    21382124case 72:
    21392125YY_RULE_SETUP
    21402126#line 239 "lex.ll"
    2141 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2127{ KEYWORD_RETURN(SIGNED); }
    21422128        YY_BREAK
    21432129case 73:
    21442130YY_RULE_SETUP
    21452131#line 240 "lex.ll"
    2146 { KEYWORD_RETURN(RESTRICT); }                   // GCC
     2132{ KEYWORD_RETURN(SIGNED); }                             // GCC
    21472133        YY_BREAK
    21482134case 74:
    21492135YY_RULE_SETUP
    21502136#line 241 "lex.ll"
    2151 { KEYWORD_RETURN(RETURN); }
     2137{ KEYWORD_RETURN(SIGNED); }                             // GCC
    21522138        YY_BREAK
    21532139case 75:
    21542140YY_RULE_SETUP
    21552141#line 242 "lex.ll"
    2156 { KEYWORD_RETURN(SHORT); }
     2142{ KEYWORD_RETURN(SIZEOF); }
    21572143        YY_BREAK
    21582144case 76:
    21592145YY_RULE_SETUP
    21602146#line 243 "lex.ll"
    2161 { KEYWORD_RETURN(SIGNED); }
     2147{ KEYWORD_RETURN(STATIC); }
    21622148        YY_BREAK
    21632149case 77:
    21642150YY_RULE_SETUP
    21652151#line 244 "lex.ll"
    2166 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2152{ KEYWORD_RETURN(STATICASSERT); }               // C11
    21672153        YY_BREAK
    21682154case 78:
    21692155YY_RULE_SETUP
    21702156#line 245 "lex.ll"
    2171 { KEYWORD_RETURN(SIGNED); }                             // GCC
     2157{ KEYWORD_RETURN(STRUCT); }
    21722158        YY_BREAK
    21732159case 79:
    21742160YY_RULE_SETUP
    21752161#line 246 "lex.ll"
    2176 { KEYWORD_RETURN(SIZEOF); }
     2162{ KEYWORD_RETURN(SWITCH); }
    21772163        YY_BREAK
    21782164case 80:
    21792165YY_RULE_SETUP
    21802166#line 247 "lex.ll"
    2181 { KEYWORD_RETURN(STATIC); }
     2167{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    21822168        YY_BREAK
    21832169case 81:
    21842170YY_RULE_SETUP
    21852171#line 248 "lex.ll"
    2186 { KEYWORD_RETURN(STATICASSERT); }               // C11
     2172{ KEYWORD_RETURN(THROW); }                              // CFA
    21872173        YY_BREAK
    21882174case 82:
    21892175YY_RULE_SETUP
    21902176#line 249 "lex.ll"
    2191 { KEYWORD_RETURN(STRUCT); }
     2177{ KEYWORD_RETURN(TRY); }                                // CFA
    21922178        YY_BREAK
    21932179case 83:
    21942180YY_RULE_SETUP
    21952181#line 250 "lex.ll"
    2196 { KEYWORD_RETURN(SWITCH); }
     2182{ KEYWORD_RETURN(TYPE); }                               // CFA
    21972183        YY_BREAK
    21982184case 84:
    21992185YY_RULE_SETUP
    22002186#line 251 "lex.ll"
    2201 { KEYWORD_RETURN(THREADLOCAL); }                // C11
     2187{ KEYWORD_RETURN(TYPEDEF); }
    22022188        YY_BREAK
    22032189case 85:
    22042190YY_RULE_SETUP
    22052191#line 252 "lex.ll"
    2206 { KEYWORD_RETURN(THROW); }                              // CFA
     2192{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22072193        YY_BREAK
    22082194case 86:
    22092195YY_RULE_SETUP
    22102196#line 253 "lex.ll"
    2211 { KEYWORD_RETURN(THROWRESUME); }                // CFA
     2197{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22122198        YY_BREAK
    22132199case 87:
    22142200YY_RULE_SETUP
    22152201#line 254 "lex.ll"
    2216 { KEYWORD_RETURN(TRY); }                                // CFA
     2202{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    22172203        YY_BREAK
    22182204case 88:
    22192205YY_RULE_SETUP
    22202206#line 255 "lex.ll"
    2221 { KEYWORD_RETURN(TYPE); }                               // CFA
     2207{ KEYWORD_RETURN(UNION); }
    22222208        YY_BREAK
    22232209case 89:
    22242210YY_RULE_SETUP
    22252211#line 256 "lex.ll"
    2226 { KEYWORD_RETURN(TYPEDEF); }
     2212{ KEYWORD_RETURN(UNSIGNED); }
    22272213        YY_BREAK
    22282214case 90:
    22292215YY_RULE_SETUP
    22302216#line 257 "lex.ll"
    2231 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2217{ KEYWORD_RETURN(VOID); }
    22322218        YY_BREAK
    22332219case 91:
    22342220YY_RULE_SETUP
    22352221#line 258 "lex.ll"
    2236 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2222{ KEYWORD_RETURN(VOLATILE); }
    22372223        YY_BREAK
    22382224case 92:
    22392225YY_RULE_SETUP
    22402226#line 259 "lex.ll"
    2241 { KEYWORD_RETURN(TYPEOF); }                             // GCC
     2227{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    22422228        YY_BREAK
    22432229case 93:
    22442230YY_RULE_SETUP
    22452231#line 260 "lex.ll"
    2246 { KEYWORD_RETURN(UNION); }
     2232{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    22472233        YY_BREAK
    22482234case 94:
    22492235YY_RULE_SETUP
    22502236#line 261 "lex.ll"
    2251 { KEYWORD_RETURN(UNSIGNED); }
    2252         YY_BREAK
     2237{ KEYWORD_RETURN(WHILE); }
     2238        YY_BREAK
     2239/* identifier */
    22532240case 95:
    22542241YY_RULE_SETUP
    2255 #line 262 "lex.ll"
    2256 { KEYWORD_RETURN(VOID); }
     2242#line 264 "lex.ll"
     2243{ IDENTIFIER_RETURN(); }
    22572244        YY_BREAK
    22582245case 96:
    22592246YY_RULE_SETUP
    2260 #line 263 "lex.ll"
    2261 { KEYWORD_RETURN(VOLATILE); }
     2247#line 265 "lex.ll"
     2248{ ATTRIBUTE_RETURN(); }
    22622249        YY_BREAK
    22632250case 97:
    22642251YY_RULE_SETUP
    2265 #line 264 "lex.ll"
    2266 { KEYWORD_RETURN(VOLATILE); }                   // GCC
     2252#line 266 "lex.ll"
     2253{ BEGIN BKQUOTE; }
    22672254        YY_BREAK
    22682255case 98:
    22692256YY_RULE_SETUP
    2270 #line 265 "lex.ll"
    2271 { KEYWORD_RETURN(VOLATILE); }                   // GCC
     2257#line 267 "lex.ll"
     2258{ IDENTIFIER_RETURN(); }
    22722259        YY_BREAK
    22732260case 99:
    22742261YY_RULE_SETUP
    2275 #line 266 "lex.ll"
    2276 { KEYWORD_RETURN(WHILE); }
    2277         YY_BREAK
    2278 /* identifier */
     2262#line 268 "lex.ll"
     2263{ BEGIN 0; }
     2264        YY_BREAK
     2265/* numeric constants */
    22792266case 100:
    22802267YY_RULE_SETUP
    2281 #line 269 "lex.ll"
    2282 { IDENTIFIER_RETURN(); }
     2268#line 271 "lex.ll"
     2269{ NUMERIC_RETURN(ZERO); }                               // CFA
    22832270        YY_BREAK
    22842271case 101:
    22852272YY_RULE_SETUP
    2286 #line 270 "lex.ll"
    2287 { ATTRIBUTE_RETURN(); }
     2273#line 272 "lex.ll"
     2274{ NUMERIC_RETURN(ONE); }                                // CFA
    22882275        YY_BREAK
    22892276case 102:
    22902277YY_RULE_SETUP
    2291 #line 271 "lex.ll"
    2292 { BEGIN BKQUOTE; }
     2278#line 273 "lex.ll"
     2279{ NUMERIC_RETURN(INTEGERconstant); }
    22932280        YY_BREAK
    22942281case 103:
    22952282YY_RULE_SETUP
    2296 #line 272 "lex.ll"
    2297 { IDENTIFIER_RETURN(); }
     2283#line 274 "lex.ll"
     2284{ NUMERIC_RETURN(INTEGERconstant); }
    22982285        YY_BREAK
    22992286case 104:
    23002287YY_RULE_SETUP
    2301 #line 273 "lex.ll"
    2302 { BEGIN 0; }
    2303         YY_BREAK
    2304 /* numeric constants */
     2288#line 275 "lex.ll"
     2289{ NUMERIC_RETURN(INTEGERconstant); }
     2290        YY_BREAK
    23052291case 105:
    23062292YY_RULE_SETUP
    23072293#line 276 "lex.ll"
    2308 { NUMERIC_RETURN(ZERO); }                               // CFA
     2294{ NUMERIC_RETURN(FLOATINGconstant); }
    23092295        YY_BREAK
    23102296case 106:
    23112297YY_RULE_SETUP
    23122298#line 277 "lex.ll"
    2313 { NUMERIC_RETURN(ONE); }                                // CFA
    2314         YY_BREAK
     2299{ NUMERIC_RETURN(FLOATINGconstant); }
     2300        YY_BREAK
     2301/* character constant, allows empty value */
    23152302case 107:
    23162303YY_RULE_SETUP
    2317 #line 278 "lex.ll"
    2318 { NUMERIC_RETURN(INTEGERconstant); }
     2304#line 280 "lex.ll"
     2305{ BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23192306        YY_BREAK
    23202307case 108:
    23212308YY_RULE_SETUP
    2322 #line 279 "lex.ll"
    2323 { NUMERIC_RETURN(INTEGERconstant); }
     2309#line 281 "lex.ll"
     2310{ *strtext += std::string( yytext ); }
    23242311        YY_BREAK
    23252312case 109:
    2326 YY_RULE_SETUP
    2327 #line 280 "lex.ll"
    2328 { NUMERIC_RETURN(INTEGERconstant); }
    2329         YY_BREAK
     2313/* rule 109 can match eol */
     2314YY_RULE_SETUP
     2315#line 282 "lex.ll"
     2316{ BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
     2317        YY_BREAK
     2318/* ' stop highlighting */
     2319/* string constant */
    23302320case 110:
    23312321YY_RULE_SETUP
    2332 #line 281 "lex.ll"
    2333 { NUMERIC_RETURN(FLOATINGconstant); }
     2322#line 286 "lex.ll"
     2323{ BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    23342324        YY_BREAK
    23352325case 111:
    23362326YY_RULE_SETUP
    2337 #line 282 "lex.ll"
    2338 { NUMERIC_RETURN(FLOATINGconstant); }
    2339         YY_BREAK
    2340 /* character constant, allows empty value */
     2327#line 287 "lex.ll"
     2328{ *strtext += std::string( yytext ); }
     2329        YY_BREAK
    23412330case 112:
    2342 YY_RULE_SETUP
    2343 #line 285 "lex.ll"
    2344 { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2345         YY_BREAK
     2331/* rule 112 can match eol */
     2332YY_RULE_SETUP
     2333#line 288 "lex.ll"
     2334{ BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
     2335        YY_BREAK
     2336/* " stop highlighting */
     2337/* common character/string constant */
    23462338case 113:
    23472339YY_RULE_SETUP
    2348 #line 286 "lex.ll"
    2349 { *strtext += std::string( yytext ); }
     2340#line 292 "lex.ll"
     2341{ rm_underscore(); *strtext += std::string( yytext ); }
    23502342        YY_BREAK
    23512343case 114:
    23522344/* rule 114 can match eol */
    23532345YY_RULE_SETUP
    2354 #line 287 "lex.ll"
    2355 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
    2356         YY_BREAK
    2357 /* ' stop highlighting */
    2358 /* string constant */
     2346#line 293 "lex.ll"
     2347{}                                              // continuation (ALSO HANDLED BY CPP)
     2348        YY_BREAK
    23592349case 115:
    23602350YY_RULE_SETUP
    2361 #line 291 "lex.ll"
    2362 { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    2363         YY_BREAK
     2351#line 294 "lex.ll"
     2352{ *strtext += std::string( yytext ); } // unknown escape character
     2353        YY_BREAK
     2354/* punctuation */
    23642355case 116:
    23652356YY_RULE_SETUP
    2366 #line 292 "lex.ll"
    2367 { *strtext += std::string( yytext ); }
     2357#line 297 "lex.ll"
     2358{ ASCIIOP_RETURN(); }
    23682359        YY_BREAK
    23692360case 117:
    2370 /* rule 117 can match eol */
    2371 YY_RULE_SETUP
    2372 #line 293 "lex.ll"
    2373 { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    2374         YY_BREAK
    2375 /* " stop highlighting */
    2376 /* common character/string constant */
     2361YY_RULE_SETUP
     2362#line 298 "lex.ll"
     2363{ ASCIIOP_RETURN(); }
     2364        YY_BREAK
    23772365case 118:
    23782366YY_RULE_SETUP
    2379 #line 297 "lex.ll"
    2380 { rm_underscore(); *strtext += std::string( yytext ); }
     2367#line 299 "lex.ll"
     2368{ ASCIIOP_RETURN(); }
    23812369        YY_BREAK
    23822370case 119:
    2383 /* rule 119 can match eol */
    2384 YY_RULE_SETUP
    2385 #line 298 "lex.ll"
    2386 {}                                              // continuation (ALSO HANDLED BY CPP)
     2371YY_RULE_SETUP
     2372#line 300 "lex.ll"
     2373{ ASCIIOP_RETURN(); }
    23872374        YY_BREAK
    23882375case 120:
    23892376YY_RULE_SETUP
    2390 #line 299 "lex.ll"
    2391 { *strtext += std::string( yytext ); } // unknown escape character
    2392         YY_BREAK
    2393 /* punctuation */
     2377#line 301 "lex.ll"
     2378{ ASCIIOP_RETURN(); }
     2379        YY_BREAK
    23942380case 121:
    23952381YY_RULE_SETUP
     
    24002386YY_RULE_SETUP
    24012387#line 303 "lex.ll"
    2402 { ASCIIOP_RETURN(); }
     2388{ ASCIIOP_RETURN(); }                                   // also operator
    24032389        YY_BREAK
    24042390case 123:
     
    24152401YY_RULE_SETUP
    24162402#line 306 "lex.ll"
     2403{ ASCIIOP_RETURN(); }                                   // also operator
     2404        YY_BREAK
     2405case 126:
     2406YY_RULE_SETUP
     2407#line 307 "lex.ll"
     2408{ NAMEDOP_RETURN(ELLIPSIS); }
     2409        YY_BREAK
     2410/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
     2411case 127:
     2412YY_RULE_SETUP
     2413#line 310 "lex.ll"
     2414{ RETURN_VAL('['); }
     2415        YY_BREAK
     2416case 128:
     2417YY_RULE_SETUP
     2418#line 311 "lex.ll"
     2419{ RETURN_VAL(']'); }
     2420        YY_BREAK
     2421case 129:
     2422YY_RULE_SETUP
     2423#line 312 "lex.ll"
     2424{ RETURN_VAL('{'); }
     2425        YY_BREAK
     2426case 130:
     2427YY_RULE_SETUP
     2428#line 313 "lex.ll"
     2429{ RETURN_VAL('}'); }
     2430        YY_BREAK
     2431/* operators */
     2432case 131:
     2433YY_RULE_SETUP
     2434#line 316 "lex.ll"
    24172435{ ASCIIOP_RETURN(); }
    24182436        YY_BREAK
    2419 case 126:
    2420 YY_RULE_SETUP
    2421 #line 307 "lex.ll"
     2437case 132:
     2438YY_RULE_SETUP
     2439#line 317 "lex.ll"
    24222440{ ASCIIOP_RETURN(); }
    24232441        YY_BREAK
    2424 case 127:
    2425 YY_RULE_SETUP
    2426 #line 308 "lex.ll"
    2427 { ASCIIOP_RETURN(); }                                   // also operator
    2428         YY_BREAK
    2429 case 128:
    2430 YY_RULE_SETUP
    2431 #line 309 "lex.ll"
     2442case 133:
     2443YY_RULE_SETUP
     2444#line 318 "lex.ll"
    24322445{ ASCIIOP_RETURN(); }
    24332446        YY_BREAK
    2434 case 129:
    2435 YY_RULE_SETUP
    2436 #line 310 "lex.ll"
     2447case 134:
     2448YY_RULE_SETUP
     2449#line 319 "lex.ll"
    24372450{ ASCIIOP_RETURN(); }
    24382451        YY_BREAK
    2439 case 130:
    2440 YY_RULE_SETUP
    2441 #line 311 "lex.ll"
    2442 { ASCIIOP_RETURN(); }                                   // also operator
    2443         YY_BREAK
    2444 case 131:
    2445 YY_RULE_SETUP
    2446 #line 312 "lex.ll"
    2447 { NAMEDOP_RETURN(ELLIPSIS); }
    2448         YY_BREAK
    2449 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2450 case 132:
    2451 YY_RULE_SETUP
    2452 #line 315 "lex.ll"
    2453 { RETURN_VAL('['); }
    2454         YY_BREAK
    2455 case 133:
    2456 YY_RULE_SETUP
    2457 #line 316 "lex.ll"
    2458 { RETURN_VAL(']'); }
    2459         YY_BREAK
    2460 case 134:
    2461 YY_RULE_SETUP
    2462 #line 317 "lex.ll"
    2463 { RETURN_VAL('{'); }
    2464         YY_BREAK
    24652452case 135:
    24662453YY_RULE_SETUP
    2467 #line 318 "lex.ll"
    2468 { RETURN_VAL('}'); }
    2469         YY_BREAK
    2470 /* operators */
     2454#line 320 "lex.ll"
     2455{ ASCIIOP_RETURN(); }
     2456        YY_BREAK
    24712457case 136:
    24722458YY_RULE_SETUP
     
    25162502case 145:
    25172503YY_RULE_SETUP
    2518 #line 330 "lex.ll"
    2519 { ASCIIOP_RETURN(); }
     2504#line 331 "lex.ll"
     2505{ NAMEDOP_RETURN(ICR); }
    25202506        YY_BREAK
    25212507case 146:
    25222508YY_RULE_SETUP
    2523 #line 331 "lex.ll"
    2524 { ASCIIOP_RETURN(); }
     2509#line 332 "lex.ll"
     2510{ NAMEDOP_RETURN(DECR); }
    25252511        YY_BREAK
    25262512case 147:
    25272513YY_RULE_SETUP
    2528 #line 332 "lex.ll"
    2529 { ASCIIOP_RETURN(); }
     2514#line 333 "lex.ll"
     2515{ NAMEDOP_RETURN(EQ); }
    25302516        YY_BREAK
    25312517case 148:
    25322518YY_RULE_SETUP
    2533 #line 333 "lex.ll"
    2534 { ASCIIOP_RETURN(); }
     2519#line 334 "lex.ll"
     2520{ NAMEDOP_RETURN(NE); }
    25352521        YY_BREAK
    25362522case 149:
    25372523YY_RULE_SETUP
    2538 #line 334 "lex.ll"
    2539 { ASCIIOP_RETURN(); }
     2524#line 335 "lex.ll"
     2525{ NAMEDOP_RETURN(LS); }
    25402526        YY_BREAK
    25412527case 150:
    25422528YY_RULE_SETUP
    25432529#line 336 "lex.ll"
    2544 { NAMEDOP_RETURN(ICR); }
     2530{ NAMEDOP_RETURN(RS); }
    25452531        YY_BREAK
    25462532case 151:
    25472533YY_RULE_SETUP
    25482534#line 337 "lex.ll"
    2549 { NAMEDOP_RETURN(DECR); }
     2535{ NAMEDOP_RETURN(LE); }
    25502536        YY_BREAK
    25512537case 152:
    25522538YY_RULE_SETUP
    25532539#line 338 "lex.ll"
    2554 { NAMEDOP_RETURN(EQ); }
     2540{ NAMEDOP_RETURN(GE); }
    25552541        YY_BREAK
    25562542case 153:
    25572543YY_RULE_SETUP
    25582544#line 339 "lex.ll"
    2559 { NAMEDOP_RETURN(NE); }
     2545{ NAMEDOP_RETURN(ANDAND); }
    25602546        YY_BREAK
    25612547case 154:
    25622548YY_RULE_SETUP
    25632549#line 340 "lex.ll"
    2564 { NAMEDOP_RETURN(LS); }
     2550{ NAMEDOP_RETURN(OROR); }
    25652551        YY_BREAK
    25662552case 155:
    25672553YY_RULE_SETUP
    25682554#line 341 "lex.ll"
    2569 { NAMEDOP_RETURN(RS); }
     2555{ NAMEDOP_RETURN(ARROW); }
    25702556        YY_BREAK
    25712557case 156:
    25722558YY_RULE_SETUP
    25732559#line 342 "lex.ll"
    2574 { NAMEDOP_RETURN(LE); }
     2560{ NAMEDOP_RETURN(PLUSassign); }
    25752561        YY_BREAK
    25762562case 157:
    25772563YY_RULE_SETUP
    25782564#line 343 "lex.ll"
    2579 { NAMEDOP_RETURN(GE); }
     2565{ NAMEDOP_RETURN(MINUSassign); }
    25802566        YY_BREAK
    25812567case 158:
    25822568YY_RULE_SETUP
    25832569#line 344 "lex.ll"
    2584 { NAMEDOP_RETURN(ANDAND); }
     2570{ NAMEDOP_RETURN(MULTassign); }
    25852571        YY_BREAK
    25862572case 159:
    25872573YY_RULE_SETUP
    25882574#line 345 "lex.ll"
    2589 { NAMEDOP_RETURN(OROR); }
     2575{ NAMEDOP_RETURN(DIVassign); }
    25902576        YY_BREAK
    25912577case 160:
    25922578YY_RULE_SETUP
    25932579#line 346 "lex.ll"
    2594 { NAMEDOP_RETURN(ARROW); }
     2580{ NAMEDOP_RETURN(MODassign); }
    25952581        YY_BREAK
    25962582case 161:
    25972583YY_RULE_SETUP
    25982584#line 347 "lex.ll"
    2599 { NAMEDOP_RETURN(PLUSassign); }
     2585{ NAMEDOP_RETURN(ANDassign); }
    26002586        YY_BREAK
    26012587case 162:
    26022588YY_RULE_SETUP
    26032589#line 348 "lex.ll"
    2604 { NAMEDOP_RETURN(MINUSassign); }
     2590{ NAMEDOP_RETURN(ORassign); }
    26052591        YY_BREAK
    26062592case 163:
    26072593YY_RULE_SETUP
    26082594#line 349 "lex.ll"
    2609 { NAMEDOP_RETURN(MULTassign); }
     2595{ NAMEDOP_RETURN(ERassign); }
    26102596        YY_BREAK
    26112597case 164:
    26122598YY_RULE_SETUP
    26132599#line 350 "lex.ll"
    2614 { NAMEDOP_RETURN(DIVassign); }
     2600{ NAMEDOP_RETURN(LSassign); }
    26152601        YY_BREAK
    26162602case 165:
    26172603YY_RULE_SETUP
    26182604#line 351 "lex.ll"
    2619 { NAMEDOP_RETURN(MODassign); }
    2620         YY_BREAK
     2605{ NAMEDOP_RETURN(RSassign); }
     2606        YY_BREAK
     2607/* CFA, operator identifier */
    26212608case 166:
    26222609YY_RULE_SETUP
    2623 #line 352 "lex.ll"
    2624 { NAMEDOP_RETURN(ANDassign); }
     2610#line 354 "lex.ll"
     2611{ IDENTIFIER_RETURN(); }                                // unary
    26252612        YY_BREAK
    26262613case 167:
    26272614YY_RULE_SETUP
    2628 #line 353 "lex.ll"
    2629 { NAMEDOP_RETURN(ORassign); }
     2615#line 355 "lex.ll"
     2616{ IDENTIFIER_RETURN(); }
    26302617        YY_BREAK
    26312618case 168:
    26322619YY_RULE_SETUP
    2633 #line 354 "lex.ll"
    2634 { NAMEDOP_RETURN(ERassign); }
    2635         YY_BREAK
    2636 case 169:
    2637 YY_RULE_SETUP
    2638 #line 355 "lex.ll"
    2639 { NAMEDOP_RETURN(LSassign); }
    2640         YY_BREAK
    2641 case 170:
    2642 YY_RULE_SETUP
    26432620#line 356 "lex.ll"
    2644 { NAMEDOP_RETURN(RSassign); }
    2645         YY_BREAK
    2646 /* CFA, operator identifier */
    2647 case 171:
    2648 YY_RULE_SETUP
    2649 #line 359 "lex.ll"
    2650 { IDENTIFIER_RETURN(); }                                // unary
    2651         YY_BREAK
    2652 case 172:
    2653 YY_RULE_SETUP
    2654 #line 360 "lex.ll"
    2655 { IDENTIFIER_RETURN(); }
    2656         YY_BREAK
    2657 case 173:
    2658 YY_RULE_SETUP
    2659 #line 361 "lex.ll"
    2660 { IDENTIFIER_RETURN(); }
    2661         YY_BREAK
    2662 case 174:
    2663 YY_RULE_SETUP
    2664 #line 362 "lex.ll"
    26652621{ IDENTIFIER_RETURN(); }                // binary
    26662622        YY_BREAK
     
    26912647          an argument list.
    26922648        */
    2693 case 175:
    2694 YY_RULE_SETUP
    2695 #line 389 "lex.ll"
     2649case 169:
     2650YY_RULE_SETUP
     2651#line 383 "lex.ll"
    26962652{
    26972653        // 1 or 2 character unary operator ?
     
    27062662        YY_BREAK
    27072663/* unknown characters */
    2708 case 176:
    2709 YY_RULE_SETUP
    2710 #line 401 "lex.ll"
     2664case 170:
     2665YY_RULE_SETUP
     2666#line 395 "lex.ll"
    27112667{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    27122668        YY_BREAK
    2713 case 177:
    2714 YY_RULE_SETUP
    2715 #line 403 "lex.ll"
     2669case 171:
     2670YY_RULE_SETUP
     2671#line 397 "lex.ll"
    27162672ECHO;
    27172673        YY_BREAK
    2718 #line 2719 "Parser/lex.cc"
     2674#line 2675 "Parser/lex.cc"
    27192675case YY_STATE_EOF(INITIAL):
    27202676case YY_STATE_EOF(COMMENT):
     
    30132969                        {
    30142970                        yy_current_state = (int) yy_def[yy_current_state];
    3015                         if ( yy_current_state >= 851 )
     2971                        if ( yy_current_state >= 826 )
    30162972                                yy_c = yy_meta[(unsigned int) yy_c];
    30172973                        }
     
    30412997                {
    30422998                yy_current_state = (int) yy_def[yy_current_state];
    3043                 if ( yy_current_state >= 851 )
     2999                if ( yy_current_state >= 826 )
    30443000                        yy_c = yy_meta[(unsigned int) yy_c];
    30453001                }
    30463002        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3047         yy_is_jam = (yy_current_state == 850);
     3003        yy_is_jam = (yy_current_state == 825);
    30483004
    30493005        return yy_is_jam ? 0 : yy_current_state;
     
    36913647#define YYTABLES_NAME "yytables"
    36923648
    3693 #line 403 "lex.ll"
     3649#line 397 "lex.ll"
    36943650
    36953651
  • src/Parser/lex.ll

    r0800284 rb0be06ac  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Mon Sep 28 17:07:48 2015
    13  * Update Count     : 402
     12 * Last Modified On : Fri Jun 19 11:10:14 2015
     13 * Update Count     : 392
    1414 */
    1515
     
    182182__asm                   { KEYWORD_RETURN(ASM); }                                // GCC
    183183__asm__                 { KEYWORD_RETURN(ASM); }                                // GCC
    184 _At                             { KEYWORD_RETURN(AT); }                                 // CFA
    185184_Atomic                 { KEYWORD_RETURN(ATOMIC); }                             // C11
    186185__attribute             { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     
    191190case                    { KEYWORD_RETURN(CASE); }
    192191catch                   { KEYWORD_RETURN(CATCH); }                              // CFA
    193 catchResume             { KEYWORD_RETURN(CATCHRESUME); }                // CFA
    194192char                    { KEYWORD_RETURN(CHAR); }
    195193choose                  { KEYWORD_RETURN(CHOOSE); }                             // CFA
     
    203201continue                { KEYWORD_RETURN(CONTINUE); }
    204202default                 { KEYWORD_RETURN(DEFAULT); }
    205 disable                 { KEYWORD_RETURN(DISABLE); }                    // CFA
    206203do                              { KEYWORD_RETURN(DO); }
    207204double                  { KEYWORD_RETURN(DOUBLE); }
    208205dtype                   { KEYWORD_RETURN(DTYPE); }                              // CFA
    209206else                    { KEYWORD_RETURN(ELSE); }
    210 enable                  { KEYWORD_RETURN(ENABLE); }                             // CFA
    211207enum                    { KEYWORD_RETURN(ENUM); }
    212208__extension__   { KEYWORD_RETURN(EXTENSION); }                  // GCC
     
    251247_Thread_local   { KEYWORD_RETURN(THREADLOCAL); }                // C11
    252248throw                   { KEYWORD_RETURN(THROW); }                              // CFA
    253 throwResume             { KEYWORD_RETURN(THROWRESUME); }                // CFA
    254249try                             { KEYWORD_RETURN(TRY); }                                // CFA
    255250type                    { KEYWORD_RETURN(TYPE); }                               // CFA
     
    359354{op_unary}"?"   { IDENTIFIER_RETURN(); }                                // unary
    360355"?"({op_unary_pre_post}|"()"|"[?]"|"{}") { IDENTIFIER_RETURN(); }
    361 "^?{}" { IDENTIFIER_RETURN(); }
    362356"?"{op_binary_over}"?"  { IDENTIFIER_RETURN(); }                // binary
    363357        /*
     
    387381          an argument list.
    388382        */
    389 {op_unary}"?"({op_unary_pre_post}|"[?]"|{op_binary_over}"?") {
     383{op_unary}"?"(({op_unary_pre_post}|"[?]")|({op_binary_over}"?")) {
    390384        // 1 or 2 character unary operator ?
    391385        int i = yytext[1] == '?' ? 1 : 2;
  • src/Parser/parser.cc

    r0800284 rb0be06ac  
    166166     RETURN = 305,
    167167     CHOOSE = 306,
    168      DISABLE = 307,
    169      ENABLE = 308,
    170      FALLTHRU = 309,
    171      TRY = 310,
    172      CATCH = 311,
    173      CATCHRESUME = 312,
    174      FINALLY = 313,
    175      THROW = 314,
    176      THROWRESUME = 315,
    177      AT = 316,
    178      ASM = 317,
    179      ALIGNAS = 318,
    180      ALIGNOF = 319,
    181      ATOMIC = 320,
    182      GENERIC = 321,
    183      NORETURN = 322,
    184      STATICASSERT = 323,
    185      THREADLOCAL = 324,
    186      IDENTIFIER = 325,
    187      QUOTED_IDENTIFIER = 326,
    188      TYPEDEFname = 327,
    189      TYPEGENname = 328,
    190      ATTR_IDENTIFIER = 329,
    191      ATTR_TYPEDEFname = 330,
    192      ATTR_TYPEGENname = 331,
    193      INTEGERconstant = 332,
    194      FLOATINGconstant = 333,
    195      CHARACTERconstant = 334,
    196      STRINGliteral = 335,
    197      ZERO = 336,
    198      ONE = 337,
    199      ARROW = 338,
    200      ICR = 339,
    201      DECR = 340,
    202      LS = 341,
    203      RS = 342,
    204      LE = 343,
    205      GE = 344,
    206      EQ = 345,
    207      NE = 346,
    208      ANDAND = 347,
    209      OROR = 348,
    210      ELLIPSIS = 349,
    211      MULTassign = 350,
    212      DIVassign = 351,
    213      MODassign = 352,
    214      PLUSassign = 353,
    215      MINUSassign = 354,
    216      LSassign = 355,
    217      RSassign = 356,
    218      ANDassign = 357,
    219      ERassign = 358,
    220      ORassign = 359,
    221      THEN = 360
     168     FALLTHRU = 307,
     169     TRY = 308,
     170     CATCH = 309,
     171     FINALLY = 310,
     172     THROW = 311,
     173     ASM = 312,
     174     ALIGNAS = 313,
     175     ALIGNOF = 314,
     176     ATOMIC = 315,
     177     GENERIC = 316,
     178     NORETURN = 317,
     179     STATICASSERT = 318,
     180     THREADLOCAL = 319,
     181     IDENTIFIER = 320,
     182     QUOTED_IDENTIFIER = 321,
     183     TYPEDEFname = 322,
     184     TYPEGENname = 323,
     185     ATTR_IDENTIFIER = 324,
     186     ATTR_TYPEDEFname = 325,
     187     ATTR_TYPEGENname = 326,
     188     INTEGERconstant = 327,
     189     FLOATINGconstant = 328,
     190     CHARACTERconstant = 329,
     191     STRINGliteral = 330,
     192     ZERO = 331,
     193     ONE = 332,
     194     ARROW = 333,
     195     ICR = 334,
     196     DECR = 335,
     197     LS = 336,
     198     RS = 337,
     199     LE = 338,
     200     GE = 339,
     201     EQ = 340,
     202     NE = 341,
     203     ANDAND = 342,
     204     OROR = 343,
     205     ELLIPSIS = 344,
     206     MULTassign = 345,
     207     DIVassign = 346,
     208     MODassign = 347,
     209     PLUSassign = 348,
     210     MINUSassign = 349,
     211     LSassign = 350,
     212     RSassign = 351,
     213     ANDassign = 352,
     214     ERassign = 353,
     215     ORassign = 354,
     216     THEN = 355
    222217   };
    223218#endif
     
    272267#define RETURN 305
    273268#define CHOOSE 306
    274 #define DISABLE 307
    275 #define ENABLE 308
    276 #define FALLTHRU 309
    277 #define TRY 310
    278 #define CATCH 311
    279 #define CATCHRESUME 312
    280 #define FINALLY 313
    281 #define THROW 314
    282 #define THROWRESUME 315
    283 #define AT 316
    284 #define ASM 317
    285 #define ALIGNAS 318
    286 #define ALIGNOF 319
    287 #define ATOMIC 320
    288 #define GENERIC 321
    289 #define NORETURN 322
    290 #define STATICASSERT 323
    291 #define THREADLOCAL 324
    292 #define IDENTIFIER 325
    293 #define QUOTED_IDENTIFIER 326
    294 #define TYPEDEFname 327
    295 #define TYPEGENname 328
    296 #define ATTR_IDENTIFIER 329
    297 #define ATTR_TYPEDEFname 330
    298 #define ATTR_TYPEGENname 331
    299 #define INTEGERconstant 332
    300 #define FLOATINGconstant 333
    301 #define CHARACTERconstant 334
    302 #define STRINGliteral 335
    303 #define ZERO 336
    304 #define ONE 337
    305 #define ARROW 338
    306 #define ICR 339
    307 #define DECR 340
    308 #define LS 341
    309 #define RS 342
    310 #define LE 343
    311 #define GE 344
    312 #define EQ 345
    313 #define NE 346
    314 #define ANDAND 347
    315 #define OROR 348
    316 #define ELLIPSIS 349
    317 #define MULTassign 350
    318 #define DIVassign 351
    319 #define MODassign 352
    320 #define PLUSassign 353
    321 #define MINUSassign 354
    322 #define LSassign 355
    323 #define RSassign 356
    324 #define ANDassign 357
    325 #define ERassign 358
    326 #define ORassign 359
    327 #define THEN 360
     269#define FALLTHRU 307
     270#define TRY 308
     271#define CATCH 309
     272#define FINALLY 310
     273#define THROW 311
     274#define ASM 312
     275#define ALIGNAS 313
     276#define ALIGNOF 314
     277#define ATOMIC 315
     278#define GENERIC 316
     279#define NORETURN 317
     280#define STATICASSERT 318
     281#define THREADLOCAL 319
     282#define IDENTIFIER 320
     283#define QUOTED_IDENTIFIER 321
     284#define TYPEDEFname 322
     285#define TYPEGENname 323
     286#define ATTR_IDENTIFIER 324
     287#define ATTR_TYPEDEFname 325
     288#define ATTR_TYPEGENname 326
     289#define INTEGERconstant 327
     290#define FLOATINGconstant 328
     291#define CHARACTERconstant 329
     292#define STRINGliteral 330
     293#define ZERO 331
     294#define ONE 332
     295#define ARROW 333
     296#define ICR 334
     297#define DECR 335
     298#define LS 336
     299#define RS 337
     300#define LE 338
     301#define GE 339
     302#define EQ 340
     303#define NE 341
     304#define ANDAND 342
     305#define OROR 343
     306#define ELLIPSIS 344
     307#define MULTassign 345
     308#define DIVassign 346
     309#define MODassign 347
     310#define PLUSassign 348
     311#define MINUSassign 349
     312#define LSassign 350
     313#define RSassign 351
     314#define ANDassign 352
     315#define ERassign 353
     316#define ORassign 354
     317#define THEN 355
    328318
    329319
     
    352342
    353343/* Line 293 of yacc.c  */
    354 #line 355 "Parser/parser.cc"
     344#line 345 "Parser/parser.cc"
    355345} YYSTYPE;
    356346# define YYSTYPE_IS_TRIVIAL 1
     
    364354
    365355/* Line 343 of yacc.c  */
    366 #line 367 "Parser/parser.cc"
     356#line 357 "Parser/parser.cc"
    367357
    368358#ifdef short
     
    583573#define YYFINAL  246
    584574/* YYLAST -- Last index in YYTABLE.  */
    585 #define YYLAST   11027
     575#define YYLAST   11329
    586576
    587577/* YYNTOKENS -- Number of terminals.  */
    588 #define YYNTOKENS  130
     578#define YYNTOKENS  125
    589579/* YYNNTS -- Number of nonterminals.  */
    590 #define YYNNTS  240
     580#define YYNNTS  238
    591581/* YYNRULES -- Number of rules.  */
    592 #define YYNRULES  750
     582#define YYNRULES  740
    593583/* YYNRULES -- Number of states.  */
    594 #define YYNSTATES  1574
     584#define YYNSTATES  1530
    595585
    596586/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    597587#define YYUNDEFTOK  2
    598 #define YYMAXUTOK   360
     588#define YYMAXUTOK   355
    599589
    600590#define YYTRANSLATE(YYX)                                                \
     
    607597       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    608598       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    609        2,     2,     2,   115,     2,     2,     2,   122,   117,     2,
    610      106,   107,   116,   118,   113,   119,   110,   121,     2,     2,
    611        2,     2,     2,     2,     2,     2,     2,     2,   114,   129,
    612      123,   128,   124,   127,     2,     2,     2,     2,     2,     2,
     599       2,     2,     2,   110,     2,     2,     2,   117,   112,     2,
     600     101,   102,   111,   113,   108,   114,   105,   116,     2,     2,
     601       2,     2,     2,     2,     2,     2,     2,     2,   109,   124,
     602     118,   123,   119,   122,     2,     2,     2,     2,     2,     2,
    613603       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    614604       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    615        2,   108,     2,   109,   125,     2,     2,     2,     2,     2,
     605       2,   103,     2,   104,   120,     2,     2,     2,     2,     2,
    616606       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    617607       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    618        2,     2,     2,   111,   126,   112,   120,     2,     2,     2,
     608       2,     2,     2,   106,   121,   107,   115,     2,     2,     2,
    619609       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    620610       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    639629      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    640630      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    641       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    642      105
     631      95,    96,    97,    98,    99,   100
    643632};
    644633
     
    649638{
    650639       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    651       17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    652       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    653       86,    89,    92,   100,   102,   106,   107,   109,   113,   121,
    654      131,   133,   137,   139,   143,   151,   155,   163,   165,   167,
    655      169,   172,   175,   178,   181,   184,   187,   190,   195,   197,
    656      202,   207,   210,   215,   218,   220,   222,   224,   226,   228,
    657      233,   238,   240,   244,   248,   252,   254,   258,   262,   264,
    658      268,   272,   274,   278,   282,   286,   290,   292,   296,   300,
    659      302,   306,   308,   312,   314,   318,   320,   324,   326,   330,
    660      332,   338,   343,   349,   351,   353,   357,   361,   364,   365,
    661      367,   370,   376,   383,   391,   393,   397,   399,   401,   403,
    662      405,   407,   409,   411,   413,   415,   417,   419,   423,   424,
    663      426,   428,   430,   432,   434,   436,   438,   440,   442,   444,
    664      449,   452,   460,   462,   466,   468,   471,   473,   476,   478,
    665      481,   484,   490,   498,   504,   514,   520,   530,   532,   536,
    666      538,   540,   544,   548,   551,   553,   556,   559,   560,   562,
    667      565,   569,   570,   572,   575,   579,   583,   588,   589,   591,
    668      593,   596,   602,   610,   617,   624,   629,   633,   638,   641,
    669      645,   648,   652,   656,   660,   664,   670,   674,   678,   683,
    670      685,   691,   698,   704,   711,   721,   732,   742,   753,   756,
    671      758,   761,   764,   767,   769,   776,   785,   796,   809,   824,
    672      825,   827,   828,   830,   832,   836,   841,   849,   850,   852,
    673      856,   858,   862,   868,   874,   876,   878,   880,   884,   886,
    674      888,   890,   894,   895,   897,   901,   906,   908,   912,   914,
    675      916,   920,   924,   928,   932,   936,   939,   943,   950,   954,
    676      958,   963,   965,   968,   971,   975,   981,   990,   998,  1006,
    677     1012,  1022,  1025,  1028,  1034,  1038,  1044,  1049,  1053,  1058,
    678     1063,  1071,  1075,  1079,  1083,  1087,  1092,  1099,  1101,  1103,
    679     1105,  1107,  1109,  1111,  1113,  1115,  1116,  1118,  1120,  1123,
    680     1125,  1127,  1129,  1131,  1133,  1135,  1137,  1138,  1144,  1146,
    681     1149,  1153,  1155,  1158,  1160,  1162,  1164,  1166,  1168,  1170,
    682     1172,  1174,  1176,  1178,  1180,  1182,  1184,  1186,  1188,  1190,
    683     1192,  1194,  1196,  1198,  1200,  1202,  1205,  1208,  1212,  1216,
    684     1218,  1222,  1224,  1227,  1230,  1233,  1238,  1243,  1248,  1253,
    685     1255,  1258,  1261,  1265,  1267,  1270,  1273,  1275,  1278,  1281,
    686     1285,  1287,  1290,  1293,  1295,  1297,  1302,  1305,  1311,  1319,
    687     1322,  1325,  1328,  1330,  1333,  1336,  1340,  1343,  1347,  1349,
    688     1352,  1356,  1359,  1362,  1367,  1368,  1370,  1373,  1376,  1378,
    689     1379,  1381,  1384,  1387,  1393,  1400,  1403,  1406,  1411,  1412,
    690     1415,  1416,  1418,  1420,  1422,  1428,  1434,  1440,  1442,  1448,
    691     1454,  1464,  1466,  1472,  1473,  1475,  1477,  1483,  1485,  1487,
    692     1493,  1499,  1501,  1505,  1509,  1514,  1516,  1518,  1520,  1522,
    693     1525,  1527,  1531,  1535,  1537,  1540,  1542,  1546,  1548,  1550,
    694     1552,  1554,  1556,  1558,  1560,  1562,  1564,  1566,  1568,  1571,
    695     1573,  1575,  1577,  1580,  1581,  1584,  1586,  1591,  1593,  1596,
    696     1600,  1605,  1608,  1611,  1613,  1616,  1618,  1621,  1627,  1633,
    697     1641,  1648,  1650,  1653,  1656,  1660,  1662,  1665,  1668,  1673,
    698     1676,  1681,  1682,  1687,  1690,  1692,  1694,  1696,  1697,  1700,
    699     1706,  1712,  1726,  1728,  1730,  1734,  1738,  1741,  1745,  1749,
    700     1752,  1757,  1759,  1766,  1776,  1777,  1789,  1791,  1795,  1799,
    701     1803,  1805,  1807,  1813,  1816,  1822,  1823,  1825,  1827,  1831,
    702     1832,  1834,  1836,  1838,  1840,  1841,  1848,  1851,  1853,  1856,
    703     1861,  1864,  1868,  1872,  1876,  1881,  1887,  1893,  1899,  1906,
    704     1908,  1910,  1912,  1916,  1917,  1923,  1924,  1926,  1928,  1931,
    705     1938,  1940,  1944,  1945,  1947,  1952,  1954,  1956,  1958,  1960,
    706     1963,  1965,  1968,  1971,  1973,  1977,  1980,  1984,  1988,  1991,
    707     1996,  2001,  2005,  2014,  2018,  2021,  2023,  2026,  2033,  2042,
    708     2046,  2049,  2053,  2057,  2062,  2067,  2071,  2073,  2075,  2077,
    709     2082,  2089,  2093,  2096,  2100,  2104,  2109,  2114,  2118,  2121,
    710     2123,  2126,  2129,  2131,  2135,  2138,  2142,  2146,  2149,  2154,
    711     2159,  2163,  2170,  2179,  2183,  2186,  2188,  2191,  2194,  2197,
    712     2201,  2205,  2208,  2213,  2218,  2222,  2229,  2238,  2242,  2245,
    713     2247,  2250,  2253,  2255,  2257,  2260,  2264,  2268,  2271,  2276,
    714     2283,  2292,  2294,  2297,  2300,  2302,  2305,  2308,  2312,  2316,
    715     2318,  2323,  2328,  2332,  2338,  2347,  2351,  2354,  2358,  2360,
    716     2366,  2372,  2379,  2386,  2388,  2391,  2394,  2396,  2399,  2402,
    717     2406,  2410,  2412,  2417,  2422,  2426,  2432,  2441,  2445,  2447,
    718     2450,  2452,  2455,  2462,  2468,  2475,  2483,  2491,  2493,  2496,
    719     2499,  2501,  2504,  2507,  2511,  2515,  2517,  2522,  2527,  2531,
    720     2540,  2544,  2546,  2548,  2551,  2553,  2555,  2558,  2562,  2565,
    721     2569,  2572,  2576,  2580,  2583,  2588,  2592,  2595,  2599,  2602,
    722     2607,  2611,  2614,  2621,  2628,  2635,  2643,  2645,  2648,  2650,
    723     2652,  2654,  2657,  2661,  2664,  2668,  2671,  2675,  2679,  2684,
    724     2687,  2691,  2696,  2699,  2705,  2711,  2718,  2725,  2726,  2728,
    725     2729
     640      17,    19,    21,    23,    25,    27,    29,    32,    34,    36,
     641      40,    44,    46,    53,    58,    62,    70,    74,    82,    85,
     642      88,    96,    98,   102,   103,   105,   109,   117,   127,   129,
     643     133,   135,   139,   147,   151,   159,   161,   163,   165,   168,
     644     171,   174,   177,   180,   183,   186,   191,   193,   198,   203,
     645     206,   211,   214,   216,   218,   220,   222,   224,   229,   234,
     646     236,   240,   244,   248,   250,   254,   258,   260,   264,   268,
     647     270,   274,   278,   282,   286,   288,   292,   296,   298,   302,
     648     304,   308,   310,   314,   316,   320,   322,   326,   328,   334,
     649     339,   345,   347,   349,   353,   357,   360,   361,   363,   366,
     650     372,   379,   387,   389,   393,   395,   397,   399,   401,   403,
     651     405,   407,   409,   411,   413,   415,   419,   420,   422,   424,
     652     426,   428,   430,   432,   434,   436,   438,   443,   446,   454,
     653     456,   460,   462,   465,   467,   470,   472,   475,   478,   484,
     654     492,   498,   508,   514,   524,   526,   530,   532,   534,   538,
     655     542,   545,   547,   550,   553,   554,   556,   559,   563,   564,
     656     566,   569,   573,   577,   582,   583,   585,   587,   590,   596,
     657     604,   611,   618,   623,   627,   632,   635,   639,   642,   646,
     658     650,   654,   657,   661,   665,   670,   672,   678,   685,   695,
     659     706,   709,   711,   714,   717,   720,   722,   729,   738,   749,
     660     762,   777,   778,   780,   781,   783,   785,   789,   794,   802,
     661     803,   805,   809,   811,   815,   817,   819,   821,   825,   827,
     662     829,   831,   835,   836,   838,   842,   847,   849,   853,   855,
     663     857,   861,   865,   869,   873,   877,   880,   884,   891,   895,
     664     899,   904,   906,   909,   912,   916,   922,   931,   939,   947,
     665     953,   963,   966,   969,   975,   979,   985,   990,   994,   999,
     666    1004,  1012,  1016,  1020,  1024,  1028,  1033,  1040,  1042,  1044,
     667    1046,  1048,  1050,  1052,  1054,  1056,  1057,  1059,  1061,  1064,
     668    1066,  1068,  1070,  1072,  1074,  1076,  1078,  1079,  1085,  1087,
     669    1090,  1094,  1096,  1099,  1101,  1103,  1105,  1107,  1109,  1111,
     670    1113,  1115,  1117,  1119,  1121,  1123,  1125,  1127,  1129,  1131,
     671    1133,  1135,  1137,  1139,  1141,  1143,  1146,  1149,  1153,  1157,
     672    1159,  1163,  1165,  1168,  1171,  1174,  1179,  1184,  1189,  1194,
     673    1196,  1199,  1202,  1206,  1208,  1211,  1214,  1216,  1219,  1222,
     674    1226,  1228,  1231,  1234,  1236,  1238,  1243,  1246,  1252,  1260,
     675    1263,  1266,  1269,  1271,  1274,  1277,  1281,  1284,  1288,  1290,
     676    1293,  1297,  1300,  1303,  1308,  1309,  1311,  1314,  1317,  1319,
     677    1320,  1322,  1325,  1328,  1334,  1341,  1344,  1347,  1352,  1353,
     678    1356,  1357,  1359,  1361,  1363,  1369,  1375,  1381,  1383,  1389,
     679    1395,  1405,  1407,  1413,  1414,  1416,  1418,  1424,  1426,  1428,
     680    1434,  1440,  1442,  1446,  1450,  1455,  1457,  1459,  1461,  1463,
     681    1466,  1468,  1472,  1476,  1478,  1481,  1483,  1487,  1489,  1491,
     682    1493,  1495,  1497,  1499,  1501,  1503,  1505,  1507,  1509,  1512,
     683    1514,  1516,  1518,  1521,  1522,  1525,  1527,  1532,  1534,  1537,
     684    1541,  1546,  1549,  1552,  1554,  1557,  1559,  1562,  1568,  1574,
     685    1582,  1589,  1591,  1594,  1597,  1601,  1603,  1606,  1609,  1614,
     686    1617,  1622,  1623,  1628,  1631,  1633,  1635,  1637,  1638,  1641,
     687    1647,  1653,  1667,  1669,  1671,  1675,  1679,  1682,  1686,  1690,
     688    1693,  1698,  1700,  1707,  1717,  1718,  1730,  1732,  1736,  1740,
     689    1744,  1746,  1748,  1754,  1757,  1763,  1764,  1766,  1768,  1772,
     690    1773,  1775,  1777,  1779,  1781,  1782,  1789,  1792,  1794,  1797,
     691    1802,  1805,  1809,  1813,  1817,  1822,  1828,  1834,  1840,  1847,
     692    1849,  1851,  1853,  1857,  1858,  1864,  1865,  1867,  1869,  1872,
     693    1879,  1881,  1885,  1886,  1888,  1893,  1895,  1897,  1899,  1901,
     694    1904,  1906,  1909,  1912,  1914,  1918,  1921,  1925,  1929,  1932,
     695    1937,  1942,  1946,  1955,  1959,  1962,  1964,  1967,  1974,  1983,
     696    1987,  1990,  1994,  1998,  2003,  2008,  2012,  2014,  2016,  2018,
     697    2023,  2030,  2034,  2037,  2041,  2045,  2050,  2055,  2059,  2062,
     698    2064,  2067,  2070,  2072,  2076,  2079,  2083,  2087,  2090,  2095,
     699    2100,  2104,  2111,  2120,  2124,  2127,  2129,  2132,  2135,  2138,
     700    2142,  2146,  2149,  2154,  2159,  2163,  2170,  2179,  2183,  2186,
     701    2188,  2191,  2194,  2196,  2198,  2201,  2205,  2209,  2212,  2217,
     702    2224,  2233,  2235,  2238,  2241,  2243,  2246,  2249,  2253,  2257,
     703    2259,  2264,  2269,  2273,  2279,  2288,  2292,  2295,  2299,  2301,
     704    2307,  2313,  2320,  2327,  2329,  2332,  2335,  2337,  2340,  2343,
     705    2347,  2351,  2353,  2358,  2363,  2367,  2373,  2382,  2386,  2388,
     706    2391,  2393,  2396,  2403,  2409,  2416,  2424,  2432,  2434,  2437,
     707    2440,  2442,  2445,  2448,  2452,  2456,  2458,  2463,  2468,  2472,
     708    2481,  2485,  2487,  2489,  2492,  2494,  2496,  2499,  2503,  2506,
     709    2510,  2513,  2517,  2521,  2524,  2529,  2533,  2536,  2540,  2543,
     710    2548,  2552,  2555,  2562,  2569,  2576,  2584,  2586,  2589,  2591,
     711    2593,  2595,  2598,  2602,  2605,  2609,  2612,  2616,  2620,  2625,
     712    2628,  2632,  2637,  2640,  2646,  2652,  2659,  2666,  2667,  2669,
     713    2670
    726714};
    727715
     
    729717static const yytype_int16 yyrhs[] =
    730718{
    731      298,     0,    -1,    -1,    -1,    77,    -1,    78,    -1,    79,
    732       -1,    70,    -1,    74,    -1,   138,    -1,    70,    -1,    74,
    733       -1,    70,    -1,    70,    -1,   138,    -1,    81,    -1,    82,
    734       -1,    80,    -1,   139,    80,    -1,    70,    -1,   138,    -1,
    735      106,   166,   107,    -1,   106,   170,   107,    -1,   140,    -1,
    736      141,   108,   131,   161,   132,   109,    -1,   141,   106,   142,
    737      107,    -1,   141,   110,   136,    -1,   141,   110,   108,   131,
    738      144,   132,   109,    -1,   141,    83,   136,    -1,   141,    83,
    739      108,   131,   144,   132,   109,    -1,   141,    84,    -1,   141,
    740       85,    -1,   106,   271,   107,   111,   275,   368,   112,    -1,
    741      143,    -1,   142,   113,   143,    -1,    -1,   161,    -1,   136,
    742      114,   161,    -1,   108,   131,   161,   132,   109,   114,   161,
    743       -1,   108,   131,   161,   113,   164,   132,   109,   114,   161,
    744       -1,   145,    -1,   144,   113,   145,    -1,   136,    -1,   136,
    745      110,   145,    -1,   136,   110,   108,   131,   144,   132,   109,
    746       -1,   136,    83,   145,    -1,   136,    83,   108,   131,   144,
    747      132,   109,    -1,   141,    -1,   133,    -1,   139,    -1,    84,
    748      146,    -1,    85,   146,    -1,    38,   148,    -1,   147,   148,
    749       -1,   115,   148,    -1,   116,   148,    -1,    36,   146,    -1,
    750       36,   106,   271,   107,    -1,    74,    -1,    74,   106,   272,
    751      107,    -1,    74,   106,   143,   107,    -1,    64,   146,    -1,
    752       64,   106,   271,   107,    -1,    92,   136,    -1,   117,    -1,
    753      118,    -1,   119,    -1,   120,    -1,   146,    -1,   106,   271,
    754      107,   148,    -1,   106,   271,   107,   163,    -1,   148,    -1,
    755      149,   116,   148,    -1,   149,   121,   148,    -1,   149,   122,
    756      148,    -1,   149,    -1,   150,   118,   149,    -1,   150,   119,
    757      149,    -1,   150,    -1,   151,    86,   150,    -1,   151,    87,
    758      150,    -1,   151,    -1,   152,   123,   151,    -1,   152,   124,
    759      151,    -1,   152,    88,   151,    -1,   152,    89,   151,    -1,
    760      152,    -1,   153,    90,   152,    -1,   153,    91,   152,    -1,
    761      153,    -1,   154,   117,   153,    -1,   154,    -1,   155,   125,
    762      154,    -1,   155,    -1,   156,   126,   155,    -1,   156,    -1,
    763      157,    92,   156,    -1,   157,    -1,   158,    93,   157,    -1,
    764      158,    -1,   158,   127,   166,   114,   159,    -1,   158,   127,
    765      114,   159,    -1,   158,   127,   166,   114,   163,    -1,   159,
    766       -1,   159,    -1,   146,   128,   161,    -1,   146,   165,   161,
    767       -1,   163,   369,    -1,    -1,   161,    -1,   108,   109,    -1,
    768      108,   131,   161,   132,   109,    -1,   108,   131,   113,   164,
    769      132,   109,    -1,   108,   131,   161,   113,   164,   132,   109,
    770       -1,   162,    -1,   164,   113,   162,    -1,    95,    -1,    96,
    771       -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,   101,
    772       -1,   102,    -1,   103,    -1,   104,    -1,   161,    -1,   166,
    773      113,   161,    -1,    -1,   166,    -1,   169,    -1,   170,    -1,
    774      174,    -1,   175,    -1,   187,    -1,   189,    -1,   190,    -1,
    775      195,    -1,   202,    -1,   136,   114,   308,   168,    -1,   111,
    776      112,    -1,   111,   131,   131,   207,   171,   132,   112,    -1,
    777      172,    -1,   171,   131,   172,    -1,   210,    -1,    38,   210,
    778       -1,   304,    -1,   168,   132,    -1,   168,    -1,   173,   168,
    779       -1,   167,   129,    -1,    39,   106,   166,   107,   168,    -1,
    780       39,   106,   166,   107,   168,    40,   168,    -1,    41,   106,
    781      166,   107,   180,    -1,    41,   106,   166,   107,   111,   131,
    782      203,   181,   112,    -1,    51,   106,   166,   107,   180,    -1,
    783       51,   106,   166,   107,   111,   131,   203,   183,   112,    -1,
    784      160,    -1,   160,    94,   160,    -1,   306,    -1,   176,    -1,
    785      177,   113,   176,    -1,    42,   177,   114,    -1,    43,   114,
    786       -1,   178,    -1,   179,   178,    -1,   179,   168,    -1,    -1,
    787      182,    -1,   179,   173,    -1,   182,   179,   173,    -1,    -1,
    788      184,    -1,   179,   186,    -1,   179,   173,   185,    -1,   184,
    789      179,   186,    -1,   184,   179,   173,   185,    -1,    -1,   186,
    790       -1,    54,    -1,    54,   129,    -1,    45,   106,   166,   107,
    791      168,    -1,    44,   168,    45,   106,   166,   107,   129,    -1,
    792       46,   106,   131,   188,   107,   168,    -1,   167,   132,   129,
    793      167,   129,   167,    -1,   210,   167,   129,   167,    -1,    49,
    794      136,   129,    -1,    49,   116,   166,   129,    -1,    48,   129,
    795       -1,    48,   136,   129,    -1,    47,   129,    -1,    47,   136,
    796      129,    -1,    50,   167,   129,    -1,    59,   162,   129,    -1,
    797       60,   162,   129,    -1,    60,   162,    61,   161,   129,    -1,
    798       55,   170,   191,    -1,    55,   170,   193,    -1,    55,   170,
    799      191,   193,    -1,   192,    -1,    56,   106,    94,   107,   170,
    800       -1,   192,    56,   106,    94,   107,   170,    -1,    57,   106,
    801       94,   107,   170,    -1,   192,    57,   106,    94,   107,   170,
    802       -1,    56,   106,   131,   131,   194,   132,   107,   170,   132,
    803       -1,   192,    56,   106,   131,   131,   194,   132,   107,   170,
    804      132,    -1,    57,   106,   131,   131,   194,   132,   107,   170,
    805      132,    -1,   192,    57,   106,   131,   131,   194,   132,   107,
    806      170,   132,    -1,    58,   170,    -1,   223,    -1,   223,   305,
    807       -1,   223,   353,    -1,   362,   136,    -1,   362,    -1,    62,
    808      196,   106,   139,   107,   129,    -1,    62,   196,   106,   139,
    809      114,   197,   107,   129,    -1,    62,   196,   106,   139,   114,
    810      197,   114,   197,   107,   129,    -1,    62,   196,   106,   139,
    811      114,   197,   114,   197,   114,   200,   107,   129,    -1,    62,
    812      196,    49,   106,   139,   114,   114,   197,   114,   200,   114,
    813      201,   107,   129,    -1,    -1,    11,    -1,    -1,   198,    -1,
    814      199,    -1,   198,   113,   199,    -1,   139,   106,   160,   107,
    815       -1,   108,   160,   109,   139,   106,   160,   107,    -1,    -1,
    816      139,    -1,   200,   113,   139,    -1,   136,    -1,   201,   113,
    817      136,    -1,   137,   111,   142,   112,   129,    -1,   125,   137,
    818      111,   112,   129,    -1,   132,    -1,   204,    -1,   210,    -1,
    819      204,   131,   210,    -1,   132,    -1,   206,    -1,   220,    -1,
    820      206,   131,   220,    -1,    -1,   208,    -1,    28,   209,   129,
    821       -1,   208,    28,   209,   129,    -1,   270,    -1,   209,   113,
    822      270,    -1,   211,    -1,   220,    -1,   212,   132,   129,    -1,
    823      217,   132,   129,    -1,   214,   132,   129,    -1,   289,   132,
    824      129,    -1,   292,   132,   129,    -1,   213,   273,    -1,   229,
    825      213,   273,    -1,   212,   132,   113,   131,   268,   273,    -1,
    826      363,   268,   307,    -1,   366,   268,   307,    -1,   225,   366,
    827      268,   307,    -1,   215,    -1,   225,   215,    -1,   229,   215,
    828       -1,   229,   225,   215,    -1,   214,   132,   113,   131,   268,
    829       -1,   108,   109,   268,   106,   131,   256,   132,   107,    -1,
    830      366,   268,   106,   131,   256,   132,   107,    -1,   216,   268,
    831      106,   131,   256,   132,   107,    -1,   108,   131,   258,   132,
    832      109,    -1,   108,   131,   258,   132,   113,   131,   259,   132,
    833      109,    -1,     3,   213,    -1,     3,   215,    -1,   217,   132,
    834      113,   131,   136,    -1,     3,   223,   305,    -1,   218,   132,
    835      113,   131,   305,    -1,   225,     3,   223,   305,    -1,   223,
    836        3,   305,    -1,   223,     3,   225,   305,    -1,     3,   136,
    837      128,   161,    -1,   219,   132,   113,   131,   136,   128,   161,
    838       -1,   221,   132,   129,    -1,   218,   132,   129,    -1,   219,
    839      132,   129,    -1,   238,   132,   129,    -1,   222,   305,   307,
    840      273,    -1,   221,   113,   308,   305,   307,   273,    -1,   234,
    841       -1,   238,    -1,   240,    -1,   279,    -1,   235,    -1,   239,
    842       -1,   241,    -1,   280,    -1,    -1,   225,    -1,   226,    -1,
    843      225,   226,    -1,   227,    -1,   310,    -1,    10,    -1,    12,
    844       -1,    11,    -1,    14,    -1,    65,    -1,    -1,    13,   106,
    845      228,   282,   107,    -1,   230,    -1,   225,   230,    -1,   229,
    846      225,   230,    -1,   231,    -1,   230,   231,    -1,   232,    -1,
    847        5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,
    848        9,    -1,    67,    -1,    69,    -1,    16,    -1,    21,    -1,
    849       20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,
    850       23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,    -1,
    851      235,    -1,   229,   235,    -1,   234,   231,    -1,   234,   231,
    852      225,    -1,   234,   231,   235,    -1,   236,    -1,   224,   237,
    853      224,    -1,   233,    -1,   225,   233,    -1,   236,   226,    -1,
    854      236,   233,    -1,    27,   106,   272,   107,    -1,    27,   106,
    855      166,   107,    -1,    76,   106,   272,   107,    -1,    76,   106,
    856      166,   107,    -1,   239,    -1,   229,   239,    -1,   238,   231,
    857       -1,   238,   231,   225,    -1,   242,    -1,   225,   242,    -1,
    858      239,   226,    -1,   241,    -1,   229,   241,    -1,   240,   231,
    859       -1,   240,   231,   225,    -1,    72,    -1,   225,    72,    -1,
    860      241,   226,    -1,   243,    -1,   253,    -1,   244,   111,   245,
    861      112,    -1,   244,   270,    -1,   244,   270,   111,   245,   112,
    862       -1,   244,   106,   288,   107,   111,   245,   112,    -1,   244,
    863      281,    -1,    30,   308,    -1,    31,   308,    -1,   246,    -1,
    864      245,   246,    -1,   247,   129,    -1,    38,   247,   129,    -1,
    865      248,   129,    -1,    38,   248,   129,    -1,   362,    -1,   362,
    866      270,    -1,   247,   113,   270,    -1,   247,   113,    -1,   223,
    867      249,    -1,   248,   113,   308,   249,    -1,    -1,   251,    -1,
    868      314,   250,    -1,   327,   250,    -1,   353,    -1,    -1,   251,
    869       -1,   114,   160,    -1,    29,   308,    -1,   252,   111,   254,
    870      368,   112,    -1,   252,   270,   111,   254,   368,   112,    -1,
    871      252,   270,    -1,   270,   255,    -1,   254,   113,   270,   255,
    872       -1,    -1,   128,   160,    -1,    -1,   257,    -1,   259,    -1,
    873      258,    -1,   258,   132,   113,   131,   259,    -1,   259,   132,
    874      113,   131,    94,    -1,   258,   132,   113,   131,    94,    -1,
    875      263,    -1,   259,   132,   113,   131,   263,    -1,   258,   132,
    876      113,   131,   263,    -1,   258,   132,   113,   131,   259,   132,
    877      113,   131,   263,    -1,   264,    -1,   259,   132,   113,   131,
    878      264,    -1,    -1,   261,    -1,   262,    -1,   262,   132,   113,
    879      131,    94,    -1,   266,    -1,   265,    -1,   262,   132,   113,
    880      131,   266,    -1,   262,   132,   113,   131,   265,    -1,   265,
    881       -1,   358,   268,   369,    -1,   366,   268,   369,    -1,   225,
    882      366,   268,   369,    -1,   215,    -1,   266,    -1,   358,    -1,
    883      366,    -1,   225,   366,    -1,   367,    -1,   222,   332,   369,
    884       -1,   222,   336,   369,    -1,   222,    -1,   222,   347,    -1,
    885      136,    -1,   267,   113,   136,    -1,   134,    -1,    72,    -1,
    886       73,    -1,   135,    -1,    72,    -1,    73,    -1,   136,    -1,
    887       72,    -1,    73,    -1,   362,    -1,   223,    -1,   223,   353,
    888       -1,   362,    -1,   367,    -1,   223,    -1,   223,   341,    -1,
    889       -1,   128,   274,    -1,   161,    -1,   111,   275,   368,   112,
    890       -1,   274,    -1,   276,   274,    -1,   275,   113,   274,    -1,
    891      275,   113,   276,   274,    -1,   277,   114,    -1,   270,   114,
    892       -1,   278,    -1,   277,   278,    -1,    78,    -1,   110,   270,
    893       -1,   108,   131,   161,   132,   109,    -1,   108,   131,   306,
    894      132,   109,    -1,   108,   131,   160,    94,   160,   132,   109,
    895       -1,   110,   108,   131,   144,   132,   109,    -1,   280,    -1,
    896      229,   280,    -1,   279,   231,    -1,   279,   231,   225,    -1,
    897      281,    -1,   225,   281,    -1,   280,   226,    -1,    73,   106,
    898      288,   107,    -1,   283,   369,    -1,   282,   113,   283,   369,
    899       -1,    -1,   285,   270,   284,   286,    -1,   223,   332,    -1,
    900       32,    -1,    34,    -1,    33,    -1,    -1,   286,   287,    -1,
    901      126,   270,   106,   288,   107,    -1,   126,   111,   131,   294,
    902      112,    -1,   126,   106,   131,   282,   132,   107,   111,   131,
    903      294,   112,   106,   288,   107,    -1,   272,    -1,   161,    -1,
    904      288,   113,   272,    -1,   288,   113,   161,    -1,    32,   290,
    905       -1,   230,    32,   290,    -1,   289,   113,   290,    -1,   291,
    906      286,    -1,   291,   286,   128,   272,    -1,   270,    -1,   269,
    907      106,   131,   282,   132,   107,    -1,    35,   270,   106,   131,
    908      282,   132,   107,   111,   112,    -1,    -1,    35,   270,   106,
    909      131,   282,   132,   107,   111,   293,   294,   112,    -1,   295,
    910       -1,   294,   131,   295,    -1,   296,   132,   129,    -1,   297,
    911      132,   129,    -1,   213,    -1,   215,    -1,   296,   132,   113,
    912      131,   268,    -1,   223,   305,    -1,   297,   132,   113,   131,
    913      305,    -1,    -1,   299,    -1,   301,    -1,   299,   131,   301,
    914       -1,    -1,   299,    -1,   210,    -1,   303,    -1,   195,    -1,
    915       -1,     5,    80,   302,   111,   300,   112,    -1,    38,   301,
    916       -1,   304,    -1,   319,   170,    -1,   323,   131,   205,   170,
    917       -1,   214,   170,    -1,   222,   319,   170,    -1,   225,   319,
    918      170,    -1,   229,   319,   170,    -1,   229,   225,   319,   170,
    919       -1,   222,   323,   131,   205,   170,    -1,   225,   323,   131,
    920      205,   170,    -1,   229,   323,   131,   205,   170,    -1,   229,
    921      225,   323,   131,   205,   170,    -1,   314,    -1,   319,    -1,
    922      327,    -1,   160,   120,   160,    -1,    -1,    62,   106,   139,
    923      107,   308,    -1,    -1,   309,    -1,   310,    -1,   309,   310,
    924       -1,    37,   106,   106,   311,   107,   107,    -1,   312,    -1,
    925      311,   113,   312,    -1,    -1,   313,    -1,   313,   106,   167,
    926      107,    -1,   268,    -1,   232,    -1,   233,    -1,   226,    -1,
    927      315,   308,    -1,   316,    -1,   317,   308,    -1,   318,   308,
    928       -1,   134,    -1,   106,   315,   107,    -1,   116,   314,    -1,
    929      116,   225,   314,    -1,   106,   316,   107,    -1,   315,   345,
    930       -1,   106,   316,   107,   345,    -1,   106,   317,   107,   346,
    931       -1,   106,   317,   107,    -1,   106,   316,   107,   106,   131,
    932      260,   132,   107,    -1,   106,   318,   107,    -1,   320,   308,
    933       -1,   321,    -1,   322,   308,    -1,   315,   106,   131,   260,
    934      132,   107,    -1,   106,   321,   107,   106,   131,   260,   132,
    935      107,    -1,   106,   320,   107,    -1,   116,   319,    -1,   116,
    936      225,   319,    -1,   106,   321,   107,    -1,   106,   321,   107,
    937      345,    -1,   106,   322,   107,   346,    -1,   106,   322,   107,
    938       -1,   324,    -1,   325,    -1,   326,    -1,   315,   106,   267,
    939      107,    -1,   106,   325,   107,   106,   267,   107,    -1,   106,
    940      324,   107,    -1,   116,   323,    -1,   116,   225,   323,    -1,
    941      106,   325,   107,    -1,   106,   325,   107,   345,    -1,   106,
    942      326,   107,   346,    -1,   106,   326,   107,    -1,   328,   308,
    943       -1,   329,    -1,   330,   308,    -1,   331,   308,    -1,   337,
    944       -1,   106,   328,   107,    -1,   116,   327,    -1,   116,   225,
    945      327,    -1,   106,   329,   107,    -1,   328,   345,    -1,   106,
    946      329,   107,   345,    -1,   106,   330,   107,   346,    -1,   106,
    947      330,   107,    -1,   328,   106,   131,   260,   132,   107,    -1,
    948      106,   329,   107,   106,   131,   260,   132,   107,    -1,   106,
    949      331,   107,    -1,   315,   308,    -1,   333,    -1,   334,   308,
    950       -1,   335,   308,    -1,   116,   332,    -1,   116,   225,   332,
    951       -1,   106,   333,   107,    -1,   315,   351,    -1,   106,   333,
    952      107,   345,    -1,   106,   334,   107,   346,    -1,   106,   334,
    953      107,    -1,   315,   106,   131,   260,   132,   107,    -1,   106,
    954      333,   107,   106,   131,   260,   132,   107,    -1,   106,   335,
    955      107,    -1,   337,   308,    -1,   338,    -1,   339,   308,    -1,
    956      340,   308,    -1,    72,    -1,    73,    -1,   116,   336,    -1,
    957      116,   225,   336,    -1,   106,   338,   107,    -1,   337,   351,
    958       -1,   106,   338,   107,   351,    -1,   337,   106,   131,   260,
    959      132,   107,    -1,   106,   338,   107,   106,   131,   260,   132,
    960      107,    -1,   342,    -1,   343,   308,    -1,   344,   308,    -1,
    961      116,    -1,   116,   225,    -1,   116,   341,    -1,   116,   225,
    962      341,    -1,   106,   342,   107,    -1,   345,    -1,   106,   342,
    963      107,   345,    -1,   106,   343,   107,   346,    -1,   106,   343,
    964      107,    -1,   106,   131,   260,   132,   107,    -1,   106,   342,
    965      107,   106,   131,   260,   132,   107,    -1,   106,   344,   107,
    966       -1,   108,   109,    -1,   108,   109,   346,    -1,   346,    -1,
    967      108,   131,   161,   132,   109,    -1,   108,   131,   116,   132,
    968      109,    -1,   346,   108,   131,   161,   132,   109,    -1,   346,
    969      108,   131,   116,   132,   109,    -1,   348,    -1,   349,   308,
    970       -1,   350,   308,    -1,   116,    -1,   116,   225,    -1,   116,
    971      347,    -1,   116,   225,   347,    -1,   106,   348,   107,    -1,
    972      351,    -1,   106,   348,   107,   351,    -1,   106,   349,   107,
    973      346,    -1,   106,   349,   107,    -1,   106,   131,   260,   132,
    974      107,    -1,   106,   348,   107,   106,   131,   260,   132,   107,
    975       -1,   106,   350,   107,    -1,   352,    -1,   352,   346,    -1,
    976      346,    -1,   108,   109,    -1,   108,   131,   225,   116,   132,
    977      109,    -1,   108,   131,   225,   132,   109,    -1,   108,   131,
    978      225,   161,   132,   109,    -1,   108,   131,     7,   224,   161,
    979      132,   109,    -1,   108,   131,   225,     7,   161,   132,   109,
    980       -1,   354,    -1,   355,   308,    -1,   356,   308,    -1,   116,
    981       -1,   116,   225,    -1,   116,   353,    -1,   116,   225,   353,
    982       -1,   106,   354,   107,    -1,   345,    -1,   106,   354,   107,
    983      345,    -1,   106,   355,   107,   346,    -1,   106,   355,   107,
    984       -1,   106,   354,   107,   106,   131,   260,   132,   107,    -1,
    985      106,   356,   107,    -1,   358,    -1,   366,    -1,   225,   366,
    986       -1,   359,    -1,   360,    -1,   116,   223,    -1,   225,   116,
    987      223,    -1,   116,   367,    -1,   225,   116,   367,    -1,   116,
    988      357,    -1,   225,   116,   357,    -1,   108,   109,   223,    -1,
    989      361,   223,    -1,   108,   109,   346,   223,    -1,   361,   346,
    990      223,    -1,   346,   223,    -1,   108,   109,   359,    -1,   361,
    991      359,    -1,   108,   109,   346,   359,    -1,   361,   346,   359,
    992       -1,   346,   359,    -1,   108,   131,   225,   116,   132,   109,
    993       -1,   108,   131,   225,   161,   132,   109,    -1,   108,   131,
    994      229,   161,   132,   109,    -1,   108,   131,   229,   225,   161,
    995      132,   109,    -1,   366,    -1,   225,   366,    -1,   363,    -1,
    996      364,    -1,   365,    -1,   116,   223,    -1,   225,   116,   223,
    997       -1,   116,   367,    -1,   225,   116,   367,    -1,   116,   362,
    998       -1,   225,   116,   362,    -1,   108,   109,   223,    -1,   108,
    999      109,   346,   223,    -1,   346,   223,    -1,   108,   109,   364,
    1000       -1,   108,   109,   346,   364,    -1,   346,   364,    -1,   108,
    1001      131,   259,   132,   109,    -1,   108,   109,   106,   256,   107,
    1002       -1,   366,   106,   131,   256,   132,   107,    -1,   216,   106,
    1003      131,   256,   132,   107,    -1,    -1,   113,    -1,    -1,   128,
    1004      161,    -1
     719     291,     0,    -1,    -1,    -1,    72,    -1,    73,    -1,    74,
     720      -1,    65,    -1,    69,    -1,   132,    -1,    65,    -1,    69,
     721      -1,    65,    -1,    76,    -1,    77,    -1,    75,    -1,   133,
     722      75,    -1,    65,    -1,   132,    -1,   101,   160,   102,    -1,
     723     101,   164,   102,    -1,   134,    -1,   135,   103,   126,   155,
     724     127,   104,    -1,   135,   101,   136,   102,    -1,   135,   105,
     725     131,    -1,   135,   105,   103,   126,   138,   127,   104,    -1,
     726     135,    78,   131,    -1,   135,    78,   103,   126,   138,   127,
     727     104,    -1,   135,    79,    -1,   135,    80,    -1,   101,   264,
     728     102,   106,   268,   361,   107,    -1,   137,    -1,   136,   108,
     729     137,    -1,    -1,   155,    -1,   131,   109,   155,    -1,   103,
     730     126,   155,   127,   104,   109,   155,    -1,   103,   126,   155,
     731     108,   158,   127,   104,   109,   155,    -1,   139,    -1,   138,
     732     108,   139,    -1,   131,    -1,   131,   105,   139,    -1,   131,
     733     105,   103,   126,   138,   127,   104,    -1,   131,    78,   139,
     734      -1,   131,    78,   103,   126,   138,   127,   104,    -1,   135,
     735      -1,   128,    -1,   133,    -1,    79,   140,    -1,    80,   140,
     736      -1,    38,   142,    -1,   141,   142,    -1,   110,   142,    -1,
     737     111,   142,    -1,    36,   140,    -1,    36,   101,   264,   102,
     738      -1,    69,    -1,    69,   101,   265,   102,    -1,    69,   101,
     739     137,   102,    -1,    59,   140,    -1,    59,   101,   264,   102,
     740      -1,    87,   131,    -1,   112,    -1,   113,    -1,   114,    -1,
     741     115,    -1,   140,    -1,   101,   264,   102,   142,    -1,   101,
     742     264,   102,   157,    -1,   142,    -1,   143,   111,   142,    -1,
     743     143,   116,   142,    -1,   143,   117,   142,    -1,   143,    -1,
     744     144,   113,   143,    -1,   144,   114,   143,    -1,   144,    -1,
     745     145,    81,   144,    -1,   145,    82,   144,    -1,   145,    -1,
     746     146,   118,   145,    -1,   146,   119,   145,    -1,   146,    83,
     747     145,    -1,   146,    84,   145,    -1,   146,    -1,   147,    85,
     748     146,    -1,   147,    86,   146,    -1,   147,    -1,   148,   112,
     749     147,    -1,   148,    -1,   149,   120,   148,    -1,   149,    -1,
     750     150,   121,   149,    -1,   150,    -1,   151,    87,   150,    -1,
     751     151,    -1,   152,    88,   151,    -1,   152,    -1,   152,   122,
     752     160,   109,   153,    -1,   152,   122,   109,   153,    -1,   152,
     753     122,   160,   109,   157,    -1,   153,    -1,   153,    -1,   140,
     754     123,   155,    -1,   140,   159,   155,    -1,   157,   362,    -1,
     755      -1,   155,    -1,   103,   104,    -1,   103,   126,   155,   127,
     756     104,    -1,   103,   126,   108,   158,   127,   104,    -1,   103,
     757     126,   155,   108,   158,   127,   104,    -1,   156,    -1,   158,
     758     108,   156,    -1,    90,    -1,    91,    -1,    92,    -1,    93,
     759      -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,    98,
     760      -1,    99,    -1,   155,    -1,   160,   108,   155,    -1,    -1,
     761     160,    -1,   163,    -1,   164,    -1,   168,    -1,   169,    -1,
     762     181,    -1,   183,    -1,   184,    -1,   189,    -1,   131,   109,
     763     301,   162,    -1,   106,   107,    -1,   106,   126,   126,   200,
     764     165,   127,   107,    -1,   166,    -1,   165,   126,   166,    -1,
     765     203,    -1,    38,   203,    -1,   297,    -1,   162,   127,    -1,
     766     162,    -1,   167,   162,    -1,   161,   124,    -1,    39,   101,
     767     160,   102,   162,    -1,    39,   101,   160,   102,   162,    40,
     768     162,    -1,    41,   101,   160,   102,   174,    -1,    41,   101,
     769     160,   102,   106,   126,   196,   175,   107,    -1,    51,   101,
     770     160,   102,   174,    -1,    51,   101,   160,   102,   106,   126,
     771     196,   177,   107,    -1,   154,    -1,   154,    89,   154,    -1,
     772     299,    -1,   170,    -1,   171,   108,   170,    -1,    42,   171,
     773     109,    -1,    43,   109,    -1,   172,    -1,   173,   172,    -1,
     774     173,   162,    -1,    -1,   176,    -1,   173,   167,    -1,   176,
     775     173,   167,    -1,    -1,   178,    -1,   173,   180,    -1,   173,
     776     167,   179,    -1,   178,   173,   180,    -1,   178,   173,   167,
     777     179,    -1,    -1,   180,    -1,    52,    -1,    52,   124,    -1,
     778      45,   101,   160,   102,   162,    -1,    44,   162,    45,   101,
     779     160,   102,   124,    -1,    46,   101,   126,   182,   102,   162,
     780      -1,   161,   127,   124,   161,   124,   161,    -1,   203,   161,
     781     124,   161,    -1,    49,   131,   124,    -1,    49,   111,   160,
     782     124,    -1,    48,   124,    -1,    48,   131,   124,    -1,    47,
     783     124,    -1,    47,   131,   124,    -1,    50,   161,   124,    -1,
     784      56,   155,   124,    -1,    56,   124,    -1,    53,   164,   185,
     785      -1,    53,   164,   187,    -1,    53,   164,   185,   187,    -1,
     786     186,    -1,    54,   101,    89,   102,   164,    -1,   186,    54,
     787     101,    89,   102,   164,    -1,    54,   101,   126,   126,   188,
     788     127,   102,   164,   127,    -1,   186,    54,   101,   126,   126,
     789     188,   127,   102,   164,   127,    -1,    55,   164,    -1,   216,
     790      -1,   216,   298,    -1,   216,   346,    -1,   355,   131,    -1,
     791     355,    -1,    57,   190,   101,   133,   102,   124,    -1,    57,
     792     190,   101,   133,   109,   191,   102,   124,    -1,    57,   190,
     793     101,   133,   109,   191,   109,   191,   102,   124,    -1,    57,
     794     190,   101,   133,   109,   191,   109,   191,   109,   194,   102,
     795     124,    -1,    57,   190,    49,   101,   133,   109,   109,   191,
     796     109,   194,   109,   195,   102,   124,    -1,    -1,    11,    -1,
     797      -1,   192,    -1,   193,    -1,   192,   108,   193,    -1,   133,
     798     101,   154,   102,    -1,   103,   154,   104,   133,   101,   154,
     799     102,    -1,    -1,   133,    -1,   194,   108,   133,    -1,   131,
     800      -1,   195,   108,   131,    -1,   127,    -1,   197,    -1,   203,
     801      -1,   197,   126,   203,    -1,   127,    -1,   199,    -1,   213,
     802      -1,   199,   126,   213,    -1,    -1,   201,    -1,    28,   202,
     803     124,    -1,   201,    28,   202,   124,    -1,   263,    -1,   202,
     804     108,   263,    -1,   204,    -1,   213,    -1,   205,   127,   124,
     805      -1,   210,   127,   124,    -1,   207,   127,   124,    -1,   282,
     806     127,   124,    -1,   285,   127,   124,    -1,   206,   266,    -1,
     807     222,   206,   266,    -1,   205,   127,   108,   126,   261,   266,
     808      -1,   356,   261,   300,    -1,   359,   261,   300,    -1,   218,
     809     359,   261,   300,    -1,   208,    -1,   218,   208,    -1,   222,
     810     208,    -1,   222,   218,   208,    -1,   207,   127,   108,   126,
     811     261,    -1,   103,   104,   261,   101,   126,   249,   127,   102,
     812      -1,   359,   261,   101,   126,   249,   127,   102,    -1,   209,
     813     261,   101,   126,   249,   127,   102,    -1,   103,   126,   251,
     814     127,   104,    -1,   103,   126,   251,   127,   108,   126,   252,
     815     127,   104,    -1,     3,   206,    -1,     3,   208,    -1,   210,
     816     127,   108,   126,   131,    -1,     3,   216,   298,    -1,   211,
     817     127,   108,   126,   298,    -1,   218,     3,   216,   298,    -1,
     818     216,     3,   298,    -1,   216,     3,   218,   298,    -1,     3,
     819     131,   123,   155,    -1,   212,   127,   108,   126,   131,   123,
     820     155,    -1,   214,   127,   124,    -1,   211,   127,   124,    -1,
     821     212,   127,   124,    -1,   231,   127,   124,    -1,   215,   298,
     822     300,   266,    -1,   214,   108,   301,   298,   300,   266,    -1,
     823     227,    -1,   231,    -1,   233,    -1,   272,    -1,   228,    -1,
     824     232,    -1,   234,    -1,   273,    -1,    -1,   218,    -1,   219,
     825      -1,   218,   219,    -1,   220,    -1,   303,    -1,    10,    -1,
     826      12,    -1,    11,    -1,    14,    -1,    60,    -1,    -1,    13,
     827     101,   221,   275,   102,    -1,   223,    -1,   218,   223,    -1,
     828     222,   218,   223,    -1,   224,    -1,   223,   224,    -1,   225,
     829      -1,     5,    -1,     7,    -1,     4,    -1,     6,    -1,     8,
     830      -1,     9,    -1,    62,    -1,    64,    -1,    16,    -1,    21,
     831      -1,    20,    -1,    18,    -1,    19,    -1,    17,    -1,    22,
     832      -1,    23,    -1,    15,    -1,    24,    -1,    25,    -1,    26,
     833      -1,   228,    -1,   222,   228,    -1,   227,   224,    -1,   227,
     834     224,   218,    -1,   227,   224,   228,    -1,   229,    -1,   217,
     835     230,   217,    -1,   226,    -1,   218,   226,    -1,   229,   219,
     836      -1,   229,   226,    -1,    27,   101,   265,   102,    -1,    27,
     837     101,   160,   102,    -1,    71,   101,   265,   102,    -1,    71,
     838     101,   160,   102,    -1,   232,    -1,   222,   232,    -1,   231,
     839     224,    -1,   231,   224,   218,    -1,   235,    -1,   218,   235,
     840      -1,   232,   219,    -1,   234,    -1,   222,   234,    -1,   233,
     841     224,    -1,   233,   224,   218,    -1,    67,    -1,   218,    67,
     842      -1,   234,   219,    -1,   236,    -1,   246,    -1,   237,   106,
     843     238,   107,    -1,   237,   263,    -1,   237,   263,   106,   238,
     844     107,    -1,   237,   101,   281,   102,   106,   238,   107,    -1,
     845     237,   274,    -1,    30,   301,    -1,    31,   301,    -1,   239,
     846      -1,   238,   239,    -1,   240,   124,    -1,    38,   240,   124,
     847      -1,   241,   124,    -1,    38,   241,   124,    -1,   355,    -1,
     848     355,   263,    -1,   240,   108,   263,    -1,   240,   108,    -1,
     849     216,   242,    -1,   241,   108,   301,   242,    -1,    -1,   244,
     850      -1,   307,   243,    -1,   320,   243,    -1,   346,    -1,    -1,
     851     244,    -1,   109,   154,    -1,    29,   301,    -1,   245,   106,
     852     247,   361,   107,    -1,   245,   263,   106,   247,   361,   107,
     853      -1,   245,   263,    -1,   263,   248,    -1,   247,   108,   263,
     854     248,    -1,    -1,   123,   154,    -1,    -1,   250,    -1,   252,
     855      -1,   251,    -1,   251,   127,   108,   126,   252,    -1,   252,
     856     127,   108,   126,    89,    -1,   251,   127,   108,   126,    89,
     857      -1,   256,    -1,   252,   127,   108,   126,   256,    -1,   251,
     858     127,   108,   126,   256,    -1,   251,   127,   108,   126,   252,
     859     127,   108,   126,   256,    -1,   257,    -1,   252,   127,   108,
     860     126,   257,    -1,    -1,   254,    -1,   255,    -1,   255,   127,
     861     108,   126,    89,    -1,   259,    -1,   258,    -1,   255,   127,
     862     108,   126,   259,    -1,   255,   127,   108,   126,   258,    -1,
     863     258,    -1,   351,   261,   362,    -1,   359,   261,   362,    -1,
     864     218,   359,   261,   362,    -1,   208,    -1,   259,    -1,   351,
     865      -1,   359,    -1,   218,   359,    -1,   360,    -1,   215,   325,
     866     362,    -1,   215,   329,   362,    -1,   215,    -1,   215,   340,
     867      -1,   131,    -1,   260,   108,   131,    -1,   129,    -1,    67,
     868      -1,    68,    -1,   130,    -1,    67,    -1,    68,    -1,   131,
     869      -1,    67,    -1,    68,    -1,   355,    -1,   216,    -1,   216,
     870     346,    -1,   355,    -1,   360,    -1,   216,    -1,   216,   334,
     871      -1,    -1,   123,   267,    -1,   155,    -1,   106,   268,   361,
     872     107,    -1,   267,    -1,   269,   267,    -1,   268,   108,   267,
     873      -1,   268,   108,   269,   267,    -1,   270,   109,    -1,   263,
     874     109,    -1,   271,    -1,   270,   271,    -1,    73,    -1,   105,
     875     263,    -1,   103,   126,   155,   127,   104,    -1,   103,   126,
     876     299,   127,   104,    -1,   103,   126,   154,    89,   154,   127,
     877     104,    -1,   105,   103,   126,   138,   127,   104,    -1,   273,
     878      -1,   222,   273,    -1,   272,   224,    -1,   272,   224,   218,
     879      -1,   274,    -1,   218,   274,    -1,   273,   219,    -1,    68,
     880     101,   281,   102,    -1,   276,   362,    -1,   275,   108,   276,
     881     362,    -1,    -1,   278,   263,   277,   279,    -1,   216,   325,
     882      -1,    32,    -1,    34,    -1,    33,    -1,    -1,   279,   280,
     883      -1,   121,   263,   101,   281,   102,    -1,   121,   106,   126,
     884     287,   107,    -1,   121,   101,   126,   275,   127,   102,   106,
     885     126,   287,   107,   101,   281,   102,    -1,   265,    -1,   155,
     886      -1,   281,   108,   265,    -1,   281,   108,   155,    -1,    32,
     887     283,    -1,   223,    32,   283,    -1,   282,   108,   283,    -1,
     888     284,   279,    -1,   284,   279,   123,   265,    -1,   263,    -1,
     889     262,   101,   126,   275,   127,   102,    -1,    35,   263,   101,
     890     126,   275,   127,   102,   106,   107,    -1,    -1,    35,   263,
     891     101,   126,   275,   127,   102,   106,   286,   287,   107,    -1,
     892     288,    -1,   287,   126,   288,    -1,   289,   127,   124,    -1,
     893     290,   127,   124,    -1,   206,    -1,   208,    -1,   289,   127,
     894     108,   126,   261,    -1,   216,   298,    -1,   290,   127,   108,
     895     126,   298,    -1,    -1,   292,    -1,   294,    -1,   292,   126,
     896     294,    -1,    -1,   292,    -1,   203,    -1,   296,    -1,   189,
     897      -1,    -1,     5,    75,   295,   106,   293,   107,    -1,    38,
     898     294,    -1,   297,    -1,   312,   164,    -1,   316,   126,   198,
     899     164,    -1,   207,   164,    -1,   215,   312,   164,    -1,   218,
     900     312,   164,    -1,   222,   312,   164,    -1,   222,   218,   312,
     901     164,    -1,   215,   316,   126,   198,   164,    -1,   218,   316,
     902     126,   198,   164,    -1,   222,   316,   126,   198,   164,    -1,
     903     222,   218,   316,   126,   198,   164,    -1,   307,    -1,   312,
     904      -1,   320,    -1,   154,   115,   154,    -1,    -1,    57,   101,
     905     133,   102,   301,    -1,    -1,   302,    -1,   303,    -1,   302,
     906     303,    -1,    37,   101,   101,   304,   102,   102,    -1,   305,
     907      -1,   304,   108,   305,    -1,    -1,   306,    -1,   306,   101,
     908     161,   102,    -1,   261,    -1,   225,    -1,   226,    -1,   219,
     909      -1,   308,   301,    -1,   309,    -1,   310,   301,    -1,   311,
     910     301,    -1,   129,    -1,   101,   308,   102,    -1,   111,   307,
     911      -1,   111,   218,   307,    -1,   101,   309,   102,    -1,   308,
     912     338,    -1,   101,   309,   102,   338,    -1,   101,   310,   102,
     913     339,    -1,   101,   310,   102,    -1,   101,   309,   102,   101,
     914     126,   253,   127,   102,    -1,   101,   311,   102,    -1,   313,
     915     301,    -1,   314,    -1,   315,   301,    -1,   308,   101,   126,
     916     253,   127,   102,    -1,   101,   314,   102,   101,   126,   253,
     917     127,   102,    -1,   101,   313,   102,    -1,   111,   312,    -1,
     918     111,   218,   312,    -1,   101,   314,   102,    -1,   101,   314,
     919     102,   338,    -1,   101,   315,   102,   339,    -1,   101,   315,
     920     102,    -1,   317,    -1,   318,    -1,   319,    -1,   308,   101,
     921     260,   102,    -1,   101,   318,   102,   101,   260,   102,    -1,
     922     101,   317,   102,    -1,   111,   316,    -1,   111,   218,   316,
     923      -1,   101,   318,   102,    -1,   101,   318,   102,   338,    -1,
     924     101,   319,   102,   339,    -1,   101,   319,   102,    -1,   321,
     925     301,    -1,   322,    -1,   323,   301,    -1,   324,   301,    -1,
     926     330,    -1,   101,   321,   102,    -1,   111,   320,    -1,   111,
     927     218,   320,    -1,   101,   322,   102,    -1,   321,   338,    -1,
     928     101,   322,   102,   338,    -1,   101,   323,   102,   339,    -1,
     929     101,   323,   102,    -1,   321,   101,   126,   253,   127,   102,
     930      -1,   101,   322,   102,   101,   126,   253,   127,   102,    -1,
     931     101,   324,   102,    -1,   308,   301,    -1,   326,    -1,   327,
     932     301,    -1,   328,   301,    -1,   111,   325,    -1,   111,   218,
     933     325,    -1,   101,   326,   102,    -1,   308,   344,    -1,   101,
     934     326,   102,   338,    -1,   101,   327,   102,   339,    -1,   101,
     935     327,   102,    -1,   308,   101,   126,   253,   127,   102,    -1,
     936     101,   326,   102,   101,   126,   253,   127,   102,    -1,   101,
     937     328,   102,    -1,   330,   301,    -1,   331,    -1,   332,   301,
     938      -1,   333,   301,    -1,    67,    -1,    68,    -1,   111,   329,
     939      -1,   111,   218,   329,    -1,   101,   331,   102,    -1,   330,
     940     344,    -1,   101,   331,   102,   344,    -1,   330,   101,   126,
     941     253,   127,   102,    -1,   101,   331,   102,   101,   126,   253,
     942     127,   102,    -1,   335,    -1,   336,   301,    -1,   337,   301,
     943      -1,   111,    -1,   111,   218,    -1,   111,   334,    -1,   111,
     944     218,   334,    -1,   101,   335,   102,    -1,   338,    -1,   101,
     945     335,   102,   338,    -1,   101,   336,   102,   339,    -1,   101,
     946     336,   102,    -1,   101,   126,   253,   127,   102,    -1,   101,
     947     335,   102,   101,   126,   253,   127,   102,    -1,   101,   337,
     948     102,    -1,   103,   104,    -1,   103,   104,   339,    -1,   339,
     949      -1,   103,   126,   155,   127,   104,    -1,   103,   126,   111,
     950     127,   104,    -1,   339,   103,   126,   155,   127,   104,    -1,
     951     339,   103,   126,   111,   127,   104,    -1,   341,    -1,   342,
     952     301,    -1,   343,   301,    -1,   111,    -1,   111,   218,    -1,
     953     111,   340,    -1,   111,   218,   340,    -1,   101,   341,   102,
     954      -1,   344,    -1,   101,   341,   102,   344,    -1,   101,   342,
     955     102,   339,    -1,   101,   342,   102,    -1,   101,   126,   253,
     956     127,   102,    -1,   101,   341,   102,   101,   126,   253,   127,
     957     102,    -1,   101,   343,   102,    -1,   345,    -1,   345,   339,
     958      -1,   339,    -1,   103,   104,    -1,   103,   126,   218,   111,
     959     127,   104,    -1,   103,   126,   218,   127,   104,    -1,   103,
     960     126,   218,   155,   127,   104,    -1,   103,   126,     7,   217,
     961     155,   127,   104,    -1,   103,   126,   218,     7,   155,   127,
     962     104,    -1,   347,    -1,   348,   301,    -1,   349,   301,    -1,
     963     111,    -1,   111,   218,    -1,   111,   346,    -1,   111,   218,
     964     346,    -1,   101,   347,   102,    -1,   338,    -1,   101,   347,
     965     102,   338,    -1,   101,   348,   102,   339,    -1,   101,   348,
     966     102,    -1,   101,   347,   102,   101,   126,   253,   127,   102,
     967      -1,   101,   349,   102,    -1,   351,    -1,   359,    -1,   218,
     968     359,    -1,   352,    -1,   353,    -1,   111,   216,    -1,   218,
     969     111,   216,    -1,   111,   360,    -1,   218,   111,   360,    -1,
     970     111,   350,    -1,   218,   111,   350,    -1,   103,   104,   216,
     971      -1,   354,   216,    -1,   103,   104,   339,   216,    -1,   354,
     972     339,   216,    -1,   339,   216,    -1,   103,   104,   352,    -1,
     973     354,   352,    -1,   103,   104,   339,   352,    -1,   354,   339,
     974     352,    -1,   339,   352,    -1,   103,   126,   218,   111,   127,
     975     104,    -1,   103,   126,   218,   155,   127,   104,    -1,   103,
     976     126,   222,   155,   127,   104,    -1,   103,   126,   222,   218,
     977     155,   127,   104,    -1,   359,    -1,   218,   359,    -1,   356,
     978      -1,   357,    -1,   358,    -1,   111,   216,    -1,   218,   111,
     979     216,    -1,   111,   360,    -1,   218,   111,   360,    -1,   111,
     980     355,    -1,   218,   111,   355,    -1,   103,   104,   216,    -1,
     981     103,   104,   339,   216,    -1,   339,   216,    -1,   103,   104,
     982     357,    -1,   103,   104,   339,   357,    -1,   339,   357,    -1,
     983     103,   126,   252,   127,   104,    -1,   103,   104,   101,   249,
     984     102,    -1,   359,   101,   126,   249,   127,   102,    -1,   209,
     985     101,   126,   249,   127,   102,    -1,    -1,   108,    -1,    -1,
     986     123,   155,    -1
    1005987};
    1006988
     
    1009991{
    1010992       0,   288,   288,   294,   303,   304,   305,   309,   310,   311,
    1011      315,   316,   320,   324,   325,   329,   330,   334,   335,   341,
    1012      343,   345,   347,   352,   353,   359,   361,   363,   364,   366,
    1013      367,   369,   372,   377,   378,   384,   385,   386,   391,   393,
    1014      398,   399,   403,   405,   407,   409,   411,   416,   419,   421,
    1015      423,   425,   427,   429,   431,   433,   439,   441,   443,   445,
    1016      447,   449,   451,   453,   458,   459,   460,   461,   465,   466,
    1017      468,   473,   474,   476,   478,   483,   484,   486,   491,   492,
    1018      494,   499,   500,   502,   504,   506,   511,   512,   514,   519,
    1019      520,   525,   526,   531,   532,   537,   538,   543,   544,   549,
    1020      550,   552,   554,   559,   564,   565,   567,   569,   575,   576,
    1021      582,   584,   586,   588,   593,   594,   599,   600,   601,   602,
    1022      603,   604,   605,   606,   607,   608,   612,   613,   619,   620,
    1023      626,   627,   628,   629,   630,   631,   632,   633,   634,   638,
    1024      645,   647,   657,   658,   663,   665,   667,   669,   673,   674,
    1025      679,   684,   687,   689,   691,   696,   698,   706,   707,   709,
    1026      713,   714,   719,   720,   725,   726,   730,   735,   736,   740,
    1027      742,   748,   749,   753,   755,   757,   759,   765,   766,   770,
    1028      771,   775,   777,   779,   784,   786,   791,   793,   797,   800,
    1029      804,   807,   811,   813,   817,   819,   826,   828,   830,   839,
    1030      841,   843,   845,   847,   852,   854,   856,   858,   863,   876,
    1031      877,   882,   884,   889,   893,   895,   897,   899,   901,   907,
    1032      908,   914,   915,   919,   920,   925,   927,   933,   934,   936,
    1033      941,   943,   948,   954,   965,   967,   971,   972,   977,   979,
    1034      983,   984,   988,   990,   994,   995,   999,  1000,  1004,  1005,
    1035     1020,  1021,  1022,  1023,  1024,  1028,  1033,  1040,  1050,  1055,
    1036     1060,  1068,  1073,  1078,  1083,  1088,  1096,  1118,  1123,  1130,
    1037     1132,  1139,  1144,  1149,  1160,  1165,  1170,  1175,  1180,  1189,
    1038     1194,  1202,  1203,  1204,  1205,  1211,  1216,  1224,  1225,  1226,
    1039     1227,  1231,  1232,  1233,  1234,  1239,  1240,  1249,  1250,  1255,
    1040     1256,  1261,  1263,  1265,  1267,  1269,  1272,  1271,  1283,  1284,
    1041     1286,  1296,  1297,  1302,  1306,  1308,  1310,  1312,  1314,  1316,
    1042     1318,  1320,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,
    1043     1341,  1343,  1345,  1347,  1353,  1354,  1356,  1358,  1360,  1365,
    1044     1366,  1372,  1373,  1375,  1377,  1382,  1384,  1386,  1388,  1393,
    1045     1394,  1396,  1398,  1403,  1404,  1406,  1411,  1412,  1414,  1416,
    1046     1421,  1423,  1425,  1430,  1431,  1435,  1437,  1439,  1441,  1443,
    1047     1448,  1450,  1455,  1457,  1462,  1463,  1465,  1466,  1471,  1472,
    1048     1474,  1476,  1481,  1483,  1489,  1490,  1492,  1495,  1498,  1503,
    1049     1504,  1509,  1514,  1518,  1520,  1522,  1527,  1529,  1535,  1536,
    1050     1544,  1545,  1549,  1550,  1551,  1553,  1555,  1562,  1563,  1565,
    1051     1567,  1572,  1573,  1579,  1580,  1584,  1585,  1590,  1591,  1592,
    1052     1594,  1602,  1603,  1605,  1608,  1610,  1614,  1615,  1616,  1618,
    1053     1620,  1624,  1629,  1637,  1638,  1647,  1649,  1654,  1655,  1656,
    1054     1660,  1661,  1662,  1666,  1667,  1668,  1672,  1673,  1674,  1679,
    1055     1680,  1681,  1682,  1688,  1689,  1694,  1695,  1699,  1700,  1701,
    1056     1702,  1717,  1718,  1723,  1724,  1732,  1734,  1736,  1739,  1741,
    1057     1743,  1766,  1767,  1769,  1771,  1776,  1777,  1779,  1784,  1789,
    1058     1790,  1796,  1795,  1799,  1803,  1805,  1807,  1813,  1814,  1819,
    1059     1824,  1826,  1831,  1833,  1834,  1836,  1841,  1843,  1845,  1850,
    1060     1852,  1857,  1862,  1870,  1876,  1875,  1889,  1890,  1895,  1896,
    1061     1900,  1905,  1910,  1918,  1923,  1934,  1935,  1946,  1947,  1953,
    1062     1954,  1958,  1959,  1960,  1963,  1962,  1973,  1978,  1983,  1989,
    1063     1998,  2004,  2010,  2016,  2022,  2030,  2036,  2044,  2050,  2059,
    1064     2060,  2061,  2065,  2069,  2071,  2076,  2077,  2081,  2082,  2087,
    1065     2093,  2094,  2097,  2099,  2100,  2104,  2105,  2106,  2107,  2141,
    1066     2143,  2144,  2146,  2151,  2156,  2161,  2163,  2165,  2170,  2172,
    1067     2174,  2176,  2181,  2183,  2193,  2195,  2196,  2201,  2203,  2205,
    1068     2210,  2212,  2214,  2219,  2221,  2223,  2232,  2233,  2234,  2238,
    1069     2240,  2242,  2247,  2249,  2251,  2256,  2258,  2260,  2275,  2277,
    1070     2278,  2280,  2285,  2286,  2291,  2293,  2295,  2300,  2302,  2304,
    1071     2306,  2311,  2313,  2315,  2325,  2327,  2328,  2330,  2335,  2337,
    1072     2339,  2344,  2346,  2348,  2350,  2355,  2357,  2359,  2390,  2392,
    1073     2393,  2395,  2400,  2405,  2413,  2415,  2417,  2422,  2424,  2429,
    1074     2431,  2445,  2446,  2448,  2453,  2455,  2457,  2459,  2461,  2466,
    1075     2467,  2469,  2471,  2476,  2478,  2480,  2486,  2488,  2490,  2494,
    1076     2496,  2498,  2500,  2514,  2515,  2517,  2522,  2524,  2526,  2528,
    1077     2530,  2535,  2536,  2538,  2540,  2545,  2547,  2549,  2555,  2556,
    1078     2558,  2567,  2570,  2572,  2575,  2577,  2579,  2592,  2593,  2595,
    1079     2600,  2602,  2604,  2606,  2608,  2613,  2614,  2616,  2618,  2623,
    1080     2625,  2633,  2634,  2635,  2640,  2641,  2645,  2647,  2649,  2651,
    1081     2653,  2655,  2662,  2664,  2666,  2668,  2670,  2672,  2674,  2676,
    1082     2678,  2680,  2685,  2687,  2689,  2694,  2720,  2721,  2723,  2727,
    1083     2728,  2732,  2734,  2736,  2738,  2740,  2742,  2749,  2751,  2753,
    1084     2755,  2757,  2759,  2764,  2769,  2771,  2773,  2791,  2793,  2798,
    1085     2799
     993     315,   316,   320,   324,   325,   329,   330,   336,   338,   340,
     994     342,   347,   348,   354,   356,   358,   359,   361,   362,   364,
     995     367,   372,   373,   379,   380,   381,   386,   388,   393,   394,
     996     398,   400,   402,   404,   406,   411,   414,   416,   418,   420,
     997     422,   424,   426,   428,   434,   436,   438,   440,   442,   444,
     998     446,   448,   453,   454,   455,   456,   460,   461,   463,   468,
     999     469,   471,   473,   478,   479,   481,   486,   487,   489,   494,
     1000     495,   497,   499,   501,   506,   507,   509,   514,   515,   520,
     1001     521,   526,   527,   532,   533,   538,   539,   544,   545,   547,
     1002     549,   554,   559,   560,   562,   564,   570,   571,   577,   579,
     1003     581,   583,   588,   589,   594,   595,   596,   597,   598,   599,
     1004     600,   601,   602,   603,   607,   608,   614,   615,   621,   622,
     1005     623,   624,   625,   626,   627,   628,   632,   639,   641,   651,
     1006     652,   657,   659,   661,   663,   667,   668,   673,   678,   681,
     1007     683,   685,   690,   692,   700,   701,   703,   707,   708,   713,
     1008     714,   719,   720,   724,   729,   730,   734,   736,   742,   743,
     1009     747,   749,   751,   753,   759,   760,   764,   765,   769,   771,
     1010     773,   778,   780,   785,   787,   791,   794,   798,   801,   805,
     1011     807,   809,   814,   816,   818,   827,   829,   831,   836,   838,
     1012     843,   856,   857,   862,   864,   869,   873,   875,   877,   879,
     1013     881,   887,   888,   894,   895,   899,   900,   905,   907,   913,
     1014     914,   916,   921,   923,   930,   932,   936,   937,   942,   944,
     1015     948,   949,   953,   955,   959,   960,   964,   965,   969,   970,
     1016     985,   986,   987,   988,   989,   993,   998,  1005,  1015,  1020,
     1017    1025,  1033,  1038,  1043,  1048,  1053,  1061,  1083,  1088,  1095,
     1018    1097,  1104,  1109,  1114,  1125,  1130,  1135,  1140,  1145,  1154,
     1019    1159,  1167,  1168,  1169,  1170,  1176,  1181,  1189,  1190,  1191,
     1020    1192,  1196,  1197,  1198,  1199,  1204,  1205,  1214,  1215,  1220,
     1021    1221,  1226,  1228,  1230,  1232,  1234,  1237,  1236,  1248,  1249,
     1022    1251,  1261,  1262,  1267,  1271,  1273,  1275,  1277,  1279,  1281,
     1023    1283,  1285,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
     1024    1306,  1308,  1310,  1312,  1318,  1319,  1321,  1323,  1325,  1330,
     1025    1331,  1337,  1338,  1340,  1342,  1347,  1349,  1351,  1353,  1358,
     1026    1359,  1361,  1363,  1368,  1369,  1371,  1376,  1377,  1379,  1381,
     1027    1386,  1388,  1390,  1395,  1396,  1400,  1402,  1404,  1406,  1408,
     1028    1413,  1415,  1420,  1422,  1427,  1428,  1430,  1431,  1436,  1437,
     1029    1439,  1441,  1446,  1448,  1454,  1455,  1457,  1460,  1463,  1468,
     1030    1469,  1474,  1479,  1483,  1485,  1487,  1492,  1494,  1500,  1501,
     1031    1509,  1510,  1514,  1515,  1516,  1518,  1520,  1527,  1528,  1530,
     1032    1532,  1537,  1538,  1544,  1545,  1549,  1550,  1555,  1556,  1557,
     1033    1559,  1567,  1568,  1570,  1573,  1575,  1579,  1580,  1581,  1583,
     1034    1585,  1589,  1594,  1602,  1603,  1612,  1614,  1619,  1620,  1621,
     1035    1625,  1626,  1627,  1631,  1632,  1633,  1637,  1638,  1639,  1644,
     1036    1645,  1646,  1647,  1653,  1654,  1659,  1660,  1664,  1665,  1666,
     1037    1667,  1682,  1683,  1688,  1689,  1696,  1698,  1700,  1703,  1705,
     1038    1707,  1730,  1731,  1733,  1735,  1740,  1741,  1743,  1748,  1753,
     1039    1754,  1760,  1759,  1763,  1767,  1769,  1771,  1777,  1778,  1783,
     1040    1788,  1790,  1795,  1797,  1798,  1800,  1805,  1807,  1809,  1814,
     1041    1816,  1821,  1826,  1834,  1840,  1839,  1853,  1854,  1859,  1860,
     1042    1864,  1869,  1874,  1882,  1887,  1898,  1899,  1910,  1911,  1917,
     1043    1918,  1922,  1923,  1924,  1927,  1926,  1937,  1942,  1947,  1953,
     1044    1962,  1968,  1974,  1980,  1986,  1994,  2000,  2008,  2014,  2023,
     1045    2024,  2025,  2029,  2033,  2035,  2040,  2041,  2045,  2046,  2051,
     1046    2057,  2058,  2061,  2063,  2064,  2068,  2069,  2070,  2071,  2105,
     1047    2107,  2108,  2110,  2115,  2120,  2125,  2127,  2129,  2134,  2136,
     1048    2138,  2140,  2145,  2147,  2157,  2159,  2160,  2165,  2167,  2169,
     1049    2174,  2176,  2178,  2183,  2185,  2187,  2196,  2197,  2198,  2202,
     1050    2204,  2206,  2211,  2213,  2215,  2220,  2222,  2224,  2239,  2241,
     1051    2242,  2244,  2249,  2250,  2255,  2257,  2259,  2264,  2266,  2268,
     1052    2270,  2275,  2277,  2279,  2289,  2291,  2292,  2294,  2299,  2301,
     1053    2303,  2308,  2310,  2312,  2314,  2319,  2321,  2323,  2354,  2356,
     1054    2357,  2359,  2364,  2369,  2377,  2379,  2381,  2386,  2388,  2393,
     1055    2395,  2409,  2410,  2412,  2417,  2419,  2421,  2423,  2425,  2430,
     1056    2431,  2433,  2435,  2440,  2442,  2444,  2450,  2452,  2454,  2458,
     1057    2460,  2462,  2464,  2478,  2479,  2481,  2486,  2488,  2490,  2492,
     1058    2494,  2499,  2500,  2502,  2504,  2509,  2511,  2513,  2519,  2520,
     1059    2522,  2531,  2534,  2536,  2539,  2541,  2543,  2556,  2557,  2559,
     1060    2564,  2566,  2568,  2570,  2572,  2577,  2578,  2580,  2582,  2587,
     1061    2589,  2597,  2598,  2599,  2604,  2605,  2609,  2611,  2613,  2615,
     1062    2617,  2619,  2626,  2628,  2630,  2632,  2634,  2636,  2638,  2640,
     1063    2642,  2644,  2649,  2651,  2653,  2658,  2684,  2685,  2687,  2691,
     1064    2692,  2696,  2698,  2700,  2702,  2704,  2706,  2713,  2715,  2717,
     1065    2719,  2721,  2723,  2728,  2733,  2735,  2737,  2755,  2757,  2762,
     1066    2763
    10861067};
    10871068#endif
     
    10991080  "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT",
    11001081  "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE",
    1101   "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
    1102   "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
    1103   "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT", "THREADLOCAL",
    1104   "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname",
    1105   "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
     1082  "FALLTHRU", "TRY", "CATCH", "FINALLY", "THROW", "ASM", "ALIGNAS",
     1083  "ALIGNOF", "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT",
     1084  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
     1085  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    11061086  "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
    11071087  "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
     
    11121092  "'+'", "'-'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'",
    11131093  "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
    1114   "no_01_identifier", "no_attr_identifier", "no_attr_identifier_01",
    1115   "zero_one", "string_literal_list", "primary_expression",
    1116   "postfix_expression", "argument_expression_list", "argument_expression",
    1117   "field_list", "field", "unary_expression", "unary_operator",
    1118   "cast_expression", "multiplicative_expression", "additive_expression",
    1119   "shift_expression", "relational_expression", "equality_expression",
    1120   "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
     1094  "no_01_identifier", "no_attr_identifier", "zero_one",
     1095  "string_literal_list", "primary_expression", "postfix_expression",
     1096  "argument_expression_list", "argument_expression", "field_list", "field",
     1097  "unary_expression", "unary_operator", "cast_expression",
     1098  "multiplicative_expression", "additive_expression", "shift_expression",
     1099  "relational_expression", "equality_expression", "AND_expression",
     1100  "exclusive_OR_expression", "inclusive_OR_expression",
    11211101  "logical_AND_expression", "logical_OR_expression",
    11221102  "conditional_expression", "constant_expression", "assignment_expression",
     
    11331113  "finally_clause", "exception_declaration", "asm_statement",
    11341114  "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
    1135   "asm_operand", "asm_clobbers_list_opt", "label_list", "ctor_dtor",
     1115  "asm_operand", "asm_clobbers_list_opt", "label_list",
    11361116  "declaration_list_opt", "declaration_list", "old_declaration_list_opt",
    11371117  "old_declaration_list", "local_label_declaration_opt",
     
    12151195     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12161196     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1217      355,   356,   357,   358,   359,   360,    40,    41,    91,    93,
    1218       46,   123,   125,    44,    58,    33,    42,    38,    43,    45,
    1219      126,    47,    37,    60,    62,    94,   124,    63,    61,    59
     1197     355,    40,    41,    91,    93,    46,   123,   125,    44,    58,
     1198      33,    42,    38,    43,    45,   126,    47,    37,    60,    62,
     1199      94,   124,    63,    61,    59
    12201200};
    12211201# endif
     
    12241204static const yytype_uint16 yyr1[] =
    12251205{
    1226        0,   130,   131,   132,   133,   133,   133,   134,   134,   134,
    1227      135,   135,   136,   137,   137,   138,   138,   139,   139,   140,
    1228      140,   140,   140,   141,   141,   141,   141,   141,   141,   141,
    1229      141,   141,   141,   142,   142,   143,   143,   143,   143,   143,
    1230      144,   144,   145,   145,   145,   145,   145,   146,   146,   146,
    1231      146,   146,   146,   146,   146,   146,   146,   146,   146,   146,
    1232      146,   146,   146,   146,   147,   147,   147,   147,   148,   148,
    1233      148,   149,   149,   149,   149,   150,   150,   150,   151,   151,
    1234      151,   152,   152,   152,   152,   152,   153,   153,   153,   154,
    1235      154,   155,   155,   156,   156,   157,   157,   158,   158,   159,
    1236      159,   159,   159,   160,   161,   161,   161,   161,   162,   162,
    1237      163,   163,   163,   163,   164,   164,   165,   165,   165,   165,
    1238      165,   165,   165,   165,   165,   165,   166,   166,   167,   167,
    1239      168,   168,   168,   168,   168,   168,   168,   168,   168,   169,
    1240      170,   170,   171,   171,   172,   172,   172,   172,   173,   173,
    1241      174,   175,   175,   175,   175,   175,   175,   176,   176,   176,
    1242      177,   177,   178,   178,   179,   179,   180,   181,   181,   182,
    1243      182,   183,   183,   184,   184,   184,   184,   185,   185,   186,
    1244      186,   187,   187,   187,   188,   188,   189,   189,   189,   189,
    1245      189,   189,   189,   189,   189,   189,   190,   190,   190,   191,
    1246      191,   191,   191,   191,   192,   192,   192,   192,   193,   194,
    1247      194,   194,   194,   194,   195,   195,   195,   195,   195,   196,
    1248      196,   197,   197,   198,   198,   199,   199,   200,   200,   200,
    1249      201,   201,   202,   202,   203,   203,   204,   204,   205,   205,
    1250      206,   206,   207,   207,   208,   208,   209,   209,   210,   210,
    1251      211,   211,   211,   211,   211,   212,   212,   212,   213,   213,
    1252      213,   214,   214,   214,   214,   214,   215,   215,   215,   216,
    1253      216,   217,   217,   217,   218,   218,   218,   218,   218,   219,
    1254      219,   220,   220,   220,   220,   221,   221,   222,   222,   222,
    1255      222,   223,   223,   223,   223,   224,   224,   225,   225,   226,
    1256      226,   227,   227,   227,   227,   227,   228,   227,   229,   229,
    1257      229,   230,   230,   231,   232,   232,   232,   232,   232,   232,
    1258      232,   232,   233,   233,   233,   233,   233,   233,   233,   233,
    1259      233,   233,   233,   233,   234,   234,   234,   234,   234,   235,
    1260      235,   236,   236,   236,   236,   237,   237,   237,   237,   238,
    1261      238,   238,   238,   239,   239,   239,   240,   240,   240,   240,
    1262      241,   241,   241,   242,   242,   243,   243,   243,   243,   243,
    1263      244,   244,   245,   245,   246,   246,   246,   246,   247,   247,
    1264      247,   247,   248,   248,   249,   249,   249,   249,   249,   250,
    1265      250,   251,   252,   253,   253,   253,   254,   254,   255,   255,
    1266      256,   256,   257,   257,   257,   257,   257,   258,   258,   258,
    1267      258,   259,   259,   260,   260,   261,   261,   262,   262,   262,
    1268      262,   263,   263,   263,   263,   263,   264,   264,   264,   264,
    1269      264,   265,   265,   266,   266,   267,   267,   268,   268,   268,
    1270      269,   269,   269,   270,   270,   270,   271,   271,   271,   272,
    1271      272,   272,   272,   273,   273,   274,   274,   275,   275,   275,
    1272      275,   276,   276,   277,   277,   278,   278,   278,   278,   278,
    1273      278,   279,   279,   279,   279,   280,   280,   280,   281,   282,
    1274      282,   284,   283,   283,   285,   285,   285,   286,   286,   287,
    1275      287,   287,   288,   288,   288,   288,   289,   289,   289,   290,
    1276      290,   291,   291,   292,   293,   292,   294,   294,   295,   295,
    1277      296,   296,   296,   297,   297,   298,   298,   299,   299,   300,
    1278      300,   301,   301,   301,   302,   301,   301,   303,   303,   303,
    1279      304,   304,   304,   304,   304,   304,   304,   304,   304,   305,
    1280      305,   305,   306,   307,   307,   308,   308,   309,   309,   310,
    1281      311,   311,   312,   312,   312,   313,   313,   313,   313,   314,
    1282      314,   314,   314,   315,   315,   316,   316,   316,   317,   317,
    1283      317,   317,   318,   318,   319,   319,   319,   320,   320,   320,
    1284      321,   321,   321,   322,   322,   322,   323,   323,   323,   324,
    1285      324,   324,   325,   325,   325,   326,   326,   326,   327,   327,
    1286      327,   327,   328,   328,   329,   329,   329,   330,   330,   330,
    1287      330,   331,   331,   331,   332,   332,   332,   332,   333,   333,
    1288      333,   334,   334,   334,   334,   335,   335,   335,   336,   336,
    1289      336,   336,   337,   337,   338,   338,   338,   339,   339,   340,
    1290      340,   341,   341,   341,   342,   342,   342,   342,   342,   343,
    1291      343,   343,   343,   344,   344,   344,   345,   345,   345,   346,
    1292      346,   346,   346,   347,   347,   347,   348,   348,   348,   348,
    1293      348,   349,   349,   349,   349,   350,   350,   350,   351,   351,
    1294      351,   352,   352,   352,   352,   352,   352,   353,   353,   353,
    1295      354,   354,   354,   354,   354,   355,   355,   355,   355,   356,
    1296      356,   357,   357,   357,   358,   358,   359,   359,   359,   359,
    1297      359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
    1298      360,   360,   361,   361,   361,   361,   362,   362,   362,   363,
    1299      363,   364,   364,   364,   364,   364,   364,   365,   365,   365,
    1300      365,   365,   365,   366,   367,   367,   367,   368,   368,   369,
    1301      369
     1206       0,   125,   126,   127,   128,   128,   128,   129,   129,   129,
     1207     130,   130,   131,   132,   132,   133,   133,   134,   134,   134,
     1208     134,   135,   135,   135,   135,   135,   135,   135,   135,   135,
     1209     135,   136,   136,   137,   137,   137,   137,   137,   138,   138,
     1210     139,   139,   139,   139,   139,   140,   140,   140,   140,   140,
     1211     140,   140,   140,   140,   140,   140,   140,   140,   140,   140,
     1212     140,   140,   141,   141,   141,   141,   142,   142,   142,   143,
     1213     143,   143,   143,   144,   144,   144,   145,   145,   145,   146,
     1214     146,   146,   146,   146,   147,   147,   147,   148,   148,   149,
     1215     149,   150,   150,   151,   151,   152,   152,   153,   153,   153,
     1216     153,   154,   155,   155,   155,   155,   156,   156,   157,   157,
     1217     157,   157,   158,   158,   159,   159,   159,   159,   159,   159,
     1218     159,   159,   159,   159,   160,   160,   161,   161,   162,   162,
     1219     162,   162,   162,   162,   162,   162,   163,   164,   164,   165,
     1220     165,   166,   166,   166,   166,   167,   167,   168,   169,   169,
     1221     169,   169,   169,   169,   170,   170,   170,   171,   171,   172,
     1222     172,   173,   173,   174,   175,   175,   176,   176,   177,   177,
     1223     178,   178,   178,   178,   179,   179,   180,   180,   181,   181,
     1224     181,   182,   182,   183,   183,   183,   183,   183,   183,   183,
     1225     183,   183,   184,   184,   184,   185,   185,   185,   186,   186,
     1226     187,   188,   188,   188,   188,   188,   189,   189,   189,   189,
     1227     189,   190,   190,   191,   191,   192,   192,   193,   193,   194,
     1228     194,   194,   195,   195,   196,   196,   197,   197,   198,   198,
     1229     199,   199,   200,   200,   201,   201,   202,   202,   203,   203,
     1230     204,   204,   204,   204,   204,   205,   205,   205,   206,   206,
     1231     206,   207,   207,   207,   207,   207,   208,   208,   208,   209,
     1232     209,   210,   210,   210,   211,   211,   211,   211,   211,   212,
     1233     212,   213,   213,   213,   213,   214,   214,   215,   215,   215,
     1234     215,   216,   216,   216,   216,   217,   217,   218,   218,   219,
     1235     219,   220,   220,   220,   220,   220,   221,   220,   222,   222,
     1236     222,   223,   223,   224,   225,   225,   225,   225,   225,   225,
     1237     225,   225,   226,   226,   226,   226,   226,   226,   226,   226,
     1238     226,   226,   226,   226,   227,   227,   227,   227,   227,   228,
     1239     228,   229,   229,   229,   229,   230,   230,   230,   230,   231,
     1240     231,   231,   231,   232,   232,   232,   233,   233,   233,   233,
     1241     234,   234,   234,   235,   235,   236,   236,   236,   236,   236,
     1242     237,   237,   238,   238,   239,   239,   239,   239,   240,   240,
     1243     240,   240,   241,   241,   242,   242,   242,   242,   242,   243,
     1244     243,   244,   245,   246,   246,   246,   247,   247,   248,   248,
     1245     249,   249,   250,   250,   250,   250,   250,   251,   251,   251,
     1246     251,   252,   252,   253,   253,   254,   254,   255,   255,   255,
     1247     255,   256,   256,   256,   256,   256,   257,   257,   257,   257,
     1248     257,   258,   258,   259,   259,   260,   260,   261,   261,   261,
     1249     262,   262,   262,   263,   263,   263,   264,   264,   264,   265,
     1250     265,   265,   265,   266,   266,   267,   267,   268,   268,   268,
     1251     268,   269,   269,   270,   270,   271,   271,   271,   271,   271,
     1252     271,   272,   272,   272,   272,   273,   273,   273,   274,   275,
     1253     275,   277,   276,   276,   278,   278,   278,   279,   279,   280,
     1254     280,   280,   281,   281,   281,   281,   282,   282,   282,   283,
     1255     283,   284,   284,   285,   286,   285,   287,   287,   288,   288,
     1256     289,   289,   289,   290,   290,   291,   291,   292,   292,   293,
     1257     293,   294,   294,   294,   295,   294,   294,   296,   296,   296,
     1258     297,   297,   297,   297,   297,   297,   297,   297,   297,   298,
     1259     298,   298,   299,   300,   300,   301,   301,   302,   302,   303,
     1260     304,   304,   305,   305,   305,   306,   306,   306,   306,   307,
     1261     307,   307,   307,   308,   308,   309,   309,   309,   310,   310,
     1262     310,   310,   311,   311,   312,   312,   312,   313,   313,   313,
     1263     314,   314,   314,   315,   315,   315,   316,   316,   316,   317,
     1264     317,   317,   318,   318,   318,   319,   319,   319,   320,   320,
     1265     320,   320,   321,   321,   322,   322,   322,   323,   323,   323,
     1266     323,   324,   324,   324,   325,   325,   325,   325,   326,   326,
     1267     326,   327,   327,   327,   327,   328,   328,   328,   329,   329,
     1268     329,   329,   330,   330,   331,   331,   331,   332,   332,   333,
     1269     333,   334,   334,   334,   335,   335,   335,   335,   335,   336,
     1270     336,   336,   336,   337,   337,   337,   338,   338,   338,   339,
     1271     339,   339,   339,   340,   340,   340,   341,   341,   341,   341,
     1272     341,   342,   342,   342,   342,   343,   343,   343,   344,   344,
     1273     344,   345,   345,   345,   345,   345,   345,   346,   346,   346,
     1274     347,   347,   347,   347,   347,   348,   348,   348,   348,   349,
     1275     349,   350,   350,   350,   351,   351,   352,   352,   352,   352,
     1276     352,   352,   353,   353,   353,   353,   353,   353,   353,   353,
     1277     353,   353,   354,   354,   354,   354,   355,   355,   355,   356,
     1278     356,   357,   357,   357,   357,   357,   357,   358,   358,   358,
     1279     358,   358,   358,   359,   360,   360,   360,   361,   361,   362,
     1280     362
    13021281};
    13031282
     
    13061285{
    13071286       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1308        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1309        1,     3,     3,     1,     6,     4,     3,     7,     3,     7,
    1310        2,     2,     7,     1,     3,     0,     1,     3,     7,     9,
    1311        1,     3,     1,     3,     7,     3,     7,     1,     1,     1,
    1312        2,     2,     2,     2,     2,     2,     2,     4,     1,     4,
    1313        4,     2,     4,     2,     1,     1,     1,     1,     1,     4,
    1314        4,     1,     3,     3,     3,     1,     3,     3,     1,     3,
    1315        3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
    1316        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1317        5,     4,     5,     1,     1,     3,     3,     2,     0,     1,
    1318        2,     5,     6,     7,     1,     3,     1,     1,     1,     1,
    1319        1,     1,     1,     1,     1,     1,     1,     3,     0,     1,
    1320        1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
    1321        2,     7,     1,     3,     1,     2,     1,     2,     1,     2,
    1322        2,     5,     7,     5,     9,     5,     9,     1,     3,     1,
    1323        1,     3,     3,     2,     1,     2,     2,     0,     1,     2,
    1324        3,     0,     1,     2,     3,     3,     4,     0,     1,     1,
    1325        2,     5,     7,     6,     6,     4,     3,     4,     2,     3,
    1326        2,     3,     3,     3,     3,     5,     3,     3,     4,     1,
    1327        5,     6,     5,     6,     9,    10,     9,    10,     2,     1,
    1328        2,     2,     2,     1,     6,     8,    10,    12,    14,     0,
    1329        1,     0,     1,     1,     3,     4,     7,     0,     1,     3,
    1330        1,     3,     5,     5,     1,     1,     1,     3,     1,     1,
     1287       1,     1,     1,     1,     1,     1,     2,     1,     1,     3,
     1288       3,     1,     6,     4,     3,     7,     3,     7,     2,     2,
     1289       7,     1,     3,     0,     1,     3,     7,     9,     1,     3,
     1290       1,     3,     7,     3,     7,     1,     1,     1,     2,     2,
     1291       2,     2,     2,     2,     2,     4,     1,     4,     4,     2,
     1292       4,     2,     1,     1,     1,     1,     1,     4,     4,     1,
     1293       3,     3,     3,     1,     3,     3,     1,     3,     3,     1,
     1294       3,     3,     3,     3,     1,     3,     3,     1,     3,     1,
     1295       3,     1,     3,     1,     3,     1,     3,     1,     5,     4,
     1296       5,     1,     1,     3,     3,     2,     0,     1,     2,     5,
     1297       6,     7,     1,     3,     1,     1,     1,     1,     1,     1,
     1298       1,     1,     1,     1,     1,     3,     0,     1,     1,     1,
     1299       1,     1,     1,     1,     1,     1,     4,     2,     7,     1,
     1300       3,     1,     2,     1,     2,     1,     2,     2,     5,     7,
     1301       5,     9,     5,     9,     1,     3,     1,     1,     3,     3,
     1302       2,     1,     2,     2,     0,     1,     2,     3,     0,     1,
     1303       2,     3,     3,     4,     0,     1,     1,     2,     5,     7,
     1304       6,     6,     4,     3,     4,     2,     3,     2,     3,     3,
     1305       3,     2,     3,     3,     4,     1,     5,     6,     9,    10,
     1306       2,     1,     2,     2,     2,     1,     6,     8,    10,    12,
     1307      14,     0,     1,     0,     1,     1,     3,     4,     7,     0,
     1308       1,     3,     1,     3,     1,     1,     1,     3,     1,     1,
    13311309       1,     3,     0,     1,     3,     4,     1,     3,     1,     1,
    13321310       3,     3,     3,     3,     3,     2,     3,     6,     3,     3,
     
    13881366static const yytype_uint16 yydefact[] =
    13891367{
    1390      295,   295,   316,   314,   317,   315,   318,   319,   301,   303,
    1391      302,     0,   304,   330,   322,   327,   325,   326,   324,   323,
    1392      328,   329,   331,   332,   333,   545,   545,   545,     0,     0,
    1393        0,   295,   219,   305,   320,   321,     7,   360,     0,     8,
    1394       15,    16,     0,     2,   295,   563,     9,   523,   521,   248,
    1395        3,   453,     3,   261,     0,     3,     3,     3,   249,     3,
    1396        0,     0,     0,   296,   297,   299,   295,   308,   311,   313,
    1397      341,   287,   334,   339,   288,   349,   289,   356,   353,   363,
    1398        0,     0,   364,   290,   471,   475,     3,     3,     0,     2,
    1399      517,   522,   527,   300,     0,     0,   545,   575,   545,     2,
    1400      586,   587,   588,   295,     0,   729,   730,     0,    12,   295,
    1401        0,   271,   272,     0,   296,   291,   292,   293,   294,   524,
    1402      306,   392,   546,   547,   370,   371,    12,   444,   445,    11,
    1403      440,   443,     0,   501,   496,   487,   444,   445,     0,     0,
    1404      526,   220,     0,   295,     0,     0,     0,     0,     0,     0,
    1405        0,     0,   295,   295,     2,     0,   731,   296,   580,   592,
    1406      735,   728,   726,   733,     0,     0,   255,     2,     0,   530,
    1407      438,   439,   437,     0,     0,     0,     0,   545,     0,   632,
    1408      633,     0,     0,   543,   539,   545,   560,   545,   545,   540,
    1409        2,   541,   545,   599,   545,   545,   602,     0,     0,     0,
    1410      295,   295,   314,   361,     2,   295,   262,   298,   309,   342,
    1411      354,   476,     0,     2,     0,   453,   263,   296,   335,   350,
    1412      357,   472,     0,     2,     0,   312,   336,   343,   344,     0,
    1413      351,   355,   358,   362,   445,   295,   295,   366,   369,     0,
    1414      395,   473,   477,     0,     0,     0,     1,   295,     2,   528,
    1415      574,   576,   295,     2,   739,   296,   742,   543,   543,   296,
    1416        0,     0,     0,   274,   545,   540,     2,   295,     0,     0,
    1417      295,   548,     2,   499,     2,   552,     0,     0,     0,     0,
    1418        0,    19,    58,     4,     5,     6,    17,     0,     0,     0,
    1419      295,     2,     0,   295,    64,    65,    66,    67,    48,    20,
    1420       49,    23,    47,    68,     0,    71,    75,    78,    81,    86,
    1421       89,    91,    93,    95,    97,    99,   104,   493,   749,   451,
    1422      492,     0,   449,   450,     0,   564,   579,   582,   585,   591,
    1423      594,   597,   360,     0,     2,   737,     0,   295,   740,     2,
    1424      295,     3,   425,     0,   433,   296,   295,   308,   334,   288,
    1425      349,   356,     3,     3,   407,   411,   421,   426,   471,   295,
    1426      427,   704,   705,   295,   428,   430,   295,     2,   581,   593,
    1427      727,     2,     2,   250,     2,     0,     0,   455,   454,   140,
    1428        2,     2,   252,     2,     2,   251,     2,   282,     2,   283,
    1429        0,   281,     0,     0,     0,     0,     0,     0,     0,     0,
    1430        0,   565,   604,     0,   453,     2,   559,   568,   658,   561,
    1431      562,   531,   295,     2,   598,   607,   600,   601,     0,   277,
    1432      295,   295,   340,   296,     0,   296,     0,   295,   732,   736,
    1433      734,   532,   295,   543,   256,   264,   310,     0,     2,   533,
    1434      295,   497,   337,   338,   284,   352,   359,     0,   295,     2,
    1435      384,   295,   372,     0,     0,   378,   726,   295,   747,   398,
    1436        0,   474,   498,   253,   254,   518,   295,   435,     0,   295,
    1437      238,     0,     2,   240,     0,   296,     0,   258,     2,   259,
    1438      279,     0,     0,     2,   295,   543,   295,   484,   486,   485,
    1439        0,     0,   749,     0,   295,     0,   295,   488,   295,   558,
    1440      556,   557,   555,     0,   550,   553,     0,     0,   295,    56,
    1441       68,    52,   295,    61,   295,   295,    50,    51,    63,     2,
    1442      126,     0,     0,   447,     0,   446,   110,   295,    54,    55,
    1443       18,     0,    30,    31,    35,     2,     0,   116,   117,   118,
    1444      119,   120,   121,   122,   123,   124,   125,     0,     0,    53,
     1368     285,   285,   306,   304,   307,   305,   308,   309,   291,   293,
     1369     292,     0,   294,   320,   312,   317,   315,   316,   314,   313,
     1370     318,   319,   321,   322,   323,   535,   535,   535,     0,     0,
     1371       0,   285,   211,   295,   310,   311,     7,   350,     0,     8,
     1372      13,    14,     0,     2,   285,   553,     9,   513,   511,   238,
     1373       3,   443,     3,   251,     0,     3,     3,     3,   239,     3,
     1374       0,     0,     0,   286,   287,   289,   285,   298,   301,   303,
     1375     331,   277,   324,   329,   278,   339,   279,   346,   343,   353,
     1376       0,     0,   354,   280,   461,   465,     3,     3,     0,     2,
     1377     507,   512,   517,   290,     0,     0,   535,   565,   535,     2,
     1378     576,   577,   578,   285,     0,   719,   720,     0,    12,   285,
     1379       0,   261,   262,     0,   286,   281,   282,   283,   284,   514,
     1380     296,   382,   536,   537,   360,   361,    12,   434,   435,    11,
     1381     430,   433,     0,   491,   486,   477,   434,   435,     0,     0,
     1382     516,   212,     0,   285,     0,     0,     0,     0,     0,     0,
     1383       0,     0,   285,   285,     2,     0,   721,   286,   570,   582,
     1384     725,   718,   716,   723,     0,     0,   245,     2,     0,   520,
     1385     428,   429,   427,     0,     0,     0,     0,   535,     0,   622,
     1386     623,     0,     0,   533,   529,   535,   550,   535,   535,   530,
     1387       2,   531,   535,   589,   535,   535,   592,     0,     0,     0,
     1388     285,   285,   304,   351,     2,   285,   252,   288,   299,   332,
     1389     344,   466,     0,     2,     0,   443,   253,   286,   325,   340,
     1390     347,   462,     0,     2,     0,   302,   326,   333,   334,     0,
     1391     341,   345,   348,   352,   435,   285,   285,   356,   359,     0,
     1392     385,   463,   467,     0,     0,     0,     1,   285,     2,   518,
     1393     564,   566,   285,     2,   729,   286,   732,   533,   533,   286,
     1394       0,     0,     0,   264,   535,   530,     2,   285,     0,     0,
     1395     285,   538,     2,   489,     2,   542,     0,     0,     0,     0,
     1396       0,    17,    56,     4,     5,     6,    15,     0,     0,     0,
     1397     285,     2,     0,   285,    62,    63,    64,    65,    46,    18,
     1398      47,    21,    45,    66,     0,    69,    73,    76,    79,    84,
     1399      87,    89,    91,    93,    95,    97,   102,   483,   739,   441,
     1400     482,     0,   439,   440,     0,   554,   569,   572,   575,   581,
     1401     584,   587,   350,     0,     2,   727,     0,   285,   730,     2,
     1402     285,     3,   415,     0,   423,   286,   285,   298,   324,   278,
     1403     339,   346,     3,     3,   397,   401,   411,   416,   461,   285,
     1404     417,   694,   695,   285,   418,   420,   285,     2,   571,   583,
     1405     717,     2,     2,   240,     2,     0,     0,   445,   444,   137,
     1406       2,     2,   242,     2,     2,   241,     2,   272,     2,   273,
     1407       0,   271,     0,     0,     0,     0,     0,     0,     0,     0,
     1408       0,   555,   594,     0,   443,     2,   549,   558,   648,   551,
     1409     552,   521,   285,     2,   588,   597,   590,   591,     0,   267,
     1410     285,   285,   330,   286,     0,   286,     0,   285,   722,   726,
     1411     724,   522,   285,   533,   246,   254,   300,     0,     2,   523,
     1412     285,   487,   327,   328,   274,   342,   349,     0,   285,     2,
     1413     374,   285,   362,     0,     0,   368,   716,   285,   737,   388,
     1414       0,   464,   488,   243,   244,   508,   285,   425,     0,   285,
     1415     228,     0,     2,   230,     0,   286,     0,   248,     2,   249,
     1416     269,     0,     0,     2,   285,   533,   285,   474,   476,   475,
     1417       0,     0,   739,     0,   285,     0,   285,   478,   285,   548,
     1418     546,   547,   545,     0,   540,   543,     0,     0,   285,    54,
     1419      66,    50,   285,    59,   285,   285,    48,    49,    61,     2,
     1420     124,     0,     0,   437,     0,   436,   108,   285,    52,    53,
     1421      16,     0,    28,    29,    33,     2,     0,   114,   115,   116,
     1422     117,   118,   119,   120,   121,   122,   123,     0,     0,    51,
    14451423       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    14461424       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1447      107,     2,   644,   452,   641,   545,   545,   649,   478,   295,
    1448        2,   583,   584,     0,   595,   596,     0,     2,   738,   741,
    1449      110,   295,     2,   295,     0,   706,   296,   710,   701,   702,
    1450      708,     0,     2,     2,   666,   545,   749,   615,   545,   545,
    1451      749,   545,   629,   545,   545,   680,   434,   663,   545,   545,
    1452      671,   678,   295,   429,   296,     0,     0,   295,   716,   296,
    1453      721,   749,   713,   295,   718,   749,   295,   295,   295,     0,
    1454      110,     0,    19,     5,     2,     0,     0,   457,   747,     0,
    1455        0,   463,   242,     0,   295,     0,     0,     0,   543,   567,
    1456      571,   573,   603,   606,   610,   613,   566,   605,     0,   285,
    1457      656,     0,   295,   278,     0,     0,     0,     0,   276,     2,
    1458        0,   260,   534,   295,     0,     0,     0,     0,   295,   295,
    1459        0,     0,   690,   382,   385,   389,   545,   389,   695,   388,
    1460      687,   545,   545,   365,   373,   381,   374,   545,   376,   379,
    1461      295,   748,     0,     0,   396,   747,   296,     3,   414,     3,
    1462      418,   417,   589,     0,   529,   295,     3,     3,   295,   433,
    1463      296,     3,   427,   428,     2,     0,     0,     0,   483,   307,
    1464      295,   479,   481,     3,     2,     2,     0,   500,     3,     0,
    1465      552,   128,     0,     0,   221,     0,     0,     2,     0,     0,
    1466       36,     0,     0,   110,   295,    21,     0,    22,     0,   690,
    1467      448,     0,   108,     3,     2,    28,     2,     0,    33,     0,
    1468        2,    26,   105,   106,    72,    73,    74,    76,    77,    79,
    1469       80,    84,    85,    82,    83,    87,    88,    90,    92,    94,
    1470       96,    98,     0,     0,   750,   295,     0,     0,     0,   645,
    1471      646,   642,   643,   495,   494,   295,     0,     3,   295,   712,
    1472      295,   717,   296,   295,   295,   295,   660,   703,   659,     2,
    1473      295,     0,     0,     0,     0,     0,     0,     0,     0,   681,
    1474        0,   667,   618,   634,   668,     2,   614,   621,   431,   616,
    1475      617,   432,     2,   628,   637,   630,   631,   664,   665,   679,
    1476      707,   711,   709,   749,   269,     2,   743,     2,   422,   715,
    1477      720,   423,     0,   401,     3,     3,     3,     3,   453,     3,
    1478        0,     2,   466,   462,   748,     0,   458,   465,     2,   461,
    1479      464,     0,   295,   243,   265,     3,   273,   275,     0,   453,
    1480        2,   569,   570,     2,   608,   609,     0,   657,   535,     3,
    1481      346,   345,   348,   347,   295,   536,     0,   537,   295,   375,
    1482      377,     2,     0,     0,     0,     0,   103,   391,   691,   692,
    1483      386,   390,   387,   688,   689,   380,   384,   367,   398,   393,
    1484      399,     0,     0,     0,   436,   241,     0,     0,     3,     2,
    1485      666,   429,     0,   525,     0,   749,   487,     0,   295,   295,
    1486      295,     0,   549,   551,   129,     0,     0,   214,     0,     0,
    1487        0,   222,   223,    57,    62,   295,     0,    60,    59,     0,
    1488      127,   691,     0,    69,    70,   109,   114,     3,   108,     0,
    1489        0,     0,    25,    35,     3,     0,   101,     0,     3,   648,
    1490      652,   655,   647,     3,   590,     3,   714,   719,     2,   295,
    1491        3,     3,   296,     0,     3,   620,   624,   627,   636,   670,
    1492      674,   677,   295,     3,   619,   635,   669,   295,   295,   424,
    1493      295,   295,   744,     0,     0,     0,     0,   257,     0,   103,
    1494        0,     3,     3,     0,   459,     0,   456,     0,     0,   246,
    1495      295,     0,     0,   128,     0,     0,     0,     0,     0,   128,
    1496        0,     0,   108,   108,    19,     2,     0,     0,     0,    20,
    1497        0,     3,   130,   131,     2,   142,   132,   133,   134,   135,
    1498      136,   137,   138,   144,   146,     0,     0,     0,   286,   295,
    1499      295,   545,     0,   538,   295,   110,   694,   698,   700,   693,
    1500      383,   397,   394,   577,     2,   662,   661,     0,   667,     2,
    1501      480,   482,   502,     3,   510,   511,     0,     2,   506,     3,
    1502        3,     0,     0,   554,   221,     0,     0,     0,   221,     0,
    1503        3,    37,   747,   108,     0,     3,   659,    42,     3,    40,
    1504        3,    34,     0,     3,   100,   102,     0,     2,   650,   651,
    1505        0,     0,   295,     0,     0,     0,     3,   636,     0,     2,
    1506      622,   623,     2,   638,     2,   672,   673,     0,     0,     3,
    1507        0,     3,     3,     3,     3,   409,   408,   412,     2,     2,
    1508      746,   745,   111,     0,     0,     0,     0,     3,   460,     3,
    1509        0,   244,   145,     3,   296,   295,     0,     0,     0,     0,
    1510        2,   190,     0,   188,     0,     0,     0,     0,     0,     0,
    1511        0,     0,   110,    13,     0,    14,   545,    35,   150,   147,
    1512      295,     0,     0,   268,   280,     3,     3,   544,   611,   368,
    1513        2,   696,   697,   295,   267,   295,     0,   513,   490,   295,
    1514        0,     0,   489,   504,     0,     0,     0,   215,     0,   224,
    1515      108,     0,     0,   115,   112,     0,     0,     0,     0,     0,
    1516        0,    24,     0,   653,   295,   578,   266,   722,   723,   724,
    1517        0,   675,   295,   295,   295,     3,     3,     0,   683,     0,
    1518        0,     0,     0,   295,   295,     3,   542,   467,   468,     0,
    1519        0,   247,   296,     0,     0,     0,     0,   295,   191,   189,
    1520        0,   186,   192,     0,     0,     0,     0,   196,   199,   197,
    1521      193,     0,   194,     0,   128,     0,   143,   141,   245,     0,
    1522        0,   295,   416,   420,   419,     0,   507,     2,   508,     2,
    1523      509,   503,   295,   227,     0,   225,     0,   227,     3,   659,
    1524       32,   113,     2,    45,     2,    43,    41,    29,   111,    27,
    1525        3,   725,     3,     3,     3,     0,     0,   682,   684,   625,
    1526      639,   270,     2,   406,     3,   405,     0,   470,   467,   128,
    1527        0,     0,   128,     3,     0,   128,   187,     0,     2,     2,
    1528      208,   198,     0,     0,     0,     0,   139,     0,   572,   612,
    1529        3,     2,     0,     0,     2,   228,     0,     0,   216,     0,
    1530        0,     0,     0,     0,     0,     0,     0,     0,   685,   686,
    1531      295,     0,   469,   151,     0,     0,     2,   164,   128,   153,
    1532        0,   181,     0,   128,     0,     2,   155,     0,     2,     0,
    1533        2,     2,     2,   195,   233,   232,     0,   295,   512,   514,
    1534      505,     0,     0,     0,     0,   113,    38,     3,     3,   654,
    1535      626,   640,   676,   410,   128,   157,   160,     0,   159,   163,
    1536        3,   166,   165,     0,   128,   183,   128,     3,     0,   295,
    1537        0,   295,     0,     2,     0,     2,   699,     2,   229,   230,
    1538        0,   226,   217,     0,     0,     0,   152,     0,     0,   162,
    1539      234,   167,     2,   236,   182,     0,   185,   171,   200,     3,
    1540      209,   213,   202,     3,     0,   295,     0,   295,     0,     0,
    1541        0,    39,    46,    44,   158,   161,   128,     0,   168,   295,
    1542      128,   128,     0,   172,     0,     0,   690,   210,   211,   212,
    1543        0,   201,     3,   203,     3,   295,   218,   231,   148,   169,
    1544      154,   128,   237,   184,   179,   177,   173,   156,   128,     0,
    1545      691,     0,     0,     0,     0,   149,   170,   180,   174,   178,
    1546      177,   175,     3,     3,     0,     0,   491,   176,   204,   206,
    1547        3,     3,   205,   207
     1425     105,     2,   634,   442,   631,   535,   535,   639,   468,   285,
     1426       2,   573,   574,     0,   585,   586,     0,     2,   728,   731,
     1427     108,   285,     2,   285,     0,   696,   286,   700,   691,   692,
     1428     698,     0,     2,     2,   656,   535,   739,   605,   535,   535,
     1429     739,   535,   619,   535,   535,   670,   424,   653,   535,   535,
     1430     661,   668,   285,   419,   286,     0,     0,   285,   706,   286,
     1431     711,   739,   703,   285,   708,   739,   285,   285,   285,     0,
     1432     108,     0,    17,     5,     2,     0,     0,   447,   737,     0,
     1433       0,   453,   232,     0,   285,     0,     0,     0,   533,   557,
     1434     561,   563,   593,   596,   600,   603,   556,   595,     0,   275,
     1435     646,     0,   285,   268,     0,     0,     0,     0,   266,     2,
     1436       0,   250,   524,   285,     0,     0,     0,     0,   285,   285,
     1437       0,     0,   680,   372,   375,   379,   535,   379,   685,   378,
     1438     677,   535,   535,   355,   363,   371,   364,   535,   366,   369,
     1439     285,   738,     0,     0,   386,   737,   286,     3,   404,     3,
     1440     408,   407,   579,     0,   519,   285,     3,     3,   285,   423,
     1441     286,     3,   417,   418,     2,     0,     0,     0,   473,   297,
     1442     285,   469,   471,     3,     2,     2,     0,   490,     3,     0,
     1443     542,   126,     0,     0,   213,     0,     0,     2,     0,     0,
     1444      34,     0,     0,   108,   285,    19,     0,    20,     0,   680,
     1445     438,     0,   106,     3,     2,    26,     2,     0,    31,     0,
     1446       2,    24,   103,   104,    70,    71,    72,    74,    75,    77,
     1447      78,    82,    83,    80,    81,    85,    86,    88,    90,    92,
     1448      94,    96,     0,     0,   740,   285,     0,     0,     0,   635,
     1449     636,   632,   633,   485,   484,   285,     0,     3,   285,   702,
     1450     285,   707,   286,   285,   285,   285,   650,   693,   649,     2,
     1451     285,     0,     0,     0,     0,     0,     0,     0,     0,   671,
     1452       0,   657,   608,   624,   658,     2,   604,   611,   421,   606,
     1453     607,   422,     2,   618,   627,   620,   621,   654,   655,   669,
     1454     697,   701,   699,   739,   259,     2,   733,     2,   412,   705,
     1455     710,   413,     0,   391,     3,     3,     3,     3,   443,     3,
     1456       0,     2,   456,   452,   738,     0,   448,   455,     2,   451,
     1457     454,     0,   285,   233,   255,     3,   263,   265,     0,   443,
     1458       2,   559,   560,     2,   598,   599,     0,   647,   525,     3,
     1459     336,   335,   338,   337,   285,   526,     0,   527,   285,   365,
     1460     367,     2,     0,     0,     0,     0,   101,   381,   681,   682,
     1461     376,   380,   377,   678,   679,   370,   374,   357,   388,   383,
     1462     389,     0,     0,     0,   426,   231,     0,     0,     3,     2,
     1463     656,   419,     0,   515,     0,   739,   477,     0,   285,   285,
     1464     285,     0,   539,   541,   127,     0,     0,   206,     0,     0,
     1465       0,   214,   215,    55,    60,   285,     0,    58,    57,     0,
     1466     125,   681,     0,    67,    68,   107,   112,     3,   106,     0,
     1467       0,     0,    23,    33,     3,     0,    99,     0,     3,   638,
     1468     642,   645,   637,     3,   580,     3,   704,   709,     2,   285,
     1469       3,     3,   286,     0,     3,   610,   614,   617,   626,   660,
     1470     664,   667,   285,     3,   609,   625,   659,   285,   285,   414,
     1471     285,   285,   734,     0,     0,     0,     0,   247,     0,   101,
     1472       0,     3,     3,     0,   449,     0,   446,     0,     0,   236,
     1473     285,     0,     0,   126,     0,     0,     0,     0,     0,   126,
     1474       0,     0,     0,     2,     0,     0,     3,   128,   129,     2,
     1475     139,   130,   131,   132,   133,   134,   135,   141,   143,     0,
     1476       0,     0,   276,   285,   285,   535,     0,   528,   285,   108,
     1477     684,   688,   690,   683,   373,   387,   384,   567,     2,   652,
     1478     651,     0,   657,     2,   470,   472,   492,     3,   500,   501,
     1479       0,     2,   496,     3,     3,     0,     0,   544,   213,     0,
     1480       0,     0,   213,     0,     3,    35,   737,   106,     0,     3,
     1481     649,    40,     3,    38,     3,    32,     0,     3,    98,   100,
     1482       0,     2,   640,   641,     0,     0,   285,     0,     0,     0,
     1483       3,   626,     0,     2,   612,   613,     2,   628,     2,   662,
     1484     663,     0,     0,     3,     0,     3,     3,     3,     3,   399,
     1485     398,   402,     2,     2,   736,   735,   109,     0,     0,     0,
     1486       0,     3,   450,     3,     0,   234,   142,     3,   286,   285,
     1487       0,     0,     0,     0,     2,   187,     0,   185,     0,     0,
     1488       0,     0,     0,     0,   191,     0,   108,   535,   147,   144,
     1489     285,     0,     0,   258,   270,     3,     3,   534,   601,   358,
     1490       2,   686,   687,   285,   257,   285,     0,   503,   480,   285,
     1491       0,     0,   479,   494,     0,     0,     0,   207,     0,   216,
     1492     106,     0,     0,   113,   110,     0,     0,     0,     0,     0,
     1493       0,    22,     0,   643,   285,   568,   256,   712,   713,   714,
     1494       0,   665,   285,   285,   285,     3,     3,     0,   673,     0,
     1495       0,     0,     0,   285,   285,     3,   532,   457,   458,     0,
     1496       0,   237,   286,     0,     0,     0,     0,   285,   188,   186,
     1497       0,   183,   189,     0,     0,     0,   192,   195,   193,   190,
     1498     126,   140,   138,   235,     0,     0,   285,   406,   410,   409,
     1499       0,   497,     2,   498,     2,   499,   493,   285,   219,     0,
     1500     217,     0,   219,     3,   649,    30,   111,     2,    43,     2,
     1501      41,    39,    27,   109,    25,     3,   715,     3,     3,     3,
     1502       0,     0,   672,   674,   615,   629,   260,     2,   396,     3,
     1503     395,     0,   460,   457,   126,     0,     0,   126,     3,     0,
     1504     126,   184,     0,     2,   200,   194,     0,   136,   562,   602,
     1505       3,     2,     0,     0,     2,   220,     0,     0,   208,     0,
     1506       0,     0,     0,     0,     0,     0,     0,     0,   675,   676,
     1507     285,     0,   459,   148,     0,     0,     2,   161,   126,   150,
     1508       0,   178,     0,   126,     0,     2,   152,     0,     2,     2,
     1509       0,   285,   502,   504,   495,     0,     0,     0,     0,   111,
     1510      36,     3,     3,   644,   616,   630,   666,   400,   126,   154,
     1511     157,     0,   156,   160,     3,   163,   162,     0,   126,   180,
     1512     126,     3,     0,   285,     0,     2,   689,     2,   221,   222,
     1513       0,   218,   209,     0,     0,     0,   149,     0,     0,   159,
     1514     224,   164,     2,   226,   179,     0,   182,   168,   196,     3,
     1515     201,   205,     0,   285,     0,     0,     0,    37,    44,    42,
     1516     155,   158,   126,     0,   165,   285,   126,   126,     0,   169,
     1517       0,     0,   680,   202,   203,   204,   197,     3,   285,   210,
     1518     223,   145,   166,   151,   126,   227,   181,   176,   174,   170,
     1519     153,   126,     0,   681,     0,     0,   146,   167,   177,   171,
     1520     175,   174,   172,     3,     0,   481,   173,   198,     3,   199
    15481521};
    15491522
     
    15511524static const yytype_int16 yydefgoto[] =
    15521525{
    1553       -1,   830,   470,   298,    45,   130,   131,  1068,   299,   300,
    1554      301,   302,   777,   778,  1138,  1139,   303,   304,   305,   306,
    1555      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
    1556     1040,   520,   986,   318,   987,   548,   964,  1070,  1538,  1072,
    1557     1073,  1074,  1075,  1539,  1076,  1077,  1456,  1457,  1417,  1418,
    1558     1419,  1517,  1518,  1522,  1523,  1558,  1559,  1078,  1374,  1079,
    1559     1080,  1307,  1308,  1309,  1499,  1081,   142,   970,   971,   972,
    1560     1396,  1480,  1082,  1491,  1492,   471,   472,   892,   893,  1048,
    1561       48,    49,    50,    51,    52,   342,   155,    55,    56,    57,
    1562       58,    59,   344,    61,    62,   259,    64,    65,   270,   346,
    1563      347,    68,    69,    70,    71,   115,    73,   200,   349,   116,
    1564       76,   117,    78,    79,    80,   451,   452,   453,   454,   693,
    1565      930,   694,    81,    82,   458,   714,   872,   873,   352,   353,
    1566      717,   718,   719,   354,   355,   356,   357,   468,   336,   132,
    1567      133,   524,   320,   166,   647,   648,   649,   650,   651,    83,
    1568      118,    85,   491,   492,   956,   493,   273,   497,   321,    86,
    1569      134,   135,    87,  1332,  1117,  1118,  1119,  1120,    88,    89,
    1570      735,    90,   269,    91,    92,   183,  1042,   681,   406,   122,
    1571       93,   503,   504,   505,   184,   264,   186,   187,   188,   265,
    1572       96,    97,    98,    99,   100,   101,   102,   191,   192,   193,
    1573      194,   195,   842,   607,   608,   609,   610,   196,   612,   613,
    1574      614,   573,   574,   575,   576,   698,   103,   616,   617,   618,
    1575      619,   620,   621,   929,   700,   701,   702,   597,   360,   361,
    1576      362,   363,   322,   161,   105,   106,   107,   365,   712,   570
     1526      -1,   830,   470,   298,    45,   130,   131,   299,   300,   301,
     1527     302,   777,   759,  1132,  1133,   303,   304,   305,   306,   307,
     1528     308,   309,   310,   311,   312,   313,   314,   315,   316,  1040,
     1529     520,   986,   318,   987,   548,   964,  1065,  1501,  1067,  1068,
     1530    1069,  1070,  1502,  1071,  1072,  1430,  1431,  1397,  1398,  1399,
     1531    1483,  1484,  1488,  1489,  1519,  1520,  1073,  1359,  1074,  1075,
     1532    1296,  1297,  1298,  1469,  1076,   142,   970,   971,   972,  1376,
     1533    1450,  1461,  1462,   471,   472,   892,   893,  1048,    48,    49,
     1534      50,    51,    52,   342,   155,    55,    56,    57,    58,    59,
     1535     344,    61,    62,   259,    64,    65,   270,   346,   347,    68,
     1536      69,    70,    71,   115,    73,   200,   349,   116,    76,   117,
     1537      78,    79,    80,   451,   452,   453,   454,   693,   930,   694,
     1538      81,    82,   458,   714,   872,   873,   352,   353,   717,   718,
     1539     719,   354,   355,   356,   357,   468,   336,   132,   133,   524,
     1540     320,   166,   647,   648,   649,   650,   651,    83,   118,    85,
     1541     491,   492,   956,   493,   273,   497,   321,    86,   134,   135,
     1542      87,  1317,  1111,  1112,  1113,  1114,    88,    89,   735,    90,
     1543     269,    91,    92,   183,  1042,   681,   406,   122,    93,   503,
     1544     504,   505,   184,   264,   186,   187,   188,   265,    96,    97,
     1545      98,    99,   100,   101,   102,   191,   192,   193,   194,   195,
     1546     842,   607,   608,   609,   610,   196,   612,   613,   614,   573,
     1547     574,   575,   576,   698,   103,   616,   617,   618,   619,   620,
     1548     621,   929,   700,   701,   702,   597,   360,   361,   362,   363,
     1549     322,   161,   105,   106,   107,   365,   712,   570
    15771550};
    15781551
    15791552/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15801553   STATE-NUM.  */
    1581 #define YYPACT_NINF -1316
     1554#define YYPACT_NINF -1318
    15821555static const yytype_int16 yypact[] =
    15831556{
    1584     6783,  8392, -1316,    55, -1316, -1316, -1316, -1316, -1316, -1316,
    1585    -1316,    11, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1586    -1316, -1316, -1316, -1316, -1316,   133,   133,   133,   919,   740,
    1587       44,  7011,   189, -1316, -1316, -1316, -1316, -1316,    85, -1316,
    1588    -1316, -1316,   970,   146,  8955, -1316, -1316, -1316, -1316, -1316,
    1589    -1316,   144,   178, -1316,  1050, -1316, -1316, -1316, -1316,   186,
    1590     1120,   320,   110,  7125, -1316, -1316,  9028,   826, -1316, -1316,
    1591    -1316,   995,   338,  4376,   747,  1012,   995,  1148, -1316, -1316,
    1592      364,   299, -1316,   995,  1376, -1316,   274, -1316,   407,   417,
    1593    -1316, -1316, -1316, -1316,   316,   178,   133, -1316,   133, -1316,
    1594    -1316, -1316, -1316,  8614,  1050, -1316, -1316,  1050, -1316,  8725,
    1595      341, -1316, -1316,  1604,  9568, -1316,  1022,  1022,  1022, -1316,
    1596    -1316, -1316,   133, -1316, -1316, -1316,   343,   366,   371, -1316,
    1597    -1316, -1316,   377, -1316, -1316, -1316, -1316, -1316,   412,   455,
    1598    -1316, -1316,    59,  8473,  2169,   225,   435,   476,   504,   507,
    1599      518,   554,  8281,  6311,   464,   562, -1316,  9101, -1316, -1316,
    1600    -1316, -1316,   573, -1316,   331,  3537, -1316,   570,   339, -1316,
    1601    -1316, -1316, -1316,   601,   351,   379,   436,   133,   589, -1316,
    1602    -1316,  1120,  2645,   672, -1316,   129, -1316,   133,   133,   178,
    1603    -1316, -1316,   140, -1316,   133,   133, -1316,  2885,   651,   654,
    1604     1022,  6457, -1316, -1316,   678,  8955, -1316, -1316,   995, -1316,
    1605    -1316, -1316,   178, -1316,  1050,   144, -1316,  7455, -1316,  1022,
    1606     1022,  1022,   178, -1316,   919, -1316,  2451, -1316, -1316,   667,
    1607     1022, -1316,  1022, -1316,    85,  8473,  8503,   728, -1316,   740,
    1608      739,  1022, -1316,   919,   735,   745, -1316,  7011,   821, -1316,
    1609    -1316, -1316,  8924, -1316, -1316,  5872, -1316,   672,   137,  9568,
    1610    10445,  1604,  2885, -1316,   171, -1316, -1316,  8725,  1050,   788,
    1611     6340, -1316, -1316,    32, -1316, 10733,   796,   844,  3414,  4017,
    1612    10597, -1316,   823, -1316, -1316, -1316, -1316, 10616, 10616,   821,
    1613     8140,   848,  4017,  8584, -1316, -1316, -1316, -1316, -1316, -1316,
    1614      871, -1316,   692,  1755,  4017, -1316,   617,   842,   610,   288,
    1615      736,   853,   851,   856,   938,    35, -1316, -1316,   878,   468,
    1616    -1316,   509, -1316, -1316,  2169, -1316, -1316,   388,   933, -1316,
    1617      637,   933,   937,    85, -1316, -1316,   939,  8614, -1316,   949,
    1618     8251, -1316, -1316,  1676,  1100,  7866,  6457,   995, -1316,   995,
    1619     1022,  1022, -1316, -1316, -1316, -1316, -1316, -1316,  1022,  9597,
    1620     1050, -1316, -1316,  9677,  1826, -1316,  9461, -1316, -1316, -1316,
    1621    -1316, -1316, -1316, -1316,   954,  5529,  4017, -1316, -1316, -1316,
    1622    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1623     1604, -1316,   814,   963,   968,   971,   827,   978,   981,   997,
    1624     2645, -1316, -1316,  1009,   144,  1008, -1316, -1316,  1010, -1316,
    1625    -1316, -1316,  8924, -1316, -1316, -1316, -1316, -1316,  2885, -1316,
    1626     8473,  8473, -1316,  1022,  1604,  6574,  1050,  7936, -1316, -1316,
    1627    -1316, -1316,  8924,   137, -1316, -1316,   995,   178, -1316, -1316,
    1628     8924, -1316,  5991, -1316, -1316,  1022,  1022,   634,  9706,  1016,
    1629     1063,  5013, -1316,   440,   443,   740, -1316,  8503,  1006,   998,
    1630      740,  1022, -1316, -1316, -1316, -1316,  9992, -1316,   652,  6108,
    1631    -1316,   178,  1018, -1316,  1604, 10813, 10464, -1316, -1316, -1316,
    1632    -1316,   858,  2885, -1316,  8006,   672,  6897, -1316, -1316, -1316,
    1633      986,   665,   878,   740,  6340,   370,  8725, -1316,  6340, -1316,
    1634    -1316, -1316, -1316,   677, -1316,  1032,   844,   321,  8140, -1316,
    1635    -1316, -1316,  8140, -1316,  8362,  8140, -1316, -1316, -1316,  1031,
    1636    -1316,   694,  1035,   613,  1040, -1316,  9247,  5960, -1316, -1316,
    1637    -1316,    70, -1316, -1316, 10521, -1316,   145, -1316, -1316, -1316,
    1638    -1316, -1316, -1316, -1316, -1316, -1316, -1316, 10445, 10445, -1316,
    1639     4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,
    1640     4017,  4017,  4017,  4017,  4017,  4017,  4017,  4017,  4481, 10445,
    1641    -1316,   468,   703, -1316, -1316,   133,   133, -1316, -1316,  8473,
    1642    -1316, -1316,  1010,   821, -1316,  1010, 10540, -1316, -1316, -1316,
    1643     4224,  5960,  1041,  8695,  1048, -1316,  9743, -1316, -1316,   573,
    1644    -1316,  1055,   578,  1058,  1876,   201,   878, -1316,   133,   133,
    1645      878,   255, -1316,   133,   133,  1010, -1316, -1316,   133,   133,
    1646    -1316,   933,  9813,  1050, 10954,   400,   408,  9813, -1316,  6223,
    1647    -1316,   878, -1316,  9597, -1316,   240,  7568,  7568,  7568,  1050,
    1648    -1316,  5299,  1054,   520,   954,   285,  1061, -1316,  1071,  3537,
    1649      535, -1316,  1150,  1050,  7568,   821,  1604,   821,   672,   640,
    1650      933, -1316, -1316,   734,   933, -1316, -1316, -1316,   844, -1316,
    1651      933,   178,  9992, -1316,   708,  1080,   710,  1081, -1316,  1086,
    1652      178, -1316, -1316,  8924,   178,  1078,   457,   466,  9850,  6428,
    1653     1598,  4017,  2005, -1316, -1316,  1082,    86,  1082, -1316, -1316,
    1654    -1316,   133,   133, -1316, -1316,   740, -1316,   133, -1316, -1316,
    1655     9314,   740,  1087,  4017, -1316,  1006, 10954, -1316, -1316,  1096,
    1656    -1316, -1316, -1316,   821, -1316, 10884,  4017, -1316,  7568,   689,
    1657     7866, -1316, -1316,   573,  1092,  1095,   986,  2631, -1316, -1316,
    1658     6340, -1316, -1316,  1098, -1316, -1316,  1104, -1316,  1098,  1107,
    1659    10733, 10445,    58,  1088,   265,  1114,  1115,   848,  1109,  1118,
    1660    -1316,  1122,  1124,  9394,  6077, -1316, 10445, -1316,   613,   833,
    1661    -1316,  5722, 10445,  1119, -1316, -1316,   954,   752, -1316, 10445,
    1662    -1316, -1316, -1316, -1316, -1316, -1316, -1316,   617,   617,   842,
    1663      842,   610,   610,   610,   610,   288,   288,   736,   853,   851,
    1664      856,   938,  4017,   872, -1316,  9992,  1126,  1128,  1132,   703,
    1665    -1316, -1316, -1316, -1316, -1316,  9992,   759,  4017,  7568, -1316,
    1666     9597, -1316,  6545,  8806,  9531,  6311, -1316, -1316, -1316,   578,
    1667     9992,   889,  1138,  1141,  1144,  1145,  1146,  1149,  1153, -1316,
    1668     3720,  1876, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1669    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1010,
    1670    -1316, -1316, -1316,   878, -1316, -1316, -1316, -1316, -1316, -1316,
    1671    -1316, -1316,  1154, -1316,  1155,  1159, -1316, -1316,   144,  1119,
    1672     5299, -1316, -1316, -1316,  5529,  1160, -1316, -1316, -1316, -1316,
    1673    -1316,   740,  5453,  1229, -1316, -1316, -1316, -1316,  1139,   144,
    1674    -1316, -1316,  1010, -1316, -1316,  1010,   152,  1010, -1316, -1316,
    1675    -1316, -1316, -1316, -1316,  9174, -1316,   178, -1316,  8503, -1316,
    1676    -1316,  1162,   902,  1168,  1169,  1171, -1316, -1316,  2005, -1316,
    1677    -1316, -1316, -1316, -1316, -1316, -1316,  1063, -1316,   998, -1316,
    1678    -1316,  1173,  1174,  1167, -1316, -1316,  1177,  1180, -1316,   689,
    1679     1647, -1316,   421, -1316,  2631,   878, -1316,  1183,  6340,  9879,
    1680     8473,  1184, -1316, -1316,  1179,  1186,  1181, -1316,  4017,   335,
    1681      530,  1188, -1316,  1185,  1185,  5960, 10445, -1316, -1316,  1185,
    1682    -1316,   833,  5529, -1316, -1316, -1316, -1316,  1191, 10445,  1190,
    1683      821,  5299, -1316, 10521, -1316,   821, -1316, 10445, -1316,   763,
    1684      933, -1316, -1316, -1316, -1316, -1316, -1316, -1316,   954,  8251,
    1685    -1316, -1316,  6662,  1198, -1316,   778,   933, -1316,   832,   840,
    1686      933, -1316,  1022,  4346, -1316, -1316, -1316,  9992,  9992, -1316,
    1687     7936,  7936, -1316,  1196,  1197,  1204,  1205, -1316,  1206,   484,
    1688      365,  1119, -1316,   821, -1316,  3537, -1316, 10445,   481, -1316,
    1689     5841,  1207,  1211, 10388,  1212,  1218,     5,    66,    52, 10445,
    1690     1219,   178, 10445, 10445,   109,  1217,   630,  1220,  1209,  1221,
    1691     1202, -1316, -1316, -1316,  1225, -1316, -1316, -1316, -1316, -1316,
    1692    -1316, -1316, -1316, -1316, -1316,   740,  1226, 10445, -1316,  9992,
    1693     9992,   133,  1234, -1316,  9423,  9284,   865,   933, -1316, -1316,
    1694    -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1235,  1647, -1316,
    1695    -1316,  1227, -1316,  1098, -1316, -1316,  1604,  1231, -1316, -1316,
    1696    -1316,   766,  1236, -1316,   265,  1237,  4017,  1222,   265,   265,
    1697     1241, -1316,  1071, 10445,  1249,  1191,   846,   153,  1248, -1316,
    1698     1241, -1316,  1254,  1248, -1316, -1316,  1259, -1316, -1316,  1010,
    1699     1267,  1270,  6194,  1271,  1272,  1274, -1316, -1316,  1278, -1316,
    1700    -1316,  1010, -1316, -1316, -1316, -1316,  1010, 10445, 10445,  4017,
    1701     1282, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1702    -1316, -1316, -1316,  4017,  4017,  1285,  1288,  1248, -1316, -1316,
    1703      740, -1316, -1316, -1316,  7385,  9879, 10445, 10445,  1356, 10445,
    1704    -1316, -1316,  1277, -1316,  1279, 10445,  1280,  1281, 10445,  1038,
    1705     1283,    92,  7786, -1316,  1292, -1316,   133, 10521, -1316, -1316,
    1706     5453,  1302,   492, -1316, -1316, -1316, -1316, -1316, -1316, -1316,
    1707    -1316, -1316,  1010, 10214, -1316,  8006,  1304, -1316, -1316,  9879,
    1708      533,   541, -1316,  1308,  1310,   844,  1309, -1316,   551, -1316,
    1709    10445,  1313,  1315, -1316, -1316,  1316,   244,   272,   821,  1321,
    1710     1323, -1316,  1324, -1316,  9992, -1316, -1316, -1316, -1316, -1316,
    1711     1326, -1316,  9992,  9992,  9992, -1316, -1316,  1329, -1316,  1330,
    1712     1335,  1338,   673,  7640,  7753, -1316, -1316,   454, -1316,  1337,
    1713     1339, -1316,  8076,   774,   775,  1341,   794,  5651, -1316, -1316,
    1714      558, -1316, -1316,   797,  1344,  1346,   178,  1395,   956, -1316,
    1715    -1316, 10445, -1316,  1343, 10388,   905, -1316, -1316, -1316,  1350,
    1716     1351,  9992, -1316, -1316, -1316,  1348, -1316, -1316, -1316, -1316,
    1717    -1316, -1316,  9879,   844,   381, -1316,  1333,   844,  1191,   405,
    1718    -1316, -1316, -1316, -1316, -1316, -1316, -1316, -1316,  1352, -1316,
    1719    -1316, -1316, -1316, -1316, -1316,  1355,  1358, -1316, -1316, -1316,
    1720    -1316, -1316, -1316, -1316,  1363, -1316,  1362, -1316, -1316, 10388,
    1721      167, 10445, 10388, -1316,  1365, 10445, -1316,   170,  1371,  1380,
    1722    -1316, -1316,  1369,  1372,  1353,  1359, -1316,  1361, -1316, -1316,
    1723    -1316, -1316,  1050,  1604,  1367,   871,   914,  4017, -1316,   799,
    1724     1387, 10445,   821,   821,  1374,  1378,  1390,  1391, -1316, -1316,
    1725     7936,  1388, -1316,  1462,  4017,  1389, -1316, -1316, 10303, -1316,
    1726      802, -1316,  1375, 10388,  1379, -1316, -1316,  1398, -1316,  1403,
    1727    -1316,  1418,  1420, -1316, -1316, -1316,  1410,  9879, -1316, -1316,
    1728    -1316,   844,   821,  1411,  1394,  1405, -1316,  1248,  1248, -1316,
    1729    -1316, -1316, -1316, -1316, 10388,   373, -1316,   925, -1316, -1316,
    1730     7239, -1316, -1316,  1404, 10445, -1316, 10445,  7239,   178,  9706,
    1731      178,  9706,  1427, -1316,  1428, -1316, -1316,  1426,   871, -1316,
    1732      804, -1316, -1316, 10445,  1431,  1435, -1316,  4017,  4017, -1316,
    1733    -1316,  1005,   113, -1316, -1316,  1417, -1316,  1005, -1316, -1316,
    1734     1759,   821, -1316, -1316,   178,  9706,   178,  9706,  1445,  1425,
    1735      821, -1316, -1316, -1316, -1316, -1316, 10303,  1443,  1005,  7313,
    1736    10445, 10218,  1449,  1005,  1450,  1759,  2148, -1316, -1316, -1316,
    1737     1457, -1316, -1316, -1316, -1316,  8473, -1316, -1316, -1316, 10088,
    1738    -1316, 10303, -1316, -1316,  1439,  9996, -1316, -1316, 10218,   178,
    1739     2148,   178,  1466,  1468,   812, -1316, 10088, -1316, -1316, -1316,
    1740     9996, -1316, -1316, -1316,   178,   178, -1316, -1316, -1316, -1316,
    1741    -1316, -1316, -1316, -1316
     1557    4413,  9104, -1318,    42, -1318, -1318, -1318, -1318, -1318, -1318,
     1558   -1318,   -27, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1559   -1318, -1318, -1318, -1318, -1318,    95,    95,    95,   954,   850,
     1560      71,  5300,   201, -1318, -1318, -1318, -1318, -1318,   123, -1318,
     1561   -1318, -1318,   776,   164,  8401, -1318, -1318, -1318, -1318, -1318,
     1562   -1318,   226,   169, -1318,  1184, -1318, -1318, -1318, -1318,   272,
     1563    1531,   387,    89,  3759, -1318, -1318,  8469,  1998, -1318, -1318,
     1564   -1318,   935,   392,  5420,   741,  1183,   935,  1282, -1318, -1318,
     1565     356,   326, -1318,   935,  1429, -1318,   340, -1318,   453,   463,
     1566   -1318, -1318, -1318, -1318,   370,   169,    95, -1318,    95, -1318,
     1567   -1318, -1318, -1318,  9340,  1184, -1318, -1318,  1184, -1318,  9399,
     1568     389, -1318, -1318,  1617,  9458, -1318,  1087,  1087,  1087, -1318,
     1569   -1318, -1318,    95, -1318, -1318, -1318,   386,   435,   438, -1318,
     1570   -1318, -1318,   498, -1318, -1318, -1318, -1318, -1318,   510,   531,
     1571   -1318, -1318,    34,  7909,  1795,    48,   452,   575,   578,   583,
     1572     588,   593,  8673,  6319,   543,   605, -1318,  8537, -1318, -1318,
     1573   -1318, -1318,   652, -1318,   172,  5550, -1318,   473,   232, -1318,
     1574   -1318, -1318, -1318,   661,   301,   325,   403,    95,   646, -1318,
     1575   -1318,  1531,  2279,   739, -1318,    21, -1318,    95,    95,   169,
     1576   -1318, -1318,    35, -1318,    95,    95, -1318,  2781,   700,   710,
     1577    1087, 10200, -1318, -1318,   717,  8401, -1318, -1318,   935, -1318,
     1578   -1318, -1318,   169, -1318,  1184,   226, -1318,  7011, -1318,  1087,
     1579    1087,  1087,   169, -1318,   954, -1318,  3330, -1318, -1318,   704,
     1580    1087, -1318,  1087, -1318,   123,  7909,  9163,   736, -1318,   850,
     1581     769,  1087, -1318,   954,   737,   747, -1318,  5300,   814, -1318,
     1582   -1318, -1318,  2451, -1318, -1318,  3603, -1318,   739,    61,  9458,
     1583   10457,  1617,  2781, -1318,    68, -1318, -1318,  9399,  1184,   778,
     1584   11233, -1318, -1318,   428, -1318, 10968,   787,   870, 10685, 10742,
     1585   10799, -1318,   824, -1318, -1318, -1318, -1318, 10856, 10856,   814,
     1586    7591,   827, 10742,  8015, -1318, -1318, -1318, -1318, -1318, -1318,
     1587     874, -1318,   901,  2137, 10742, -1318,   237,   407,   632,   476,
     1588     638,   859,   855,   869,   890,   101, -1318, -1318,   877,   616,
     1589   -1318,   336, -1318, -1318,  1795, -1318, -1318,   518,   907, -1318,
     1590     633,   907,   892,   123, -1318, -1318,   914,  9340, -1318,   916,
     1591    7697, -1318, -1318,  1197,   771,  5233, 10200,   935, -1318,   935,
     1592    1087,  1087, -1318, -1318, -1318, -1318, -1318, -1318,  1087,  9517,
     1593    1184, -1318, -1318,  9576,  1658, -1318,  9222, -1318, -1318, -1318,
     1594   -1318, -1318, -1318, -1318,   924,  4543, 10742, -1318, -1318, -1318,
     1595   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1596    1617, -1318,   676,   942,   945,   946,   690,   947,   948,   958,
     1597    2279, -1318, -1318,   952,   226,   957, -1318, -1318,   959, -1318,
     1598   -1318, -1318,  2451, -1318, -1318, -1318, -1318, -1318,  2781, -1318,
     1599    7909,  7909, -1318,  1087,  1617, 11261,  1184,  7402, -1318, -1318,
     1600   -1318, -1318,  2451,    61, -1318, -1318,   935,   169, -1318, -1318,
     1601    2451, -1318,  5128, -1318, -1318,  1087,  1087,   364,  9635,   960,
     1602    2086,  8865, -1318,   432,   454,   850, -1318,  9163,   955,   944,
     1603     850,  1087, -1318, -1318, -1318, -1318,  9936, -1318,   383,  7322,
     1604   -1318,   169,   962, -1318,  1617, 11043, 10514, -1318, -1318, -1318,
     1605   -1318,   755,  2781, -1318,  7467,   739,  6768, -1318, -1318, -1318,
     1606     885,   414,   877,   850, 11233,   619,  9399, -1318, 11233, -1318,
     1607   -1318, -1318, -1318,   479, -1318,   964,   870,   125,  7591, -1318,
     1608   -1318, -1318,  7591, -1318,  7803,  7591, -1318, -1318, -1318,   969,
     1609   -1318,   544,   972,   640,   974, -1318,  8741,  5983, -1318, -1318,
     1610   -1318,   103, -1318, -1318, 10571, -1318,   112, -1318, -1318, -1318,
     1611   -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10457, 10457, -1318,
     1612   10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742,
     1613   10742, 10742, 10742, 10742, 10742, 10742, 10742, 10742, 10343, 10457,
     1614   -1318,   616,   900, -1318, -1318,    95,    95, -1318, -1318,  7909,
     1615   -1318, -1318,   959,   814, -1318,   959, 10628, -1318, -1318, -1318,
     1616    8333,  5983,   973,  8121,   976, -1318,  9694, -1318, -1318,   652,
     1617   -1318,   978,   378,   980,  1782,   139,   877, -1318,    95,    95,
     1618     877,   166, -1318,    95,    95,   959, -1318, -1318,    95,    95,
     1619   -1318,   907,  9753,  1184, 11174,   137,   273,  9753, -1318,  4101,
     1620   -1318,   877, -1318,  9517, -1318,   278,  7119,  7119,  7119,  1184,
     1621   -1318,  3868,   982,   220,   924,   302,   984, -1318,   977,  5550,
     1622     238, -1318,  1061,  1184,  7119,   814,  1617,   814,   739,   705,
     1623     907, -1318, -1318,   765,   907, -1318, -1318, -1318,   870, -1318,
     1624     907,   169,  9936, -1318,   570,  1000,   655,  1005, -1318,  1004,
     1625     169, -1318, -1318,  2451,   169,  1003,   464,   465,  9812,  6431,
     1626    1947, 10742,  2536, -1318, -1318,  1001,    20,  1001, -1318, -1318,
     1627   -1318,    95,    95, -1318, -1318,   850, -1318,    95, -1318, -1318,
     1628    8924,   850,  1006, 10742, -1318,   955, 11174, -1318, -1318,  1017,
     1629   -1318, -1318, -1318,   814, -1318, 11109, 10742, -1318,  7119,   671,
     1630    5233, -1318, -1318,   652,  1013,  1014,   885,  2927, -1318, -1318,
     1631   11233, -1318, -1318,  1015, -1318, -1318,  1021, -1318,  1015,  1023,
     1632   10968, 10457,   243,  1002,    53,  1025,  1026,   827,  1027,  1028,
     1633   -1318,  1030,  1032,  8983,  6095, -1318, 10457, -1318,   640,  1104,
     1634   -1318, 10400, 10457,  1034, -1318, -1318,   924,   678, -1318, 10457,
     1635   -1318, -1318, -1318, -1318, -1318, -1318, -1318,   237,   237,   407,
     1636     407,   632,   632,   632,   632,   476,   476,   638,   859,   855,
     1637     869,   890, 10742,   716, -1318,  9936,  1038,  1041,  1042,   900,
     1638   -1318, -1318, -1318, -1318, -1318,  9936,   679, 10742,  7119, -1318,
     1639    9517, -1318,  6543,  8227,  9281,  6319, -1318, -1318, -1318,   378,
     1640    9936,   820,  1047,  1051,  1052,  1057,  1058,  1059,  1060, -1318,
     1641    3170,  1782, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1642   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   959,
     1643   -1318, -1318, -1318,   877, -1318, -1318, -1318, -1318, -1318, -1318,
     1644   -1318, -1318,  1063, -1318,  1064,  1065, -1318, -1318,   226,  1034,
     1645    3868, -1318, -1318, -1318,  4543,  1066, -1318, -1318, -1318, -1318,
     1646   -1318,   850,  5481,  1140, -1318, -1318, -1318, -1318,  1049,   226,
     1647   -1318, -1318,   959, -1318, -1318,   959,   127,   959, -1318, -1318,
     1648   -1318, -1318, -1318, -1318,  8605, -1318,   169, -1318,  9163, -1318,
     1649   -1318,  1070,   856,  1073,  1076,  1077, -1318, -1318,  2536, -1318,
     1650   -1318, -1318, -1318, -1318, -1318, -1318,  2086, -1318,   944, -1318,
     1651   -1318,  1075,  1078,  1082, -1318, -1318,  1080,  1096, -1318,   671,
     1652    1985, -1318,   514, -1318,  2927,   877, -1318,  1100, 11233,  9871,
     1653    7909,  1102, -1318, -1318,  1098,  1110,  1107, -1318, 10742,    12,
     1654     400,  1114, -1318,  1112,  1112,  5983, 10457, -1318, -1318,  1112,
     1655   -1318,  1104,  4543, -1318, -1318, -1318, -1318,  1115, 10457,  1120,
     1656     814,  3868, -1318, 10571, -1318,   814, -1318, 10457, -1318,   825,
     1657     907, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   924,  7697,
     1658   -1318, -1318,  6655,  1125, -1318,   833,   907, -1318,   845,   852,
     1659     907, -1318,  1087,  4145, -1318, -1318, -1318,  9936,  9936, -1318,
     1660    7402,  7402, -1318,  1123,  1124,  1126,  1133, -1318,  1134,   553,
     1661      38,  1034, -1318,   814, -1318,  5550, -1318, 10457,   466, -1318,
     1662    5871,  1136,  1141,  5631,  1149,  1155,    13,    17,    14, 10457,
     1663    1156,   169,  3019,  1137,  1150,  1143, -1318, -1318, -1318,  1161,
     1664   -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,   850,
     1665    1167, 10457, -1318,  9936,  9936,    95,  1169, -1318,  9045,  8803,
     1666     867,   907, -1318, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1667   -1318,  1174,  1985, -1318, -1318,  1158, -1318,  1015, -1318, -1318,
     1668    1617,  1173, -1318, -1318, -1318,   686,  1175, -1318,    53,  1178,
     1669   10742,  1159,    53,    53,  1176, -1318,   977, 10457,  1185,  1115,
     1670     607,   130,  1192, -1318,  1176, -1318,  1198,  1192, -1318, -1318,
     1671    1199, -1318, -1318,   959,  1201,  1203,  6207,  1202,  1205,  1207,
     1672   -1318, -1318,  1210, -1318, -1318,   959, -1318, -1318, -1318, -1318,
     1673     959, 10457, 10457, 10742,  1209, -1318, -1318, -1318, -1318, -1318,
     1674   -1318, -1318, -1318, -1318, -1318, -1318, -1318, 10742, 10742,  1212,
     1675    1219,  1192, -1318, -1318,   850, -1318, -1318, -1318,  4876,  9871,
     1676   10457, 10457,  1262, 10457, -1318, -1318,  1213, -1318,  1214, 10457,
     1677    1216,  1220, 10457,   929, -1318,  1223,  5017,    95, -1318, -1318,
     1678    5481,  1224,   469, -1318, -1318, -1318, -1318, -1318, -1318, -1318,
     1679   -1318, -1318,   959, 10172, -1318,  7467,  1232, -1318, -1318,  9871,
     1680     478,   509, -1318,  1236,  1239,   870,  1248, -1318,   541, -1318,
     1681   10457,  1250,  1245, -1318, -1318,  1251,   128,   133,   814,  1253,
     1682    1254, -1318,  1256, -1318,  9936, -1318, -1318, -1318, -1318, -1318,
     1683    1258, -1318,  9936,  9936,  9936, -1318, -1318,  1260, -1318,  1263,
     1684    1269,  1270,   589,  7186,  7294, -1318, -1318,   351, -1318,  1273,
     1685    1275, -1318,  7532,   721,   742,  1272,   752,  5749, -1318, -1318,
     1686     545, -1318, -1318,   768,  1279,   169,  1330,  1332, -1318, -1318,
     1687    5631, -1318, -1318, -1318,  1285,  1286,  9936, -1318, -1318, -1318,
     1688    1283, -1318, -1318, -1318, -1318, -1318, -1318,  9871,   870,   206,
     1689   -1318,  1268,   870,  1115,   327, -1318, -1318, -1318, -1318, -1318,
     1690   -1318, -1318, -1318,  1284, -1318, -1318, -1318, -1318, -1318, -1318,
     1691    1291,  1294, -1318, -1318, -1318, -1318, -1318, -1318, -1318,  1297,
     1692   -1318,  1296, -1318, -1318,  5631,   124, 10457,  5631, -1318,  1299,
     1693   10457, -1318,   270,  1314, -1318, -1318,  1306, -1318, -1318, -1318,
     1694   -1318, -1318,  1184,  1617,  1301,   874,   879, 10742, -1318,   790,
     1695    1307, 10457,   814,   814,  1308,  1310,  1316,  1317, -1318, -1318,
     1696    7402,  1320, -1318,  1376, 10742,  1313, -1318, -1318, 10286, -1318,
     1697     791, -1318,  1300,  5631,  1305, -1318, -1318,  1323, -1318,  1341,
     1698    1329,  9871, -1318, -1318, -1318,   870,   814,  1334,  1327,  1325,
     1699   -1318,  1192,  1192, -1318, -1318, -1318, -1318, -1318,  5631,   246,
     1700   -1318,   917, -1318, -1318,  6877, -1318, -1318,  1335, 10457, -1318,
     1701   10457,  6877,   169,  9635,  1342, -1318, -1318,  1351,   874, -1318,
     1702     793, -1318, -1318, 10457,  1357,  1359, -1318, 10742, 10742, -1318,
     1703   -1318,   989,    88, -1318, -1318,  1340, -1318,   989, -1318, -1318,
     1704    2035,   814,   169,  9635,  1364,  1345,   814, -1318, -1318, -1318,
     1705   -1318, -1318, 10286,  1369,   989,  6946, 10457, 10206,  1373,   989,
     1706    1380,  2035,  2697, -1318, -1318, -1318, -1318, -1318,  7909, -1318,
     1707   -1318, -1318, 10051, -1318, 10286, -1318, -1318,  1347,  9970, -1318,
     1708   -1318, 10206,   169,  2697,  1383,   794, -1318, 10051, -1318, -1318,
     1709   -1318,  9970, -1318, -1318,   169, -1318, -1318, -1318, -1318, -1318
    17421710};
    17431711
     
    17451713static const yytype_int16 yypgoto[] =
    17461714{
    1747    -1316,  3936,  1551, -1316,  1151, -1316,    26,   510,     0,  -276,
    1748    -1316, -1316,   361,  -491,  -948,  -145,  4629, -1316,   604,   527,
    1749      545,   549,   529,  1024,  1015,  1020,  1023,  1027, -1316,   879,
    1750     -520,  4115,  -823,  -693,  -915, -1316,  -218,  -739,  -446, -1316,
    1751      668, -1316,   376, -1132, -1316, -1316,   111, -1316, -1315,  -817,
    1752      220, -1316, -1316, -1316, -1316,    38, -1279, -1316, -1316, -1316,
    1753    -1316, -1316, -1316,   293, -1124,    51, -1316,  -273, -1316,   473,
    1754      267, -1316, -1316,   138, -1316,  -313, -1316, -1316, -1316,   524,
    1755     -834, -1316, -1316,     3,  -969,    24,  1783, -1316, -1316, -1316,
    1756     -147, -1316,    39,   310,  -194,  1097,  3596, -1316, -1316,   102,
    1757       53,   308,  -253,  1214, -1316,  1761, -1316, -1316,   180,  2112,
    1758    -1316,  2452,  1373, -1316, -1316,  -414,  -443,  1163,  1166,   679,
    1759      921,    76, -1316, -1316,  1156,   681,  -462, -1316,   -19,   224,
    1760     -632, -1316, -1316,  -954,  -981,  1065,  1299,  1037,   -24, -1316,
    1761     1157,   183,    10,  -200,  -160,   645,   738, -1316,   979, -1316,
    1762     2733,   -28,  -453,   890, -1316, -1316,   675, -1316,  -228, -1316,
    1763      196, -1316, -1316, -1316, -1268,   394, -1316, -1316, -1316,  1158,
    1764    -1316,    90, -1316, -1316,  -855,   -85, -1303,  -127,  2247, -1316,
    1765     3418, -1316,   884, -1316,  -166,   101,  -170,  -168,  -163,     2,
    1766      -39,   -33,   -32,  1083,    15,    37,    43,  -148,  -161,  -155,
    1767     -152,  -143,  -327,  -463,  -423,  -415,  -533,  -277,  -553, -1316,
    1768    -1316,  -484,  1064,  1070,  1072,  1481,  4293,  -545,  -541,  -528,
    1769     -476,  -464, -1316,  -429,  -676,  -671,  -658,  -586,  -189,  -239,
    1770    -1316, -1316,   499,   256,    22, -1316,  3254,    45,  -600,  -232
     1715   -1318,  3762,  2543, -1318,  1454, -1318,    -1,     2,   -89, -1318,
     1716   -1318, -1318,  -483,  -942,  -282,  4006, -1318,  1670,   483,   485,
     1717     347,   484,   927,   931,   926,   932,   937, -1318,   792,  -594,
     1718    4587,   375,  -691,  -946, -1318,  -112,  -722,  -695, -1318,   412,
     1719   -1318,   304, -1184, -1318, -1318,    54, -1318, -1317,  -763,   149,
     1720   -1318, -1318, -1318, -1318,    -3, -1151, -1318, -1318, -1318, -1318,
     1721   -1318, -1318,   223,    51,    55, -1318,  -364, -1318,   402,   204,
     1722   -1318,    86, -1318,  -320, -1318, -1318, -1318,   450,  -745, -1318,
     1723   -1318,    10,  -865,   258,   180, -1318, -1318, -1318,  -222, -1318,
     1724     126,    49,  -187,   951,  3574, -1318, -1318,   213,   151,   363,
     1725    -251,  2053, -1318,  1304, -1318, -1318,   344,  1615, -1318,  1898,
     1726    1496, -1318, -1318,  -417,  -439,  1083,  1084,   597,   837,   279,
     1727   -1318, -1318,  1086,   598,   -23, -1318,    37,  -463,   807, -1318,
     1728   -1318,  -923,  -977,   142,   669,   965,   280, -1318,   175,   -35,
     1729    -257,  -199,  -156,   555,   651, -1318,   888, -1318,  1925,  1031,
     1730    -460,   803, -1318, -1318,   594, -1318,  -228, -1318,   140, -1318,
     1731   -1318, -1318, -1268,   320, -1318, -1318, -1318,  1067, -1318,     6,
     1732   -1318, -1318,  -851,   -86, -1303,  -124,  2887, -1318,  2837, -1318,
     1733     812, -1318,  -168,   585,  -176,  -173,  -171,     4,   -41,   -39,
     1734     -36,   834,    47,    56,    79,  -167,  -162,  -161,  -159,  -158,
     1735    -273,  -557,  -498,  -458,  -543,  -318,  -539, -1318, -1318,  -499,
     1736     986,   992,   993,  1485,  4182,  -565,  -577,  -550,  -542,  -536,
     1737   -1318,  -384,  -672,  -658,  -654,  -591,  -211,  -316, -1318, -1318,
     1738     152,   299,   -75, -1318,  2880,   592,  -631,  -200
    17711739};
    17721740
     
    17741742   positive, shift that token.  If negative, reduce the rule which
    17751743   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1776 #define YYTABLE_NINF -521
     1744#define YYTABLE_NINF -511
    17771745static const yytype_int16 yytable[] =
    17781746{
    1779       46,   507,    95,   146,   111,   378,   422,   447,   704,   147,
    1780      148,   393,   965,   394,   923,   434,   401,   606,   395,   924,
    1781      396,   699,   500,   759,    53,   112,   397,   110,   263,   398,
    1782      173,    46,   925,    95,   402,   211,   861,  1084,   399,    60,
    1783      909,   743,    46,   710,    46,   748,   158,  1143,   885,   835,
    1784     1177,    47,   238,    67,    46,    53,   404,   149,  1083,   844,
    1785       46,   836,   189,    46,  1394,   212,    46,   611,   222,   215,
    1786       60,   843,   521,  1135,   837,   108,  1175,  1176,   984,   150,
    1787      257,  1193,    47,   258,    67,   151,   211,   206,   810,   163,
    1788      216,   393,   923,   394,   770,  1187,   401,   924,   395,   671,
    1789      396,    94,    66,  1462,    46,   473,   397,    46,   276,   398,
    1790      925,  1458,   419,    46,   402,   941,   208,   120,   399,   680,
    1791      630,   140,   108,    30,   634,   256,   838,   684,   567,   211,
    1792      477,   479,    94,    66,  1201,   119,   108,   198,   530,   832,
    1793      108,   847,   146,   145,    46,    94,   158,   854,   147,   148,
    1794      139,   598,    46,  1311,   163,  -235,  -235,    46,   495,   368,
    1795      496,   185,   568,   738,    94,   277,    30,    94,  1205,  1477,
    1796       30,   927,   966,   998,   338,   876,   877,    30,   774,   833,
    1797       74,    46,    46,  1003,   158,  1458,   199,   834,   323,   211,
    1798      433,   143,   895,   940,   405,  1203,   149,    46,  1014,   403,
    1799      141,  1462,   674,   676,   669,    46,  1462,   158,    30,  1414,
    1800     1415,    74,  1414,  1415,    46,   108,  1192,    46,   150,   437,
    1801      -13,  1312,   146,   -12,   151,  -235,  1462,   211,   147,   148,
    1802      752,   211,   530,  1462,   666,   248,  1256,   405,    30,  1210,
    1803     1211,   435,  1546,   478,   485,    94,   413,    46,   405,    95,
    1804      430,   502,   667,   780,  1177,   152,   104,   104,    94,  1091,
    1805      741,    46,    46,  1257,   158,   473,   948,   704,    46,  1561,
    1806      436,    53,   165,   832,   467,    46,  1013,   483,  1416,   405,
    1807      323,  1425,   392,   185,   695,   473,    60,   104,   836,   167,
    1808      521,   474,    30,   473,   521,   732,  1026,   521,    47,   177,
    1809       67,   837,   697,  1177,  1145,   658,    94,   845,  1025,   603,
    1810     1253,   113,   430,   833,   108,   518,   666,   211,    94,   173,
    1811     1207,   834,   104,   197,    46,  1002,   368,   611,  1193,  1175,
    1812     1176,   248,   325,   673,   667,  1338,   631,   465,   163,   678,
    1813      635,  -291,   108,    46,    46,   286,   478,  1503,    94,    66,
    1814      803,   821,  1342,   838,   156,   108,  1005,   136,   137,   589,
    1815       46,   852,   481,   603,    46,  1084,   832,   847,   569,   108,
    1816      916,   136,   137,   968,   848,   225,   557,   558,   851,   226,
    1817     1344,  1532,   230,  1534,   232,   600,  1083,   243,   338,  1545,
    1818       46,   241,   906,   881,   870,  1172,  1173,   211,   208,   868,
    1819       46,   530,   368,   871,   598,   844,   833,   246,   836,  1556,
    1820      239,   559,   560,   254,   834,   530,  1560,  -516,    46,   156,
    1821      441,   837,   248,   861,    46,    94,    46,    74,   753,  1177,
    1822      675,   677,    74,   598,   108,   754,   136,   234,   598,   462,
    1823      108,  1126,   136,   137,   372,   605,  1071,   211,  1125,   -10,
    1824       46,   474,   381,   319,  1447,  1448,  1453,  1225,  1226,  1183,
    1825      373,   530,   335,  1375,   384,   323,   323,  1487,   382,   260,
    1826      235,   474,  -441,   838,    46,   236,   744,  -442,   969,   474,
    1827      385,   745,    46,   272,   368,  1184,    46,  1397,    95,   886,
    1828       46,  1193,   386,  1184,   580,   110,   405,   500,  1193,  1099,
    1829      732,   185,  1141,   104,  1094,  1113,   747,   699,   387,   864,
    1830       53,   424,  -111,   865,  1024,   428,   225,   866,   274,  1401,
    1831      393,   867,   394,   729,   761,    60,   401,   395,   208,   396,
    1832      866,   899,  1252,  -111,  1109,   397,   473,    47,   398,    67,
    1833      758,   323,   326,   160,   402,   319,   450,   399,   338,   388,
    1834     1193,   696,  1099,   705,  1163,  1165,   707,   775,  1373,   323,
    1835      758,   275,   781,  1026,   611,   389,  -111,  -111,   211,   706,
    1836      705,   897,   708,   366,   571,   732,   405,   428,   945,   707,
    1837      490,  1007,  -111,   327,   572,   821,   919,    94,    66,   814,
    1838       46,   605,    74,  -104,  1190,   920,   211,  -104,  -465,   863,
    1839      523,   211,    46,   156,    46,  1190,  1246,  1198,   160,   467,
    1840     1191,   328,    74,   887,   329,   878,   578,   874,   874,   874,
    1841       74,  1318,   579,    46,   323,   330,  1493,  1024,  -465,   894,
    1842     -465,  1029,  1350,  1493,  -465,   874,  1424,  1127,   600,    46,
    1843     1352,  1353,  1354,   888,  1128,   645,  1327,   588,    36,   889,
    1844      595,   704,    39,    46,  1329,   225,    46,   230,  1336,    40,
    1845       41,   331,  1328,  1285,  1286,  1337,    74,   862,   367,   628,
    1846     1330,   766,   600,   632,  1516,   821,   335,   436,  1037,   371,
    1847     1521,   896,   379,   898,   829,  1542,   603,  1376,   211,  1390,
    1848       46,   755,    46,   823,   604,   756,   555,   556,   762,  1088,
    1849     1213,  1541,   211,   831,   429,   605,  1548,   383,   731,   874,
    1850      338,    40,    41,     8,     9,    10,    11,    12,   391,   768,
    1851      169,   405,   474,  1110,  1044,  1495,   502,  1496,   729,   769,
    1852      319,   319,  1121,   550,   403,   455,    46,    46,   551,   552,
    1853       30,   685,   104,   583,   225,   405,   900,   579,   405,   944,
    1854       46,     2,   202,     4,     5,     6,     7,   420,   450,   722,
    1855      421,   450,   666,   249,   474,   723,   429,   450,    33,   208,
    1856      695,   931,   739,   931,  1071,   531,   532,   533,   740,   113,
    1857      667,  1543,  1361,   208,   749,   338,  1362,   426,   697,   525,
    1858      750,   922,   160,   696,   211,   949,   444,   603,   534,   874,
    1859      535,   765,   536,   729,   490,   950,   319,   766,   490,   571,
    1860      108,   405,   136,   137,    34,   910,    35,   912,   523,   572,
    1861      598,   766,   523,   766,   319,   523,   561,   562,  1167,    46,
    1862        2,   202,     4,     5,     6,     7,   335,   831,   605,   457,
    1863      903,    46,   405,     8,     9,    10,    11,    12,   969,   923,
    1864      460,  1244,   969,   969,   924,  1248,   821,   411,   224,   992,
    1865      875,   875,   875,    74,   463,   993,  1004,   925,  1386,  1147,
    1866       30,   405,   723,  1242,   464,   208,    -3,  1443,   875,   579,
    1867      431,  1369,  1370,   511,  1159,  1188,   405,   766,   766,   319,
    1868      439,   108,  1069,    34,  1455,    35,   528,   529,    33,   486,
    1869      819,  1372,   506,   595,  1377,    74,  1444,   766,   549,  1463,
    1870      766,  1509,  1441,   731,    46,   766,    53,  1510,  1067,  1566,
    1871      248,   325,   405,  1413,   286,   579,  1421,   823,    46,   514,
    1872      831,    60,   860,   413,   662,   405,    46,   595,  1162,   768,
    1873      603,   405,   605,   869,   529,    67,  1164,   455,   603,   769,
    1874      455,   530,   875,  -111,    46,  -111,   455,   526,   522,  -111,
    1875      553,   554,  1114,   732,   483,   325,   405,  1514,  1455,  1334,
    1876      563,  1230,  1461,   405,  -111,  -111,   564,  1465,  1293,  1294,
    1877      529,  1296,   565,  1115,   211,   766,   997,  1300,   731,   126,
    1878     1303,   127,   128,   129,    66,   845,   325,   603,   335,     2,
    1879      202,     4,     5,     6,     7,   323,   569,   525,  1486,   325,
    1880      405,   525,  1382,  1383,   525,  -292,  1137,  1387,   993,   758,
    1881      450,  1137,     8,     9,    10,    11,    12,  1441,  1442,   696,
    1882      566,  1237,     8,     9,    10,    11,    12,   696,  1488,  1489,
    1883       36,   334,   875,  -438,    39,   587,   732,  1414,  1415,    30,
    1884      490,    40,    41,  1069,   862,   605,    36,  1395,   590,    30,
    1885       39,  1395,    34,   640,    35,   436,  1215,    40,    41,  1137,
    1886      659,  1528,    74,   335,    53,   660,    42,    33,   661,  1067,
    1887      787,   788,  1202,  1204,  1206,   663,   144,    33,   664,   474,
    1888      795,   796,   736,  1555,  1304,  1305,  1306,    63,   114,  1555,
    1889      789,   790,   737,    67,   665,   682,   791,   792,   793,   794,
    1890     1555,  1343,  1345,  1346,  1555,   668,    46,   670,   253,   711,
    1891       36,  1099,   170,   171,    39,   688,   713,   159,    63,  -239,
    1892     1006,    40,    41,    36,   819,   179,   180,    39,   751,   724,
    1893      763,   157,   767,   190,    40,    41,   213,   771,   104,   223,
    1894      824,  -293,  1195,  1420,   784,   785,   786,   826,     8,     9,
    1895       10,    11,    12,   217,   828,  1478,   211,   839,   -12,   690,
    1896       36,   405,   179,   180,    39,   883,   522,   691,   891,   692,
    1897      522,    40,    41,   522,   884,    30,   138,   911,   913,   918,
    1898       36,   729,   179,   180,    39,   914,   691,   529,   215,   939,
    1899      255,    40,    41,  -415,  -520,   172,   602,   953,   603,   455,
    1900      960,   740,    46,    33,   962,   104,   604,   967,   206,   216,
    1901     1069,   973,   974,   976,   819,   977,   181,   159,   450,   978,
    1902       74,   979,   988,   999,   338,  1000,   182,   237,   240,  1001,
    1903      369,   324,  1114,   758,    53,  1015,  1067,   208,  1016,   255,
    1904      345,  1017,  1018,  1019,  1174,   172,  1020,  1085,   172,    60,
    1905     1021,  1032,  -403,  1115,   211,   159,  -402,  1087,   490,  1116,
    1906      319,  1095,  1046,    67,   729,  1096,  1097,   209,  1098,   400,
    1907     1104,  1103,  1137,  1137,  1137,  1102,  1105,   228,   159,  1106,
    1908     1112,  1122,   766,  1123,   418,  1124,   982,   423,   425,  1136,
    1909      438,  1129,   157,   172,  1133,  1157,   104,  1554,  1439,  1178,
    1910     1179,  1180,  1181,  1196,  1069,  1182,   435,  1197,  1199,   860,
    1911     1217,    53,    66,   442,  1200,  1208,  1212,   445,   209,   446,
    1912      529,  1218,   -14,  1223,  1216,  1114,   474,    -3,   461,   908,
    1913     1067,  1228,  1234,  1238,    63,   436,  1245,  1243,   915,   475,
    1914       67,  1247,   917,   495,  1250,   393,  1115,   394,  1254,   482,
    1915      401,  1258,   395,  1261,   396,   172,  1263,   425,  1438,  1069,
    1916      397,   209,  1069,   398,  1265,   983,   731,  1266,   402,  -294,
    1917     1267,  1268,   399,  1269,   666,  1271,     8,     9,    10,    11,
    1918       12,  1278,    46,    46,  1287,  1067,   459,  1288,  1067,  1195,
    1919       74,  1295,   667,  1313,   450,   819,  1298,   369,  1299,  1301,
    1920     1302,  1325,  1310,    30,  1317,  1527,  1335,   455,  1069,   172,
    1921     1331,   529,  1339,  1069,  1333,  1341,   172,  1340,  1137,  1137,
    1922     1347,   209,  1348,  1349,   255,  1351,   210,   596,  1357,  1358,
    1923     1114,    33,  1359,   624,  1067,  1360,  1367,  1371,  1368,  1067,
    1924     1378,   104,  1379,  1306,  1069,  1385,   629,  1388,  1389,  1391,
    1925      629,  1115,  1398,   255,  1408,  1427,  1401,  1409,  1479,   209,
    1926     -404,  1412,  1423,   209,  1429,  1431,   104,    74,  1432,  1440,
    1927     1067,  1449,  1433,   369,    53,  1450,   146,   210,  1434,   501,
    1928     1435,    53,   147,   148,   172,   104,  1445,  1451,  1452,   474,
    1929       46,  1362,  1454,  1459,  1464,  1468,   474,  1364,  1466,   475,
    1930     1470,   172,  1472,    67,  1474,   172,  1069,  1476,  1481,  1483,
    1931       67,  1069,   335,  1482,   345,    46,    46,  1529,   158,   475,
    1932      210,   720,   646,  1494,  1504,  1506,  1537,   475,  1508,  1069,
    1933     1512,  1069,  1067,    53,  1513,  1069,  1520,  1067,  1069,  1116,
    1934       46,  1535,   368,   104,  1536,  1540,  1069,  1549,   474,   209,
    1935     1069,  1547,  1195,   716,  1551,  1067,   425,  1067,  1557,  1195,
    1936      926,  1067,    67,  1564,  1067,  1565,  1214,   172,  1315,   798,
    1937      323,   730,  1067,    63,  1093,   799,  1067,   797,   104,   800,
    1938      210,   425,   926,   455,   801,   425,  1316,  1426,  1567,  1515,
    1939     1381,   164,  1249,   168,  1399,  1497,   174,   175,   176,  1222,
    1940      178,   686,   709,   529,   687,  1100,   715,   459,   932,  1101,
    1941      816,  1195,  1045,   255,   345,   229,   481,  1132,   210,   890,
    1942      955,  1111,   210,  1326,   963,   806,     0,   244,   245,   209,
    1943       74,   807,  1116,   808,   734,     0,     0,    74,     0,     0,
    1944      742,     0,   746,     0,   511,     0,   209,     8,     9,    10,
    1945       11,    12,     0,     0,     0,     0,   407,     0,    36,   809,
    1946      179,   180,    39,   415,    36,     0,   179,   180,    39,    40,
    1947       41,   996,     0,     0,    30,    40,    41,   629,   822,   209,
    1948      596,     0,     0,   104,     0,     0,     0,     0,     0,    74,
    1949        0,   841,     0,     0,   690,     0,   405,     0,     0,     0,
    1950      261,     0,    33,     0,   692,     0,   104,     0,   210,   596,
    1951      262,     0,     0,   104,   596,     0,     0,     0,     0,  1209,
    1952      629,     0,     0,   345,   345,   345,     0,   720,     0,     0,
    1953        0,   172,     0,     0,     0,   407,    36,  1116,   170,   171,
    1954       39,   345,     0,   949,     0,   603,     0,    40,    41,  1039,
    1955        0,    72,     0,   950,     0,   721,     0,     0,     0,   716,
    1956        0,     0,     0,   529,   172,   104,     0,     0,     0,  1500,
    1957      475,  1500,   367,    54,    54,   255,   730,     0,     0,   928,
    1958      172,     0,    72,     0,     0,     0,     0,     0,   210,     0,
    1959      577,     0,   882,     0,   172,     0,     0,     0,   581,     0,
    1960      209,   584,     0,     0,    54,  1500,     0,  1500,     0,     0,
    1961        0,     0,   475,     0,     0,   345,     0,   218,     0,    36,
    1962        0,   179,   180,    39,   954,     0,     0,   425,   209,     0,
    1963       40,    41,     0,   209,     0,   319,    54,   926,   210,    54,
    1964      537,   538,   539,   540,   541,   542,   543,   544,   545,   546,
    1965      255,   730,   935,     0,     0,  1525,   981,   405,   938,     0,
    1966      720,     0,     0,   407,     0,  1526,  1144,   415,     0,     0,
    1967      720,     0,     0,   547,     0,     0,     8,     9,    10,    11,
    1968       12,   594,   601,     0,     0,   720,    36,     0,   170,   171,
    1969       39,   172,   716,   625,   626,     0,     0,    40,    41,     0,
    1970        0,     0,   716,    30,   348,   345,     0,   629,     0,     0,
    1971     1012,   629,   822,     0,     0,     0,  1039,   716,     0,     0,
    1972      209,     0,   371,     0,     0,     0,   343,  1023,     0,     0,
    1973        0,    33,     0,     0,   209,     0,    36,     0,   179,   180,
     1747     110,   146,    46,   147,    95,   393,   148,   447,   394,   378,
     1748     395,   111,   704,   422,   401,   402,   434,   885,   923,   396,
     1749     397,   731,   398,   399,   500,   836,   611,   263,   256,   965,
     1750     473,   861,   924,    46,   743,    95,   925,   140,   748,   844,
     1751     710,  1078,  1129,   630,    46,   832,    46,   634,   158,  1374,
     1752     113,   778,   837,  1137,  1171,    47,    46,    30,    30,   404,
     1753     838,   843,    46,   835,   189,    46,   699,   212,    46,   847,
     1754     222,   606,    30,   810,   120,   854,   215,   338,   108,   108,
     1755     984,  1436,   108,   276,   941,   393,    47,   530,   394,   149,
     1756     395,  1432,   671,   156,   401,   402,   923,   927,   150,   396,
     1757     397,  1181,   398,   399,   833,    30,    46,  1169,  1170,    46,
     1758     924,   419,   680,  1120,   925,    46,   198,   119,   403,   940,
     1759     684,   151,   248,   405,   405,  1199,    60,  1177,   286,   598,
     1760    -225,  -225,    30,   477,   479,   277,   413,  1195,   405,   770,
     1761     146,  1197,   147,  1447,   834,   148,    46,  1077,   158,   248,
     1762     325,    67,   254,  1178,    46,  1432,   968,    60,   156,    46,
     1763     199,   368,   478,   675,   677,  1436,  1394,  1395,   108,   483,
     1764    1436,   405,   139,   875,   875,   875,    30,   108,   521,   832,
     1765      54,    54,    67,    46,    46,  1187,   158,  1436,   507,   567,
     1766     473,   875,   319,   108,  1436,  -225,   160,  1066,   108,    46,
     1767     530,   335,   530,    30,   138,   669,   774,    46,  1246,   158,
     1768     473,    54,   141,    66,   208,   780,    46,   738,   473,    46,
     1769     146,   437,   147,   568,   143,   148,   731,   753,   149,  1085,
     1770    1396,  1327,   666,   667,   754,  1247,  1329,   150,   833,   747,
     1771     845,   864,   603,    54,    66,   865,    54,   467,  1171,    46,
     1772     424,    95,   836,   465,   428,   237,   240,   761,    53,   112,
     1773     151,   160,   589,    46,    46,   875,   158,   852,   152,   603,
     1774      46,   704,   832,   732,   821,   167,  1026,    46,   834,   837,
     1775     372,   530,   695,   697,   319,   450,   611,   838,   518,    53,
     1776    1013,   338,   741,  -455,  1323,   847,   373,  1171,  1025,   104,
     1777     104,   731,    47,  1508,   658,  1186,  1139,  1377,   674,   676,
     1778    1002,   887,  1394,  1395,   666,   667,   428,   870,   530,   490,
     1779    1517,   206,   814,  -455,   216,  -455,    46,  1521,   368,  -455,
     1780     104,   833,   673,   343,   173,  1457,  1509,  1201,   678,   523,
     1781     381,   888,   156,   645,    74,    46,    46,   889,   550,   165,
     1782    1169,  1170,   966,   551,   552,   875,   382,   429,  1192,  1078,
     1783    1522,  1178,    46,   916,   441,   104,    46,   108,   436,   136,
     1784     137,   834,   836,    60,  1119,    74,  1405,   866,   474,   478,
     1785     177,   867,   598,   462,   257,   844,   588,   258,   455,   595,
     1786     197,   108,    46,   136,   137,  -281,   521,    54,    67,   837,
     1787     521,   569,    46,   521,   368,   881,   848,   838,   628,   384,
     1788     851,   598,   632,  1171,   459,   335,   598,   752,   861,   429,
     1789      46,   108,  1187,   136,   234,   385,    46,    54,    46,  -109,
     1790     225,   868,   239,   386,   226,   871,  1381,   230,   578,   232,
     1791    1421,  1422,   525,    36,   579,   160,   241,    39,   243,   387,
     1792    -109,   338,    46,   246,    40,    41,   803,   235,  -109,  -109,
     1793      66,   473,   236,  -506,   169,  1077,   685,  1427,   110,   319,
     1794     319,   248,   579,   755,  -109,   435,    46,   756,   732,   829,
     1795     762,   603,  1157,  1159,    46,   722,   368,   -10,    46,   604,
     1796      95,   723,    46,   886,   433,  1242,   208,   450,  1107,   500,
     1797     450,  1088,  1121,   945,  1007,    53,   450,   249,   821,  1122,
     1798    1135,   388,   260,   758,   393,  1066,   739,   394,   113,   395,
     1799     553,   554,   740,   611,   401,   402,  1236,   389,   396,   397,
     1800     775,   398,   399,   758,   899,   781,  -431,  1026,   474,  -432,
     1801     705,    47,  1360,   490,  1093,   319,   104,   490,   485,   495,
     1802     646,   496,   699,   732,   326,   502,   706,   523,   474,   557,
     1803     558,   523,   707,   319,   523,  1358,   474,  1168,  1024,  1187,
     1804     897,   225,   705,   707,  1184,   335,  1187,  1184,   708,   906,
     1805     379,   749,   467,  1275,  1276,    94,  1312,   750,   919,   920,
     1806    1185,    74,    46,  1303,   559,   560,    74,  1093,   821,   272,
     1807     455,   411,  1313,   455,    46,  1367,    46,   343,   720,   455,
     1808     729,   274,    60,   338,   876,   877,    94,  1314,   866,   580,
     1809    1187,   405,  1103,   173,   431,    46,   208,   145,   319,    94,
     1810     709,   895,   275,  1315,   439,   459,   163,    67,  1404,   819,
     1811     631,    46,   595,  1321,   635,   185,   765,   366,    94,   704,
     1812    1322,    94,   766,   766,   896,    46,   898,  -102,    46,  1393,
     1813     525,  -102,  1401,  1029,   525,   969,    54,   525,   742,  1361,
     1814     746,   860,   910,   874,   874,   874,   595,   327,   766,  1037,
     1815     328,  1024,   869,   731,   108,   329,   136,   137,   338,  1463,
     1816     330,   874,    46,  1346,    46,   331,  1463,  1347,  1482,    66,
     1817    1082,   163,   522,  1435,  1487,   948,   367,   343,  1439,  -109,
     1818     225,  -109,   230,   555,   556,  -109,  1465,   571,  1466,   405,
     1819     744,  1504,   944,   561,   562,   745,  1511,   572,  1044,    94,
     1820    -109,  -109,  1115,  1456,   583,   323,   405,   335,    46,    46,
     1821    1505,   768,    94,   405,    53,     2,   202,     4,     5,     6,
     1822       7,   769,    46,   371,  1234,  1104,    74,   912,  1238,   450,
     1823     666,   667,   383,   766,  1506,   874,   392,   185,   695,   697,
     1824     391,   343,   949,   821,   603,   436,    74,   248,   325,   405,
     1825     992,  1004,   950,  1417,    74,   104,   993,   723,  1232,   490,
     1826      94,   413,   662,   405,   579,  1005,   403,   430,   598,   225,
     1827    1429,   420,    94,    34,   823,    35,   900,  1516,   405,   474,
     1828    1349,   421,   335,  1516,   720,   729,   343,   343,   343,   923,
     1829     882,   426,  1516,  1354,   766,   997,  1516,   323,   444,   766,
     1830      74,    46,    94,   924,   343,  1161,    36,   925,   179,   180,
     1831      39,    36,   457,    46,  1355,    39,   481,    40,    41,   682,
     1832     766,   474,    40,    41,  1357,   874,   483,   325,   405,   430,
     1833     766,   463,   455,  1480,  1429,    -3,   903,   208,   405,  1006,
     1834    1362,   464,   602,   819,   603,   460,   766,    42,   159,   108,
     1835     935,   208,   604,   724,   486,   163,   938,   144,   506,  1182,
     1836     729,  1064,  1418,  1437,   190,  1475,  1525,   213,  1415,   766,
     1837     223,  1476,   579,   863,   791,   792,   793,   794,   343,    94,
     1838       8,     9,    10,    11,    12,   108,    46,   136,   137,   878,
     1839     522,   845,   325,   603,   522,   514,  1141,   522,   405,   605,
     1840      46,   526,   600,   894,  1153,   732,   405,    30,    46,     2,
     1841     202,     4,     5,     6,     7,   286,  1156,   720,   603,   530,
     1842      36,    63,   114,  1158,    39,   603,    46,   720,   325,   405,
     1843      33,    40,    41,   819,  1328,  1330,  1331,   450,  1220,  1108,
     1844     405,   563,   720,   208,   931,   564,   931,   566,   159,   531,
     1845     532,   533,    63,  1294,  1295,   185,   736,  1415,  1416,  1131,
     1846     565,   369,   758,  -428,  1131,   157,   737,    34,   343,    35,
     1847     569,   571,   534,   405,   535,   343,   536,   490,  1110,   319,
     1848     334,   572,   323,   323,   732,   587,   159,   217,    60,   126,
     1849     590,   127,   128,   129,  1227,  1458,  1459,    74,   640,   969,
     1850     502,  1394,  1395,   969,   969,   696,   787,   788,   823,   159,
     1851     789,   790,  1131,    67,   659,   795,   796,   660,   661,   663,
     1852     664,   438,  1064,   668,   255,  1196,  1198,  1200,   860,   646,
     1853     665,   670,   253,   711,   688,   751,  1049,   713,  -229,    74,
     1854     455,    94,    54,   763,   767,   605,   771,   824,  1283,  1284,
     1855     826,  1286,   828,   908,   839,   884,  1494,  1290,   323,   891,
     1856    1293,   -12,   915,   883,   211,   324,   917,     8,     9,    10,
     1857      11,    12,   911,   255,   345,    66,   323,   913,   914,   918,
     1858     691,   238,    46,   939,     8,     9,    10,    11,    12,  -405,
     1859    -510,   953,   960,   740,    30,   962,   967,   973,   974,  1093,
     1860     977,   338,   978,   400,   979,   721,   976,   450,   819,    54,
     1861     999,    30,   988,  1000,  1001,   211,  1319,    33,   418,  1015,
     1862      53,   423,   425,  1016,  1017,   343,   157,   646,   369,  1018,
     1863    1019,  1020,  1021,   436,    33,  1032,  -393,  -392,  1079,   720,
     1864     720,   323,  1081,  1046,  1089,  1090,   474,   442,  1091,  1092,
     1865    1097,   445,  1096,   446,  1099,   600,  -282,   831,   211,   605,
     1866    1098,   104,   461,     8,     9,    10,    11,    12,    63,   215,
     1867    1100,    67,  1106,   475,  1116,   768,   766,   405,    46,  1064,
     1868     343,   343,  1117,   482,   862,   769,  1118,  1109,   982,   600,
     1869      30,   425,  1123,  1127,  1130,   720,   720,  1151,  1174,  1375,
     1870      54,  1172,  1173,  1375,   369,  1175,    74,  1190,  1176,  1108,
     1871     455,  1206,  1191,    33,  1400,  1131,  1131,  1131,   211,    36,
     1872    1193,   170,   171,    39,  1049,   335,  1194,  1202,   104,  1207,
     1873      40,    41,    36,  1189,   170,   171,    39,  1208,    -3,  1213,
     1874    1515,  1218,   729,    40,    41,   922,  1224,   696,  1110,   495,
     1875    1228,  1233,  1235,  1237,  1240,  -283,   211,  1413,   255,  1244,
     1876     211,   596,     8,     9,    10,    11,    12,   624,   367,  1064,
     1877    1248,  1253,  1251,  1255,    72,  1256,  1257,  1285,    53,  1258,
     1878     629,  1259,  1261,  1268,   629,   393,  1277,   255,   394,    30,
     1879     395,   831,   605,  1278,   401,   402,  1448,  1108,  1087,   396,
     1880     397,  1302,   398,   399,  1310,    72,    60,  1288,  1289,   208,
     1881    1291,   721,    33,  1316,  1292,   666,   667,  1299,  1318,   104,
     1882    1320,   729,  1325,  1064,  1324,  1326,  1064,  1332,  1333,  1281,
     1883    1334,    67,  1336,   475,  1342,  1308,  1110,  1343,    54,    54,
     1884     218,  1344,  1345,  1356,    46,    46,   211,  1352,   345,  1353,
     1885    1363,  1131,  1131,   475,  1493,  1295,  1366,  1368,  1369,  1371,
     1886      54,   475,  1378,  1381,    74,  1388,   720,  1064,  1389,  -394,
     1887    1392,  1403,  1064,  1407,   720,   720,   720,  1409,  1414,    54,
     1888    1423,  1419,  1424,   474,   831,  1449,  1428,   716,  1425,  1426,
     1889     425,  1108,  1433,    66,  1438,  1442,   605,  1064,  1347,  1440,
     1890    1444,  1446,  -284,   436,  1453,   730,  1451,    63,    67,     8,
     1891       9,    10,    11,    12,  1472,   425,   206,   216,   720,   425,
     1892     146,  1452,   147,   343,   343,   148,   211,   348,  1474,  1464,
     1893    1110,  1478,    54,  1479,  1486,  1498,    30,    54,    53,  1499,
     1894    1495,  1518,    46,  1203,   721,  1500,  1503,   255,   345,   909,
     1895    1510,  1064,  1512,   926,   721,  1524,  1064,  1109,   104,    33,
     1896     797,   799,  1470,    46,    46,   798,   158,    54,   800,   721,
     1897    1189,  1064,  1243,  1064,   801,   926,   211,  1064,   172,   104,
     1898    1064,  1406,  1481,   696,  1301,    46,  1064,   368,  1526,  1365,
     1899    1064,   696,  1470,   809,  1497,  1239,  1379,  1467,   104,  1212,
     1900     443,   686,   687,  1094,   932,  1045,  1095,  1126,   890,   605,
     1901     435,   629,   822,   955,   596,    53,   715,   319,   816,  1311,
     1902    1105,    72,   323,   734,    74,   841,    72,   806,   172,   210,
     1903     474,   172,   963,   807,   808,     0,     0,   474,     0,     0,
     1904     343,     0,     0,   596,     0,  1109,     0,     0,   596,     0,
     1905       0,     0,     0,     0,   629,    67,   104,   345,   345,   345,
     1906       0,    54,    67,     0,   996,  1471,    36,     0,   179,   180,
     1907      39,   862,     0,     0,     0,   345,   172,    40,    41,     0,
     1908     210,   474,   998,     0,    54,    75,   104,     0,     0,     0,
     1909       0,    54,  1003,   716,     0,  1471,     0,   211,     0,     0,
     1910       0,    74,   181,     0,   475,     0,    67,  1014,     0,   255,
     1911     730,     0,   182,   928,     0,     0,    75,  1189,     0,     0,
     1912     218,     0,  1412,   210,  1189,   211,     0,     0,     0,     0,
     1913     211,     0,     0,     0,     0,    54,     0,     0,   172,  1109,
     1914     407,     0,  1039,     0,     0,     0,   475,   415,     0,   345,
     1915       0,   219,    36,     0,   179,   180,    39,     0,   954,     0,
     1916       0,   425,    53,    40,    41,     0,   721,   721,  1189,    53,
     1917       0,     0,     0,     0,     0,     0,     0,  1364,     0,     0,
     1918     104,     0,     0,   210,   255,   730,    72,     0,   261,     0,
     1919     981,     0,   172,    36,     0,   170,   171,    39,   262,   172,
     1920       0,   348,     0,   104,    40,    41,    72,     0,     0,     0,
     1921     104,     0,     0,    53,    72,     0,     0,   211,     0,   407,
     1922       0,   210,   721,   721,     0,   210,   716,     0,     0,   371,
     1923     926,   211,     0,     0,     0,     0,   716,     0,   350,   345,
     1924     348,   629,     0,     0,  1012,   629,   822,     0,    74,     0,
     1925       0,   716,     0,     0,   104,    74,     0,     0,   348,  1138,
     1926      72,  1023,     8,     9,    10,    11,    12,   172,     0,     0,
     1927       0,     0,     0,     0,   577,     8,     9,    10,    11,    12,
     1928       0,     0,   581,     0,   172,   584,     0,     0,   172,    30,
     1929       0,     0,     0,     0,     0,     0,     0,     0,     0,    74,
     1930       0,   348,    30,     0,  1166,  1167,     0,     0,     0,  1039,
     1931       0,   210,    33,    63,     0,     0,     0,    36,     0,   179,
     1932     180,    39,     0,   211,  1468,    33,     0,     0,    40,    41,
     1933      36,     0,    75,     0,    39,   629,     0,    75,     0,     0,
     1934       0,    40,    41,     0,     0,     0,     0,   407,     0,     0,
     1935     172,   415,     0,   602,  1496,   603,     0,     0,     0,     0,
     1936    1215,  1216,  1309,   604,     0,   348,    42,     0,    77,     0,
     1937       0,  1102,     0,     0,     0,     0,   144,     0,     0,   425,
     1938     114,     0,   926,     0,     0,     0,     0,     0,     0,     0,
     1939       0,   210,     0,   721,  1523,    84,   345,     0,     0,    77,
     1940       0,   721,   721,   721,     0,     0,  1528,     0,     0,     0,
     1941     348,   348,   348,     0,     0,     0,     0,     0,     0,   511,
     1942       0,     0,     0,     0,     0,     0,    84,     0,   348,     0,
     1943     596,   219,   528,   529,   220,     0,   407,     0,     0,   926,
     1944     926,   210,     0,   423,   549,   721,   348,     0,   716,   716,
     1945       0,   345,   345,     0,     0,     0,     0,    72,     0,     0,
     1946       0,   221,     0,   348,     0,     8,     9,    10,    11,    12,
     1947       0,  1188,     2,   202,     4,     5,     6,     7,     0,     0,
     1948     529,     0,    36,     0,   179,   180,    39,     0,     0,     0,
     1949       0,     0,    30,    40,    41,     0,     0,    75,     0,    72,
     1950     224,     0,   348,     0,   716,   716,     0,     0,     0,     0,
     1951     629,     0,   350,   211,   172,    33,   529,    75,   690,     0,
     1952     405,   351,     0,     0,     0,    75,   577,   577,   692,     0,
     1953      34,  1335,    35,     0,     0,     0,     0,     0,   348,  1337,
     1954    1338,  1339,     0,     0,     0,     0,   481,   172,   358,     0,
     1955       0,   350,     0,     0,     0,     0,   949,     0,   603,     0,
     1956     323,     0,   210,   172,     0,     0,   950,   730,     0,   350,
     1957      36,    75,   179,   180,    39,     0,     0,   172,     0,   348,
     1958       0,    40,    41,  1370,     0,     0,   209,     0,     0,   348,
     1959     210,     0,   348,     0,     0,   210,   228,   218,     0,   348,
     1960       0,     0,     0,     0,   348,     0,  1491,     0,   405,     0,
     1961    1282,     0,   350,     0,   901,    77,  1492,     0,   904,     0,
     1962      77,    36,     0,   179,   180,    39,     0,   255,     0,     0,
     1963       0,    63,    40,    41,     0,     0,     0,   209,     0,   926,
     1964       0,     0,    84,     0,   716,     0,   730,    84,     0,     0,
     1965     114,   407,     0,     0,     0,     0,   926,   690,     0,   405,
     1966       0,     0,     0,     0,     0,   691,    72,   692,     0,     0,
     1967       0,     0,     0,     0,   172,   716,   350,     0,     0,     0,
     1968     209,     0,   210,   716,   716,   716,     0,     0,     0,   211,
     1969     784,   785,   786,     0,   345,   345,   210,   537,   538,   539,
     1970     540,   541,   542,   543,   544,   545,   546,     0,  1188,     0,
     1971       0,     0,     0,     0,   220,     0,     0,     0,     0,   926,
     1972     926,   350,   350,   350,     0,     0,     0,   716,     0,     0,
     1973     547,     0,     0,   529,     0,     0,     0,     0,   114,   350,
     1974     209,   221,     0,     0,     0,     0,     0,     0,     0,   348,
     1975       0,     0,     0,     0,     0,     0,     0,   350,     0,     8,
     1976       9,    10,    11,    12,   577,     0,     0,     0,    75,     0,
     1977       0,     0,     0,     0,   350,     0,     0,     0,   209,     0,
     1978      77,     0,   209,   211,     0,     0,    30,     0,   210,     0,
     1979       0,     0,     0,     0,     0,   351,     0,     0,   501,     0,
     1980      77,   348,   348,     0,   348,   348,     0,    84,    77,    33,
     1981      75,   345,     0,   350,    36,     0,   179,   180,    39,     0,
     1982       0,     0,   358,     0,    72,    40,    41,    84,     0,     0,
     1983       0,     0,   114,     0,   351,    84,     0,     0,   172,     0,
     1984       0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
     1985     181,     0,   351,     0,    77,  1188,     0,   348,   348,     0,
     1986     182,   358,  1188,     0,     0,     0,   529,     0,   209,     0,
     1987       0,     0,     0,     0,     0,     0,     0,   407,     0,   358,
     1988       0,    84,     0,     0,     0,     0,     0,     0,     0,     0,
     1989     350,     0,     0,     0,     0,   351,     0,     0,     0,     0,
     1990     350,     0,     0,   350,     0,     0,  1188,     0,   219,     0,
     1991     350,   983,     0,  1513,     0,   350,     0,     0,     0,     0,
     1992     348,     0,   358,     0,   469,     2,   202,     4,     5,     6,
     1993       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     1994      17,    18,    19,    20,    21,    22,    23,    24,   209,     0,
     1995      25,    26,    27,     0,  1142,     0,     0,   529,    30,   351,
     1996       0,     0,     0,   218,     0,   209,     0,     0,     0,     0,
     1997    1154,     0,     0,     0,     0,     0,     0,    75,   210,     0,
     1998       0,    33,     0,    34,    72,    35,   358,     0,    37,    38,
     1999       0,     0,     0,     0,     0,     0,     0,   348,   209,   348,
     2000       0,     0,     0,     0,   351,   351,   351,     0,     0,     0,
     2001       0,     0,     0,     0,     0,     0,     8,     9,    10,    11,
     2002      12,     0,   351,     0,     0,     0,     0,    -3,   348,     0,
     2003       0,   358,   358,   358,     0,     0,   348,   348,   348,     0,
     2004     351,     0,     0,    30,     0,  1221,     0,   348,   348,   358,
     2005       0,    77,     0,     0,     0,     0,     0,   351,     0,     0,
     2006     350,    72,     0,   164,     0,   168,    33,   358,   174,   175,
     2007     176,    36,   178,   179,   180,    39,     0,     0,    84,     0,
     2008     348,     0,    40,    41,   358,     0,     0,   229,     0,     0,
     2009       0,     0,     0,    77,     0,     0,   351,     0,     0,   244,
     2010     245,     0,     0,     0,     0,     0,     0,   690,     0,   405,
     2011       0,     0,   350,   350,     0,   350,   350,   692,     0,   209,
     2012      84,     0,     0,   358,     0,     0,     0,     0,     0,     0,
     2013     172,     0,   351,     0,     0,    75,     0,     0,     0,     0,
     2014       0,     0,     0,     0,     0,     0,     0,   209,     0,   529,
     2015       0,     0,   209,     0,   210,     0,     0,     0,     0,   358,
     2016       0,     0,     0,     0,   348,     0,     0,     0,   350,   350,
     2017       0,     0,     0,   351,     0,     0,     0,     8,     9,    10,
     2018      11,    12,     0,   351,     0,     0,   351,     0,     0,     0,
     2019     511,   220,     0,   351,     0,     0,     0,     0,   351,     0,
     2020     358,     0,     0,     0,    30,     0,     0,     0,    72,     0,
     2021     358,     0,     0,   358,     0,    72,     0,     0,   221,     0,
     2022     358,     0,     0,     0,     0,   358,     0,    33,     0,     0,
     2023       0,   350,    36,     0,   179,   180,    39,     0,     0,   209,
     2024       0,     0,     0,    40,    41,     0,     0,     0,   210,     0,
     2025       0,     0,     0,   209,     0,     0,     0,     0,     0,    72,
     2026      77,     8,     9,    10,    11,    12,     0,     0,  1491,     0,
     2027     405,     0,     0,   501,   219,     0,     0,     0,  1492,     0,
     2028       0,     0,     0,     0,     0,     0,     0,    84,    30,     0,
     2029       0,     0,     0,     0,     0,    75,   172,     0,     0,     0,
     2030       0,     0,     0,   529,     0,     0,     0,     0,   350,     0,
     2031     350,    33,     0,     0,     0,     0,    36,     0,   179,   180,
    19742032      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
    1975        0,     0,   407,     0,   501,     0,     0,     0,  1501,   210,
    1976     1501,   721,     0,     0,  1380,     0,     0,     0,     0,     0,
    1977        0,     0,   602,     0,   603,     0,     0,   443,     0,    63,
    1978        0,     0,   604,     0,     0,     0,     0,   210,     0,     0,
    1979       54,     0,   210,     0,  1501,   926,  1501,     0,    72,     0,
    1980        0,   629,     0,    72,     0,     8,     9,    10,    11,    12,
     2033       0,     0,   123,   123,   123,     0,     0,     0,     0,   350,
     2034       0,     0,     0,   351,     0,   209,     0,   350,   350,   350,
     2035       0,     0,   261,   594,   601,     0,     0,     0,   350,   350,
     2036       0,     0,   262,     0,     0,   625,   626,     0,     0,     0,
     2037     358,     0,    75,     0,     0,     0,     0,     0,     0,     0,
     2038       0,     0,   121,   124,   125,     0,     0,     0,     0,     0,
     2039       0,   350,     0,     0,   162,   351,   351,     0,   351,   351,
     2040       0,     0,     0,   123,     0,   123,     0,     8,     9,    10,
     2041      11,    12,     0,   214,     0,     0,     0,     0,    77,     0,
     2042       0,     0,   358,   358,     0,   358,   358,     0,     0,   271,
     2043       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2044       0,     0,     0,     0,     0,    84,     0,     0,     0,     0,
     2045       0,   351,   351,   250,     0,   251,     0,    33,     0,   162,
     2046       0,     0,    36,     0,   268,     0,    39,     0,     0,     0,
     2047       0,     0,     0,    40,    41,   350,     0,     0,   358,   358,
     2048       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
     2049       0,     0,   123,   162,   123,   123,     0,     0,   736,   123,
     2050       0,   123,   123,   364,     0,     0,     0,   370,   737,     0,
     2051       0,     0,     0,     0,   351,     0,     0,     0,     0,    75,
     2052       0,     0,     0,     0,     0,   278,    75,   279,     0,     0,
     2053       0,     0,     0,     0,   390,   209,     0,     0,     0,     0,
     2054       0,   358,     0,     0,   409,   410,     0,     0,   280,   414,
     2055       0,   416,   417,     0,   281,   162,     0,   220,   282,     0,
     2056       0,   283,   284,   285,   286,    40,    41,   214,   287,   288,
     2057      75,   123,     0,     0,     0,     0,   289,     0,    77,     0,
     2058       0,     0,     0,     0,   221,   162,   456,     0,     0,     0,
     2059     290,   351,   374,   351,     0,     0,     0,     0,     0,   292,
     2060     376,   294,   295,   296,   297,    84,     0,     0,     0,   370,
     2061       0,     0,     0,  1204,     0,     0,     0,   162,   358,     0,
     2062     358,     0,   351,     0,     0,     0,     0,     0,     0,     0,
     2063     351,   351,   351,     0,     0,     0,     0,     0,     0,     0,
     2064     456,   351,   351,   162,     0,     0,     0,  1022,     0,   358,
     2065       8,     9,    10,    11,    12,    77,     0,   358,   358,   358,
     2066       0,     0,     0,     0,     0,     0,     0,     0,   358,   358,
     2067       0,     0,     0,     0,   351,     0,   278,    30,   279,     0,
     2068       0,     0,    84,     0,     0,     0,     0,     0,     0,     0,
     2069     599,     0,     0,     0,     0,   623,     0,     0,     0,   280,
     2070      33,   358,     0,     0,     0,   281,     0,     0,     0,   282,
     2071       0,   209,   283,   284,   285,   286,    40,    41,     0,   287,
     2072     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2073     942,     0,   943,     0,     0,     0,     0,     0,     0,   946,
     2074     947,   290,     0,   374,   952,     0,     0,     0,     0,     0,
     2075     292,   817,   294,   295,   296,   297,   957,     0,   351,     0,
     2076       0,   961,     0,     0,     0,     0,     0,     0,     0,     0,
     2077     162,   162,     0,     0,     0,     0,     0,   364,     0,     0,
     2078       0,     0,     0,     0,     0,   358,   989,     0,     0,     0,
     2079       0,     0,     0,     0,     0,     0,     0,     0,   456,     0,
     2080       0,   456,    77,     0,     0,   209,     0,   456,     0,    77,
     2081       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2082      18,    19,    20,    21,    22,    23,    24,  -285,     0,    84,
     2083     594,     0,     0,     0,   733,     0,    84,    30,     0,     0,
     2084       0,     0,     0,     0,     0,     0,   162,     0,     0,     0,
     2085       0,     0,     0,    77,     0,     0,     0,     0,   456,     0,
     2086      33,     0,   456,     0,   162,   456,     0,     0,     0,     0,
     2087       0,  -285,     0,     0,     0,     0,     0,   364,     0,     0,
     2088      84,     0,   123,   123,     0,     0,     0,  1033,  1034,  1035,
     2089    1036,     0,  1038,     0,     0,     0,     0,     0,     0,     0,
     2090       0,     0,     0,     0,     0,     0,     0,     0,  1080,     0,
     2091       0,     0,   123,     0,     0,   123,   123,     0,   123,     0,
     2092     123,   123,  1086,     0,     0,   123,   123,     0,     0,   162,
     2093       0,     0,   811,   812,     0,     0,     0,     0,     0,     0,
     2094       0,   364,     0,   599,     0,     0,   827,     0,     0,     0,
    19812095       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1982       54,     0,     0,     0,     0,     0,   209,     0,     0,     0,
    1983        0,   646,    30,     0,     0,     0,     0,  1108,  1049,     0,
    1984        0,     0,   577,   577,     0,   425,   114,     0,     0,     0,
    1985        0,     0,   926,   926,     0,   172,     0,     0,     0,     0,
    1986       33,     0,   345,     0,     0,    36,     0,   179,   180,    39,
    1987        0,     0,     0,     0,     0,     0,    40,    41,     0,   210,
    1988        0,     0,   720,   720,     0,     0,     0,     0,     0,     0,
    1989        0,     0,     0,   210,   721,     0,   596,   218,     0,     0,
    1990        0,   690,    75,   405,   721,     0,     0,     0,     0,   423,
    1991        0,   692,     0,     0,   716,   716,     0,   345,   345,   721,
    1992        0,     0,     0,     0,     0,     0,  1498,     0,  1502,   646,
    1993      901,     0,     0,    75,   904,     0,     0,  1194,     0,     0,
    1994        0,     0,     0,     0,   720,   720,     0,     0,     8,     9,
    1995       10,    11,    12,     0,     0,     0,     0,     0,     0,     0,
    1996        0,     0,  1531,    72,  1533,     0,     0,   407,   219,     8,
    1997        9,    10,    11,    12,     0,    30,   716,   716,   348,     0,
    1998        0,     0,   629,    72,     0,   210,     0,     0,     0,     0,
    1999        0,    72,     0,     0,     0,     0,    30,     0,     0,     0,
    2000      343,     0,     0,    33,     0,     0,     0,  1562,    36,  1563,
    2001      179,   180,    39,     0,     0,     0,   209,   348,     0,    40,
    2002       41,     0,  1570,  1571,    33,     0,     0,     0,     0,    36,
    2003        0,     0,  1049,    39,     0,   348,     0,    72,     0,   730,
    2004       40,    41,     0,     0,  1525,     0,   405,     0,     0,     0,
    2005        0,     0,     0,     0,  1526,   350,     0,     0,   942,    54,
    2006      943,     0,   121,   124,   125,    42,   926,   946,   947,     0,
    2007        0,     0,   952,     0,     0,   144,     0,     0,   348,     0,
    2008      577,     0,  1292,   926,   957,     0,     0,     0,  1323,   961,
    2009        0,     0,     0,     0,     0,     0,     0,     0,     0,   255,
    2010      343,     0,     0,     0,     0,     0,     0,    63,     0,     0,
    2011        0,     0,     0,     0,   989,     0,   721,   721,     0,   720,
    2012      716,     0,   730,     0,     0,     0,   114,   720,   720,   720,
    2013        0,     0,     0,   250,     0,   251,     0,  1291,     0,     0,
    2014        0,     0,   348,     0,     0,     0,     0,     0,     0,    75,
    2015        0,   716,     0,   172,    75,     0,   926,   926,   594,   716,
    2016      716,   716,     0,     0,   343,     0,     0,     0,     0,     0,
    2017      345,   345,     0,     0,     0,   210,   720,     0,   721,   721,
    2018        0,     0,     0,     0,  1194,     0,     0,   348,   348,   348,
    2019        0,     0,     0,   407,     0,     0,     0,     0,   209,     0,
    2020        0,     0,     0,     0,     0,   348,     0,     0,   716,   343,
    2021      343,   343,     0,     0,   390,  1033,  1034,  1035,  1036,   114,
    2022     1038,     0,     0,   348,   409,   410,     0,   343,     0,   414,
    2023        0,   416,   417,     0,    72,     0,  1086,     0,     0,     0,
    2024      348,     0,    77,     0,     0,     0,     0,     0,   219,     0,
    2025     1092,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2026       17,    18,    19,    20,    21,    22,    23,    24,  -295,     0,
    2027     1148,     0,     0,    77,     0,     0,    72,     0,    30,   348,
    2028        0,     0,     0,     0,     0,     0,  1160,     0,     0,  1107,
    2029        0,     0,     0,     0,     0,     0,   209,   345,     0,     0,
    2030        0,   343,     0,     0,     0,     0,    33,     0,   220,     0,
    2031        0,     0,     0,     0,    75,   348,     0,  -295,     0,     0,
    2032        0,     0,  1324,     0,   114,     0,     0,     0,  1134,   350,
    2033        0,     0,     0,   172,    75,  1142,     0,     0,     0,  1146,
    2034        0,     0,    75,     0,  1150,     0,  1151,  1194,     0,     0,
    2035     1153,  1154,  1155,   721,  1194,  1158,   348,   210,     0,     0,
    2036        0,   721,   721,   721,  1170,     0,   348,  1231,   350,   348,
    2037        0,     0,     0,     0,   218,     0,   348,     0,     0,     0,
    2038        0,   348,  1185,  1186,     0,     0,   350,     0,    75,     0,
    2039        0,   343,     0,     0,     0,   351,     0,     0,   343,     0,
    2040        0,     0,     0,     0,     0,     0,  1194,     0,     0,     0,
    2041      721,     0,  1219,  1550,     0,  1221,     0,     0,     0,     0,
    2042        0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
    2043        0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
    2044        0,     0,     0,    72,     0,     8,     9,    10,    11,    12,
    2045        0,     0,     0,     0,  1236,   210,     0,     0,    30,     0,
    2046     1240,  1241,     0,     0,     0,    54,     0,     0,     0,     0,
    2047        0,  1251,    30,     0,     0,     0,  1255,     0,     0,  1259,
    2048        0,  1260,     0,     0,  1262,     0,    33,     0,     0,    77,
    2049        0,    36,     0,   350,    77,    39,     0,  1270,     0,     0,
    2050       33,     0,    40,    41,     0,    36,     0,   179,   180,    39,
    2051     1277,     0,  1279,  1280,  1281,  1282,    40,    41,     0,     0,
    2052        0,     0,     0,    84,     0,     0,   348,   736,  1289,     0,
    2053     1290,     0,    54,     0,   168,     0,     0,   737,   350,   350,
    2054      350,   181,     0,     0,     0,     0,     0,     0,   343,     0,
    2055        0,   182,     0,     0,    84,     0,   350,     0,     0,     0,
    2056        0,     0,     0,     0,     0,     0,  1319,  1320,     0,     0,
    2057        0,     0,     0,     0,   350,     0,     0,     0,   348,   348,
    2058        0,   348,   348,     0,     0,    75,     0,     0,   220,   221,
    2059        0,   350,     0,     0,     0,     0,     0,     0,     0,     0,
    2060        0,    72,     0,   343,   343,     0,     0,     0,     0,     0,
    2061        0,     0,   811,   812,     0,     0,  1355,  1356,     0,     0,
    2062        0,     0,     0,    54,     0,     0,  1366,    75,     0,     0,
    2063      350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2064      348,   348,   846,     0,     0,   849,   850,     0,   853,     0,
    2065      855,   856,     0,     0,    77,   857,   858,     0,     0,     0,
    2066        0,     0,     0,     0,     0,     0,   350,     0,     0,   351,
    2067        0,     0,     0,     0,    77,     0,   358,     0,     0,  1400,
    2068        0,     0,    77,     0,     0,     8,     9,    10,    11,    12,
    2069        0,  1404,     0,  1405,  1406,  1407,     0,     0,     0,     0,
    2070        0,     0,     0,   348,     0,  1411,     0,   350,   351,     0,
    2071        0,     0,    30,     0,  1422,     0,     0,   350,     0,     0,
    2072      350,     0,     0,     0,     0,   219,   351,   350,    77,     0,
    2073        0,  1436,   350,     0,     0,     0,     0,     0,   933,   934,
    2074       33,     0,     0,     0,   936,    36,   218,   179,   180,    39,
    2075        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2076        0,     0,     0,     0,     0,     0,     0,    54,    54,   351,
    2077       84,    72,     0,     0,     0,    84,     0,     0,     0,     0,
    2078        0,   261,     0,     0,   348,     0,   348,     0,  1484,  1485,
    2079        0,   262,     0,    54,    75,     0,     0,     0,     0,     0,
    2080        0,  1490,     0,     0,     0,     0,     0,     0,  1490,     0,
    2081        0,     0,    54,     0,     0,   348,     0,     0,     0,     0,
    2082        0,     0,     0,   348,   348,   348,     0,     0,     0,     0,
    2083        0,     0,     0,   351,   348,   348,     0,     0,     0,     0,
    2084     1524,     0,     0,     0,  1530,     0,     0,     0,    72,     0,
    2085        0,     0,     0,     0,     0,     0,   343,   343,     0,     0,
    2086        0,     0,     0,     0,     0,    54,     0,     0,     0,   221,
    2087       54,     0,   348,  1552,     0,  1553,     0,   350,   351,   351,
    2088      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2089        0,     0,     0,     0,     0,     0,   351,     0,     0,     0,
    2090        0,     0,     0,  1568,  1569,    54,     0,     0,     0,     0,
    2091        0,  1572,  1573,     0,   351,     0,     0,     0,     0,     0,
    2092        0,     0,     0,     0,     0,    77,     0,     0,     0,   350,
    2093      350,   351,   350,   350,     0,    84,     0,     0,     0,     0,
     2096       0,  1101,   846,     0,     0,   849,   850,     0,   853,     0,
     2097     855,   856,   599,     0,     0,   857,   858,   599,     0,     0,
     2098       0,     0,     0,     0,     0,     0,   364,   364,   364,     0,
    20942099       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2095      358,     0,    75,     0,     0,    84,     0,     0,     0,     0,
    2096        0,   348,     0,    84,     0,     0,     0,    77,     0,     0,
    2097      351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2098        0,     0,     0,   343,     0,     0,     0,     0,     0,   358,
    2099        0,   350,   350,     0,     0,     0,     0,     0,     0,     0,
    2100        0,     0,     0,     0,     0,     0,   351,   358,     0,    84,
    2101       54,    72,     0,     0,     0,     0,     0,     0,    72,     0,
     2100    1128,     0,     0,   123,   364,     0,     0,  1136,   123,   123,
     2101       0,  1140,     0,     0,   123,     0,  1144,     0,  1145,     0,
     2102       0,     0,  1147,  1148,  1149,     0,     0,  1152,     0,     0,
     2103       0,     0,     0,     0,     0,     0,  1164,     0,     0,   733,
    21022104       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2103        0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
    2104       54,     0,     0,     0,     0,     0,     0,   351,     0,     0,
    2105      358,     0,     0,     0,   350,     0,     0,   351,     0,     0,
    2106      351,     0,     0,     0,     0,   220,     0,   351,     0,     0,
    2107       72,     0,   351,     0,     0,     0,     0,     0,     0,     0,
    2108        0,     0,     0,     0,     0,     0,     0,     0,   162,     0,
    2109        0,     0,    54,     0,     0,     0,     0,   219,     0,     0,
    2110        0,     0,     0,     0,     0,     0,     0,   214,     0,     0,
    2111        0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
    2112        0,     0,    75,     0,     0,     0,     0,     0,  1227,     0,
    2113        0,     0,     0,     0,    77,   350,     0,   350,     0,     0,
     2105       0,     0,     0,     0,  1179,  1180,     0,     0,   933,   934,
     2106     456,     0,     0,     0,   936,     0,     0,     0,     0,     0,
     2107       0,     0,     0,     0,     0,     0,     0,     0,   364,  1209,
     2108     951,     0,  1211,     8,     9,    10,    11,    12,    13,    14,
     2109      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2110       0,     0,    25,    26,    27,     0,     0,   207,     0,     0,
     2111      30,     0,     0,     0,   733,     0,     0,   227,     0,   231,
     2112    1226,   233,     0,     0,     0,     0,  1230,  1231,   242,     0,
     2113       0,     0,     0,    33,     0,     0,     0,  1241,     0,     0,
     2114     203,    38,  1245,     0,     0,  1249,     0,  1250,     0,     0,
     2115    1252,     0,     0,     0,     0,     0,     0,     0,   207,     0,
     2116     231,   233,   242,  1260,     0,     0,     0,     0,   364,     0,
     2117       0,     0,   623,     0,     0,   364,  1267,     0,  1269,  1270,
     2118    1271,  1272,     0,     0,   267,     0,     0,     0,     0,     0,
     2119       0,     0,     0,     0,  1279,     0,  1280,     0,     0,     0,
     2120     168,   207,     0,     0,     0,     0,     0,     0,     0,     0,
    21142121       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2115        0,     0,     0,   162,     0,     0,     0,     0,   268,   358,
    2116      358,   358,     0,     0,     0,     0,   350,     0,     0,     0,
    2117        0,     0,     0,     0,   350,   350,   350,   358,     0,     0,
    2118        0,     0,     0,     0,     0,   350,   350,   162,     0,     0,
    2119        0,     0,     0,     0,     0,   358,     0,   364,     0,    75,
    2120        0,   370,     0,     0,     0,     0,    84,     0,     0,     0,
    2121        0,     0,   358,     0,     0,     0,     0,   351,     0,     0,
    2122        0,     0,     0,   350,     0,     0,     0,     0,     0,     0,
    2123        0,     0,     0,   123,   123,   123,     0,     0,     0,     0,
    2124      278,     0,   279,     0,     0,     0,     0,     0,    84,   162,
    2125        0,   358,     0,  1314,     0,     0,     0,     0,     0,     0,
    2126        0,   214,     0,     0,     0,     0,     0,     0,   280,   351,
    2127      351,     0,   351,   351,   281,     0,     0,     0,   282,   162,
    2128      456,   283,   284,   285,   286,    40,    41,   358,   287,   288,
    2129        0,     0,    77,     0,     0,     0,   289,     0,     0,     0,
    2130        0,     0,     0,   370,   123,     0,   123,     0,     0,     0,
    2131      508,   162,   350,     0,     0,     0,     0,     0,     0,   292,
    2132      376,   294,   295,   296,   297,     0,     0,     0,   358,     0,
    2133      271,   351,   351,     0,   456,     0,     0,   162,   358,     0,
    2134        0,   358,     0,     0,     0,     0,   221,     0,   358,     0,
    2135        0,     0,     0,   358,     0,     0,     0,     0,     0,     0,
    2136        0,     0,    75,   278,     0,   279,     0,     0,     0,    75,
     2122       0,     0,     0,     0,     0,     0,     0,     0,  1304,  1305,
     2123       0,     0,   201,     2,   202,     4,     5,     6,     7,     8,
     2124       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2125      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2126      27,   207,     0,   231,   233,   242,    30,     0,   456,     0,
     2127       0,     0,     0,     0,     0,   153,     0,     0,  1340,  1341,
     2128       0,     0,     0,     0,     0,     0,     0,     0,  1351,    33,
     2129       0,    34,     0,    35,    36,     0,   203,    38,    39,   207,
     2130       0,     0,     0,   207,     0,    40,    41,     0,     0,     0,
     2131     162,     0,     0,     0,     0,     0,     0,     0,     0,   499,
     2132       0,   247,     0,     0,     0,   364,     0,     0,     0,     0,
     2133      42,   252,   204,     0,     0,     0,  1380,     0,     0,     0,
     2134     205,     0,     0,     0,     0,     0,     0,     0,  1384,     0,
     2135    1385,  1386,  1387,     0,     0,     0,     0,     0,     0,   599,
     2136       0,     0,  1391,     0,     0,     0,     0,     0,   207,     0,
     2137       0,  1402,     0,     0,   278,     0,   279,     0,     0,     0,
     2138     364,   364,     0,  1410,     0,     0,   153,     0,     0,   207,
     2139       0,     0,   123,     0,   231,   233,     0,   280,     0,   380,
     2140       0,     0,   242,   281,     0,     0,     0,   282,     0,     0,
     2141     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
     2142       0,     0,   412,     0,     0,   289,     0,     0,     0,     0,
     2143       0,     0,     0,     0,  1454,  1455,   427,     0,   456,   290,
     2144       0,   374,  1217,     0,   207,   432,   772,  1460,   292,   376,
     2145     294,   295,   296,   297,  1460,   440,     0,     0,     0,     0,
     2146       0,     0,   207,     0,     0,     0,     0,   207,     0,   207,
    21372147       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2138        0,     0,     0,     0,   599,   123,     0,     0,     0,   623,
    2139        0,   280,     0,   123,   351,   123,   123,   281,     0,     0,
    2140      123,   282,   123,   123,   283,   284,   285,   286,    40,    41,
    2141        0,   287,   288,     0,     0,    84,     0,     0,     0,   289,
    2142        0,    75,     0,     0,     0,     0,     0,     0,     0,     0,
    2143        0,     0,     0,   290,     0,   374,     0,   220,   375,     0,
    2144        0,     0,   292,   376,   294,   295,   296,   297,     0,   207,
    2145        0,     0,     0,     0,     0,     0,     0,     0,     0,   227,
    2146        0,   231,    77,   233,   162,   162,     0,     0,     0,     0,
    2147      242,   364,   123,     0,     0,   351,     0,   351,     0,     0,
     2148     466,     0,  1490,     0,     0,   476,   207,     0,     0,   207,
     2149     207,     0,     0,     0,     0,     0,   733,     0,   484,     0,
     2150       0,     0,     0,     0,   494,   207,   498,     0,     0,     0,
     2151    1514,     0,     0,     0,   123,     0,     0,     0,     0,   207,
     2152       0,     0,     0,   527,     0,     0,   207,     0,     0,     0,
     2153       0,     0,     0,     0,     0,     0,  1527,     0,   214,     0,
     2154       0,  1529,     0,     0,     0,     0,     0,     0,     0,     0,
    21482155       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2149        0,     0,   456,     0,     0,   456,     0,     0,   358,     0,
    2150      207,   456,   231,   233,   242,     0,   351,     0,     0,     0,
    2151        0,     0,     0,     0,   351,   351,   351,  1022,     0,     0,
    2152        8,     9,    10,    11,    12,   351,   351,     0,   733,     0,
    2153        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    2154      162,     0,     0,   207,     0,     0,   278,    30,   279,     0,
    2155      358,   358,   456,   358,   358,     0,   456,     0,   162,   456,
    2156        0,     0,     0,   351,     0,     0,     0,     0,     0,     0,
    2157        0,   364,     0,    84,   280,    33,     0,     0,     0,     0,
    2158      281,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2156       0,     0,     0,     0,  1300,     0,   586,     0,     0,     0,
     2157       0,   591,     0,     0,     0,   733,     0,     0,     0,     0,
     2158       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2159      17,    18,    19,    20,    21,    22,    23,    24,     0,   637,
     2160      25,    26,    27,   638,   639,     0,   641,     0,    30,     0,
     2161       0,     0,   652,   653,     0,   654,   655,     0,   656,     0,
     2162     657,     0,  1162,   364,   364,     8,     9,    10,    11,    12,
     2163       0,    33,   214,     0,     0,     0,     0,   586,   203,    38,
     2164     207,     0,     0,     0,     0,   672,     0,     0,     0,     0,
     2165       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2166       0,     0,     0,     0,     0,     0,     0,     0,   207,     0,
     2167     683,     0,     0,   207,   280,    33,     0,     0,     0,     0,
     2168     281,   689,   622,     0,   282,     0,     0,   283,   284,   285,
    21592169     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    2160        0,     0,   289,   207,     0,   231,   233,   242,     0,     0,
    2161        0,     0,   358,   358,     0,     0,   290,     0,   374,     0,
    2162        0,     0,     0,   162,     0,   292,   817,   294,   295,   296,
    2163      297,     0,     0,     0,     0,   364,     0,   599,     0,     0,
    2164      827,   207,     0,     0,     0,   207,     0,     0,     0,     0,
    2165        0,     0,   351,     0,     0,     0,     0,     0,     0,     0,
    2166        0,   499,     0,     0,     0,     0,   599,     0,     0,     0,
    2167        0,   599,     0,     0,     0,   358,     0,     0,     0,     0,
    2168      364,   364,   364,     0,     0,     0,     0,     0,     0,     0,
    2169        0,     0,     0,     0,     0,     0,     0,     0,   364,     0,
    2170        0,     0,    77,     0,     0,     0,     0,     0,     0,    77,
    2171      207,     0,     0,     0,     0,     0,     0,     0,   221,     0,
    2172        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2173        0,   207,     0,   733,     0,     0,   231,   233,     0,     0,
    2174        0,     0,     0,    84,   242,     0,     0,     0,     0,     0,
    2175        0,     0,     0,     0,   456,     0,   358,     0,   358,     0,
    2176        0,    77,     0,     0,     0,     0,     0,     0,     0,   153,
    2177        0,     0,   364,     0,   951,     0,     0,     0,     0,     0,
    2178        0,     0,     0,   123,   123,     0,   207,   358,     0,     0,
    2179        0,     0,     0,     0,     0,   358,   358,   358,     0,     0,
    2180        0,     0,     0,     0,   207,     0,   358,   358,   733,   207,
    2181        0,   207,     0,   123,     0,   247,   123,   123,     0,   123,
    2182       84,   123,   123,     0,     0,   252,   123,   123,   207,     0,
    2183        0,   207,   207,     0,     0,     0,     0,     0,     0,     0,
    2184        0,     0,     0,   278,   358,   279,     0,   207,     0,     0,
    2185        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2186        0,   207,   364,     0,     0,     0,   623,     0,   207,   364,
    2187        0,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    2188      153,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2189        0,   287,   288,   380,     0,     0,     0,     0,     0,   289,
    2190        0,     0,     0,     0,   123,     0,     0,     0,     0,   123,
    2191      123,     0,     0,   290,     0,   123,   412,     0,     0,     0,
    2192        0,     0,   292,   376,   294,   295,   296,   297,     0,     0,
    2193      427,     0,     0,   358,     0,     0,     0,     0,     0,   432,
    2194        0,     0,     0,     0,     0,     0,     0,     0,     0,   440,
    2195        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2196        0,     0,   456,     0,     0,     0,     0,     0,     0,     0,
    2197        0,     0,     0,     0,   466,     0,     0,     0,     0,   476,
    2198        0,     0,   207,    84,     0,     0,     0,     0,     0,     0,
    2199       84,     0,   484,     0,     0,     0,     0,     0,   494,     0,
    2200      498,     0,     0,     0,   162,     0,     0,     0,     0,     0,
    2201      207,     0,     0,     0,     0,   207,     0,   527,     0,   364,
    2202        0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2203       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2204       24,  -295,    84,    25,    26,    27,     0,     0,   317,     0,
    2205        0,    30,     0,   599,     0,     0,     0,     0,   341,     0,
    2206      586,     0,     0,     0,     0,   591,     0,     0,     0,     0,
    2207      377,     0,     0,     0,   364,   364,     0,     0,     0,    33,
    2208        0,     0,     0,     0,    36,     0,   332,   333,    39,     0,
    2209     -295,     0,     0,   637,     0,    40,    41,   638,   639,     0,
    2210      641,     0,   207,     0,     0,     0,   652,   653,     0,   654,
    2211      655,     0,   656,     0,   657,     0,   207,     0,     0,     0,
    2212      636,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2213      627,   586,     0,     0,     0,     0,   499,     0,   456,   672,
    2214      317,     0,     0,  1168,     0,     0,     8,     9,    10,    11,
    2215       12,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2216        0,     0,     0,     0,   683,   480,     0,     0,     0,     0,
    2217        0,     0,   278,    30,   279,   689,     8,     9,    10,    11,
    2218       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2219       22,    23,    24,     0,     0,   207,   733,     0,   725,     0,
    2220      280,    33,     0,    30,   728,     0,   281,     0,   207,   466,
    2221      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2222      287,   288,     0,     0,     0,     0,     0,   207,   289,     0,
    2223        0,    33,     0,     0,     0,   337,   359,     0,   214,     0,
    2224        0,     0,   290,     0,   374,   764,     0,     0,     0,     0,
    2225        0,   292,  1169,   294,   295,   296,   297,     0,     0,     0,
    2226        0,   779,     0,     0,     0,     0,     0,     0,   408,     0,
    2227        0,     0,     0,     0,     0,   408,     0,     0,     0,   733,
    2228      377,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2229        0,     0,     0,     0,     0,     0,     0,   805,     0,   123,
    2230        0,     0,     0,     0,     0,     0,   815,   278,     0,   279,
    2231        0,     0,     0,   818,   207,     0,     0,     0,   825,     0,
    2232        0,     0,     0,     0,     0,     0,     0,   364,   364,   840,
    2233        0,     0,     0,     0,     0,   280,   214,     0,     0,     0,
    2234      207,   281,     0,     0,     0,   282,     0,   408,   283,   284,
    2235      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2236        0,     0,     0,   289,     0,     0,     0,   207,     0,     0,
    2237      880,     0,     0,     0,     0,     0,     0,   290,     0,   374,
    2238        0,   727,     0,     0,     0,   802,   292,   376,   294,   295,
    2239      296,   297,     0,     0,     0,     0,     0,     0,   207,     0,
    2240        0,     0,   408,     0,     0,   825,     0,     0,     0,   207,
    2241      408,   582,     0,   408,   585,     0,     0,     0,     0,   760,
    2242        0,     0,     0,   359,   123,     0,     0,   615,     0,     0,
    2243        0,     0,   773,     0,     0,     0,     0,     0,     0,   760,
    2244        0,     0,     0,     0,     0,     0,   633,     0,     0,   337,
    2245        0,     0,   782,   783,   364,     0,     0,     0,     0,     0,
    2246      247,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2247      958,   959,     0,     0,   804,   408,     0,     0,     0,   408,
    2248        0,     0,     0,   975,   813,     0,     0,     0,     0,     0,
    2249        0,   341,     0,     0,   207,     0,   773,     0,     0,     0,
    2250      990,     0,   991,     0,     0,     0,   995,     0,     0,     0,
    2251      359,     0,     0,   456,     0,   456,     0,     0,     0,     0,
    2252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2253        0,     0,     0,   408,     0,     0,     0,     0,     0,     0,
    2254        0,     0,     0,     0,     0,     0,   879,     0,     0,   456,
    2255        0,   456,     0,     0,   377,     0,     0,     0,     0,     0,
    2256        0,     0,     0,     0,   408,     0,     0,   359,     0,     0,
    2257        0,  1027,     0,     0,     0,     0,     0,     0,  1028,   162,
    2258      207,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2259        0,  1030,     0,  1031,   341,     0,     0,     0,     0,     0,
    2260        0,     0,     0,     0,     0,     0,   408,  1043,     0,   337,
    2261      359,     0,     0,     0,  1047,     0,     0,     0,     0,     0,
    2262        0,     0,     0,     0,     0,     0,  1089,     0,     0,  1090,
    2263        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2264        0,     0,     0,     0,     0,     0,     0,   591,     0,     0,
    2265        0,     0,     0,     0,   408,   408,     0,     0,     0,     0,
    2266        0,     0,     0,     0,     0,     0,     0,     0,     0,   773,
    2267        0,   980,     0,   820,   359,     0,   359,   985,   207,     0,
    2268        0,     0,     0,     0,   994,   615,     0,   615,   615,     0,
    2269        0,     0,     0,     0,   615,     0,     0,   509,   510,   513,
    2270        0,     0,     0,     0,   859,   359,   516,   517,     0,     0,
    2271      359,   510,   510,     0,     0,     0,     0,     0,     0,   359,
    2272      359,   359,     0,   510,     0,     0,     0,  1010,  1011,     0,
    2273      341,     0,     0,     0,  1152,     0,     0,   359,     0,     0,
    2274        0,     0,   408,   902,     0,   341,   408,   905,     0,     0,
    2275        0,     0,     0,   907,     0,     0,     0,     0,     0,   510,
    2276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277        0,   337,   359,   408,     0,   408,     0,     0,     0,   408,
    2278        0,     0,     0,     0,     0,  1041,     0,     0,     0,   377,
    2279        0,   527,     0,     0,     0,   510,     0,     0,     0,     0,
    2280     1220,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2281        0,   359,   615,     8,     9,    10,    11,    12,    13,    14,
    2282       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2283     1233,     0,    25,    26,    27,  1235,     0,     0,     0,     0,
    2284       30,   448,     0,  1239,     0,     0,   337,   359,     0,     0,
    2285        0,   408,   408,     0,     0,     0,     0,     0,     0,     0,
    2286        0,     0,     0,     0,     0,   317,     0,     0,    33,     0,
    2287        0,     0,     0,  1264,     0,    37,    38,     0,     0,     0,
    2288     1130,  1131,     0,     0,     0,  1272,     0,   377,  1273,     0,
    2289     1274,     0,   408,   985,     0,     0,  1140,     0,   760,     0,
    2290        0,   359,     0,     0,  1283,  1284,     0,   820,   359,     0,
    2291        0,   449,   615,     0,   615,   703,     0,  1156,     0,   109,
    2292        0,     0,     0,     0,   615,     0,  1297,     0,  1171,     0,
     2170       0,     0,   289,     0,   725,     0,     0,     0,     0,     0,
     2171     728,     0,     0,     0,     0,   466,   290,     0,   374,     0,
     2172       0,     0,     0,     0,     0,   292,  1163,   294,   295,   296,
     2173     297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2174     364,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2175       0,   764,     0,     0,   509,   510,   513,     0,     0,     0,
     2176     207,     0,     0,   516,   517,     0,     0,   779,   510,   510,
     2177       0,     0,     0,     0,   207,     0,     0,     0,     0,     0,
     2178     510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2179       0,     0,     0,   456,   499,     0,     0,     0,     0,     0,
     2180       0,     0,     0,   805,   337,   359,     0,     0,     0,     0,
     2181       0,     0,   815,     0,     0,     0,   510,     0,     0,   818,
     2182       0,     0,     0,   456,   825,     0,     0,     0,     0,     0,
     2183       0,     0,     0,     0,     0,   840,     0,   408,     0,     0,
     2184       0,     0,     0,     0,   408,     0,     0,     0,   162,     0,
     2185       0,     0,   510,   207,     0,     0,     0,     0,     0,     0,
    22932186       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
    2294        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2295      377,     0,  1189,     0,     0,     0,  1321,     0,     0,     0,
    2296        0,     0,     0,     0,     0,     0,     0,   985,   985,   510,
    2297      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
    2298      510,   510,   510,   510,   510,   510,   510,     0,     0,     0,
    2299        0,     0,  1224,     0,     0,     0,     0,   820,     0,     0,
    2300        0,     0,     0,     0,     0,   408,     0,     0,     0,     0,
    2301        0,   408,   510,     0,     0,     0,     0,     0,     0,   408,
    2302        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2303        0,     0,   615,   615,     0,     0,     0,     0,   985,     0,
    2304        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2305        0,     0,     0,  1392,     0,  1393,     0,   879,   359,     0,
    2306        0,     0,     0,     0,   408,     0,     0,     0,  1402,     0,
    2307     1403,     0,  1275,  1276,     0,     0,     0,     0,     0,     0,
    2308        0,     0,   408,  1149,     0,     0,     0,     0,  1410,     0,
    2309        0,     0,   359,     0,     0,     0,     0,     0,   408,  1161,
    2310        0,   615,   615,  1166,  1428,  1430,     0,     0,     0,     0,
    2311      510,     0,     0,   359,   359,     0,     0,  1437,     0,     0,
    2312     1239,     0,   760,     0,     0,   278,     0,   279,     0,     0,
    2313        0,     0,   510,     0,     0,     0,     0,     0,     0,     0,
    2314        0,     0,  1460,     0,     0,   510,     0,     0,     0,     0,
    2315        0,  1467,     0,   280,  1469,   985,  1471,  1473,  1475,   281,
    2316        0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
    2317       40,    41,     0,   287,   288,     0,     0,     0,   820,   408,
    2318     1232,   289,     0,     0,     0,     0,     0,     0,     0,     0,
    2319      510,   615,     0,     0,     0,   290,     0,   374,     0,  1505,
    2320        0,  1507,   772,  1239,   292,   376,   294,   295,   296,   297,
    2321        0,     0,     0,     0,     0,     0,  1384,     0,  1519,     0,
    2322        0,   510,     0,     0,     0,     0,     0,     0,     0,     0,
    2323        0,     0,     0,     0,     0,   359,   510,     0,     0,     0,
    2324        0,     0,     0,     0,     0,     0,     1,     2,   202,     4,
     2187       0,     0,     0,     0,     0,     0,   880,     0,     0,     0,
     2188       0,     0,     0,  -505,     0,   207,     1,     2,     3,     4,
    23252189       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    23262190      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2327        0,     0,    25,    26,    27,    28,     0,     0,    29,   278,
    2328       30,  1050,  1051,     0,  1052,     0,     0,  1053,  1054,  1055,
    2329     1056,  1057,  1058,  1059,  1060,   337,     0,     0,  1061,     0,
    2330        0,     0,  1062,  1063,     0,    32,  1446,   280,    33,     0,
    2331       34,     0,    35,  1064,     0,    37,    38,   282,   359,     0,
    2332      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2333        0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2334        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2335        0,  1065,     0,     0,   167,   278,     0,   279,   292,   293,
    2336      294,   295,   296,   297,     0,     0,   359,   359,  1066,     0,
    2337        0,     0,  -128,     0,     0,     0,     0,     0,     0,     0,
    2338        0,     0,     0,   280,     0,     0,     0,   510,  1511,   642,
    2339        0,   136,   137,   282,     0,     0,   283,   643,   285,   286,
    2340       40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
    2341        0,   289,     0,     0,     0,     0,   510,     0,     0,     0,
    2342        0,     0,     0,     0,     0,   290,     0,   644,   510,   645,
    2343      375,     0,     0,     0,   292,   376,   294,   295,   296,   297,
    2344      317,     0,     0,     0,     1,     2,   202,     4,     5,     6,
     2191       0,   825,    25,    26,    27,    28,   408,     0,    29,     0,
     2192      30,    31,     0,     0,     0,     0,     0,     0,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2194      32,     0,     0,    33,     0,    34,     0,    35,    36,     0,
     2195      37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
     2196      41,     0,     0,     0,     0,     0,   247,     0,     0,     0,
     2197       0,   408,   207,     0,     0,     0,   958,   959,     0,   408,
     2198     582,     0,   408,   585,    42,     0,    43,     0,     0,   975,
     2199       0,     0,   359,     0,    44,     0,   615,     0,   207,     0,
     2200       0,     0,     0,     0,     0,     0,   990,     0,   991,     0,
     2201       0,     0,   995,     0,     0,   633,     0,     0,   337,     0,
     2202       0,     0,     0,     0,     0,   207,   510,   510,   510,   510,
     2203     510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
     2204     510,   510,   510,   510,   408,     0,     0,     0,   408,   278,
     2205       0,   279,     0,     0,     0,     0,   207,     0,     0,     0,
     2206       0,     0,     0,     0,     0,     0,     0,   207,     0,   510,
     2207       0,     0,   280,     0,     0,     0,     0,  1027,   642,   359,
     2208     136,   137,   282,     0,  1028,   283,   643,   285,   286,    40,
     2209      41,     0,   287,   288,     0,     0,     0,  1030,     0,  1031,
     2210     289,     0,   408,     0,     0,     0,     0,     0,     0,     0,
     2211       0,     0,     0,  1043,   290,     0,   644,     0,   645,   375,
     2212    1047,     0,     0,   292,   376,   294,   295,   296,   297,     0,
     2213       0,     0,  1083,   408,     0,  1084,   359,     0,     0,     0,
     2214       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
     2215       0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,     0,     0,     0,   510,     0,     0,
     2217       0,     0,     0,     0,     0,   408,     0,     0,   337,   359,
     2218       0,     0,     0,     0,     0,     0,     0,     0,     0,   510,
     2219       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2220     317,     0,   510,     0,     0,     0,     0,     0,     0,     0,
     2221     341,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2222       0,     0,   377,   408,   408,     0,     0,     0,     0,     0,
     2223       0,     0,   207,     0,     0,     0,     0,     0,     0,     0,
     2224    1146,     0,   820,   359,     0,   359,     0,   510,     0,     0,
     2225       0,     0,     0,     0,   615,     0,   615,   615,     0,     0,
     2226       0,     0,     0,   615,     0,     0,     0,     0,     0,     0,
     2227       0,     0,     0,   859,   359,     0,     0,     0,   510,   359,
     2228       0,     0,     0,     0,     0,     0,     0,     0,   359,   359,
     2229     359,     0,   317,   510,     0,   527,     0,     0,     0,     0,
     2230       0,  1210,     0,     0,     0,     0,   359,     0,     0,     0,
     2231       0,   408,   902,     0,     0,   408,   905,   480,     0,     0,
     2232       0,     0,   907,     0,     0,     0,   207,     0,     0,     0,
     2233    1223,     0,     0,     0,     0,  1225,     0,     0,     0,     0,
     2234     337,   359,   408,  1229,   408,     0,     0,     0,   408,   201,
     2235       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2236      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2237      22,    23,    24,  1254,     0,    25,    26,    27,     0,     0,
     2238     359,   615,     0,    30,     0,  1262,     0,     0,  1263,     0,
     2239    1264,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2240       0,     0,     0,     0,  1273,  1274,    33,     0,    34,     0,
     2241      35,     0,     0,   203,    38,   337,   359,     0,     0,     0,
     2242     408,   408,     0,     0,     0,     0,  1287,     0,     0,     0,
     2243       0,     0,   377,     0,     0,     0,     0,     0,     0,     0,
     2244       0,     0,     0,     0,   510,     0,     0,     0,     0,   204,
     2245       0,     0,  1306,     0,     0,     0,     0,   267,     0,     0,
     2246       0,   408,     0,     0,     0,     0,     0,     0,     0,     0,
     2247     359,     0,     0,   510,     0,     0,   820,   359,     0,     0,
     2248       0,   615,     0,   615,     0,   510,     0,     0,     0,     0,
     2249       0,     0,     0,   615,     0,     0,     0,     8,     9,    10,
     2250      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2251      21,    22,    23,    24,  -285,     0,    25,    26,    27,     0,
     2252       0,     0,     0,     0,    30,     0,   510,     0,     0,     0,
     2253       0,     0,     0,   727,     0,     0,     0,     0,     0,     0,
     2254       0,     0,     0,     0,  1372,     0,  1373,    33,     0,     0,
     2255       0,     0,    36,     0,   332,   333,    39,   207,  -285,  1382,
     2256       0,  1383,     0,    40,    41,     0,   820,     0,     0,     0,
     2257       0,   760,     0,     0,   408,     0,     0,     0,     0,  1390,
     2258     408,     0,     0,     0,   773,     0,     0,     0,   408,     0,
     2259     334,   760,     0,     0,     0,  1408,   510,     0,   109,     0,
     2260       0,   615,   615,  1411,   782,   783,  1229,     0,     8,     9,
     2261      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2262      20,    21,    22,    23,    24,  -286,   804,   359,  1434,     0,
     2263       0,     0,     0,   408,     0,    30,   813,  1441,     0,   510,
     2264    1443,  1445,     0,   341,     0,     0,     0,     0,   773,     0,
     2265       0,   408,  1143,   510,   510,     0,     0,     0,    33,     0,
     2266       0,   359,     0,     0,     0,     0,     0,   408,  1155,  -286,
     2267     615,   615,  1160,     0,     0,     0,     0,  1473,     0,  1229,
     2268       0,     0,   359,   359,     0,     0,     0,     0,     0,     0,
     2269       0,     0,     0,     0,  1485,     0,     0,     0,   879,     0,
     2270       0,     0,     0,     0,     0,     0,   377,     2,   202,     4,
     2271       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2272      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2273       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2274      30,   820,   408,  1222,     0,     0,   341,     0,     0,     0,
     2275       0,     0,     0,     0,   615,     0,     0,     0,     0,     0,
     2276       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2277     203,    38,     0,     1,     2,     3,     4,     5,     6,     7,
     2278       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2279      18,    19,    20,    21,    22,    23,    24,     0,   359,    25,
     2280      26,    27,    28,     0,     0,    29,   266,    30,    31,     0,
     2281       0,     0,     0,     0,   622,     0,     0,     0,     0,     0,
     2282       0,   773,     0,   980,     0,     0,     0,    32,     0,   985,
     2283      33,     0,    34,     0,    35,    36,   994,    37,    38,    39,
     2284       0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
     2285       0,     0,     0,   510,     0,     0,     0,     0,   337,     0,
     2286       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2287     510,    42,     0,    43,     0,     0,     0,   359,     0,  1010,
     2288    1011,    44,   341,     0,     0,     0,     0,     0,     0,     0,
     2289       0,     0,     0,     0,     0,     0,     0,   341,     0,     0,
     2290       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2291      18,    19,    20,    21,    22,    23,    24,     0,     0,     0,
     2292       0,     0,     0,     0,     0,   359,   359,    30,     0,     0,
     2293       0,     0,     0,   510,   510,     0,     0,  1041,     0,     0,
     2294       0,   377,     0,     0,     0,     0,     0,     0,     0,     0,
     2295      33,     0,     0,     0,     1,     2,   202,     4,     5,     6,
    23452296       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2346       17,    18,    19,    20,    21,    22,    23,    24,     0,   510,
    2347       25,    26,    27,    28,     0,     0,    29,   278,    30,   279,
     2297      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2298      25,    26,    27,    28,     0,     0,    29,   278,    30,  1050,
     2299    1051,     0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,
     2300    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2301     280,    33,     0,    34,     0,    35,   642,   317,    37,    38,
     2302     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2303     287,   288,  1124,  1125,     0,     0,     0,     0,   289,   377,
     2304       0,     0,   359,     0,     0,   985,     0,     0,  1134,     0,
     2305     760,     0,   290,     0,  1063,     0,   278,   167,   279,     0,
     2306       0,   292,   293,   294,   295,   296,   297,     0,     0,  1150,
     2307       0,     0,     0,     0,     0,  -126,     0,     0,     0,   280,
     2308    1165,     0,     0,     0,     0,   281,     0,     0,     0,   282,
     2309       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2310     288,     0,   377,     0,  1183,     0,     0,   289,     0,     0,
     2311       0,     0,     0,     0,     0,     0,     0,     0,     0,  1205,
     2312       0,   290,   408,   374,     0,     0,   375,     0,     0,     0,
     2313     292,   376,   294,   295,   296,   297,     0,   278,  1214,   279,
     2314    1051,     0,  1052,   408,   408,  1053,  1054,  1055,  1056,  1057,
     2315    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2316     280,     0,     0,     0,     0,   408,   642,     0,     0,     0,
     2317     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2318     287,   288,     0,     0,   985,     0,     0,     0,   289,     0,
    23482319       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2349        0,     0,     0,   359,     0,     0,     0,     0,     0,     0,
    2350        0,     0,     0,     0,     0,   280,    33,     0,    34,     0,
    2351       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2352      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2353        0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
    2354        0,     0,     0,     0,     0,   510,     0,   290,   278,  1065,
    2355      279,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2356      296,   297,     0,     0,     0,     0,     0,     0,     0,     0,
    2357     -128,     0,     0,     0,     0,     0,   280,     0,     0,     0,
    2358        0,     0,   281,   408,     0,     0,   282,     0,   510,   283,
    2359      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2360        0,     0,   510,   510,   289,     0,     0,     0,   408,   408,
    2361        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2362      374,     0,     0,   982,     0,     0,     0,   292,   376,   294,
    2363      295,   296,   297,   408,     1,     2,   202,     4,     5,     6,
     2320       0,     0,   290,   879,   374,     0,     0,   167,     0,     0,
     2321       0,   292,   376,   294,   295,   296,   297,     0,  1265,  1266,
     2322       0,     0,     1,     2,   202,     4,     5,     6,     7,     8,
     2323       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2324      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2325      27,    28,     0,     0,    29,   278,    30,   279,     0,     0,
     2326       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2327       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2328       0,    34,     0,    35,   281,     0,    37,    38,   282,     0,
     2329       0,   283,   284,   285,   286,    40,    41,   985,   287,   288,
     2330       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2331       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2332     290,     0,  1063,     0,     0,     0,     0,     0,     0,   292,
     2333     293,   294,   295,   296,   297,     0,     0,     0,     0,     0,
     2334       0,     0,     0,  -126,     1,     2,   202,     4,     5,     6,
    23642335       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23652336      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    23662337      25,    26,    27,    28,     0,     0,    29,   278,    30,   279,
    2367        0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2368       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2369        0,    25,    26,    27,     0,   280,    33,     0,    34,    30,
    2370       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2371      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2372        0,     0,     0,   289,     0,     0,     0,    33,     0,     0,
    2373        0,     0,     0,     0,   203,    38,     0,   290,     0,    43,
    2374        0,     0,     0,     0,     0,     0,   292,   293,   294,   295,
    2375      296,   297,     0,     0,     2,   202,     4,     5,     6,     7,
    2376        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2377       18,    19,    20,    21,    22,    23,    24,     0,   267,    25,
    2378       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
    2379        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2380       17,    18,    19,    20,    21,    22,    23,    24,  -296,     0,
    2381        0,     0,     0,     0,   280,    33,   510,    34,    30,    35,
     2338       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2339       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2340     280,    33,     0,    34,     0,    35,   281,     0,    37,    38,
     2341     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2342     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2343       0,     0,     0,     0,     0,     0,     0,     0,  1420,     0,
     2344       0,     0,   290,     0,    43,     0,     0,     0,     0,     0,
     2345       0,   292,   293,   294,   295,   296,   297,     2,   202,     4,
     2346       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2347      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2348       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2349      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
     2350       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2351    1477,     0,   280,    33,     0,    34,     0,    35,   281,     0,
     2352      37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2353      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2354     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2355       0,     0,     0,     0,   290,   317,   339,     0,     0,     0,
     2356       0,   772,     0,   292,   340,   294,   295,   296,   297,     2,
     2357     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2358      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2359      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2360       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2361       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2362       0,     0,     0,     0,   280,    33,     0,    34,     0,    35,
    23822363     281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
    2383      286,    40,    41,   510,   287,   288,     0,     0,     0,     0,
    2384        0,     0,   289,     0,     0,     0,    33,     0,     0,     0,
    2385        0,     0,     0,     0,     0,     0,   290,  -296,   339,     0,
     2364     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2365       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2366       0,     0,     0,     0,     0,     0,   290,     0,   921,     0,
    23862367       0,     0,     0,   772,     0,   292,   340,   294,   295,   296,
    23872368     297,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    23882369      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    23892370      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2390        0,     0,     0,   278,    30,   279,   510,   510,     8,     9,
    2391       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2392       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2393        0,   280,    33,     0,    34,    30,    35,   281,     0,    37,
    2394       38,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2395        0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
    2396        0,     0,     0,    33,     0,     0,     0,     0,   108,     0,
    2397       37,    38,     0,   290,     0,   921,     0,     0,     0,     0,
    2398      772,     0,   292,   340,   294,   295,   296,   297,     2,   202,
    2399        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2400       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2401       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2402      278,    30,   279,     8,     9,    10,    11,    12,    13,    14,
     2371       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2372       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2373       0,     0,     0,     0,     0,     0,   280,    33,     0,    34,
     2374       0,    35,   281,     0,    37,    38,   282,     0,     0,   283,
     2375     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2376       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2377       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2378     921,     0,     0,     0,     0,   772,     0,   292,   593,   294,
     2379     295,   296,   297,     2,   202,     4,     5,     6,     7,     8,
     2380       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2381      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2382      27,     0,     0,     0,     0,   278,    30,   279,     0,     0,
     2383       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2384       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2385       0,    34,     0,    35,   281,     0,    37,    38,   282,     0,
     2386       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2387       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2388       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2389     290,     0,   339,     0,     0,     0,     0,     0,     0,   292,
     2390     340,   294,   295,   296,   297,     2,   202,     4,     5,     6,
     2391       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2392      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2393      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
     2394       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2395       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2396     280,    33,     0,    34,     0,    35,   281,     0,    37,    38,
     2397     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2398     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2399       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2400       0,     0,   290,     0,   921,     0,     0,     0,     0,     0,
     2401       0,   292,   340,   294,   295,   296,   297,     2,   202,     4,
     2402       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    24032403      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2404        0,     0,    25,    26,    27,     0,     0,     0,   280,    33,
    2405       30,    34,     0,    35,   281,     0,    37,    38,   282,     0,
    2406        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2407        0,     0,     0,     0,     0,     0,   289,     0,    33,     0,
    2408        0,     0,     0,     0,     0,   203,    38,     0,     0,     0,
    2409      290,     0,   921,     0,     0,     0,     0,   772,     0,   292,
    2410      593,   294,   295,   296,   297,     2,   202,     4,     5,     6,
    2411        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2412       17,    18,    19,    20,    21,    22,    23,    24,     0,   622,
    2413       25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2414        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2415       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2416       26,    27,   487,   488,   489,   280,    33,    30,    34,     0,
    2417       35,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2418      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2419        0,     0,     0,   289,     0,    33,     0,     0,     0,     0,
    2420        0,     0,    37,    38,     0,     0,     0,   290,     0,   339,
    2421        0,     0,     0,     0,     0,     0,   292,   340,   294,   295,
    2422      296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
    2423       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2424       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2425        0,     0,     0,     0,   278,    30,   279,     8,     9,    10,
    2426       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2427       21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2428        0,     0,   280,    33,    30,    34,     0,    35,   281,     0,
    2429       37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2404       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2405      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
     2406       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2407       0,     0,   280,    33,     0,    34,     0,    35,   281,     0,
     2408     203,    38,   282,     0,     0,   283,   284,   285,   286,    40,
    24302409      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2431      289,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2432       38,     0,     0,     0,   290,     0,   921,     0,     0,     0,
    2433        0,     0,     0,   292,   340,   294,   295,   296,   297,     2,
     2410     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2411       0,     0,     0,     0,   290,     0,  1008,     0,     0,     0,
     2412       0,     0,     0,   292,  1009,   294,   295,   296,   297,     2,
    24342413     202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    24352414      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    24362415      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2437        0,   278,    30,   279,     8,     9,    10,    11,    12,    13,
    2438       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2439       24,     0,     0,    25,    26,    27,     0,     0,     0,   280,
    2440       33,    30,    34,     0,    35,   281,     0,   203,    38,   282,
    2441        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2442      288,     0,     0,     0,     0,     0,     0,   289,     0,    33,
    2443        0,     0,     0,     0,     0,     0,   203,    38,     0,     0,
    2444        0,   290,     0,  1008,     0,     0,     0,     0,     0,     0,
    2445      292,  1009,   294,   295,   296,   297,     2,   202,     4,     5,
    2446        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2447       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2448        0,    25,    26,    27,     0,     0,     0,     0,   278,    30,
    2449      279,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2416       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
    24502417       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2451        0,     0,     0,     0,     0,     0,   280,    33,     0,    34,
    2452        0,    35,   281,     0,   203,    38,   282,     0,     0,   283,
    2453      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2454        0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
    2455        0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
    2456      374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
    2457      295,   296,   297,  -515,     0,     0,     1,     2,     3,     4,
    2458        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2459       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2460        0,     0,    25,    26,    27,    28,     0,     0,    29,     0,
    2461       30,    31,     0,     0,     0,     0,     0,     0,     0,     0,
     2418       0,     0,     0,     0,   280,    33,     0,    34,     0,    35,
     2419     281,     0,   203,    38,   282,     0,     0,   283,   284,   285,
     2420     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2421       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
     2422       0,     0,     0,     0,     0,     0,   290,     0,   374,     0,
     2423       0,     0,     0,     0,     0,   292,   376,   294,   295,   296,
     2424     297,     1,     2,     3,     4,     5,     6,     7,     8,     9,
     2425      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2426      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
     2427      28,     0,     0,    29,     0,    30,    31,     0,     0,     0,
    24622428       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24632429       0,     0,     0,     0,     0,    32,     0,     0,    33,     0,
     
    24662432       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24672433       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    2468        0,    43,     0,     0,     0,     0,     0,     0,     0,    44,
    2469        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2434       0,    43,     0,     0,     0,  -509,     0,     0,     0,    44,
     2435       1,     2,   202,     4,     5,     6,     7,     8,     9,    10,
    24702436      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2471       21,    22,    23,    24,     0,     0,    25,    26,    27,    28,
    2472        0,     0,    29,     0,    30,    31,     0,     0,     0,     0,
     2437      21,    22,    23,    24,  -285,     0,    25,    26,    27,    28,
     2438       0,     0,    29,     0,    30,     0,     0,     0,     0,     0,
    24732439       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2474        0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
    2475        0,     0,    33,     0,    34,     0,    35,    36,     0,    37,
    2476       38,    39,     0,     0,     0,     0,     0,     0,    40,    41,
     2440       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2441       0,    35,     0,     0,    37,    38,     0,     0,  -285,     1,
     2442       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2443      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2444      22,    23,    24,     0,     0,    25,    26,    27,    28,     0,
     2445      43,    29,     0,    30,     0,     0,     0,     0,   109,     0,
     2446       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2447       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2448      35,     0,     0,    37,    38,     2,   202,     4,     5,     6,
     2449       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2450      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2451      25,    26,    27,     0,     0,     0,     0,     0,    30,    43,
     2452       0,     0,     0,     0,     0,     0,     0,   109,     0,     0,
     2453       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2454       0,    33,     0,    34,     0,    35,    36,     0,   203,    38,
     2455      39,     0,     0,     0,     0,     0,     0,    40,    41,     0,
    24772456       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24782457       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2479        0,     0,     0,    42,     0,    43,     0,     0,     0,  -519,
    2480        0,     0,     0,    44,     1,     2,     3,     4,     5,     6,
    2481        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2482       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2483       25,    26,    27,    28,     0,     0,    29,     0,    30,    31,
     2458       0,     0,    42,     0,   204,     0,     0,     0,     0,     0,
     2459       0,     0,   205,     2,   202,     4,     5,     6,     7,     8,
     2460       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2461      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2462      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    24842463       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2485        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2486        0,     0,     0,    32,     0,     0,    33,     0,    34,     0,
    2487       35,    36,     0,    37,    38,    39,     0,     0,     0,     0,
    2488        0,     0,    40,    41,     0,     0,     0,     0,     0,     0,
    2489        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2490        0,     0,     0,     0,     0,     0,     0,    42,     0,    43,
    2491        0,     0,     0,     0,     0,     0,     0,    44,   201,     2,
    2492      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2493       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2494       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2495        0,     0,    30,     0,     0,     0,     0,     0,     0,     0,
    2496        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2498       33,     0,    34,     0,    35,    36,     0,   203,    38,    39,
    2499        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2502        0,    42,     0,   204,     0,     0,     0,     0,     0,     0,
    2503        0,   205,     1,     2,   202,     4,     5,     6,     7,     8,
    2504        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2505       19,    20,    21,    22,    23,    24,  -295,     0,    25,    26,
    2506       27,    28,     0,     0,    29,     0,    30,     0,     0,     0,
    2507        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2509        0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
    2510        0,    37,    38,     0,     0,  -295,     1,     2,   202,     4,
    2511        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2512       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2513        0,     0,    25,    26,    27,    28,     0,    43,    29,     0,
    2514       30,     0,     0,     0,     0,   109,     0,     0,     0,     0,
    2515        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2516        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2517       34,     0,    35,     0,     0,    37,    38,     0,   201,     2,
    2518      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2519       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2520       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2521        0,    43,    30,     0,     0,     0,     0,     0,     0,   109,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524       33,     0,    34,     0,    35,     0,     0,   203,    38,     2,
    2525      202,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2526       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2527       23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
    2528        0,     0,    30,   204,     0,     0,     0,     0,     0,     0,
    2529        0,   267,     0,     0,     0,     0,     0,     0,     0,     0,
    2530        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2531       33,     0,    34,     0,    35,    36,     0,   203,    38,    39,
    2532        0,     0,     0,     0,     0,     0,    40,    41,     0,     0,
    2533        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2535        0,    42,     0,   204,     0,     0,     0,     0,     0,     0,
    2536        0,   205,     2,   202,     4,     5,     6,     7,     8,     9,
    2537       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2538       20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2539        0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    2540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2542        0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
    2543       37,    38,     0,     0,     2,   202,     4,     5,     6,     7,
    2544        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2545       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2546       26,    27,     0,     0,     0,  -400,   679,    30,     0,     0,
    2547        0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
    2548        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,     0,     0,    33,     0,    34,     0,    35,
    2550        0,     0,    37,    38,     0,     0,     0,     0,     0,     0,
    2551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2552        0,     0,     0,     0,  1363,     0,     0,     0,     0,     0,
    2553        0,     0,     0,     0,     0,     0,     0,     0,   679,     0,
    2554        0,     0,     0,     0,     0,     0,   627,     2,   202,     4,
    2555        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2556       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2557        0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2558       30,     0,     0,     0,     0,     0,     8,     9,    10,    11,
    2559       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2560       22,    23,    24,  -295,     0,    25,    26,    27,    33,     0,
    2561       34,     0,    35,    30,     0,    37,    38,     0,     0,     0,
    2562        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2563        0,     0,     0,     0,     0,     0,     0,  1365,     0,     0,
    2564        0,    33,     0,     0,     0,     0,    36,     0,   332,   333,
    2565       39,   679,  -295,     0,     0,     0,     0,    40,    41,   627,
    2566        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2567       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2568       22,    23,    24,     0,   334,    25,    26,    27,     0,     0,
    2569        0,     0,   109,    30,     0,     0,     0,     0,     0,     0,
    2570        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2571        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2572        0,    33,     0,    34,     0,    35,     0,     0,   203,    38,
     2464       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2465       0,    34,     0,    35,     0,     0,    37,    38,     0,     0,
    25732466       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    25742467      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    25752468      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2576        0,     0,     0,    30,   266,     0,     0,     0,     0,     0,
    2577        0,     0,   622,     0,     0,     0,     0,     0,     0,     0,
     2469       0,  -390,   679,    30,     0,     0,     0,     0,     0,     0,
     2470     627,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2471       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2472      35,     0,     0,    37,    38,     0,     0,     0,     0,     0,
    25782473       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2579        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2580        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2581       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2582       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2583        0,     0,     0,    30,   679,     0,     0,     0,     0,     0,
    2584        0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
     2474       0,     0,     0,     0,     0,  1348,     0,     0,     0,     0,
     2475       0,     0,     0,     0,     0,     0,     0,     0,     0,   679,
     2476       0,     0,     0,     0,     0,     0,     0,   627,     2,   202,
     2477       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2478      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2479      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2480       0,    30,     8,     9,    10,    11,    12,    13,    14,    15,
     2481      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2482       0,    25,    26,    27,    33,     0,    34,     0,    35,    30,
     2483       0,    37,    38,     0,     0,     0,     0,     0,     0,     0,
    25852484       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,    33,     0,    34,     0,    35,     0,     0,    37,    38,
    2587        2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
    2588       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2589       22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2590        0,     0,     0,    30,   592,     0,     0,     0,     0,     0,
    2591        0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
     2485       0,     0,    33,  1350,     0,     0,     0,   108,     0,    37,
     2486      38,     0,     0,     0,     0,     0,     0,   679,     0,     0,
     2487       0,     0,     0,     0,     0,   627,     2,   202,     4,     5,
     2488       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2489      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2490       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    25922491       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2593        0,    33,     0,    34,     0,    35,     0,     0,   203,    38,
    2594        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2595       18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
    2596       26,    27,     0,     0,     0,     0,   278,    30,   279,     0,
    2597        0,     0,     0,     0,   204,     0,     0,     0,     0,     0,
    2598        0,     0,   267,     0,     0,     0,     0,     0,     0,     0,
     2492       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2493       0,     0,    33,     0,    34,     0,    35,     0,     0,    37,
     2494      38,     2,   202,     4,     5,     6,     7,     8,     9,    10,
     2495      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2496      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2497       0,     0,     0,     0,    30,   679,     0,     0,     0,     0,
     2498       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
     2499       0,     0,     0,     0,     0,     0,     0,    33,     0,    34,
     2500       0,    35,     0,     0,    37,    38,     2,   202,     4,     5,
     2501       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2502      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2503       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2504     592,     0,     0,     0,     0,     0,     0,     0,   627,     0,
     2505       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2506       0,     0,    33,     0,    34,     0,    35,     0,     0,   203,
     2507      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2508      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2509      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
     2510       0,     0,     0,     0,     0,   204,     0,     0,     0,     0,
     2511       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
     2512     280,    33,     0,     0,     0,     0,   281,     0,    37,    38,
     2513     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2514     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
     2515       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2516       0,     0,   290,     0,   519,     0,     0,   167,     0,     0,
     2517       0,   292,   293,   294,   295,   296,   297,     8,     9,    10,
     2518      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2519      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2520       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2521       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2522       0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
     2523       0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
     2524     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2525       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2526       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2527     592,    -3,     0,     0,     0,     0,     0,   292,   593,   294,
     2528     295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
     2529      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2530       0,     0,    25,    26,    27,     0,     0,     0,     0,   278,
     2531      30,   279,     0,     0,     0,     0,     0,     0,     0,     0,
     2532       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2533       0,     0,   280,    33,     0,     0,     0,     0,   642,     0,
     2534      37,    38,   282,     0,     0,   283,   284,   285,   286,    40,
     2535      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2536     289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2537       0,     0,     0,     0,   290,   -33,   757,     0,     0,     0,
     2538       0,     0,     0,   292,   293,   294,   295,   296,   297,     8,
     2539       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2540      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2541      27,     0,     0,     0,     0,   278,    30,   279,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2543       0,     0,     0,     0,     0,     0,     0,     0,   280,    33,
     2544       0,     0,     0,     0,   281,     0,    37,    38,   282,     0,
     2545       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2546       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2547       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2548     290,     0,   291,     0,     0,     0,     0,     0,     0,   292,
     2549     293,   294,   295,   296,   297,     8,     9,    10,    11,    12,
     2550      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2551      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2552       0,   278,    30,   279,     0,     0,     0,     0,     0,     0,
     2553       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25992554       0,     0,     0,     0,   280,    33,     0,     0,     0,     0,
    26002555     281,     0,    37,    38,   282,     0,     0,   283,   284,   285,
    26012556     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
    26022557       0,     0,   289,     0,     0,     0,     0,     0,     0,     0,
    2603        0,     0,     0,     0,     0,     0,   290,     0,   519,     0,
    2604        0,   167,     0,     0,     0,   292,   293,   294,   295,   296,
     2558       0,     0,     0,     0,     0,     0,   290,     0,   154,     0,
     2559       0,     0,     0,     0,     0,   292,   293,   294,   295,   296,
    26052560     297,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    26062561      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    26072562      25,    26,    27,     0,     0,     0,     0,   278,    30,   279,
    2608        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2609       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2610       25,    26,    27,     0,     0,   280,    33,     0,    30,     0,
    2611        0,   281,     0,    37,    38,   282,     0,     0,   283,   284,
    2612      285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
    2613        0,     0,     0,   289,     0,     0,    33,     0,     0,     0,
    2614        0,    36,     0,   332,   333,    39,     0,   290,     0,   592,
    2615       -3,     0,    40,    41,     0,     0,   292,   593,   294,   295,
    2616      296,   297,     8,     9,    10,    11,    12,    13,    14,    15,
    2617       16,    17,    18,    19,    20,    21,    22,    23,    24,   334,
    2618        0,    25,    26,    27,     0,     0,     0,   109,   278,    30,
    2619      279,     0,     8,     9,    10,    11,    12,    13,    14,    15,
    2620       16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    2621        0,    25,    26,    27,     0,     0,   280,    33,     0,    30,
    2622        0,     0,   642,     0,    37,    38,   282,     0,     0,   283,
    2623      284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
    2624        0,     0,     0,     0,   289,     0,     0,    33,     0,     0,
    2625        0,     0,   108,     0,    37,    38,     0,     0,   290,   -35,
    2626      757,     0,     0,     0,     0,     0,     0,   292,   293,   294,
    2627      295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
    2628       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2629       43,     0,    25,    26,    27,     0,     0,     0,   109,   278,
    2630       30,   279,     0,     8,     9,    10,    11,    12,    13,    14,
    2631       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2632        0,     0,    25,    26,    27,     0,     0,   280,    33,     0,
    2633       30,   448,     0,   281,     0,    37,    38,   282,     0,     0,
    2634      283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    2635        0,     0,     0,     0,     0,   289,     0,     0,    33,     0,
    2636        0,     0,     0,     0,     0,    37,    38,     0,     0,   290,
    2637        0,   291,     0,     0,     0,     0,     0,     0,   292,   293,
    2638      294,   295,   296,   297,     8,     9,    10,    11,    12,    13,
    2639       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2640       24,   449,     0,    25,    26,    27,     0,     0,     0,   109,
    2641      278,    30,   279,     0,     8,     9,    10,    11,    12,    13,
    2642       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2643       24,     0,     0,    25,    26,    27,     0,     0,   280,    33,
    2644        0,    30,     0,     0,   281,     0,    37,    38,   282,     0,
    2645        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2646        0,     0,     0,     0,     0,     0,   289,     0,     0,    33,
    2647        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2648      290,     0,   154,     0,     0,     0,     0,     0,     0,   292,
    2649      293,   294,   295,   296,   297,     8,     9,    10,    11,    12,
    2650       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2651       23,    24,   253,     0,    25,    26,    27,     0,     0,     0,
    2652      109,   278,    30,   279,     0,     8,     9,    10,    11,    12,
    2653       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2654       23,    24,     0,     0,    25,    26,    27,     0,     0,   280,
    2655       33,     0,    30,     0,     0,   281,     0,    37,    38,   282,
    2656        0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
    2657      288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    2658       33,     0,     0,     0,     0,     0,     0,    37,    38,     0,
    2659        0,   290,     0,   592,     0,     0,     0,     0,     0,     0,
    2660      292,   593,   294,   295,   296,   297,     8,     9,    10,    11,
    2661       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2662       22,    23,    24,   154,     0,    25,    26,    27,     0,     0,
    2663        0,   109,   278,    30,   279,     0,     0,     0,     0,     0,
    26642563       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26652564       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     
    26682567     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    26692568       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2670        0,     0,   290,     0,   374,     0,     0,     0,     0,     0,
    2671        0,   292,   376,   294,   295,   296,   297,   469,     2,   202,
    2672        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2569       0,     0,   290,     0,   592,     0,     0,     0,     0,     0,
     2570       0,   292,   593,   294,   295,   296,   297,     8,     9,    10,
     2571      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2572      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2573       0,     0,     0,   278,    30,   279,     0,     0,     0,     0,
     2574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2575       0,     0,     0,     0,     0,     0,   280,    33,     0,     0,
     2576       0,     0,   281,     0,    37,    38,   282,     0,     0,   283,
     2577     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2578       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2579       0,     0,     0,     0,     0,     0,     0,     0,   290,     0,
     2580     374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
     2581     295,   296,   297,     8,     9,    10,    11,    12,    13,    14,
     2582      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2583    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2584      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2585       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2586       0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
     2587     332,   333,    39,     0,  -285,     0,     0,     0,     0,    40,
     2588      41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2589      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2590      25,    26,    27,     0,   636,     0,   334,     0,    30,     0,
     2591       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
     2592       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2593       0,    33,     0,     0,     0,     0,    36,     0,    37,    38,
     2594      39,     0,     0,     0,     0,     0,     0,    40,    41,     8,
     2595       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2596      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2597      27,     0,    42,     0,   154,     0,    30,     0,     0,     0,
     2598       0,     0,    44,     0,     0,     0,     0,     0,     0,     0,
     2599       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     2600       0,     0,     0,     0,    36,     0,    37,    38,    39,     0,
     2601       0,     0,     0,     0,     0,    40,    41,     8,     9,    10,
     2602      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     2603      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
     2604      42,     0,    43,     0,    30,     0,     0,     0,     0,     0,
     2605      44,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2606       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2607       0,     0,    36,     0,   203,    38,    39,     0,     0,     0,
     2608       0,     0,     0,    40,    41,     8,     9,    10,    11,    12,
     2609      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2610      23,    24,     0,     0,    25,    26,    27,     0,    42,     0,
     2611     266,     0,    30,     0,     0,     0,     0,     0,   205,     0,
     2612       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2613       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2614      36,     0,   332,   333,    39,     0,     0,     0,     0,     0,
     2615       0,    40,    41,     8,     9,    10,    11,    12,    13,    14,
     2616      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2617       0,     0,    25,    26,    27,     0,   636,     0,   334,     0,
     2618      30,     0,     0,     0,     0,     0,   627,     0,     0,     0,
     2619       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2620       0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
     2621     332,   333,    39,     0,     0,     0,     0,     0,     0,    40,
     2622      41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2623      17,    18,    19,    20,    21,    22,    23,    24,  -285,     0,
     2624      25,    26,    27,     0,     0,     0,   334,     0,    30,     0,
     2625       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2626       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2627       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2628       0,     0,  -285,     8,     9,    10,    11,    12,    13,    14,
     2629      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2630    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2631      30,     0,   636,     0,   334,     0,     0,     0,     0,     0,
     2632       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2633       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2634      37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
     2635      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2636      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2637       0,     0,    30,   448,   636,     0,   334,     0,     0,     0,
     2638       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
     2639       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2640       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
    26732641      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    26742642      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2675        0,    30,     0,     0,     0,     8,     9,    10,    11,    12,
     2643       0,    30,   448,     0,     0,     0,     0,     0,   449,     0,
     2644       0,     0,   703,     0,     0,     0,   109,     0,     0,     0,
     2645       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2646       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2647      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2648    -285,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2649      30,     0,     0,     0,     0,     0,     0,   449,     0,     0,
     2650       0,   937,     0,     0,     0,   109,     0,     0,     0,     0,
     2651       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2652      37,    38,     0,     0,  -285,     8,     9,    10,    11,    12,
    26762653      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2677       23,    24,     0,     0,    25,    26,    27,     0,     0,    33,
    2678        0,    34,    30,    35,     0,     0,    37,    38,     0,     0,
    2679        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2680        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2681       33,     0,     0,     0,     0,    36,     0,    37,    38,    39,
    2682        0,     0,     0,     0,     0,    -3,    40,    41,     8,     9,
     2654      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2655       0,     0,    30,   448,     0,     0,   334,     0,     0,     0,
     2656       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2657       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2658       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2659      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2660      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2661       0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
     2662       0,     0,  1219,     0,     0,     0,   109,     0,     0,     0,
     2663       0,     0,     0,     0,    33,     0,     0,     0,     0,   108,
     2664       0,    37,    38,     8,     9,    10,    11,    12,    13,    14,
     2665      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2666       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
     2667      30,   448,     0,     0,     0,     0,     0,    43,     0,     0,
     2668       0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
     2669       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2670      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
     2671      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2672       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2673       0,     0,     0,     0,     0,     0,   449,     0,     0,     0,
     2674       0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
     2675       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2676      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2677      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2678      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2679       0,     0,     0,   636,     0,   334,     0,     0,     0,     0,
     2680       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
     2681       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2682       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2683      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2684      26,    27,     0,     0,     0,     0,     0,    30,     0,     0,
     2685       0,     0,   636,     0,   334,     0,     0,     0,     0,     0,
     2686       0,     0,   627,     0,     0,     0,     0,     0,     0,     0,
     2687      33,     0,     0,     0,     0,     0,     0,    37,    38,     8,
     2688       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2689      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2690      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
     2691       0,     0,     0,   253,     0,     0,     0,     0,     0,     0,
     2692       0,   109,     0,     0,     0,     0,     0,     0,     0,    33,
     2693       0,     0,     0,     0,     0,     0,    37,    38,     8,     9,
    26832694      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    26842695      20,    21,    22,    23,    24,     0,     0,    25,    26,    27,
    2685        0,    42,     0,   154,     0,    30,     0,     0,     0,     0,
    2686        0,    44,     0,     0,     0,     0,     0,     0,     0,     0,
    2687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2688        0,     0,     0,    33,     0,     0,     0,     0,    36,     0,
    2689       37,    38,    39,     0,     0,     0,     0,     0,     0,    40,
    2690       41,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2691       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2692       25,    26,    27,     0,    42,     0,    43,     0,    30,     0,
    2693        0,     0,     0,     0,    44,     0,     0,     0,     0,     0,
    2694        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2695        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2696        0,    36,     0,   203,    38,    39,     0,     0,     0,     0,
    2697        0,     0,    40,    41,     8,     9,    10,    11,    12,    13,
    2698       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2699       24,     0,     0,    25,    26,    27,     0,    42,     0,   266,
    2700        0,    30,     0,     0,     0,     0,     0,   205,     0,     0,
    2701        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2702        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2703        0,     0,     0,     0,    36,     0,   332,   333,    39,     0,
    2704        0,     0,     0,     0,     0,    40,    41,     8,     9,    10,
    2705       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2706       21,    22,    23,    24,  -295,     0,    25,    26,    27,     0,
    2707      636,     0,   334,     0,    30,     0,     0,     0,     0,     0,
    2708      627,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2709       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2710       24,  -295,    33,    25,    26,    27,     0,     0,     0,    37,
    2711       38,    30,     0,  -295,     8,     9,    10,    11,    12,    13,
    2712       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2713       24,     0,     0,    25,    26,    27,     0,     0,     0,    33,
    2714        0,    30,   448,   636,     0,   334,    37,    38,     0,     0,
    2715     -295,     0,     0,   109,     0,     0,     0,     0,     0,     0,
    2716        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2717        0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
    2718      636,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2719      627,     0,     0,     0,     8,     9,    10,    11,    12,    13,
    2720       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2721       24,  -295,   449,    25,    26,    27,   937,     0,     0,     0,
    2722      109,    30,     0,     8,     9,    10,    11,    12,    13,    14,
    2723       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2724        0,     0,    25,    26,    27,     0,     0,     0,     0,    33,
    2725       30,   448,     0,     0,     0,     0,    37,    38,     0,     0,
    2726     -295,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2727       17,    18,    19,    20,    21,    22,    23,    24,    33,     0,
    2728       25,    26,    27,     0,     0,    37,    38,     0,    30,     0,
    2729        0,     0,   334,     0,     0,     0,     0,     0,     0,     0,
    2730      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2731        0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
    2732        0,   449,     0,    37,    38,  1229,     0,     0,     0,   109,
    2733        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2734       17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
    2735       25,    26,    27,     0,     0,     0,     0,   636,    30,   334,
    2736        0,     0,     0,     0,     0,     0,     0,   109,     8,     9,
    2737       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2738       20,    21,    22,    23,    24,     0,    33,    25,    26,    27,
    2739        0,     0,     0,    37,    38,    30,     0,     8,     9,    10,
     2696       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
     2697       0,     0,   154,     0,     0,     0,     0,     0,     0,     0,
     2698     109,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2699       0,     0,     0,     0,     0,   203,    38,     8,     9,    10,
    27402700      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    27412701      21,    22,    23,    24,     0,     0,    25,    26,    27,     0,
    2742        0,     0,     0,    33,    30,     0,     0,   636,     0,   334,
    2743      203,    38,     0,     0,     0,     0,     0,   627,     0,     0,
    2744        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2745        0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
    2746       38,     0,     0,     0,     0,     0,   266,     0,     0,     0,
    2747        0,     0,     0,     0,   267,     0,     0,     8,     9,    10,
    2748       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2749       21,    22,    23,    24,     0,   253,    25,    26,    27,     0,
    2750        0,     0,     0,   627,    30,     0,     8,     9,    10,    11,
     2702       0,     0,     0,     0,    30,     0,     0,     0,     0,     0,
     2703       0,   266,     0,     0,     0,     0,     0,     0,     0,   267,
     2704       0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
     2705       0,     0,     0,     0,    37,    38,     8,     9,    10,    11,
    27512706      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    27522707      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
    2753        0,     0,    33,    30,     0,     0,     0,     0,     0,    37,
    2754       38,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2755       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2756        0,    33,    25,    26,    27,     0,     0,     0,    37,    38,
    2757       30,     0,     0,     0,     0,   334,     0,     0,     0,     0,
    2758        0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
    2759        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2760        0,     0,     0,     0,   449,   203,    38,     0,     0,     0,
    2761        0,     0,   109,     8,     9,    10,    11,    12,    13,    14,
     2708       0,     0,     0,    30,     0,     0,     0,     0,     0,     0,
     2709     253,     0,     0,     0,     0,     0,     0,     0,   627,     0,
     2710       0,     0,     0,     0,     0,     0,    33,     0,     0,     0,
     2711       0,     0,     0,    37,    38,     8,     9,    10,    11,    12,
     2712      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2713      23,    24,     0,     0,    25,    26,    27,     0,     0,     0,
     2714       0,     0,    30,     0,     0,     0,     0,     0,     0,   334,
     2715       0,     0,     0,     0,     0,     0,     0,   627,     0,     0,
     2716       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
     2717       0,     0,    37,    38,     8,     9,    10,    11,    12,    13,
     2718      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2719      24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
     2720       0,    30,     0,     0,     0,     0,     0,     0,   449,     0,
     2721       0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2722       0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
     2723       0,   203,    38,     8,     9,    10,    11,    12,    13,    14,
    27622724      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    27632725       0,     0,    25,    26,    27,     0,     0,     0,     0,     0,
    2764       30,   266,     0,     0,     0,     0,     0,     0,     0,   622,
    2765        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2766       18,    19,    20,    21,    22,    23,    24,     0,    33,    25,
    2767       26,    27,     0,     0,     0,    37,    38,    30,     0,     8,
    2768        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2769       19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
    2770       27,     0,     0,     0,     0,    33,    30,     0,     0,     0,
    2771        0,   592,    37,    38,     0,     0,     0,     0,     0,   627,
     2726      30,     0,     0,     0,     0,     0,     0,   266,     0,     0,
     2727       0,     0,     0,     0,     0,   622,     0,     0,     0,     0,
     2728       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
     2729      37,    38,     8,     9,    10,    11,    12,    13,    14,    15,
     2730      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
     2731       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
     2732       0,     0,     0,     0,     0,     0,   592,     0,     0,     0,
     2733       0,     0,     0,     0,   627,     0,     0,     0,     0,     0,
     2734       0,     0,    33,     0,     0,     0,     0,     0,     0,    37,
     2735      38,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2736      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2737      25,    26,    27,     0,     0,     0,     0,     0,    30,     0,
     2738       0,     0,     0,     0,     0,   334,     0,     0,     0,     0,
     2739       0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
     2740       0,    33,     0,     0,     0,     0,     0,     0,    37,    38,
     2741       2,   202,     4,     5,     6,     7,     8,     9,    10,    11,
     2742      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2743      22,    23,    24,     0,     0,    25,    26,    27,     0,     0,
     2744       0,     0,     0,    30,    43,     0,     0,     0,     0,     0,
     2745       0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
     2746       0,     0,     0,     0,     0,     0,    33,     0,    34,     0,
     2747      35,     0,     0,    37,    38,     0,   278,     0,   279,  1051,
     2748       0,  1052,     0,     0,  1053,  1054,  1055,  1056,  1057,  1058,
     2749    1059,  1060,  1507,  1061,     0,     0,  1062,    32,     0,   280,
     2750       0,     0,     0,     0,     0,   642,     0,     0,  -403,   282,
     2751       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2752     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
    27722753       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,     0,    33,     0,     0,     0,     0,     0,
    2774        0,    37,    38,     0,     0,     0,     0,     0,   334,     0,
    2775        0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
     2754       0,   290,     0,   374,     0,     0,   167,     0,     0,     0,
     2755     292,   376,   294,   295,   296,   297,     0,   278,     0,   279,
     2756    1051,     0,  1052,     0,  -126,  1053,  1054,  1055,  1056,  1057,
     2757    1058,  1059,  1060,     0,  1061,     0,     0,  1062,    32,     0,
     2758     280,     0,     0,     0,     0,     0,   642,     0,     0,     0,
     2759     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
     2760     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    27762761       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2777        0,     0,     0,     0,     0,     0,     0,    43,     0,     0,
    2778        0,     0,     0,     0,     0,   109,     2,   202,     4,     5,
     2762       0,     0,   290,     0,   374,     0,     0,   167,     0,     0,
     2763       0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
     2764       0,     0,     0,     0,     0,  -126,     2,   202,     4,     5,
    27792765       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    27802766      16,    17,    18,    19,    20,    21,    22,    23,    24,     0,
    27812767       0,    25,    26,    27,     0,     0,     0,     0,     0,    30,
    2782        0,     0,   278,     0,   279,  1051,     0,  1052,     0,     0,
    2783     1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,     0,
    2784     1544,  1061,     0,     0,     0,  1062,  1063,    33,    32,    34,
    2785      280,    35,     0,     0,    37,    38,  1064,     0,     0,     0,
     2768       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2769      18,    19,    20,    21,    22,    23,    24,     0,     0,    25,
     2770      26,    27,    33,     0,    34,     0,    35,    30,     0,    37,
     2771      38,     0,   278,     0,   279,  1051,     0,  1052,  1394,  1395,
     2772    1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1507,  1061,
     2773      33,  1307,  1062,    32,     0,   280,     0,    37,    38,     0,
     2774       0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
     2775     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2776       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2777       0,     0,     0,     0,     0,     0,     0,   290,     0,   374,
     2778       0,     0,   167,     0,     0,     0,   292,   376,   294,   295,
     2779     296,   297,   278,     0,   279,  1051,     0,  1052,  1394,  1395,
     2780    1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,     0,  1061,
     2781       0,     0,  1062,    32,     0,   280,     0,     0,     0,     0,
     2782       0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
     2783     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2784       0,     0,     0,   289,     0,     0,     0,     0,     0,   278,
     2785       0,   279,     0,     0,     0,     0,     0,   290,     0,   374,
     2786       0,     0,   167,     0,     0,     0,   292,   376,   294,   295,
     2787     296,   297,   280,     0,     0,     0,     0,     0,   281,     0,
     2788       0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
     2789      41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
     2790     289,     0,     0,     0,     0,     0,   278,     0,   279,     0,
     2791       0,     0,     0,     0,   290,     0,   374,     0,     0,     0,
     2792       0,     0,   802,   292,   376,   294,   295,   296,   297,   280,
     2793       0,     0,     0,     0,     0,   281,     0,     0,     0,   282,
     2794       0,     0,   283,   284,   285,   286,    40,    41,     0,   287,
     2795     288,     0,     0,     0,     0,     0,     0,   289,     0,     0,
     2796       0,     0,     0,   278,     0,   279,     0,     0,     0,     0,
     2797       0,   290,     0,   374,     0,     0,   982,     0,     0,     0,
     2798     292,   376,   294,   295,   296,   297,   280,     0,     0,     0,
     2799       0,     0,   281,     0,     0,     0,   282,     0,     0,   283,
     2800     284,   285,   286,    40,    41,     0,   287,   288,     0,     0,
     2801       0,     0,     0,     0,   289,     0,     0,     0,     0,     0,
     2802     278,     0,   279,     0,     0,     0,     0,     0,   290,     0,
     2803     374,     0,     0,     0,     0,     0,     0,   292,   376,   294,
     2804     295,   296,   297,   280,     0,     0,     0,     0,     0,   281,
     2805       0,     0,     0,   282,     0,     0,   283,   284,   285,   286,
     2806      40,    41,     0,   287,   288,     0,     0,     0,     0,     0,
     2807       0,   289,     0,     0,     0,     0,     0,   278,     0,   279,
     2808       0,     0,     0,     0,     0,   290,     0,   374,     0,     0,
     2809       0,     0,     0,     0,   292,   726,   294,   295,   296,   297,
     2810     280,     0,     0,     0,     0,     0,   642,     0,     0,     0,
    27862811     282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    27872812     287,   288,     0,     0,     0,     0,     0,     0,   289,     0,
    2788        0,     0,     0,     0,     0,     0,     0,     0,     0,  -413,
    2789        0,     0,   290,     0,   374,     0,     0,   167,     0,     0,
    2790        0,   292,   376,   294,   295,   296,   297,     0,     0,     0,
    2791        0,  1066,     0,     0,   278,  -128,   279,  1051,     0,  1052,
    2792        0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2793        0,     0,     0,  1061,     0,     0,     0,  1062,  1063,     0,
    2794       32,     0,   280,     0,     0,     0,     0,     0,  1064,     0,
    2795        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2796       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2797      289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2798        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2799        0,     0,     0,   292,   376,   294,   295,   296,   297,     0,
    2800        0,     0,     0,  1066,     0,     0,     0,  -128,     2,   202,
    2801        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2802       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2803       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2804        0,    30,     0,     0,   278,     0,   279,  1051,     0,  1052,
    2805     1414,  1415,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2806        0,     0,  1544,  1061,     0,     0,     0,  1062,  1063,    33,
    2807       32,    34,   280,    35,     0,     0,    37,    38,  1064,     0,
    2808        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2809       41,     0,   287,   288,     0,     0,     0,     0,  1322,     0,
    2810      289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2811        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2812        0,     0,     0,   292,   376,   294,   295,   296,   297,   278,
    2813        0,   279,  1051,  1066,  1052,  1414,  1415,  1053,  1054,  1055,
    2814     1056,  1057,  1058,  1059,  1060,     0,     0,     0,  1061,     0,
    2815        0,     0,  1062,  1063,     0,    32,     0,   280,     0,     0,
    2816        0,     0,     0,  1064,     0,     0,     0,   282,     0,     0,
     2813       0,     0,     0,     0,   278,     0,   279,     0,     0,     0,
     2814       0,     0,   290,     0,   776,     0,     0,     0,     0,     0,
     2815       0,   292,   376,   294,   295,   296,   297,   280,     0,     0,
     2816       0,     0,     0,   281,     0,     0,     0,   282,     0,     0,
    28172817     283,   284,   285,   286,    40,    41,     0,   287,   288,     0,
    28182818       0,     0,     0,     0,     0,   289,     0,     0,     0,     0,
    2819        0,     0,     0,     0,     0,     0,     0,     0,     0,   290,
    2820        0,   374,     0,     0,   167,     0,     0,     0,   292,   376,
    2821      294,   295,   296,   297,   278,     0,   279,  1051,  1066,  1052,
    2822        0,     0,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
    2823        0,     0,     0,  1061,     0,     0,     0,  1062,  1063,     0,
    2824       32,     0,   280,     0,     0,     0,     0,     0,  1064,     0,
    2825        0,     0,   282,     0,     0,   283,   284,   285,   286,    40,
    2826       41,     0,   287,   288,     0,     0,     0,     0,     0,     0,
    2827      289,   278,     0,   279,     0,     0,     0,     0,     0,     0,
    2828        0,     0,     0,     0,   290,     0,   374,     0,     0,   167,
    2829      278,     0,   279,   292,   376,   294,   295,   296,   297,   280,
    2830        0,     0,     0,  1066,     0,   281,     0,     0,     0,   282,
    2831        0,     0,   283,   284,   285,   286,    40,    41,   280,   287,
    2832      288,     0,     0,     0,   281,     0,     0,   289,   282,     0,
    2833        0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
    2834        0,   290,     0,   374,     0,     0,   289,   278,     0,   279,
    2835      292,   376,   294,   295,   296,   297,     0,     0,     0,     0,
    2836      290,     0,   374,     0,     0,     0,   278,     0,   279,   292,
    2837      726,   294,   295,   296,   297,   280,     0,     0,     0,     0,
    2838        0,   642,     0,     0,     0,   282,     0,     0,   283,   284,
    2839      285,   286,    40,    41,   280,   287,   288,     0,     0,     0,
    2840      281,     0,     0,   289,   282,     0,     0,   283,   284,   285,
    2841      286,    40,    41,     0,   287,   288,     0,   290,     0,   776,
    2842        0,     0,   289,   278,     0,   279,   292,   376,   294,   295,
    2843      296,   297,     0,     0,     0,     0,   290,     0,   374,     0,
    2844        0,     0,   278,     0,   279,   292,   817,   294,   295,   296,
     2819       0,   278,     0,   279,     0,     0,     0,     0,     0,   290,
     2820       0,   374,     0,     0,     0,     0,     0,     0,   292,   817,
     2821     294,   295,   296,   297,   280,     0,     0,     0,     0,     0,
     2822     281,     0,     0,     0,   282,     0,     0,   283,   284,   285,
     2823     286,    40,    41,     0,   287,   288,     0,     0,     0,     0,
     2824       0,     0,   289,     0,     0,     0,     0,     0,   278,     0,
     2825     279,     0,     0,     0,     0,     0,   508,     0,     0,     0,
     2826       0,     0,     0,     0,     0,   292,   376,   294,   295,   296,
    28452827     297,   280,     0,     0,     0,     0,     0,   281,     0,     0,
    28462828       0,   282,     0,     0,   283,   284,   285,   286,    40,    41,
    2847      280,   287,   288,     0,     0,     0,   281,     0,     0,   289,
    2848      282,     0,     0,   283,   284,   285,   286,    40,    41,     0,
    2849      287,   288,     0,   512,     0,     0,     0,     0,   289,     0,
    2850        0,     0,   292,   376,   294,   295,   296,   297,     0,     0,
    2851        0,     0,   515,     0,     0,     0,     0,     0,     0,     0,
    2852        0,   292,   376,   294,   295,   296,   297,     2,   202,     4,
    2853        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2854       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2855        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2856       30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2829       0,   287,   288,     0,     0,     0,     0,     0,     0,   289,
     2830       0,     0,     0,     0,     0,   278,     0,   279,     0,     0,
     2831       0,     0,     0,   290,     0,     0,     0,     0,     0,     0,
     2832       0,     0,   292,   376,   294,   295,   296,   297,   280,     0,
     2833       0,     0,     0,     0,   281,     0,     0,     0,   282,     0,
     2834       0,   283,   284,   285,   286,    40,    41,     0,   287,   288,
     2835       0,     0,     0,     0,     0,     0,   289,     0,     0,     0,
     2836       0,     0,   278,     0,   279,     0,     0,     0,     0,     0,
     2837     512,     0,     0,     0,     0,     0,     0,     0,     0,   292,
     2838     376,   294,   295,   296,   297,   280,     0,     0,     0,     0,
     2839       0,   281,     0,     0,     0,   282,     0,     0,   283,   284,
     2840     285,   286,    40,    41,     0,   287,   288,     0,     0,     0,
     2841       0,     0,     0,   289,     0,     0,     0,     0,     0,     0,
     2842       0,     0,     0,     0,     0,     0,     0,   515,     0,     0,
     2843       0,     0,     0,     0,     0,     0,   292,   376,   294,   295,
     2844     296,   297,     2,   202,     4,     5,     6,     7,     8,     9,
     2845      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2846      20,    21,    22,    23,    24,     0,     0,     0,     0,     0,
     2847       0,     0,     0,     0,     0,    30,     0,     0,     0,     0,
    28572848       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28582849       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     
    28642855      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28652856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2866        0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
    2867       34,     0,    35,     0,     0,   203,    38,   469,     2,   202,
    2868        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2869       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2870       24,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2871        0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
     2857       0,     0,     0,    33,     0,    34,     0,    35,     0,     0,
     2858     203,    38,   469,     2,   202,     4,     5,     6,     7,     8,
     2859       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2860      19,    20,    21,    22,    23,    24,     0,     0,    25,    26,
     2861      27,     0,     0,     0,     0,     0,    30,     0,     0,     0,
    28722862       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28732863       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
     
    28782868       0,    30,     0,     0,     0,     0,     0,     0,     0,     0,
    28792869       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880        0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
    2881        0,    34,     0,    35,     0,     0,   203,    38
     2870       0,     0,     0,     0,    33,     0,    34,     0,    35,     0,
     2871       0,   203,    38,     8,     9,    10,    11,    12,    13,    14,
     2872      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2873       0,     0,    25,    26,    27,   487,   488,   489,     0,     0,
     2874      30,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2875      17,    18,    19,    20,    21,    22,    23,    24,     0,     0,
     2876      25,    26,    27,    33,     0,     0,     0,     0,    30,     0,
     2877      37,    38,     0,     0,     0,     0,     0,     0,     0,     0,
     2878       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2879       0,    33,     0,     0,     0,     0,     0,     0,   203,    38
    28822880};
    28832881
    28842882#define yypact_value_is_default(yystate) \
    2885   ((yystate) == (-1316))
     2883  ((yystate) == (-1318))
    28862884
    28872885#define yytable_value_is_error(yytable_value) \
     
    28902888static const yytype_int16 yycheck[] =
    28912889{
    2892        0,   277,     0,    42,     1,   165,   200,   235,   451,    42,
    2893       42,   181,   751,   181,   690,   215,   182,   344,   181,   690,
    2894      181,   450,   275,   514,     0,     1,   181,     1,   113,   181,
    2895       54,    31,   690,    31,   182,    63,   622,   892,   181,     0,
    2896      672,   494,    42,   457,    44,   498,    44,   995,   648,   602,
    2897     1031,     0,    80,     0,    54,    31,   183,    42,   892,   604,
    2898       60,   602,    60,    63,  1332,    63,    66,   344,    66,    66,
    2899       31,   604,   290,   988,   602,    70,  1030,  1031,   771,    42,
    2900      104,  1050,    31,   107,    31,    42,   114,    63,   572,    44,
    2901       66,   261,   768,   261,   523,  1043,   262,   768,   261,   412,
    2902      261,     0,     0,  1418,   104,   252,   261,   107,    49,   261,
    2903      768,  1414,   197,   113,   262,   715,    63,   106,   261,   432,
    2904      359,    31,    70,    37,   363,   103,   602,   440,    93,   157,
    2905      257,   258,    31,    31,   129,    80,    70,    27,    80,   602,
    2906       70,   605,   181,    42,   144,    44,   144,   611,   181,   181,
    2907      106,   340,   152,    61,   109,    42,    43,   157,   126,   157,
    2908      128,    60,   127,   490,    63,   106,    37,    66,   116,  1437,
    2909       37,   691,   114,   805,   152,   637,   638,    37,   108,   602,
    2910        0,   181,   182,   815,   182,  1488,    76,   602,   143,   217,
    2911      214,   106,   654,   713,   108,   129,   181,   197,   830,    62,
    2912       11,  1516,   420,   421,   404,   205,  1521,   205,    37,    42,
    2913       43,    31,    42,    43,   214,    70,  1050,   217,   181,   217,
    2914      111,   129,   261,   114,   181,   112,  1541,   255,   261,   261,
    2915      506,   259,    80,  1548,   400,   106,    83,   108,    37,  1062,
    2916     1063,   217,  1521,   106,   268,   144,   106,   247,   108,   247,
    2917      205,   275,   400,   108,  1235,   109,     0,     1,   157,   107,
    2918      492,   261,   262,   110,   262,   412,   728,   710,   268,  1548,
    2919      217,   247,   128,   736,   248,   275,   829,   106,   111,   108,
    2920      235,   111,   181,   182,   450,   432,   247,    31,   829,   111,
    2921      508,   252,    37,   440,   512,   484,   841,   515,   247,   113,
    2922      247,   829,   450,  1284,   997,   390,   205,   106,   841,   108,
    2923     1133,     1,   267,   736,    70,   289,   482,   345,   217,   343,
    2924     1059,   736,    66,     3,   324,   809,   324,   604,  1297,  1283,
    2925     1284,   106,   107,   418,   482,  1250,   360,   247,   293,   424,
    2926      364,     3,    70,   343,   344,    80,   106,  1471,   247,   247,
    2927      568,   590,   108,   829,    44,    70,   818,    72,    73,   337,
    2928      360,   106,   261,   108,   364,  1220,   829,   831,   128,    70,
    2929      683,    72,    73,   108,   606,    67,    88,    89,   610,    71,
    2930      108,  1505,    74,  1507,    76,   340,  1220,   113,   366,  1521,
    2931      390,    83,   668,   108,   633,  1027,  1028,   425,   345,   631,
    2932      400,    80,   400,   635,   593,   950,   829,     0,   949,  1541,
    2933      111,   123,   124,   103,   829,    80,  1548,     0,   418,   109,
    2934      224,   949,   106,  1009,   424,   324,   426,   247,   107,  1410,
    2935      420,   421,   252,   622,    70,   114,    72,    73,   627,   243,
    2936       70,   106,    72,    73,   113,   344,   892,   475,   968,   106,
    2937      450,   412,   113,   143,  1402,  1403,  1410,  1089,  1090,    94,
    2938      129,    80,   152,  1297,   113,   420,   421,    94,   129,   128,
    2939      106,   432,   106,   949,   474,   111,   106,   106,   754,   440,
    2940      129,   111,   482,   106,   482,   120,   486,   106,   486,   649,
    2941      490,  1460,   113,   120,   106,   469,   108,   750,  1467,   928,
    2942      689,   400,   993,   247,   918,   958,   496,   936,   129,   109,
    2943      486,   201,   107,   113,   841,   205,   208,   109,   106,   114,
    2944      690,   113,   690,   484,   514,   486,   692,   690,   475,   690,
    2945      109,   658,  1132,   128,   113,   690,   683,   486,   690,   486,
    2946      514,   496,   107,    44,   692,   235,   236,   690,   526,   113,
    2947     1519,   450,   981,   113,  1018,  1019,   113,   531,  1297,   514,
    2948      534,   106,   536,  1108,   841,   129,   112,   113,   596,   129,
    2949      113,   656,   129,   109,   106,   764,   108,   267,   725,   113,
    2950      270,   820,   128,   107,   116,   824,   129,   486,   486,   579,
    2951      590,   490,   412,   109,   113,   129,   624,   113,    78,   623,
    2952      290,   629,   602,   293,   604,   113,  1126,  1053,   109,   583,
    2953      129,   107,   432,    78,   107,   639,   107,   636,   637,   638,
    2954      440,   129,   113,   623,   579,   107,  1460,   954,   108,   653,
    2955      110,   863,  1264,  1467,   114,   654,  1375,   107,   593,   639,
    2956     1272,  1273,  1274,   108,   114,   110,   113,   337,    70,   114,
    2957      340,  1094,    74,   653,   113,   347,   656,   349,   107,    81,
    2958       82,   107,   129,  1183,  1184,   114,   486,   622,   106,   359,
    2959      129,   113,   627,   363,  1491,   914,   366,   624,   878,   106,
    2960     1497,   655,   112,   657,   106,  1519,   108,   129,   716,  1321,
    2961      690,   508,   692,   591,   116,   512,    86,    87,   515,   899,
    2962       70,  1518,   730,   602,   205,   604,  1523,   106,   484,   728,
    2963      688,    81,    82,    10,    11,    12,    13,    14,   129,   106,
    2964       52,   108,   683,   955,   884,  1464,   750,  1466,   689,   116,
    2965      420,   421,   960,   116,    62,   236,   736,   737,   121,   122,
    2966       37,   107,   486,   106,   436,   108,   106,   113,   108,   723,
    2967      750,     4,     5,     6,     7,     8,     9,   106,   448,   107,
    2968      106,   451,   928,    95,   725,   113,   267,   457,    65,   716,
    2969      936,   695,   107,   697,  1220,    83,    84,    85,   113,   469,
    2970      928,  1520,   109,   730,   107,   763,   113,   109,   936,   290,
    2971      113,   690,   293,   692,   822,   106,   129,   108,   106,   818,
    2972      108,   107,   110,   764,   494,   116,   496,   113,   498,   106,
    2973       70,   108,    72,    73,    67,   107,    69,   107,   508,   116,
    2974     1009,   113,   512,   113,   514,   515,    90,    91,  1022,   829,
    2975        4,     5,     6,     7,     8,     9,   526,   736,   737,   111,
    2976      106,   841,   108,    10,    11,    12,    13,    14,  1124,  1525,
    2977      111,  1124,  1128,  1129,  1525,  1128,  1095,   189,    32,   107,
    2978      636,   637,   638,   683,   129,   113,   107,  1525,  1314,   106,
    2979       37,   108,   113,   107,   129,   822,   129,  1397,   654,   113,
    2980      212,   107,   107,   279,   106,  1045,   108,   113,   113,   579,
    2981      222,    70,   892,    67,  1414,    69,   292,   293,    65,   111,
    2982      590,   107,   106,   593,   107,   725,   107,   113,   304,   107,
    2983      113,   107,   113,   689,   914,   113,   892,   113,   892,   107,
    2984      106,   107,   108,  1369,    80,   113,  1372,   825,   928,   106,
    2985      829,   892,   622,   106,   107,   108,   936,   627,   106,   106,
    2986      108,   108,   841,   633,   340,   892,   106,   448,   108,   116,
    2987      451,    80,   728,   107,   954,   109,   457,   109,   290,   113,
    2988      118,   119,   959,  1152,   106,   107,   108,  1487,  1488,  1245,
    2989      117,   106,  1418,   108,   128,   129,   125,  1423,  1196,  1197,
    2990      376,  1199,   126,   959,  1012,   113,   114,  1205,   764,    70,
    2991     1208,    72,    73,    74,   892,   106,   107,   108,   688,     4,
    2992        5,     6,     7,     8,     9,   960,   128,   508,  1454,   107,
    2993      108,   512,    56,    57,   515,     3,   990,   112,   113,   993,
    2994      710,   995,    10,    11,    12,    13,    14,   113,   114,   928,
    2995       92,  1116,    10,    11,    12,    13,    14,   936,   113,   114,
    2996       70,   108,   818,   106,    74,   106,  1235,    42,    43,    37,
    2997      740,    81,    82,  1053,  1009,   954,    70,  1333,   109,    37,
    2998       74,  1337,    67,   109,    69,  1012,  1066,    81,    82,  1043,
    2999      107,  1500,   892,   763,  1050,   107,   106,    65,   107,  1053,
    3000      553,   554,  1056,  1057,  1058,   107,   116,    65,   107,  1050,
    3001      561,   562,   106,  1539,    56,    57,    58,     0,     1,  1545,
    3002      555,   556,   116,  1050,   107,   437,   557,   558,   559,   560,
    3003     1556,  1256,  1257,  1258,  1560,   106,  1116,   109,   108,   113,
    3004       70,  1550,    72,    73,    74,   109,   128,    44,    31,   111,
    3005      820,    81,    82,    70,   824,    72,    73,    74,   106,   471,
    3006      109,    44,   107,    60,    81,    82,    63,   107,   892,    66,
    3007      109,     3,  1050,  1371,   550,   551,   552,   109,    10,    11,
    3008       12,    13,    14,    66,   109,  1441,  1194,   109,   114,   106,
    3009       70,   108,    72,    73,    74,   114,   508,   114,    28,   116,
    3010      512,    81,    82,   515,   113,    37,    29,   107,   107,   111,
    3011       70,  1152,    72,    73,    74,   109,   114,   593,  1195,   112,
    3012      103,    81,    82,   107,   112,    54,   106,   112,   108,   710,
    3013      106,   113,  1212,    65,   107,   959,   116,   129,  1194,  1195,
    3014     1220,   107,   107,   114,   914,   107,   106,   144,   918,   107,
    3015     1050,   107,   113,   107,  1212,   107,   116,    80,    81,   107,
    3016      157,   144,  1239,  1217,  1220,   107,  1220,  1194,   107,   152,
    3017      153,   107,   107,   107,  1030,   104,   107,    28,   107,  1220,
    3018      107,   107,   107,  1239,  1292,   182,   107,   128,   958,   959,
    3019      960,   109,   112,  1220,  1235,   107,   107,    63,   107,   182,
    3020      113,   107,  1256,  1257,  1258,   112,   109,    73,   205,   109,
    3021      107,   107,   113,   107,   197,   114,   111,   200,   201,   109,
    3022      217,   113,   205,   152,   113,   107,  1050,  1535,  1393,   113,
    3023      113,   107,   107,   106,  1314,   109,  1292,   106,   106,  1009,
    3024      111,  1297,  1220,   226,   106,   106,   109,   230,   114,   232,
    3025      726,   129,   111,   107,   114,  1332,  1297,   112,   241,   671,
    3026     1314,   107,   107,   112,   247,  1292,   109,   111,   680,   252,
    3027     1297,   129,   684,   126,   113,  1525,  1332,  1525,   109,   262,
    3028     1526,   113,  1525,   109,  1525,   214,   107,   270,  1392,  1369,
    3029     1525,   157,  1372,  1525,   107,   771,  1152,   107,  1526,     3,
    3030      109,   109,  1525,   109,  1550,   107,    10,    11,    12,    13,
    3031       14,   109,  1392,  1393,   109,  1369,   239,   109,  1372,  1297,
    3032     1220,    45,  1550,   111,  1094,  1095,   129,   324,   129,   129,
    3033      129,   107,   129,    37,   112,  1500,   107,   918,  1418,   268,
    3034      112,   817,   109,  1423,   114,   109,   275,   112,  1402,  1403,
    3035      109,   217,   109,   109,   337,   109,    63,   340,   109,   109,
    3036     1437,    65,   107,   346,  1418,   107,   109,   106,   109,  1423,
    3037      106,  1195,   106,    58,  1454,   112,   359,   107,   107,   111,
    3038      363,  1437,   129,   366,   109,    94,   114,   109,  1442,   255,
    3039      107,   109,   107,   259,    94,   106,  1220,  1297,   106,   112,
    3040     1454,   107,   129,   400,  1460,   107,  1525,   114,   129,   275,
    3041      129,  1467,  1525,  1525,   343,  1239,   109,   107,   107,  1460,
    3042     1500,   113,    40,   114,   129,   107,  1467,  1283,   129,   412,
    3043      107,   360,    94,  1460,    94,   364,  1516,   107,   107,   114,
    3044     1467,  1521,  1212,   129,   427,  1525,  1526,  1501,  1526,   432,
    3045      157,   466,   375,   129,   107,   107,  1510,   440,   112,  1539,
    3046      109,  1541,  1516,  1519,   109,  1545,   129,  1521,  1548,  1239,
    3047     1550,   106,  1550,  1297,   129,   112,  1556,   107,  1519,   345,
    3048     1560,   112,  1460,   466,   107,  1539,   469,  1541,   129,  1467,
    3049      691,  1545,  1519,   107,  1548,   107,  1066,   426,  1217,   564,
    3050     1535,   484,  1556,   486,   916,   565,  1560,   563,  1332,   566,
    3051      217,   494,   713,  1094,   567,   498,  1220,  1377,  1560,  1488,
    3052     1307,    50,  1129,    52,  1337,  1467,    55,    56,    57,  1085,
    3053       59,   448,   455,  1009,   448,   936,   460,   460,   697,   938,
    3054      583,  1519,   884,   526,   527,    74,  1525,   982,   255,   650,
    3055      740,   956,   259,  1239,   750,   571,    -1,    86,    87,   425,
    3056     1460,   571,  1332,   571,   486,    -1,    -1,  1467,    -1,    -1,
    3057      493,    -1,   495,    -1,  1050,    -1,   442,    10,    11,    12,
    3058       13,    14,    -1,    -1,    -1,    -1,   185,    -1,    70,   572,
    3059       72,    73,    74,   192,    70,    -1,    72,    73,    74,    81,
    3060       82,   802,    -1,    -1,    37,    81,    82,   590,   591,   475,
    3061      593,    -1,    -1,  1437,    -1,    -1,    -1,    -1,    -1,  1519,
    3062       -1,   604,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3063      106,    -1,    65,    -1,   116,    -1,  1460,    -1,   345,   622,
    3064      116,    -1,    -1,  1467,   627,    -1,    -1,    -1,    -1,  1061,
    3065      633,    -1,    -1,   636,   637,   638,    -1,   672,    -1,    -1,
    3066       -1,   590,    -1,    -1,    -1,   264,    70,  1437,    72,    73,
    3067       74,   654,    -1,   106,    -1,   108,    -1,    81,    82,   880,
    3068       -1,     0,    -1,   116,    -1,   466,    -1,    -1,    -1,   672,
    3069       -1,    -1,    -1,  1169,   623,  1519,    -1,    -1,    -1,  1469,
    3070      683,  1471,   106,     0,     1,   688,   689,    -1,    -1,   692,
    3071      639,    -1,    31,    -1,    -1,    -1,    -1,    -1,   425,    -1,
    3072      319,    -1,   645,    -1,   653,    -1,    -1,    -1,   327,    -1,
    3073      596,   330,    -1,    -1,    31,  1505,    -1,  1507,    -1,    -1,
    3074       -1,    -1,   725,    -1,    -1,   728,    -1,    66,    -1,    70,
    3075       -1,    72,    73,    74,   737,    -1,    -1,   740,   624,    -1,
    3076       81,    82,    -1,   629,    -1,  1535,    63,   968,   475,    66,
    3077       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    3078      763,   764,   705,    -1,    -1,   106,   769,   108,   711,    -1,
    3079      805,    -1,    -1,   392,    -1,   116,   997,   396,    -1,    -1,
    3080      815,    -1,    -1,   128,    -1,    -1,    10,    11,    12,    13,
    3081       14,   340,   341,    -1,    -1,   830,    70,    -1,    72,    73,
    3082       74,   750,   805,   352,   353,    -1,    -1,    81,    82,    -1,
    3083       -1,    -1,   815,    37,   153,   818,    -1,   820,    -1,    -1,
    3084      823,   824,   825,    -1,    -1,    -1,  1047,   830,    -1,    -1,
    3085      716,    -1,   106,    -1,    -1,    -1,   153,   840,    -1,    -1,
    3086       -1,    65,    -1,    -1,   730,    -1,    70,    -1,    72,    73,
    3087       74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,
    3088       -1,    -1,   481,    -1,   750,    -1,    -1,    -1,  1469,   596,
    3089     1471,   672,    -1,    -1,  1306,    -1,    -1,    -1,    -1,    -1,
    3090       -1,    -1,   106,    -1,   108,    -1,    -1,   226,    -1,   892,
    3091       -1,    -1,   116,    -1,    -1,    -1,    -1,   624,    -1,    -1,
    3092      217,    -1,   629,    -1,  1505,  1126,  1507,    -1,   247,    -1,
    3093       -1,   914,    -1,   252,    -1,    10,    11,    12,    13,    14,
     2890       1,    42,     0,    42,     0,   181,    42,   235,   181,   165,
     2891     181,     1,   451,   200,   182,   182,   215,   648,   690,   181,
     2892     181,   484,   181,   181,   275,   602,   344,   113,   103,   751,
     2893     252,   622,   690,    31,   494,    31,   690,    31,   498,   604,
     2894     457,   892,   988,   359,    42,   602,    44,   363,    44,  1317,
     2895       1,   534,   602,   995,  1031,     0,    54,    37,    37,   183,
     2896     602,   604,    60,   602,    60,    63,   450,    63,    66,   605,
     2897      66,   344,    37,   572,   101,   611,    66,   152,    65,    65,
     2898     771,  1398,    65,    49,   715,   261,    31,    75,   261,    42,
     2899     261,  1394,   412,    44,   262,   262,   768,   691,    42,   261,
     2900     261,  1043,   261,   261,   602,    37,   104,  1030,  1031,   107,
     2901     768,   197,   432,   101,   768,   113,    27,    75,    57,   713,
     2902     440,    42,   101,   103,   103,   111,     0,    89,    75,   340,
     2903      42,    43,    37,   257,   258,   101,   101,   124,   103,   523,
     2904     181,   124,   181,  1411,   602,   181,   144,   892,   144,   101,
     2905     102,     0,   103,   115,   152,  1458,   103,    31,   109,   157,
     2906      71,   157,   101,   420,   421,  1482,    42,    43,    65,   101,
     2907    1487,   103,   101,   636,   637,   638,    37,    65,   290,   736,
     2908       0,     1,    31,   181,   182,  1050,   182,  1504,   277,    88,
     2909     412,   654,   143,    65,  1511,   107,    44,   892,    65,   197,
     2910      75,   152,    75,    37,    29,   404,   103,   205,    78,   205,
     2911     432,    31,    11,     0,    63,   103,   214,   490,   440,   217,
     2912     261,   217,   261,   122,   101,   261,   689,   102,   181,   102,
     2913     106,   103,   400,   400,   109,   105,   103,   181,   736,   496,
     2914     101,   104,   103,    63,    31,   108,    66,   248,  1225,   247,
     2915     201,   247,   829,   247,   205,    80,    81,   514,     0,     1,
     2916     181,   109,   337,   261,   262,   728,   262,   101,   104,   103,
     2917     268,   710,   829,   484,   590,   106,   841,   275,   736,   829,
     2918     108,    75,   450,   450,   235,   236,   604,   829,   289,    31,
     2919     829,   366,   492,    73,  1240,   831,   124,  1274,   841,     0,
     2920       1,   764,   247,  1487,   390,  1050,   997,   101,   420,   421,
     2921     809,    73,    42,    43,   482,   482,   267,   633,    75,   270,
     2922    1504,    63,   579,   103,    66,   105,   324,  1511,   324,   109,
     2923      31,   829,   418,   153,    54,    89,  1487,  1059,   424,   290,
     2924     108,   103,   293,   105,     0,   343,   344,   109,   111,   123,
     2925    1273,  1274,   109,   116,   117,   818,   124,   205,  1053,  1210,
     2926    1511,   115,   360,   683,   224,    66,   364,    65,   217,    67,
     2927      68,   829,   949,   247,   968,    31,   106,   104,   252,   101,
     2928     108,   108,   593,   243,   104,   950,   337,   107,   236,   340,
     2929       3,    65,   390,    67,    68,     3,   508,   217,   247,   949,
     2930     512,   123,   400,   515,   400,   103,   606,   949,   359,   108,
     2931     610,   622,   363,  1390,   239,   366,   627,   506,  1009,   267,
     2932     418,    65,  1287,    67,    68,   124,   424,   247,   426,   102,
     2933      67,   631,   106,   108,    71,   635,   109,    74,   102,    76,
     2934    1382,  1383,   290,    65,   108,   293,    83,    69,   108,   124,
     2935     123,   526,   450,     0,    76,    77,   568,   101,   107,   108,
     2936     247,   683,   106,     0,    52,  1210,   102,  1390,   469,   420,
     2937     421,   101,   108,   508,   123,   217,   474,   512,   689,   101,
     2938     515,   103,  1018,  1019,   482,   102,   482,   101,   486,   111,
     2939     486,   108,   490,   649,   214,  1126,   345,   448,   958,   750,
     2940     451,   918,   102,   725,   820,   247,   457,    95,   824,   109,
     2941     993,   108,   123,   514,   690,  1210,   102,   690,   469,   690,
     2942     113,   114,   108,   841,   692,   692,  1120,   124,   690,   690,
     2943     531,   690,   690,   534,   658,   536,   101,  1102,   412,   101,
     2944     108,   486,  1287,   494,   928,   496,   247,   498,   268,   121,
     2945     375,   123,   936,   764,   102,   275,   124,   508,   432,    83,
     2946      84,   512,   108,   514,   515,  1287,   440,  1030,   841,  1434,
     2947     656,   208,   108,   108,   108,   526,  1441,   108,   124,   668,
     2948     107,   102,   583,  1177,  1178,     0,   108,   108,   124,   124,
     2949     124,   247,   590,   124,   118,   119,   252,   981,   914,   101,
     2950     448,   189,   124,   451,   602,  1300,   604,   427,   466,   457,
     2951     484,   101,   486,   688,   637,   638,    31,   108,   104,   101,
     2952    1485,   103,   108,   343,   212,   623,   475,    42,   579,    44,
     2953     455,   654,   101,   124,   222,   460,    44,   486,  1360,   590,
     2954     360,   639,   593,   102,   364,    60,   102,   104,    63,  1088,
     2955     109,    66,   108,   108,   655,   653,   657,   104,   656,  1354,
     2956     508,   108,  1357,   863,   512,   754,   486,   515,   493,   124,
     2957     495,   622,   102,   636,   637,   638,   627,   102,   108,   878,
     2958     102,   954,   633,  1146,    65,   102,    67,    68,   763,  1434,
     2959     102,   654,   690,   104,   692,   102,  1441,   108,  1461,   486,
     2960     899,   109,   290,  1398,  1467,   728,   101,   527,  1403,   102,
     2961     347,   104,   349,    81,    82,   108,  1438,   101,  1440,   103,
     2962     101,  1484,   723,    85,    86,   106,  1489,   111,   884,   144,
     2963     123,   124,   960,  1428,   101,   143,   103,   688,   736,   737,
     2964    1485,   101,   157,   103,   486,     4,     5,     6,     7,     8,
     2965       9,   111,   750,   101,  1118,   955,   412,   102,  1122,   710,
     2966     928,   928,   101,   108,  1486,   728,   181,   182,   936,   936,
     2967     124,   591,   101,  1089,   103,   624,   432,   101,   102,   103,
     2968     102,   102,   111,  1377,   440,   486,   108,   108,   102,   740,
     2969     205,   101,   102,   103,   108,   818,    57,   205,  1009,   436,
     2970    1394,   101,   217,    62,   591,    64,   101,  1502,   103,   683,
     2971    1273,   101,   763,  1508,   672,   689,   636,   637,   638,  1491,
     2972     645,   104,  1517,   102,   108,   109,  1521,   235,   124,   108,
     2973     486,   829,   247,  1491,   654,  1022,    65,  1491,    67,    68,
     2974      69,    65,   106,   841,   102,    69,   261,    76,    77,   437,
     2975     108,   725,    76,    77,   102,   818,   101,   102,   103,   267,
     2976     108,   124,   710,  1457,  1458,   124,   101,   716,   103,   820,
     2977     102,   124,   101,   824,   103,   106,   108,   101,    44,    65,
     2978     705,   730,   111,   471,   106,   293,   711,   111,   101,  1045,
     2979     764,   892,   102,   102,    60,   102,   102,    63,   108,   108,
     2980      66,   108,   108,   623,   557,   558,   559,   560,   728,   324,
     2981      10,    11,    12,    13,    14,    65,   914,    67,    68,   639,
     2982     508,   101,   102,   103,   512,   101,   101,   515,   103,   344,
     2983     928,   104,   340,   653,   101,  1146,   103,    37,   936,     4,
     2984       5,     6,     7,     8,     9,    75,   101,   805,   103,    75,
     2985      65,     0,     1,   101,    69,   103,   954,   815,   102,   103,
     2986      60,    76,    77,   914,  1246,  1247,  1248,   918,   101,   959,
     2987     103,   112,   830,   822,   695,   120,   697,    87,   144,    78,
     2988      79,    80,    31,    54,    55,   400,   101,   108,   109,   990,
     2989     121,   157,   993,   101,   995,    44,   111,    62,   818,    64,
     2990     123,   101,   101,   103,   103,   825,   105,   958,   959,   960,
     2991     103,   111,   420,   421,  1225,   101,   182,    66,   892,    65,
     2992     104,    67,    68,    69,  1110,   108,   109,   683,   104,  1118,
     2993     750,    42,    43,  1122,  1123,   450,   553,   554,   825,   205,
     2994     555,   556,  1043,   892,   102,   561,   562,   102,   102,   102,
     2995     102,   217,  1053,   101,   103,  1056,  1057,  1058,  1009,   884,
     2996     102,   104,   103,   108,   104,   101,   891,   123,   106,   725,
     2997     918,   486,   892,   104,   102,   490,   102,   104,  1190,  1191,
     2998     104,  1193,   104,   671,   104,   108,  1470,  1199,   496,    28,
     2999    1202,   109,   680,   109,    63,   144,   684,    10,    11,    12,
     3000      13,    14,   102,   152,   153,   892,   514,   102,   104,   106,
     3001     109,    80,  1110,   107,    10,    11,    12,    13,    14,   102,
     3002     107,   107,   101,   108,    37,   102,   124,   102,   102,  1513,
     3003     102,  1206,   102,   182,   102,   466,   109,  1088,  1089,   959,
     3004     102,    37,   108,   102,   102,   114,  1235,    60,   197,   102,
     3005     892,   200,   201,   102,   102,   975,   205,   982,   324,   102,
     3006     102,   102,   102,  1012,    60,   102,   102,   102,    28,  1027,
     3007    1028,   579,   123,   107,   104,   102,  1050,   226,   102,   102,
     3008     102,   230,   107,   232,   104,   593,     3,   602,   157,   604,
     3009     108,   892,   241,    10,    11,    12,    13,    14,   247,  1189,
     3010     104,  1050,   102,   252,   102,   101,   108,   103,  1206,  1210,
     3011    1030,  1031,   102,   262,   622,   111,   109,   959,   106,   627,
     3012      37,   270,   108,   108,   104,  1083,  1084,   102,   102,  1318,
     3013    1050,   108,   108,  1322,   400,   102,   892,   101,   104,  1229,
     3014    1088,   104,   101,    60,  1356,  1246,  1247,  1248,   217,    65,
     3015     101,    67,    68,    69,  1079,  1206,   101,   101,   959,   109,
     3016      76,    77,    65,  1050,    67,    68,    69,   124,   107,   102,
     3017    1498,   102,  1146,    76,    77,   690,   102,   692,  1229,   121,
     3018     107,   106,   104,   124,   108,     3,   255,  1373,   337,   104,
     3019     259,   340,    10,    11,    12,    13,    14,   346,   101,  1300,
     3020     108,   102,   104,   102,     0,   102,   104,    45,  1050,   104,
     3021     359,   104,   102,   104,   363,  1491,   104,   366,  1491,    37,
     3022    1491,   736,   737,   104,  1492,  1492,  1415,  1317,   916,  1491,
     3023    1491,   107,  1491,  1491,   102,    31,  1210,   124,   124,  1188,
     3024     124,   672,    60,   107,   124,  1513,  1513,   124,   109,  1050,
     3025     102,  1225,   107,  1354,   104,   104,  1357,   104,   104,  1184,
     3026     104,  1210,   104,   412,   104,  1223,  1317,   104,  1188,  1189,
     3027      66,   102,   102,   101,  1372,  1373,   345,   104,   427,   104,
     3028     101,  1382,  1383,   432,  1470,    55,    54,   102,   102,   106,
     3029    1210,   440,   124,   109,  1050,   104,  1254,  1398,   104,   102,
     3030     104,   102,  1403,    89,  1262,  1263,  1264,   101,   107,  1229,
     3031     102,   104,   102,  1287,   829,  1416,    40,   466,   102,   102,
     3032     469,  1411,   109,  1210,   124,   102,   841,  1428,   108,   124,
     3033      89,   102,     3,  1282,   109,   484,   102,   486,  1287,    10,
     3034      11,    12,    13,    14,   102,   494,  1188,  1189,  1306,   498,
     3035    1491,   124,  1491,  1273,  1274,  1491,   425,   153,   107,   124,
     3036    1411,   104,  1282,   104,   124,   101,    37,  1287,  1210,   124,
     3037    1471,   124,  1470,  1061,   805,  1476,   107,   526,   527,   672,
     3038     107,  1482,   102,   691,   815,   102,  1487,  1229,  1189,    60,
     3039     563,   565,  1443,  1491,  1492,   564,  1492,  1317,   566,   830,
     3040    1287,  1502,  1127,  1504,   567,   713,   475,  1508,    54,  1210,
     3041    1511,  1362,  1458,   928,  1210,  1513,  1517,  1513,  1521,  1296,
     3042    1521,   936,  1473,   572,  1473,  1123,  1322,  1441,  1229,  1079,
     3043     226,   448,   448,   936,   697,   884,   938,   982,   650,   954,
     3044    1282,   590,   591,   740,   593,  1287,   460,  1498,   583,  1229,
     3045     956,   247,   960,   486,  1210,   604,   252,   571,   104,    63,
     3046    1434,   107,   750,   571,   571,    -1,    -1,  1441,    -1,    -1,
     3047    1390,    -1,    -1,   622,    -1,  1317,    -1,    -1,   627,    -1,
     3048      -1,    -1,    -1,    -1,   633,  1434,  1287,   636,   637,   638,
     3049      -1,  1411,  1441,    -1,   802,  1443,    65,    -1,    67,    68,
     3050      69,  1009,    -1,    -1,    -1,   654,   152,    76,    77,    -1,
     3051     114,  1485,   805,    -1,  1434,     0,  1317,    -1,    -1,    -1,
     3052      -1,  1441,   815,   672,    -1,  1473,    -1,   596,    -1,    -1,
     3053      -1,  1287,   101,    -1,   683,    -1,  1485,   830,    -1,   688,
     3054     689,    -1,   111,   692,    -1,    -1,    31,  1434,    -1,    -1,
     3055     346,    -1,  1372,   157,  1441,   624,    -1,    -1,    -1,    -1,
     3056     629,    -1,    -1,    -1,    -1,  1485,    -1,    -1,   214,  1411,
     3057     185,    -1,   880,    -1,    -1,    -1,   725,   192,    -1,   728,
     3058      -1,    66,    65,    -1,    67,    68,    69,    -1,   737,    -1,
     3059      -1,   740,  1434,    76,    77,    -1,  1027,  1028,  1485,  1441,
     3060      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1295,    -1,    -1,
     3061    1411,    -1,    -1,   217,   763,   764,   412,    -1,   101,    -1,
     3062     769,    -1,   268,    65,    -1,    67,    68,    69,   111,   275,
     3063      -1,   427,    -1,  1434,    76,    77,   432,    -1,    -1,    -1,
     3064    1441,    -1,    -1,  1485,   440,    -1,    -1,   716,    -1,   264,
     3065      -1,   255,  1083,  1084,    -1,   259,   805,    -1,    -1,   101,
     3066     968,   730,    -1,    -1,    -1,    -1,   815,    -1,   153,   818,
     3067     466,   820,    -1,    -1,   823,   824,   825,    -1,  1434,    -1,
     3068      -1,   830,    -1,    -1,  1485,  1441,    -1,    -1,   484,   997,
     3069     486,   840,    10,    11,    12,    13,    14,   343,    -1,    -1,
     3070      -1,    -1,    -1,    -1,   319,    10,    11,    12,    13,    14,
     3071      -1,    -1,   327,    -1,   360,   330,    -1,    -1,   364,    37,
     3072      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1485,
     3073      -1,   527,    37,    -1,  1027,  1028,    -1,    -1,    -1,  1047,
     3074      -1,   345,    60,   892,    -1,    -1,    -1,    65,    -1,    67,
     3075      68,    69,    -1,   822,  1442,    60,    -1,    -1,    76,    77,
     3076      65,    -1,   247,    -1,    69,   914,    -1,   252,    -1,    -1,
     3077      -1,    76,    77,    -1,    -1,    -1,    -1,   392,    -1,    -1,
     3078     426,   396,    -1,   101,  1472,   103,    -1,    -1,    -1,    -1,
     3079    1083,  1084,  1223,   111,    -1,   591,   101,    -1,     0,    -1,
     3080      -1,   950,    -1,    -1,    -1,    -1,   111,    -1,    -1,   958,
     3081     959,    -1,  1120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3082      -1,   425,    -1,  1254,  1512,     0,   975,    -1,    -1,    31,
     3083      -1,  1262,  1263,  1264,    -1,    -1,  1524,    -1,    -1,    -1,
     3084     636,   637,   638,    -1,    -1,    -1,    -1,    -1,    -1,   279,
     3085      -1,    -1,    -1,    -1,    -1,    -1,    31,    -1,   654,    -1,
     3086    1009,   346,   292,   293,    66,    -1,   481,    -1,    -1,  1177,
     3087    1178,   475,    -1,  1022,   304,  1306,   672,    -1,  1027,  1028,
     3088      -1,  1030,  1031,    -1,    -1,    -1,    -1,   683,    -1,    -1,
     3089      -1,    66,    -1,   689,    -1,    10,    11,    12,    13,    14,
     3090      -1,  1050,     4,     5,     6,     7,     8,     9,    -1,    -1,
     3091     340,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3092      -1,    -1,    37,    76,    77,    -1,    -1,   412,    -1,   725,
     3093      32,    -1,   728,    -1,  1083,  1084,    -1,    -1,    -1,    -1,
     3094    1089,    -1,   427,  1012,   590,    60,   376,   432,   101,    -1,
     3095     103,   153,    -1,    -1,    -1,   440,   571,   572,   111,    -1,
     3096      62,  1254,    64,    -1,    -1,    -1,    -1,    -1,   764,  1262,
     3097    1263,  1264,    -1,    -1,    -1,    -1,  1491,   623,   153,    -1,
     3098      -1,   466,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3099    1498,    -1,   596,   639,    -1,    -1,   111,  1146,    -1,   484,
     3100      65,   486,    67,    68,    69,    -1,    -1,   653,    -1,   805,
     3101      -1,    76,    77,  1306,    -1,    -1,    63,    -1,    -1,   815,
     3102     624,    -1,   818,    -1,    -1,   629,    73,   823,    -1,   825,
     3103      -1,    -1,    -1,    -1,   830,    -1,   101,    -1,   103,    -1,
     3104    1189,    -1,   527,    -1,   659,   247,   111,    -1,   663,    -1,
     3105     252,    65,    -1,    67,    68,    69,    -1,  1206,    -1,    -1,
     3106      -1,  1210,    76,    77,    -1,    -1,    -1,   114,    -1,  1377,
     3107      -1,    -1,   247,    -1,  1223,    -1,  1225,   252,    -1,    -1,
     3108    1229,   696,    -1,    -1,    -1,    -1,  1394,   101,    -1,   103,
     3109      -1,    -1,    -1,    -1,    -1,   109,   892,   111,    -1,    -1,
     3110      -1,    -1,    -1,    -1,   750,  1254,   591,    -1,    -1,    -1,
     3111     157,    -1,   716,  1262,  1263,  1264,    -1,    -1,    -1,  1188,
     3112     550,   551,   552,    -1,  1273,  1274,   730,    90,    91,    92,
     3113      93,    94,    95,    96,    97,    98,    99,    -1,  1287,    -1,
     3114      -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,    -1,  1457,
     3115    1458,   636,   637,   638,    -1,    -1,    -1,  1306,    -1,    -1,
     3116     123,    -1,    -1,   593,    -1,    -1,    -1,    -1,  1317,   654,
     3117     217,   346,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   975,
     3118      -1,    -1,    -1,    -1,    -1,    -1,    -1,   672,    -1,    10,
     3119      11,    12,    13,    14,   809,    -1,    -1,    -1,   683,    -1,
     3120      -1,    -1,    -1,    -1,   689,    -1,    -1,    -1,   255,    -1,
     3121     412,    -1,   259,  1282,    -1,    -1,    37,    -1,   822,    -1,
     3122      -1,    -1,    -1,    -1,    -1,   427,    -1,    -1,   275,    -1,
     3123     432,  1027,  1028,    -1,  1030,  1031,    -1,   412,   440,    60,
     3124     725,  1390,    -1,   728,    65,    -1,    67,    68,    69,    -1,
     3125      -1,    -1,   427,    -1,  1050,    76,    77,   432,    -1,    -1,
     3126      -1,    -1,  1411,    -1,   466,   440,    -1,    -1,   914,    -1,
     3127      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   764,
     3128     101,    -1,   484,    -1,   486,  1434,    -1,  1083,  1084,    -1,
     3129     111,   466,  1441,    -1,    -1,    -1,   726,    -1,   345,    -1,
     3130      -1,    -1,    -1,    -1,    -1,    -1,    -1,   922,    -1,   484,
     3131      -1,   486,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3132     805,    -1,    -1,    -1,    -1,   527,    -1,    -1,    -1,    -1,
     3133     815,    -1,    -1,   818,    -1,    -1,  1485,    -1,   823,    -1,
     3134     825,   771,    -1,  1492,    -1,   830,    -1,    -1,    -1,    -1,
     3135    1146,    -1,   527,    -1,     3,     4,     5,     6,     7,     8,
     3136       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3137      19,    20,    21,    22,    23,    24,    25,    26,   425,    -1,
     3138      29,    30,    31,    -1,   999,    -1,    -1,   817,    37,   591,
     3139      -1,    -1,    -1,  1189,    -1,   442,    -1,    -1,    -1,    -1,
     3140    1015,    -1,    -1,    -1,    -1,    -1,    -1,   892,  1012,    -1,
     3141      -1,    60,    -1,    62,  1210,    64,   591,    -1,    67,    68,
     3142      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1223,   475,  1225,
     3143      -1,    -1,    -1,    -1,   636,   637,   638,    -1,    -1,    -1,
     3144      -1,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
     3145      14,    -1,   654,    -1,    -1,    -1,    -1,   106,  1254,    -1,
     3146      -1,   636,   637,   638,    -1,    -1,  1262,  1263,  1264,    -1,
     3147     672,    -1,    -1,    37,    -1,  1090,    -1,  1273,  1274,   654,
     3148      -1,   683,    -1,    -1,    -1,    -1,    -1,   689,    -1,    -1,
     3149     975,  1287,    -1,    50,    -1,    52,    60,   672,    55,    56,
     3150      57,    65,    59,    67,    68,    69,    -1,    -1,   683,    -1,
     3151    1306,    -1,    76,    77,   689,    -1,    -1,    74,    -1,    -1,
     3152      -1,    -1,    -1,   725,    -1,    -1,   728,    -1,    -1,    86,
     3153      87,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3154      -1,    -1,  1027,  1028,    -1,  1030,  1031,   111,    -1,   596,
     3155     725,    -1,    -1,   728,    -1,    -1,    -1,    -1,    -1,    -1,
     3156    1206,    -1,   764,    -1,    -1,  1050,    -1,    -1,    -1,    -1,
     3157      -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,    -1,  1009,
     3158      -1,    -1,   629,    -1,  1188,    -1,    -1,    -1,    -1,   764,
     3159      -1,    -1,    -1,    -1,  1390,    -1,    -1,    -1,  1083,  1084,
     3160      -1,    -1,    -1,   805,    -1,    -1,    -1,    10,    11,    12,
     3161      13,    14,    -1,   815,    -1,    -1,   818,    -1,    -1,    -1,
     3162    1050,   823,    -1,   825,    -1,    -1,    -1,    -1,   830,    -1,
     3163     805,    -1,    -1,    -1,    37,    -1,    -1,    -1,  1434,    -1,
     3164     815,    -1,    -1,   818,    -1,  1441,    -1,    -1,   823,    -1,
     3165     825,    -1,    -1,    -1,    -1,   830,    -1,    60,    -1,    -1,
     3166      -1,  1146,    65,    -1,    67,    68,    69,    -1,    -1,   716,
     3167      -1,    -1,    -1,    76,    77,    -1,    -1,    -1,  1282,    -1,
     3168      -1,    -1,    -1,   730,    -1,    -1,    -1,    -1,    -1,  1485,
     3169     892,    10,    11,    12,    13,    14,    -1,    -1,   101,    -1,
     3170     103,    -1,    -1,   750,  1189,    -1,    -1,    -1,   111,    -1,
     3171      -1,    -1,    -1,    -1,    -1,    -1,    -1,   892,    37,    -1,
     3172      -1,    -1,    -1,    -1,    -1,  1210,  1372,    -1,    -1,    -1,
     3173      -1,    -1,    -1,  1163,    -1,    -1,    -1,    -1,  1223,    -1,
     3174    1225,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3175      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3176      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,  1254,
     3177      -1,    -1,    -1,   975,    -1,   822,    -1,  1262,  1263,  1264,
     3178      -1,    -1,   101,   340,   341,    -1,    -1,    -1,  1273,  1274,
     3179      -1,    -1,   111,    -1,    -1,   352,   353,    -1,    -1,    -1,
     3180     975,    -1,  1287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3181      -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,
     3182      -1,  1306,    -1,    -1,    44,  1027,  1028,    -1,  1030,  1031,
     3183      -1,    -1,    -1,    96,    -1,    98,    -1,    10,    11,    12,
     3184      13,    14,    -1,    63,    -1,    -1,    -1,    -1,  1050,    -1,
     3185      -1,    -1,  1027,  1028,    -1,  1030,  1031,    -1,    -1,   122,
     3186      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3187      -1,    -1,    -1,    -1,    -1,  1050,    -1,    -1,    -1,    -1,
     3188      -1,  1083,  1084,    96,    -1,    98,    -1,    60,    -1,   109,
     3189      -1,    -1,    65,    -1,   114,    -1,    69,    -1,    -1,    -1,
     3190      -1,    -1,    -1,    76,    77,  1390,    -1,    -1,  1083,  1084,
     3191      -1,    -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,
     3192      -1,    -1,   185,   143,   187,   188,    -1,    -1,   101,   192,
     3193      -1,   194,   195,   153,    -1,    -1,    -1,   157,   111,    -1,
     3194      -1,    -1,    -1,    -1,  1146,    -1,    -1,    -1,    -1,  1434,
     3195      -1,    -1,    -1,    -1,    -1,    36,  1441,    38,    -1,    -1,
     3196      -1,    -1,    -1,    -1,   177,  1012,    -1,    -1,    -1,    -1,
     3197      -1,  1146,    -1,    -1,   187,   188,    -1,    -1,    59,   192,
     3198      -1,   194,   195,    -1,    65,   205,    -1,  1189,    69,    -1,
     3199      -1,    72,    73,    74,    75,    76,    77,   217,    79,    80,
     3200    1485,   264,    -1,    -1,    -1,    -1,    87,    -1,  1210,    -1,
     3201      -1,    -1,    -1,    -1,  1189,   235,   236,    -1,    -1,    -1,
     3202     101,  1223,   103,  1225,    -1,    -1,    -1,    -1,    -1,   110,
     3203     111,   112,   113,   114,   115,  1210,    -1,    -1,    -1,   259,
     3204      -1,    -1,    -1,   124,    -1,    -1,    -1,   267,  1223,    -1,
     3205    1225,    -1,  1254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3206    1262,  1263,  1264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3207     290,  1273,  1274,   293,    -1,    -1,    -1,     7,    -1,  1254,
     3208      10,    11,    12,    13,    14,  1287,    -1,  1262,  1263,  1264,
     3209      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1273,  1274,
     3210      -1,    -1,    -1,    -1,  1306,    -1,    36,    37,    38,    -1,
     3211      -1,    -1,  1287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3212     340,    -1,    -1,    -1,    -1,   345,    -1,    -1,    -1,    59,
     3213      60,  1306,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3214      -1,  1188,    72,    73,    74,    75,    76,    77,    -1,    79,
     3215      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3216     717,    -1,   719,    -1,    -1,    -1,    -1,    -1,    -1,   726,
     3217     727,   101,    -1,   103,   731,    -1,    -1,    -1,    -1,    -1,
     3218     110,   111,   112,   113,   114,   115,   743,    -1,  1390,    -1,
     3219      -1,   748,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3220     420,   421,    -1,    -1,    -1,    -1,    -1,   427,    -1,    -1,
     3221      -1,    -1,    -1,    -1,    -1,  1390,   773,    -1,    -1,    -1,
     3222      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   448,    -1,
     3223      -1,   451,  1434,    -1,    -1,  1282,    -1,   457,    -1,  1441,
     3224      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3225      20,    21,    22,    23,    24,    25,    26,    27,    -1,  1434,
     3226     817,    -1,    -1,    -1,   484,    -1,  1441,    37,    -1,    -1,
     3227      -1,    -1,    -1,    -1,    -1,    -1,   496,    -1,    -1,    -1,
     3228      -1,    -1,    -1,  1485,    -1,    -1,    -1,    -1,   508,    -1,
     3229      60,    -1,   512,    -1,   514,   515,    -1,    -1,    -1,    -1,
     3230      -1,    71,    -1,    -1,    -1,    -1,    -1,   527,    -1,    -1,
     3231    1485,    -1,   575,   576,    -1,    -1,    -1,   874,   875,   876,
     3232     877,    -1,   879,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3233      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   895,    -1,
     3234      -1,    -1,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
     3235     613,   614,   909,    -1,    -1,   618,   619,    -1,    -1,   579,
     3236      -1,    -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,
     3237      -1,   591,    -1,   593,    -1,    -1,   596,    -1,    -1,    -1,
    30943238      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3095      247,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,    -1,
    3096       -1,   884,    37,    -1,    -1,    -1,    -1,   950,   891,    -1,
    3097       -1,    -1,   571,   572,    -1,   958,   959,    -1,    -1,    -1,
    3098       -1,    -1,  1183,  1184,    -1,   914,    -1,    -1,    -1,    -1,
    3099       65,    -1,   975,    -1,    -1,    70,    -1,    72,    73,    74,
    3100       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,   716,
    3101       -1,    -1,  1027,  1028,    -1,    -1,    -1,    -1,    -1,    -1,
    3102       -1,    -1,    -1,   730,   805,    -1,  1009,   346,    -1,    -1,
    3103       -1,   106,     0,   108,   815,    -1,    -1,    -1,    -1,  1022,
    3104       -1,   116,    -1,    -1,  1027,  1028,    -1,  1030,  1031,   830,
    3105       -1,    -1,    -1,    -1,    -1,    -1,  1468,    -1,  1470,   982,
    3106      659,    -1,    -1,    31,   663,    -1,    -1,  1050,    -1,    -1,
    3107       -1,    -1,    -1,    -1,  1089,  1090,    -1,    -1,    10,    11,
    3108       12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3109       -1,    -1,  1504,   412,  1506,    -1,    -1,   696,    66,    10,
    3110       11,    12,    13,    14,    -1,    37,  1089,  1090,   427,    -1,
    3111       -1,    -1,  1095,   432,    -1,   822,    -1,    -1,    -1,    -1,
    3112       -1,   440,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
    3113      427,    -1,    -1,    65,    -1,    -1,    -1,  1549,    70,  1551,
    3114       72,    73,    74,    -1,    -1,    -1,  1012,   466,    -1,    81,
    3115       82,    -1,  1564,  1565,    65,    -1,    -1,    -1,    -1,    70,
    3116       -1,    -1,  1085,    74,    -1,   484,    -1,   486,    -1,  1152,
    3117       81,    82,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3118       -1,    -1,    -1,    -1,   116,   153,    -1,    -1,   717,   486,
    3119      719,    -1,    25,    26,    27,   106,  1397,   726,   727,    -1,
    3120       -1,    -1,   731,    -1,    -1,   116,    -1,    -1,   527,    -1,
    3121      809,    -1,  1195,  1414,   743,    -1,    -1,    -1,  1233,   748,
    3122       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1212,
    3123      527,    -1,    -1,    -1,    -1,    -1,    -1,  1220,    -1,    -1,
    3124       -1,    -1,    -1,    -1,   773,    -1,  1027,  1028,    -1,  1264,
    3125     1233,    -1,  1235,    -1,    -1,    -1,  1239,  1272,  1273,  1274,
    3126       -1,    -1,    -1,    96,    -1,    98,    -1,  1190,    -1,    -1,
    3127       -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,   247,
    3128       -1,  1264,    -1,  1212,   252,    -1,  1487,  1488,   817,  1272,
    3129     1273,  1274,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3130     1283,  1284,    -1,    -1,    -1,  1012,  1321,    -1,  1089,  1090,
    3131       -1,    -1,    -1,    -1,  1297,    -1,    -1,   636,   637,   638,
    3132       -1,    -1,    -1,   922,    -1,    -1,    -1,    -1,  1194,    -1,
    3133       -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,  1321,   636,
    3134      637,   638,    -1,    -1,   177,   874,   875,   876,   877,  1332,
    3135      879,    -1,    -1,   672,   187,   188,    -1,   654,    -1,   192,
    3136       -1,   194,   195,    -1,   683,    -1,   895,    -1,    -1,    -1,
    3137      689,    -1,     0,    -1,    -1,    -1,    -1,    -1,   346,    -1,
    3138      909,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3139       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3140      999,    -1,    -1,    31,    -1,    -1,   725,    -1,    37,   728,
    3141       -1,    -1,    -1,    -1,    -1,    -1,  1015,    -1,    -1,   948,
    3142       -1,    -1,    -1,    -1,    -1,    -1,  1292,  1410,    -1,    -1,
    3143       -1,   728,    -1,    -1,    -1,    -1,    65,    -1,    66,    -1,
    3144       -1,    -1,    -1,    -1,   412,   764,    -1,    76,    -1,    -1,
    3145       -1,    -1,  1233,    -1,  1437,    -1,    -1,    -1,   987,   427,
    3146       -1,    -1,    -1,  1392,   432,   994,    -1,    -1,    -1,   998,
    3147       -1,    -1,   440,    -1,  1003,    -1,  1005,  1460,    -1,    -1,
    3148     1009,  1010,  1011,  1264,  1467,  1014,   805,  1194,    -1,    -1,
    3149       -1,  1272,  1273,  1274,  1023,    -1,   815,  1096,   466,   818,
    3150       -1,    -1,    -1,    -1,   823,    -1,   825,    -1,    -1,    -1,
    3151       -1,   830,  1041,  1042,    -1,    -1,   484,    -1,   486,    -1,
    3152       -1,   818,    -1,    -1,    -1,   153,    -1,    -1,   825,    -1,
    3153       -1,    -1,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,
    3154     1321,    -1,  1071,  1526,    -1,  1074,    -1,    -1,    -1,    -1,
    3155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   527,
    3156       -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
    3157       -1,    -1,    -1,   892,    -1,    10,    11,    12,    13,    14,
    3158       -1,    -1,    -1,    -1,  1113,  1292,    -1,    -1,    37,    -1,
    3159     1119,  1120,    -1,    -1,    -1,   892,    -1,    -1,    -1,    -1,
    3160       -1,  1130,    37,    -1,    -1,    -1,  1135,    -1,    -1,  1138,
    3161       -1,  1140,    -1,    -1,  1143,    -1,    65,    -1,    -1,   247,
    3162       -1,    70,    -1,   591,   252,    74,    -1,  1156,    -1,    -1,
    3163       65,    -1,    81,    82,    -1,    70,    -1,    72,    73,    74,
    3164     1169,    -1,  1171,  1172,  1173,  1174,    81,    82,    -1,    -1,
    3165       -1,    -1,    -1,     0,    -1,    -1,   975,   106,  1187,    -1,
    3166     1189,    -1,   959,    -1,  1193,    -1,    -1,   116,   636,   637,
    3167      638,   106,    -1,    -1,    -1,    -1,    -1,    -1,   975,    -1,
    3168       -1,   116,    -1,    -1,    31,    -1,   654,    -1,    -1,    -1,
    3169       -1,    -1,    -1,    -1,    -1,    -1,  1225,  1226,    -1,    -1,
    3170       -1,    -1,    -1,    -1,   672,    -1,    -1,    -1,  1027,  1028,
    3171       -1,  1030,  1031,    -1,    -1,   683,    -1,    -1,   346,    66,
    3172       -1,   689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3173       -1,  1050,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,
    3174       -1,    -1,   575,   576,    -1,    -1,  1275,  1276,    -1,    -1,
    3175       -1,    -1,    -1,  1050,    -1,    -1,  1285,   725,    -1,    -1,
    3176      728,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3177     1089,  1090,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
    3178      613,   614,    -1,    -1,   412,   618,   619,    -1,    -1,    -1,
    3179       -1,    -1,    -1,    -1,    -1,    -1,   764,    -1,    -1,   427,
    3180       -1,    -1,    -1,    -1,   432,    -1,   153,    -1,    -1,  1338,
    3181       -1,    -1,   440,    -1,    -1,    10,    11,    12,    13,    14,
    3182       -1,  1350,    -1,  1352,  1353,  1354,    -1,    -1,    -1,    -1,
    3183       -1,    -1,    -1,  1152,    -1,  1364,    -1,   805,   466,    -1,
    3184       -1,    -1,    37,    -1,  1373,    -1,    -1,   815,    -1,    -1,
    3185      818,    -1,    -1,    -1,    -1,   823,   484,   825,   486,    -1,
    3186       -1,  1390,   830,    -1,    -1,    -1,    -1,    -1,   701,   702,
    3187       65,    -1,    -1,    -1,   707,    70,  1195,    72,    73,    74,
    3188       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
    3189       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1194,  1195,   527,
    3190      247,  1220,    -1,    -1,    -1,   252,    -1,    -1,    -1,    -1,
    3191       -1,   106,    -1,    -1,  1233,    -1,  1235,    -1,  1447,  1448,
    3192       -1,   116,    -1,  1220,   892,    -1,    -1,    -1,    -1,    -1,
    3193       -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,    -1,
    3194       -1,    -1,  1239,    -1,    -1,  1264,    -1,    -1,    -1,    -1,
    3195       -1,    -1,    -1,  1272,  1273,  1274,    -1,    -1,    -1,    -1,
    3196       -1,    -1,    -1,   591,  1283,  1284,    -1,    -1,    -1,    -1,
    3197     1499,    -1,    -1,    -1,  1503,    -1,    -1,    -1,  1297,    -1,
    3198       -1,    -1,    -1,    -1,    -1,    -1,  1283,  1284,    -1,    -1,
    3199       -1,    -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,   346,
    3200     1297,    -1,  1321,  1532,    -1,  1534,    -1,   975,   636,   637,
    3201      638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
    3203       -1,    -1,    -1,  1562,  1563,  1332,    -1,    -1,    -1,    -1,
    3204       -1,  1570,  1571,    -1,   672,    -1,    -1,    -1,    -1,    -1,
    3205       -1,    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,  1027,
    3206     1028,   689,  1030,  1031,    -1,   412,    -1,    -1,    -1,    -1,
     3239      -1,   948,   605,    -1,    -1,   608,   609,    -1,   611,    -1,
     3240     613,   614,   622,    -1,    -1,   618,   619,   627,    -1,    -1,
     3241      -1,    -1,    -1,    -1,    -1,    -1,   636,   637,   638,    -1,
    32073242      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3208      427,    -1,  1050,    -1,    -1,   432,    -1,    -1,    -1,    -1,
    3209       -1,  1410,    -1,   440,    -1,    -1,    -1,   725,    -1,    -1,
    3210      728,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3211       -1,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,   466,
    3212       -1,  1089,  1090,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3213       -1,    -1,    -1,    -1,    -1,    -1,   764,   484,    -1,   486,
    3214     1437,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,    -1,
     3243     987,    -1,    -1,   696,   654,    -1,    -1,   994,   701,   702,
     3244      -1,   998,    -1,    -1,   707,    -1,  1003,    -1,  1005,    -1,
     3245      -1,    -1,  1009,  1010,  1011,    -1,    -1,  1014,    -1,    -1,
     3246      -1,    -1,    -1,    -1,    -1,    -1,  1023,    -1,    -1,   689,
    32153247      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3216       -1,    -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
    3217     1467,    -1,    -1,    -1,    -1,    -1,    -1,   805,    -1,    -1,
    3218      527,    -1,    -1,    -1,  1152,    -1,    -1,   815,    -1,    -1,
    3219      818,    -1,    -1,    -1,    -1,   823,    -1,   825,    -1,    -1,
    3220     1519,    -1,   830,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3221       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    -1,
    3222       -1,    -1,  1519,    -1,    -1,    -1,    -1,  1195,    -1,    -1,
    3223       -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
    3224       -1,    -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,
    3225       -1,    -1,  1220,    -1,    -1,    -1,    -1,    -1,  1091,    -1,
    3226       -1,    -1,    -1,    -1,   892,  1233,    -1,  1235,    -1,    -1,
     3248      -1,    -1,    -1,    -1,  1041,  1042,    -1,    -1,   701,   702,
     3249     710,    -1,    -1,    -1,   707,    -1,    -1,    -1,    -1,    -1,
     3250      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   728,  1066,
     3251     730,    -1,  1069,    10,    11,    12,    13,    14,    15,    16,
     3252      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3253      -1,    -1,    29,    30,    31,    -1,    -1,    63,    -1,    -1,
     3254      37,    -1,    -1,    -1,   764,    -1,    -1,    73,    -1,    75,
     3255    1107,    77,    -1,    -1,    -1,    -1,  1113,  1114,    84,    -1,
     3256      -1,    -1,    -1,    60,    -1,    -1,    -1,  1124,    -1,    -1,
     3257      67,    68,  1129,    -1,    -1,  1132,    -1,  1134,    -1,    -1,
     3258    1137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   114,    -1,
     3259     116,   117,   118,  1150,    -1,    -1,    -1,    -1,   818,    -1,
     3260      -1,    -1,   822,    -1,    -1,   825,  1163,    -1,  1165,  1166,
     3261    1167,  1168,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,    -1,  1181,    -1,  1183,    -1,    -1,    -1,
     3263    1187,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32273264      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,   114,   636,
    3229      637,   638,    -1,    -1,    -1,    -1,  1264,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,  1272,  1273,  1274,   654,    -1,    -1,
    3231       -1,    -1,    -1,    -1,    -1,  1283,  1284,   143,    -1,    -1,
    3232       -1,    -1,    -1,    -1,    -1,   672,    -1,   153,    -1,  1297,
    3233       -1,   157,    -1,    -1,    -1,    -1,   683,    -1,    -1,    -1,
    3234       -1,    -1,   689,    -1,    -1,    -1,    -1,   975,    -1,    -1,
    3235       -1,    -1,    -1,  1321,    -1,    -1,    -1,    -1,    -1,    -1,
    3236       -1,    -1,    -1,    25,    26,    27,    -1,    -1,    -1,    -1,
    3237       36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   725,   205,
    3238       -1,   728,    -1,  1216,    -1,    -1,    -1,    -1,    -1,    -1,
    3239       -1,   217,    -1,    -1,    -1,    -1,    -1,    -1,    64,  1027,
    3240     1028,    -1,  1030,  1031,    70,    -1,    -1,    -1,    74,   235,
    3241      236,    77,    78,    79,    80,    81,    82,   764,    84,    85,
    3242       -1,    -1,  1050,    -1,    -1,    -1,    92,    -1,    -1,    -1,
    3243       -1,    -1,    -1,   259,    96,    -1,    98,    -1,    -1,    -1,
    3244      106,   267,  1410,    -1,    -1,    -1,    -1,    -1,    -1,   115,
    3245      116,   117,   118,   119,   120,    -1,    -1,    -1,   805,    -1,
    3246      122,  1089,  1090,    -1,   290,    -1,    -1,   293,   815,    -1,
    3247       -1,   818,    -1,    -1,    -1,    -1,   823,    -1,   825,    -1,
    3248       -1,    -1,    -1,   830,    -1,    -1,    -1,    -1,    -1,    -1,
    3249       -1,    -1,  1460,    36,    -1,    38,    -1,    -1,    -1,  1467,
     3265      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1215,  1216,
     3266      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3267      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3268      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3269      31,   217,    -1,   219,   220,   221,    37,    -1,   918,    -1,
     3270      -1,    -1,    -1,    -1,    -1,    43,    -1,    -1,  1265,  1266,
     3271      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1275,    60,
     3272      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,   255,
     3273      -1,    -1,    -1,   259,    -1,    76,    77,    -1,    -1,    -1,
     3274     960,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   275,
     3275      -1,    89,    -1,    -1,    -1,   975,    -1,    -1,    -1,    -1,
     3276     101,    99,   103,    -1,    -1,    -1,  1323,    -1,    -1,    -1,
     3277     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1335,    -1,
     3278    1337,  1338,  1339,    -1,    -1,    -1,    -1,    -1,    -1,  1009,
     3279      -1,    -1,  1349,    -1,    -1,    -1,    -1,    -1,   324,    -1,
     3280      -1,  1358,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     3281    1030,  1031,    -1,  1370,    -1,    -1,   154,    -1,    -1,   345,
     3282      -1,    -1,  1085,    -1,   350,   351,    -1,    59,    -1,   167,
     3283      -1,    -1,   358,    65,    -1,    -1,    -1,    69,    -1,    -1,
     3284      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3285      -1,    -1,   190,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3286      -1,    -1,    -1,    -1,  1421,  1422,   204,    -1,  1088,   101,
     3287      -1,   103,  1085,    -1,   400,   213,   108,  1434,   110,   111,
     3288     112,   113,   114,   115,  1441,   223,    -1,    -1,    -1,    -1,
     3289      -1,    -1,   418,    -1,    -1,    -1,    -1,   423,    -1,   425,
    32503290      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3251       -1,    -1,    -1,    -1,   340,   177,    -1,    -1,    -1,   345,
    3252       -1,    64,    -1,   185,  1152,   187,   188,    70,    -1,    -1,
    3253      192,    74,   194,   195,    77,    78,    79,    80,    81,    82,
    3254       -1,    84,    85,    -1,    -1,   892,    -1,    -1,    -1,    92,
    3255       -1,  1519,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3256       -1,    -1,    -1,   106,    -1,   108,    -1,  1195,   111,    -1,
    3257       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    63,
    3258       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,
    3259       -1,    75,  1220,    77,   420,   421,    -1,    -1,    -1,    -1,
    3260       84,   427,   264,    -1,    -1,  1233,    -1,  1235,    -1,    -1,
     3291     248,    -1,  1469,    -1,    -1,   253,   442,    -1,    -1,   445,
     3292     446,    -1,    -1,    -1,    -1,    -1,  1146,    -1,   266,    -1,
     3293      -1,    -1,    -1,    -1,   272,   461,   274,    -1,    -1,    -1,
     3294    1497,    -1,    -1,    -1,  1207,    -1,    -1,    -1,    -1,   475,
     3295      -1,    -1,    -1,   291,    -1,    -1,   482,    -1,    -1,    -1,
     3296      -1,    -1,    -1,    -1,    -1,    -1,  1523,    -1,  1188,    -1,
     3297      -1,  1528,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    32613298      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,   448,    -1,    -1,   451,    -1,    -1,   975,    -1,
    3263      114,   457,   116,   117,   118,    -1,  1264,    -1,    -1,    -1,
    3264       -1,    -1,    -1,    -1,  1272,  1273,  1274,     7,    -1,    -1,
    3265       10,    11,    12,    13,    14,  1283,  1284,    -1,   484,    -1,
    3266       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1297,
    3267      496,    -1,    -1,   157,    -1,    -1,    36,    37,    38,    -1,
    3268     1027,  1028,   508,  1030,  1031,    -1,   512,    -1,   514,   515,
    3269       -1,    -1,    -1,  1321,    -1,    -1,    -1,    -1,    -1,    -1,
    3270       -1,   527,    -1,  1050,    64,    65,    -1,    -1,    -1,    -1,
    3271       70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,
    3272       80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
    3273       -1,    -1,    92,   217,    -1,   219,   220,   221,    -1,    -1,
    3274       -1,    -1,  1089,  1090,    -1,    -1,   106,    -1,   108,    -1,
    3275       -1,    -1,    -1,   579,    -1,   115,   116,   117,   118,   119,
    3276      120,    -1,    -1,    -1,    -1,   591,    -1,   593,    -1,    -1,
    3277      596,   255,    -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,
    3278       -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3279       -1,   275,    -1,    -1,    -1,    -1,   622,    -1,    -1,    -1,
    3280       -1,   627,    -1,    -1,    -1,  1152,    -1,    -1,    -1,    -1,
    3281      636,   637,   638,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3282       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   654,    -1,
    3283       -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,  1467,
    3284      324,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1195,    -1,
    3285       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3286       -1,   345,    -1,   689,    -1,    -1,   350,   351,    -1,    -1,
    3287       -1,    -1,    -1,  1220,   358,    -1,    -1,    -1,    -1,    -1,
    3288       -1,    -1,    -1,    -1,   710,    -1,  1233,    -1,  1235,    -1,
    3289       -1,  1519,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
    3290       -1,    -1,   728,    -1,   730,    -1,    -1,    -1,    -1,    -1,
    3291       -1,    -1,    -1,   575,   576,    -1,   400,  1264,    -1,    -1,
    3292       -1,    -1,    -1,    -1,    -1,  1272,  1273,  1274,    -1,    -1,
    3293       -1,    -1,    -1,    -1,   418,    -1,  1283,  1284,   764,   423,
    3294       -1,   425,    -1,   605,    -1,    89,   608,   609,    -1,   611,
    3295     1297,   613,   614,    -1,    -1,    99,   618,   619,   442,    -1,
    3296       -1,   445,   446,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3297       -1,    -1,    -1,    36,  1321,    38,    -1,   461,    -1,    -1,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3299       -1,   475,   818,    -1,    -1,    -1,   822,    -1,   482,   825,
    3300       -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3301      154,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3302       -1,    84,    85,   167,    -1,    -1,    -1,    -1,    -1,    92,
    3303       -1,    -1,    -1,    -1,   696,    -1,    -1,    -1,    -1,   701,
    3304      702,    -1,    -1,   106,    -1,   707,   190,    -1,    -1,    -1,
    3305       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    -1,
    3306      204,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,   213,
    3307       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   223,
    3308       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3309       -1,    -1,   918,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,    -1,   248,    -1,    -1,    -1,    -1,   253,
    3311       -1,    -1,   596,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
    3312     1467,    -1,   266,    -1,    -1,    -1,    -1,    -1,   272,    -1,
    3313      274,    -1,    -1,    -1,   960,    -1,    -1,    -1,    -1,    -1,
    3314      624,    -1,    -1,    -1,    -1,   629,    -1,   291,    -1,   975,
    3315       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3316       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3317       26,    27,  1519,    29,    30,    31,    -1,    -1,   143,    -1,
    3318       -1,    37,    -1,  1009,    -1,    -1,    -1,    -1,   153,    -1,
    3319      334,    -1,    -1,    -1,    -1,   339,    -1,    -1,    -1,    -1,
    3320      165,    -1,    -1,    -1,  1030,  1031,    -1,    -1,    -1,    65,
    3321       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3322       76,    -1,    -1,   367,    -1,    81,    82,   371,   372,    -1,
    3323      374,    -1,   716,    -1,    -1,    -1,   380,   381,    -1,   383,
    3324      384,    -1,   386,    -1,   388,    -1,   730,    -1,    -1,    -1,
    3325      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3326      116,   405,    -1,    -1,    -1,    -1,   750,    -1,  1094,   413,
    3327      235,    -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,
    3328       14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329       -1,    -1,    -1,    -1,   438,   260,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    36,    37,    38,   449,    10,    11,    12,    13,
    3331       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3332       24,    25,    26,    -1,    -1,   809,  1152,    -1,   472,    -1,
    3333       64,    65,    -1,    37,   478,    -1,    70,    -1,   822,   483,
    3334       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3335       84,    85,    -1,    -1,    -1,    -1,    -1,   841,    92,    -1,
    3336       -1,    65,    -1,    -1,    -1,   152,   153,    -1,  1194,    -1,
    3337       -1,    -1,   106,    -1,   108,   519,    -1,    -1,    -1,    -1,
    3338       -1,   115,   116,   117,   118,   119,   120,    -1,    -1,    -1,
    3339       -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,   185,    -1,
    3340       -1,    -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,  1235,
    3341      375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3342       -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,    -1,  1091,
    3343       -1,    -1,    -1,    -1,    -1,    -1,   580,    36,    -1,    38,
    3344       -1,    -1,    -1,   587,   928,    -1,    -1,    -1,   592,    -1,
    3345       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1283,  1284,   603,
    3346       -1,    -1,    -1,    -1,    -1,    64,  1292,    -1,    -1,    -1,
    3347      954,    70,    -1,    -1,    -1,    74,    -1,   264,    77,    78,
    3348       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3349       -1,    -1,    -1,    92,    -1,    -1,    -1,   981,    -1,    -1,
    3350      644,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,
    3351       -1,   476,    -1,    -1,    -1,   114,   115,   116,   117,   118,
    3352      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,
    3353       -1,    -1,   319,    -1,    -1,   679,    -1,    -1,    -1,  1023,
    3354      327,   328,    -1,   330,   331,    -1,    -1,    -1,    -1,   514,
    3355       -1,    -1,    -1,   340,  1216,    -1,    -1,   344,    -1,    -1,
    3356       -1,    -1,   527,    -1,    -1,    -1,    -1,    -1,    -1,   534,
    3357       -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,   366,
    3358       -1,    -1,   547,   548,  1410,    -1,    -1,    -1,    -1,    -1,
    3359      734,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3360      744,   745,    -1,    -1,   569,   392,    -1,    -1,    -1,   396,
    3361       -1,    -1,    -1,   757,   579,    -1,    -1,    -1,    -1,    -1,
    3362       -1,   586,    -1,    -1,  1108,    -1,   591,    -1,    -1,    -1,
    3363      774,    -1,   776,    -1,    -1,    -1,   780,    -1,    -1,    -1,
    3364      427,    -1,    -1,  1469,    -1,  1471,    -1,    -1,    -1,    -1,
    3365       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3366       -1,    -1,    -1,   450,    -1,    -1,    -1,    -1,    -1,    -1,
    3367       -1,    -1,    -1,    -1,    -1,    -1,   641,    -1,    -1,  1505,
    3368       -1,  1507,    -1,    -1,   649,    -1,    -1,    -1,    -1,    -1,
    3369       -1,    -1,    -1,    -1,   481,    -1,    -1,   484,    -1,    -1,
    3370       -1,   845,    -1,    -1,    -1,    -1,    -1,    -1,   852,  1535,
    3371     1194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3372       -1,   865,    -1,   867,   689,    -1,    -1,    -1,    -1,    -1,
    3373       -1,    -1,    -1,    -1,    -1,    -1,   523,   881,    -1,   526,
    3374      527,    -1,    -1,    -1,   888,    -1,    -1,    -1,    -1,    -1,
    3375       -1,    -1,    -1,    -1,    -1,    -1,   900,    -1,    -1,   903,
    3376       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3377       -1,    -1,    -1,    -1,    -1,    -1,    -1,   921,    -1,    -1,
    3378       -1,    -1,    -1,    -1,   571,   572,    -1,    -1,    -1,    -1,
    3379       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   764,
    3380       -1,   766,    -1,   590,   591,    -1,   593,   772,  1292,    -1,
    3381       -1,    -1,    -1,    -1,   779,   602,    -1,   604,   605,    -1,
    3382       -1,    -1,    -1,    -1,   611,    -1,    -1,   278,   279,   280,
    3383       -1,    -1,    -1,    -1,   621,   622,   287,   288,    -1,    -1,
    3384      627,   292,   293,    -1,    -1,    -1,    -1,    -1,    -1,   636,
    3385      637,   638,    -1,   304,    -1,    -1,    -1,   822,   823,    -1,
    3386      825,    -1,    -1,    -1,  1008,    -1,    -1,   654,    -1,    -1,
    3387       -1,    -1,   659,   660,    -1,   840,   663,   664,    -1,    -1,
    3388       -1,    -1,    -1,   670,    -1,    -1,    -1,    -1,    -1,   340,
    3389       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3390       -1,   688,   689,   690,    -1,   692,    -1,    -1,    -1,   696,
    3391       -1,    -1,    -1,    -1,    -1,   880,    -1,    -1,    -1,   884,
    3392       -1,  1065,    -1,    -1,    -1,   376,    -1,    -1,    -1,    -1,
    3393     1074,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3394       -1,   728,   729,    10,    11,    12,    13,    14,    15,    16,
    3395       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3396     1104,    -1,    29,    30,    31,  1109,    -1,    -1,    -1,    -1,
    3397       37,    38,    -1,  1117,    -1,    -1,   763,   764,    -1,    -1,
    3398       -1,   768,   769,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,    -1,    -1,    -1,    -1,   960,    -1,    -1,    65,    -1,
    3400       -1,    -1,    -1,  1147,    -1,    72,    73,    -1,    -1,    -1,
    3401      975,   976,    -1,    -1,    -1,  1159,    -1,   982,  1162,    -1,
    3402     1164,    -1,   809,   988,    -1,    -1,   991,    -1,   993,    -1,
    3403       -1,   818,    -1,    -1,  1178,  1179,    -1,   824,   825,    -1,
    3404       -1,   108,   829,    -1,   831,   112,    -1,  1012,    -1,   116,
    3405       -1,    -1,    -1,    -1,   841,    -1,  1200,    -1,  1023,    -1,
    3406       -1,    -1,    -1,    -1,    -1,    -1,  1550,    -1,    -1,    -1,
    3407       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3408     1045,    -1,  1047,    -1,    -1,    -1,  1230,    -1,    -1,    -1,
    3409       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,  1063,   550,
    3410      551,   552,   553,   554,   555,   556,   557,   558,   559,   560,
    3411      561,   562,   563,   564,   565,   566,   567,    -1,    -1,    -1,
    3412       -1,    -1,  1087,    -1,    -1,    -1,    -1,   914,    -1,    -1,
    3413       -1,    -1,    -1,    -1,    -1,   922,    -1,    -1,    -1,    -1,
    3414       -1,   928,   593,    -1,    -1,    -1,    -1,    -1,    -1,   936,
    3415       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3416       -1,    -1,   949,   950,    -1,    -1,    -1,    -1,  1133,    -1,
    3417       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3418       -1,    -1,    -1,  1327,    -1,  1329,    -1,  1152,   975,    -1,
    3419       -1,    -1,    -1,    -1,   981,    -1,    -1,    -1,  1342,    -1,
    3420     1344,    -1,  1167,  1168,    -1,    -1,    -1,    -1,    -1,    -1,
    3421       -1,    -1,   999,  1000,    -1,    -1,    -1,    -1,  1362,    -1,
    3422       -1,    -1,  1009,    -1,    -1,    -1,    -1,    -1,  1015,  1016,
    3423       -1,  1018,  1019,  1020,  1378,  1379,    -1,    -1,    -1,    -1,
    3424      691,    -1,    -1,  1030,  1031,    -1,    -1,  1391,    -1,    -1,
    3425     1394,    -1,  1217,    -1,    -1,    36,    -1,    38,    -1,    -1,
    3426       -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3427       -1,    -1,  1416,    -1,    -1,   726,    -1,    -1,    -1,    -1,
    3428       -1,  1425,    -1,    64,  1428,  1250,  1430,  1431,  1432,    70,
    3429       -1,    -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,
    3430       81,    82,    -1,    84,    85,    -1,    -1,    -1,  1095,  1096,
    3431     1097,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3432      771,  1108,    -1,    -1,    -1,   106,    -1,   108,    -1,  1473,
    3433       -1,  1475,   113,  1477,   115,   116,   117,   118,   119,   120,
    3434       -1,    -1,    -1,    -1,    -1,    -1,  1311,    -1,  1492,    -1,
    3435       -1,   802,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3436       -1,    -1,    -1,    -1,    -1,  1152,   817,    -1,    -1,    -1,
    3437       -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
     3299      -1,    -1,    -1,    -1,  1207,    -1,   334,    -1,    -1,    -1,
     3300      -1,   339,    -1,    -1,    -1,  1225,    -1,    -1,    -1,    -1,
     3301      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3302      19,    20,    21,    22,    23,    24,    25,    26,    -1,   367,
     3303      29,    30,    31,   371,   372,    -1,   374,    -1,    37,    -1,
     3304      -1,    -1,   380,   381,    -1,   383,   384,    -1,   386,    -1,
     3305     388,    -1,     7,  1273,  1274,    10,    11,    12,    13,    14,
     3306      -1,    60,  1282,    -1,    -1,    -1,    -1,   405,    67,    68,
     3307     596,    -1,    -1,    -1,    -1,   413,    -1,    -1,    -1,    -1,
     3308      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3309      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   624,    -1,
     3310     438,    -1,    -1,   629,    59,    60,    -1,    -1,    -1,    -1,
     3311      65,   449,   111,    -1,    69,    -1,    -1,    72,    73,    74,
     3312      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3313      -1,    -1,    87,    -1,   472,    -1,    -1,    -1,    -1,    -1,
     3314     478,    -1,    -1,    -1,    -1,   483,   101,    -1,   103,    -1,
     3315      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3316     115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3317    1390,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3318      -1,   519,    -1,    -1,   278,   279,   280,    -1,    -1,    -1,
     3319     716,    -1,    -1,   287,   288,    -1,    -1,   535,   292,   293,
     3320      -1,    -1,    -1,    -1,   730,    -1,    -1,    -1,    -1,    -1,
     3321     304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,  1443,   750,    -1,    -1,    -1,    -1,    -1,
     3323      -1,    -1,    -1,   571,   152,   153,    -1,    -1,    -1,    -1,
     3324      -1,    -1,   580,    -1,    -1,    -1,   340,    -1,    -1,   587,
     3325      -1,    -1,    -1,  1473,   592,    -1,    -1,    -1,    -1,    -1,
     3326      -1,    -1,    -1,    -1,    -1,   603,    -1,   185,    -1,    -1,
     3327      -1,    -1,    -1,    -1,   192,    -1,    -1,    -1,  1498,    -1,
     3328      -1,    -1,   376,   809,    -1,    -1,    -1,    -1,    -1,    -1,
     3329      -1,    -1,    -1,    -1,    -1,    -1,   822,    -1,    -1,    -1,
     3330      -1,    -1,    -1,    -1,    -1,    -1,   644,    -1,    -1,    -1,
     3331      -1,    -1,    -1,     0,    -1,   841,     3,     4,     5,     6,
    34383332       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    34393333      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3440       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    36,
    3441       37,    38,    39,    -1,    41,    -1,    -1,    44,    45,    46,
    3442       47,    48,    49,    50,    51,  1212,    -1,    -1,    55,    -1,
    3443       -1,    -1,    59,    60,    -1,    62,  1401,    64,    65,    -1,
    3444       67,    -1,    69,    70,    -1,    72,    73,    74,  1235,    -1,
    3445       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3446       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
    3447       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3448       -1,   108,    -1,    -1,   111,    36,    -1,    38,   115,   116,
    3449      117,   118,   119,   120,    -1,    -1,  1283,  1284,   125,    -1,
    3450       -1,    -1,   129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3451       -1,    -1,    -1,    64,    -1,    -1,    -1,   968,  1483,    70,
    3452       -1,    72,    73,    74,    -1,    -1,    77,    78,    79,    80,
    3453       81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,
    3454       -1,    92,    -1,    -1,    -1,    -1,   997,    -1,    -1,    -1,
    3455       -1,    -1,    -1,    -1,    -1,   106,    -1,   108,  1009,   110,
    3456      111,    -1,    -1,    -1,   115,   116,   117,   118,   119,   120,
    3457     1535,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3458        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3459       19,    20,    21,    22,    23,    24,    25,    26,    -1,  1050,
    3460       29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3334      -1,   679,    29,    30,    31,    32,   264,    -1,    35,    -1,
     3335      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34613336      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3462       -1,    -1,    -1,  1410,    -1,    -1,    -1,    -1,    -1,    -1,
    3463       -1,    -1,    -1,    -1,    -1,    64,    65,    -1,    67,    -1,
    3464       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3465       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3466       -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,
    3467       -1,    -1,    -1,    -1,    -1,  1126,    -1,   106,    36,   108,
    3468       38,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3469      119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3470      129,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,
    3471       -1,    -1,    70,  1500,    -1,    -1,    74,    -1,  1169,    77,
    3472       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3473       -1,    -1,  1183,  1184,    92,    -1,    -1,    -1,  1525,  1526,
    3474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,
    3475      108,    -1,    -1,   111,    -1,    -1,    -1,   115,   116,   117,
    3476      118,   119,   120,  1550,     3,     4,     5,     6,     7,     8,
     3337      57,    -1,    -1,    60,    -1,    62,    -1,    64,    65,    -1,
     3338      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3339      77,    -1,    -1,    -1,    -1,    -1,   734,    -1,    -1,    -1,
     3340      -1,   319,   928,    -1,    -1,    -1,   744,   745,    -1,   327,
     3341     328,    -1,   330,   331,   101,    -1,   103,    -1,    -1,   757,
     3342      -1,    -1,   340,    -1,   111,    -1,   344,    -1,   954,    -1,
     3343      -1,    -1,    -1,    -1,    -1,    -1,   774,    -1,   776,    -1,
     3344      -1,    -1,   780,    -1,    -1,   363,    -1,    -1,   366,    -1,
     3345      -1,    -1,    -1,    -1,    -1,   981,   550,   551,   552,   553,
     3346     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
     3347     564,   565,   566,   567,   392,    -1,    -1,    -1,   396,    36,
     3348      -1,    38,    -1,    -1,    -1,    -1,  1012,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1023,    -1,   593,
     3350      -1,    -1,    59,    -1,    -1,    -1,    -1,   845,    65,   427,
     3351      67,    68,    69,    -1,   852,    72,    73,    74,    75,    76,
     3352      77,    -1,    79,    80,    -1,    -1,    -1,   865,    -1,   867,
     3353      87,    -1,   450,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3354      -1,    -1,    -1,   881,   101,    -1,   103,    -1,   105,   106,
     3355     888,    -1,    -1,   110,   111,   112,   113,   114,   115,    -1,
     3356      -1,    -1,   900,   481,    -1,   903,   484,    -1,    -1,    -1,
     3357      -1,    -1,    -1,    -1,    -1,    -1,  1102,    -1,    -1,    -1,
     3358      -1,    -1,    -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,    -1,    -1,
     3360      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,   526,   527,
     3361      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   713,
     3362      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3363     143,    -1,   726,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3364     153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3365      -1,    -1,   165,   571,   572,    -1,    -1,    -1,    -1,    -1,
     3366      -1,    -1,  1188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3367    1008,    -1,   590,   591,    -1,   593,    -1,   771,    -1,    -1,
     3368      -1,    -1,    -1,    -1,   602,    -1,   604,   605,    -1,    -1,
     3369      -1,    -1,    -1,   611,    -1,    -1,    -1,    -1,    -1,    -1,
     3370      -1,    -1,    -1,   621,   622,    -1,    -1,    -1,   802,   627,
     3371      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,   637,
     3372     638,    -1,   235,   817,    -1,  1063,    -1,    -1,    -1,    -1,
     3373      -1,  1069,    -1,    -1,    -1,    -1,   654,    -1,    -1,    -1,
     3374      -1,   659,   660,    -1,    -1,   663,   664,   260,    -1,    -1,
     3375      -1,    -1,   670,    -1,    -1,    -1,  1282,    -1,    -1,    -1,
     3376    1098,    -1,    -1,    -1,    -1,  1103,    -1,    -1,    -1,    -1,
     3377     688,   689,   690,  1111,   692,    -1,    -1,    -1,   696,     3,
     3378       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3379      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3380      24,    25,    26,  1141,    -1,    29,    30,    31,    -1,    -1,
     3381     728,   729,    -1,    37,    -1,  1153,    -1,    -1,  1156,    -1,
     3382    1158,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3383      -1,    -1,    -1,    -1,  1172,  1173,    60,    -1,    62,    -1,
     3384      64,    -1,    -1,    67,    68,   763,   764,    -1,    -1,    -1,
     3385     768,   769,    -1,    -1,    -1,    -1,  1194,    -1,    -1,    -1,
     3386      -1,    -1,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3387      -1,    -1,    -1,    -1,   968,    -1,    -1,    -1,    -1,   103,
     3388      -1,    -1,  1220,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3389      -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3390     818,    -1,    -1,   997,    -1,    -1,   824,   825,    -1,    -1,
     3391      -1,   829,    -1,   831,    -1,  1009,    -1,    -1,    -1,    -1,
     3392      -1,    -1,    -1,   841,    -1,    -1,    -1,    10,    11,    12,
     3393      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3394      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
     3395      -1,    -1,    -1,    -1,    37,    -1,  1050,    -1,    -1,    -1,
     3396      -1,    -1,    -1,   476,    -1,    -1,    -1,    -1,    -1,    -1,
     3397      -1,    -1,    -1,    -1,  1312,    -1,  1314,    60,    -1,    -1,
     3398      -1,    -1,    65,    -1,    67,    68,    69,  1513,    71,  1327,
     3399      -1,  1329,    -1,    76,    77,    -1,   914,    -1,    -1,    -1,
     3400      -1,   514,    -1,    -1,   922,    -1,    -1,    -1,    -1,  1347,
     3401     928,    -1,    -1,    -1,   527,    -1,    -1,    -1,   936,    -1,
     3402     103,   534,    -1,    -1,    -1,  1363,  1120,    -1,   111,    -1,
     3403      -1,   949,   950,  1371,   547,   548,  1374,    -1,    10,    11,
     3404      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3405      22,    23,    24,    25,    26,    27,   569,   975,  1396,    -1,
     3406      -1,    -1,    -1,   981,    -1,    37,   579,  1405,    -1,  1163,
     3407    1408,  1409,    -1,   586,    -1,    -1,    -1,    -1,   591,    -1,
     3408      -1,   999,  1000,  1177,  1178,    -1,    -1,    -1,    60,    -1,
     3409      -1,  1009,    -1,    -1,    -1,    -1,    -1,  1015,  1016,    71,
     3410    1018,  1019,  1020,    -1,    -1,    -1,    -1,  1445,    -1,  1447,
     3411      -1,    -1,  1030,  1031,    -1,    -1,    -1,    -1,    -1,    -1,
     3412      -1,    -1,    -1,    -1,  1462,    -1,    -1,    -1,   641,    -1,
     3413      -1,    -1,    -1,    -1,    -1,    -1,   649,     4,     5,     6,
     3414       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3415      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3416      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3417      37,  1089,  1090,  1091,    -1,    -1,   689,    -1,    -1,    -1,
     3418      -1,    -1,    -1,    -1,  1102,    -1,    -1,    -1,    -1,    -1,
     3419      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
     3420      67,    68,    -1,     3,     4,     5,     6,     7,     8,     9,
     3421      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3422      20,    21,    22,    23,    24,    25,    26,    -1,  1146,    29,
     3423      30,    31,    32,    -1,    -1,    35,   103,    37,    38,    -1,
     3424      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3425      -1,   764,    -1,   766,    -1,    -1,    -1,    57,    -1,   772,
     3426      60,    -1,    62,    -1,    64,    65,   779,    67,    68,    69,
     3427      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,    -1,
     3428      -1,    -1,    -1,  1377,    -1,    -1,    -1,    -1,  1206,    -1,
     3429      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3430    1394,   101,    -1,   103,    -1,    -1,    -1,  1225,    -1,   822,
     3431     823,   111,   825,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3432      -1,    -1,    -1,    -1,    -1,    -1,    -1,   840,    -1,    -1,
     3433      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3434      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
     3435      -1,    -1,    -1,    -1,    -1,  1273,  1274,    37,    -1,    -1,
     3436      -1,    -1,    -1,  1457,  1458,    -1,    -1,   880,    -1,    -1,
     3437      -1,   884,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3438      60,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
    34773439       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34783440      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    34793441      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
    3480       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3481       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3482       -1,    29,    30,    31,    -1,    64,    65,    -1,    67,    37,
    3483       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3484       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3485       -1,    -1,    -1,    92,    -1,    -1,    -1,    65,    -1,    -1,
    3486       -1,    -1,    -1,    -1,    72,    73,    -1,   106,    -1,   108,
    3487       -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3488      119,   120,    -1,    -1,     4,     5,     6,     7,     8,     9,
    3489       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3490       20,    21,    22,    23,    24,    25,    26,    -1,   116,    29,
    3491       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3492       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3493       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3494       -1,    -1,    -1,    -1,    64,    65,  1397,    67,    37,    69,
    3495       70,    -1,    72,    73,    74,    -1,    -1,    77,    78,    79,
    3496       80,    81,    82,  1414,    84,    85,    -1,    -1,    -1,    -1,
    3497       -1,    -1,    92,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3498       -1,    -1,    -1,    -1,    -1,    -1,   106,    76,   108,    -1,
    3499       -1,    -1,    -1,   113,    -1,   115,   116,   117,   118,   119,
    3500      120,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3442      39,    -1,    41,    -1,    -1,    44,    45,    46,    47,    48,
     3443      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3444      59,    60,    -1,    62,    -1,    64,    65,   960,    67,    68,
     3445      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3446      79,    80,   975,   976,    -1,    -1,    -1,    -1,    87,   982,
     3447      -1,    -1,  1390,    -1,    -1,   988,    -1,    -1,   991,    -1,
     3448     993,    -1,   101,    -1,   103,    -1,    36,   106,    38,    -1,
     3449      -1,   110,   111,   112,   113,   114,   115,    -1,    -1,  1012,
     3450      -1,    -1,    -1,    -1,    -1,   124,    -1,    -1,    -1,    59,
     3451    1023,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3452      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3453      80,    -1,  1045,    -1,  1047,    -1,    -1,    87,    -1,    -1,
     3454      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1062,
     3455      -1,   101,  1470,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3456     110,   111,   112,   113,   114,   115,    -1,    36,  1081,    38,
     3457      39,    -1,    41,  1491,  1492,    44,    45,    46,    47,    48,
     3458      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3459      59,    -1,    -1,    -1,    -1,  1513,    65,    -1,    -1,    -1,
     3460      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3461      79,    80,    -1,    -1,  1127,    -1,    -1,    -1,    87,    -1,
     3462      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3463      -1,    -1,   101,  1146,   103,    -1,    -1,   106,    -1,    -1,
     3464      -1,   110,   111,   112,   113,   114,   115,    -1,  1161,  1162,
     3465      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
     3466      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3467      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3468      31,    32,    -1,    -1,    35,    36,    37,    38,    -1,    -1,
     3469      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3470      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3471      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
     3472      -1,    72,    73,    74,    75,    76,    77,  1240,    79,    80,
     3473      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3474      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3475     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3476     111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
     3477      -1,    -1,    -1,   124,     3,     4,     5,     6,     7,     8,
     3478       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3479      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3480      29,    30,    31,    32,    -1,    -1,    35,    36,    37,    38,
     3481      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3482      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3483      59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3484      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3485      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3486      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1381,    -1,
     3487      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3488      -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
     3489       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3490      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3491      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3492      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3494    1453,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
     3495      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3496      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3497      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498      -1,    -1,    -1,    -1,   101,  1498,   103,    -1,    -1,    -1,
     3499      -1,   108,    -1,   110,   111,   112,   113,   114,   115,     4,
     3500       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3501      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3502      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3503      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3505      -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3506      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3507      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3508      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3509      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3510      -1,    -1,    -1,   108,    -1,   110,   111,   112,   113,   114,
     3511     115,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    35013512      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    35023513      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3503       -1,    -1,    -1,    36,    37,    38,  1487,  1488,    10,    11,
     3514      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3515      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    62,
     3517      -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3518      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3519      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3521     103,    -1,    -1,    -1,    -1,   108,    -1,   110,   111,   112,
     3522     113,   114,   115,     4,     5,     6,     7,     8,     9,    10,
     3523      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3524      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3525      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3526      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3527      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3528      -1,    62,    -1,    64,    65,    -1,    67,    68,    69,    -1,
     3529      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3530      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3531      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3532     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3533     111,   112,   113,   114,   115,     4,     5,     6,     7,     8,
     3534       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3535      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3536      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3537      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3538      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3539      59,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3540      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3541      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3542      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3543      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3544      -1,   110,   111,   112,   113,   114,   115,     4,     5,     6,
     3545       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3546      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3547      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3548      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3550      -1,    -1,    59,    60,    -1,    62,    -1,    64,    65,    -1,
     3551      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3552      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3553      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3554      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3555      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,     4,
     3556       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3557      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3558      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3559      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3561      -1,    -1,    -1,    -1,    59,    60,    -1,    62,    -1,    64,
     3562      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3563      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3564      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3565      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3566      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3567     115,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    35043568      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    35053569      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3506       -1,    64,    65,    -1,    67,    37,    69,    70,    -1,    72,
    3507       73,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3508       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,
    3509       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    -1,
    3510       72,    73,    -1,   106,    -1,   108,    -1,    -1,    -1,    -1,
    3511      113,    -1,   115,   116,   117,   118,   119,   120,     4,     5,
     3570      32,    -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,
     3571      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    60,    -1,
     3573      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3574      -1,    -1,    -1,    -1,    76,    77,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3576      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,
     3577      -1,   103,    -1,    -1,    -1,   107,    -1,    -1,    -1,   111,
     3578       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3579      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3580      23,    24,    25,    26,    27,    -1,    29,    30,    31,    32,
     3581      -1,    -1,    35,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3582      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3583      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3584      -1,    64,    -1,    -1,    67,    68,    -1,    -1,    71,     3,
     3585       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3586      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3587      24,    25,    26,    -1,    -1,    29,    30,    31,    32,    -1,
     3588     103,    35,    -1,    37,    -1,    -1,    -1,    -1,   111,    -1,
     3589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3590      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3591      64,    -1,    -1,    67,    68,     4,     5,     6,     7,     8,
     3592       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3593      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3594      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,   103,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    60,    -1,    62,    -1,    64,    65,    -1,    67,    68,
     3598      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    -1,
     3599      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3600      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3601      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3602      -1,    -1,   111,     4,     5,     6,     7,     8,     9,    10,
     3603      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3604      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3605      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
     3606      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3607      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3608      -1,    62,    -1,    64,    -1,    -1,    67,    68,    -1,    -1,
     3609       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3610      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3611      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3612      -1,   102,   103,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     3613     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3614      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3615      64,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,    -1,
     3616      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3617      -1,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3619      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,     4,     5,
    35123620       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    35133621      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    35143622      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3515       36,    37,    38,    10,    11,    12,    13,    14,    15,    16,
     3623      -1,    37,    10,    11,    12,    13,    14,    15,    16,    17,
     3624      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3625      -1,    29,    30,    31,    60,    -1,    62,    -1,    64,    37,
     3626      -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3627      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3628      -1,    -1,    60,    89,    -1,    -1,    -1,    65,    -1,    67,
     3629      68,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3630      -1,    -1,    -1,    -1,    -1,   111,     4,     5,     6,     7,
     3631       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3632      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3633      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3634      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3635      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3636      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     3637      68,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3638      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3639      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3640      -1,    -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,
     3641      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3642      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,
     3643      -1,    64,    -1,    -1,    67,    68,     4,     5,     6,     7,
     3644       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3645      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3646      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3647     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3648      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3649      -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,    67,
     3650      68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3651      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3652      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3653      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     3654      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3655      59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3656      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3657      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3658      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3659      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3660      -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
     3661      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3662      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3663      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3664      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3665      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3666      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3667      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3668      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3669      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3670     103,   104,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3671     113,   114,   115,    10,    11,    12,    13,    14,    15,    16,
    35163672      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3517       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    64,    65,
    3518       37,    67,    -1,    69,    70,    -1,    72,    73,    74,    -1,
    3519       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,    -1,
    3521       -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,    -1,
    3522      106,    -1,   108,    -1,    -1,    -1,    -1,   113,    -1,   115,
    3523      116,   117,   118,   119,   120,     4,     5,     6,     7,     8,
    3524        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3525       19,    20,    21,    22,    23,    24,    25,    26,    -1,   116,
     3673      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,
     3674      37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3675      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3676      -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3677      67,    68,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3678      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3679      87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3680      -1,    -1,    -1,    -1,   101,   102,   103,    -1,    -1,    -1,
     3681      -1,    -1,    -1,   110,   111,   112,   113,   114,   115,    10,
     3682      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3683      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3684      31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,    -1,
     3685      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3686      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
     3687      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3688      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3689      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3690      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3691     101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3692     111,   112,   113,   114,   115,    10,    11,    12,    13,    14,
     3693      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3694      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3695      -1,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,    -1,
     3696      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3697      -1,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,
     3698      65,    -1,    67,    68,    69,    -1,    -1,    72,    73,    74,
     3699      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3700      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3701      -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,
     3702      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3703     115,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3704      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    35263705      29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
     3706      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3707      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3708      59,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3709      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3710      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3712      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3713      -1,   110,   111,   112,   113,   114,   115,    10,    11,    12,
     3714      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3715      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3716      -1,    -1,    -1,    36,    37,    38,    -1,    -1,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3718      -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,    -1,
     3719      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    72,
     3720      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3721      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3723     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3724     113,   114,   115,    10,    11,    12,    13,    14,    15,    16,
     3725      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3726      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3727      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3728      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3729      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3730      67,    68,    69,    -1,    71,    -1,    -1,    -1,    -1,    76,
     3731      77,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3732      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3733      29,    30,    31,    -1,   101,    -1,   103,    -1,    37,    -1,
     3734      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3735      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3736      -1,    60,    -1,    -1,    -1,    -1,    65,    -1,    67,    68,
     3737      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    10,
     3738      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3739      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3740      31,    -1,   101,    -1,   103,    -1,    37,    -1,    -1,    -1,
     3741      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3742      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3743      -1,    -1,    -1,    -1,    65,    -1,    67,    68,    69,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    76,    77,    10,    11,    12,
     3745      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3746      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3747     101,    -1,   103,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3748     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3749      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     3750      -1,    -1,    65,    -1,    67,    68,    69,    -1,    -1,    -1,
     3751      -1,    -1,    -1,    76,    77,    10,    11,    12,    13,    14,
     3752      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3753      25,    26,    -1,    -1,    29,    30,    31,    -1,   101,    -1,
     3754     103,    -1,    37,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3755      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3756      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3757      65,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
     3758      -1,    76,    77,    10,    11,    12,    13,    14,    15,    16,
     3759      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3760      -1,    -1,    29,    30,    31,    -1,   101,    -1,   103,    -1,
     3761      37,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,    -1,
     3764      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
     3765      77,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3766      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3767      29,    30,    31,    -1,    -1,    -1,   103,    -1,    37,    -1,
     3768      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3769      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3770      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
     3771      -1,    -1,    71,    10,    11,    12,    13,    14,    15,    16,
     3772      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3773      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3774      37,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3775      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3776      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3777      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
     3778      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3779      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3780      -1,    -1,    37,    38,   101,    -1,   103,    -1,    -1,    -1,
     3781      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3782      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3783      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3784      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3785      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3786      -1,    37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3787      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3788      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3789      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     3790      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3791      27,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3792      37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3793      -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3794      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3795      67,    68,    -1,    -1,    71,    10,    11,    12,    13,    14,
     3796      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3797      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3798      -1,    -1,    37,    38,    -1,    -1,   103,    -1,    -1,    -1,
     3799      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3800      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3801      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3802      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3803      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3804      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3805      -1,    -1,   107,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3806      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    65,
     3807      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     3808      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3809      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
     3810      37,    38,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3811      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3812      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3813      67,    68,    10,    11,    12,    13,    14,    15,    16,    17,
     3814      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3815      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3816      -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
     3817      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3818      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3819      68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3820      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3821      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3822      -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,
     3823      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3824      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    35273825      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    35283826      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3529       30,    31,    32,    33,    34,    64,    65,    37,    67,    -1,
    3530       69,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3531       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3532       -1,    -1,    -1,    92,    -1,    65,    -1,    -1,    -1,    -1,
    3533       -1,    -1,    72,    73,    -1,    -1,    -1,   106,    -1,   108,
    3534       -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,   118,
    3535      119,   120,     4,     5,     6,     7,     8,     9,    10,    11,
    3536       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3537       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3538       -1,    -1,    -1,    -1,    36,    37,    38,    10,    11,    12,
    3539       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3540       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3541       -1,    -1,    64,    65,    37,    67,    -1,    69,    70,    -1,
    3542       72,    73,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3543       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3544       92,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3545       73,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,
    3546       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,     4,
    3547        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3548       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3549       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3550       -1,    36,    37,    38,    10,    11,    12,    13,    14,    15,
    3551       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3552       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    64,
    3553       65,    37,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3554       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3555       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    65,
    3556       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3557       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3558      115,   116,   117,   118,   119,   120,     4,     5,     6,     7,
    3559        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3560       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3561       -1,    29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,
    3562       38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3563       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    -1,    -1,    -1,    -1,    64,    65,    -1,    67,
    3565       -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,    77,
    3566       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3567       -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,
    3568       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,
    3569      108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,
    3570      118,   119,   120,     0,    -1,    -1,     3,     4,     5,     6,
    3571        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3572       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3573       -1,    -1,    29,    30,    31,    32,    -1,    -1,    35,    -1,
    3574       37,    38,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    62,    -1,    -1,    65,    -1,
    3577       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3578       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
    3579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3580       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3581       -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3582        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3583       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3584       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    32,
    3585       -1,    -1,    35,    -1,    37,    38,    -1,    -1,    -1,    -1,
    3586       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,
    3588       -1,    -1,    65,    -1,    67,    -1,    69,    70,    -1,    72,
    3589       73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
    3590       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3591       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3592       -1,    -1,    -1,   106,    -1,   108,    -1,    -1,    -1,   112,
    3593       -1,    -1,    -1,   116,     3,     4,     5,     6,     7,     8,
    3594        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3595       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3596       29,    30,    31,    32,    -1,    -1,    35,    -1,    37,    38,
    3597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3599       -1,    -1,    -1,    62,    -1,    -1,    65,    -1,    67,    -1,
    3600       69,    70,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,
    3601       -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,
    3602       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603       -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,
    3604       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,     3,     4,
    3605        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3606       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3607       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3608       -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3609       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3610       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3611       65,    -1,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3612       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
    3613       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3615       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3616       -1,   116,     3,     4,     5,     6,     7,     8,     9,    10,
     3827      30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,
     3828      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3829      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3830      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,
    36173831      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3618       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
    3619       31,    32,    -1,    -1,    35,    -1,    37,    -1,    -1,    -1,
    3620       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3621       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3622       -1,    -1,    -1,    -1,    65,    -1,    67,    -1,    69,    -1,
    3623       -1,    72,    73,    -1,    -1,    76,     3,     4,     5,     6,
    3624        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3625       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3626       -1,    -1,    29,    30,    31,    32,    -1,   108,    35,    -1,
    3627       37,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,
    3628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3629       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3630       67,    -1,    69,    -1,    -1,    72,    73,    -1,     3,     4,
    3631        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3632       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3633       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3634       -1,   108,    37,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3636       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3637       65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,
    3638        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3639       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3640       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
    3641       -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3642       -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3643       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3644       65,    -1,    67,    -1,    69,    70,    -1,    72,    73,    74,
    3645       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
    3646       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3649       -1,   116,     4,     5,     6,     7,     8,     9,    10,    11,
     3832      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     3833      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
     3834      -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,
     3835      -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     3836      -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,
    36503837      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    36513838      22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    36523839      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3654       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3655       -1,    -1,    -1,    65,    -1,    67,    -1,    69,    -1,    -1,
    3656       72,    73,    -1,    -1,     4,     5,     6,     7,     8,     9,
    3657       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3658       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3659       30,    31,    -1,    -1,    -1,   107,   108,    37,    -1,    -1,
    3660       -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3661       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3662       -1,    -1,    -1,    -1,    -1,    65,    -1,    67,    -1,    69,
    3663       -1,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
    3664       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3665       -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
    3666       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3667       -1,    -1,    -1,    -1,    -1,    -1,   116,     4,     5,     6,
    3668        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3840      -1,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3841     111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3842      -1,    -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,
     3843      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3844      23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
     3845      -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,
     3846      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3847      -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,
     3848      -1,    -1,    -1,    -1,    67,    68,    10,    11,    12,    13,
     3849      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3850      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
     3851      -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,
     3852     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3853      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
     3854      -1,    -1,    -1,    67,    68,    10,    11,    12,    13,    14,
     3855      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3856      25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,
     3857      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,
     3858      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,
     3859      -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,
     3860      -1,    -1,    67,    68,    10,    11,    12,    13,    14,    15,
     3861      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3862      26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
     3863      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,
     3864      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,
     3865      -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
     3866      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
    36693867      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    36703868      -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3671       37,    -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,
    3672       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3673       24,    25,    26,    27,    -1,    29,    30,    31,    65,    -1,
    3674       67,    -1,    69,    37,    -1,    72,    73,    -1,    -1,    -1,
    3675       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,
    3677       -1,    65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,
    3678       74,   108,    76,    -1,    -1,    -1,    -1,    81,    82,   116,
    3679        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3680       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3681       24,    25,    26,    -1,   108,    29,    30,    31,    -1,    -1,
    3682       -1,    -1,   116,    37,    -1,    -1,    -1,    -1,    -1,    -1,
    3683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3684       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
     3869      37,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
     3870      -1,    -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,
     3871      -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
     3872      67,    68,    10,    11,    12,    13,    14,    15,    16,    17,
     3873      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
     3874      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
     3875      -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,
     3876      -1,    -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,
     3877      -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3878      68,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3879      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     3880      29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,    -1,
     3881      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
     3882      -1,    -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,
     3883      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    36863884       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36873885      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    36883886      24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3689       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3690       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3887      -1,    -1,    -1,    37,   103,    -1,    -1,    -1,    -1,    -1,
     3888      -1,    -1,   111,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3889      -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    62,    -1,
     3890      64,    -1,    -1,    67,    68,    -1,    36,    -1,    38,    39,
     3891      -1,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
     3892      50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    59,
     3893      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,   102,    69,
     3894      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3895      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
    36913896      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3692       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3693        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3694       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3695       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3696       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3697       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3897      -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3898     110,   111,   112,   113,   114,   115,    -1,    36,    -1,    38,
     3899      39,    -1,    41,    -1,   124,    44,    45,    46,    47,    48,
     3900      49,    50,    51,    -1,    53,    -1,    -1,    56,    57,    -1,
     3901      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3902      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3903      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
    36983904      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3699       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3700        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3701       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3702       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3703       -1,    -1,    -1,    37,   108,    -1,    -1,    -1,    -1,    -1,
    3704       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3705       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3706       -1,    65,    -1,    67,    -1,    69,    -1,    -1,    72,    73,
    3707       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3708       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
    3709       30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,    -1,
    3710       -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3712       -1,    -1,    -1,    -1,    64,    65,    -1,    -1,    -1,    -1,
    3713       70,    -1,    72,    73,    74,    -1,    -1,    77,    78,    79,
    3714       80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,    -1,
    3715       -1,    -1,    92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3716       -1,    -1,    -1,    -1,    -1,    -1,   106,    -1,   108,    -1,
    3717       -1,   111,    -1,    -1,    -1,   115,   116,   117,   118,   119,
    3718      120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3719       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3720       29,    30,    31,    -1,    -1,    -1,    -1,    36,    37,    38,
    3721       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3722       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3723       29,    30,    31,    -1,    -1,    64,    65,    -1,    37,    -1,
    3724       -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,    78,
    3725       79,    80,    81,    82,    -1,    84,    85,    -1,    -1,    -1,
    3726       -1,    -1,    -1,    92,    -1,    -1,    65,    -1,    -1,    -1,
    3727       -1,    70,    -1,    72,    73,    74,    -1,   106,    -1,   108,
    3728      109,    -1,    81,    82,    -1,    -1,   115,   116,   117,   118,
    3729      119,   120,    10,    11,    12,    13,    14,    15,    16,    17,
    3730       18,    19,    20,    21,    22,    23,    24,    25,    26,   108,
    3731       -1,    29,    30,    31,    -1,    -1,    -1,   116,    36,    37,
    3732       38,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
    3733       18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    3734       -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,    37,
    3735       -1,    -1,    70,    -1,    72,    73,    74,    -1,    -1,    77,
    3736       78,    79,    80,    81,    82,    -1,    84,    85,    -1,    -1,
    3737       -1,    -1,    -1,    -1,    92,    -1,    -1,    65,    -1,    -1,
    3738       -1,    -1,    70,    -1,    72,    73,    -1,    -1,   106,   107,
    3739      108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,   117,
    3740      118,   119,   120,    10,    11,    12,    13,    14,    15,    16,
    3741       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3742      108,    -1,    29,    30,    31,    -1,    -1,    -1,   116,    36,
    3743       37,    38,    -1,    10,    11,    12,    13,    14,    15,    16,
    3744       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3745       -1,    -1,    29,    30,    31,    -1,    -1,    64,    65,    -1,
    3746       37,    38,    -1,    70,    -1,    72,    73,    74,    -1,    -1,
    3747       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3748       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    65,    -1,
    3749       -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,   106,
    3750       -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   115,   116,
    3751      117,   118,   119,   120,    10,    11,    12,    13,    14,    15,
    3752       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3753       26,   108,    -1,    29,    30,    31,    -1,    -1,    -1,   116,
    3754       36,    37,    38,    -1,    10,    11,    12,    13,    14,    15,
    3755       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3756       26,    -1,    -1,    29,    30,    31,    -1,    -1,    64,    65,
    3757       -1,    37,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3758       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    65,
    3760       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3761      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,   115,
    3762      116,   117,   118,   119,   120,    10,    11,    12,    13,    14,
    3763       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3764       25,    26,   108,    -1,    29,    30,    31,    -1,    -1,    -1,
    3765      116,    36,    37,    38,    -1,    10,    11,    12,    13,    14,
    3766       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3767       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    64,
    3768       65,    -1,    37,    -1,    -1,    70,    -1,    72,    73,    74,
    3769       -1,    -1,    77,    78,    79,    80,    81,    82,    -1,    84,
    3770       85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,
    3771       65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,
    3772       -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,
    3773      115,   116,   117,   118,   119,   120,    10,    11,    12,    13,
    3774       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3775       24,    25,    26,   108,    -1,    29,    30,    31,    -1,    -1,
    3776       -1,   116,    36,    37,    38,    -1,    -1,    -1,    -1,    -1,
    3777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3778       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3779       64,    65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,
    3780       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3781       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,
    3782       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3783       -1,    -1,   106,    -1,   108,    -1,    -1,    -1,    -1,    -1,
    3784       -1,   115,   116,   117,   118,   119,   120,     3,     4,     5,
    3785        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3786       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3787       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3788       -1,    37,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    3789       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3790       25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,    65,
    3791       -1,    67,    37,    69,    -1,    -1,    72,    73,    -1,    -1,
    3792       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3793       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3794       65,    -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,
    3795       -1,    -1,    -1,    -1,    -1,   111,    81,    82,    10,    11,
    3796       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3797       22,    23,    24,    25,    26,    -1,    -1,    29,    30,    31,
    3798       -1,   106,    -1,   108,    -1,    37,    -1,    -1,    -1,    -1,
    3799       -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3801       -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    70,    -1,
    3802       72,    73,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,
    3803       82,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3804       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3805       29,    30,    31,    -1,   106,    -1,   108,    -1,    37,    -1,
    3806       -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,
    3807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3808       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3809       -1,    70,    -1,    72,    73,    74,    -1,    -1,    -1,    -1,
    3810       -1,    -1,    81,    82,    10,    11,    12,    13,    14,    15,
    3811       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3812       26,    -1,    -1,    29,    30,    31,    -1,   106,    -1,   108,
    3813       -1,    37,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
    3814       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3816       -1,    -1,    -1,    -1,    70,    -1,    72,    73,    74,    -1,
    3817       -1,    -1,    -1,    -1,    -1,    81,    82,    10,    11,    12,
    3818       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3819       23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
    3820      106,    -1,   108,    -1,    37,    -1,    -1,    -1,    -1,    -1,
    3821      116,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3822       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3823       26,    27,    65,    29,    30,    31,    -1,    -1,    -1,    72,
    3824       73,    37,    -1,    76,    10,    11,    12,    13,    14,    15,
    3825       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3826       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    65,
    3827       -1,    37,    38,   106,    -1,   108,    72,    73,    -1,    -1,
    3828       76,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,
    3829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3830       -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3831      106,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3832      116,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
    3833       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3834       26,    27,   108,    29,    30,    31,   112,    -1,    -1,    -1,
    3835      116,    37,    -1,    10,    11,    12,    13,    14,    15,    16,
    3836       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3837       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    65,
    3838       37,    38,    -1,    -1,    -1,    -1,    72,    73,    -1,    -1,
    3839       76,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3840       19,    20,    21,    22,    23,    24,    25,    26,    65,    -1,
    3841       29,    30,    31,    -1,    -1,    72,    73,    -1,    37,    -1,
    3842       -1,    -1,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3843      116,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
    3845       -1,   108,    -1,    72,    73,   112,    -1,    -1,    -1,   116,
    3846       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3847       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3848       29,    30,    31,    -1,    -1,    -1,    -1,   106,    37,   108,
    3849       -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,    10,    11,
    3850       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3851       22,    23,    24,    25,    26,    -1,    65,    29,    30,    31,
    3852       -1,    -1,    -1,    72,    73,    37,    -1,    10,    11,    12,
    3853       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3854       23,    24,    25,    26,    -1,    -1,    29,    30,    31,    -1,
    3855       -1,    -1,    -1,    65,    37,    -1,    -1,   106,    -1,   108,
    3856       72,    73,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,
    3857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3858       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
    3859       73,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,
    3860       -1,    -1,    -1,    -1,   116,    -1,    -1,    10,    11,    12,
    3861       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3862       23,    24,    25,    26,    -1,   108,    29,    30,    31,    -1,
    3863       -1,    -1,    -1,   116,    37,    -1,    10,    11,    12,    13,
    3864       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3865       24,    25,    26,    -1,    -1,    29,    30,    31,    -1,    -1,
    3866       -1,    -1,    65,    37,    -1,    -1,    -1,    -1,    -1,    72,
    3867       73,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3868       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3869       -1,    65,    29,    30,    31,    -1,    -1,    -1,    72,    73,
    3870       37,    -1,    -1,    -1,    -1,   108,    -1,    -1,    -1,    -1,
    3871       -1,    -1,    -1,   116,    -1,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3873       -1,    -1,    -1,    -1,   108,    72,    73,    -1,    -1,    -1,
    3874       -1,    -1,   116,    10,    11,    12,    13,    14,    15,    16,
    3875       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3876       -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
    3877       37,   108,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   116,
    3878       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3879       20,    21,    22,    23,    24,    25,    26,    -1,    65,    29,
    3880       30,    31,    -1,    -1,    -1,    72,    73,    37,    -1,    10,
    3881       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3882       21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
    3883       31,    -1,    -1,    -1,    -1,    65,    37,    -1,    -1,    -1,
    3884       -1,   108,    72,    73,    -1,    -1,    -1,    -1,    -1,   116,
    3885       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3886       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
    3887       -1,    72,    73,    -1,    -1,    -1,    -1,    -1,   108,    -1,
    3888       -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,
    3889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    -1,    -1,    -1,    -1,    -1,    -1,   108,    -1,    -1,
    3891       -1,    -1,    -1,    -1,    -1,   116,     4,     5,     6,     7,
     3905      -1,    -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,
     3906      -1,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
     3907      -1,    -1,    -1,    -1,    -1,   124,     4,     5,     6,     7,
    38923908       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    38933909      18,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
    38943910      -1,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    37,
    3895       -1,    -1,    36,    -1,    38,    39,    -1,    41,    -1,    -1,
    3896       44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
    3897       54,    55,    -1,    -1,    -1,    59,    60,    65,    62,    67,
    3898       64,    69,    -1,    -1,    72,    73,    70,    -1,    -1,    -1,
    3899       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3900       84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    92,    -1,
    3901       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   107,
    3902       -1,    -1,   106,    -1,   108,    -1,    -1,   111,    -1,    -1,
    3903       -1,   115,   116,   117,   118,   119,   120,    -1,    -1,    -1,
    3904       -1,   125,    -1,    -1,    36,   129,    38,    39,    -1,    41,
    3905       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3906       -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
    3907       62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3908       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3909       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3910       92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3912       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,    -1,
    3913       -1,    -1,    -1,   125,    -1,    -1,    -1,   129,     4,     5,
    3914        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3915       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3916       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3917       -1,    37,    -1,    -1,    36,    -1,    38,    39,    -1,    41,
    3918       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
    3919       -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,    65,
    3920       62,    67,    64,    69,    -1,    -1,    72,    73,    70,    -1,
    3921       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3922       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    94,    -1,
    3923       92,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3924       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3925       -1,    -1,    -1,   115,   116,   117,   118,   119,   120,    36,
    3926       -1,    38,    39,   125,    41,    42,    43,    44,    45,    46,
    3927       47,    48,    49,    50,    51,    -1,    -1,    -1,    55,    -1,
    3928       -1,    -1,    59,    60,    -1,    62,    -1,    64,    -1,    -1,
    3929       -1,    -1,    -1,    70,    -1,    -1,    -1,    74,    -1,    -1,
    3930       77,    78,    79,    80,    81,    82,    -1,    84,    85,    -1,
    3931       -1,    -1,    -1,    -1,    -1,    92,    -1,    -1,    -1,    -1,
    3932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
    3933       -1,   108,    -1,    -1,   111,    -1,    -1,    -1,   115,   116,
    3934      117,   118,   119,   120,    36,    -1,    38,    39,   125,    41,
    3935       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
    3936       -1,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
    3937       62,    -1,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,
    3938       -1,    -1,    74,    -1,    -1,    77,    78,    79,    80,    81,
    3939       82,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,
    3940       92,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,    -1,
    3941       -1,    -1,    -1,    -1,   106,    -1,   108,    -1,    -1,   111,
    3942       36,    -1,    38,   115,   116,   117,   118,   119,   120,    64,
    3943       -1,    -1,    -1,   125,    -1,    70,    -1,    -1,    -1,    74,
    3944       -1,    -1,    77,    78,    79,    80,    81,    82,    64,    84,
    3945       85,    -1,    -1,    -1,    70,    -1,    -1,    92,    74,    -1,
    3946       -1,    77,    78,    79,    80,    81,    82,    -1,    84,    85,
    3947       -1,   106,    -1,   108,    -1,    -1,    92,    36,    -1,    38,
    3948      115,   116,   117,   118,   119,   120,    -1,    -1,    -1,    -1,
    3949      106,    -1,   108,    -1,    -1,    -1,    36,    -1,    38,   115,
    3950      116,   117,   118,   119,   120,    64,    -1,    -1,    -1,    -1,
    3951       -1,    70,    -1,    -1,    -1,    74,    -1,    -1,    77,    78,
    3952       79,    80,    81,    82,    64,    84,    85,    -1,    -1,    -1,
    3953       70,    -1,    -1,    92,    74,    -1,    -1,    77,    78,    79,
    3954       80,    81,    82,    -1,    84,    85,    -1,   106,    -1,   108,
    3955       -1,    -1,    92,    36,    -1,    38,   115,   116,   117,   118,
    3956      119,   120,    -1,    -1,    -1,    -1,   106,    -1,   108,    -1,
    3957       -1,    -1,    36,    -1,    38,   115,   116,   117,   118,   119,
    3958      120,    64,    -1,    -1,    -1,    -1,    -1,    70,    -1,    -1,
    3959       -1,    74,    -1,    -1,    77,    78,    79,    80,    81,    82,
    3960       64,    84,    85,    -1,    -1,    -1,    70,    -1,    -1,    92,
    3961       74,    -1,    -1,    77,    78,    79,    80,    81,    82,    -1,
    3962       84,    85,    -1,   106,    -1,    -1,    -1,    -1,    92,    -1,
    3963       -1,    -1,   115,   116,   117,   118,   119,   120,    -1,    -1,
    3964       -1,    -1,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3965       -1,   115,   116,   117,   118,   119,   120,     4,     5,     6,
    3966        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3967       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3911      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3912      20,    21,    22,    23,    24,    25,    26,    -1,    -1,    29,
     3913      30,    31,    60,    -1,    62,    -1,    64,    37,    -1,    67,
     3914      68,    -1,    36,    -1,    38,    39,    -1,    41,    42,    43,
     3915      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
     3916      60,    89,    56,    57,    -1,    59,    -1,    67,    68,    -1,
     3917      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3918      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3919      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3920      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3921      -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,
     3922     114,   115,    36,    -1,    38,    39,    -1,    41,    42,    43,
     3923      44,    45,    46,    47,    48,    49,    50,    51,    -1,    53,
     3924      -1,    -1,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,
     3925      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3926      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3927      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,
     3928      -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,   103,
     3929      -1,    -1,   106,    -1,    -1,    -1,   110,   111,   112,   113,
     3930     114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
     3931      -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,    76,
     3932      77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
     3933      87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,
     3934      -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,    -1,
     3935      -1,    -1,   109,   110,   111,   112,   113,   114,   115,    59,
     3936      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,
     3937      -1,    -1,    72,    73,    74,    75,    76,    77,    -1,    79,
     3938      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
     3939      -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,
     3940      -1,   101,    -1,   103,    -1,    -1,   106,    -1,    -1,    -1,
     3941     110,   111,   112,   113,   114,   115,    59,    -1,    -1,    -1,
     3942      -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,
     3943      73,    74,    75,    76,    77,    -1,    79,    80,    -1,    -1,
     3944      -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
     3945      36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,    -1,
     3946     103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,
     3947     113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,    65,
     3948      -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,    75,
     3949      76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
     3950      -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,    38,
     3951      -1,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1,
     3952      -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
     3953      59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
     3954      69,    -1,    -1,    72,    73,    74,    75,    76,    77,    -1,
     3955      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,
     3956      -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,    -1,
     3957      -1,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     3958      -1,   110,   111,   112,   113,   114,   115,    59,    -1,    -1,
     3959      -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,    -1,
     3960      72,    73,    74,    75,    76,    77,    -1,    79,    80,    -1,
     3961      -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
     3962      -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,   101,
     3963      -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,   110,   111,
     3964     112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,    -1,
     3965      65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,    74,
     3966      75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,    -1,
     3967      -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    36,    -1,
     3968      38,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,    -1,
     3969      -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,
     3970     115,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
     3971      -1,    69,    -1,    -1,    72,    73,    74,    75,    76,    77,
     3972      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
     3973      -1,    -1,    -1,    -1,    -1,    36,    -1,    38,    -1,    -1,
     3974      -1,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,    -1,
     3975      -1,    -1,   110,   111,   112,   113,   114,   115,    59,    -1,
     3976      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
     3977      -1,    72,    73,    74,    75,    76,    77,    -1,    79,    80,
     3978      -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
     3979      -1,    -1,    36,    -1,    38,    -1,    -1,    -1,    -1,    -1,
     3980     101,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   110,
     3981     111,   112,   113,   114,   115,    59,    -1,    -1,    -1,    -1,
     3982      -1,    65,    -1,    -1,    -1,    69,    -1,    -1,    72,    73,
     3983      74,    75,    76,    77,    -1,    79,    80,    -1,    -1,    -1,
     3984      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
     3985      -1,    -1,    -1,    -1,    -1,    -1,    -1,   101,    -1,    -1,
     3986      -1,    -1,    -1,    -1,    -1,    -1,   110,   111,   112,   113,
     3987     114,   115,     4,     5,     6,     7,     8,     9,    10,    11,
     3988      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3989      22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,    -1,
     3990      -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,    -1,
    39683991      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3969       37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3970       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3971       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3972       67,    -1,    69,    70,    -1,    72,    73,    74,    -1,    -1,
    3973       -1,    -1,    -1,    -1,    81,    82,     3,     4,     5,     6,
     3992      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
     3993      62,    -1,    64,    65,    -1,    67,    68,    69,    -1,    -1,
     3994      -1,    -1,    -1,    -1,    76,    77,     3,     4,     5,     6,
    39743995       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    39753996      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    39773998      37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39783999      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
    3980       67,    -1,    69,    -1,    -1,    72,    73,     3,     4,     5,
     4000      -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,    -1,
     4001      67,    68,     3,     4,     5,     6,     7,     8,     9,    10,
     4002      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     4003      21,    22,    23,    24,    25,    26,    -1,    -1,    29,    30,
     4004      31,    -1,    -1,    -1,    -1,    -1,    37,    -1,    -1,    -1,
     4005      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4006      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
     4007      -1,    62,    -1,    64,    -1,    -1,    67,    68,     4,     5,
    39814008       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    39824009      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     
    39844011      -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39854012      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3986       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3987       -1,    67,    -1,    69,    -1,    -1,    72,    73,     4,     5,
    3988        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3989       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3990       26,    -1,    -1,    29,    30,    31,    -1,    -1,    -1,    -1,
    3991       -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     4013      -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    64,    -1,
     4014      -1,    67,    68,    10,    11,    12,    13,    14,    15,    16,
     4015      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     4016      -1,    -1,    29,    30,    31,    32,    33,    34,    -1,    -1,
     4017      37,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     4018      19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
     4019      29,    30,    31,    60,    -1,    -1,    -1,    -1,    37,    -1,
     4020      67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39924021      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,
    3994       -1,    67,    -1,    69,    -1,    -1,    72,    73
     4022      -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68
    39954023};
    39964024
     
    40024030      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    40034031      22,    23,    24,    25,    26,    29,    30,    31,    32,    35,
    4004       37,    38,    62,    65,    67,    69,    70,    72,    73,    74,
    4005       81,    82,   106,   108,   116,   134,   138,   195,   210,   211,
    4006      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    4007      222,   223,   224,   225,   226,   227,   229,   230,   231,   232,
    4008      233,   234,   235,   236,   238,   239,   240,   241,   242,   243,
    4009      244,   252,   253,   279,   280,   281,   289,   292,   298,   299,
    4010      301,   303,   304,   310,   315,   319,   320,   321,   322,   323,
    4011      324,   325,   326,   346,   363,   364,   365,   366,    70,   116,
    4012      136,   213,   215,   223,   225,   235,   239,   241,   280,    80,
    4013      106,   308,   309,   310,   308,   308,    70,    72,    73,    74,
    4014      135,   136,   269,   270,   290,   291,    72,    73,   270,   106,
    4015      301,    11,   196,   106,   116,   315,   320,   321,   322,   324,
    4016      325,   326,   109,   131,   108,   216,   223,   225,   319,   323,
    4017      362,   363,   366,   367,   132,   128,   273,   111,   132,   170,
    4018       72,    73,   134,   268,   132,   132,   132,   113,   132,    72,
    4019       73,   106,   116,   305,   314,   315,   316,   317,   318,   319,
    4020      323,   327,   328,   329,   330,   331,   337,     3,    27,    76,
    4021      237,     3,     5,    72,   108,   116,   215,   226,   230,   233,
    4022      242,   281,   319,   323,   366,   213,   215,   225,   235,   239,
    4023      241,   280,   319,   323,    32,   231,   231,   226,   233,   132,
    4024      231,   226,   231,   226,    73,   106,   111,   270,   281,   111,
    4025      270,   231,   226,   113,   132,   132,     0,   131,   106,   170,
    4026      308,   308,   131,   108,   223,   225,   364,   268,   268,   225,
    4027      128,   106,   116,   305,   315,   319,   108,   116,   366,   302,
    4028      228,   310,   106,   286,   106,   106,    49,   106,    36,    38,
    4029       64,    70,    74,    77,    78,    79,    80,    84,    85,    92,
    4030      106,   108,   115,   116,   117,   118,   119,   120,   133,   138,
    4031      139,   140,   141,   146,   147,   148,   149,   150,   151,   152,
    4032      153,   154,   155,   156,   157,   158,   159,   161,   163,   223,
    4033      272,   288,   362,   367,   225,   107,   107,   107,   107,   107,
    4034      107,   107,    72,    73,   108,   223,   268,   346,   364,   108,
    4035      116,   161,   215,   216,   222,   225,   229,   230,   235,   238,
    4036      239,   241,   258,   259,   263,   264,   265,   266,   280,   346,
    4037      358,   359,   360,   361,   366,   367,   109,   106,   319,   323,
    4038      366,   106,   113,   129,   108,   111,   116,   161,   274,   112,
    4039      131,   113,   129,   106,   113,   129,   113,   129,   113,   129,
    4040      308,   129,   315,   316,   317,   318,   328,   329,   330,   331,
    4041      225,   314,   327,    62,   307,   108,   308,   345,   346,   308,
    4042      308,   170,   131,   106,   308,   345,   308,   308,   225,   305,
    4043      106,   106,   224,   225,   223,   225,   109,   131,   223,   362,
    4044      367,   170,   131,   268,   273,   215,   230,   319,   323,   170,
    4045      131,   290,   225,   235,   129,   225,   225,   288,    38,   108,
    4046      223,   245,   246,   247,   248,   362,   366,   111,   254,   270,
    4047      111,   225,   290,   129,   129,   301,   131,   136,   267,     3,
    4048      132,   205,   206,   220,   222,   225,   131,   307,   106,   307,
    4049      161,   315,   225,   106,   131,   268,   111,    32,    33,    34,
    4050      223,   282,   283,   285,   131,   126,   128,   287,   131,   226,
    4051      232,   233,   268,   311,   312,   313,   106,   139,   106,   146,
    4052      146,   148,   106,   146,   106,   106,   146,   146,   136,   108,
    4053      161,   166,   170,   223,   271,   362,   109,   131,   148,   148,
    4054       80,    83,    84,    85,   106,   108,   110,    95,    96,    97,
    4055       98,    99,   100,   101,   102,   103,   104,   128,   165,   148,
    4056      116,   121,   122,   118,   119,    86,    87,    88,    89,   123,
    4057      124,    90,    91,   117,   125,   126,    92,    93,   127,   128,
    4058      369,   106,   116,   341,   342,   343,   344,   345,   107,   113,
    4059      106,   345,   346,   106,   345,   346,   131,   106,   223,   364,
    4060      109,   131,   108,   116,   132,   223,   225,   357,   358,   366,
    4061      367,   132,   106,   108,   116,   315,   332,   333,   334,   335,
    4062      336,   337,   338,   339,   340,   346,   347,   348,   349,   350,
    4063      351,   352,   116,   366,   225,   132,   132,   116,   223,   225,
    4064      359,   268,   223,   346,   359,   268,   106,   131,   131,   131,
    4065      109,   131,    70,    78,   108,   110,   270,   274,   275,   276,
    4066      277,   278,   131,   131,   131,   131,   131,   131,   305,   107,
    4067      107,   107,   107,   107,   107,   107,   314,   327,   106,   273,
    4068      109,   205,   131,   305,   166,   272,   166,   272,   305,   108,
    4069      205,   307,   170,   131,   205,   107,   247,   248,   109,   131,
    4070      106,   114,   116,   249,   251,   314,   315,   327,   345,   353,
    4071      354,   355,   356,   112,   246,   113,   129,   113,   129,   270,
    4072      245,   113,   368,   128,   255,   254,   225,   260,   261,   262,
    4073      265,   266,   107,   113,   170,   131,   116,   161,   131,   222,
    4074      225,   259,   358,   366,   299,   300,   106,   116,   332,   107,
    4075      113,   369,   270,   282,   106,   111,   270,   272,   282,   107,
    4076      113,   106,   139,   107,   114,   271,   271,   108,   136,   143,
    4077      161,   272,   271,   109,   131,   107,   113,   107,   106,   116,
    4078      353,   107,   113,   161,   108,   136,   108,   142,   143,   131,
    4079      108,   136,   161,   161,   148,   148,   148,   149,   149,   150,
    4080      150,   151,   151,   151,   151,   152,   152,   153,   154,   155,
    4081      156,   157,   114,   166,   161,   131,   342,   343,   344,   225,
    4082      341,   308,   308,   161,   272,   131,   267,   116,   131,   223,
    4083      346,   359,   225,   229,   109,   131,   109,   366,   109,   106,
    4084      131,   315,   333,   334,   335,   338,   348,   349,   350,   109,
    4085      131,   225,   332,   336,   347,   106,   308,   351,   369,   308,
    4086      308,   369,   106,   308,   351,   308,   308,   308,   308,   346,
    4087      223,   357,   367,   268,   109,   113,   109,   113,   369,   223,
    4088      359,   369,   256,   257,   258,   259,   256,   256,   268,   161,
    4089      131,   108,   270,   114,   113,   368,   274,    78,   108,   114,
    4090      278,    28,   207,   208,   268,   256,   136,   305,   136,   307,
    4091      106,   345,   346,   106,   345,   346,   139,   346,   170,   260,
    4092      107,   107,   107,   107,   109,   170,   205,   170,   111,   129,
    4093      129,   108,   315,   354,   355,   356,   159,   160,   225,   353,
    4094      250,   251,   250,   308,   308,   270,   308,   112,   270,   112,
    4095      160,   368,   132,   132,   136,   220,   132,   132,   256,   106,
    4096      116,   366,   132,   112,   225,   283,   284,   132,   131,   131,
    4097      106,   132,   107,   312,   166,   167,   114,   129,   108,   139,
    4098      197,   198,   199,   107,   107,   131,   114,   107,   107,   107,
    4099      161,   225,   111,   148,   163,   161,   162,   164,   113,   132,
    4100      131,   131,   107,   113,   161,   131,   159,   114,   260,   107,
    4101      107,   107,   341,   260,   107,   256,   223,   359,   108,   116,
    4102      161,   161,   225,   338,   260,   107,   107,   107,   107,   107,
    4103      107,   107,     7,   225,   332,   336,   347,   131,   131,   369,
    4104      131,   131,   107,   132,   132,   132,   132,   273,   132,   159,
    4105      160,   161,   306,   131,   274,   276,   112,   131,   209,   270,
     4032      37,    38,    57,    60,    62,    64,    65,    67,    68,    69,
     4033      76,    77,   101,   103,   111,   129,   132,   189,   203,   204,
     4034     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     4035     215,   216,   217,   218,   219,   220,   222,   223,   224,   225,
     4036     226,   227,   228,   229,   231,   232,   233,   234,   235,   236,
     4037     237,   245,   246,   272,   273,   274,   282,   285,   291,   292,
     4038     294,   296,   297,   303,   308,   312,   313,   314,   315,   316,
     4039     317,   318,   319,   339,   356,   357,   358,   359,    65,   111,
     4040     131,   206,   208,   216,   218,   228,   232,   234,   273,    75,
     4041     101,   301,   302,   303,   301,   301,    65,    67,    68,    69,
     4042     130,   131,   262,   263,   283,   284,    67,    68,   263,   101,
     4043     294,    11,   190,   101,   111,   308,   313,   314,   315,   317,
     4044     318,   319,   104,   126,   103,   209,   216,   218,   312,   316,
     4045     355,   356,   359,   360,   127,   123,   266,   106,   127,   164,
     4046      67,    68,   129,   261,   127,   127,   127,   108,   127,    67,
     4047      68,   101,   111,   298,   307,   308,   309,   310,   311,   312,
     4048     316,   320,   321,   322,   323,   324,   330,     3,    27,    71,
     4049     230,     3,     5,    67,   103,   111,   208,   219,   223,   226,
     4050     235,   274,   312,   316,   359,   206,   208,   218,   228,   232,
     4051     234,   273,   312,   316,    32,   224,   224,   219,   226,   127,
     4052     224,   219,   224,   219,    68,   101,   106,   263,   274,   106,
     4053     263,   224,   219,   108,   127,   127,     0,   126,   101,   164,
     4054     301,   301,   126,   103,   216,   218,   357,   261,   261,   218,
     4055     123,   101,   111,   298,   308,   312,   103,   111,   359,   295,
     4056     221,   303,   101,   279,   101,   101,    49,   101,    36,    38,
     4057      59,    65,    69,    72,    73,    74,    75,    79,    80,    87,
     4058     101,   103,   110,   111,   112,   113,   114,   115,   128,   132,
     4059     133,   134,   135,   140,   141,   142,   143,   144,   145,   146,
     4060     147,   148,   149,   150,   151,   152,   153,   155,   157,   216,
     4061     265,   281,   355,   360,   218,   102,   102,   102,   102,   102,
     4062     102,   102,    67,    68,   103,   216,   261,   339,   357,   103,
     4063     111,   155,   208,   209,   215,   218,   222,   223,   228,   231,
     4064     232,   234,   251,   252,   256,   257,   258,   259,   273,   339,
     4065     351,   352,   353,   354,   359,   360,   104,   101,   312,   316,
     4066     359,   101,   108,   124,   103,   106,   111,   155,   267,   107,
     4067     126,   108,   124,   101,   108,   124,   108,   124,   108,   124,
     4068     301,   124,   308,   309,   310,   311,   321,   322,   323,   324,
     4069     218,   307,   320,    57,   300,   103,   301,   338,   339,   301,
     4070     301,   164,   126,   101,   301,   338,   301,   301,   218,   298,
     4071     101,   101,   217,   218,   216,   218,   104,   126,   216,   355,
     4072     360,   164,   126,   261,   266,   208,   223,   312,   316,   164,
     4073     126,   283,   218,   228,   124,   218,   218,   281,    38,   103,
     4074     216,   238,   239,   240,   241,   355,   359,   106,   247,   263,
     4075     106,   218,   283,   124,   124,   294,   126,   131,   260,     3,
     4076     127,   198,   199,   213,   215,   218,   126,   300,   101,   300,
     4077     155,   308,   218,   101,   126,   261,   106,    32,    33,    34,
     4078     216,   275,   276,   278,   126,   121,   123,   280,   126,   219,
     4079     225,   226,   261,   304,   305,   306,   101,   133,   101,   140,
     4080     140,   142,   101,   140,   101,   101,   140,   140,   131,   103,
     4081     155,   160,   164,   216,   264,   355,   104,   126,   142,   142,
     4082      75,    78,    79,    80,   101,   103,   105,    90,    91,    92,
     4083      93,    94,    95,    96,    97,    98,    99,   123,   159,   142,
     4084     111,   116,   117,   113,   114,    81,    82,    83,    84,   118,
     4085     119,    85,    86,   112,   120,   121,    87,    88,   122,   123,
     4086     362,   101,   111,   334,   335,   336,   337,   338,   102,   108,
     4087     101,   338,   339,   101,   338,   339,   126,   101,   216,   357,
     4088     104,   126,   103,   111,   127,   216,   218,   350,   351,   359,
     4089     360,   127,   101,   103,   111,   308,   325,   326,   327,   328,
     4090     329,   330,   331,   332,   333,   339,   340,   341,   342,   343,
     4091     344,   345,   111,   359,   218,   127,   127,   111,   216,   218,
     4092     352,   261,   216,   339,   352,   261,   101,   126,   126,   126,
     4093     104,   126,    65,    73,   103,   105,   263,   267,   268,   269,
     4094     270,   271,   126,   126,   126,   126,   126,   126,   298,   102,
     4095     102,   102,   102,   102,   102,   102,   307,   320,   101,   266,
     4096     104,   198,   126,   298,   160,   265,   160,   265,   298,   103,
     4097     198,   300,   164,   126,   198,   102,   240,   241,   104,   126,
     4098     101,   109,   111,   242,   244,   307,   308,   320,   338,   346,
     4099     347,   348,   349,   107,   239,   108,   124,   108,   124,   263,
     4100     238,   108,   361,   123,   248,   247,   218,   253,   254,   255,
     4101     258,   259,   102,   108,   164,   126,   111,   155,   126,   215,
     4102     218,   252,   351,   359,   292,   293,   101,   111,   325,   102,
     4103     108,   362,   263,   275,   101,   106,   263,   265,   275,   102,
     4104     108,   101,   133,   102,   109,   264,   264,   103,   131,   137,
     4105     155,   265,   264,   104,   126,   102,   108,   102,   101,   111,
     4106     346,   102,   108,   155,   103,   131,   103,   136,   137,   126,
     4107     103,   131,   155,   155,   142,   142,   142,   143,   143,   144,
     4108     144,   145,   145,   145,   145,   146,   146,   147,   148,   149,
     4109     150,   151,   109,   160,   155,   126,   335,   336,   337,   218,
     4110     334,   301,   301,   155,   265,   126,   260,   111,   126,   216,
     4111     339,   352,   218,   222,   104,   126,   104,   359,   104,   101,
     4112     126,   308,   326,   327,   328,   331,   341,   342,   343,   104,
     4113     126,   218,   325,   329,   340,   101,   301,   344,   362,   301,
     4114     301,   362,   101,   301,   344,   301,   301,   301,   301,   339,
     4115     216,   350,   360,   261,   104,   108,   104,   108,   362,   216,
     4116     352,   362,   249,   250,   251,   252,   249,   249,   261,   155,
     4117     126,   103,   263,   109,   108,   361,   267,    73,   103,   109,
     4118     271,    28,   200,   201,   261,   249,   131,   298,   131,   300,
     4119     101,   338,   339,   101,   338,   339,   133,   339,   164,   253,
     4120     102,   102,   102,   102,   104,   164,   198,   164,   106,   124,
     4121     124,   103,   308,   347,   348,   349,   153,   154,   218,   346,
     4122     243,   244,   243,   301,   301,   263,   301,   107,   263,   107,
     4123     154,   361,   127,   127,   131,   213,   127,   127,   249,   101,
     4124     111,   359,   127,   107,   218,   276,   277,   127,   126,   126,
     4125     101,   127,   102,   305,   160,   161,   109,   124,   103,   133,
     4126     191,   192,   193,   102,   102,   126,   109,   102,   102,   102,
     4127     155,   218,   106,   142,   157,   155,   156,   158,   108,   127,
     4128     126,   126,   102,   108,   155,   126,   153,   109,   253,   102,
     4129     102,   102,   334,   253,   102,   249,   216,   352,   103,   111,
     4130     155,   155,   218,   331,   253,   102,   102,   102,   102,   102,
     4131     102,   102,     7,   218,   325,   329,   340,   126,   126,   362,
     4132     126,   126,   102,   127,   127,   127,   127,   266,   127,   153,
     4133     154,   155,   299,   126,   267,   269,   107,   126,   202,   263,
    41064134      38,    39,    41,    44,    45,    46,    47,    48,    49,    50,
    4107       51,    55,    59,    60,    70,   108,   125,   136,   137,   138,
    4108      167,   168,   169,   170,   171,   172,   174,   175,   187,   189,
    4109      190,   195,   202,   210,   304,    28,   132,   128,   273,   131,
    4110      131,   107,   132,   170,   245,   109,   107,   107,   107,   353,
    4111      249,   255,   112,   107,   113,   109,   109,   132,   225,   113,
    4112      369,   286,   107,   282,   213,   215,   223,   294,   295,   296,
    4113      297,   288,   107,   107,   114,   160,   106,   107,   114,   113,
    4114      161,   161,   275,   113,   132,   164,   109,   136,   144,   145,
    4115      161,   143,   132,   144,   159,   163,   132,   106,   345,   346,
    4116      132,   132,   131,   132,   132,   132,   161,   107,   132,   106,
    4117      345,   346,   106,   351,   106,   351,   346,   224,     7,   116,
    4118      132,   161,   260,   260,   259,   263,   263,   264,   113,   113,
    4119      107,   107,   109,    94,   120,   132,   132,   144,   274,   161,
    4120      113,   129,   210,   214,   225,   229,   106,   106,   168,   106,
    4121      106,   129,   136,   129,   136,   116,   136,   167,   106,   170,
    4122      162,   162,   109,    70,   137,   138,   114,   111,   129,   132,
    4123      131,   132,   209,   107,   161,   260,   260,   308,   107,   112,
    4124      106,   345,   346,   131,   107,   131,   132,   305,   112,   131,
    4125      132,   132,   107,   111,   197,   109,   160,   129,   197,   199,
    4126      113,   132,   368,   162,   109,   132,    83,   110,   113,   132,
    4127      132,   109,   132,   107,   131,   107,   107,   109,   109,   109,
    4128      132,   107,   131,   131,   131,   161,   161,   132,   109,   132,
    4129      132,   132,   132,   131,   131,   160,   160,   109,   109,   132,
    4130      132,   270,   225,   166,   166,    45,   166,   131,   129,   129,
    4131      166,   129,   129,   166,    56,    57,    58,   191,   192,   193,
    4132      129,    61,   129,   111,   308,   142,   172,   112,   129,   132,
    4133      132,   131,    94,   265,   266,   107,   295,   113,   129,   113,
    4134      129,   112,   293,   114,   139,   107,   107,   114,   164,   109,
    4135      112,   109,   108,   145,   108,   145,   145,   109,   109,   109,
    4136      260,   109,   260,   260,   260,   132,   132,   109,   109,   107,
    4137      107,   109,   113,    94,   259,    94,   132,   109,   109,   107,
    4138      107,   106,   107,   167,   188,   210,   129,   107,   106,   106,
    4139      170,   193,    56,    57,   161,   112,   168,   112,   107,   107,
    4140      260,   111,   131,   131,   294,   139,   200,   106,   129,   200,
    4141      132,   114,   131,   131,   132,   132,   132,   132,   109,   109,
    4142      131,   132,   109,   168,    42,    43,   111,   178,   179,   180,
    4143      166,   168,   132,   107,   167,   111,   180,    94,   131,    94,
    4144      131,   106,   106,   129,   129,   129,   132,   131,   268,   305,
    4145      112,   113,   114,   160,   107,   109,   161,   144,   144,   107,
    4146      107,   107,   107,   263,    40,   160,   176,   177,   306,   114,
    4147      131,   168,   178,   107,   129,   168,   129,   131,   107,   131,
    4148      107,   131,    94,   131,    94,   131,   107,   294,   139,   136,
    4149      201,   107,   129,   114,   132,   132,   168,    94,   113,   114,
    4150      132,   203,   204,   210,   129,   167,   167,   203,   170,   194,
    4151      223,   362,   170,   194,   107,   131,   107,   131,   112,   107,
    4152      113,   161,   109,   109,   160,   176,   179,   181,   182,   131,
    4153      129,   179,   183,   184,   132,   106,   116,   305,   353,   136,
    4154      132,   170,   194,   170,   194,   106,   129,   136,   168,   173,
    4155      112,   179,   210,   167,    54,   173,   186,   112,   179,   107,
    4156      225,   107,   132,   132,   288,   168,   173,   129,   185,   186,
    4157      173,   186,   170,   170,   107,   107,   107,   185,   132,   132,
    4158      170,   170,   132,   132
     4135      51,    53,    56,   103,   131,   161,   162,   163,   164,   165,
     4136     166,   168,   169,   181,   183,   184,   189,   203,   297,    28,
     4137     127,   123,   266,   126,   126,   102,   127,   164,   238,   104,
     4138     102,   102,   102,   346,   242,   248,   107,   102,   108,   104,
     4139     104,   127,   218,   108,   362,   279,   102,   275,   206,   208,
     4140     216,   287,   288,   289,   290,   281,   102,   102,   109,   154,
     4141     101,   102,   109,   108,   155,   155,   268,   108,   127,   158,
     4142     104,   131,   138,   139,   155,   137,   127,   138,   153,   157,
     4143     127,   101,   338,   339,   127,   127,   126,   127,   127,   127,
     4144     155,   102,   127,   101,   338,   339,   101,   344,   101,   344,
     4145     339,   217,     7,   111,   127,   155,   253,   253,   252,   256,
     4146     256,   257,   108,   108,   102,   102,   104,    89,   115,   127,
     4147     127,   138,   267,   155,   108,   124,   203,   207,   218,   222,
     4148     101,   101,   162,   101,   101,   124,   131,   124,   131,   111,
     4149     131,   161,   101,   164,   124,   155,   104,   109,   124,   127,
     4150     126,   127,   202,   102,   155,   253,   253,   301,   102,   107,
     4151     101,   338,   339,   126,   102,   126,   127,   298,   107,   126,
     4152     127,   127,   102,   106,   191,   104,   154,   124,   191,   193,
     4153     108,   127,   361,   156,   104,   127,    78,   105,   108,   127,
     4154     127,   104,   127,   102,   126,   102,   102,   104,   104,   104,
     4155     127,   102,   126,   126,   126,   155,   155,   127,   104,   127,
     4156     127,   127,   127,   126,   126,   154,   154,   104,   104,   127,
     4157     127,   263,   218,   160,   160,    45,   160,   126,   124,   124,
     4158     160,   124,   124,   160,    54,    55,   185,   186,   187,   124,
     4159     301,   166,   107,   124,   127,   127,   126,    89,   258,   259,
     4160     102,   288,   108,   124,   108,   124,   107,   286,   109,   133,
     4161     102,   102,   109,   158,   104,   107,   104,   103,   139,   103,
     4162     139,   139,   104,   104,   104,   253,   104,   253,   253,   253,
     4163     127,   127,   104,   104,   102,   102,   104,   108,    89,   252,
     4164      89,   127,   104,   104,   102,   102,   101,   102,   161,   182,
     4165     203,   124,   102,   101,   164,   187,    54,   162,   102,   102,
     4166     253,   106,   126,   126,   287,   133,   194,   101,   124,   194,
     4167     127,   109,   126,   126,   127,   127,   127,   127,   104,   104,
     4168     126,   127,   104,   162,    42,    43,   106,   172,   173,   174,
     4169     160,   162,   127,   102,   161,   106,   174,    89,   126,   101,
     4170     127,   126,   261,   298,   107,   108,   109,   154,   102,   104,
     4171     155,   138,   138,   102,   102,   102,   102,   256,    40,   154,
     4172     170,   171,   299,   109,   126,   162,   172,   102,   124,   162,
     4173     124,   126,   102,   126,    89,   126,   102,   287,   133,   131,
     4174     195,   102,   124,   109,   127,   127,   162,    89,   108,   109,
     4175     127,   196,   197,   203,   124,   161,   161,   196,   164,   188,
     4176     216,   355,   102,   126,   107,   102,   108,   155,   104,   104,
     4177     154,   170,   173,   175,   176,   126,   124,   173,   177,   178,
     4178     127,   101,   111,   298,   346,   131,   164,   188,   101,   124,
     4179     131,   162,   167,   107,   173,   203,   161,    52,   167,   180,
     4180     107,   173,   102,   218,   127,   281,   162,   167,   124,   179,
     4181     180,   167,   180,   164,   102,   102,   179,   127,   164,   127
    41594182};
    41604183
     
    50295052    break;
    50305053
     5054  case 15:
     5055
     5056/* Line 1806 of yacc.c  */
     5057#line 329 "parser.yy"
     5058    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5059    break;
     5060
     5061  case 16:
     5062
     5063/* Line 1806 of yacc.c  */
     5064#line 330 "parser.yy"
     5065    { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
     5066    break;
     5067
    50315068  case 17:
    50325069
    50335070/* Line 1806 of yacc.c  */
    5034 #line 334 "parser.yy"
    5035     { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5071#line 337 "parser.yy"
     5072    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50365073    break;
    50375074
     
    50395076
    50405077/* Line 1806 of yacc.c  */
    5041 #line 335 "parser.yy"
    5042     { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); }
     5078#line 339 "parser.yy"
     5079    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50435080    break;
    50445081
     
    50465083
    50475084/* Line 1806 of yacc.c  */
    5048 #line 342 "parser.yy"
     5085#line 341 "parser.yy"
     5086    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5087    break;
     5088
     5089  case 20:
     5090
     5091/* Line 1806 of yacc.c  */
     5092#line 343 "parser.yy"
     5093    { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
     5094    break;
     5095
     5096  case 22:
     5097
     5098/* Line 1806 of yacc.c  */
     5099#line 353 "parser.yy"
     5100    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
     5101    break;
     5102
     5103  case 23:
     5104
     5105/* Line 1806 of yacc.c  */
     5106#line 355 "parser.yy"
     5107    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
     5108    break;
     5109
     5110  case 24:
     5111
     5112/* Line 1806 of yacc.c  */
     5113#line 357 "parser.yy"
     5114    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5115    break;
     5116
     5117  case 26:
     5118
     5119/* Line 1806 of yacc.c  */
     5120#line 360 "parser.yy"
     5121    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
     5122    break;
     5123
     5124  case 28:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 363 "parser.yy"
     5128    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
     5129    break;
     5130
     5131  case 29:
     5132
     5133/* Line 1806 of yacc.c  */
     5134#line 365 "parser.yy"
     5135    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
     5136    break;
     5137
     5138  case 30:
     5139
     5140/* Line 1806 of yacc.c  */
     5141#line 368 "parser.yy"
     5142    { (yyval.en) = 0; }
     5143    break;
     5144
     5145  case 32:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 374 "parser.yy"
     5149    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     5150    break;
     5151
     5152  case 33:
     5153
     5154/* Line 1806 of yacc.c  */
     5155#line 379 "parser.yy"
     5156    { (yyval.en) = 0; }
     5157    break;
     5158
     5159  case 35:
     5160
     5161/* Line 1806 of yacc.c  */
     5162#line 382 "parser.yy"
     5163    { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
     5164    break;
     5165
     5166  case 36:
     5167
     5168/* Line 1806 of yacc.c  */
     5169#line 387 "parser.yy"
     5170    { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
     5171    break;
     5172
     5173  case 37:
     5174
     5175/* Line 1806 of yacc.c  */
     5176#line 389 "parser.yy"
     5177    { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
     5178    break;
     5179
     5180  case 39:
     5181
     5182/* Line 1806 of yacc.c  */
     5183#line 394 "parser.yy"
     5184    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5185    break;
     5186
     5187  case 40:
     5188
     5189/* Line 1806 of yacc.c  */
     5190#line 399 "parser.yy"
    50495191    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    50505192    break;
    50515193
    5052   case 20:
    5053 
    5054 /* Line 1806 of yacc.c  */
    5055 #line 344 "parser.yy"
    5056     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5057     break;
    5058 
    5059   case 21:
    5060 
    5061 /* Line 1806 of yacc.c  */
    5062 #line 346 "parser.yy"
    5063     { (yyval.en) = (yyvsp[(2) - (3)].en); }
    5064     break;
    5065 
    5066   case 22:
    5067 
    5068 /* Line 1806 of yacc.c  */
    5069 #line 348 "parser.yy"
    5070     { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); }
    5071     break;
    5072 
    5073   case 24:
    5074 
    5075 /* Line 1806 of yacc.c  */
    5076 #line 358 "parser.yy"
    5077     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }
    5078     break;
    5079 
    5080   case 25:
    5081 
    5082 /* Line 1806 of yacc.c  */
    5083 #line 360 "parser.yy"
    5084     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); }
    5085     break;
    5086 
    5087   case 26:
    5088 
    5089 /* Line 1806 of yacc.c  */
    5090 #line 362 "parser.yy"
    5091     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5092     break;
    5093 
    5094   case 28:
    5095 
    5096 /* Line 1806 of yacc.c  */
    5097 #line 365 "parser.yy"
    5098     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }
    5099     break;
    5100 
    5101   case 30:
    5102 
    5103 /* Line 1806 of yacc.c  */
    5104 #line 368 "parser.yy"
    5105     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }
    5106     break;
    5107 
    5108   case 31:
    5109 
    5110 /* Line 1806 of yacc.c  */
    5111 #line 370 "parser.yy"
    5112     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }
    5113     break;
    5114 
    5115   case 32:
    5116 
    5117 /* Line 1806 of yacc.c  */
    5118 #line 373 "parser.yy"
     5194  case 41:
     5195
     5196/* Line 1806 of yacc.c  */
     5197#line 401 "parser.yy"
     5198    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5199    break;
     5200
     5201  case 42:
     5202
     5203/* Line 1806 of yacc.c  */
     5204#line 403 "parser.yy"
     5205    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5206    break;
     5207
     5208  case 43:
     5209
     5210/* Line 1806 of yacc.c  */
     5211#line 405 "parser.yy"
     5212    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
     5213    break;
     5214
     5215  case 44:
     5216
     5217/* Line 1806 of yacc.c  */
     5218#line 407 "parser.yy"
     5219    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
     5220    break;
     5221
     5222  case 46:
     5223
     5224/* Line 1806 of yacc.c  */
     5225#line 415 "parser.yy"
     5226    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5227    break;
     5228
     5229  case 47:
     5230
     5231/* Line 1806 of yacc.c  */
     5232#line 417 "parser.yy"
     5233    { (yyval.en) = (yyvsp[(1) - (1)].constant); }
     5234    break;
     5235
     5236  case 48:
     5237
     5238/* Line 1806 of yacc.c  */
     5239#line 419 "parser.yy"
     5240    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
     5241    break;
     5242
     5243  case 49:
     5244
     5245/* Line 1806 of yacc.c  */
     5246#line 421 "parser.yy"
     5247    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
     5248    break;
     5249
     5250  case 50:
     5251
     5252/* Line 1806 of yacc.c  */
     5253#line 423 "parser.yy"
     5254    { (yyval.en) = (yyvsp[(2) - (2)].en); }
     5255    break;
     5256
     5257  case 51:
     5258
     5259/* Line 1806 of yacc.c  */
     5260#line 425 "parser.yy"
     5261    { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5262    break;
     5263
     5264  case 52:
     5265
     5266/* Line 1806 of yacc.c  */
     5267#line 427 "parser.yy"
     5268    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
     5269    break;
     5270
     5271  case 53:
     5272
     5273/* Line 1806 of yacc.c  */
     5274#line 429 "parser.yy"
     5275    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
     5276    break;
     5277
     5278  case 54:
     5279
     5280/* Line 1806 of yacc.c  */
     5281#line 435 "parser.yy"
     5282    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
     5283    break;
     5284
     5285  case 55:
     5286
     5287/* Line 1806 of yacc.c  */
     5288#line 437 "parser.yy"
     5289    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5290    break;
     5291
     5292  case 56:
     5293
     5294/* Line 1806 of yacc.c  */
     5295#line 439 "parser.yy"
     5296    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
     5297    break;
     5298
     5299  case 57:
     5300
     5301/* Line 1806 of yacc.c  */
     5302#line 441 "parser.yy"
     5303    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5304    break;
     5305
     5306  case 58:
     5307
     5308/* Line 1806 of yacc.c  */
     5309#line 443 "parser.yy"
     5310    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
     5311    break;
     5312
     5313  case 59:
     5314
     5315/* Line 1806 of yacc.c  */
     5316#line 445 "parser.yy"
     5317    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
     5318    break;
     5319
     5320  case 60:
     5321
     5322/* Line 1806 of yacc.c  */
     5323#line 447 "parser.yy"
     5324    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
     5325    break;
     5326
     5327  case 61:
     5328
     5329/* Line 1806 of yacc.c  */
     5330#line 449 "parser.yy"
     5331    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); }
     5332    break;
     5333
     5334  case 62:
     5335
     5336/* Line 1806 of yacc.c  */
     5337#line 453 "parser.yy"
     5338    { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
     5339    break;
     5340
     5341  case 63:
     5342
     5343/* Line 1806 of yacc.c  */
     5344#line 454 "parser.yy"
     5345    { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
     5346    break;
     5347
     5348  case 64:
     5349
     5350/* Line 1806 of yacc.c  */
     5351#line 455 "parser.yy"
     5352    { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
     5353    break;
     5354
     5355  case 65:
     5356
     5357/* Line 1806 of yacc.c  */
     5358#line 456 "parser.yy"
     5359    { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
     5360    break;
     5361
     5362  case 67:
     5363
     5364/* Line 1806 of yacc.c  */
     5365#line 462 "parser.yy"
     5366    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5367    break;
     5368
     5369  case 68:
     5370
     5371/* Line 1806 of yacc.c  */
     5372#line 464 "parser.yy"
     5373    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
     5374    break;
     5375
     5376  case 70:
     5377
     5378/* Line 1806 of yacc.c  */
     5379#line 470 "parser.yy"
     5380    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5381    break;
     5382
     5383  case 71:
     5384
     5385/* Line 1806 of yacc.c  */
     5386#line 472 "parser.yy"
     5387    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5388    break;
     5389
     5390  case 72:
     5391
     5392/* Line 1806 of yacc.c  */
     5393#line 474 "parser.yy"
     5394    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5395    break;
     5396
     5397  case 74:
     5398
     5399/* Line 1806 of yacc.c  */
     5400#line 480 "parser.yy"
     5401    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5402    break;
     5403
     5404  case 75:
     5405
     5406/* Line 1806 of yacc.c  */
     5407#line 482 "parser.yy"
     5408    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5409    break;
     5410
     5411  case 77:
     5412
     5413/* Line 1806 of yacc.c  */
     5414#line 488 "parser.yy"
     5415    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5416    break;
     5417
     5418  case 78:
     5419
     5420/* Line 1806 of yacc.c  */
     5421#line 490 "parser.yy"
     5422    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5423    break;
     5424
     5425  case 80:
     5426
     5427/* Line 1806 of yacc.c  */
     5428#line 496 "parser.yy"
     5429    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5430    break;
     5431
     5432  case 81:
     5433
     5434/* Line 1806 of yacc.c  */
     5435#line 498 "parser.yy"
     5436    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5437    break;
     5438
     5439  case 82:
     5440
     5441/* Line 1806 of yacc.c  */
     5442#line 500 "parser.yy"
     5443    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5444    break;
     5445
     5446  case 83:
     5447
     5448/* Line 1806 of yacc.c  */
     5449#line 502 "parser.yy"
     5450    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5451    break;
     5452
     5453  case 85:
     5454
     5455/* Line 1806 of yacc.c  */
     5456#line 508 "parser.yy"
     5457    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5458    break;
     5459
     5460  case 86:
     5461
     5462/* Line 1806 of yacc.c  */
     5463#line 510 "parser.yy"
     5464    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5465    break;
     5466
     5467  case 88:
     5468
     5469/* Line 1806 of yacc.c  */
     5470#line 516 "parser.yy"
     5471    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5472    break;
     5473
     5474  case 90:
     5475
     5476/* Line 1806 of yacc.c  */
     5477#line 522 "parser.yy"
     5478    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5479    break;
     5480
     5481  case 92:
     5482
     5483/* Line 1806 of yacc.c  */
     5484#line 528 "parser.yy"
     5485    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5486    break;
     5487
     5488  case 94:
     5489
     5490/* Line 1806 of yacc.c  */
     5491#line 534 "parser.yy"
     5492    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5493    break;
     5494
     5495  case 96:
     5496
     5497/* Line 1806 of yacc.c  */
     5498#line 540 "parser.yy"
     5499    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5500    break;
     5501
     5502  case 98:
     5503
     5504/* Line 1806 of yacc.c  */
     5505#line 546 "parser.yy"
     5506    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5507    break;
     5508
     5509  case 99:
     5510
     5511/* Line 1806 of yacc.c  */
     5512#line 548 "parser.yy"
     5513    { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5514    break;
     5515
     5516  case 100:
     5517
     5518/* Line 1806 of yacc.c  */
     5519#line 550 "parser.yy"
     5520    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
     5521    break;
     5522
     5523  case 103:
     5524
     5525/* Line 1806 of yacc.c  */
     5526#line 561 "parser.yy"
     5527    { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5528    break;
     5529
     5530  case 104:
     5531
     5532/* Line 1806 of yacc.c  */
     5533#line 563 "parser.yy"
     5534    { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5535    break;
     5536
     5537  case 105:
     5538
     5539/* Line 1806 of yacc.c  */
     5540#line 565 "parser.yy"
     5541    { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
     5542    break;
     5543
     5544  case 106:
     5545
     5546/* Line 1806 of yacc.c  */
     5547#line 570 "parser.yy"
     5548    { (yyval.en) = new NullExprNode; }
     5549    break;
     5550
     5551  case 108:
     5552
     5553/* Line 1806 of yacc.c  */
     5554#line 578 "parser.yy"
     5555    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
     5556    break;
     5557
     5558  case 109:
     5559
     5560/* Line 1806 of yacc.c  */
     5561#line 580 "parser.yy"
     5562    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
     5563    break;
     5564
     5565  case 110:
     5566
     5567/* Line 1806 of yacc.c  */
     5568#line 582 "parser.yy"
     5569    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
     5570    break;
     5571
     5572  case 111:
     5573
     5574/* Line 1806 of yacc.c  */
     5575#line 584 "parser.yy"
     5576    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
     5577    break;
     5578
     5579  case 113:
     5580
     5581/* Line 1806 of yacc.c  */
     5582#line 590 "parser.yy"
     5583    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
     5584    break;
     5585
     5586  case 114:
     5587
     5588/* Line 1806 of yacc.c  */
     5589#line 594 "parser.yy"
     5590    { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
     5591    break;
     5592
     5593  case 115:
     5594
     5595/* Line 1806 of yacc.c  */
     5596#line 595 "parser.yy"
     5597    { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
     5598    break;
     5599
     5600  case 116:
     5601
     5602/* Line 1806 of yacc.c  */
     5603#line 596 "parser.yy"
     5604    { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
     5605    break;
     5606
     5607  case 117:
     5608
     5609/* Line 1806 of yacc.c  */
     5610#line 597 "parser.yy"
     5611    { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
     5612    break;
     5613
     5614  case 118:
     5615
     5616/* Line 1806 of yacc.c  */
     5617#line 598 "parser.yy"
     5618    { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
     5619    break;
     5620
     5621  case 119:
     5622
     5623/* Line 1806 of yacc.c  */
     5624#line 599 "parser.yy"
     5625    { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
     5626    break;
     5627
     5628  case 120:
     5629
     5630/* Line 1806 of yacc.c  */
     5631#line 600 "parser.yy"
     5632    { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
     5633    break;
     5634
     5635  case 121:
     5636
     5637/* Line 1806 of yacc.c  */
     5638#line 601 "parser.yy"
     5639    { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
     5640    break;
     5641
     5642  case 122:
     5643
     5644/* Line 1806 of yacc.c  */
     5645#line 602 "parser.yy"
     5646    { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
     5647    break;
     5648
     5649  case 123:
     5650
     5651/* Line 1806 of yacc.c  */
     5652#line 603 "parser.yy"
     5653    { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
     5654    break;
     5655
     5656  case 125:
     5657
     5658/* Line 1806 of yacc.c  */
     5659#line 609 "parser.yy"
     5660    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
     5661    break;
     5662
     5663  case 126:
     5664
     5665/* Line 1806 of yacc.c  */
     5666#line 614 "parser.yy"
    51195667    { (yyval.en) = 0; }
    51205668    break;
    51215669
    5122   case 34:
    5123 
    5124 /* Line 1806 of yacc.c  */
    5125 #line 379 "parser.yy"
    5126     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    5127     break;
    5128 
    5129   case 35:
    5130 
    5131 /* Line 1806 of yacc.c  */
    5132 #line 384 "parser.yy"
    5133     { (yyval.en) = 0; }
    5134     break;
    5135 
    5136   case 37:
    5137 
    5138 /* Line 1806 of yacc.c  */
    5139 #line 387 "parser.yy"
    5140     { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); }
    5141     break;
    5142 
    5143   case 38:
    5144 
    5145 /* Line 1806 of yacc.c  */
    5146 #line 392 "parser.yy"
    5147     { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); }
    5148     break;
    5149 
    5150   case 39:
    5151 
    5152 /* Line 1806 of yacc.c  */
    5153 #line 394 "parser.yy"
    5154     { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); }
    5155     break;
    5156 
    5157   case 41:
    5158 
    5159 /* Line 1806 of yacc.c  */
    5160 #line 399 "parser.yy"
    5161     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5162     break;
    5163 
    5164   case 42:
    5165 
    5166 /* Line 1806 of yacc.c  */
    5167 #line 404 "parser.yy"
    5168     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }
    5169     break;
    5170 
    5171   case 43:
    5172 
    5173 /* Line 1806 of yacc.c  */
    5174 #line 406 "parser.yy"
    5175     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5176     break;
    5177 
    5178   case 44:
    5179 
    5180 /* Line 1806 of yacc.c  */
    5181 #line 408 "parser.yy"
    5182     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5183     break;
    5184 
    5185   case 45:
    5186 
    5187 /* Line 1806 of yacc.c  */
    5188 #line 410 "parser.yy"
    5189     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }
    5190     break;
    5191 
    5192   case 46:
    5193 
    5194 /* Line 1806 of yacc.c  */
    5195 #line 412 "parser.yy"
    5196     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }
    5197     break;
    5198 
    5199   case 48:
    5200 
    5201 /* Line 1806 of yacc.c  */
    5202 #line 420 "parser.yy"
    5203     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5204     break;
    5205 
    5206   case 49:
    5207 
    5208 /* Line 1806 of yacc.c  */
    5209 #line 422 "parser.yy"
    5210     { (yyval.en) = (yyvsp[(1) - (1)].constant); }
    5211     break;
    5212 
    5213   case 50:
    5214 
    5215 /* Line 1806 of yacc.c  */
    5216 #line 424 "parser.yy"
    5217     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }
    5218     break;
    5219 
    5220   case 51:
    5221 
    5222 /* Line 1806 of yacc.c  */
    5223 #line 426 "parser.yy"
    5224     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }
    5225     break;
    5226 
    5227   case 52:
    5228 
    5229 /* Line 1806 of yacc.c  */
    5230 #line 428 "parser.yy"
    5231     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    5232     break;
    5233 
    5234   case 53:
    5235 
    5236 /* Line 1806 of yacc.c  */
    5237 #line 430 "parser.yy"
    5238     { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5239     break;
    5240 
    5241   case 54:
    5242 
    5243 /* Line 1806 of yacc.c  */
    5244 #line 432 "parser.yy"
    5245     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); }
    5246     break;
    5247 
    5248   case 55:
    5249 
    5250 /* Line 1806 of yacc.c  */
    5251 #line 434 "parser.yy"
    5252     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); }
    5253     break;
    5254 
    5255   case 56:
    5256 
    5257 /* Line 1806 of yacc.c  */
    5258 #line 440 "parser.yy"
    5259     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }
    5260     break;
    5261 
    5262   case 57:
    5263 
    5264 /* Line 1806 of yacc.c  */
    5265 #line 442 "parser.yy"
    5266     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5267     break;
    5268 
    5269   case 58:
    5270 
    5271 /* Line 1806 of yacc.c  */
    5272 #line 444 "parser.yy"
    5273     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); }
    5274     break;
    5275 
    5276   case 59:
    5277 
    5278 /* Line 1806 of yacc.c  */
    5279 #line 446 "parser.yy"
    5280     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }
    5281     break;
    5282 
    5283   case 60:
    5284 
    5285 /* Line 1806 of yacc.c  */
    5286 #line 448 "parser.yy"
    5287     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); }
    5288     break;
    5289 
    5290   case 61:
    5291 
    5292 /* Line 1806 of yacc.c  */
    5293 #line 450 "parser.yy"
    5294     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }
    5295     break;
    5296 
    5297   case 62:
    5298 
    5299 /* Line 1806 of yacc.c  */
    5300 #line 452 "parser.yy"
    5301     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }
    5302     break;
    5303 
    5304   case 63:
    5305 
    5306 /* Line 1806 of yacc.c  */
    5307 #line 454 "parser.yy"
    5308     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true ) ); }
    5309     break;
    5310 
    5311   case 64:
    5312 
    5313 /* Line 1806 of yacc.c  */
    5314 #line 458 "parser.yy"
    5315     { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); }
    5316     break;
    5317 
    5318   case 65:
    5319 
    5320 /* Line 1806 of yacc.c  */
    5321 #line 459 "parser.yy"
    5322     { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); }
    5323     break;
    5324 
    5325   case 66:
    5326 
    5327 /* Line 1806 of yacc.c  */
    5328 #line 460 "parser.yy"
    5329     { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); }
    5330     break;
    5331 
    5332   case 67:
    5333 
    5334 /* Line 1806 of yacc.c  */
    5335 #line 461 "parser.yy"
    5336     { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); }
    5337     break;
    5338 
    5339   case 69:
    5340 
    5341 /* Line 1806 of yacc.c  */
    5342 #line 467 "parser.yy"
    5343     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5344     break;
    5345 
    5346   case 70:
    5347 
    5348 /* Line 1806 of yacc.c  */
    5349 #line 469 "parser.yy"
    5350     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }
    5351     break;
    5352 
    5353   case 72:
    5354 
    5355 /* Line 1806 of yacc.c  */
    5356 #line 475 "parser.yy"
    5357     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5358     break;
    5359 
    5360   case 73:
    5361 
    5362 /* Line 1806 of yacc.c  */
    5363 #line 477 "parser.yy"
    5364     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5365     break;
    5366 
    5367   case 74:
    5368 
    5369 /* Line 1806 of yacc.c  */
    5370 #line 479 "parser.yy"
    5371     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5372     break;
    5373 
    5374   case 76:
    5375 
    5376 /* Line 1806 of yacc.c  */
    5377 #line 485 "parser.yy"
    5378     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5379     break;
    5380 
    5381   case 77:
    5382 
    5383 /* Line 1806 of yacc.c  */
    5384 #line 487 "parser.yy"
    5385     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5386     break;
    5387 
    5388   case 79:
    5389 
    5390 /* Line 1806 of yacc.c  */
    5391 #line 493 "parser.yy"
    5392     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5393     break;
    5394 
    5395   case 80:
    5396 
    5397 /* Line 1806 of yacc.c  */
    5398 #line 495 "parser.yy"
    5399     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5400     break;
    5401 
    5402   case 82:
    5403 
    5404 /* Line 1806 of yacc.c  */
    5405 #line 501 "parser.yy"
    5406     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5407     break;
    5408 
    5409   case 83:
    5410 
    5411 /* Line 1806 of yacc.c  */
    5412 #line 503 "parser.yy"
    5413     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5414     break;
    5415 
    5416   case 84:
    5417 
    5418 /* Line 1806 of yacc.c  */
    5419 #line 505 "parser.yy"
    5420     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5421     break;
    5422 
    5423   case 85:
    5424 
    5425 /* Line 1806 of yacc.c  */
    5426 #line 507 "parser.yy"
    5427     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5428     break;
    5429 
    5430   case 87:
    5431 
    5432 /* Line 1806 of yacc.c  */
    5433 #line 513 "parser.yy"
    5434     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5435     break;
    5436 
    5437   case 88:
    5438 
    5439 /* Line 1806 of yacc.c  */
    5440 #line 515 "parser.yy"
    5441     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5442     break;
    5443 
    5444   case 90:
    5445 
    5446 /* Line 1806 of yacc.c  */
    5447 #line 521 "parser.yy"
    5448     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5449     break;
    5450 
    5451   case 92:
    5452 
    5453 /* Line 1806 of yacc.c  */
    5454 #line 527 "parser.yy"
    5455     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5456     break;
    5457 
    5458   case 94:
    5459 
    5460 /* Line 1806 of yacc.c  */
    5461 #line 533 "parser.yy"
    5462     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5463     break;
    5464 
    5465   case 96:
    5466 
    5467 /* Line 1806 of yacc.c  */
    5468 #line 539 "parser.yy"
    5469     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5470     break;
    5471 
    5472   case 98:
    5473 
    5474 /* Line 1806 of yacc.c  */
    5475 #line 545 "parser.yy"
    5476     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5477     break;
    5478 
    5479   case 100:
    5480 
    5481 /* Line 1806 of yacc.c  */
    5482 #line 551 "parser.yy"
    5483     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5484     break;
    5485 
    5486   case 101:
    5487 
    5488 /* Line 1806 of yacc.c  */
    5489 #line 553 "parser.yy"
    5490     { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5491     break;
    5492 
    5493   case 102:
    5494 
    5495 /* Line 1806 of yacc.c  */
    5496 #line 555 "parser.yy"
    5497     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); }
    5498     break;
    5499 
    5500   case 105:
    5501 
    5502 /* Line 1806 of yacc.c  */
    5503 #line 566 "parser.yy"
    5504     { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5505     break;
    5506 
    5507   case 106:
    5508 
    5509 /* Line 1806 of yacc.c  */
    5510 #line 568 "parser.yy"
    5511     { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5512     break;
    5513 
    5514   case 107:
    5515 
    5516 /* Line 1806 of yacc.c  */
    5517 #line 570 "parser.yy"
    5518     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }
    5519     break;
    5520 
    5521   case 108:
    5522 
    5523 /* Line 1806 of yacc.c  */
    5524 #line 575 "parser.yy"
    5525     { (yyval.en) = new NullExprNode; }
    5526     break;
    5527 
    5528   case 110:
    5529 
    5530 /* Line 1806 of yacc.c  */
    5531 #line 583 "parser.yy"
    5532     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }
    5533     break;
    5534 
    5535   case 111:
    5536 
    5537 /* Line 1806 of yacc.c  */
    5538 #line 585 "parser.yy"
    5539     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }
    5540     break;
    5541 
    5542   case 112:
    5543 
    5544 /* Line 1806 of yacc.c  */
    5545 #line 587 "parser.yy"
    5546     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }
    5547     break;
    5548 
    5549   case 113:
    5550 
    5551 /* Line 1806 of yacc.c  */
    5552 #line 589 "parser.yy"
    5553     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); }
    5554     break;
    5555 
    5556   case 115:
    5557 
    5558 /* Line 1806 of yacc.c  */
    5559 #line 595 "parser.yy"
    5560     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    5561     break;
    5562 
    5563   case 116:
    5564 
    5565 /* Line 1806 of yacc.c  */
    5566 #line 599 "parser.yy"
    5567     { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); }
    5568     break;
    5569 
    5570   case 117:
    5571 
    5572 /* Line 1806 of yacc.c  */
    5573 #line 600 "parser.yy"
    5574     { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); }
    5575     break;
    5576 
    5577   case 118:
    5578 
    5579 /* Line 1806 of yacc.c  */
    5580 #line 601 "parser.yy"
    5581     { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); }
    5582     break;
    5583 
    5584   case 119:
    5585 
    5586 /* Line 1806 of yacc.c  */
    5587 #line 602 "parser.yy"
    5588     { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); }
    5589     break;
    5590 
    5591   case 120:
    5592 
    5593 /* Line 1806 of yacc.c  */
    5594 #line 603 "parser.yy"
    5595     { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); }
    5596     break;
    5597 
    5598   case 121:
    5599 
    5600 /* Line 1806 of yacc.c  */
    5601 #line 604 "parser.yy"
    5602     { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); }
    5603     break;
    5604 
    5605   case 122:
    5606 
    5607 /* Line 1806 of yacc.c  */
    5608 #line 605 "parser.yy"
    5609     { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); }
    5610     break;
    5611 
    5612   case 123:
    5613 
    5614 /* Line 1806 of yacc.c  */
    5615 #line 606 "parser.yy"
    5616     { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); }
    5617     break;
    5618 
    5619   case 124:
    5620 
    5621 /* Line 1806 of yacc.c  */
    5622 #line 607 "parser.yy"
    5623     { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); }
    5624     break;
    5625 
    5626   case 125:
    5627 
    5628 /* Line 1806 of yacc.c  */
    5629 #line 608 "parser.yy"
    5630     { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); }
    5631     break;
    5632 
    5633   case 127:
    5634 
    5635 /* Line 1806 of yacc.c  */
    5636 #line 614 "parser.yy"
    5637     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5638     break;
    5639 
    5640   case 128:
    5641 
    5642 /* Line 1806 of yacc.c  */
    5643 #line 619 "parser.yy"
    5644     { (yyval.en) = 0; }
    5645     break;
    5646 
    5647   case 132:
    5648 
    5649 /* Line 1806 of yacc.c  */
    5650 #line 628 "parser.yy"
     5670  case 130:
     5671
     5672/* Line 1806 of yacc.c  */
     5673#line 623 "parser.yy"
    56515674    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56525675    break;
    56535676
    5654   case 139:
    5655 
    5656 /* Line 1806 of yacc.c  */
    5657 #line 639 "parser.yy"
     5677  case 136:
     5678
     5679/* Line 1806 of yacc.c  */
     5680#line 633 "parser.yy"
    56585681    {
    56595682                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    56615684    break;
    56625685
     5686  case 137:
     5687
     5688/* Line 1806 of yacc.c  */
     5689#line 640 "parser.yy"
     5690    { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5691    break;
     5692
     5693  case 138:
     5694
     5695/* Line 1806 of yacc.c  */
     5696#line 647 "parser.yy"
     5697    { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
     5698    break;
     5699
    56635700  case 140:
    56645701
    56655702/* Line 1806 of yacc.c  */
    5666 #line 646 "parser.yy"
    5667     { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); }
     5703#line 653 "parser.yy"
     5704    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    56685705    break;
    56695706
     
    56715708
    56725709/* Line 1806 of yacc.c  */
    5673 #line 653 "parser.yy"
    5674     { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); }
     5710#line 658 "parser.yy"
     5711    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5712    break;
     5713
     5714  case 142:
     5715
     5716/* Line 1806 of yacc.c  */
     5717#line 660 "parser.yy"
     5718    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    56755719    break;
    56765720
     
    56785722
    56795723/* Line 1806 of yacc.c  */
    5680 #line 659 "parser.yy"
    5681     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    5682     break;
    5683 
    5684   case 144:
    5685 
    5686 /* Line 1806 of yacc.c  */
    5687 #line 664 "parser.yy"
     5724#line 662 "parser.yy"
    56885725    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    56895726    break;
    56905727
    5691   case 145:
    5692 
    5693 /* Line 1806 of yacc.c  */
    5694 #line 666 "parser.yy"
    5695     { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }
    5696     break;
    5697 
    56985728  case 146:
    56995729
    57005730/* Line 1806 of yacc.c  */
    5701 #line 668 "parser.yy"
    5702     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5731#line 669 "parser.yy"
     5732    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5733    break;
     5734
     5735  case 147:
     5736
     5737/* Line 1806 of yacc.c  */
     5738#line 674 "parser.yy"
     5739    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5740    break;
     5741
     5742  case 148:
     5743
     5744/* Line 1806 of yacc.c  */
     5745#line 680 "parser.yy"
     5746    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57035747    break;
    57045748
     
    57065750
    57075751/* Line 1806 of yacc.c  */
    5708 #line 675 "parser.yy"
    5709     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5752#line 682 "parser.yy"
     5753    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    57105754    break;
    57115755
     
    57135757
    57145758/* Line 1806 of yacc.c  */
    5715 #line 680 "parser.yy"
    5716     { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
     5759#line 684 "parser.yy"
     5760    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57175761    break;
    57185762
     
    57215765/* Line 1806 of yacc.c  */
    57225766#line 686 "parser.yy"
    5723     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5767    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    57245768    break;
    57255769
     
    57275771
    57285772/* Line 1806 of yacc.c  */
    5729 #line 688 "parser.yy"
    5730     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5773#line 691 "parser.yy"
     5774    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    57315775    break;
    57325776
     
    57345778
    57355779/* Line 1806 of yacc.c  */
    5736 #line 690 "parser.yy"
    5737     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5780#line 693 "parser.yy"
     5781    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    57385782    break;
    57395783
     
    57415785
    57425786/* Line 1806 of yacc.c  */
    5743 #line 692 "parser.yy"
    5744     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
     5787#line 700 "parser.yy"
     5788    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    57455789    break;
    57465790
     
    57485792
    57495793/* Line 1806 of yacc.c  */
    5750 #line 697 "parser.yy"
    5751     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5752     break;
    5753 
    5754   case 156:
    5755 
    5756 /* Line 1806 of yacc.c  */
    5757 #line 699 "parser.yy"
    5758     { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    5759     break;
    5760 
    5761   case 157:
    5762 
    5763 /* Line 1806 of yacc.c  */
    5764 #line 706 "parser.yy"
    5765     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5794#line 702 "parser.yy"
     5795    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    57665796    break;
    57675797
     
    57695799
    57705800/* Line 1806 of yacc.c  */
    5771 #line 708 "parser.yy"
    5772     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    5773     break;
    5774 
    5775   case 161:
    5776 
    5777 /* Line 1806 of yacc.c  */
    5778 #line 715 "parser.yy"
     5801#line 709 "parser.yy"
    57795802    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    57805803    break;
    57815804
     5805  case 159:
     5806
     5807/* Line 1806 of yacc.c  */
     5808#line 713 "parser.yy"
     5809    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
     5810    break;
     5811
     5812  case 160:
     5813
     5814/* Line 1806 of yacc.c  */
     5815#line 714 "parser.yy"
     5816    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
     5817    break;
     5818
    57825819  case 162:
    57835820
    57845821/* Line 1806 of yacc.c  */
    5785 #line 719 "parser.yy"
    5786     { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
     5822#line 720 "parser.yy"
     5823    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    57875824    break;
    57885825
     
    57905827
    57915828/* Line 1806 of yacc.c  */
    5792 #line 720 "parser.yy"
    5793     { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    5794     break;
    5795 
    5796   case 165:
    5797 
    5798 /* Line 1806 of yacc.c  */
    5799 #line 726 "parser.yy"
    5800     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     5829#line 724 "parser.yy"
     5830    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5831    break;
     5832
     5833  case 164:
     5834
     5835/* Line 1806 of yacc.c  */
     5836#line 729 "parser.yy"
     5837    { (yyval.sn) = 0; }
    58015838    break;
    58025839
     
    58045841
    58055842/* Line 1806 of yacc.c  */
    5806 #line 730 "parser.yy"
     5843#line 735 "parser.yy"
    58075844    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58085845    break;
     
    58115848
    58125849/* Line 1806 of yacc.c  */
    5813 #line 735 "parser.yy"
     5850#line 737 "parser.yy"
     5851    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5852    break;
     5853
     5854  case 168:
     5855
     5856/* Line 1806 of yacc.c  */
     5857#line 742 "parser.yy"
    58145858    { (yyval.sn) = 0; }
    58155859    break;
    58165860
    5817   case 169:
    5818 
    5819 /* Line 1806 of yacc.c  */
    5820 #line 741 "parser.yy"
     5861  case 170:
     5862
     5863/* Line 1806 of yacc.c  */
     5864#line 748 "parser.yy"
    58215865    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    58225866    break;
    58235867
    5824   case 170:
    5825 
    5826 /* Line 1806 of yacc.c  */
    5827 #line 743 "parser.yy"
     5868  case 171:
     5869
     5870/* Line 1806 of yacc.c  */
     5871#line 750 "parser.yy"
     5872    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     5873    break;
     5874
     5875  case 172:
     5876
     5877/* Line 1806 of yacc.c  */
     5878#line 752 "parser.yy"
    58285879    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    58295880    break;
    58305881
    5831   case 171:
    5832 
    5833 /* Line 1806 of yacc.c  */
    5834 #line 748 "parser.yy"
     5882  case 173:
     5883
     5884/* Line 1806 of yacc.c  */
     5885#line 754 "parser.yy"
     5886    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
     5887    break;
     5888
     5889  case 174:
     5890
     5891/* Line 1806 of yacc.c  */
     5892#line 759 "parser.yy"
    58355893    { (yyval.sn) = 0; }
    58365894    break;
    58375895
    5838   case 173:
    5839 
    5840 /* Line 1806 of yacc.c  */
    5841 #line 754 "parser.yy"
    5842     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5843     break;
    5844 
    5845   case 174:
    5846 
    5847 /* Line 1806 of yacc.c  */
    5848 #line 756 "parser.yy"
    5849     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    5850     break;
    5851 
    5852   case 175:
    5853 
    5854 /* Line 1806 of yacc.c  */
    5855 #line 758 "parser.yy"
    5856     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5857     break;
    5858 
    58595896  case 176:
    58605897
    58615898/* Line 1806 of yacc.c  */
    5862 #line 760 "parser.yy"
    5863     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
     5899#line 764 "parser.yy"
     5900    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    58645901    break;
    58655902
     
    58685905/* Line 1806 of yacc.c  */
    58695906#line 765 "parser.yy"
    5870     { (yyval.sn) = 0; }
     5907    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5908    break;
     5909
     5910  case 178:
     5911
     5912/* Line 1806 of yacc.c  */
     5913#line 770 "parser.yy"
     5914    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    58715915    break;
    58725916
     
    58745918
    58755919/* Line 1806 of yacc.c  */
    5876 #line 770 "parser.yy"
    5877     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5920#line 772 "parser.yy"
     5921    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    58785922    break;
    58795923
     
    58815925
    58825926/* Line 1806 of yacc.c  */
    5883 #line 771 "parser.yy"
    5884     { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
     5927#line 774 "parser.yy"
     5928    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    58855929    break;
    58865930
     
    58885932
    58895933/* Line 1806 of yacc.c  */
    5890 #line 776 "parser.yy"
    5891     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5934#line 779 "parser.yy"
     5935    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    58925936    break;
    58935937
     
    58955939
    58965940/* Line 1806 of yacc.c  */
    5897 #line 778 "parser.yy"
    5898     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     5941#line 781 "parser.yy"
     5942    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    58995943    break;
    59005944
     
    59025946
    59035947/* Line 1806 of yacc.c  */
    5904 #line 780 "parser.yy"
    5905     { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
     5948#line 786 "parser.yy"
     5949    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    59065950    break;
    59075951
     
    59095953
    59105954/* Line 1806 of yacc.c  */
    5911 #line 785 "parser.yy"
    5912     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5955#line 790 "parser.yy"
     5956    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    59135957    break;
    59145958
     
    59165960
    59175961/* Line 1806 of yacc.c  */
    5918 #line 787 "parser.yy"
    5919     { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5962#line 793 "parser.yy"
     5963    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    59205964    break;
    59215965
     
    59235967
    59245968/* Line 1806 of yacc.c  */
    5925 #line 792 "parser.yy"
    5926     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
     5969#line 797 "parser.yy"
     5970    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    59275971    break;
    59285972
     
    59305974
    59315975/* Line 1806 of yacc.c  */
    5932 #line 796 "parser.yy"
    5933     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
     5976#line 800 "parser.yy"
     5977    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    59345978    break;
    59355979
     
    59375981
    59385982/* Line 1806 of yacc.c  */
    5939 #line 799 "parser.yy"
    5940     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     5983#line 804 "parser.yy"
     5984    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    59415985    break;
    59425986
     
    59445988
    59455989/* Line 1806 of yacc.c  */
    5946 #line 803 "parser.yy"
    5947     { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
     5990#line 806 "parser.yy"
     5991    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    59485992    break;
    59495993
     
    59515995
    59525996/* Line 1806 of yacc.c  */
    5953 #line 806 "parser.yy"
    5954     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     5997#line 808 "parser.yy"
     5998    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    59555999    break;
    59566000
     
    59596003/* Line 1806 of yacc.c  */
    59606004#line 810 "parser.yy"
    5961     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     6005    { (yyval.sn) = new StatementNode( StatementNode::Throw ); }
    59626006    break;
    59636007
     
    59656009
    59666010/* Line 1806 of yacc.c  */
    5967 #line 812 "parser.yy"
    5968     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6011#line 815 "parser.yy"
     6012    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    59696013    break;
    59706014
     
    59726016
    59736017/* Line 1806 of yacc.c  */
    5974 #line 814 "parser.yy"
    5975     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6018#line 817 "parser.yy"
     6019    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    59766020    break;
    59776021
     
    59796023
    59806024/* Line 1806 of yacc.c  */
    5981 #line 818 "parser.yy"
    5982     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    5983     break;
    5984 
    5985   case 195:
    5986 
    5987 /* Line 1806 of yacc.c  */
    5988 #line 820 "parser.yy"
    5989     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    5990     break;
    5991 
    5992   case 196:
    5993 
    5994 /* Line 1806 of yacc.c  */
    5995 #line 827 "parser.yy"
    5996     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    5997     break;
    5998 
    5999   case 197:
    6000 
    6001 /* Line 1806 of yacc.c  */
    6002 #line 829 "parser.yy"
    6003     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6004     break;
    6005 
    6006   case 198:
    6007 
    6008 /* Line 1806 of yacc.c  */
    6009 #line 831 "parser.yy"
     6025#line 819 "parser.yy"
    60106026    {
    60116027                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    60146030    break;
    60156031
     6032  case 196:
     6033
     6034/* Line 1806 of yacc.c  */
     6035#line 830 "parser.yy"
     6036    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6037    break;
     6038
     6039  case 197:
     6040
     6041/* Line 1806 of yacc.c  */
     6042#line 832 "parser.yy"
     6043    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6044    break;
     6045
     6046  case 198:
     6047
     6048/* Line 1806 of yacc.c  */
     6049#line 837 "parser.yy"
     6050    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
     6051    break;
     6052
     6053  case 199:
     6054
     6055/* Line 1806 of yacc.c  */
     6056#line 839 "parser.yy"
     6057    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6058    break;
     6059
    60166060  case 200:
    60176061
    60186062/* Line 1806 of yacc.c  */
    6019 #line 842 "parser.yy"
    6020     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6021     break;
    6022 
    6023   case 201:
    6024 
    6025 /* Line 1806 of yacc.c  */
    60266063#line 844 "parser.yy"
    6027     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6028     break;
    6029 
    6030   case 202:
    6031 
    6032 /* Line 1806 of yacc.c  */
    6033 #line 846 "parser.yy"
    6034     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6035     break;
    6036 
    6037   case 203:
    6038 
    6039 /* Line 1806 of yacc.c  */
    6040 #line 848 "parser.yy"
    6041     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6042     break;
    6043 
    6044   case 204:
    6045 
    6046 /* Line 1806 of yacc.c  */
    6047 #line 853 "parser.yy"
    6048     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6049     break;
    6050 
    6051   case 205:
    6052 
    6053 /* Line 1806 of yacc.c  */
    6054 #line 855 "parser.yy"
    6055     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6056     break;
    6057 
    6058   case 206:
    6059 
    6060 /* Line 1806 of yacc.c  */
    6061 #line 857 "parser.yy"
    6062     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6063     break;
    6064 
    6065   case 207:
    6066 
    6067 /* Line 1806 of yacc.c  */
    6068 #line 859 "parser.yy"
    6069     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6070     break;
    6071 
    6072   case 208:
    6073 
    6074 /* Line 1806 of yacc.c  */
    6075 #line 864 "parser.yy"
    60766064    {
    60776065                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    60806068    break;
    60816069
    6082   case 210:
    6083 
    6084 /* Line 1806 of yacc.c  */
    6085 #line 878 "parser.yy"
     6070  case 202:
     6071
     6072/* Line 1806 of yacc.c  */
     6073#line 858 "parser.yy"
    60866074    {
    60876075                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60906078    break;
    60916079
    6092   case 211:
    6093 
    6094 /* Line 1806 of yacc.c  */
    6095 #line 883 "parser.yy"
     6080  case 203:
     6081
     6082/* Line 1806 of yacc.c  */
     6083#line 863 "parser.yy"
    60966084    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60976085    break;
    60986086
    6099   case 212:
    6100 
    6101 /* Line 1806 of yacc.c  */
    6102 #line 885 "parser.yy"
     6087  case 204:
     6088
     6089/* Line 1806 of yacc.c  */
     6090#line 865 "parser.yy"
    61036091    {
    61046092                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61076095    break;
    61086096
    6109   case 214:
     6097  case 206:
     6098
     6099/* Line 1806 of yacc.c  */
     6100#line 874 "parser.yy"
     6101    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6102    break;
     6103
     6104  case 207:
     6105
     6106/* Line 1806 of yacc.c  */
     6107#line 876 "parser.yy"
     6108    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6109    break;
     6110
     6111  case 208:
     6112
     6113/* Line 1806 of yacc.c  */
     6114#line 878 "parser.yy"
     6115    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6116    break;
     6117
     6118  case 209:
     6119
     6120/* Line 1806 of yacc.c  */
     6121#line 880 "parser.yy"
     6122    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6123    break;
     6124
     6125  case 210:
     6126
     6127/* Line 1806 of yacc.c  */
     6128#line 882 "parser.yy"
     6129    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
     6130    break;
     6131
     6132  case 211:
     6133
     6134/* Line 1806 of yacc.c  */
     6135#line 887 "parser.yy"
     6136    { (yyval.flag) = false; }
     6137    break;
     6138
     6139  case 212:
     6140
     6141/* Line 1806 of yacc.c  */
     6142#line 889 "parser.yy"
     6143    { (yyval.flag) = true; }
     6144    break;
     6145
     6146  case 213:
    61106147
    61116148/* Line 1806 of yacc.c  */
    61126149#line 894 "parser.yy"
    6113     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    6114     break;
    6115 
    6116   case 215:
    6117 
    6118 /* Line 1806 of yacc.c  */
    6119 #line 896 "parser.yy"
    6120     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6150    { (yyval.en) = 0; }
    61216151    break;
    61226152
     
    61246154
    61256155/* Line 1806 of yacc.c  */
    6126 #line 898 "parser.yy"
    6127     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6156#line 901 "parser.yy"
     6157    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    61286158    break;
    61296159
     
    61316161
    61326162/* Line 1806 of yacc.c  */
    6133 #line 900 "parser.yy"
    6134     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6163#line 906 "parser.yy"
     6164    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    61356165    break;
    61366166
     
    61386168
    61396169/* Line 1806 of yacc.c  */
    6140 #line 902 "parser.yy"
    6141     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
     6170#line 908 "parser.yy"
     6171    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    61426172    break;
    61436173
     
    61456175
    61466176/* Line 1806 of yacc.c  */
    6147 #line 907 "parser.yy"
    6148     { (yyval.flag) = false; }
     6177#line 913 "parser.yy"
     6178    { (yyval.constant) = 0; }
    61496179    break;
    61506180
     
    61526182
    61536183/* Line 1806 of yacc.c  */
    6154 #line 909 "parser.yy"
    6155     { (yyval.flag) = true; }
     6184#line 915 "parser.yy"
     6185    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    61566186    break;
    61576187
     
    61596189
    61606190/* Line 1806 of yacc.c  */
    6161 #line 914 "parser.yy"
    6162     { (yyval.en) = 0; }
     6191#line 917 "parser.yy"
     6192    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
     6193    break;
     6194
     6195  case 222:
     6196
     6197/* Line 1806 of yacc.c  */
     6198#line 922 "parser.yy"
     6199    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6200    break;
     6201
     6202  case 223:
     6203
     6204/* Line 1806 of yacc.c  */
     6205#line 924 "parser.yy"
     6206    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    61636207    break;
    61646208
     
    61666210
    61676211/* Line 1806 of yacc.c  */
    6168 #line 921 "parser.yy"
    6169     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    6170     break;
    6171 
    6172   case 225:
    6173 
    6174 /* Line 1806 of yacc.c  */
    6175 #line 926 "parser.yy"
    6176     { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    6177     break;
    6178 
    6179   case 226:
    6180 
    6181 /* Line 1806 of yacc.c  */
    6182 #line 928 "parser.yy"
    6183     { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
     6212#line 931 "parser.yy"
     6213    { (yyval.decl) = 0; }
    61846214    break;
    61856215
     
    61876217
    61886218/* Line 1806 of yacc.c  */
    6189 #line 933 "parser.yy"
    6190     { (yyval.constant) = 0; }
     6219#line 938 "parser.yy"
     6220    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    61916221    break;
    61926222
     
    61946224
    61956225/* Line 1806 of yacc.c  */
    6196 #line 935 "parser.yy"
    6197     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    6198     break;
    6199 
    6200   case 229:
    6201 
    6202 /* Line 1806 of yacc.c  */
    6203 #line 937 "parser.yy"
    6204     { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    6205     break;
    6206 
    6207   case 230:
    6208 
    6209 /* Line 1806 of yacc.c  */
    6210 #line 942 "parser.yy"
    6211     { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
     6226#line 943 "parser.yy"
     6227    { (yyval.decl) = 0; }
    62126228    break;
    62136229
     
    62156231
    62166232/* Line 1806 of yacc.c  */
    6217 #line 944 "parser.yy"
    6218     { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    6219     break;
    6220 
    6221   case 232:
    6222 
    6223 /* Line 1806 of yacc.c  */
    6224 #line 949 "parser.yy"
    6225     {
    6226                         Token fn; fn.str = new std::string( "?{}" ); fn.loc = (yyvsp[(1) - (5)].tok).loc;
    6227                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    6228                                    (ExpressionNode *)((new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( (yyvsp[(1) - (5)].tok) ) ))->set_link( (yyvsp[(3) - (5)].en) )) ), 0 );
    6229                 }
    6230     break;
    6231 
    6232   case 233:
    6233 
    6234 /* Line 1806 of yacc.c  */
    6235 #line 955 "parser.yy"
    6236     {
    6237                         Token fn; fn.str = new std::string( "^?{}" ); fn.loc = (yyvsp[(2) - (5)].tok).loc;
    6238                         (yyval.sn) = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    6239                                    new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( (yyvsp[(2) - (5)].tok) ) ) ), 0 );
    6240                 }
    6241     break;
    6242 
    6243   case 234:
    6244 
    6245 /* Line 1806 of yacc.c  */
    6246 #line 966 "parser.yy"
    6247     { (yyval.decl) = 0; }
     6233#line 950 "parser.yy"
     6234    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6235    break;
     6236
     6237  case 236:
     6238
     6239/* Line 1806 of yacc.c  */
     6240#line 964 "parser.yy"
     6241    {}
    62486242    break;
    62496243
     
    62516245
    62526246/* Line 1806 of yacc.c  */
    6253 #line 973 "parser.yy"
    6254     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6255     break;
    6256 
    6257   case 238:
    6258 
    6259 /* Line 1806 of yacc.c  */
    6260 #line 978 "parser.yy"
    6261     { (yyval.decl) = 0; }
    6262     break;
    6263 
    6264   case 241:
    6265 
    6266 /* Line 1806 of yacc.c  */
    6267 #line 985 "parser.yy"
    6268     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6269     break;
    6270 
    6271   case 246:
    6272 
    6273 /* Line 1806 of yacc.c  */
    6274 #line 999 "parser.yy"
     6247#line 965 "parser.yy"
    62756248    {}
    62766249    break;
    62776250
    6278   case 247:
    6279 
    6280 /* Line 1806 of yacc.c  */
    6281 #line 1000 "parser.yy"
    6282     {}
    6283     break;
    6284 
    6285   case 255:
    6286 
    6287 /* Line 1806 of yacc.c  */
    6288 #line 1029 "parser.yy"
     6251  case 245:
     6252
     6253/* Line 1806 of yacc.c  */
     6254#line 994 "parser.yy"
    62896255    {
    62906256                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62936259    break;
    62946260
    6295   case 256:
    6296 
    6297 /* Line 1806 of yacc.c  */
    6298 #line 1036 "parser.yy"
     6261  case 246:
     6262
     6263/* Line 1806 of yacc.c  */
     6264#line 1001 "parser.yy"
    62996265    {
    63006266                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63036269    break;
    63046270
    6305   case 257:
    6306 
    6307 /* Line 1806 of yacc.c  */
    6308 #line 1041 "parser.yy"
     6271  case 247:
     6272
     6273/* Line 1806 of yacc.c  */
     6274#line 1006 "parser.yy"
    63096275    {
    63106276                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63136279    break;
    63146280
    6315   case 258:
    6316 
    6317 /* Line 1806 of yacc.c  */
    6318 #line 1051 "parser.yy"
     6281  case 248:
     6282
     6283/* Line 1806 of yacc.c  */
     6284#line 1016 "parser.yy"
    63196285    {
    63206286                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63236289    break;
    63246290
    6325   case 259:
    6326 
    6327 /* Line 1806 of yacc.c  */
    6328 #line 1056 "parser.yy"
     6291  case 249:
     6292
     6293/* Line 1806 of yacc.c  */
     6294#line 1021 "parser.yy"
    63296295    {
    63306296                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63336299    break;
    63346300
    6335   case 260:
    6336 
    6337 /* Line 1806 of yacc.c  */
    6338 #line 1061 "parser.yy"
     6301  case 250:
     6302
     6303/* Line 1806 of yacc.c  */
     6304#line 1026 "parser.yy"
    63396305    {
    63406306                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63436309    break;
    63446310
    6345   case 261:
    6346 
    6347 /* Line 1806 of yacc.c  */
    6348 #line 1069 "parser.yy"
     6311  case 251:
     6312
     6313/* Line 1806 of yacc.c  */
     6314#line 1034 "parser.yy"
    63496315    {
    63506316                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63536319    break;
    63546320
    6355   case 262:
    6356 
    6357 /* Line 1806 of yacc.c  */
    6358 #line 1074 "parser.yy"
     6321  case 252:
     6322
     6323/* Line 1806 of yacc.c  */
     6324#line 1039 "parser.yy"
    63596325    {
    63606326                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63636329    break;
    63646330
    6365   case 263:
    6366 
    6367 /* Line 1806 of yacc.c  */
    6368 #line 1079 "parser.yy"
     6331  case 253:
     6332
     6333/* Line 1806 of yacc.c  */
     6334#line 1044 "parser.yy"
    63696335    {
    63706336                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63736339    break;
    63746340
    6375   case 264:
    6376 
    6377 /* Line 1806 of yacc.c  */
    6378 #line 1084 "parser.yy"
     6341  case 254:
     6342
     6343/* Line 1806 of yacc.c  */
     6344#line 1049 "parser.yy"
    63796345    {
    63806346                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63836349    break;
    63846350
    6385   case 265:
    6386 
    6387 /* Line 1806 of yacc.c  */
    6388 #line 1089 "parser.yy"
     6351  case 255:
     6352
     6353/* Line 1806 of yacc.c  */
     6354#line 1054 "parser.yy"
    63896355    {
    63906356                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63936359    break;
    63946360
    6395   case 266:
    6396 
    6397 /* Line 1806 of yacc.c  */
    6398 #line 1097 "parser.yy"
     6361  case 256:
     6362
     6363/* Line 1806 of yacc.c  */
     6364#line 1062 "parser.yy"
    63996365    {
    64006366                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    64026368    break;
    64036369
    6404   case 267:
    6405 
    6406 /* Line 1806 of yacc.c  */
    6407 #line 1120 "parser.yy"
     6370  case 257:
     6371
     6372/* Line 1806 of yacc.c  */
     6373#line 1085 "parser.yy"
    64086374    {
    64096375                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64116377    break;
    64126378
    6413   case 268:
    6414 
    6415 /* Line 1806 of yacc.c  */
    6416 #line 1124 "parser.yy"
     6379  case 258:
     6380
     6381/* Line 1806 of yacc.c  */
     6382#line 1089 "parser.yy"
    64176383    {
    64186384                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64206386    break;
    64216387
    6422   case 269:
    6423 
    6424 /* Line 1806 of yacc.c  */
    6425 #line 1131 "parser.yy"
     6388  case 259:
     6389
     6390/* Line 1806 of yacc.c  */
     6391#line 1096 "parser.yy"
    64266392    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64276393    break;
    64286394
    6429   case 270:
    6430 
    6431 /* Line 1806 of yacc.c  */
    6432 #line 1135 "parser.yy"
     6395  case 260:
     6396
     6397/* Line 1806 of yacc.c  */
     6398#line 1100 "parser.yy"
    64336399    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64346400    break;
    64356401
    6436   case 271:
    6437 
    6438 /* Line 1806 of yacc.c  */
    6439 #line 1140 "parser.yy"
     6402  case 261:
     6403
     6404/* Line 1806 of yacc.c  */
     6405#line 1105 "parser.yy"
    64406406    {
    64416407                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64446410    break;
    64456411
    6446   case 272:
    6447 
    6448 /* Line 1806 of yacc.c  */
    6449 #line 1145 "parser.yy"
     6412  case 262:
     6413
     6414/* Line 1806 of yacc.c  */
     6415#line 1110 "parser.yy"
    64506416    {
    64516417                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64546420    break;
    64556421
    6456   case 273:
    6457 
    6458 /* Line 1806 of yacc.c  */
    6459 #line 1150 "parser.yy"
     6422  case 263:
     6423
     6424/* Line 1806 of yacc.c  */
     6425#line 1115 "parser.yy"
    64606426    {
    64616427                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    64646430    break;
    64656431
    6466   case 274:
    6467 
    6468 /* Line 1806 of yacc.c  */
    6469 #line 1161 "parser.yy"
     6432  case 264:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1126 "parser.yy"
    64706436    {
    64716437                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64746440    break;
    64756441
    6476   case 275:
    6477 
    6478 /* Line 1806 of yacc.c  */
    6479 #line 1166 "parser.yy"
     6442  case 265:
     6443
     6444/* Line 1806 of yacc.c  */
     6445#line 1131 "parser.yy"
    64806446    {
    64816447                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64846450    break;
    64856451
    6486   case 276:
    6487 
    6488 /* Line 1806 of yacc.c  */
    6489 #line 1171 "parser.yy"
     6452  case 266:
     6453
     6454/* Line 1806 of yacc.c  */
     6455#line 1136 "parser.yy"
    64906456    {
    64916457                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64946460    break;
    64956461
    6496   case 277:
    6497 
    6498 /* Line 1806 of yacc.c  */
    6499 #line 1176 "parser.yy"
     6462  case 267:
     6463
     6464/* Line 1806 of yacc.c  */
     6465#line 1141 "parser.yy"
    65006466    {
    65016467                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65046470    break;
    65056471
    6506   case 278:
    6507 
    6508 /* Line 1806 of yacc.c  */
    6509 #line 1181 "parser.yy"
     6472  case 268:
     6473
     6474/* Line 1806 of yacc.c  */
     6475#line 1146 "parser.yy"
    65106476    {
    65116477                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65146480    break;
    65156481
    6516   case 279:
    6517 
    6518 /* Line 1806 of yacc.c  */
    6519 #line 1190 "parser.yy"
     6482  case 269:
     6483
     6484/* Line 1806 of yacc.c  */
     6485#line 1155 "parser.yy"
    65206486    {
    65216487                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65246490    break;
    65256491
    6526   case 280:
    6527 
    6528 /* Line 1806 of yacc.c  */
    6529 #line 1195 "parser.yy"
     6492  case 270:
     6493
     6494/* Line 1806 of yacc.c  */
     6495#line 1160 "parser.yy"
    65306496    {
    65316497                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65346500    break;
    65356501
    6536   case 285:
    6537 
    6538 /* Line 1806 of yacc.c  */
    6539 #line 1212 "parser.yy"
     6502  case 275:
     6503
     6504/* Line 1806 of yacc.c  */
     6505#line 1177 "parser.yy"
    65406506    {
    65416507                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65446510    break;
    65456511
    6546   case 286:
    6547 
    6548 /* Line 1806 of yacc.c  */
    6549 #line 1217 "parser.yy"
     6512  case 276:
     6513
     6514/* Line 1806 of yacc.c  */
     6515#line 1182 "parser.yy"
    65506516    {
    65516517                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65546520    break;
    65556521
     6522  case 285:
     6523
     6524/* Line 1806 of yacc.c  */
     6525#line 1204 "parser.yy"
     6526    { (yyval.decl) = 0; }
     6527    break;
     6528
     6529  case 288:
     6530
     6531/* Line 1806 of yacc.c  */
     6532#line 1216 "parser.yy"
     6533    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6534    break;
     6535
     6536  case 291:
     6537
     6538/* Line 1806 of yacc.c  */
     6539#line 1227 "parser.yy"
     6540    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6541    break;
     6542
     6543  case 292:
     6544
     6545/* Line 1806 of yacc.c  */
     6546#line 1229 "parser.yy"
     6547    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6548    break;
     6549
     6550  case 293:
     6551
     6552/* Line 1806 of yacc.c  */
     6553#line 1231 "parser.yy"
     6554    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6555    break;
     6556
     6557  case 294:
     6558
     6559/* Line 1806 of yacc.c  */
     6560#line 1233 "parser.yy"
     6561    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6562    break;
     6563
    65566564  case 295:
    65576565
    65586566/* Line 1806 of yacc.c  */
    6559 #line 1239 "parser.yy"
    6560     { (yyval.decl) = 0; }
    6561     break;
    6562 
    6563   case 298:
    6564 
    6565 /* Line 1806 of yacc.c  */
    6566 #line 1251 "parser.yy"
    6567     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6568     break;
    6569 
    6570   case 301:
    6571 
    6572 /* Line 1806 of yacc.c  */
    6573 #line 1262 "parser.yy"
    6574     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6575     break;
    6576 
    6577   case 302:
    6578 
    6579 /* Line 1806 of yacc.c  */
    6580 #line 1264 "parser.yy"
    6581     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6582     break;
    6583 
    6584   case 303:
    6585 
    6586 /* Line 1806 of yacc.c  */
    6587 #line 1266 "parser.yy"
    6588     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6589     break;
    6590 
    6591   case 304:
    6592 
    6593 /* Line 1806 of yacc.c  */
    6594 #line 1268 "parser.yy"
    6595     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6596     break;
    6597 
    6598   case 305:
    6599 
    6600 /* Line 1806 of yacc.c  */
    6601 #line 1270 "parser.yy"
     6567#line 1235 "parser.yy"
    66026568    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66036569    break;
    66046570
    6605   case 306:
    6606 
    6607 /* Line 1806 of yacc.c  */
    6608 #line 1272 "parser.yy"
     6571  case 296:
     6572
     6573/* Line 1806 of yacc.c  */
     6574#line 1237 "parser.yy"
    66096575    {
    66106576                        typedefTable.enterScope();
     
    66126578    break;
    66136579
    6614   case 307:
    6615 
    6616 /* Line 1806 of yacc.c  */
    6617 #line 1276 "parser.yy"
     6580  case 297:
     6581
     6582/* Line 1806 of yacc.c  */
     6583#line 1241 "parser.yy"
    66186584    {
    66196585                        typedefTable.leaveScope();
     
    66226588    break;
    66236589
     6590  case 299:
     6591
     6592/* Line 1806 of yacc.c  */
     6593#line 1250 "parser.yy"
     6594    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6595    break;
     6596
     6597  case 300:
     6598
     6599/* Line 1806 of yacc.c  */
     6600#line 1252 "parser.yy"
     6601    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6602    break;
     6603
     6604  case 302:
     6605
     6606/* Line 1806 of yacc.c  */
     6607#line 1263 "parser.yy"
     6608    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6609    break;
     6610
     6611  case 304:
     6612
     6613/* Line 1806 of yacc.c  */
     6614#line 1272 "parser.yy"
     6615    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6616    break;
     6617
     6618  case 305:
     6619
     6620/* Line 1806 of yacc.c  */
     6621#line 1274 "parser.yy"
     6622    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6623    break;
     6624
     6625  case 306:
     6626
     6627/* Line 1806 of yacc.c  */
     6628#line 1276 "parser.yy"
     6629    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6630    break;
     6631
     6632  case 307:
     6633
     6634/* Line 1806 of yacc.c  */
     6635#line 1278 "parser.yy"
     6636    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6637    break;
     6638
     6639  case 308:
     6640
     6641/* Line 1806 of yacc.c  */
     6642#line 1280 "parser.yy"
     6643    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6644    break;
     6645
    66246646  case 309:
    66256647
    66266648/* Line 1806 of yacc.c  */
    6627 #line 1285 "parser.yy"
     6649#line 1282 "parser.yy"
     6650    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6651    break;
     6652
     6653  case 310:
     6654
     6655/* Line 1806 of yacc.c  */
     6656#line 1284 "parser.yy"
     6657    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6658    break;
     6659
     6660  case 311:
     6661
     6662/* Line 1806 of yacc.c  */
     6663#line 1286 "parser.yy"
     6664    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6665    break;
     6666
     6667  case 312:
     6668
     6669/* Line 1806 of yacc.c  */
     6670#line 1291 "parser.yy"
     6671    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6672    break;
     6673
     6674  case 313:
     6675
     6676/* Line 1806 of yacc.c  */
     6677#line 1293 "parser.yy"
     6678    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6679    break;
     6680
     6681  case 314:
     6682
     6683/* Line 1806 of yacc.c  */
     6684#line 1295 "parser.yy"
     6685    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6686    break;
     6687
     6688  case 315:
     6689
     6690/* Line 1806 of yacc.c  */
     6691#line 1297 "parser.yy"
     6692    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6693    break;
     6694
     6695  case 316:
     6696
     6697/* Line 1806 of yacc.c  */
     6698#line 1299 "parser.yy"
     6699    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6700    break;
     6701
     6702  case 317:
     6703
     6704/* Line 1806 of yacc.c  */
     6705#line 1301 "parser.yy"
     6706    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6707    break;
     6708
     6709  case 318:
     6710
     6711/* Line 1806 of yacc.c  */
     6712#line 1303 "parser.yy"
     6713    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6714    break;
     6715
     6716  case 319:
     6717
     6718/* Line 1806 of yacc.c  */
     6719#line 1305 "parser.yy"
     6720    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6721    break;
     6722
     6723  case 320:
     6724
     6725/* Line 1806 of yacc.c  */
     6726#line 1307 "parser.yy"
     6727    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6728    break;
     6729
     6730  case 321:
     6731
     6732/* Line 1806 of yacc.c  */
     6733#line 1309 "parser.yy"
     6734    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6735    break;
     6736
     6737  case 322:
     6738
     6739/* Line 1806 of yacc.c  */
     6740#line 1311 "parser.yy"
     6741    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     6742    break;
     6743
     6744  case 323:
     6745
     6746/* Line 1806 of yacc.c  */
     6747#line 1313 "parser.yy"
     6748    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     6749    break;
     6750
     6751  case 325:
     6752
     6753/* Line 1806 of yacc.c  */
     6754#line 1320 "parser.yy"
     6755    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6756    break;
     6757
     6758  case 326:
     6759
     6760/* Line 1806 of yacc.c  */
     6761#line 1322 "parser.yy"
    66286762    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66296763    break;
    66306764
    6631   case 310:
    6632 
    6633 /* Line 1806 of yacc.c  */
    6634 #line 1287 "parser.yy"
     6765  case 327:
     6766
     6767/* Line 1806 of yacc.c  */
     6768#line 1324 "parser.yy"
    66356769    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    66366770    break;
    66376771
    6638   case 312:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1298 "parser.yy"
     6772  case 328:
     6773
     6774/* Line 1806 of yacc.c  */
     6775#line 1326 "parser.yy"
     6776    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6777    break;
     6778
     6779  case 330:
     6780
     6781/* Line 1806 of yacc.c  */
     6782#line 1332 "parser.yy"
     6783    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6784    break;
     6785
     6786  case 332:
     6787
     6788/* Line 1806 of yacc.c  */
     6789#line 1339 "parser.yy"
     6790    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6791    break;
     6792
     6793  case 333:
     6794
     6795/* Line 1806 of yacc.c  */
     6796#line 1341 "parser.yy"
    66426797    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66436798    break;
    66446799
    6645   case 314:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1307 "parser.yy"
    6649     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6650     break;
    6651 
    6652   case 315:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1309 "parser.yy"
    6656     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6657     break;
    6658 
    6659   case 316:
    6660 
    6661 /* Line 1806 of yacc.c  */
    6662 #line 1311 "parser.yy"
    6663     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6664     break;
    6665 
    6666   case 317:
    6667 
    6668 /* Line 1806 of yacc.c  */
    6669 #line 1313 "parser.yy"
    6670     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6671     break;
    6672 
    6673   case 318:
    6674 
    6675 /* Line 1806 of yacc.c  */
    6676 #line 1315 "parser.yy"
    6677     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6678     break;
    6679 
    6680   case 319:
    6681 
    6682 /* Line 1806 of yacc.c  */
    6683 #line 1317 "parser.yy"
    6684     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6685     break;
    6686 
    6687   case 320:
    6688 
    6689 /* Line 1806 of yacc.c  */
    6690 #line 1319 "parser.yy"
    6691     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6692     break;
    6693 
    6694   case 321:
    6695 
    6696 /* Line 1806 of yacc.c  */
    6697 #line 1321 "parser.yy"
    6698     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6699     break;
    6700 
    6701   case 322:
    6702 
    6703 /* Line 1806 of yacc.c  */
    6704 #line 1326 "parser.yy"
    6705     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6706     break;
    6707 
    6708   case 323:
    6709 
    6710 /* Line 1806 of yacc.c  */
    6711 #line 1328 "parser.yy"
    6712     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6713     break;
    6714 
    6715   case 324:
    6716 
    6717 /* Line 1806 of yacc.c  */
    6718 #line 1330 "parser.yy"
    6719     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6720     break;
    6721 
    6722   case 325:
    6723 
    6724 /* Line 1806 of yacc.c  */
    6725 #line 1332 "parser.yy"
    6726     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6727     break;
    6728 
    6729   case 326:
    6730 
    6731 /* Line 1806 of yacc.c  */
    6732 #line 1334 "parser.yy"
    6733     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6734     break;
    6735 
    6736   case 327:
    6737 
    6738 /* Line 1806 of yacc.c  */
    6739 #line 1336 "parser.yy"
    6740     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6741     break;
    6742 
    6743   case 328:
    6744 
    6745 /* Line 1806 of yacc.c  */
    6746 #line 1338 "parser.yy"
    6747     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6748     break;
    6749 
    6750   case 329:
    6751 
    6752 /* Line 1806 of yacc.c  */
    6753 #line 1340 "parser.yy"
    6754     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6755     break;
    6756 
    6757   case 330:
    6758 
    6759 /* Line 1806 of yacc.c  */
    6760 #line 1342 "parser.yy"
    6761     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6762     break;
    6763 
    6764   case 331:
    6765 
    6766 /* Line 1806 of yacc.c  */
    6767 #line 1344 "parser.yy"
    6768     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6769     break;
    6770 
    6771   case 332:
    6772 
    6773 /* Line 1806 of yacc.c  */
    6774 #line 1346 "parser.yy"
    6775     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    6776     break;
    6777 
    6778   case 333:
     6800  case 334:
     6801
     6802/* Line 1806 of yacc.c  */
     6803#line 1343 "parser.yy"
     6804    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6805    break;
     6806
     6807  case 335:
    67796808
    67806809/* Line 1806 of yacc.c  */
    67816810#line 1348 "parser.yy"
    6782     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    6783     break;
    6784 
    6785   case 335:
    6786 
    6787 /* Line 1806 of yacc.c  */
    6788 #line 1355 "parser.yy"
     6811    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6812    break;
     6813
     6814  case 336:
     6815
     6816/* Line 1806 of yacc.c  */
     6817#line 1350 "parser.yy"
     6818    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6819    break;
     6820
     6821  case 337:
     6822
     6823/* Line 1806 of yacc.c  */
     6824#line 1352 "parser.yy"
     6825    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6826    break;
     6827
     6828  case 338:
     6829
     6830/* Line 1806 of yacc.c  */
     6831#line 1354 "parser.yy"
     6832    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6833    break;
     6834
     6835  case 340:
     6836
     6837/* Line 1806 of yacc.c  */
     6838#line 1360 "parser.yy"
    67896839    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67906840    break;
    67916841
    6792   case 336:
    6793 
    6794 /* Line 1806 of yacc.c  */
    6795 #line 1357 "parser.yy"
     6842  case 341:
     6843
     6844/* Line 1806 of yacc.c  */
     6845#line 1362 "parser.yy"
    67966846    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67976847    break;
    67986848
    6799   case 337:
    6800 
    6801 /* Line 1806 of yacc.c  */
    6802 #line 1359 "parser.yy"
     6849  case 342:
     6850
     6851/* Line 1806 of yacc.c  */
     6852#line 1364 "parser.yy"
    68036853    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68046854    break;
    68056855
    6806   case 338:
    6807 
    6808 /* Line 1806 of yacc.c  */
    6809 #line 1361 "parser.yy"
    6810     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6811     break;
    6812 
    6813   case 340:
    6814 
    6815 /* Line 1806 of yacc.c  */
    6816 #line 1367 "parser.yy"
    6817     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6818     break;
    6819 
    6820   case 342:
    6821 
    6822 /* Line 1806 of yacc.c  */
    6823 #line 1374 "parser.yy"
     6856  case 344:
     6857
     6858/* Line 1806 of yacc.c  */
     6859#line 1370 "parser.yy"
    68246860    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68256861    break;
    68266862
    6827   case 343:
    6828 
    6829 /* Line 1806 of yacc.c  */
    6830 #line 1376 "parser.yy"
     6863  case 345:
     6864
     6865/* Line 1806 of yacc.c  */
     6866#line 1372 "parser.yy"
    68316867    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68326868    break;
    68336869
    6834   case 344:
     6870  case 347:
    68356871
    68366872/* Line 1806 of yacc.c  */
    68376873#line 1378 "parser.yy"
    6838     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6839     break;
    6840 
    6841   case 345:
    6842 
    6843 /* Line 1806 of yacc.c  */
    6844 #line 1383 "parser.yy"
    6845     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6846     break;
    6847 
    6848   case 346:
    6849 
    6850 /* Line 1806 of yacc.c  */
    6851 #line 1385 "parser.yy"
    6852     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6853     break;
    6854 
    6855   case 347:
     6874    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6875    break;
     6876
     6877  case 348:
     6878
     6879/* Line 1806 of yacc.c  */
     6880#line 1380 "parser.yy"
     6881    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6882    break;
     6883
     6884  case 349:
     6885
     6886/* Line 1806 of yacc.c  */
     6887#line 1382 "parser.yy"
     6888    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6889    break;
     6890
     6891  case 350:
    68566892
    68576893/* Line 1806 of yacc.c  */
    68586894#line 1387 "parser.yy"
    6859     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6860     break;
    6861 
    6862   case 348:
     6895    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6896    break;
     6897
     6898  case 351:
    68636899
    68646900/* Line 1806 of yacc.c  */
    68656901#line 1389 "parser.yy"
    6866     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6867     break;
    6868 
    6869   case 350:
    6870 
    6871 /* Line 1806 of yacc.c  */
    6872 #line 1395 "parser.yy"
    6873     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6874     break;
    6875 
    6876   case 351:
    6877 
    6878 /* Line 1806 of yacc.c  */
    6879 #line 1397 "parser.yy"
     6902    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6903    break;
     6904
     6905  case 352:
     6906
     6907/* Line 1806 of yacc.c  */
     6908#line 1391 "parser.yy"
    68806909    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68816910    break;
    68826911
    6883   case 352:
    6884 
    6885 /* Line 1806 of yacc.c  */
    6886 #line 1399 "parser.yy"
    6887     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6888     break;
    6889 
    6890   case 354:
     6912  case 355:
     6913
     6914/* Line 1806 of yacc.c  */
     6915#line 1401 "parser.yy"
     6916    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
     6917    break;
     6918
     6919  case 356:
     6920
     6921/* Line 1806 of yacc.c  */
     6922#line 1403 "parser.yy"
     6923    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
     6924    break;
     6925
     6926  case 357:
    68916927
    68926928/* Line 1806 of yacc.c  */
    68936929#line 1405 "parser.yy"
    6894     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6895     break;
    6896 
    6897   case 355:
     6930    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
     6931    break;
     6932
     6933  case 358:
    68986934
    68996935/* Line 1806 of yacc.c  */
    69006936#line 1407 "parser.yy"
    6901     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6902     break;
    6903 
    6904   case 357:
    6905 
    6906 /* Line 1806 of yacc.c  */
    6907 #line 1413 "parser.yy"
    6908     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6909     break;
    6910 
    6911   case 358:
    6912 
    6913 /* Line 1806 of yacc.c  */
    6914 #line 1415 "parser.yy"
    6915     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6937    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    69166938    break;
    69176939
     
    69196941
    69206942/* Line 1806 of yacc.c  */
    6921 #line 1417 "parser.yy"
    6922     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6943#line 1409 "parser.yy"
     6944    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    69236945    break;
    69246946
     
    69266948
    69276949/* Line 1806 of yacc.c  */
    6928 #line 1422 "parser.yy"
    6929     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6950#line 1414 "parser.yy"
     6951    { (yyval.aggKey) = DeclarationNode::Struct; }
    69306952    break;
    69316953
     
    69336955
    69346956/* Line 1806 of yacc.c  */
    6935 #line 1424 "parser.yy"
    6936     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6957#line 1416 "parser.yy"
     6958    { (yyval.aggKey) = DeclarationNode::Union; }
    69376959    break;
    69386960
     
    69406962
    69416963/* Line 1806 of yacc.c  */
    6942 #line 1426 "parser.yy"
    6943     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6964#line 1421 "parser.yy"
     6965    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
     6966    break;
     6967
     6968  case 363:
     6969
     6970/* Line 1806 of yacc.c  */
     6971#line 1423 "parser.yy"
     6972    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    69446973    break;
    69456974
     
    69476976
    69486977/* Line 1806 of yacc.c  */
    6949 #line 1436 "parser.yy"
    6950     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    6951     break;
    6952 
    6953   case 366:
     6978#line 1429 "parser.yy"
     6979    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6980    break;
     6981
     6982  case 367:
     6983
     6984/* Line 1806 of yacc.c  */
     6985#line 1432 "parser.yy"
     6986    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     6987    break;
     6988
     6989  case 369:
    69546990
    69556991/* Line 1806 of yacc.c  */
    69566992#line 1438 "parser.yy"
    6957     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); }
    6958     break;
    6959 
    6960   case 367:
     6993    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     6994    break;
     6995
     6996  case 370:
    69616997
    69626998/* Line 1806 of yacc.c  */
    69636999#line 1440 "parser.yy"
    6964     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }
    6965     break;
    6966 
    6967   case 368:
     7000    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7001    break;
     7002
     7003  case 371:
    69687004
    69697005/* Line 1806 of yacc.c  */
    69707006#line 1442 "parser.yy"
    6971     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    6972     break;
    6973 
    6974   case 369:
    6975 
    6976 /* Line 1806 of yacc.c  */
    6977 #line 1444 "parser.yy"
    6978     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    6979     break;
    6980 
    6981   case 370:
     7007    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7008    break;
     7009
     7010  case 372:
     7011
     7012/* Line 1806 of yacc.c  */
     7013#line 1447 "parser.yy"
     7014    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7015    break;
     7016
     7017  case 373:
    69827018
    69837019/* Line 1806 of yacc.c  */
    69847020#line 1449 "parser.yy"
    6985     { (yyval.aggKey) = DeclarationNode::Struct; }
    6986     break;
    6987 
    6988   case 371:
    6989 
    6990 /* Line 1806 of yacc.c  */
    6991 #line 1451 "parser.yy"
    6992     { (yyval.aggKey) = DeclarationNode::Union; }
    6993     break;
    6994 
    6995   case 372:
     7021    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7022    break;
     7023
     7024  case 374:
     7025
     7026/* Line 1806 of yacc.c  */
     7027#line 1454 "parser.yy"
     7028    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7029    break;
     7030
     7031  case 375:
    69967032
    69977033/* Line 1806 of yacc.c  */
    69987034#line 1456 "parser.yy"
    6999     { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    7000     break;
    7001 
    7002   case 373:
    7003 
    7004 /* Line 1806 of yacc.c  */
    7005 #line 1458 "parser.yy"
    7006     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    7007     break;
    7008 
    7009   case 375:
    7010 
    7011 /* Line 1806 of yacc.c  */
    7012 #line 1464 "parser.yy"
    7013     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7035    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7036    break;
     7037
     7038  case 376:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1459 "parser.yy"
     7042    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70147043    break;
    70157044
     
    70177046
    70187047/* Line 1806 of yacc.c  */
    7019 #line 1467 "parser.yy"
    7020     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7048#line 1462 "parser.yy"
     7049    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70217050    break;
    70227051
     
    70247053
    70257054/* Line 1806 of yacc.c  */
    7026 #line 1473 "parser.yy"
    7027     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7055#line 1468 "parser.yy"
     7056    { (yyval.en) = 0; }
    70287057    break;
    70297058
     
    70317060
    70327061/* Line 1806 of yacc.c  */
     7062#line 1470 "parser.yy"
     7063    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7064    break;
     7065
     7066  case 381:
     7067
     7068/* Line 1806 of yacc.c  */
    70337069#line 1475 "parser.yy"
    7034     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    7035     break;
    7036 
    7037   case 381:
    7038 
    7039 /* Line 1806 of yacc.c  */
    7040 #line 1477 "parser.yy"
    7041     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    7042     break;
    7043 
    7044   case 382:
    7045 
    7046 /* Line 1806 of yacc.c  */
    7047 #line 1482 "parser.yy"
    7048     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7070    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70497071    break;
    70507072
     
    70537075/* Line 1806 of yacc.c  */
    70547076#line 1484 "parser.yy"
    7055     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
     7077    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    70567078    break;
    70577079
     
    70597081
    70607082/* Line 1806 of yacc.c  */
    7061 #line 1489 "parser.yy"
    7062     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7083#line 1486 "parser.yy"
     7084    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    70637085    break;
    70647086
     
    70667088
    70677089/* Line 1806 of yacc.c  */
    7068 #line 1491 "parser.yy"
    7069     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7090#line 1488 "parser.yy"
     7091    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    70707092    break;
    70717093
     
    70737095
    70747096/* Line 1806 of yacc.c  */
    7075 #line 1494 "parser.yy"
    7076     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7097#line 1493 "parser.yy"
     7098    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70777099    break;
    70787100
     
    70807102
    70817103/* Line 1806 of yacc.c  */
    7082 #line 1497 "parser.yy"
    7083     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7104#line 1495 "parser.yy"
     7105    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7106    break;
     7107
     7108  case 388:
     7109
     7110/* Line 1806 of yacc.c  */
     7111#line 1500 "parser.yy"
     7112    { (yyval.en) = 0; }
    70847113    break;
    70857114
     
    70877116
    70887117/* Line 1806 of yacc.c  */
    7089 #line 1503 "parser.yy"
    7090     { (yyval.en) = 0; }
     7118#line 1502 "parser.yy"
     7119    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70917120    break;
    70927121
     
    70947123
    70957124/* Line 1806 of yacc.c  */
    7096 #line 1505 "parser.yy"
    7097     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    7098     break;
    7099 
    7100   case 391:
    7101 
    7102 /* Line 1806 of yacc.c  */
    7103 #line 1510 "parser.yy"
    7104     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7105     break;
    7106 
    7107   case 393:
     7125#line 1509 "parser.yy"
     7126    { (yyval.decl) = 0; }
     7127    break;
     7128
     7129  case 394:
     7130
     7131/* Line 1806 of yacc.c  */
     7132#line 1517 "parser.yy"
     7133    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7134    break;
     7135
     7136  case 395:
    71087137
    71097138/* Line 1806 of yacc.c  */
    71107139#line 1519 "parser.yy"
    7111     { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    7112     break;
    7113 
    7114   case 394:
     7140    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7141    break;
     7142
     7143  case 396:
    71157144
    71167145/* Line 1806 of yacc.c  */
    71177146#line 1521 "parser.yy"
    7118     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    7119     break;
    7120 
    7121   case 395:
    7122 
    7123 /* Line 1806 of yacc.c  */
    7124 #line 1523 "parser.yy"
    7125     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    7126     break;
    7127 
    7128   case 396:
    7129 
    7130 /* Line 1806 of yacc.c  */
    7131 #line 1528 "parser.yy"
    7132     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    7133     break;
    7134 
    7135   case 397:
    7136 
    7137 /* Line 1806 of yacc.c  */
    7138 #line 1530 "parser.yy"
    7139     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7147    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71407148    break;
    71417149
     
    71437151
    71447152/* Line 1806 of yacc.c  */
    7145 #line 1535 "parser.yy"
    7146     { (yyval.en) = 0; }
     7153#line 1529 "parser.yy"
     7154    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71477155    break;
    71487156
     
    71507158
    71517159/* Line 1806 of yacc.c  */
    7152 #line 1537 "parser.yy"
    7153     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     7160#line 1531 "parser.yy"
     7161    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71547162    break;
    71557163
    71567164  case 400:
     7165
     7166/* Line 1806 of yacc.c  */
     7167#line 1533 "parser.yy"
     7168    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7169    break;
     7170
     7171  case 402:
     7172
     7173/* Line 1806 of yacc.c  */
     7174#line 1539 "parser.yy"
     7175    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7176    break;
     7177
     7178  case 403:
    71577179
    71587180/* Line 1806 of yacc.c  */
     
    71617183    break;
    71627184
    7163   case 404:
    7164 
    7165 /* Line 1806 of yacc.c  */
    7166 #line 1552 "parser.yy"
     7185  case 406:
     7186
     7187/* Line 1806 of yacc.c  */
     7188#line 1551 "parser.yy"
     7189    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7190    break;
     7191
     7192  case 409:
     7193
     7194/* Line 1806 of yacc.c  */
     7195#line 1558 "parser.yy"
    71677196    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71687197    break;
    71697198
    7170   case 405:
    7171 
    7172 /* Line 1806 of yacc.c  */
    7173 #line 1554 "parser.yy"
    7174     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7175     break;
    7176 
    7177   case 406:
    7178 
    7179 /* Line 1806 of yacc.c  */
    7180 #line 1556 "parser.yy"
    7181     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7182     break;
    7183 
    7184   case 408:
    7185 
    7186 /* Line 1806 of yacc.c  */
    7187 #line 1564 "parser.yy"
     7199  case 410:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1560 "parser.yy"
    71887203    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71897204    break;
    71907205
    7191   case 409:
    7192 
    7193 /* Line 1806 of yacc.c  */
    7194 #line 1566 "parser.yy"
    7195     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7196     break;
    7197 
    7198   case 410:
    7199 
    7200 /* Line 1806 of yacc.c  */
    7201 #line 1568 "parser.yy"
    7202     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7203     break;
    7204 
    72057206  case 412:
    72067207
    72077208/* Line 1806 of yacc.c  */
     7209#line 1569 "parser.yy"
     7210    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7211    break;
     7212
     7213  case 413:
     7214
     7215/* Line 1806 of yacc.c  */
     7216#line 1572 "parser.yy"
     7217    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7218    break;
     7219
     7220  case 414:
     7221
     7222/* Line 1806 of yacc.c  */
    72087223#line 1574 "parser.yy"
    7209     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7210     break;
    7211 
    7212   case 413:
    7213 
    7214 /* Line 1806 of yacc.c  */
    7215 #line 1579 "parser.yy"
    7216     { (yyval.decl) = 0; }
    7217     break;
    7218 
    7219   case 416:
    7220 
    7221 /* Line 1806 of yacc.c  */
    7222 #line 1586 "parser.yy"
    7223     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7224    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72247225    break;
    72257226
     
    72277228
    72287229/* Line 1806 of yacc.c  */
    7229 #line 1593 "parser.yy"
    7230     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7231     break;
    7232 
    7233   case 420:
    7234 
    7235 /* Line 1806 of yacc.c  */
    7236 #line 1595 "parser.yy"
    7237     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7238     break;
    7239 
    7240   case 422:
    7241 
    7242 /* Line 1806 of yacc.c  */
    7243 #line 1604 "parser.yy"
    7244     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7245     break;
    7246 
    7247   case 423:
    7248 
    7249 /* Line 1806 of yacc.c  */
    7250 #line 1607 "parser.yy"
    7251     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7252     break;
    7253 
    7254   case 424:
    7255 
    7256 /* Line 1806 of yacc.c  */
    7257 #line 1609 "parser.yy"
    7258     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    7259     break;
    7260 
    7261   case 429:
    7262 
    7263 /* Line 1806 of yacc.c  */
    7264 #line 1619 "parser.yy"
     7230#line 1584 "parser.yy"
    72657231    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    72667232    break;
    72677233
    7268   case 431:
    7269 
    7270 /* Line 1806 of yacc.c  */
    7271 #line 1625 "parser.yy"
     7234  case 421:
     7235
     7236/* Line 1806 of yacc.c  */
     7237#line 1590 "parser.yy"
    72727238    {
    72737239                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72767242    break;
    72777243
    7278   case 432:
    7279 
    7280 /* Line 1806 of yacc.c  */
    7281 #line 1630 "parser.yy"
     7244  case 422:
     7245
     7246/* Line 1806 of yacc.c  */
     7247#line 1595 "parser.yy"
    72827248    {
    72837249                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72867252    break;
    72877253
    7288   case 434:
    7289 
    7290 /* Line 1806 of yacc.c  */
    7291 #line 1639 "parser.yy"
     7254  case 424:
     7255
     7256/* Line 1806 of yacc.c  */
     7257#line 1604 "parser.yy"
    72927258    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72937259    break;
    72947260
    7295   case 435:
     7261  case 425:
     7262
     7263/* Line 1806 of yacc.c  */
     7264#line 1613 "parser.yy"
     7265    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7266    break;
     7267
     7268  case 426:
     7269
     7270/* Line 1806 of yacc.c  */
     7271#line 1615 "parser.yy"
     7272    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7273    break;
     7274
     7275  case 438:
     7276
     7277/* Line 1806 of yacc.c  */
     7278#line 1640 "parser.yy"
     7279    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7280    break;
     7281
     7282  case 442:
    72967283
    72977284/* Line 1806 of yacc.c  */
    72987285#line 1648 "parser.yy"
    7299     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7300     break;
    7301 
    7302   case 436:
    7303 
    7304 /* Line 1806 of yacc.c  */
    7305 #line 1650 "parser.yy"
    7306     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7286    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7287    break;
     7288
     7289  case 443:
     7290
     7291/* Line 1806 of yacc.c  */
     7292#line 1653 "parser.yy"
     7293    { (yyval.in) = 0; }
     7294    break;
     7295
     7296  case 444:
     7297
     7298/* Line 1806 of yacc.c  */
     7299#line 1655 "parser.yy"
     7300    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7301    break;
     7302
     7303  case 445:
     7304
     7305/* Line 1806 of yacc.c  */
     7306#line 1659 "parser.yy"
     7307    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7308    break;
     7309
     7310  case 446:
     7311
     7312/* Line 1806 of yacc.c  */
     7313#line 1660 "parser.yy"
     7314    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    73077315    break;
    73087316
     
    73107318
    73117319/* Line 1806 of yacc.c  */
    7312 #line 1675 "parser.yy"
    7313     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7320#line 1665 "parser.yy"
     7321    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7322    break;
     7323
     7324  case 449:
     7325
     7326/* Line 1806 of yacc.c  */
     7327#line 1666 "parser.yy"
     7328    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7329    break;
     7330
     7331  case 450:
     7332
     7333/* Line 1806 of yacc.c  */
     7334#line 1668 "parser.yy"
     7335    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73147336    break;
    73157337
     
    73177339
    73187340/* Line 1806 of yacc.c  */
    7319 #line 1683 "parser.yy"
    7320     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7321     break;
    7322 
    7323   case 453:
    7324 
    7325 /* Line 1806 of yacc.c  */
    7326 #line 1688 "parser.yy"
    7327     { (yyval.in) = 0; }
     7341#line 1684 "parser.yy"
     7342    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    73287343    break;
    73297344
     
    73327347/* Line 1806 of yacc.c  */
    73337348#line 1690 "parser.yy"
    7334     { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7349    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    73357350    break;
    73367351
     
    73387353
    73397354/* Line 1806 of yacc.c  */
    7340 #line 1694 "parser.yy"
    7341     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7355#line 1697 "parser.yy"
     7356    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    73427357    break;
    73437358
     
    73457360
    73467361/* Line 1806 of yacc.c  */
    7347 #line 1695 "parser.yy"
    7348     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7362#line 1699 "parser.yy"
     7363    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7364    break;
     7365
     7366  case 457:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1702 "parser.yy"
     7370    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73497371    break;
    73507372
     
    73527374
    73537375/* Line 1806 of yacc.c  */
    7354 #line 1700 "parser.yy"
    7355     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7376#line 1704 "parser.yy"
     7377    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    73567378    break;
    73577379
     
    73597381
    73607382/* Line 1806 of yacc.c  */
    7361 #line 1701 "parser.yy"
    7362     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
     7383#line 1706 "parser.yy"
     7384    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    73637385    break;
    73647386
     
    73667388
    73677389/* Line 1806 of yacc.c  */
    7368 #line 1703 "parser.yy"
    7369     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7390#line 1708 "parser.yy"
     7391    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    73707392    break;
    73717393
     
    73737395
    73747396/* Line 1806 of yacc.c  */
    7375 #line 1719 "parser.yy"
    7376     { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
     7397#line 1732 "parser.yy"
     7398    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7399    break;
     7400
     7401  case 463:
     7402
     7403/* Line 1806 of yacc.c  */
     7404#line 1734 "parser.yy"
     7405    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73777406    break;
    73787407
     
    73807409
    73817410/* Line 1806 of yacc.c  */
    7382 #line 1725 "parser.yy"
    7383     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    7384     break;
    7385 
    7386   case 465:
    7387 
    7388 /* Line 1806 of yacc.c  */
    7389 #line 1733 "parser.yy"
    7390     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
     7411#line 1736 "parser.yy"
     7412    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    73917413    break;
    73927414
     
    73947416
    73957417/* Line 1806 of yacc.c  */
    7396 #line 1735 "parser.yy"
    7397     { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
     7418#line 1742 "parser.yy"
     7419    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73987420    break;
    73997421
     
    74017423
    74027424/* Line 1806 of yacc.c  */
    7403 #line 1738 "parser.yy"
    7404     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
     7425#line 1744 "parser.yy"
     7426    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    74057427    break;
    74067428
     
    74087430
    74097431/* Line 1806 of yacc.c  */
    7410 #line 1740 "parser.yy"
    7411     { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    7412     break;
    7413 
    7414   case 469:
    7415 
    7416 /* Line 1806 of yacc.c  */
    7417 #line 1742 "parser.yy"
    7418     { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
     7432#line 1749 "parser.yy"
     7433    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    74197434    break;
    74207435
     
    74227437
    74237438/* Line 1806 of yacc.c  */
    7424 #line 1744 "parser.yy"
    7425     { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
     7439#line 1755 "parser.yy"
     7440    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7441    break;
     7442
     7443  case 471:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1760 "parser.yy"
     7447    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    74267448    break;
    74277449
     
    74297451
    74307452/* Line 1806 of yacc.c  */
     7453#line 1762 "parser.yy"
     7454    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7455    break;
     7456
     7457  case 474:
     7458
     7459/* Line 1806 of yacc.c  */
    74317460#line 1768 "parser.yy"
    7432     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7433     break;
    7434 
    7435   case 473:
     7461    { (yyval.tclass) = DeclarationNode::Type; }
     7462    break;
     7463
     7464  case 475:
    74367465
    74377466/* Line 1806 of yacc.c  */
    74387467#line 1770 "parser.yy"
    7439     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7440     break;
    7441 
    7442   case 474:
     7468    { (yyval.tclass) = DeclarationNode::Ftype; }
     7469    break;
     7470
     7471  case 476:
    74437472
    74447473/* Line 1806 of yacc.c  */
    74457474#line 1772 "parser.yy"
    7446     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7447     break;
    7448 
    7449   case 476:
    7450 
    7451 /* Line 1806 of yacc.c  */
    7452 #line 1778 "parser.yy"
    7453     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7475    { (yyval.tclass) = DeclarationNode::Dtype; }
    74547476    break;
    74557477
     
    74577479
    74587480/* Line 1806 of yacc.c  */
    7459 #line 1780 "parser.yy"
    7460     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7481#line 1777 "parser.yy"
     7482    { (yyval.decl) = 0; }
    74617483    break;
    74627484
     
    74647486
    74657487/* Line 1806 of yacc.c  */
    7466 #line 1785 "parser.yy"
    7467     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7468     break;
    7469 
    7470   case 480:
    7471 
    7472 /* Line 1806 of yacc.c  */
    7473 #line 1791 "parser.yy"
    7474     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7475     break;
    7476 
    7477   case 481:
    7478 
    7479 /* Line 1806 of yacc.c  */
    7480 #line 1796 "parser.yy"
    7481     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7482     break;
    7483 
    7484   case 482:
    7485 
    7486 /* Line 1806 of yacc.c  */
    7487 #line 1798 "parser.yy"
    7488     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    7489     break;
    7490 
    7491   case 484:
    7492 
    7493 /* Line 1806 of yacc.c  */
    7494 #line 1804 "parser.yy"
    7495     { (yyval.tclass) = DeclarationNode::Type; }
    7496     break;
    7497 
    7498   case 485:
    7499 
    7500 /* Line 1806 of yacc.c  */
    7501 #line 1806 "parser.yy"
    7502     { (yyval.tclass) = DeclarationNode::Ftype; }
    7503     break;
    7504 
    7505   case 486:
    7506 
    7507 /* Line 1806 of yacc.c  */
    7508 #line 1808 "parser.yy"
    7509     { (yyval.tclass) = DeclarationNode::Dtype; }
    7510     break;
    7511 
    7512   case 487:
    7513 
    7514 /* Line 1806 of yacc.c  */
    7515 #line 1813 "parser.yy"
    7516     { (yyval.decl) = 0; }
    7517     break;
    7518 
    7519   case 488:
    7520 
    7521 /* Line 1806 of yacc.c  */
    7522 #line 1815 "parser.yy"
     7488#line 1779 "parser.yy"
    75237489    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    75247490    break;
    75257491
    7526   case 489:
    7527 
    7528 /* Line 1806 of yacc.c  */
    7529 #line 1820 "parser.yy"
     7492  case 479:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1784 "parser.yy"
    75307496    {
    75317497                        typedefTable.openContext( *(yyvsp[(2) - (5)].tok) );
     
    75347500    break;
    75357501
     7502  case 480:
     7503
     7504/* Line 1806 of yacc.c  */
     7505#line 1789 "parser.yy"
     7506    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7507    break;
     7508
     7509  case 481:
     7510
     7511/* Line 1806 of yacc.c  */
     7512#line 1791 "parser.yy"
     7513    { (yyval.decl) = 0; }
     7514    break;
     7515
     7516  case 482:
     7517
     7518/* Line 1806 of yacc.c  */
     7519#line 1796 "parser.yy"
     7520    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7521    break;
     7522
     7523  case 484:
     7524
     7525/* Line 1806 of yacc.c  */
     7526#line 1799 "parser.yy"
     7527    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
     7528    break;
     7529
     7530  case 485:
     7531
     7532/* Line 1806 of yacc.c  */
     7533#line 1801 "parser.yy"
     7534    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
     7535    break;
     7536
     7537  case 486:
     7538
     7539/* Line 1806 of yacc.c  */
     7540#line 1806 "parser.yy"
     7541    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7542    break;
     7543
     7544  case 487:
     7545
     7546/* Line 1806 of yacc.c  */
     7547#line 1808 "parser.yy"
     7548    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7549    break;
     7550
     7551  case 488:
     7552
     7553/* Line 1806 of yacc.c  */
     7554#line 1810 "parser.yy"
     7555    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7556    break;
     7557
     7558  case 489:
     7559
     7560/* Line 1806 of yacc.c  */
     7561#line 1815 "parser.yy"
     7562    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
     7563    break;
     7564
    75367565  case 490:
    75377566
    75387567/* Line 1806 of yacc.c  */
    7539 #line 1825 "parser.yy"
    7540     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7568#line 1817 "parser.yy"
     7569    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75417570    break;
    75427571
     
    75447573
    75457574/* Line 1806 of yacc.c  */
    7546 #line 1827 "parser.yy"
    7547     { (yyval.decl) = 0; }
    7548     break;
    7549 
    7550   case 492:
    7551 
    7552 /* Line 1806 of yacc.c  */
    7553 #line 1832 "parser.yy"
    7554     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    7555     break;
    7556 
    7557   case 494:
    7558 
    7559 /* Line 1806 of yacc.c  */
    7560 #line 1835 "parser.yy"
    7561     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    7562     break;
    7563 
    7564   case 495:
    7565 
    7566 /* Line 1806 of yacc.c  */
    7567 #line 1837 "parser.yy"
    7568     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    7569     break;
    7570 
    7571   case 496:
    7572 
    7573 /* Line 1806 of yacc.c  */
    7574 #line 1842 "parser.yy"
    7575     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    7576     break;
    7577 
    7578   case 497:
    7579 
    7580 /* Line 1806 of yacc.c  */
    7581 #line 1844 "parser.yy"
    7582     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    7583     break;
    7584 
    7585   case 498:
    7586 
    7587 /* Line 1806 of yacc.c  */
    7588 #line 1846 "parser.yy"
    7589     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    7590     break;
    7591 
    7592   case 499:
    7593 
    7594 /* Line 1806 of yacc.c  */
    7595 #line 1851 "parser.yy"
    7596     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7597     break;
    7598 
    7599   case 500:
    7600 
    7601 /* Line 1806 of yacc.c  */
    7602 #line 1853 "parser.yy"
    7603     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7604     break;
    7605 
    7606   case 501:
    7607 
    7608 /* Line 1806 of yacc.c  */
    7609 #line 1858 "parser.yy"
     7575#line 1822 "parser.yy"
    76107576    {
    76117577                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76147580    break;
    76157581
    7616   case 502:
    7617 
    7618 /* Line 1806 of yacc.c  */
    7619 #line 1863 "parser.yy"
     7582  case 492:
     7583
     7584/* Line 1806 of yacc.c  */
     7585#line 1827 "parser.yy"
    76207586    {
    76217587                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    76247590    break;
    76257591
    7626   case 503:
    7627 
    7628 /* Line 1806 of yacc.c  */
    7629 #line 1871 "parser.yy"
     7592  case 493:
     7593
     7594/* Line 1806 of yacc.c  */
     7595#line 1835 "parser.yy"
    76307596    {
    76317597                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    76347600    break;
    76357601
    7636   case 504:
    7637 
    7638 /* Line 1806 of yacc.c  */
    7639 #line 1876 "parser.yy"
     7602  case 494:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1840 "parser.yy"
    76407606    {
    76417607                        typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) );
     
    76447610    break;
    76457611
    7646   case 505:
    7647 
    7648 /* Line 1806 of yacc.c  */
    7649 #line 1881 "parser.yy"
     7612  case 495:
     7613
     7614/* Line 1806 of yacc.c  */
     7615#line 1845 "parser.yy"
    76507616    {
    76517617                        typedefTable.leaveContext();
     
    76557621    break;
    76567622
    7657   case 507:
    7658 
    7659 /* Line 1806 of yacc.c  */
    7660 #line 1891 "parser.yy"
     7623  case 497:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1855 "parser.yy"
    76617627    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76627628    break;
    76637629
    7664   case 510:
    7665 
    7666 /* Line 1806 of yacc.c  */
    7667 #line 1901 "parser.yy"
     7630  case 500:
     7631
     7632/* Line 1806 of yacc.c  */
     7633#line 1865 "parser.yy"
    76687634    {
    76697635                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76727638    break;
    76737639
    7674   case 511:
    7675 
    7676 /* Line 1806 of yacc.c  */
    7677 #line 1906 "parser.yy"
     7640  case 501:
     7641
     7642/* Line 1806 of yacc.c  */
     7643#line 1870 "parser.yy"
    76787644    {
    76797645                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76827648    break;
    76837649
    7684   case 512:
    7685 
    7686 /* Line 1806 of yacc.c  */
    7687 #line 1911 "parser.yy"
     7650  case 502:
     7651
     7652/* Line 1806 of yacc.c  */
     7653#line 1875 "parser.yy"
    76887654    {
    76897655                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76927658    break;
    76937659
    7694   case 513:
    7695 
    7696 /* Line 1806 of yacc.c  */
    7697 #line 1919 "parser.yy"
     7660  case 503:
     7661
     7662/* Line 1806 of yacc.c  */
     7663#line 1883 "parser.yy"
    76987664    {
    76997665                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77027668    break;
    77037669
    7704   case 514:
    7705 
    7706 /* Line 1806 of yacc.c  */
    7707 #line 1924 "parser.yy"
     7670  case 504:
     7671
     7672/* Line 1806 of yacc.c  */
     7673#line 1888 "parser.yy"
    77087674    {
    77097675                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77127678    break;
    77137679
    7714   case 515:
    7715 
    7716 /* Line 1806 of yacc.c  */
    7717 #line 1934 "parser.yy"
     7680  case 505:
     7681
     7682/* Line 1806 of yacc.c  */
     7683#line 1898 "parser.yy"
    77187684    {}
    77197685    break;
    77207686
    7721   case 516:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1936 "parser.yy"
     7687  case 506:
     7688
     7689/* Line 1806 of yacc.c  */
     7690#line 1900 "parser.yy"
    77257691    {
    77267692                        if ( theTree ) {
     
    77327698    break;
    77337699
    7734   case 518:
    7735 
    7736 /* Line 1806 of yacc.c  */
    7737 #line 1948 "parser.yy"
     7700  case 508:
     7701
     7702/* Line 1806 of yacc.c  */
     7703#line 1912 "parser.yy"
    77387704    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    77397705    break;
    77407706
    7741   case 519:
    7742 
    7743 /* Line 1806 of yacc.c  */
    7744 #line 1953 "parser.yy"
     7707  case 509:
     7708
     7709/* Line 1806 of yacc.c  */
     7710#line 1917 "parser.yy"
    77457711    { (yyval.decl) = 0; }
    77467712    break;
    77477713
    7748   case 523:
    7749 
    7750 /* Line 1806 of yacc.c  */
    7751 #line 1961 "parser.yy"
     7714  case 513:
     7715
     7716/* Line 1806 of yacc.c  */
     7717#line 1925 "parser.yy"
    77527718    {}
    77537719    break;
    77547720
    7755   case 524:
    7756 
    7757 /* Line 1806 of yacc.c  */
    7758 #line 1963 "parser.yy"
     7721  case 514:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1927 "parser.yy"
    77597725    {
    77607726                        linkageStack.push( linkage );
     
    77637729    break;
    77647730
    7765   case 525:
    7766 
    7767 /* Line 1806 of yacc.c  */
    7768 #line 1968 "parser.yy"
     7731  case 515:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1932 "parser.yy"
    77697735    {
    77707736                        linkage = linkageStack.top();
     
    77747740    break;
    77757741
    7776   case 526:
    7777 
    7778 /* Line 1806 of yacc.c  */
    7779 #line 1974 "parser.yy"
     7742  case 516:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 1938 "parser.yy"
    77807746    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    77817747    break;
    77827748
    7783   case 528:
    7784 
    7785 /* Line 1806 of yacc.c  */
    7786 #line 1984 "parser.yy"
     7749  case 518:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1948 "parser.yy"
    77877753    {
    77887754                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77927758    break;
    77937759
    7794   case 529:
    7795 
    7796 /* Line 1806 of yacc.c  */
    7797 #line 1990 "parser.yy"
     7760  case 519:
     7761
     7762/* Line 1806 of yacc.c  */
     7763#line 1954 "parser.yy"
    77987764    {
    77997765                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78037769    break;
    78047770
    7805   case 530:
    7806 
    7807 /* Line 1806 of yacc.c  */
    7808 #line 1999 "parser.yy"
     7771  case 520:
     7772
     7773/* Line 1806 of yacc.c  */
     7774#line 1963 "parser.yy"
    78097775    {
    78107776                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78147780    break;
    78157781
    7816   case 531:
    7817 
    7818 /* Line 1806 of yacc.c  */
    7819 #line 2005 "parser.yy"
     7782  case 521:
     7783
     7784/* Line 1806 of yacc.c  */
     7785#line 1969 "parser.yy"
    78207786    {
    78217787                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78257791    break;
    78267792
    7827   case 532:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2011 "parser.yy"
     7793  case 522:
     7794
     7795/* Line 1806 of yacc.c  */
     7796#line 1975 "parser.yy"
    78317797    {
    78327798                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78367802    break;
    78377803
    7838   case 533:
    7839 
    7840 /* Line 1806 of yacc.c  */
    7841 #line 2017 "parser.yy"
     7804  case 523:
     7805
     7806/* Line 1806 of yacc.c  */
     7807#line 1981 "parser.yy"
    78427808    {
    78437809                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78477813    break;
    78487814
    7849   case 534:
    7850 
    7851 /* Line 1806 of yacc.c  */
    7852 #line 2023 "parser.yy"
     7815  case 524:
     7816
     7817/* Line 1806 of yacc.c  */
     7818#line 1987 "parser.yy"
    78537819    {
    78547820                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78587824    break;
    78597825
    7860   case 535:
    7861 
    7862 /* Line 1806 of yacc.c  */
    7863 #line 2031 "parser.yy"
     7826  case 525:
     7827
     7828/* Line 1806 of yacc.c  */
     7829#line 1995 "parser.yy"
    78647830    {
    78657831                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78697835    break;
    78707836
    7871   case 536:
    7872 
    7873 /* Line 1806 of yacc.c  */
    7874 #line 2037 "parser.yy"
     7837  case 526:
     7838
     7839/* Line 1806 of yacc.c  */
     7840#line 2001 "parser.yy"
    78757841    {
    78767842                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78807846    break;
    78817847
    7882   case 537:
    7883 
    7884 /* Line 1806 of yacc.c  */
    7885 #line 2045 "parser.yy"
     7848  case 527:
     7849
     7850/* Line 1806 of yacc.c  */
     7851#line 2009 "parser.yy"
    78867852    {
    78877853                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78917857    break;
    78927858
    7893   case 538:
    7894 
    7895 /* Line 1806 of yacc.c  */
    7896 #line 2051 "parser.yy"
     7859  case 528:
     7860
     7861/* Line 1806 of yacc.c  */
     7862#line 2015 "parser.yy"
    78977863    {
    78987864                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027868    break;
    79037869
    7904   case 542:
    7905 
    7906 /* Line 1806 of yacc.c  */
    7907 #line 2066 "parser.yy"
     7870  case 532:
     7871
     7872/* Line 1806 of yacc.c  */
     7873#line 2030 "parser.yy"
    79087874    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    79097875    break;
    79107876
     7877  case 535:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2040 "parser.yy"
     7881    { (yyval.decl) = 0; }
     7882    break;
     7883
     7884  case 538:
     7885
     7886/* Line 1806 of yacc.c  */
     7887#line 2047 "parser.yy"
     7888    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7889    break;
     7890
     7891  case 539:
     7892
     7893/* Line 1806 of yacc.c  */
     7894#line 2053 "parser.yy"
     7895    { (yyval.decl) = 0; }
     7896    break;
     7897
    79117898  case 545:
    79127899
    79137900/* Line 1806 of yacc.c  */
    7914 #line 2076 "parser.yy"
    7915     { (yyval.decl) = 0; }
     7901#line 2068 "parser.yy"
     7902    {}
     7903    break;
     7904
     7905  case 546:
     7906
     7907/* Line 1806 of yacc.c  */
     7908#line 2069 "parser.yy"
     7909    {}
     7910    break;
     7911
     7912  case 547:
     7913
     7914/* Line 1806 of yacc.c  */
     7915#line 2070 "parser.yy"
     7916    {}
    79167917    break;
    79177918
     
    79197920
    79207921/* Line 1806 of yacc.c  */
    7921 #line 2083 "parser.yy"
    7922     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7922#line 2071 "parser.yy"
     7923    {}
    79237924    break;
    79247925
     
    79267927
    79277928/* Line 1806 of yacc.c  */
    7928 #line 2089 "parser.yy"
    7929     { (yyval.decl) = 0; }
    7930     break;
    7931 
    7932   case 555:
    7933 
    7934 /* Line 1806 of yacc.c  */
    7935 #line 2104 "parser.yy"
    7936     {}
    7937     break;
    7938 
    7939   case 556:
    7940 
    7941 /* Line 1806 of yacc.c  */
    7942 #line 2105 "parser.yy"
    7943     {}
    7944     break;
    7945 
    7946   case 557:
    7947 
    7948 /* Line 1806 of yacc.c  */
    79497929#line 2106 "parser.yy"
    7950     {}
    7951     break;
    7952 
    7953   case 558:
    7954 
    7955 /* Line 1806 of yacc.c  */
    7956 #line 2107 "parser.yy"
    7957     {}
    7958     break;
    7959 
    7960   case 559:
    7961 
    7962 /* Line 1806 of yacc.c  */
    7963 #line 2142 "parser.yy"
    79647930    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79657931    break;
    79667932
    7967   case 561:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2145 "parser.yy"
     7933  case 551:
     7934
     7935/* Line 1806 of yacc.c  */
     7936#line 2109 "parser.yy"
    79717937    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79727938    break;
    79737939
    7974   case 562:
    7975 
    7976 /* Line 1806 of yacc.c  */
    7977 #line 2147 "parser.yy"
     7940  case 552:
     7941
     7942/* Line 1806 of yacc.c  */
     7943#line 2111 "parser.yy"
    79787944    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79797945    break;
    79807946
    7981   case 563:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2152 "parser.yy"
     7947  case 553:
     7948
     7949/* Line 1806 of yacc.c  */
     7950#line 2116 "parser.yy"
    79857951    {
    79867952                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79897955    break;
    79907956
     7957  case 554:
     7958
     7959/* Line 1806 of yacc.c  */
     7960#line 2121 "parser.yy"
     7961    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7962    break;
     7963
     7964  case 555:
     7965
     7966/* Line 1806 of yacc.c  */
     7967#line 2126 "parser.yy"
     7968    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     7969    break;
     7970
     7971  case 556:
     7972
     7973/* Line 1806 of yacc.c  */
     7974#line 2128 "parser.yy"
     7975    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     7976    break;
     7977
     7978  case 557:
     7979
     7980/* Line 1806 of yacc.c  */
     7981#line 2130 "parser.yy"
     7982    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     7983    break;
     7984
     7985  case 558:
     7986
     7987/* Line 1806 of yacc.c  */
     7988#line 2135 "parser.yy"
     7989    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     7990    break;
     7991
     7992  case 559:
     7993
     7994/* Line 1806 of yacc.c  */
     7995#line 2137 "parser.yy"
     7996    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     7997    break;
     7998
     7999  case 560:
     8000
     8001/* Line 1806 of yacc.c  */
     8002#line 2139 "parser.yy"
     8003    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8004    break;
     8005
     8006  case 561:
     8007
     8008/* Line 1806 of yacc.c  */
     8009#line 2141 "parser.yy"
     8010    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8011    break;
     8012
     8013  case 562:
     8014
     8015/* Line 1806 of yacc.c  */
     8016#line 2146 "parser.yy"
     8017    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8018    break;
     8019
     8020  case 563:
     8021
     8022/* Line 1806 of yacc.c  */
     8023#line 2148 "parser.yy"
     8024    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8025    break;
     8026
    79918027  case 564:
    79928028
    79938029/* Line 1806 of yacc.c  */
    7994 #line 2157 "parser.yy"
     8030#line 2158 "parser.yy"
     8031    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8032    break;
     8033
     8034  case 566:
     8035
     8036/* Line 1806 of yacc.c  */
     8037#line 2161 "parser.yy"
     8038    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8039    break;
     8040
     8041  case 567:
     8042
     8043/* Line 1806 of yacc.c  */
     8044#line 2166 "parser.yy"
     8045    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8046    break;
     8047
     8048  case 568:
     8049
     8050/* Line 1806 of yacc.c  */
     8051#line 2168 "parser.yy"
     8052    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8053    break;
     8054
     8055  case 569:
     8056
     8057/* Line 1806 of yacc.c  */
     8058#line 2170 "parser.yy"
    79958059    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79968060    break;
    79978061
    7998   case 565:
    7999 
    8000 /* Line 1806 of yacc.c  */
    8001 #line 2162 "parser.yy"
     8062  case 570:
     8063
     8064/* Line 1806 of yacc.c  */
     8065#line 2175 "parser.yy"
    80028066    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80038067    break;
    80048068
    8005   case 566:
    8006 
    8007 /* Line 1806 of yacc.c  */
    8008 #line 2164 "parser.yy"
     8069  case 571:
     8070
     8071/* Line 1806 of yacc.c  */
     8072#line 2177 "parser.yy"
    80098073    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80108074    break;
    80118075
    8012   case 567:
    8013 
    8014 /* Line 1806 of yacc.c  */
    8015 #line 2166 "parser.yy"
     8076  case 572:
     8077
     8078/* Line 1806 of yacc.c  */
     8079#line 2179 "parser.yy"
    80168080    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80178081    break;
    80188082
    8019   case 568:
    8020 
    8021 /* Line 1806 of yacc.c  */
    8022 #line 2171 "parser.yy"
     8083  case 573:
     8084
     8085/* Line 1806 of yacc.c  */
     8086#line 2184 "parser.yy"
     8087    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8088    break;
     8089
     8090  case 574:
     8091
     8092/* Line 1806 of yacc.c  */
     8093#line 2186 "parser.yy"
     8094    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8095    break;
     8096
     8097  case 575:
     8098
     8099/* Line 1806 of yacc.c  */
     8100#line 2188 "parser.yy"
     8101    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8102    break;
     8103
     8104  case 579:
     8105
     8106/* Line 1806 of yacc.c  */
     8107#line 2203 "parser.yy"
     8108    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8109    break;
     8110
     8111  case 580:
     8112
     8113/* Line 1806 of yacc.c  */
     8114#line 2205 "parser.yy"
     8115    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8116    break;
     8117
     8118  case 581:
     8119
     8120/* Line 1806 of yacc.c  */
     8121#line 2207 "parser.yy"
     8122    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8123    break;
     8124
     8125  case 582:
     8126
     8127/* Line 1806 of yacc.c  */
     8128#line 2212 "parser.yy"
     8129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8130    break;
     8131
     8132  case 583:
     8133
     8134/* Line 1806 of yacc.c  */
     8135#line 2214 "parser.yy"
     8136    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8137    break;
     8138
     8139  case 584:
     8140
     8141/* Line 1806 of yacc.c  */
     8142#line 2216 "parser.yy"
     8143    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8144    break;
     8145
     8146  case 585:
     8147
     8148/* Line 1806 of yacc.c  */
     8149#line 2221 "parser.yy"
     8150    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8151    break;
     8152
     8153  case 586:
     8154
     8155/* Line 1806 of yacc.c  */
     8156#line 2223 "parser.yy"
     8157    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8158    break;
     8159
     8160  case 587:
     8161
     8162/* Line 1806 of yacc.c  */
     8163#line 2225 "parser.yy"
     8164    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8165    break;
     8166
     8167  case 588:
     8168
     8169/* Line 1806 of yacc.c  */
     8170#line 2240 "parser.yy"
     8171    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8172    break;
     8173
     8174  case 590:
     8175
     8176/* Line 1806 of yacc.c  */
     8177#line 2243 "parser.yy"
     8178    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8179    break;
     8180
     8181  case 591:
     8182
     8183/* Line 1806 of yacc.c  */
     8184#line 2245 "parser.yy"
     8185    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8186    break;
     8187
     8188  case 593:
     8189
     8190/* Line 1806 of yacc.c  */
     8191#line 2251 "parser.yy"
     8192    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8193    break;
     8194
     8195  case 594:
     8196
     8197/* Line 1806 of yacc.c  */
     8198#line 2256 "parser.yy"
     8199    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8200    break;
     8201
     8202  case 595:
     8203
     8204/* Line 1806 of yacc.c  */
     8205#line 2258 "parser.yy"
     8206    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8207    break;
     8208
     8209  case 596:
     8210
     8211/* Line 1806 of yacc.c  */
     8212#line 2260 "parser.yy"
     8213    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8214    break;
     8215
     8216  case 597:
     8217
     8218/* Line 1806 of yacc.c  */
     8219#line 2265 "parser.yy"
    80238220    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80248221    break;
    80258222
    8026   case 569:
    8027 
    8028 /* Line 1806 of yacc.c  */
    8029 #line 2173 "parser.yy"
     8223  case 598:
     8224
     8225/* Line 1806 of yacc.c  */
     8226#line 2267 "parser.yy"
    80308227    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80318228    break;
    80328229
    8033   case 570:
    8034 
    8035 /* Line 1806 of yacc.c  */
    8036 #line 2175 "parser.yy"
     8230  case 599:
     8231
     8232/* Line 1806 of yacc.c  */
     8233#line 2269 "parser.yy"
    80378234    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80388235    break;
    80398236
    8040   case 571:
    8041 
    8042 /* Line 1806 of yacc.c  */
    8043 #line 2177 "parser.yy"
     8237  case 600:
     8238
     8239/* Line 1806 of yacc.c  */
     8240#line 2271 "parser.yy"
    80448241    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80458242    break;
    80468243
    8047   case 572:
    8048 
    8049 /* Line 1806 of yacc.c  */
    8050 #line 2182 "parser.yy"
     8244  case 601:
     8245
     8246/* Line 1806 of yacc.c  */
     8247#line 2276 "parser.yy"
     8248    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8249    break;
     8250
     8251  case 602:
     8252
     8253/* Line 1806 of yacc.c  */
     8254#line 2278 "parser.yy"
    80518255    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80528256    break;
    80538257
    8054   case 573:
    8055 
    8056 /* Line 1806 of yacc.c  */
    8057 #line 2184 "parser.yy"
     8258  case 603:
     8259
     8260/* Line 1806 of yacc.c  */
     8261#line 2280 "parser.yy"
    80588262    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80598263    break;
    80608264
    8061   case 574:
    8062 
    8063 /* Line 1806 of yacc.c  */
    8064 #line 2194 "parser.yy"
     8265  case 604:
     8266
     8267/* Line 1806 of yacc.c  */
     8268#line 2290 "parser.yy"
    80658269    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80668270    break;
    80678271
    8068   case 576:
    8069 
    8070 /* Line 1806 of yacc.c  */
    8071 #line 2197 "parser.yy"
     8272  case 606:
     8273
     8274/* Line 1806 of yacc.c  */
     8275#line 2293 "parser.yy"
    80728276    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80738277    break;
    80748278
    8075   case 577:
    8076 
    8077 /* Line 1806 of yacc.c  */
    8078 #line 2202 "parser.yy"
     8279  case 607:
     8280
     8281/* Line 1806 of yacc.c  */
     8282#line 2295 "parser.yy"
     8283    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8284    break;
     8285
     8286  case 608:
     8287
     8288/* Line 1806 of yacc.c  */
     8289#line 2300 "parser.yy"
     8290    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8291    break;
     8292
     8293  case 609:
     8294
     8295/* Line 1806 of yacc.c  */
     8296#line 2302 "parser.yy"
     8297    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8298    break;
     8299
     8300  case 610:
     8301
     8302/* Line 1806 of yacc.c  */
     8303#line 2304 "parser.yy"
     8304    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8305    break;
     8306
     8307  case 611:
     8308
     8309/* Line 1806 of yacc.c  */
     8310#line 2309 "parser.yy"
     8311    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8312    break;
     8313
     8314  case 612:
     8315
     8316/* Line 1806 of yacc.c  */
     8317#line 2311 "parser.yy"
     8318    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8319    break;
     8320
     8321  case 613:
     8322
     8323/* Line 1806 of yacc.c  */
     8324#line 2313 "parser.yy"
     8325    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8326    break;
     8327
     8328  case 614:
     8329
     8330/* Line 1806 of yacc.c  */
     8331#line 2315 "parser.yy"
     8332    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8333    break;
     8334
     8335  case 615:
     8336
     8337/* Line 1806 of yacc.c  */
     8338#line 2320 "parser.yy"
    80798339    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80808340    break;
    80818341
    8082   case 578:
    8083 
    8084 /* Line 1806 of yacc.c  */
    8085 #line 2204 "parser.yy"
     8342  case 616:
     8343
     8344/* Line 1806 of yacc.c  */
     8345#line 2322 "parser.yy"
    80868346    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80878347    break;
    80888348
    8089   case 579:
    8090 
    8091 /* Line 1806 of yacc.c  */
    8092 #line 2206 "parser.yy"
     8349  case 617:
     8350
     8351/* Line 1806 of yacc.c  */
     8352#line 2324 "parser.yy"
    80938353    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80948354    break;
    80958355
    8096   case 580:
    8097 
    8098 /* Line 1806 of yacc.c  */
    8099 #line 2211 "parser.yy"
    8100     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8101     break;
    8102 
    8103   case 581:
    8104 
    8105 /* Line 1806 of yacc.c  */
    8106 #line 2213 "parser.yy"
    8107     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8108     break;
    8109 
    8110   case 582:
    8111 
    8112 /* Line 1806 of yacc.c  */
    8113 #line 2215 "parser.yy"
    8114     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8115     break;
    8116 
    8117   case 583:
    8118 
    8119 /* Line 1806 of yacc.c  */
    8120 #line 2220 "parser.yy"
    8121     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8122     break;
    8123 
    8124   case 584:
    8125 
    8126 /* Line 1806 of yacc.c  */
    8127 #line 2222 "parser.yy"
    8128     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8129     break;
    8130 
    8131   case 585:
    8132 
    8133 /* Line 1806 of yacc.c  */
    8134 #line 2224 "parser.yy"
    8135     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8136     break;
    8137 
    8138   case 589:
    8139 
    8140 /* Line 1806 of yacc.c  */
    8141 #line 2239 "parser.yy"
    8142     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8143     break;
    8144 
    8145   case 590:
    8146 
    8147 /* Line 1806 of yacc.c  */
    8148 #line 2241 "parser.yy"
    8149     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8150     break;
    8151 
    8152   case 591:
    8153 
    8154 /* Line 1806 of yacc.c  */
    8155 #line 2243 "parser.yy"
    8156     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8157     break;
    8158 
    8159   case 592:
    8160 
    8161 /* Line 1806 of yacc.c  */
    8162 #line 2248 "parser.yy"
    8163     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8164     break;
    8165 
    8166   case 593:
    8167 
    8168 /* Line 1806 of yacc.c  */
    8169 #line 2250 "parser.yy"
    8170     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8171     break;
    8172 
    8173   case 594:
    8174 
    8175 /* Line 1806 of yacc.c  */
    8176 #line 2252 "parser.yy"
    8177     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8178     break;
    8179 
    8180   case 595:
    8181 
    8182 /* Line 1806 of yacc.c  */
    8183 #line 2257 "parser.yy"
    8184     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8185     break;
    8186 
    8187   case 596:
    8188 
    8189 /* Line 1806 of yacc.c  */
    8190 #line 2259 "parser.yy"
    8191     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8192     break;
    8193 
    8194   case 597:
    8195 
    8196 /* Line 1806 of yacc.c  */
    8197 #line 2261 "parser.yy"
    8198     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8199     break;
    8200 
    8201   case 598:
    8202 
    8203 /* Line 1806 of yacc.c  */
    8204 #line 2276 "parser.yy"
     8356  case 618:
     8357
     8358/* Line 1806 of yacc.c  */
     8359#line 2355 "parser.yy"
    82058360    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82068361    break;
    82078362
    8208   case 600:
    8209 
    8210 /* Line 1806 of yacc.c  */
    8211 #line 2279 "parser.yy"
     8363  case 620:
     8364
     8365/* Line 1806 of yacc.c  */
     8366#line 2358 "parser.yy"
    82128367    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82138368    break;
    82148369
    8215   case 601:
    8216 
    8217 /* Line 1806 of yacc.c  */
    8218 #line 2281 "parser.yy"
     8370  case 621:
     8371
     8372/* Line 1806 of yacc.c  */
     8373#line 2360 "parser.yy"
    82198374    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82208375    break;
    82218376
    8222   case 603:
    8223 
    8224 /* Line 1806 of yacc.c  */
    8225 #line 2287 "parser.yy"
    8226     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8227     break;
    8228 
    8229   case 604:
    8230 
    8231 /* Line 1806 of yacc.c  */
    8232 #line 2292 "parser.yy"
    8233     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8234     break;
    8235 
    8236   case 605:
    8237 
    8238 /* Line 1806 of yacc.c  */
    8239 #line 2294 "parser.yy"
    8240     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8241     break;
    8242 
    8243   case 606:
    8244 
    8245 /* Line 1806 of yacc.c  */
    8246 #line 2296 "parser.yy"
    8247     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8248     break;
    8249 
    8250   case 607:
    8251 
    8252 /* Line 1806 of yacc.c  */
    8253 #line 2301 "parser.yy"
    8254     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8255     break;
    8256 
    8257   case 608:
    8258 
    8259 /* Line 1806 of yacc.c  */
    8260 #line 2303 "parser.yy"
    8261     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8262     break;
    8263 
    8264   case 609:
    8265 
    8266 /* Line 1806 of yacc.c  */
    8267 #line 2305 "parser.yy"
    8268     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8269     break;
    8270 
    8271   case 610:
    8272 
    8273 /* Line 1806 of yacc.c  */
    8274 #line 2307 "parser.yy"
    8275     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8276     break;
    8277 
    8278   case 611:
    8279 
    8280 /* Line 1806 of yacc.c  */
    8281 #line 2312 "parser.yy"
    8282     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8283     break;
    8284 
    8285   case 612:
    8286 
    8287 /* Line 1806 of yacc.c  */
    8288 #line 2314 "parser.yy"
    8289     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8290     break;
    8291 
    8292   case 613:
    8293 
    8294 /* Line 1806 of yacc.c  */
    8295 #line 2316 "parser.yy"
    8296     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8297     break;
    8298 
    8299   case 614:
    8300 
    8301 /* Line 1806 of yacc.c  */
    8302 #line 2326 "parser.yy"
    8303     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8304     break;
    8305 
    8306   case 616:
    8307 
    8308 /* Line 1806 of yacc.c  */
    8309 #line 2329 "parser.yy"
    8310     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8311     break;
    8312 
    8313   case 617:
    8314 
    8315 /* Line 1806 of yacc.c  */
    8316 #line 2331 "parser.yy"
    8317     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8318     break;
    8319 
    8320   case 618:
    8321 
    8322 /* Line 1806 of yacc.c  */
    8323 #line 2336 "parser.yy"
    8324     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8325     break;
    8326 
    8327   case 619:
    8328 
    8329 /* Line 1806 of yacc.c  */
    8330 #line 2338 "parser.yy"
    8331     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8332     break;
    8333 
    8334   case 620:
    8335 
    8336 /* Line 1806 of yacc.c  */
    8337 #line 2340 "parser.yy"
    8338     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8339     break;
    8340 
    8341   case 621:
    8342 
    8343 /* Line 1806 of yacc.c  */
    8344 #line 2345 "parser.yy"
    8345     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8346     break;
    8347 
    83488377  case 622:
    83498378
    83508379/* Line 1806 of yacc.c  */
    8351 #line 2347 "parser.yy"
    8352     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8353     break;
    8354 
    8355   case 623:
    8356 
    8357 /* Line 1806 of yacc.c  */
    8358 #line 2349 "parser.yy"
    8359     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8360     break;
    8361 
    8362   case 624:
    8363 
    8364 /* Line 1806 of yacc.c  */
    8365 #line 2351 "parser.yy"
    8366     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8367     break;
    8368 
    8369   case 625:
    8370 
    8371 /* Line 1806 of yacc.c  */
    8372 #line 2356 "parser.yy"
    8373     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8374     break;
    8375 
    8376   case 626:
    8377 
    8378 /* Line 1806 of yacc.c  */
    8379 #line 2358 "parser.yy"
    8380     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8381     break;
    8382 
    8383   case 627:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2360 "parser.yy"
    8387     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8388     break;
    8389 
    8390   case 628:
    8391 
    8392 /* Line 1806 of yacc.c  */
    8393 #line 2391 "parser.yy"
    8394     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8395     break;
    8396 
    8397   case 630:
    8398 
    8399 /* Line 1806 of yacc.c  */
    8400 #line 2394 "parser.yy"
    8401     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8402     break;
    8403 
    8404   case 631:
    8405 
    8406 /* Line 1806 of yacc.c  */
    8407 #line 2396 "parser.yy"
    8408     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8409     break;
    8410 
    8411   case 632:
    8412 
    8413 /* Line 1806 of yacc.c  */
    8414 #line 2401 "parser.yy"
     8380#line 2365 "parser.yy"
    84158381    {
    84168382                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84198385    break;
    84208386
    8421   case 633:
    8422 
    8423 /* Line 1806 of yacc.c  */
    8424 #line 2406 "parser.yy"
     8387  case 623:
     8388
     8389/* Line 1806 of yacc.c  */
     8390#line 2370 "parser.yy"
    84258391    {
    84268392                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    84298395    break;
    84308396
     8397  case 624:
     8398
     8399/* Line 1806 of yacc.c  */
     8400#line 2378 "parser.yy"
     8401    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8402    break;
     8403
     8404  case 625:
     8405
     8406/* Line 1806 of yacc.c  */
     8407#line 2380 "parser.yy"
     8408    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8409    break;
     8410
     8411  case 626:
     8412
     8413/* Line 1806 of yacc.c  */
     8414#line 2382 "parser.yy"
     8415    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8416    break;
     8417
     8418  case 627:
     8419
     8420/* Line 1806 of yacc.c  */
     8421#line 2387 "parser.yy"
     8422    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8423    break;
     8424
     8425  case 628:
     8426
     8427/* Line 1806 of yacc.c  */
     8428#line 2389 "parser.yy"
     8429    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8430    break;
     8431
     8432  case 629:
     8433
     8434/* Line 1806 of yacc.c  */
     8435#line 2394 "parser.yy"
     8436    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8437    break;
     8438
     8439  case 630:
     8440
     8441/* Line 1806 of yacc.c  */
     8442#line 2396 "parser.yy"
     8443    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8444    break;
     8445
     8446  case 632:
     8447
     8448/* Line 1806 of yacc.c  */
     8449#line 2411 "parser.yy"
     8450    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8451    break;
     8452
     8453  case 633:
     8454
     8455/* Line 1806 of yacc.c  */
     8456#line 2413 "parser.yy"
     8457    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8458    break;
     8459
    84318460  case 634:
    84328461
    84338462/* Line 1806 of yacc.c  */
    8434 #line 2414 "parser.yy"
     8463#line 2418 "parser.yy"
     8464    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8465    break;
     8466
     8467  case 635:
     8468
     8469/* Line 1806 of yacc.c  */
     8470#line 2420 "parser.yy"
     8471    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8472    break;
     8473
     8474  case 636:
     8475
     8476/* Line 1806 of yacc.c  */
     8477#line 2422 "parser.yy"
    84358478    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84368479    break;
    84378480
    8438   case 635:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2416 "parser.yy"
     8481  case 637:
     8482
     8483/* Line 1806 of yacc.c  */
     8484#line 2424 "parser.yy"
    84428485    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84438486    break;
    84448487
    8445   case 636:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2418 "parser.yy"
     8488  case 638:
     8489
     8490/* Line 1806 of yacc.c  */
     8491#line 2426 "parser.yy"
    84498492    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84508493    break;
    84518494
    8452   case 637:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2423 "parser.yy"
     8495  case 640:
     8496
     8497/* Line 1806 of yacc.c  */
     8498#line 2432 "parser.yy"
     8499    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8500    break;
     8501
     8502  case 641:
     8503
     8504/* Line 1806 of yacc.c  */
     8505#line 2434 "parser.yy"
     8506    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8507    break;
     8508
     8509  case 642:
     8510
     8511/* Line 1806 of yacc.c  */
     8512#line 2436 "parser.yy"
     8513    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8514    break;
     8515
     8516  case 643:
     8517
     8518/* Line 1806 of yacc.c  */
     8519#line 2441 "parser.yy"
     8520    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8521    break;
     8522
     8523  case 644:
     8524
     8525/* Line 1806 of yacc.c  */
     8526#line 2443 "parser.yy"
     8527    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8528    break;
     8529
     8530  case 645:
     8531
     8532/* Line 1806 of yacc.c  */
     8533#line 2445 "parser.yy"
     8534    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8535    break;
     8536
     8537  case 646:
     8538
     8539/* Line 1806 of yacc.c  */
     8540#line 2451 "parser.yy"
     8541    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8542    break;
     8543
     8544  case 647:
     8545
     8546/* Line 1806 of yacc.c  */
     8547#line 2453 "parser.yy"
     8548    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8549    break;
     8550
     8551  case 649:
     8552
     8553/* Line 1806 of yacc.c  */
     8554#line 2459 "parser.yy"
     8555    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8556    break;
     8557
     8558  case 650:
     8559
     8560/* Line 1806 of yacc.c  */
     8561#line 2461 "parser.yy"
     8562    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8563    break;
     8564
     8565  case 651:
     8566
     8567/* Line 1806 of yacc.c  */
     8568#line 2463 "parser.yy"
     8569    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8570    break;
     8571
     8572  case 652:
     8573
     8574/* Line 1806 of yacc.c  */
     8575#line 2465 "parser.yy"
     8576    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8577    break;
     8578
     8579  case 654:
     8580
     8581/* Line 1806 of yacc.c  */
     8582#line 2480 "parser.yy"
     8583    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8584    break;
     8585
     8586  case 655:
     8587
     8588/* Line 1806 of yacc.c  */
     8589#line 2482 "parser.yy"
     8590    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8591    break;
     8592
     8593  case 656:
     8594
     8595/* Line 1806 of yacc.c  */
     8596#line 2487 "parser.yy"
     8597    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8598    break;
     8599
     8600  case 657:
     8601
     8602/* Line 1806 of yacc.c  */
     8603#line 2489 "parser.yy"
     8604    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8605    break;
     8606
     8607  case 658:
     8608
     8609/* Line 1806 of yacc.c  */
     8610#line 2491 "parser.yy"
     8611    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8612    break;
     8613
     8614  case 659:
     8615
     8616/* Line 1806 of yacc.c  */
     8617#line 2493 "parser.yy"
     8618    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8619    break;
     8620
     8621  case 660:
     8622
     8623/* Line 1806 of yacc.c  */
     8624#line 2495 "parser.yy"
     8625    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8626    break;
     8627
     8628  case 662:
     8629
     8630/* Line 1806 of yacc.c  */
     8631#line 2501 "parser.yy"
     8632    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8633    break;
     8634
     8635  case 663:
     8636
     8637/* Line 1806 of yacc.c  */
     8638#line 2503 "parser.yy"
     8639    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8640    break;
     8641
     8642  case 664:
     8643
     8644/* Line 1806 of yacc.c  */
     8645#line 2505 "parser.yy"
     8646    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8647    break;
     8648
     8649  case 665:
     8650
     8651/* Line 1806 of yacc.c  */
     8652#line 2510 "parser.yy"
     8653    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8654    break;
     8655
     8656  case 666:
     8657
     8658/* Line 1806 of yacc.c  */
     8659#line 2512 "parser.yy"
     8660    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8661    break;
     8662
     8663  case 667:
     8664
     8665/* Line 1806 of yacc.c  */
     8666#line 2514 "parser.yy"
     8667    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8668    break;
     8669
     8670  case 669:
     8671
     8672/* Line 1806 of yacc.c  */
     8673#line 2521 "parser.yy"
    84568674    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84578675    break;
    84588676
    8459   case 638:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2425 "parser.yy"
     8677  case 671:
     8678
     8679/* Line 1806 of yacc.c  */
     8680#line 2532 "parser.yy"
     8681    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8682    break;
     8683
     8684  case 672:
     8685
     8686/* Line 1806 of yacc.c  */
     8687#line 2535 "parser.yy"
     8688    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8689    break;
     8690
     8691  case 673:
     8692
     8693/* Line 1806 of yacc.c  */
     8694#line 2537 "parser.yy"
     8695    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8696    break;
     8697
     8698  case 674:
     8699
     8700/* Line 1806 of yacc.c  */
     8701#line 2540 "parser.yy"
     8702    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8703    break;
     8704
     8705  case 675:
     8706
     8707/* Line 1806 of yacc.c  */
     8708#line 2542 "parser.yy"
     8709    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8710    break;
     8711
     8712  case 676:
     8713
     8714/* Line 1806 of yacc.c  */
     8715#line 2544 "parser.yy"
     8716    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8717    break;
     8718
     8719  case 678:
     8720
     8721/* Line 1806 of yacc.c  */
     8722#line 2558 "parser.yy"
     8723    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8724    break;
     8725
     8726  case 679:
     8727
     8728/* Line 1806 of yacc.c  */
     8729#line 2560 "parser.yy"
     8730    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8731    break;
     8732
     8733  case 680:
     8734
     8735/* Line 1806 of yacc.c  */
     8736#line 2565 "parser.yy"
     8737    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8738    break;
     8739
     8740  case 681:
     8741
     8742/* Line 1806 of yacc.c  */
     8743#line 2567 "parser.yy"
     8744    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8745    break;
     8746
     8747  case 682:
     8748
     8749/* Line 1806 of yacc.c  */
     8750#line 2569 "parser.yy"
     8751    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8752    break;
     8753
     8754  case 683:
     8755
     8756/* Line 1806 of yacc.c  */
     8757#line 2571 "parser.yy"
     8758    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8759    break;
     8760
     8761  case 684:
     8762
     8763/* Line 1806 of yacc.c  */
     8764#line 2573 "parser.yy"
     8765    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8766    break;
     8767
     8768  case 686:
     8769
     8770/* Line 1806 of yacc.c  */
     8771#line 2579 "parser.yy"
    84638772    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84648773    break;
    84658774
    8466   case 639:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2430 "parser.yy"
    8470     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8471     break;
    8472 
    8473   case 640:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2432 "parser.yy"
     8775  case 687:
     8776
     8777/* Line 1806 of yacc.c  */
     8778#line 2581 "parser.yy"
     8779    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8780    break;
     8781
     8782  case 688:
     8783
     8784/* Line 1806 of yacc.c  */
     8785#line 2583 "parser.yy"
     8786    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8787    break;
     8788
     8789  case 689:
     8790
     8791/* Line 1806 of yacc.c  */
     8792#line 2588 "parser.yy"
    84778793    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84788794    break;
    84798795
    8480   case 642:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2447 "parser.yy"
    8484     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8485     break;
    8486 
    8487   case 643:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2449 "parser.yy"
    8491     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8492     break;
    8493 
    8494   case 644:
    8495 
    8496 /* Line 1806 of yacc.c  */
    8497 #line 2454 "parser.yy"
    8498     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8499     break;
    8500 
    8501   case 645:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2456 "parser.yy"
    8505     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8506     break;
    8507 
    8508   case 646:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2458 "parser.yy"
    8512     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8513     break;
    8514 
    8515   case 647:
    8516 
    8517 /* Line 1806 of yacc.c  */
    8518 #line 2460 "parser.yy"
    8519     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8520     break;
    8521 
    8522   case 648:
    8523 
    8524 /* Line 1806 of yacc.c  */
    8525 #line 2462 "parser.yy"
     8796  case 690:
     8797
     8798/* Line 1806 of yacc.c  */
     8799#line 2590 "parser.yy"
    85268800    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85278801    break;
    85288802
    8529   case 650:
    8530 
    8531 /* Line 1806 of yacc.c  */
    8532 #line 2468 "parser.yy"
    8533     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8534     break;
    8535 
    8536   case 651:
    8537 
    8538 /* Line 1806 of yacc.c  */
    8539 #line 2470 "parser.yy"
    8540     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8541     break;
    8542 
    8543   case 652:
    8544 
    8545 /* Line 1806 of yacc.c  */
    8546 #line 2472 "parser.yy"
    8547     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8548     break;
    8549 
    8550   case 653:
    8551 
    8552 /* Line 1806 of yacc.c  */
    8553 #line 2477 "parser.yy"
    8554     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8555     break;
    8556 
    8557   case 654:
    8558 
    8559 /* Line 1806 of yacc.c  */
    8560 #line 2479 "parser.yy"
    8561     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8562     break;
    8563 
    8564   case 655:
    8565 
    8566 /* Line 1806 of yacc.c  */
    8567 #line 2481 "parser.yy"
    8568     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8569     break;
    8570 
    8571   case 656:
    8572 
    8573 /* Line 1806 of yacc.c  */
    8574 #line 2487 "parser.yy"
    8575     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8576     break;
    8577 
    8578   case 657:
    8579 
    8580 /* Line 1806 of yacc.c  */
    8581 #line 2489 "parser.yy"
    8582     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8583     break;
    8584 
    8585   case 659:
    8586 
    8587 /* Line 1806 of yacc.c  */
    8588 #line 2495 "parser.yy"
    8589     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8590     break;
    8591 
    8592   case 660:
    8593 
    8594 /* Line 1806 of yacc.c  */
    8595 #line 2497 "parser.yy"
    8596     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8597     break;
    8598 
    8599   case 661:
    8600 
    8601 /* Line 1806 of yacc.c  */
    8602 #line 2499 "parser.yy"
    8603     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8604     break;
    8605 
    8606   case 662:
    8607 
    8608 /* Line 1806 of yacc.c  */
    8609 #line 2501 "parser.yy"
    8610     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8611     break;
    8612 
    8613   case 664:
    8614 
    8615 /* Line 1806 of yacc.c  */
    8616 #line 2516 "parser.yy"
    8617     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8618     break;
    8619 
    8620   case 665:
    8621 
    8622 /* Line 1806 of yacc.c  */
    8623 #line 2518 "parser.yy"
    8624     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8625     break;
    8626 
    8627   case 666:
    8628 
    8629 /* Line 1806 of yacc.c  */
    8630 #line 2523 "parser.yy"
    8631     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8632     break;
    8633 
    8634   case 667:
    8635 
    8636 /* Line 1806 of yacc.c  */
    8637 #line 2525 "parser.yy"
    8638     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8639     break;
    8640 
    8641   case 668:
    8642 
    8643 /* Line 1806 of yacc.c  */
    8644 #line 2527 "parser.yy"
    8645     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8646     break;
    8647 
    8648   case 669:
    8649 
    8650 /* Line 1806 of yacc.c  */
    8651 #line 2529 "parser.yy"
    8652     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8653     break;
    8654 
    8655   case 670:
    8656 
    8657 /* Line 1806 of yacc.c  */
    8658 #line 2531 "parser.yy"
    8659     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8660     break;
    8661 
    8662   case 672:
    8663 
    8664 /* Line 1806 of yacc.c  */
    8665 #line 2537 "parser.yy"
    8666     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8667     break;
    8668 
    8669   case 673:
    8670 
    8671 /* Line 1806 of yacc.c  */
    8672 #line 2539 "parser.yy"
    8673     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8674     break;
    8675 
    8676   case 674:
    8677 
    8678 /* Line 1806 of yacc.c  */
    8679 #line 2541 "parser.yy"
    8680     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8681     break;
    8682 
    8683   case 675:
    8684 
    8685 /* Line 1806 of yacc.c  */
    8686 #line 2546 "parser.yy"
    8687     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8688     break;
    8689 
    8690   case 676:
    8691 
    8692 /* Line 1806 of yacc.c  */
    8693 #line 2548 "parser.yy"
    8694     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8695     break;
    8696 
    8697   case 677:
    8698 
    8699 /* Line 1806 of yacc.c  */
    8700 #line 2550 "parser.yy"
    8701     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8702     break;
    8703 
    8704   case 679:
    8705 
    8706 /* Line 1806 of yacc.c  */
    8707 #line 2557 "parser.yy"
    8708     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8709     break;
    8710 
    8711   case 681:
    8712 
    8713 /* Line 1806 of yacc.c  */
    8714 #line 2568 "parser.yy"
    8715     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8716     break;
    8717 
    8718   case 682:
    8719 
    8720 /* Line 1806 of yacc.c  */
    8721 #line 2571 "parser.yy"
     8803  case 693:
     8804
     8805/* Line 1806 of yacc.c  */
     8806#line 2600 "parser.yy"
     8807    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8808    break;
     8809
     8810  case 696:
     8811
     8812/* Line 1806 of yacc.c  */
     8813#line 2610 "parser.yy"
     8814    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8815    break;
     8816
     8817  case 697:
     8818
     8819/* Line 1806 of yacc.c  */
     8820#line 2612 "parser.yy"
     8821    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8822    break;
     8823
     8824  case 698:
     8825
     8826/* Line 1806 of yacc.c  */
     8827#line 2614 "parser.yy"
     8828    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8829    break;
     8830
     8831  case 699:
     8832
     8833/* Line 1806 of yacc.c  */
     8834#line 2616 "parser.yy"
     8835    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8836    break;
     8837
     8838  case 700:
     8839
     8840/* Line 1806 of yacc.c  */
     8841#line 2618 "parser.yy"
     8842    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8843    break;
     8844
     8845  case 701:
     8846
     8847/* Line 1806 of yacc.c  */
     8848#line 2620 "parser.yy"
     8849    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8850    break;
     8851
     8852  case 702:
     8853
     8854/* Line 1806 of yacc.c  */
     8855#line 2627 "parser.yy"
     8856    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8857    break;
     8858
     8859  case 703:
     8860
     8861/* Line 1806 of yacc.c  */
     8862#line 2629 "parser.yy"
     8863    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8864    break;
     8865
     8866  case 704:
     8867
     8868/* Line 1806 of yacc.c  */
     8869#line 2631 "parser.yy"
     8870    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8871    break;
     8872
     8873  case 705:
     8874
     8875/* Line 1806 of yacc.c  */
     8876#line 2633 "parser.yy"
     8877    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8878    break;
     8879
     8880  case 706:
     8881
     8882/* Line 1806 of yacc.c  */
     8883#line 2635 "parser.yy"
     8884    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8885    break;
     8886
     8887  case 707:
     8888
     8889/* Line 1806 of yacc.c  */
     8890#line 2637 "parser.yy"
     8891    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8892    break;
     8893
     8894  case 708:
     8895
     8896/* Line 1806 of yacc.c  */
     8897#line 2639 "parser.yy"
     8898    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8899    break;
     8900
     8901  case 709:
     8902
     8903/* Line 1806 of yacc.c  */
     8904#line 2641 "parser.yy"
     8905    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8906    break;
     8907
     8908  case 710:
     8909
     8910/* Line 1806 of yacc.c  */
     8911#line 2643 "parser.yy"
     8912    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     8913    break;
     8914
     8915  case 711:
     8916
     8917/* Line 1806 of yacc.c  */
     8918#line 2645 "parser.yy"
     8919    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8920    break;
     8921
     8922  case 712:
     8923
     8924/* Line 1806 of yacc.c  */
     8925#line 2650 "parser.yy"
    87228926    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    87238927    break;
    87248928
    8725   case 683:
    8726 
    8727 /* Line 1806 of yacc.c  */
    8728 #line 2573 "parser.yy"
    8729     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8730     break;
    8731 
    8732   case 684:
    8733 
    8734 /* Line 1806 of yacc.c  */
    8735 #line 2576 "parser.yy"
     8929  case 713:
     8930
     8931/* Line 1806 of yacc.c  */
     8932#line 2652 "parser.yy"
    87368933    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    87378934    break;
    87388935
    8739   case 685:
    8740 
    8741 /* Line 1806 of yacc.c  */
    8742 #line 2578 "parser.yy"
    8743     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8744     break;
    8745 
    8746   case 686:
    8747 
    8748 /* Line 1806 of yacc.c  */
    8749 #line 2580 "parser.yy"
    8750     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8751     break;
    8752 
    8753   case 688:
    8754 
    8755 /* Line 1806 of yacc.c  */
    8756 #line 2594 "parser.yy"
    8757     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8758     break;
    8759 
    8760   case 689:
    8761 
    8762 /* Line 1806 of yacc.c  */
    8763 #line 2596 "parser.yy"
    8764     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8765     break;
    8766 
    8767   case 690:
    8768 
    8769 /* Line 1806 of yacc.c  */
    8770 #line 2601 "parser.yy"
    8771     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8772     break;
    8773 
    8774   case 691:
    8775 
    8776 /* Line 1806 of yacc.c  */
    8777 #line 2603 "parser.yy"
    8778     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8779     break;
    8780 
    8781   case 692:
    8782 
    8783 /* Line 1806 of yacc.c  */
    8784 #line 2605 "parser.yy"
    8785     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8786     break;
    8787 
    8788   case 693:
    8789 
    8790 /* Line 1806 of yacc.c  */
    8791 #line 2607 "parser.yy"
    8792     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8793     break;
    8794 
    8795   case 694:
    8796 
    8797 /* Line 1806 of yacc.c  */
    8798 #line 2609 "parser.yy"
    8799     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8800     break;
    8801 
    8802   case 696:
    8803 
    8804 /* Line 1806 of yacc.c  */
    8805 #line 2615 "parser.yy"
    8806     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8807     break;
    8808 
    8809   case 697:
    8810 
    8811 /* Line 1806 of yacc.c  */
    8812 #line 2617 "parser.yy"
    8813     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8814     break;
    8815 
    8816   case 698:
    8817 
    8818 /* Line 1806 of yacc.c  */
    8819 #line 2619 "parser.yy"
    8820     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8821     break;
    8822 
    8823   case 699:
    8824 
    8825 /* Line 1806 of yacc.c  */
    8826 #line 2624 "parser.yy"
    8827     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8828     break;
    8829 
    8830   case 700:
    8831 
    8832 /* Line 1806 of yacc.c  */
    8833 #line 2626 "parser.yy"
    8834     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8835     break;
    8836 
    8837   case 703:
    8838 
    8839 /* Line 1806 of yacc.c  */
    8840 #line 2636 "parser.yy"
     8936  case 714:
     8937
     8938/* Line 1806 of yacc.c  */
     8939#line 2657 "parser.yy"
     8940    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     8941    break;
     8942
     8943  case 715:
     8944
     8945/* Line 1806 of yacc.c  */
     8946#line 2659 "parser.yy"
     8947    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     8948    break;
     8949
     8950  case 717:
     8951
     8952/* Line 1806 of yacc.c  */
     8953#line 2686 "parser.yy"
    88418954    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88428955    break;
    88438956
    8844   case 706:
    8845 
    8846 /* Line 1806 of yacc.c  */
    8847 #line 2646 "parser.yy"
     8957  case 721:
     8958
     8959/* Line 1806 of yacc.c  */
     8960#line 2697 "parser.yy"
    88488961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88498962    break;
    88508963
    8851   case 707:
    8852 
    8853 /* Line 1806 of yacc.c  */
    8854 #line 2648 "parser.yy"
     8964  case 722:
     8965
     8966/* Line 1806 of yacc.c  */
     8967#line 2699 "parser.yy"
    88558968    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88568969    break;
    88578970
    8858   case 708:
    8859 
    8860 /* Line 1806 of yacc.c  */
    8861 #line 2650 "parser.yy"
     8971  case 723:
     8972
     8973/* Line 1806 of yacc.c  */
     8974#line 2701 "parser.yy"
    88628975    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88638976    break;
    88648977
    8865   case 709:
    8866 
    8867 /* Line 1806 of yacc.c  */
    8868 #line 2652 "parser.yy"
     8978  case 724:
     8979
     8980/* Line 1806 of yacc.c  */
     8981#line 2703 "parser.yy"
    88698982    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88708983    break;
    88718984
    8872   case 710:
    8873 
    8874 /* Line 1806 of yacc.c  */
    8875 #line 2654 "parser.yy"
     8985  case 725:
     8986
     8987/* Line 1806 of yacc.c  */
     8988#line 2705 "parser.yy"
    88768989    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88778990    break;
    88788991
    8879   case 711:
    8880 
    8881 /* Line 1806 of yacc.c  */
    8882 #line 2656 "parser.yy"
     8992  case 726:
     8993
     8994/* Line 1806 of yacc.c  */
     8995#line 2707 "parser.yy"
    88838996    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88848997    break;
    88858998
    8886   case 712:
    8887 
    8888 /* Line 1806 of yacc.c  */
    8889 #line 2663 "parser.yy"
     8999  case 727:
     9000
     9001/* Line 1806 of yacc.c  */
     9002#line 2714 "parser.yy"
    88909003    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    88919004    break;
    88929005
    8893   case 713:
    8894 
    8895 /* Line 1806 of yacc.c  */
    8896 #line 2665 "parser.yy"
     9006  case 728:
     9007
     9008/* Line 1806 of yacc.c  */
     9009#line 2716 "parser.yy"
     9010    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9011    break;
     9012
     9013  case 729:
     9014
     9015/* Line 1806 of yacc.c  */
     9016#line 2718 "parser.yy"
    88979017    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88989018    break;
    88999019
    8900   case 714:
    8901 
    8902 /* Line 1806 of yacc.c  */
    8903 #line 2667 "parser.yy"
     9020  case 730:
     9021
     9022/* Line 1806 of yacc.c  */
     9023#line 2720 "parser.yy"
     9024    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9025    break;
     9026
     9027  case 731:
     9028
     9029/* Line 1806 of yacc.c  */
     9030#line 2722 "parser.yy"
    89049031    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89059032    break;
    89069033
    8907   case 715:
    8908 
    8909 /* Line 1806 of yacc.c  */
    8910 #line 2669 "parser.yy"
    8911     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8912     break;
    8913 
    8914   case 716:
    8915 
    8916 /* Line 1806 of yacc.c  */
    8917 #line 2671 "parser.yy"
     9034  case 732:
     9035
     9036/* Line 1806 of yacc.c  */
     9037#line 2724 "parser.yy"
    89189038    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89199039    break;
    89209040
    8921   case 717:
    8922 
    8923 /* Line 1806 of yacc.c  */
    8924 #line 2673 "parser.yy"
    8925     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8926     break;
    8927 
    8928   case 718:
    8929 
    8930 /* Line 1806 of yacc.c  */
    8931 #line 2675 "parser.yy"
    8932     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8933     break;
    8934 
    8935   case 719:
    8936 
    8937 /* Line 1806 of yacc.c  */
    8938 #line 2677 "parser.yy"
    8939     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8940     break;
    8941 
    8942   case 720:
    8943 
    8944 /* Line 1806 of yacc.c  */
    8945 #line 2679 "parser.yy"
    8946     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8947     break;
    8948 
    8949   case 721:
    8950 
    8951 /* Line 1806 of yacc.c  */
    8952 #line 2681 "parser.yy"
    8953     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8954     break;
    8955 
    8956   case 722:
    8957 
    8958 /* Line 1806 of yacc.c  */
    8959 #line 2686 "parser.yy"
    8960     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8961     break;
    8962 
    8963   case 723:
    8964 
    8965 /* Line 1806 of yacc.c  */
    8966 #line 2688 "parser.yy"
    8967     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8968     break;
    8969 
    8970   case 724:
    8971 
    8972 /* Line 1806 of yacc.c  */
    8973 #line 2693 "parser.yy"
    8974     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8975     break;
    8976 
    8977   case 725:
    8978 
    8979 /* Line 1806 of yacc.c  */
    8980 #line 2695 "parser.yy"
    8981     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8982     break;
    8983 
    8984   case 727:
    8985 
    8986 /* Line 1806 of yacc.c  */
    8987 #line 2722 "parser.yy"
    8988     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8989     break;
    8990 
    8991   case 731:
    8992 
    8993 /* Line 1806 of yacc.c  */
    8994 #line 2733 "parser.yy"
    8995     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8996     break;
    8997 
    8998   case 732:
    8999 
    9000 /* Line 1806 of yacc.c  */
    9001 #line 2735 "parser.yy"
    9002     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9003     break;
    9004 
    90059041  case 733:
    90069042
    90079043/* Line 1806 of yacc.c  */
    9008 #line 2737 "parser.yy"
    9009     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9044#line 2729 "parser.yy"
     9045    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90109046    break;
    90119047
     
    90139049
    90149050/* Line 1806 of yacc.c  */
    9015 #line 2739 "parser.yy"
    9016     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9051#line 2734 "parser.yy"
     9052    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    90179053    break;
    90189054
     
    90209056
    90219057/* Line 1806 of yacc.c  */
    9022 #line 2741 "parser.yy"
    9023     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9058#line 2736 "parser.yy"
     9059    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90249060    break;
    90259061
     
    90279063
    90289064/* Line 1806 of yacc.c  */
    9029 #line 2743 "parser.yy"
    9030     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9031     break;
    9032 
    9033   case 737:
    9034 
    9035 /* Line 1806 of yacc.c  */
    9036 #line 2750 "parser.yy"
    9037     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9038     break;
    9039 
    9040   case 738:
    9041 
    9042 /* Line 1806 of yacc.c  */
    9043 #line 2752 "parser.yy"
    9044     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9065#line 2738 "parser.yy"
     9066    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    90459067    break;
    90469068
     
    90489070
    90499071/* Line 1806 of yacc.c  */
    9050 #line 2754 "parser.yy"
    9051     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9072#line 2762 "parser.yy"
     9073    { (yyval.en) = 0; }
    90529074    break;
    90539075
     
    90559077
    90569078/* Line 1806 of yacc.c  */
    9057 #line 2756 "parser.yy"
    9058     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9059     break;
    9060 
    9061   case 741:
    9062 
    9063 /* Line 1806 of yacc.c  */
    9064 #line 2758 "parser.yy"
    9065     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9066     break;
    9067 
    9068   case 742:
    9069 
    9070 /* Line 1806 of yacc.c  */
    9071 #line 2760 "parser.yy"
    9072     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9073     break;
    9074 
    9075   case 743:
    9076 
    9077 /* Line 1806 of yacc.c  */
    9078 #line 2765 "parser.yy"
    9079     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    9080     break;
    9081 
    9082   case 744:
    9083 
    9084 /* Line 1806 of yacc.c  */
    9085 #line 2770 "parser.yy"
    9086     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9087     break;
    9088 
    9089   case 745:
    9090 
    9091 /* Line 1806 of yacc.c  */
    9092 #line 2772 "parser.yy"
    9093     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9094     break;
    9095 
    9096   case 746:
    9097 
    9098 /* Line 1806 of yacc.c  */
    9099 #line 2774 "parser.yy"
    9100     { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    9101     break;
    9102 
    9103   case 749:
    9104 
    9105 /* Line 1806 of yacc.c  */
    9106 #line 2798 "parser.yy"
    9107     { (yyval.en) = 0; }
    9108     break;
    9109 
    9110   case 750:
    9111 
    9112 /* Line 1806 of yacc.c  */
    9113 #line 2800 "parser.yy"
     9079#line 2764 "parser.yy"
    91149080    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    91159081    break;
     
    91189084
    91199085/* Line 1806 of yacc.c  */
    9120 #line 9121 "Parser/parser.cc"
     9086#line 9087 "Parser/parser.cc"
    91219087      default: break;
    91229088    }
     
    93499315
    93509316/* Line 2067 of yacc.c  */
    9351 #line 2803 "parser.yy"
     9317#line 2767 "parser.yy"
    93529318
    93539319// ----end of grammar----
  • src/Parser/parser.h

    r0800284 rb0be06ac  
    8787     RETURN = 305,
    8888     CHOOSE = 306,
    89      DISABLE = 307,
    90      ENABLE = 308,
    91      FALLTHRU = 309,
    92      TRY = 310,
    93      CATCH = 311,
    94      CATCHRESUME = 312,
    95      FINALLY = 313,
    96      THROW = 314,
    97      THROWRESUME = 315,
    98      AT = 316,
    99      ASM = 317,
    100      ALIGNAS = 318,
    101      ALIGNOF = 319,
    102      ATOMIC = 320,
    103      GENERIC = 321,
    104      NORETURN = 322,
    105      STATICASSERT = 323,
    106      THREADLOCAL = 324,
    107      IDENTIFIER = 325,
    108      QUOTED_IDENTIFIER = 326,
    109      TYPEDEFname = 327,
    110      TYPEGENname = 328,
    111      ATTR_IDENTIFIER = 329,
    112      ATTR_TYPEDEFname = 330,
    113      ATTR_TYPEGENname = 331,
    114      INTEGERconstant = 332,
    115      FLOATINGconstant = 333,
    116      CHARACTERconstant = 334,
    117      STRINGliteral = 335,
    118      ZERO = 336,
    119      ONE = 337,
    120      ARROW = 338,
    121      ICR = 339,
    122      DECR = 340,
    123      LS = 341,
    124      RS = 342,
    125      LE = 343,
    126      GE = 344,
    127      EQ = 345,
    128      NE = 346,
    129      ANDAND = 347,
    130      OROR = 348,
    131      ELLIPSIS = 349,
    132      MULTassign = 350,
    133      DIVassign = 351,
    134      MODassign = 352,
    135      PLUSassign = 353,
    136      MINUSassign = 354,
    137      LSassign = 355,
    138      RSassign = 356,
    139      ANDassign = 357,
    140      ERassign = 358,
    141      ORassign = 359,
    142      THEN = 360
     89     FALLTHRU = 307,
     90     TRY = 308,
     91     CATCH = 309,
     92     FINALLY = 310,
     93     THROW = 311,
     94     ASM = 312,
     95     ALIGNAS = 313,
     96     ALIGNOF = 314,
     97     ATOMIC = 315,
     98     GENERIC = 316,
     99     NORETURN = 317,
     100     STATICASSERT = 318,
     101     THREADLOCAL = 319,
     102     IDENTIFIER = 320,
     103     QUOTED_IDENTIFIER = 321,
     104     TYPEDEFname = 322,
     105     TYPEGENname = 323,
     106     ATTR_IDENTIFIER = 324,
     107     ATTR_TYPEDEFname = 325,
     108     ATTR_TYPEGENname = 326,
     109     INTEGERconstant = 327,
     110     FLOATINGconstant = 328,
     111     CHARACTERconstant = 329,
     112     STRINGliteral = 330,
     113     ZERO = 331,
     114     ONE = 332,
     115     ARROW = 333,
     116     ICR = 334,
     117     DECR = 335,
     118     LS = 336,
     119     RS = 337,
     120     LE = 338,
     121     GE = 339,
     122     EQ = 340,
     123     NE = 341,
     124     ANDAND = 342,
     125     OROR = 343,
     126     ELLIPSIS = 344,
     127     MULTassign = 345,
     128     DIVassign = 346,
     129     MODassign = 347,
     130     PLUSassign = 348,
     131     MINUSassign = 349,
     132     LSassign = 350,
     133     RSassign = 351,
     134     ANDassign = 352,
     135     ERassign = 353,
     136     ORassign = 354,
     137     THEN = 355
    143138   };
    144139#endif
     
    193188#define RETURN 305
    194189#define CHOOSE 306
    195 #define DISABLE 307
    196 #define ENABLE 308
    197 #define FALLTHRU 309
    198 #define TRY 310
    199 #define CATCH 311
    200 #define CATCHRESUME 312
    201 #define FINALLY 313
    202 #define THROW 314
    203 #define THROWRESUME 315
    204 #define AT 316
    205 #define ASM 317
    206 #define ALIGNAS 318
    207 #define ALIGNOF 319
    208 #define ATOMIC 320
    209 #define GENERIC 321
    210 #define NORETURN 322
    211 #define STATICASSERT 323
    212 #define THREADLOCAL 324
    213 #define IDENTIFIER 325
    214 #define QUOTED_IDENTIFIER 326
    215 #define TYPEDEFname 327
    216 #define TYPEGENname 328
    217 #define ATTR_IDENTIFIER 329
    218 #define ATTR_TYPEDEFname 330
    219 #define ATTR_TYPEGENname 331
    220 #define INTEGERconstant 332
    221 #define FLOATINGconstant 333
    222 #define CHARACTERconstant 334
    223 #define STRINGliteral 335
    224 #define ZERO 336
    225 #define ONE 337
    226 #define ARROW 338
    227 #define ICR 339
    228 #define DECR 340
    229 #define LS 341
    230 #define RS 342
    231 #define LE 343
    232 #define GE 344
    233 #define EQ 345
    234 #define NE 346
    235 #define ANDAND 347
    236 #define OROR 348
    237 #define ELLIPSIS 349
    238 #define MULTassign 350
    239 #define DIVassign 351
    240 #define MODassign 352
    241 #define PLUSassign 353
    242 #define MINUSassign 354
    243 #define LSassign 355
    244 #define RSassign 356
    245 #define ANDassign 357
    246 #define ERassign 358
    247 #define ORassign 359
    248 #define THEN 360
     190#define FALLTHRU 307
     191#define TRY 308
     192#define CATCH 309
     193#define FINALLY 310
     194#define THROW 311
     195#define ASM 312
     196#define ALIGNAS 313
     197#define ALIGNOF 314
     198#define ATOMIC 315
     199#define GENERIC 316
     200#define NORETURN 317
     201#define STATICASSERT 318
     202#define THREADLOCAL 319
     203#define IDENTIFIER 320
     204#define QUOTED_IDENTIFIER 321
     205#define TYPEDEFname 322
     206#define TYPEGENname 323
     207#define ATTR_IDENTIFIER 324
     208#define ATTR_TYPEDEFname 325
     209#define ATTR_TYPEGENname 326
     210#define INTEGERconstant 327
     211#define FLOATINGconstant 328
     212#define CHARACTERconstant 329
     213#define STRINGliteral 330
     214#define ZERO 331
     215#define ONE 332
     216#define ARROW 333
     217#define ICR 334
     218#define DECR 335
     219#define LS 336
     220#define RS 337
     221#define LE 338
     222#define GE 339
     223#define EQ 340
     224#define NE 341
     225#define ANDAND 342
     226#define OROR 343
     227#define ELLIPSIS 344
     228#define MULTassign 345
     229#define DIVassign 346
     230#define MODassign 347
     231#define PLUSassign 348
     232#define MINUSassign 349
     233#define LSassign 350
     234#define RSassign 351
     235#define ANDassign 352
     236#define ERassign 353
     237#define ORassign 354
     238#define THEN 355
    249239
    250240
     
    273263
    274264/* Line 2068 of yacc.c  */
    275 #line 276 "Parser/parser.h"
     265#line 266 "Parser/parser.h"
    276266} YYSTYPE;
    277267# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    r0800284 rb0be06ac  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Sep 28 18:18:32 2015
    13 // Update Count     : 1402
     12// Last Modified On : Tue Aug 11 16:01:49 2015
     13// Update Count     : 1350
    1414//
    1515
     
    8181%token ATTRIBUTE EXTENSION                                                              // GCC
    8282%token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN
    83 %token CHOOSE DISABLE ENABLE FALLTHRU TRY CATCH CATCHRESUME FINALLY THROW THROWRESUME AT        // CFA
     83%token CHOOSE FALLTHRU TRY CATCH FINALLY THROW                  // CFA
    8484%token ASM                                                                                              // C99, extension ISO/IEC 9899:1999 Section J.5.10(1)
    8585%token ALIGNAS ALIGNOF ATOMIC GENERIC NORETURN STATICASSERT THREADLOCAL // C11
     
    120120}
    121121
    122 %type<tok> identifier  no_01_identifier  no_attr_identifier no_attr_identifier_01  zero_one
     122%type<tok> zero_one  identifier  no_attr_identifier  no_01_identifier
    123123%type<tok> identifier_or_type_name  no_attr_identifier_or_type_name  no_01_identifier_or_type_name
    124124%type<constant> string_literal_list
     
    143143// statements
    144144%type<sn> labeled_statement                             compound_statement                      expression_statement            selection_statement
    145 %type<sn> iteration_statement                   jump_statement                          exception_statement                     asm_statement                   ctor_dtor
     145%type<sn> iteration_statement                   jump_statement                          exception_statement                     asm_statement
    146146%type<sn> fall_through_opt                              fall_through
    147147%type<sn> statement                                             statement_list
     
    319319no_attr_identifier:
    320320        IDENTIFIER
    321         ;
    322 
    323 no_attr_identifier_01:
    324         IDENTIFIER
    325         | zero_one
    326321        ;
    327322
     
    450445                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), $2 ); }
    451446        | ALIGNOF '(' type_name_no_function ')'                         // GCC, type alignment
    452                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3 ) ); }
     447                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3 )); }
    453448        | ANDAND no_attr_identifier                                                     // GCC, address of label
    454                 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); }
     449                { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true )); }
    455450        ;
    456451
     
    632627        | exception_statement
    633628        | asm_statement
    634         | ctor_dtor
    635629        ;
    636630
     
    811805        | RETURN comma_expression_opt ';'
    812806                { $$ = new StatementNode( StatementNode::Return, $2, 0 ); }
    813         | THROW assignment_expression_opt ';'
     807        | THROW assignment_expression ';'
    814808                { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
    815 //      | THROW ';'
    816 //              { $$ = new StatementNode( StatementNode::Throw ); }
    817         | THROWRESUME assignment_expression_opt ';'
    818                 { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
    819         | THROWRESUME assignment_expression_opt AT assignment_expression ';'
    820                 { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); }
    821 //      | THROWRESUME ';'
    822 //              { $$ = new StatementNode( StatementNode::Throw ); }
     809        | THROW ';'
     810                { $$ = new StatementNode( StatementNode::Throw ); }
    823811        ;
    824812
     
    843831        | handler_clause CATCH '(' ELLIPSIS ')' compound_statement
    844832                { $$ = $1->set_link( StatementNode::newCatchStmt( 0, $6, true ) ); }
    845         | CATCHRESUME '(' ELLIPSIS ')' compound_statement
    846                 { $$ = StatementNode::newCatchStmt( 0, $5, true ); }
    847         | handler_clause CATCHRESUME '(' ELLIPSIS ')' compound_statement
    848                 { $$ = $1->set_link( StatementNode::newCatchStmt( 0, $6, true ) ); }
    849833        ;
    850834
     
    853837                { $$ = StatementNode::newCatchStmt( $5, $8 ); }
    854838        | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop
    855                 { $$ = $1->set_link( StatementNode::newCatchStmt( $6, $9 ) ); }
    856         | CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop
    857                 { $$ = StatementNode::newCatchStmt( $5, $8 ); }
    858         | handler_clause CATCHRESUME '(' push push exception_declaration pop ')' compound_statement pop
    859839                { $$ = $1->set_link( StatementNode::newCatchStmt( $6, $9 ) ); }
    860840        ;
     
    943923        | label_list ',' no_attr_identifier
    944924                { $$ = $1; $1->append_label( $3 ); }
    945         ;
    946 
    947 ctor_dtor:                                                                                              // CFA, constructor/destructor
    948         no_attr_identifier_01 '{' argument_expression_list '}' ';'
    949                 {
    950                         Token fn; fn.str = new std::string( "?{}" ); fn.loc = $1.loc;
    951                         $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    952                                    (ExpressionNode *)((new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( $1 ) ))->set_link( $3 )) ), 0 );
    953                 }
    954         | '^' no_attr_identifier_01 '{' '}' ';'
    955                 {
    956                         Token fn; fn.str = new std::string( "^?{}" ); fn.loc = $2.loc;
    957                         $$ = new StatementNode( StatementNode::Exp, new CompositeExprNode( new VarRefNode( fn ),
    958                                    new CompositeExprNode( new OperatorNode( OperatorNode::AddressOf ), new VarRefNode( $2 ) ) ), 0 );
    959                 }
    960925        ;
    961926
     
    17281693
    17291694designator:
    1730         // lexer ambiguity: designator ".0" is floating-point constant or designator for name 0
    17311695        // only ".0" and ".1" allowed => semantic check
    17321696        FLOATINGconstant
  • src/ResolvExpr/CastCost.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 06:57:43 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Oct 05 14:48:45 2015
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun May 17 06:59:10 2015
     13// Update Count     : 2
    1414//
    1515
     
    5656                                return Cost::infinity;
    5757                        } else {
    58                                 // xxx - why are we adding cost 0 here?
    5958                                return converter.get_cost() + Cost( 0, 0, 0 );
    6059                        } // if
     
    8382                                newEnv.add( pointerType->get_forall() );
    8483                                newEnv.add( pointerType->get_base()->get_forall() );
    85                                 int castResult = ptrsCastable( pointerType->get_base(), destAsPtr->get_base(), newEnv, indexer );
    86                                 if ( castResult > 0 ) {
     84                                int assignResult = ptrsCastable( pointerType->get_base(), destAsPtr->get_base(), newEnv, indexer );
     85                                if ( assignResult > 0 ) {
    8786                                        cost = Cost( 0, 0, 1 );
    88                                 } else if ( castResult < 0 ) {
     87                                } else if ( assignResult < 0 ) {
    8988                                        cost = Cost( 1, 0, 0 );
    9089                                } // if
  • src/ResolvExpr/PtrsAssignable.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 11:44:11 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Sep 21 14:34:58 2015
    13 // Update Count     : 7
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun May 17 11:47:36 2015
     13// Update Count     : 2
    1414//
    1515
     
    106106        void PtrsAssignable::visit( TypeInstType *inst ) {
    107107                EqvClass eqvClass;
    108                 if ( env.lookup( inst->get_name(), eqvClass ) && eqvClass.type ) {
     108                if ( env.lookup( inst->get_name(), eqvClass ) ) {
    109109                        result = ptrsAssignable( eqvClass.type, dest, env );
    110110                } else {
  • src/ResolvExpr/PtrsCastable.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 11:48:00 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Mon Oct 05 14:49:12 2015
    13 // Update Count     : 7
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sun May 17 11:51:17 2015
     13// Update Count     : 2
    1414//
    1515
     
    133133
    134134        void PtrsCastable::visit(TypeInstType *inst) {
    135                 result = objectCast( inst, env, indexer ) > 0 && objectCast( dest, env, indexer ) > 0 ? 1 : -1;
     135                result = objectCast( inst, env, indexer ) && objectCast( dest, env, indexer ) ? 1 : -1;
    136136        }
    137137
  • src/ResolvExpr/Unify.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:27:10 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Sep 02 14:43:22 2015
    13 // Update Count     : 36
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Fri Jun 26 14:57:05 2015
     13// Update Count     : 7
    1414//
    1515
     
    2828
    2929
    30 // #define DEBUG
     30//#define DEBUG
    3131
    3232namespace ResolvExpr {
     
    8080        bool typesCompatible( Type *first, Type *second, const SymTab::Indexer &indexer, const TypeEnvironment &env ) {
    8181                TypeEnvironment newEnv;
    82                 OpenVarSet openVars, closedVars; // added closedVars
     82                OpenVarSet openVars;
    8383                AssertionSet needAssertions, haveAssertions;
    8484                Type *newFirst = first->clone(), *newSecond = second->clone();
    8585                env.apply( newFirst );
    8686                env.apply( newSecond );
    87 
    88                 // do we need to do this? Seems like we do, types should be able to be compatible if they
    89                 // have free variables that can unify
    90                 findOpenVars( newFirst, openVars, closedVars, needAssertions, haveAssertions, false );
    91                 findOpenVars( newSecond, openVars, closedVars, needAssertions, haveAssertions, true );
    92 
    9387                bool result = unifyExact( newFirst, newSecond, newEnv, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer );
    9488                delete newFirst;
     
    431425
    432426        void Unify::visit(ArrayType *arrayType) {
     427                // XXX -- compare array dimension
    433428                ArrayType *otherArray = dynamic_cast< ArrayType* >( type2 );
    434                 // to unify, array types must both be VLA or both not VLA
    435                 // and must both have a dimension expression or not have a dimension
    436                 if ( otherArray && arrayType->get_isVarLen() == otherArray->get_isVarLen()
    437                                 && ((arrayType->get_dimension() != 0 && otherArray->get_dimension() != 0)
    438                                         || (arrayType->get_dimension() == 0 && otherArray->get_dimension() == 0))) {
    439 
    440                         // not positive this is correct in all cases, but it's needed for typedefs
    441                         if ( arrayType->get_isVarLen() || otherArray->get_isVarLen() ) {
    442                                 return;
    443                         }
    444 
    445                         if ( ! arrayType->get_isVarLen() && ! otherArray->get_isVarLen() &&
    446                                 arrayType->get_dimension() != 0 && otherArray->get_dimension() != 0 ) {
    447                                 ConstantExpr * ce1 = dynamic_cast< ConstantExpr * >( arrayType->get_dimension() );
    448                                 ConstantExpr * ce2 = dynamic_cast< ConstantExpr * >( otherArray->get_dimension() );
    449                                 assert(ce1 && ce2);
    450 
    451                                 Constant * c1 = ce1->get_constant();
    452                                 Constant * c2 = ce2->get_constant();
    453 
    454                                 if ( c1->get_value() != c2->get_value() ) {
    455                                         // does not unify if the dimension is different
    456                                         return;
    457                                 }
    458                         }
    459 
     429                if ( otherArray && arrayType->get_isVarLen() == otherArray->get_isVarLen() ) {
    460430                        result = unifyExact( arrayType->get_base(), otherArray->get_base(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer );
    461431                } // if
     
    465435        bool unifyDeclList( Iterator1 list1Begin, Iterator1 list1End, Iterator2 list2Begin, Iterator2 list2End, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, const SymTab::Indexer &indexer ) {
    466436                for ( ; list1Begin != list1End && list2Begin != list2End; ++list1Begin, ++list2Begin ) {
    467                         // Type * commonType;
    468                         // if ( ! unifyInexact( (*list1Begin)->get_type(), (*list2Begin)->get_type(), env, needAssertions, haveAssertions, openVars, WidenMode( true, true ), indexer, commonType ) ) {
    469437                        if ( ! unifyExact( (*list1Begin)->get_type(), (*list2Begin)->get_type(), env, needAssertions, haveAssertions, openVars, WidenMode( false, false ), indexer ) ) {
    470438                                return false;
     
    481449                FunctionType *otherFunction = dynamic_cast< FunctionType* >( type2 );
    482450                if ( otherFunction && functionType->get_isVarArgs() == otherFunction->get_isVarArgs() ) {
    483 
     451 
    484452                        if ( unifyDeclList( functionType->get_parameters().begin(), functionType->get_parameters().end(), otherFunction->get_parameters().begin(), otherFunction->get_parameters().end(), env, needAssertions, haveAssertions, openVars, indexer ) ) {
    485453       
  • src/SymTab/Validate.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 21:50:04 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 11 16:59:35 2015
    13 // Update Count     : 196
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Aug 05 14:00:24 2015
     13// Update Count     : 195
    1414//
    1515
     
    5454#include "MakeLibCfa.h"
    5555#include "TypeEquality.h"
    56 #include "ResolvExpr/typeops.h"
    5756
    5857#define debugPrint( x ) if ( doDebug ) { std::cout << x; }
     
    852851                        Type * t1 = tyDecl->get_base();
    853852                        Type * t2 = typedefNames[ tyDecl->get_name() ].first->get_base();
    854                         if ( ! ResolvExpr::typesCompatible( t1, t2, Indexer() ) ) {
     853                        if ( ! typeEquals( t1, t2, true ) ) {
    855854                                throw SemanticError( "cannot redefine typedef: " + tyDecl->get_name() );
    856855                        }
     
    895894                DeclarationWithType *ret = Mutator::mutate( objDecl );
    896895                typedefNames = oldNames;
    897                 // is the type a function?
    898896                if ( FunctionType *funtype = dynamic_cast<FunctionType *>( ret->get_type() ) ) {
    899                         // replace the current object declaration with a function declaration
    900897                        return new FunctionDecl( ret->get_name(), ret->get_storageClass(), ret->get_linkage(), funtype, 0, ret->get_isInline(), ret->get_isNoreturn() );
    901898                } else if ( objDecl->get_isInline() || objDecl->get_isNoreturn() ) {
  • src/SynTree/ObjectDecl.cc

    r0800284 rb0be06ac  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Rob Schluntz
    12 // Last Modified On : Tue Sep 29 14:13:01 2015
    13 // Update Count     : 18
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jul 13 18:08:27 2015
     13// Update Count     : 16
    1414//
    1515
     
    5252                get_type()->print( os, indent );
    5353        } else {
    54                 os << " untyped entity ";
     54                os << "untyped entity ";
    5555        } // if
    5656
    5757        if ( init ) {
    58                 os << " with initializer ";
     58                os << "with initializer ";
    5959                init->print( os, indent );
    6060        } // if
    6161
    6262        if ( bitfieldWidth ) {
    63                 os << " with bitfield width ";
     63                os << "with bitfield width ";
    6464                bitfieldWidth->print( os );
    6565        } // if
  • src/driver/cfa.cc

    r0800284 rb0be06ac  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug 17 15:24:30 2015
    13 // Update Count     : 126
     12// Last Modified On : Thu Jul 16 17:09:23 2015
     13// Update Count     : 124
    1414//
    1515
     
    263263        args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str();
    264264        nargs += 1;
    265         args[nargs] = "-D__CFORALL__=1";
    266         nargs += 1;
    267265
    268266        if ( cpp_flag ) {
Note: See TracChangeset for help on using the changeset viewer.