Changeset a61fea9a


Ignore:
Timestamp:
Jun 4, 2015, 11:35:13 AM (7 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, string, with_gc
Children:
9a8930f
Parents:
30651b0
Message:

enable AM_MAINTAINER_MODE, add operator ?{}, formatting

Files:
21 edited
2 moved

Legend:

Unmodified
Added
Removed
  • configure

    r30651b0 ra61fea9a  
    13471347  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
    13481348  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
    1349   --enable-maintainer-mode  enable make rules and dependencies not useful
     1349  --disable-maintainer-mode  disable make rules and dependencies not useful
    13501350                          (and sometimes confusing) to the casual installer
    13511351  --disable-dependency-tracking  speeds up one-time build
     
    28952895  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
    28962896else
    2897   USE_MAINTAINER_MODE=no
     2897  USE_MAINTAINER_MODE=yes
    28982898fi
    28992899
  • configure.ac

    r30651b0 ra61fea9a  
    99
    1010AM_INIT_AUTOMAKE
    11 AM_MAINTAINER_MODE(disable)
     11AM_MAINTAINER_MODE(enable)      # may require auto* software to be installed
    1212
    1313# Installation paths
  • src/CodeGen/CodeGenerator.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 24 20:43:16 2015
    13 // Update Count     : 11
     12// Last Modified On : Wed Jun  3 11:53:32 2015
     13// Update Count     : 13
    1414//
    1515
     
    2828#include "UnimplementedError.h"
    2929
    30 #include "CodeGenerator2.h"
     30#include "CodeGenerator.h"
    3131#include "OperatorTable.h"
    3232#include "GenType.h"
  • src/CodeGen/GenType.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:38:22 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun  2 11:21:32 2015
     13// Update Count     : 3
    1414//
    1515
     
    1818
    1919#include "GenType.h"
    20 #include "CodeGenerator2.h"
     20#include "CodeGenerator.h"
    2121#include "SynTree/Visitor.h"
    2222#include "SynTree/Type.h"
  • src/CodeGen/Generate.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:39:24 2015
    13 // Update Count     : 1
     12// Last Modified On : Tue Jun  2 11:21:06 2015
     13// Update Count     : 2
    1414//
    1515
     
    2121#include "Generate.h"
    2222#include "SynTree/Declaration.h"
    23 
    24 #include "CodeGenerator2.h"
     23#include "CodeGenerator.h"
    2524
    2625using namespace std;
  • src/CodeGen/module.mk

    r30651b0 ra61fea9a  
    1111## Created On       : Mon Jun  1 17:49:17 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Mon Jun  1 17:50:52 2015
    14 ## Update Count     : 2
     13## Last Modified On : Tue Jun  2 11:17:02 2015
     14## Update Count     : 3
    1515###############################################################################
    1616
     
    1919
    2020SRC +=  CodeGen/Generate.cc \
    21         CodeGen/CodeGenerator2.cc \
     21        CodeGen/CodeGenerator.cc \
    2222        CodeGen/GenType.cc \
    2323        CodeGen/FixNames.cc \
  • src/Makefile.in

    r30651b0 ra61fea9a  
    9898am__objects_1 = cfa_cpp-main.$(OBJEXT) cfa_cpp-MakeLibCfa.$(OBJEXT) \
    9999        CodeGen/cfa_cpp-Generate.$(OBJEXT) \
    100         CodeGen/cfa_cpp-CodeGenerator2.$(OBJEXT) \
     100        CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT) \
    101101        CodeGen/cfa_cpp-GenType.$(OBJEXT) \
    102102        CodeGen/cfa_cpp-FixNames.$(OBJEXT) \
     
    335335AUTOMAKE_OPTIONS = subdir-objects
    336336SRC = main.cc MakeLibCfa.cc CodeGen/Generate.cc \
    337         CodeGen/CodeGenerator2.cc CodeGen/GenType.cc \
     337        CodeGen/CodeGenerator.cc CodeGen/GenType.cc \
    338338        CodeGen/FixNames.cc CodeGen/OperatorTable.cc \
    339339        Common/SemanticError.cc Common/UniqueName.cc \
     
    475475CodeGen/cfa_cpp-Generate.$(OBJEXT): CodeGen/$(am__dirstamp) \
    476476        CodeGen/$(DEPDIR)/$(am__dirstamp)
    477 CodeGen/cfa_cpp-CodeGenerator2.$(OBJEXT): CodeGen/$(am__dirstamp) \
     477CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT): CodeGen/$(am__dirstamp) \
    478478        CodeGen/$(DEPDIR)/$(am__dirstamp)
    479479CodeGen/cfa_cpp-GenType.$(OBJEXT): CodeGen/$(am__dirstamp) \
     
    760760mostlyclean-compile:
    761761        -rm -f *.$(OBJEXT)
    762         -rm -f CodeGen/cfa_cpp-CodeGenerator2.$(OBJEXT)
     762        -rm -f CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT)
    763763        -rm -f CodeGen/cfa_cpp-FixNames.$(OBJEXT)
    764764        -rm -f CodeGen/cfa_cpp-GenType.$(OBJEXT)
     
    868868@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfa_cpp-MakeLibCfa.Po@am__quote@
    869869@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfa_cpp-main.Po@am__quote@
    870 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Po@am__quote@
     870@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po@am__quote@
    871871@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Po@am__quote@
    872872@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-GenType.Po@am__quote@
     
    10291029@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`
    10301030
    1031 CodeGen/cfa_cpp-CodeGenerator2.o: CodeGen/CodeGenerator2.cc
    1032 @am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator2.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator2.o `test -f 'CodeGen/CodeGenerator2.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator2.cc
    1033 @am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Po
    1034 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator2.cc' object='CodeGen/cfa_cpp-CodeGenerator2.o' libtool=no @AMDEPBACKSLASH@
    1035 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1036 @am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator2.o `test -f 'CodeGen/CodeGenerator2.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator2.cc
    1037 
    1038 CodeGen/cfa_cpp-CodeGenerator2.obj: CodeGen/CodeGenerator2.cc
    1039 @am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator2.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator2.obj `if test -f 'CodeGen/CodeGenerator2.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator2.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator2.cc'; fi`
    1040 @am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator2.Po
    1041 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator2.cc' object='CodeGen/cfa_cpp-CodeGenerator2.obj' libtool=no @AMDEPBACKSLASH@
    1042 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1043 @am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator2.obj `if test -f 'CodeGen/CodeGenerator2.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator2.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator2.cc'; fi`
     1031CodeGen/cfa_cpp-CodeGenerator.o: CodeGen/CodeGenerator.cc
     1032@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc
     1033@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po
     1034@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator.cc' object='CodeGen/cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@
     1035@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1036@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc
     1037
     1038CodeGen/cfa_cpp-CodeGenerator.obj: CodeGen/CodeGenerator.cc
     1039@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`
     1040@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po
     1041@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator.cc' object='CodeGen/cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@
     1042@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1043@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`
    10441044
    10451045CodeGen/cfa_cpp-GenType.o: CodeGen/GenType.cc
  • src/Parser/DeclarationNode.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 09:28:54 2015
    13 // Update Count     : 13
     12// Last Modified On : Wed Jun  3 11:54:32 2015
     13// Update Count     : 14
    1414//
    1515
     
    756756}
    757757
    758 void buildList( const DeclarationNode *firstNode, std::list< Declaration* > &outputList ) {
     758void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ) {
    759759        SemanticError errors;
    760760        std::back_insert_iterator< std::list< Declaration* > > out( outputList );
  • src/Parser/ExpressionNode.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 13:19:35 2015
    13 // Update Count     : 2
     12// Last Modified On : Wed Jun  3 11:28:56 2015
     13// Update Count     : 7
    1414//
    1515
     
    633633                ExpressionNode *exp;
    634634
    635                 if (( decl = dynamic_cast<DeclarationNode *>( init_)) != 0)
     635                if (( decl = dynamic_cast<DeclarationNode *>(init_) ) != 0)
    636636                        init = new StatementNode( decl );
    637637                else if (( exp = dynamic_cast<ExpressionNode *>( init_)) != 0)
     
    659659
    660660void ForCtlExprNode::print( std::ostream &os, int indent ) const{
    661         os << string( indent,' ') << "For Control Expression -- : " << endl;
    662 
    663         os << "\r" << string( indent + 2,' ') << "initialization: ";
    664         if ( init != 0)
    665                 init->print( os, indent + 4);
    666 
    667         os << "\n\r" << string( indent + 2,' ') << "condition: ";
    668         if ( condition != 0)
    669                 condition->print( os, indent + 4);
    670         os << "\n\r" << string( indent + 2,' ') << "increment: ";
    671         if ( change != 0)
    672                 change->print( os, indent + 4);
     661        os << string( indent,' ') << "For Control Expression -- :" << endl;
     662
     663        os << string( indent + 2,' ' ) << "initialization:" << endl;
     664        if ( init != 0 )
     665                init->printList( os, indent + 4 );
     666
     667        os << string( indent + 2, ' ' ) << "condition: " << endl;
     668        if ( condition != 0 )
     669                condition->print( os, indent + 4 );
     670        os << string( indent + 2,' ' ) << "increment: " << endl;
     671        if ( change != 0 )
     672                change->print( os, indent + 4 );
    673673}
    674674
  • src/Parser/ParseNode.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Sat May 16 13:26:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:48:30 2015
    13 // Update Count     : 3
     12// Last Modified On : Wed Jun  3 11:17:58 2015
     13// Update Count     : 4
    1414//
    1515
     
    5656}
    5757
    58 ParseNode *ParseNode::set_link(ParseNode *_next) {
     58ParseNode *ParseNode::set_link( ParseNode *_next ) {
    5959        ParseNode *follow;
    6060
     
    6767}
    6868
    69 const string ParseNode::get_name(void) const {
     69const string ParseNode::get_name( void ) const {
    7070        return name;
    7171}
    7272
    73 void ParseNode::print(std::ostream &os, int indent) const {}
     73void ParseNode::print( std::ostream &os, int indent ) const {}
    7474
    7575
     
    7878
    7979        if ( next ) {
    80         next->printList( os, indent );
     80                next->printList( os, indent );
    8181        }
    8282}
  • src/Parser/StatementNode.cc

    r30651b0 ra61fea9a  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:10:45 2015
    13 // Update Count     : 7
     12// Last Modified On : Wed Jun  3 11:55:01 2015
     13// Update Count     : 8
    1414//
    1515
  • src/Parser/lex.cc

    r30651b0 ra61fea9a  
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[821] =
     393static yyconst flex_int16_t yy_accept[822] =
    394394    {   0,
    395395        0,    0,    0,    0,    0,    0,  108,  108,  111,  111,
     
    407407      102,  102,  102,    0,  102,  127,  128,  126,  148,  150,
    408408      146,  151,  149,    0,    0,    0,    0,    0,    0,    0,
    409         0,    0,    0,    0,    0,    0,    0,   96,    0,  110,
    410       107,   95,    0,    0,  162,   95,   95,   95,   95,   95,
     409        0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
     410      110,  107,   95,    0,    0,  162,   95,   95,   95,   95,
    411411       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    412        95,   36,   95,   95,   95,   95,   95,   95,   95,   95,
    413        95,   95,   53,   95,   95,   95,   95,   95,   95,   95,
    414        95,   95,   95,   95,   95,   95,   95,  161,  153,    7,
    415         0,    0,    0,    2,    0,    5,   98,    0,    0,    0,
    416 
    417       108,  113,  113,    0,    0,    0,  111,    0,    0,    0,
     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,  161,  153,
     415        7,    0,    0,    0,    2,    0,    5,   98,    0,    0,
     416
     417        0,  108,  113,  113,    0,    0,    0,  111,    0,    0,
    418418        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    419         0,    0,  125,  105,    0,  105,    0,    0,    6,    0,
    420       103,    0,    0,    0,  105,    0,  103,  103,  103,  103,
    421         0,  104,    0,    0,  102,  102,  102,  102,    0,  163,
    422       164,    0,  167,  166,    0,    0,    0,   96,    0,    0,
    423         0,    0,    0,    0,    0,   95,   95,   95,   95,   95,
     419        0,    0,    0,  125,  105,    0,  105,    0,    0,    6,
     420        0,  103,    0,    0,    0,  105,    0,  103,  103,  103,
     421      103,    0,  104,    0,    0,  102,  102,  102,  102,    0,
     422      163,  164,    0,  167,  166,    0,    0,    0,   96,    0,
     423        0,    0,    0,    0,    0,    0,   95,   95,   95,   95,
    424424       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    425        95,   95,   95,   95,   14,   95,   95,   95,   95,   95,
     425       95,   95,   95,   95,   95,   14,   95,   95,   95,   95,
    426426       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    427427
    428        95,   47,   95,   95,   95,   60,   95,   95,   95,   95,
    429        95,   95,   95,   95,   95,   95,   95,   95,   82,   95,
    430        95,   95,   95,   95,   95,    0,    0,    0,    0,    0,
    431         0,    0,    0,  113,    0,    0,    0,    0,    0,  113,
    432         0,    0,  168,    0,    0,    0,    0,    0,    0,    0,
    433         0,  105,    0,    0,    0,  105,    0,  103,  103,    0,
    434         0,  104,  104,    0,  104,    0,  104,  102,  102,    0,
    435         0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
     428       95,   95,   47,   95,   95,   95,   60,   95,   95,   95,
     429       95,   95,   95,   95,   95,   95,   95,   95,   95,   82,
     430       95,   95,   95,   95,   95,   95,    0,    0,    0,    0,
     431        0,    0,    0,    0,  113,    0,    0,    0,    0,    0,
     432      113,    0,    0,  168,    0,    0,    0,    0,    0,    0,
     433        0,    0,  105,    0,    0,    0,  105,    0,  103,  103,
     434        0,    0,  104,  104,    0,  104,    0,  104,  102,  102,
     435        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    436436       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    437437       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    438438
    439        95,   20,   95,   23,   95,   25,   95,   95,   95,   95,
    440        95,   95,   39,   40,   95,   95,   95,   95,   95,   95,
    441        95,   52,   95,   63,   95,   95,   95,   95,   95,   95,
    442        95,   95,   95,   95,   95,   83,   95,   95,   90,   95,
    443        95,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    444         0,    0,    0,    0,    0,  113,    0,    0,    0,    0,
    445         0,  105,    0,    0,    0,    0,    0,    0,  104,  104,
    446         0,  106,    0,  104,  104,    0,    0,    0,    0,    0,
    447         0,    0,    0,    0,    0,    0,    0,    0,   95,   95,
    448        21,   95,   95,   95,   95,   95,   95,   95,   15,   95,
     439       95,   95,   20,   95,   23,   95,   25,   95,   95,   95,
     440       95,   95,   95,   39,   40,   95,   95,   95,   95,   95,
     441       95,   95,   52,   95,   63,   95,   95,   95,   95,   95,
     442       95,   95,   95,   95,   95,   95,   83,   95,   95,   90,
     443       95,   95,    0,    0,    0,    0,    0,    0,    0,    0,
     444        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
     445        0,    0,  105,    0,    0,    0,    0,    0,    0,  104,
     446      104,    0,  106,    0,  104,  104,    0,    0,    0,    0,
     447        0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
     448       95,   21,   95,   95,   95,   95,   95,   95,   95,   15,
    449449
    450450       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    451        95,   95,   22,   24,   95,   30,   95,   95,   95,   95,
    452        38,   95,   95,   95,   45,   95,   95,   50,   95,   95,
    453        95,   95,   95,   71,   95,   95,   95,   95,   95,   81,
    454        95,   95,   88,   95,   95,   94,    0,    0,    0,    0,
     451       95,   95,   95,   22,   24,   95,   30,   95,   95,   95,
     452       95,   38,   95,   95,   95,   45,   95,   95,   50,   95,
     453       95,   95,   95,   95,   71,   95,   95,   95,   95,   95,
     454       81,   95,   95,   88,   95,   95,   94,    0,    0,    0,
    455455        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    456         0,    0,    0,    0,    0,  106,    0,    0,  104,  106,
    457       106,    0,  104,    0,    0,    0,    0,    0,    0,    0,
    458         0,    0,    0,   95,    0,   95,   95,   95,   95,   95,
     456        0,    0,    0,    0,    0,    0,  106,    0,    0,  104,
     457      106,  106,    0,  104,    0,    0,    0,    0,    0,    0,
     458        0,    0,    0,    0,   95,    0,   95,   95,   95,   95,
    459459       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
    460460
    461        55,   95,   95,   95,   95,   95,   95,   95,   26,   95,
    462        95,   95,   37,   42,   95,   95,   48,   95,   57,   64,
    463        95,   95,   70,   72,   75,   76,   78,   79,   95,   85,
    464        95,   95,    0,    1,    0,    0,    0,    0,    0,    0,
    465        98,    0,    0,    0,  113,    0,    0,    0,    0,  106,
    466         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    467        95,   95,   17,   95,   95,   95,   95,   95,   95,   95,
    468        16,   95,   95,   31,   95,   95,   95,   95,   95,   95,
    469        95,   95,   95,   95,   33,   95,   35,   95,   44,   49,
    470        95,   95,   84,   95,   95,    0,    0,    0,    0,    0,
    471 
    472         0,    0,    0,    0,    0,    0,    0,    0,   10,   11,
    473        27,   51,   95,   95,   95,   95,   95,   95,   95,   95,
    474        95,   95,   56,   58,   61,   95,   95,   73,   86,   95,
    475        34,   43,   66,   67,   89,   91,    0,    0,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,   95,   65,
    477        95,   95,   12,   95,   28,   32,   95,   95,   95,   62,
    478        95,   95,   95,   95,    0,    0,    0,    0,    0,    0,
    479         0,    0,    0,    0,    0,    0,    0,   54,   95,   95,
    480        95,   95,   95,   95,   46,   59,   68,   74,   87,   92,
    481         0,    0,    0,    0,    0,    0,    0,    0,   95,   95,
    482 
    483        13,   18,   29,   95,   95,   95,    0,    0,   95,   95,
    484        95,   95,   69,   93,   95,   80,   19,   41,   77,    0
     461       95,   55,   95,   95,   95,   95,   95,   95,   95,   26,
     462       95,   95,   95,   37,   42,   95,   95,   48,   95,   57,
     463       64,   95,   95,   70,   72,   75,   76,   78,   79,   95,
     464       85,   95,   95,    0,    1,    0,    0,    0,    0,    0,
     465        0,   98,    0,    0,    0,  113,    0,    0,    0,    0,
     466      106,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     467        0,   95,   95,   17,   95,   95,   95,   95,   95,   95,
     468       95,   16,   95,   95,   31,   95,   95,   95,   95,   95,
     469       95,   95,   95,   95,   95,   33,   95,   35,   95,   44,
     470       49,   95,   95,   84,   95,   95,    0,    0,    0,    0,
     471
     472        0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
     473       11,   27,   51,   95,   95,   95,   95,   95,   95,   95,
     474       95,   95,   95,   56,   58,   61,   95,   95,   73,   86,
     475       95,   34,   43,   66,   67,   89,   91,    0,    0,    0,
     476        0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
     477       65,   95,   95,   12,   95,   28,   32,   95,   95,   95,
     478       62,   95,   95,   95,   95,    0,    0,    0,    0,    0,
     479        0,    0,    0,    0,    0,    0,    0,    0,   54,   95,
     480       95,   95,   95,   95,   95,   46,   59,   68,   74,   87,
     481       92,    0,    0,    0,    0,    0,    0,    0,    0,   95,
     482
     483       95,   13,   18,   29,   95,   95,   95,    0,    0,   95,
     484       95,   95,   95,   69,   93,   95,   80,   19,   41,   77,
     485        0
    485486    } ;
    486487
     
    530531    } ;
    531532
    532 static yyconst flex_int16_t yy_base[995] =
     533static yyconst flex_int16_t yy_base[996] =
    533534    {   0,
    534         0,   83, 2183, 2181,   93,    0,  175,  176,  177,  178,
    535      2193, 3518,  189, 3518,  195,   54, 3518, 2140,   59,  171,
    536      3518, 3518, 3518,   55,  186, 3518,  189,  187,  202,  214,
    537       272,    0, 2158, 3518,  214, 2158,  150,  340, 2136,  222,
    538      3518,  157, 3518, 2152,  277, 3518,  192,  133,  196,  198,
     535        0,   83, 2185, 2183,   93,    0,  175,  176,  177,  178,
     536     2195, 3520,  189, 3520,  195,   54, 3520, 2142,   59,  171,
     537     3520, 3520, 3520,   55,  186, 3520,  189,  187,  202,  214,
     538      272,    0, 2160, 3520,  214, 2160,  150,  340, 2138,  222,
     539     3520,  157, 3520, 2154,  277, 3520,  192,  133,  196,  198,
    539540      204,  271,  155,  218,  181,  200,  266,  238,  210,  224,
    540       282, 3518,  223, 3518, 2149,  372,  361, 3518, 2160, 3518,
    541      2129,  229, 3518,    0, 3518,  372,    0, 3518,  397, 3518,
    542       403,  409, 3518,  443, 2128,  234, 3518, 3518, 3518, 3518,
    543      3518, 2144, 3518, 2139, 3518, 3518, 2151,  503, 3518, 2168,
    544 
    545      3518,  548,  394,  403,  414,  262,  240,  280,  402,  387,
    546         0,  305,  241,  335,  404, 3518, 3518, 3518, 2138, 3518,
    547      3518, 3518, 2136, 2132,  215,  310, 2147,  327,  333,  349,
    548       401,  414,  434,  449, 2128,  452,  453, 2109,  317, 3518,
    549      3518,  464, 2105, 2103, 3518,  425,  418,  437,  439,  438,
    550       441,  443,  444,  555,  446,  449,  451,  461,  452,  450,
    551       453,  251,  458,  466,  318,  468,  469,  472,  480,  481,
    552       488,  486, 2101,  494,  493,  497,  517,  496,  531,  525,
    553       533,  507,  499,  529,  553,  534,  541, 3518, 3518,  630,
    554       636, 2149,  642, 3518,  648, 3518, 2099,  538, 2095, 2093,
    555 
    556         0, 3518,  654, 2089, 2088, 2087,    0, 2109,  523,  570,
    557       587,  624,  661,  591,  651,  614,  620, 2106,  652,  655,
    558      2083, 2078, 3518,  687,  674, 3518, 2077, 2128, 3518,  663,
    559         0,  404,  695,  713,  734,  745,  641, 3518, 2086, 2061,
    560         0,  753, 2103,  756,  642, 3518, 2079, 2055,  767, 3518,
    561      3518, 2087, 3518, 3518,  674,  700, 2067, 2066,  677, 2058,
    562      2057, 2056,    0, 2055,    0,  543,  681,  694,  735,  572,
    563       748,  695,  752,  714,  758,  736,  755,  746,  766,  760,
    564       644,  762,  763,  767, 2056,  769,  784,  692,  504,  771,
    565       774,  703,  788,  794,  777,  786,  797,  798,  799,  801,
    566 
    567       803,  804,  802,  805,  811, 2051,  816,  810,  815,  812,
    568       817,  818,  578,  820,  819,  822,  830,  831, 2050,  833,
    569       832,  835,  836,  846,  839,  905,  886, 2046, 2045, 2043,
    570         0, 2038,    0,  892,  896, 2037,    0, 2036,    0, 2035,
    571         0, 2054, 3518,  711,  877, 1990, 1985,    0, 1984,    0,
    572       900,  907,  918,  929,  940,  952,  962, 3518, 3518,  926,
    573       927,  979,  955, 1013,  893, 1011,  934, 3518, 3518, 1981,
    574      1980, 1979,    0, 1978,    0, 1977,    0, 1975,    0,  847,
    575       861,  953,  887,  888,  898,  950,  918,  960,  961,  942,
    576       970,  983,  975,  991,  990,  996, 1001, 1004, 1006,  993,
    577 
    578      1013, 1973,  764, 1972,  532, 1971, 1010, 1015, 1020, 1019,
    579      1021, 1023, 1970, 1968,  919, 1022, 1024, 1027, 1035, 1038,
    580      1043, 1964, 1040, 1963, 1041, 1045, 1047, 1048, 1051, 1046,
    581      1053, 1056,  956, 1054, 1059, 1062, 1060, 1063, 1962, 1065,
    582      1072, 1125, 1958,    0, 1957,    0, 1955,    0, 1950,    0,
    583      1117, 1949,    0, 1948,    0, 1947, 1945, 1940,    0, 1939,
    584         0, 1121, 1127, 1172, 1114, 1183, 1115, 1085, 1088, 3518,
    585      1189, 1195, 1206, 1949, 1925, 1935, 1930,    0, 1929,    0,
    586      1928,    0, 1927,    0, 1925,    0, 1921,    0, 1105, 1107,
    587      1923, 1106, 1112, 1114, 1128, 1125, 1078, 1075, 1123, 1115,
    588 
    589      1173, 1176, 1185, 1183, 1129, 1139,  164, 1190, 1189, 1191,
    590      1193, 1195, 1922, 1921, 1203, 1920, 1196, 1201, 1204, 1206,
    591      1918, 1207, 1141, 1213, 1912, 1214, 1216, 1907, 1217, 1223,
    592      1209, 1220, 1225, 1902, 1227, 1230, 1234, 1236, 1237, 1901,
    593      1238, 1243, 1900, 1239, 1244, 1899, 1947, 1893,    0, 1871,
    594         0, 1870,    0, 1869,    0, 1868,    0, 1866,    0, 1861,
    595         0, 1860,    0, 1288, 1294, 1300, 1311, 1859, 3518, 1322,
    596      3518, 1346, 3518, 1858,    0, 1856,    0, 1851,    0, 1850,
    597         0,    0,    0, 1852,    0, 1308, 1245, 1246, 1288, 1290,
    598      1281, 1299, 1316, 1312, 1248, 1323, 1327, 1278, 1328, 1280,
    599 
    600      1330, 1331, 1366, 1340, 1334, 1341, 1344, 1343, 1851, 1346,
    601      1347, 1351, 1849, 1844, 1352, 1353, 1843, 1357, 1842, 1841,
    602      1358, 1364, 1839, 1834, 1833, 1832, 1831, 1829, 1359, 1824,
    603      1375, 1363, 1872, 3518, 1819,    0, 1818,    0,    0,    0,
    604      1819,    0,    0,    0, 3518,    0,    0,    0,    0, 1414,
    605      1420, 1465, 1811,    0, 1810,    0,    0,    0,    0, 1809,
    606      1360, 1397, 1811, 1376, 1398, 1377, 1379, 1401, 1408, 1400,
    607      1809, 1410, 1413, 1425, 1421, 1443, 1431, 1444, 1445, 1446,
    608      1414, 1447, 1448, 1419, 1804, 1450, 1803, 1433, 1802, 1801,
    609      1451, 1452, 1799, 1454, 1457,    0,    0, 1791, 1790, 1789,
    610 
    611      1788, 1504,    0, 1786, 1775, 1772, 1771, 1767, 1769, 1768,
    612      1767, 1765, 1461, 1465, 1464, 1470, 1463, 1460, 1467, 1484,
    613      1486, 1515, 1741, 1489, 1730, 1491, 1490, 1495, 1500, 1496,
    614      1729, 1725, 1722, 1721, 1720, 1718, 1713, 1711, 1706, 1697,
    615      1694, 1684, 1681, 1680, 1653, 1652, 1651, 1650, 1501, 1652,
    616      1502, 1504, 1505, 1509, 1510, 1642, 1506, 1537, 1514, 1639,
    617      1516, 1518, 1526, 1525, 1635, 1581, 1580, 1579, 1578, 1577,
    618      1576, 1575, 1573, 1571, 1570, 1569, 1568, 1570, 1519, 1520,
    619      1530, 1532, 1536, 1535, 1569, 1568, 1542, 1567, 1566, 1543,
    620      1469, 1423, 1380, 1306, 1302, 1251, 1247,  963, 1544, 1549,
    621 
    622       964, 1547,  907, 1548, 1555, 1556,  850,  730, 1557, 1560,
    623      1561, 1562,  636,  500, 1563,  415,  298,  236,  165, 3518,
    624      1637, 1654, 1671, 1685, 1699, 1716, 1730, 1747, 1762, 1779,
    625      1796, 1808, 1821, 1832, 1842, 1852, 1862, 1872, 1882, 1892,
    626      1902, 1912, 1928, 1939, 1950, 1961, 1971, 1981, 1991, 2001,
    627      2011, 2021, 2034, 2051, 2068, 2079, 2089, 2099, 2109, 2119,
    628      2129, 2139, 2149, 2159, 2169, 2179, 2189, 2199, 2209, 2219,
    629      2229, 2239, 2249, 2260, 2270, 2280, 2290, 2300, 2310, 2320,
    630      2330, 2340, 2350, 2360, 2373, 2390, 2401, 2411, 2421, 2431,
    631      2441, 2451, 2461, 2471, 2481, 2491, 2501, 2511, 2521, 2531,
    632 
    633      2541, 2551, 2561, 2571, 2581, 2591, 2601, 2611, 2621, 2631,
    634      2641, 2651, 2661, 2671, 2681, 2691, 2701, 2714, 2731, 2742,
    635      2752, 2762, 2772, 2782, 2792, 2802, 2812, 2822, 2832, 2842,
    636      2852, 2862, 2872, 2882, 2892, 2902, 2912, 2922, 2932, 2942,
    637      2952, 2962, 2972, 2982, 2992, 3002, 3015, 3026, 3042, 3053,
    638      3063, 3073, 3083, 3093, 3103, 3116, 3127, 3137, 3147, 3157,
    639      3167, 3177, 3187, 3197, 3207, 3217, 3227, 3237, 3247, 3257,
    640      3267, 3280, 3291, 3301, 3311, 3321, 3331, 3341, 3351, 3361,
    641      3371, 3381, 3391, 3401, 3411, 3421, 3431, 3441, 3451, 3461,
    642      3471, 3481, 3491, 3501
     541      282, 3520,  223, 3520, 2151,  372,  361, 3520, 2162, 3520,
     542     2131,  229, 3520,    0, 3520,  374,    0, 3520,  399, 3520,
     543      405,  411, 3520,  445, 2130,  234, 3520, 3520, 3520, 3520,
     544     3520, 2146, 3520, 2141, 3520, 3520, 2153,  505, 3520, 2170,
     545
     546     3520,  550,  401,  414,  462,  262,  240,  280,  443,  380,
     547        0,  305,  241,  335,  399, 3520, 3520, 3520, 2140, 3520,
     548     3520, 3520, 2138, 2134,  215,  310, 2149,  327,  333,  349,
     549      361,  399,  400,  411, 2130,  427, 2080,  436, 2110,  317,
     550     3520, 3520,  483, 2105, 2100, 3520,  439,  376,  431,  420,
     551      368,  432,  421,  448,  557,  442,  451,  453,  463,  452,
     552      455,  398,  251,  459,  466,  344,  467,  456,  474,  464,
     553      298,  468,  488, 2102,  490,  492,  496,  506,  498,  502,
     554      499,  518,  529,  507,  532,  533,  535,  543, 3520, 3520,
     555      632,  625, 2150,  638, 3520,  665, 3520, 2100,  514, 2095,
     556
     557     2091,    0, 3520,  631, 2090, 2089, 2088,    0, 2110,  565,
     558      581,  589,  626,  639,  643,  647,  648,  651, 2106,  662,
     559      663, 2080, 2079, 3520,  675,  686, 3520, 2078, 2129, 3520,
     560      677,    0,  571,  700,  722,  739,  750,  571, 3520, 2086,
     561     2059,    0,  738, 2104,  772,  594, 3520, 2080, 2056,  791,
     562     3520, 3520, 2088, 3520, 3520,  673,  688, 2067, 2063,  659,
     563     2059, 2058, 2057,    0, 2055,    0,  691,  555,  681,  536,
     564      541,  700,  717,  701,  719,  755,  702,  708,  736,  752,
     565      733,  750,  727,  729,  760, 2053,  771,  774,  772,  773,
     566      782,  783,  784,  785,  618,  788,  786,  787,  791,  793,
     567
     568      792,  799,  809,  796,  798,  810, 2052,  811,  812,  813,
     569      817,  818,  820,  819,  821,  824,  825,  828,  829, 2051,
     570      833,  834,  832,  835,  844,  838,  904,  726, 2047, 2045,
     571     2040,    0, 2039,    0,  891,  895, 2038,    0, 2037,    0,
     572     2035,    0, 2011, 3520,  876,  890, 1989, 1986,    0, 1983,
     573        0,  902,  908,  930,  914,  953,  959,  965, 3520, 3520,
     574      952,  958,  973,  922, 1027,  845, 1012,  898, 3520, 3520,
     575     1982, 1981, 1980,    0, 1979,    0, 1977,    0, 1972,    0,
     576      899,  891,  893,  944,  949,  909,  950,  960,  964,  953,
     577      978,  983,  991,  989,  972,  979,  997,  851,  871, 1010,
     578
     579     1013, 1014, 1974, 1020, 1973, 1016, 1972,  922, 1017, 1024,
     580     1018, 1023, 1036, 1970, 1966, 1022, 1025, 1040, 1026, 1043,
     581     1044, 1050, 1965, 1046, 1964, 1049, 1052, 1051, 1054, 1053,
     582     1056, 1060, 1057, 1061, 1062, 1066, 1076, 1079, 1077, 1963,
     583     1067, 1081, 1129, 1959,    0, 1957,    0, 1952,    0, 1951,
     584        0, 1126, 1950,    0, 1949,    0, 1947, 1942, 1941,    0,
     585     1940,    0, 1130, 1136, 1181, 1123, 1192, 1124, 1101, 1090,
     586     3520, 1198, 1204, 1215, 1950, 1925, 1932, 1931,    0, 1930,
     587        0, 1929,    0, 1927,    0, 1923,    0, 1922,    0, 1114,
     588     1116, 1924, 1115, 1121, 1123, 1137, 1134, 1144, 1082,  500,
     589
     590     1162, 1185, 1192, 1083, 1194, 1124, 1148,  164, 1197, 1198,
     591     1200, 1201, 1203, 1923, 1922, 1202, 1920, 1205, 1209, 1212,
     592     1215, 1914, 1216, 1138, 1221, 1909, 1222, 1218, 1904, 1225,
     593     1229, 1228, 1230, 1232, 1903, 1239, 1235, 1241, 1240, 1242,
     594     1902, 1244, 1246, 1901, 1251, 1252, 1900, 1947, 1873,    0,
     595     1872,    0, 1871,    0, 1870,    0, 1868,    0, 1863,    0,
     596     1862,    0, 1861,    0, 1298, 1304, 1310, 1321, 1860, 3520,
     597     1332, 3520, 1356, 3520, 1858,    0, 1853,    0, 1852,    0,
     598     1851,    0,    0,    0, 1853,    0, 1318, 1257, 1258, 1298,
     599     1300, 1291, 1259, 1255, 1309,  912, 1333, 1319, 1288, 1322,
     600
     601     1290, 1337, 1338, 1343, 1341, 1344, 1349, 1350, 1351, 1851,
     602     1352, 1353, 1357, 1846, 1845, 1360, 1354, 1844, 1361, 1843,
     603     1841, 1363, 1362, 1836, 1835, 1834, 1833, 1831, 1826, 1365,
     604     1825, 1377, 1367, 1873, 3520, 1820,    0, 1818,    0,    0,
     605        0, 1816,    0,    0,    0, 3520,    0,    0,    0,    0,
     606     1416, 1422, 1467, 1812,    0, 1811,    0,    0,    0,    0,
     607     1810, 1383, 1399, 1811, 1384, 1400, 1401, 1402, 1412, 1413,
     608     1385, 1806, 1417, 1418, 1421, 1428, 1448, 1430, 1435, 1454,
     609     1447, 1445, 1451, 1436, 1452, 1805, 1453, 1804, 1434, 1803,
     610     1801, 1455, 1456, 1796, 1460, 1463,    0,    0, 1792, 1791,
     611
     612     1790, 1788, 1508,    0, 1777, 1774, 1773, 1769, 1768, 1770,
     613     1769, 1767, 1743, 1466, 1471, 1464, 1461, 1467, 1473, 1474,
     614     1487, 1485, 1516, 1732, 1491, 1731, 1492, 1497, 1499, 1503,
     615     1493, 1727, 1724, 1723, 1722, 1720, 1718, 1713, 1708, 1699,
     616     1696, 1686, 1683, 1682, 1655, 1654, 1653, 1652, 1651, 1501,
     617     1644, 1505, 1507, 1509, 1510, 1514, 1641, 1513, 1540, 1518,
     618     1640, 1519, 1520, 1524, 1529, 1583, 1582, 1581, 1580, 1579,
     619     1578, 1577, 1576, 1575, 1574, 1573, 1572, 1571, 1573, 1522,
     620     1530, 1533, 1535, 1539, 1534, 1571, 1570, 1545, 1370, 1315,
     621     1546, 1258, 1257, 1129, 1082,  984,  983,  982,  944, 1547,
     622
     623     1550,  916, 1554,  758, 1558, 1559, 1560,  677,  676, 1552,
     624     1553, 1564, 1566,  635,  595, 1565,  544,  419,  236,  165,
     625     3520, 1639, 1656, 1673, 1687, 1701, 1718, 1732, 1749, 1764,
     626     1781, 1798, 1810, 1823, 1834, 1844, 1854, 1864, 1874, 1884,
     627     1894, 1904, 1914, 1930, 1941, 1952, 1963, 1973, 1983, 1993,
     628     2003, 2013, 2023, 2036, 2053, 2070, 2081, 2091, 2101, 2111,
     629     2121, 2131, 2141, 2151, 2161, 2171, 2181, 2191, 2201, 2211,
     630     2221, 2231, 2241, 2251, 2262, 2272, 2282, 2292, 2302, 2312,
     631     2322, 2332, 2342, 2352, 2362, 2375, 2392, 2403, 2413, 2423,
     632     2433, 2443, 2453, 2463, 2473, 2483, 2493, 2503, 2513, 2523,
     633
     634     2533, 2543, 2553, 2563, 2573, 2583, 2593, 2603, 2613, 2623,
     635     2633, 2643, 2653, 2663, 2673, 2683, 2693, 2703, 2716, 2733,
     636     2744, 2754, 2764, 2774, 2784, 2794, 2804, 2814, 2824, 2834,
     637     2844, 2854, 2864, 2874, 2884, 2894, 2904, 2914, 2924, 2934,
     638     2944, 2954, 2964, 2974, 2984, 2994, 3004, 3017, 3028, 3044,
     639     3055, 3065, 3075, 3085, 3095, 3105, 3118, 3129, 3139, 3149,
     640     3159, 3169, 3179, 3189, 3199, 3209, 3219, 3229, 3239, 3249,
     641     3259, 3269, 3282, 3293, 3303, 3313, 3323, 3333, 3343, 3353,
     642     3363, 3373, 3383, 3393, 3403, 3413, 3423, 3433, 3443, 3453,
     643     3463, 3473, 3483, 3493, 3503
    643644
    644645    } ;
    645646
    646 static yyconst flex_int16_t yy_def[995] =
     647static yyconst flex_int16_t yy_def[996] =
    647648    {   0,
    648       820,    1,  821,  821,  820,    5,  822,  822,  823,  823,
    649       820,  820,  820,  820,  820,  820,  820,  824,  820,  820,
    650       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    651       820,   31,  820,  820,  820,  820,  820,  820,  825,  824,
    652       820,  820,  820,  820,  824,  820,  824,  824,  824,  824,
    653       824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
    654       824,  820,  820,  820,  820,  820,  826,  820,  820,  820,
    655       827,  820,  820,  828,  820,  829,  830,  820,  820,  820,
    656       820,  820,  820,  820,  824,  820,  820,  820,  820,  820,
    657       820,  820,  820,  820,  820,  820,  820,  820,  820,  831,
    658 
    659       820,  820,   30,  820,  820,  820,  820,  832,   30,  820,
    660        31,  820,  820,   31,  820,  820,  820,  820,  820,  820,
    661       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    662       820,  820,  820,  820,  820,  820,  820,  833,  820,  820,
    663       820,  824,  834,  835,  820,  824,  824,  824,  824,  824,
    664       824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
    665       824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
    666       824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
    667       824,  824,  824,  824,  824,  824,  824,  820,  820,  820,
    668       826,  826,  826,  820,  826,  820,  827,  820,  836,  837,
    669 
    670       828,  820,  820,  838,  839,  840,  830,  820,  820,  820,
    671       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    672       841,  842,  820,  820,  820,  820,  224,  843,  820,  820,
    673       103,  103,  820,  820,  820,  820,  820,  820,  820,  820,
    674       844,  845,  846,  820,  820,  820,  820,  820,  820,  820,
    675       820,  820,  820,  820,  820,  820,  820,  833,  820,  847,
    676       848,  849,  850,  851,  852,  853,  853,  853,  853,  853,
    677       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    678       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    679       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    680 
    681       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    682       853,  853,  853,  853,  853,  853,  853,  853,  853,  853,
    683       853,  853,  853,  853,  853,  854,  855,  856,  857,  858,
    684       859,  860,  861,  820,  820,  862,  863,  864,  865,  866,
    685       867,  820,  820,  820,  820,  820,  868,  869,  870,  871,
    686       820,  820,  820,  820,  820,  820,  820,  820,  820,  872,
    687       873,  874,  820,  820,  820,  874,  820,  820,  820,  875,
     649      821,    1,  822,  822,  821,    5,  823,  823,  824,  824,
     650      821,  821,  821,  821,  821,  821,  821,  825,  821,  821,
     651      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     652      821,   31,  821,  821,  821,  821,  821,  821,  826,  825,
     653      821,  821,  821,  821,  825,  821,  825,  825,  825,  825,
     654      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     655      825,  821,  821,  821,  821,  821,  827,  821,  821,  821,
     656      828,  821,  821,  829,  821,  830,  831,  821,  821,  821,
     657      821,  821,  821,  821,  825,  821,  821,  821,  821,  821,
     658      821,  821,  821,  821,  821,  821,  821,  821,  821,  832,
     659
     660      821,  821,   30,  821,  821,  821,  821,  833,   30,  821,
     661       31,  821,  821,   31,  821,  821,  821,  821,  821,  821,
     662      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     663      821,  821,  821,  821,  821,  821,  821,  821,  834,  821,
     664      821,  821,  825,  835,  836,  821,  825,  825,  825,  825,
     665      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     666      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     667      825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
     668      825,  825,  825,  825,  825,  825,  825,  825,  821,  821,
     669      821,  827,  827,  827,  821,  827,  821,  828,  821,  837,
     670
     671      838,  829,  821,  821,  839,  840,  841,  831,  821,  821,
     672      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     673      821,  842,  843,  821,  821,  821,  821,  225,  844,  821,
     674      821,  103,  103,  821,  821,  821,  821,  821,  821,  821,
     675      821,  845,  846,  847,  821,  821,  821,  821,  821,  821,
     676      821,  821,  821,  821,  821,  821,  821,  821,  834,  821,
     677      848,  849,  850,  851,  852,  853,  854,  854,  854,  854,
     678      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
     679      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
     680      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
     681
     682      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
     683      854,  854,  854,  854,  854,  854,  854,  854,  854,  854,
     684      854,  854,  854,  854,  854,  854,  855,  856,  857,  858,
     685      859,  860,  861,  862,  821,  821,  863,  864,  865,  866,
     686      867,  868,  821,  821,  821,  821,  821,  869,  870,  871,
     687      872,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     688      873,  874,  875,  821,  821,  821,  875,  821,  821,  821,
    688689      876,  877,  878,  879,  880,  881,  882,  883,  884,  885,
    689       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    690       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    691 
    692       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    693       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    694       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    695       885,  885,  885,  885,  885,  885,  885,  885,  885,  885,
    696       885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
    697       820,  895,  896,  897,  898,  899,  899,  900,  901,  902,
    698       903,  820,  820,  820,  904,  820,  904,  820,  820,  820,
    699       820,  820,  820,  820,  820,  905,  906,  907,  908,  909,
    700       910,  911,  912,  913,  914,  915,  916,  917,  918,  918,
    701       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    702 
    703       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    704       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    705       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    706       918,  918,  918,  918,  918,  918,  918,  918,  918,  918,
    707       918,  918,  918,  918,  918,  918,  919,  920,  921,  922,
     690      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     691      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     692
     693      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     694      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     695      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     696      886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
     697      886,  886,  887,  888,  889,  890,  891,  892,  893,  894,
     698      895,  821,  896,  897,  898,  899,  900,  900,  901,  902,
     699      903,  904,  821,  821,  821,  905,  821,  905,  821,  821,
     700      821,  821,  821,  821,  821,  821,  906,  907,  908,  909,
     701      910,  911,  912,  913,  914,  915,  916,  917,  918,  919,
     702      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     703
     704      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     705      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     706      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     707      919,  919,  919,  919,  919,  919,  919,  919,  919,  919,
     708      919,  919,  919,  919,  919,  919,  919,  920,  921,  922,
    708709      923,  924,  925,  926,  927,  928,  929,  930,  931,  932,
    709       933,  934,  935,  820,  820,  820,  820,  936,  820,  820,
    710       820,  820,  820,  937,  938,  939,  940,  941,  942,  943,
    711       944,  945,  946,  947,  948,  947,  947,  947,  947,  947,
    712       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    713 
    714       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    715       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    716       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
    717       947,  947,  949,  820,  950,  951,  952,  953,  954,  955,
    718       956,  957,  958,  959,  820,  960,  961,  962,  963,  820,
    719       820,  820,  964,  965,  966,  967,  968,  969,  970,  971,
    720       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    721       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    722       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    723       972,  972,  972,  972,  972,  973,  974,  952,  975,  976,
    724 
    725       977,  820,  978,  964,  966,  979,  980,  971,  972,  972,
    726       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    727       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    728       972,  972,  972,  972,  972,  972,  981,  982,  975,  983,
    729       976,  984,  977,  985,  986,  979,  987,  980,  972,  972,
    730       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    731       972,  972,  972,  972,  988,  981,  989,  982,  990,  983,
    732       991,  984,  992,  985,  993,  986,  987,  972,  972,  972,
    733       972,  972,  972,  972,  972,  972,  972,  972,  972,  972,
    734       994,  988,  989,  990,  991,  966,  992,  993,  972,  972,
    735 
    736       972,  972,  972,  972,  972,  972,  994,  966,  972,  972,
    737       972,  972,  972,  972,  972,  972,  972,  972,  972,    0,
    738       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    739       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    740       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    741       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    742       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    743       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    744       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    745       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    746 
    747       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    748       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    749       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    750       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    751       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    752       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    753       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    754       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    755       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    756       820,  820,  820,  820
     710      933,  934,  935,  936,  821,  821,  821,  821,  937,  821,
     711      821,  821,  821,  821,  938,  939,  940,  941,  942,  943,
     712      944,  945,  946,  947,  948,  949,  948,  948,  948,  948,
     713      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     714
     715      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     716      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     717      948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
     718      948,  948,  948,  950,  821,  951,  952,  953,  954,  955,
     719      956,  957,  958,  959,  960,  821,  961,  962,  963,  964,
     720      821,  821,  821,  965,  966,  967,  968,  969,  970,  971,
     721      972,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     722      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     723      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     724      973,  973,  973,  973,  973,  973,  974,  975,  953,  976,
     725
     726      977,  978,  821,  979,  965,  967,  980,  981,  972,  973,
     727      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     728      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     729      973,  973,  973,  973,  973,  973,  973,  982,  983,  976,
     730      984,  977,  985,  978,  986,  987,  980,  988,  981,  973,
     731      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     732      973,  973,  973,  973,  973,  989,  982,  990,  983,  991,
     733      984,  992,  985,  993,  986,  994,  987,  988,  973,  973,
     734      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     735      973,  995,  989,  990,  991,  992,  967,  993,  994,  973,
     736
     737      973,  973,  973,  973,  973,  973,  973,  995,  967,  973,
     738      973,  973,  973,  973,  973,  973,  973,  973,  973,  973,
     739        0,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     740      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     741      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     742      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     743      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     744      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     745      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     746      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     747
     748      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     749      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     750      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     751      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     752      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     753      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     754      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     755      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     756      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     757      821,  821,  821,  821,  821
    757758
    758759    } ;
    759760
    760 static yyconst flex_int16_t yy_nxt[3603] =
     761static yyconst flex_int16_t yy_nxt[3605] =
    761762    {   0,
    762763       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    779780       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
    780781       71,   71,   71,   70,   70,   70,   70,   75,   75,   78,
    781        78,  122,  123,   89,   86,   78,   78,  603,   75,   75,
     782       78,  122,  123,   89,   86,   78,   78,  604,   75,   75,
    782783       79,   80,   81,   81,   81,   79,   81,   80,   82,   82,
    783784
    784        82,   81,   90,   92,  157,  143,   86,   97,   94,   98,
     785       82,   81,   90,   92,  158,  144,   86,   97,   94,   98,
    785786       98,   98,   98,   98,   98,   86,   86,   93,   99,   84,
    786        95,   96,   84,  100,  172,  117,   76,   76,   76,   76,
    787       140,  144,   86,  101,  102,  141,  103,  103,  103,  103,
    788       104,  104,  118,   86,  119,  120,  252,   86,  253,   86,
    789       175,   86,  158,  105,  188,   86,  176,  106,  161,  159,
    790       177,   86,  107,  108,  155,  160,  156,  162,  109,   86,
    791       164,  163,  165,   86,  105,   86,  142,  199,  185,  173,
    792       110,  166,  221,  239,  247,  140,  174,   86,  107,   86,
    793       141,  108,  102,  186,  111,  111,  111,  111,  111,  111,
    794 
    795       241,  182,   86,  200,  189,  237,  240,  248,  222,  183,
    796       238,  105,  146,  147,  148,  112,  184,   86,  149,  150,
    797       113,  151,   86,  152,  153,  294,  114,  167,   86,  178,
    798       179,  154,  105,   86,  243,  168,  238,  169,  115,  180,
    799       170,  252,  181,  253,  171,  187,  113,  124,  245,   86,
    800       254,  125,  126,  246,  127,  820,  128,  129,  252,  130,
    801       253,  131,  193,  194,  252,  260,  253,  193,  254,   86,
    802       132,  133,  134,  190,   80,   81,   81,   81,  190,  246,
    803       252,  191,  253,  195,  195,  195,  195,  195,  195,  249,
    804       135,  261,  297,  136,  203,  203,  203,  203,   79,   80,
    805 
    806        81,   81,   81,   79,   81,   80,   81,   81,   81,   81,
    807        81,   80,   82,   82,   82,   81,  231,  231,  231,  231,
    808       204,  137,  820,  102,  820,  104,  104,  104,  104,  104,
    809       104,  234,  252,  234,  253,  238,  235,  235,  235,  235,
    810       235,  235,  105,  820,  255,  252,  205,  253,  232,  206,
    811       208,  820,  246,  237,  209,  210,  244,  233,  355,  211,
    812       212,  238,  213,  105,  214,  252,   86,  253,  236,   86,
    813       245,  820,  140,  215,  216,  217,   86,  141,  246,  820,
    814       252,  256,  253,  252,  252,  253,  253,  268,   86,   86,
    815        86,  266,   86,  218,   86,   86,  219,   86,  267,  270,
    816 
    817        86,   86,   86,   86,   86,  271,  269,  274,  290,   86,
    818       272,  287,   86,  285,  293,   86,  273,   86,  292,   86,
    819        86,  291,  286,   86,  220,  224,  224,  224,  224,  224,
    820       224,   86,   86,  288,  289,  299,  295,   86,  296,   86,
    821       300,  298,  225,  226,   86,   86,  226,   86,   86,  301,
    822        86,   86,  302,  308,  342,   86,  343,  227,   86,  304,
    823       305,  307,  405,  225,  226,  312,  303,  306,   86,  226,
    824        98,   98,   98,   98,   98,   98,   86,  319,  318,  309,
    825        86,  315,   86,   86,   86,   86,  328,  225,  226,  310,
    826       311,  226,   86,  313,   86,  514,  316,  317,  323,  320,
    827 
    828       324,  342,  230,  343,   86,  325,   86,  380,  225,  226,
    829       314,  275,  329,  276,  226,  277,  278,  321,  342,  279,
    830       343,  280,  342,   86,  343,  322,  281,  282,  283,   86,
    831       284,  190,   80,   81,   81,   81,  190,  193,  194,  191,
    832       384,  343,  193,  193,  194,  342,  430,  343,  193,  326,
    833       194,  342,  345,  343,  326,  342,  327,  343,  195,  195,
    834       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
    835       195,  195,  195,  195,  195,  195,  334,  334,  334,  334,
    836       343,  344,  342,  342,  343,  343,  342,   86,  343,  358,
    837       368,  351,  342,  351,  343,   86,  352,  352,  352,  352,
    838 
    839       352,  352,  225,  226,  398,  252,  226,  253,  335,  224,
    840       224,  224,  224,  224,  224,  358,  368,  104,  104,  104,
    841       104,  104,  104,  225,  226,  370,  225,  226,  353,  226,
    842       226,  252,   86,  253,  105,  235,  235,  235,  235,  235,
    843       235,  227,  342,   86,  343,   86,   86,  225,  226,  244,
    844       381,  371,  404,  226,   86,  105,  356,  356,  356,  356,
    845       356,  356,  234,  382,  234,   86,  386,  235,  235,  235,
    846       235,  235,  235,  361,  226,  408,  409,  226,  104,  104,
    847       104,  104,  104,  104,  820,  388,   86,   86,  357,  111,
    848       111,  111,  111,  111,  111,  226,  363,   86,  364,   86,
    849 
    850       226,  365,  383,   86,  385,  392,   86,  366,  387,   86,
    851       244,   86,  394,   86,   86,   86,  397,   86,   86,  367,
    852        86,  249,   86,  364,  389,   86,  399,  365,   86,  513,
    853       390,  391,  393,  395,  396,   86,  401,   86,  402,   86,
    854       403,  400,  406,  407,  410,   86,  413,  412,   86,   86,
    855        86,  411,   86,   86,   86,   86,   86,  417,  415,  418,
    856       419,   86,   86,   86,  414,  416,   86,   86,   86,   86,
    857        86,   86,  421,   86,  422,  423,  425,  420,  424,  426,
    858       431,   86,   86,   86,   86,  427,   86,   86,  194,  429,
    859        86,  428,  432,  436,  192,  439,  433,   86,   86,  438,
    860 
    861       435,  437,  440,  434,  820,  441,  326,  194,  342,  489,
    862       343,  326,   86,  327,  202,  202,  202,  202,  334,  334,
    863       334,  334,  352,  352,  352,  352,  352,  352,  490,  462,
    864       462,  462,  462,  462,  462,  351,  474,  351,   86,   86,
    865       352,  352,  352,  352,  352,  352,  451,  226,  493,   86,
    866       226,  224,  224,  224,  224,  224,  224,  492,   86,  475,
    867       494,  463,  231,  231,  231,  231,  104,  104,  226,   86,
    868        86,  466,  466,  226,  356,  356,  356,  356,  356,  356,
    869       467,  468,  470,  354,  356,  356,  356,  356,  356,  356,
    870       522,  496,  226,   86,  355,  226,  466,  466,  469,  361,
    871 
    872       469,   86,  226,  470,   86,  226,  357,   86,  470,  499,
    873       495,   86,   86,  226,  538,   86,  464,  820,  226,  491,
    874       497,   86,  363,  226,  364,  498,   86,  365,  226,  470,
    875       471,  820,  471,  366,   86,  472,  472,  472,  472,  472,
    876       472,   86,   86,  500,   86,  367,  505,   86,  503,  364,
    877       501,  502,   86,  365,  363,   86,  364,   86,  508,  365,
    878       504,   86,  506,  511,   86,  476,   86,  473,  510,  507,
    879        86,   86,   86,   86,   86,   86,  509,  367,   86,  512,
    880       517,  364,  515,  521,  518,  365,   86,  520,  516,   86,
    881       524,   86,   86,  519,   86,  523,   86,   86,   86,   86,
    882 
    883       525,  526,   86,  528,   86,   86,  535,   86,  529,  527,
    884        86,   86,  539,   86,   86,  530,   86,  531,  532,  533,
    885       537,  541,  536,   86,  534,  544,   86,  194,  543,   86,
    886       466,  542,  546,  547,  593,  540,  569,  594,  545,  202,
    887       202,  202,  202,  462,  462,  462,  462,  462,  462,  462,
    888       462,  462,  462,  462,  462,  466,   86,   86,   86,  466,
    889       466,  226,  569,   86,  226,   86,   86,  226,  467,  568,
    890       226,  587,  588,  586,   86,  463,   86,  595,  590,   86,
    891        86,  564,  226,  589,  466,  466,  596,  226,  226,  592,
    892        86,  601,   86,  226,  356,  356,  356,  356,  356,  356,
    893 
    894       565,  591,  565,  602,  615,  566,  566,  566,  566,  566,
    895       566,  472,  472,  472,  472,  472,  472,  570,  570,  570,
    896       570,  570,  570,  471,   86,  471,  464,   86,  472,  472,
    897       472,  472,  472,  472,   86,  571,   86,  567,  571,  600,
    898        86,   86,   86,  597,   86,  599,   86,   86,  598,  572,
    899       604,  608,   86,  607,   86,   86,  571,   86,   86,  606,
    900        86,  571,  605,  609,   86,   86,  613,   86,   86,  611,
    901       612,   86,  618,  610,   86,  614,   86,  619,   86,  616,
    902       617,   86,  621,  620,  622,   86,  624,   86,   86,   86,
    903        86,  625,  626,  623,   86,   86,   86,   86,  629,   86,
    904 
    905       628,  820,  671,  663,  630,  808,  664,  631,  632,  627,
    906       462,  462,  462,  462,  462,  462,  566,  566,  566,  566,
    907       566,  566,  650,  650,  650,  650,  650,  650,  565,   86,
    908       565,   86,   86,  566,  566,  566,  566,  566,  566,   86,
    909       571,   86,  564,  571,  570,  570,  570,  570,  570,  570,
    910        86,  674,  665,  676,  651,  667,  820,  668,  666,   86,
    911       820,  571,  571,   86,  661,  571,  571,   86,  570,  570,
    912       570,  570,  570,  570,   86,  669,  572,  662,   86,   86,
    913       670,   86,   86,  571,  677,   86,  571,  672,  571,  571,
    914       679,   86,   86,  673,   86,   86,  675,   86,   86,  678,
    915 
    916       652,  682,   86,   86,   86,  681,  680,  571,   86,   86,
    917        86,   86,  571,  683,   86,   86,  684,   86,  691,  685,
    918       693,  686,  692,  688,  687,  690,   86,   86,   86,  695,
    919        86,  689,  709,  713,  820,  694,  650,  650,  650,  650,
    920       650,  650,  650,  650,  650,  650,  650,  650,   86,   86,
    921       714,   86,   86,  711,  571,  715,  712,  571,  710,   86,
    922       571,   86,  716,  571,   86,   86,  722,  718,  651,  717,
    923        86,  725,   86,  719,  702,  571,   86,  820,  727,  720,
    924       571,  571,   86,  730,   86,  723,  571,  570,  570,  570,
    925       570,  570,  570,  721,   86,   86,   86,   86,   86,   86,
    926 
    927       726,   86,   86,   86,  724,   86,  728,  732,   86,  729,
    928       731,   86,   86,  735,   86,   86,   86,  736,   86,  652,
    929       751,   86,  733,  807,  753,  734,  650,  650,  650,  650,
    930       650,  650,  749,  750,  754,   86,  752,   86,  756,  758,
    931        86,   86,   86,  759,  755,  760,   86,   86,  761,  762,
    932       757,   86,   86,   86,  763,   86,   86,   86,  702,  781,
    933        86,   86,  764,  785,  783,   86,   86,   86,  786,   86,
    934        86,   86,  788,  780,  779,  784,   86,   86,  800,  778,
    935       789,   86,  782,   86,  801,  790,   86,   86,   86,  787,
    936       803,  799,  802,   86,   86,   86,  805,  806,   86,   86,
    937 
    938        86,  811,  812,  804,  809,  810,   86,   86,   86,  813,
    939       814,   86,   86,   86,   86,  817,  818,   86,   86,   86,
    940        86,   86,  820,  820,  798,  820,  816,  797,  815,  820,
    941       795,  820,  794,  820,  793,  820,  819,   68,   68,   68,
     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,  253,   86,  254,   86,
     790      176,   86,  159,  105,  189,   86,  177,  106,  162,  160,
     791      178,   86,  107,  108,  156,  161,  157,  163,  109,   86,
     792      165,  164,  166,   86,  105,   86,  143,  200,  186,  174,
     793      110,  167,  222,  240,  248,  141,  175,   86,  107,   86,
     794      142,  108,  102,  187,  111,  111,  111,  111,  111,  111,
     795
     796      242,  183,   86,  201,  190,  238,  241,  249,  223,  184,
     797      239,  105,  147,  148,  149,  112,  185,   86,  150,  151,
     798      113,  152,   86,  153,  154,  295,  114,  168,   86,  179,
     799      180,  155,  105,   86,  244,  169,  239,  170,  115,  181,
     800      171,  253,  182,  254,  172,  188,  113,  124,  246,   86,
     801      255,  125,  126,  247,  127,  821,  128,  129,  253,  130,
     802      254,  131,  194,  195,  253,  261,  254,  194,  255,  303,
     803      132,  133,  134,  191,   80,   81,   81,   81,  191,  247,
     804      253,  192,  254,  196,  196,  196,  196,  196,  196,  250,
     805      135,  262,  253,  136,  254,   86,  204,  204,  204,  204,
     806
     807       79,   80,   81,   81,   81,   79,   81,   80,   81,   81,
     808       81,   81,   81,   80,   82,   82,   82,   81,  298,   86,
     809      137,  138,  205,  232,  232,  232,  232,   86,  239,  256,
     810      253,  253,  254,  254,  102,  272,  104,  104,  104,  104,
     811      104,  104,  253,  257,  254,  269,  238,  247,  206,   86,
     812      821,  207,  209,  105,  239,  233,  210,  211,  253,  294,
     813      254,  212,  213,  821,  214,  246,  215,  253,  234,  254,
     814       86,   86,   86,  247,  105,  216,  217,  218,  821,  235,
     815      271,  235,   86,   86,  236,  236,  236,  236,  236,  236,
     816       86,  141,  821,   86,  274,  219,  142,  245,  220,   86,
     817
     818      270,  273,   86,   86,   86,  267,   86,   86,  291,  286,
     819       86,  275,  268,  288,   86,   86,  237,   86,   86,   86,
     820      821,  292,  300,  293,  287,   86,  221,  225,  225,  225,
     821      225,  225,  225,  302,   86,  289,  290,  296,  297,   86,
     822      299,   86,  301,   86,  226,  227,  304,   86,  227,   86,
     823       86,   86,  309,   86,  596,  316,  306,   86,   86,  228,
     824      308,  305,  329,  307,  314,  226,  227,  313,  310,   86,
     825      317,  227,   98,   98,   98,   98,   98,   98,  311,  312,
     826       86,  315,  318,   86,   86,  320,   86,   86,  330,  226,
     827      227,  821,   86,  227,   86,   86,  343,  322,  344,  324,
     828
     829      319,  325,  321,  384,  231,  323,   86,  326,   86,  385,
     830      226,  227,  343,  276,  344,  277,  227,  278,  279,  359,
     831      343,  280,  344,  281,  382,  356,  194,  195,  282,  283,
     832      284,  194,  285,  191,   80,   81,   81,   81,  191,  194,
     833      195,  192,  369,  344,  194,  359,   86,  196,  196,  196,
     834      196,  196,  196,  335,  335,  335,  335,  343,  344,  344,
     835      196,  196,  196,  196,  196,  196,  327,  195,  369,   86,
     836      343,  327,  344,  328,  343,  412,  344,  345,  343,  343,
     837      344,  344,  343,  346,  344,  336,   86,  196,  196,  196,
     838      196,  196,  196,  343,  343,  344,  344,  225,  225,  225,
     839
     840      225,  225,  225,  352,  253,  352,  254,  371,  353,  353,
     841      353,  353,  353,  353,  226,  227,  226,  227,  227,  253,
     842      227,  254,  104,  104,  104,  104,  104,  104,  195,  228,
     843      821,  821,   86,  372,  193,  226,  227,  226,  227,  105,
     844      354,  227,   86,  227,  236,  236,  236,  236,  236,  236,
     845      383,   86,   86,   86,  245,  381,  386,  388,  362,   86,
     846      105,  357,  357,  357,  357,  357,  357,  235,   86,  235,
     847       86,  393,  236,  236,  236,  236,  236,  236,   86,  227,
     848       86,  364,  227,  365,   86,  394,  366,   86,  387,  398,
     849      389,  400,  367,  358,  104,  104,  104,  104,  104,  104,
     850
     851      227,   86,  395,   86,  368,  227,   86,  401,  365,   86,
     852      399,   86,  366,  111,  111,  111,  111,  111,  111,  396,
     853      397,  390,   86,   86,   86,   86,  245,  391,  392,  402,
     854      404,  406,  405,   86,   86,   86,   86,   86,   86,   86,
     855      403,  411,   86,   86,   86,  250,  414,   86,  418,   86,
     856       86,  416,  408,  407,  415,  419,  409,  410,  413,  417,
     857       86,   86,   86,   86,   86,  420,  422,  423,   86,   86,
     858       86,   86,   86,  425,  424,   86,   86,  427,  426,   86,
     859       86,  432,  421,   86,   86,   86,   86,  431,  475,   86,
     860      428,  430,  429,  437,  440,   86,  439,  433,  436,  434,
     861
     862      441,  435,   86,  438,  442,  327,  195,  343,  509,  344,
     863      327,  476,  328,  203,  203,  203,  203,  335,  335,  335,
     864      335,  343,   86,  344,  353,  353,  353,  353,  353,  353,
     865      463,  463,  463,  463,  463,  463,  225,  225,  225,  225,
     866      225,  225,   86,  510,   86,  452,  471,  352,  227,  352,
     867       86,  227,  353,  353,  353,  353,  353,  353,  491,  492,
     868       86,  490,  464,   86,  470,  470,  672,   86,  355,  227,
     869      471,  495,  471,   86,  227,  232,  232,  232,  232,  104,
     870      104,  357,  357,  357,  357,  357,  357,  357,  357,  357,
     871      357,  357,  357,  362,  516,   86,  471,  467,  821,  227,
     872
     873       86,   86,  227,  467,   86,  227,  468,  356,  227,  494,
     874      496,   86,  469,  358,  493,   86,  364,  499,  365,  465,
     875      227,  366,  467,   86,  498,  227,  227,  367,  467,   86,
     876       86,  227,  821,  497,   86,  506,  821,  809,  821,  368,
     877       86,  505,   86,  365,  472,  500,  472,  366,   86,  473,
     878      473,  473,  473,  473,  473,  364,  501,  365,  502,  503,
     879      366,   86,  504,  507,   86,   86,  477,   86,   86,   86,
     880      508,   86,  511,   86,   86,   86,   86,   86,  368,  515,
     881      513,  474,  365,  512,  518,  514,  366,   86,  519,  521,
     882      517,   86,  520,  523,   86,   86,  522,   86,  524,  526,
     883
     884       86,   86,   86,   86,   86,   86,  525,   86,   86,  527,
     885      529,   86,   86,   86,  530,  528,  536,   86,   86,  539,
     886      540,  538,  533,  531,  532,  534,  535,   86,   86,  537,
     887       86,  195,   86,   86,   86,  542,  821,  548,  570,  545,
     888      546,  547,  541,  600,  595,  543,  467,  544,  203,  203,
     889      203,  203,  463,  463,  463,  463,  463,  463,  463,  463,
     890      463,  463,  463,  463,  570,   86,   86,   86,  467,  467,
     891      227,  467,   86,  227,   86,   86,  227,  468,  569,  227,
     892      588,  589,  587,  821,  464,   86,  602,  591,   86,   86,
     893      565,  227,  590,  467,  467,   86,  227,  227,  593,   86,
     894
     895      594,  616,  227,  357,  357,  357,  357,  357,  357,  566,
     896      592,  566,  603,   86,  567,  567,  567,  567,  567,  567,
     897      473,  473,  473,  473,  473,  473,  571,  571,  571,  571,
     898      571,  571,  472,  597,  472,  465,   86,  473,  473,  473,
     899      473,  473,  473,   86,  572,   86,  568,  572,   86,   86,
     900      601,   86,   86,   86,   86,  598,   86,  605,  573,  609,
     901       86,  608,  610,   86,  599,  572,   86,   86,  607,   86,
     902      572,  606,   86,   86,  619,  614,   86,  612,  613,   86,
     903       86,   86,  611,   86,  615,  620,   86,  617,  618,  621,
     904       86,   86,   86,   86,  623,   86,  626,   86,  625,  627,
     905
     906      624,  622,   86,   86,  630,  629,   86,  631,   86,   86,
     907       86,  821,  808,  628,  670,  664,  633,  669,  665,  632,
     908      463,  463,  463,  463,  463,  463,  567,  567,  567,  567,
     909      567,  567,  651,  651,  651,  651,  651,  651,  566,   86,
     910      566,   86,   86,  567,  567,  567,  567,  567,  567,   86,
     911      572,   86,  565,  572,  571,  571,  571,  571,  571,  571,
     912       86,  675,  666,  677,  652,  668,   86,  680,  667,   86,
     913       86,  572,  572,   86,  662,  572,  572,  671,  571,  571,
     914      571,  571,  571,  571,   86,  674,  573,  663,   86,   86,
     915      676,  678,   86,  572,   86,   86,  572,  673,  572,  572,
     916
     917       86,   86,   86,   86,   86,   86,  679,  681,   86,  683,
     918      653,   86,   86,   86,   86,  682,   86,  572,   86,  684,
     919      693,   86,  572,  692,  685,  686,  694,  687,   86,  691,
     920      688,  689,  690,  696,   86,   86,   86,  695,  651,  651,
     921      651,  651,  651,  651,  651,  651,  651,  651,  651,  651,
     922       86,   86,   86,   86,  718,  710,  572,  714,  713,  572,
     923      711,  712,  572,   86,   86,  572,  716,  717,   86,   86,
     924      652,  723,   86,  715,  719,  721,  703,  572,  720,   86,
     925      726,   86,  572,  572,  724,   86,   86,   86,  572,  571,
     926      571,  571,  571,  571,  571,  725,   86,  730,   86,   86,
     927
     928      722,  727,   86,   86,   86,   86,   86,   86,  733,  728,
     929      729,   86,   86,  732,   86,   86,  731,   86,   86,  736,
     930      752,  653,   86,  737,   86,   86,  734,  753,  754,  735,
     931      651,  651,  651,  651,  651,  651,   86,  750,   86,  751,
     932      759,  757,   86,   86,   86,  760,  761,  755,   86,  758,
     933       86,  756,   86,  763,   86,  762,   86,  764,   86,  765,
     934       86,   86,  703,  782,   86,   86,  786,   86,  784,   86,
     935       86,   86,  787,   86,  789,   86,  781,  780,  790,  779,
     936       86,   86,  785,  783,   86,   86,   86,  802,  801,  791,
     937       86,   86,  788,  804,  800,  803,   86,   86,   86,  806,
     938
     939      807,   86,  805,   86,   86,   86,  811,  810,  812,   86,
     940       86,   86,  813,  814,  815,   86,   86,   86,  818,  817,
     941      819,   86,   86,  816,   86,  821,  821,  799,  821,  798,
     942      821,  796,  821,  795,  821,  794,  821,  793,  820,   68,
    942943       68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
    943        68,   68,   68,   68,   74,   74,   74,   74,   74,   74,
     944       68,   68,   68,   68,   68,   68,   74,   74,   74,   74,
    944945       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
    945        74,   77,   77,   77,   77,   77,   77,   77,   77,   77,
    946        77,   77,   77,   77,   77,   77,   77,   77,   85,  792,
    947        86,   85,   85,   86,   85,   85,   85,   85,   85,   85,
    948 
    949        85,   85,  138,   86,  820,  777,  820,  776,  138,  138,
    950       138,  138,  138,  138,  138,  138,  192,  192,  192,  192,
    951       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
    952       192,  192,  192,  197,  774,  820,  197,  197,  772,  197,
    953       197,  197,  197,  197,  197,  197,  197,  201,  820,  201,
    954       201,  770,  201,  201,  201,  201,  201,  201,  201,  201,
    955       820,  201,  201,  201,  202,  768,  202,  766,  202,   86,
    956       202,   86,   86,   86,  202,  202,   86,  202,  202,  207,
    957        86,   86,  207,  207,  207,  207,  207,  207,  207,  207,
    958       207,  207,   86,  207,  207,  207,  228,  228,  228,  228,
    959 
    960       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
    961       228,  228,  228,  242,  242,  242,   86,  242,   86,   86,
    962        86,  820,  242,  242,  258,  748,  746,  258,  258,  820,
    963       258,  258,  258,  258,  258,  258,  258,  258,  262,  262,
    964       820,  262,  743,  741,  739,  820,  262,  262,  264,  264,
    965        86,  264,   86,   86,   86,   86,  264,  264,  330,  330,
    966        86,  330,   86,  708,  705,  704,  330,  330,  332,  332,
    967       198,  332,  698,  697,  634,   86,  332,  332,  336,  336,
    968        86,  336,   86,   86,   86,   86,  336,  336,  338,  338,
    969        86,  338,   86,   86,   86,   86,  338,  338,  340,  340,
    970 
    971        86,  340,   86,   86,  659,  658,  340,  340,  347,  347,
    972       656,  347,  654,  568,  649,  648,  347,  347,  349,  349,
    973       646,  349,  644,  642,  640,  638,  349,  349,  228,  228,
    974       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
    975       228,  228,  228,  228,  228,  360,  360,  636,  360,  634,
    976        86,   86,   86,   86,  360,  362,  362,  362,   86,  362,
    977       362,  362,  362,   86,  362,  362,  242,  242,  242,   86,
    978       242,   86,   86,   86,   86,  585,  242,  372,  372,  583,
    979       372,  581,  579,  577,  575,  372,  372,  374,  374,  476,
    980       374,  573,  573,  563,  561,  374,  374,  376,  376,  457,
    981 
    982       376,  457,  559,  557,  555,  376,  376,  262,  262,  553,
    983       262,  551,  549,   86,   86,   86,  262,  378,  378,   86,
    984       378,   86,   86,   86,   86,  378,  378,  264,  264,  488,
    985       264,  486,  484,  482,  480,  478,  264,   85,  461,  459,
    986        85,   85,  343,   85,   85,   85,   85,   85,   85,   85,
    987        85,  192,  192,  192,  192,  192,  192,  192,  192,  192,
    988       192,  192,  192,  192,  192,  192,  192,  192,  442,  442,
    989       442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
    990       442,  442,  442,  442,  442,  443,  443,  343,  443,  457,
    991       455,  453,  450,  443,  443,  445,  445,  448,  445,  446,
    992 
    993       444,   86,   86,  445,  445,  447,  447,   86,  447,  379,
    994       377,  375,  373,  447,  447,  330,  330,  259,  330,  254,
    995       253,  369,  369,  241,  330,  449,  449,  359,  449,  359,
    996       229,  354,  350,  449,  449,  332,  332,  348,  332,  346,
    997       342,  341,  339,  337,  332,  452,  452,  333,  452,  331,
    998       198,  194,   86,  452,  452,  336,  336,  265,  336,  263,
    999       259,  257,  254,  252,  336,  454,  454,  251,  454,  250,
    1000       229,  223,   84,  454,  454,  338,  338,   84,  338,   86,
    1001       198,  196,   84,  145,  338,  456,  456,  139,  456,  121,
    1002       116,   86,  820,  456,  456,  340,  340,   69,  340,   69,
    1003 
    1004       820,  820,  820,  820,  340,  458,  458,  820,  458,  820,
    1005       820,  820,  820,  458,  458,  347,  347,  820,  347,  820,
    1006       820,  820,  820,  820,  347,  460,  460,  820,  460,  820,
    1007       820,  820,  820,  460,  460,  349,  349,  820,  349,  820,
    1008       820,  820,  820,  820,  349,  465,  465,  820,  465,  820,
    1009       465,  820,  820,  465,  465,  360,  360,  820,  360,  820,
    1010       360,  820,  820,  360,  360,  362,  362,  362,  820,  362,
    1011       362,  362,  362,  820,  362,  362,  477,  477,  820,  477,
    1012       820,  820,  820,  820,  477,  477,  479,  479,  820,  479,
    1013       820,  820,  820,  820,  479,  479,  481,  481,  820,  481,
    1014 
    1015       820,  820,  820,  820,  481,  481,  372,  372,  820,  372,
    1016       820,  820,  820,  820,  820,  372,  483,  483,  820,  483,
    1017       820,  820,  820,  820,  483,  483,  374,  374,  820,  374,
    1018       820,  820,  820,  820,  820,  374,  485,  485,  820,  485,
    1019       820,  820,  820,  820,  485,  485,  376,  376,  820,  376,
    1020       820,  820,  820,  820,  820,  376,  487,  487,  820,  487,
    1021       820,  820,  820,  820,  487,  487,  378,  378,  820,  378,
    1022       820,  820,  820,  820,  820,  378,   85,  820,  820,   85,
    1023        85,  820,   85,   85,   85,   85,   85,   85,   85,   85,
    1024       442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
    1025 
    1026       442,  442,  442,  442,  442,  442,  442,  548,  548,  820,
    1027       548,  820,  820,  820,  820,  548,  548,  443,  443,  820,
    1028       443,  820,  820,  820,  820,  820,  443,  550,  550,  820,
    1029       550,  820,  820,  820,  820,  550,  550,  445,  445,  820,
    1030       445,  820,  820,  820,  820,  820,  445,  552,  552,  820,
    1031       552,  820,  820,  820,  820,  552,  552,  447,  447,  820,
    1032       447,  820,  820,  820,  820,  820,  447,  554,  554,  820,
    1033       554,  820,  820,  820,  820,  554,  554,  449,  449,  820,
    1034       449,  820,  820,  820,  820,  820,  449,  556,  556,  820,
    1035       556,  820,  820,  820,  820,  556,  556,  452,  452,  820,
    1036 
    1037       452,  820,  820,  820,  820,  820,  452,  558,  558,  820,
    1038       558,  820,  820,  820,  820,  558,  558,  454,  454,  820,
    1039       454,  820,  820,  820,  820,  820,  454,  456,  456,  820,
    1040       456,  820,  820,  820,  820,  456,  456,  560,  560,  820,
    1041       560,  820,  820,  820,  820,  560,  560,  458,  458,  820,
    1042       458,  820,  820,  820,  820,  820,  458,  562,  562,  820,
    1043       562,  820,  820,  820,  820,  562,  562,  460,  460,  820,
    1044       460,  820,  820,  820,  820,  820,  460,  465,  465,  820,
    1045       465,  820,  465,  820,  820,  465,  465,  362,  362,  820,
    1046       362,  820,  820,  820,  820,  362,  362,  574,  574,  820,
    1047 
    1048       574,  820,  820,  820,  820,  574,  574,  477,  477,  820,
    1049       477,  820,  820,  820,  820,  820,  477,  576,  576,  820,
    1050       576,  820,  820,  820,  820,  576,  576,  479,  479,  820,
    1051       479,  820,  820,  820,  820,  820,  479,  578,  578,  820,
    1052       578,  820,  820,  820,  820,  578,  578,  481,  481,  820,
    1053       481,  820,  820,  820,  820,  820,  481,  580,  580,  820,
    1054       580,  820,  820,  820,  820,  580,  580,  483,  483,  820,
    1055       483,  820,  820,  820,  820,  820,  483,  582,  582,  820,
    1056       582,  820,  820,  820,  820,  582,  582,  485,  485,  820,
    1057       485,  820,  820,  820,  820,  820,  485,  584,  584,  820,
    1058 
    1059       584,  820,  820,  820,  820,  584,  584,  487,  487,  820,
    1060       487,  820,  820,  820,  820,  820,  487,   85,  820,  820,
    1061        85,   85,  820,   85,   85,   85,   85,   85,   85,   85,
    1062        85,  633,  633,  633,  633,  633,  633,  633,  633,  633,
    1063       633,  633,  633,  633,  633,  633,  633,  633,  635,  635,
    1064       820,  635,  820,  820,  820,  820,  635,  635,  548,  548,
    1065       820,  548,  820,  820,  820,  820,  820,  548,  637,  637,
    1066       820,  637,  820,  820,  820,  820,  637,  637,  550,  550,
    1067       820,  550,  820,  820,  820,  820,  820,  550,  639,  639,
    1068       820,  639,  820,  820,  820,  820,  639,  639,  552,  552,
    1069 
    1070       820,  552,  820,  820,  820,  820,  820,  552,  641,  641,
    1071       820,  641,  820,  820,  820,  820,  641,  641,  554,  554,
    1072       820,  554,  820,  820,  820,  820,  820,  554,  643,  643,
    1073       820,  643,  820,  820,  820,  820,  643,  643,  556,  556,
    1074       820,  556,  820,  820,  820,  820,  820,  556,  645,  645,
    1075       820,  645,  820,  820,  820,  820,  645,  645,  558,  558,
    1076       820,  558,  820,  820,  820,  820,  820,  558,  647,  647,
    1077       820,  647,  820,  820,  820,  820,  647,  647,  560,  560,
    1078       820,  560,  820,  820,  820,  820,  820,  560,   85,   85,
    1079       820,   85,  820,  820,  820,  820,   85,   85,  562,  562,
    1080 
    1081       820,  562,  820,  820,  820,  820,  820,  562,  465,  465,
    1082       820,  465,  820,  820,  820,  820,  465,  465,  653,  653,
    1083       820,  653,  820,  820,  820,  820,  653,  653,  574,  574,
    1084       820,  574,  820,  820,  820,  820,  820,  574,  655,  655,
    1085       820,  655,  820,  820,  820,  820,  655,  655,  576,  576,
    1086       820,  576,  820,  820,  820,  820,  820,  576,  657,  657,
    1087       820,  657,  820,  820,  820,  820,  657,  657,  578,  578,
    1088       820,  578,  820,  820,  820,  820,  820,  578,  138,  138,
    1089       820,  138,  820,  820,  820,  820,  138,  138,  580,  580,
    1090       820,  580,  820,  820,  820,  820,  820,  580,  660,  660,
    1091 
    1092       820,  660,  820,  820,  820,  820,  820,  660,  582,  582,
    1093       820,  582,  820,  820,  820,  820,  820,  582,   85,  820,
    1094       820,   85,   85,  820,   85,   85,   85,   85,   85,   85,
    1095        85,   85,  584,  584,  820,  584,  820,  820,  820,  820,
    1096       820,  584,  633,  633,  633,  633,  633,  633,  633,  633,
    1097       633,  633,  633,  633,  633,  633,  633,  633,  633,  696,
    1098       696,  820,  696,  820,  820,  820,  820,  696,  696,  635,
    1099       635,  820,  635,  820,  820,  820,  820,  820,  635,  197,
    1100       197,  820,  197,  820,  820,  820,  820,  197,  197,  637,
    1101       637,  820,  637,  820,  820,  820,  820,  820,  637,  699,
    1102 
    1103       699,  820,  699,  820,  820,  820,  820,  820,  699,  639,
    1104       639,  820,  639,  820,  820,  820,  820,  820,  639,  197,
    1105       820,  820,  197,  197,  820,  197,  197,  197,  197,  197,
    1106       197,  197,  197,  641,  641,  820,  641,  820,  820,  820,
    1107       820,  820,  641,  700,  700,  820,  700,  820,  820,  820,
    1108       820,  820,  700,  643,  643,  820,  643,  820,  820,  820,
    1109       820,  820,  643,  645,  645,  820,  645,  820,  820,  820,
    1110       820,  820,  645,  701,  701,  820,  701,  820,  820,  820,
    1111       820,  820,  701,  647,  647,  820,  647,  820,  820,  820,
    1112       820,  820,  647,   85,   85,  820,   85,  820,  820,  820,
    1113 
    1114       820,  820,   85,  703,  703,  820,  703,  820,  820,  820,
    1115       820,  703,  703,  653,  653,  820,  653,  820,  820,  820,
    1116       820,  820,  653,  258,  258,  820,  258,  820,  820,  820,
    1117       820,  258,  258,  655,  655,  820,  655,  820,  820,  820,
    1118       820,  820,  655,  706,  706,  820,  706,  820,  820,  820,
    1119       820,  820,  706,  657,  657,  820,  657,  820,  820,  820,
    1120       820,  820,  657,  138,  138,  820,  138,  820,  820,  820,
    1121       820,  820,  138,  707,  707,  820,  707,  820,  820,  820,
    1122       820,  707,  707,   85,  820,  820,   85,   85,  820,   85,
    1123        85,   85,   85,   85,   85,   85,   85,  737,  737,  820,
    1124 
    1125       737,  820,  820,  820,  820,  820,  737,  696,  696,  820,
    1126       696,  820,  820,  820,  820,  820,  696,  738,  738,  820,
    1127       738,  820,  820,  820,  820,  738,  738,  740,  740,  820,
    1128       740,  820,  820,  820,  820,  740,  740,  742,  742,  820,
    1129       742,  820,  820,  820,  820,  742,  742,  744,  744,  820,
    1130       744,  820,  820,  820,  820,  820,  744,  745,  745,  820,
    1131       745,  820,  820,  820,  820,  745,  745,  747,  747,  820,
    1132       747,  820,  820,  820,  820,  747,  747,  765,  765,  820,
    1133       765,  820,  820,  820,  820,  765,  765,  767,  767,  820,
    1134       767,  820,  820,  820,  820,  767,  767,  769,  769,  820,
    1135 
    1136       769,  820,  820,  820,  820,  769,  769,  771,  771,  820,
    1137       771,  820,  820,  820,  820,  771,  771,  773,  773,  820,
    1138       773,  820,  820,  820,  820,  773,  773,  775,  775,  820,
    1139       775,  820,  820,  820,  820,  775,  775,  584,  584,  820,
    1140       584,  820,  820,  820,  820,  584,  584,  791,  791,  820,
    1141       791,  820,  820,  820,  820,  791,  791,  641,  641,  820,
    1142       641,  820,  820,  820,  820,  641,  641,  645,  645,  820,
    1143       645,  820,  820,  820,  820,  645,  645,   85,   85,  820,
    1144        85,  820,  820,  820,  820,   85,   85,  796,  796,  820,
    1145       796,  820,  820,  820,  820,  796,  796,  138,  138,  820,
    1146 
    1147       138,  820,  820,  820,  820,  138,  138,  197,  197,  820,
    1148       197,  820,  820,  820,  820,  197,  197,   11,  820,  820,
    1149       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1150       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1151       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1152       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1153       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1154       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1155       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1156       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1157 
    1158       820,  820
     946       74,   74,   74,   77,   77,   77,   77,   77,   77,   77,
     947       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
     948       85,   86,   86,   85,   85,   86,   85,   85,   85,   85,
     949
     950       85,   85,   85,   85,  139,  821,  778,  821,  777,  775,
     951      139,  139,  139,  139,  139,  139,  139,  139,  193,  193,
     952      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
     953      193,  193,  193,  193,  193,  198,  821,  773,  198,  198,
     954      821,  198,  198,  198,  198,  198,  198,  198,  198,  202,
     955      771,  202,  202,  821,  202,  202,  202,  202,  202,  202,
     956      202,  202,  769,  202,  202,  202,  203,  767,  203,   86,
     957      203,   86,  203,   86,   86,   86,  203,  203,   86,  203,
     958      203,  208,   86,   86,  208,  208,  208,  208,  208,  208,
     959      208,  208,  208,  208,   86,  208,  208,  208,  229,  229,
     960
     961      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
     962      229,  229,  229,  229,  229,  243,  243,  243,   86,  243,
     963       86,   86,  821,  749,  243,  243,  259,  747,  821,  259,
     964      259,  821,  259,  259,  259,  259,  259,  259,  259,  259,
     965      263,  263,  744,  263,  742,  740,  821,   86,  263,  263,
     966      265,  265,   86,  265,   86,   86,   86,   86,  265,  265,
     967      331,  331,   86,  331,  709,  706,  705,  199,  331,  331,
     968      333,  333,  699,  333,  698,  635,   86,   86,  333,  333,
     969      337,  337,   86,  337,   86,   86,   86,   86,  337,  337,
     970      339,  339,   86,  339,   86,   86,   86,   86,  339,  339,
     971
     972      341,  341,   86,  341,   86,  660,  659,  657,  341,  341,
     973      348,  348,  655,  348,  569,  650,  649,  647,  348,  348,
     974      350,  350,  645,  350,  643,  641,  639,  637,  350,  350,
     975      229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
     976      229,  229,  229,  229,  229,  229,  229,  361,  361,  635,
     977      361,   86,   86,   86,   86,   86,  361,  363,  363,  363,
     978       86,  363,  363,  363,  363,   86,  363,  363,  243,  243,
     979      243,   86,  243,   86,   86,   86,  586,  584,  243,  373,
     980      373,  582,  373,  580,  578,  576,  477,  373,  373,  375,
     981      375,  574,  375,  574,  564,  562,  458,  375,  375,  377,
     982
     983      377,  458,  377,  560,  558,  556,  554,  377,  377,  263,
     984      263,  552,  263,  550,   86,   86,   86,   86,  263,  379,
     985      379,   86,  379,   86,   86,   86,  489,  379,  379,  265,
     986      265,  487,  265,  485,  483,  481,  479,  462,  265,   85,
     987      460,  344,   85,   85,  344,   85,   85,   85,   85,   85,
     988       85,   85,   85,  193,  193,  193,  193,  193,  193,  193,
     989      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
     990      443,  443,  443,  443,  443,  443,  443,  443,  443,  443,
     991      443,  443,  443,  443,  443,  443,  443,  444,  444,  458,
     992      444,  456,  454,  451,  449,  444,  444,  446,  446,  447,
     993
     994      446,  445,   86,   86,   86,  446,  446,  448,  448,  380,
     995      448,  378,  376,  374,  260,  448,  448,  331,  331,  255,
     996      331,  254,  370,  370,  242,  360,  331,  450,  450,  360,
     997      450,  230,  355,  351,  349,  450,  450,  333,  333,  347,
     998      333,  343,  342,  340,  338,  334,  333,  453,  453,  332,
     999      453,  199,  195,   86,  266,  453,  453,  337,  337,  264,
     1000      337,  260,  255,  258,  255,  253,  337,  455,  455,  252,
     1001      455,  251,  230,  224,   84,  455,  455,  339,  339,   84,
     1002      339,   86,  199,  197,   84,  146,  339,  457,  457,  140,
     1003      457,  121,  116,   86,  821,  457,  457,  341,  341,   69,
     1004
     1005      341,   69,  821,  821,  821,  821,  341,  459,  459,  821,
     1006      459,  821,  821,  821,  821,  459,  459,  348,  348,  821,
     1007      348,  821,  821,  821,  821,  821,  348,  461,  461,  821,
     1008      461,  821,  821,  821,  821,  461,  461,  350,  350,  821,
     1009      350,  821,  821,  821,  821,  821,  350,  466,  466,  821,
     1010      466,  821,  466,  821,  821,  466,  466,  361,  361,  821,
     1011      361,  821,  361,  821,  821,  361,  361,  363,  363,  363,
     1012      821,  363,  363,  363,  363,  821,  363,  363,  478,  478,
     1013      821,  478,  821,  821,  821,  821,  478,  478,  480,  480,
     1014      821,  480,  821,  821,  821,  821,  480,  480,  482,  482,
     1015
     1016      821,  482,  821,  821,  821,  821,  482,  482,  373,  373,
     1017      821,  373,  821,  821,  821,  821,  821,  373,  484,  484,
     1018      821,  484,  821,  821,  821,  821,  484,  484,  375,  375,
     1019      821,  375,  821,  821,  821,  821,  821,  375,  486,  486,
     1020      821,  486,  821,  821,  821,  821,  486,  486,  377,  377,
     1021      821,  377,  821,  821,  821,  821,  821,  377,  488,  488,
     1022      821,  488,  821,  821,  821,  821,  488,  488,  379,  379,
     1023      821,  379,  821,  821,  821,  821,  821,  379,   85,  821,
     1024      821,   85,   85,  821,   85,   85,   85,   85,   85,   85,
     1025       85,   85,  443,  443,  443,  443,  443,  443,  443,  443,
     1026
     1027      443,  443,  443,  443,  443,  443,  443,  443,  443,  549,
     1028      549,  821,  549,  821,  821,  821,  821,  549,  549,  444,
     1029      444,  821,  444,  821,  821,  821,  821,  821,  444,  551,
     1030      551,  821,  551,  821,  821,  821,  821,  551,  551,  446,
     1031      446,  821,  446,  821,  821,  821,  821,  821,  446,  553,
     1032      553,  821,  553,  821,  821,  821,  821,  553,  553,  448,
     1033      448,  821,  448,  821,  821,  821,  821,  821,  448,  555,
     1034      555,  821,  555,  821,  821,  821,  821,  555,  555,  450,
     1035      450,  821,  450,  821,  821,  821,  821,  821,  450,  557,
     1036      557,  821,  557,  821,  821,  821,  821,  557,  557,  453,
     1037
     1038      453,  821,  453,  821,  821,  821,  821,  821,  453,  559,
     1039      559,  821,  559,  821,  821,  821,  821,  559,  559,  455,
     1040      455,  821,  455,  821,  821,  821,  821,  821,  455,  457,
     1041      457,  821,  457,  821,  821,  821,  821,  457,  457,  561,
     1042      561,  821,  561,  821,  821,  821,  821,  561,  561,  459,
     1043      459,  821,  459,  821,  821,  821,  821,  821,  459,  563,
     1044      563,  821,  563,  821,  821,  821,  821,  563,  563,  461,
     1045      461,  821,  461,  821,  821,  821,  821,  821,  461,  466,
     1046      466,  821,  466,  821,  466,  821,  821,  466,  466,  363,
     1047      363,  821,  363,  821,  821,  821,  821,  363,  363,  575,
     1048
     1049      575,  821,  575,  821,  821,  821,  821,  575,  575,  478,
     1050      478,  821,  478,  821,  821,  821,  821,  821,  478,  577,
     1051      577,  821,  577,  821,  821,  821,  821,  577,  577,  480,
     1052      480,  821,  480,  821,  821,  821,  821,  821,  480,  579,
     1053      579,  821,  579,  821,  821,  821,  821,  579,  579,  482,
     1054      482,  821,  482,  821,  821,  821,  821,  821,  482,  581,
     1055      581,  821,  581,  821,  821,  821,  821,  581,  581,  484,
     1056      484,  821,  484,  821,  821,  821,  821,  821,  484,  583,
     1057      583,  821,  583,  821,  821,  821,  821,  583,  583,  486,
     1058      486,  821,  486,  821,  821,  821,  821,  821,  486,  585,
     1059
     1060      585,  821,  585,  821,  821,  821,  821,  585,  585,  488,
     1061      488,  821,  488,  821,  821,  821,  821,  821,  488,   85,
     1062      821,  821,   85,   85,  821,   85,   85,   85,   85,   85,
     1063       85,   85,   85,  634,  634,  634,  634,  634,  634,  634,
     1064      634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
     1065      636,  636,  821,  636,  821,  821,  821,  821,  636,  636,
     1066      549,  549,  821,  549,  821,  821,  821,  821,  821,  549,
     1067      638,  638,  821,  638,  821,  821,  821,  821,  638,  638,
     1068      551,  551,  821,  551,  821,  821,  821,  821,  821,  551,
     1069      640,  640,  821,  640,  821,  821,  821,  821,  640,  640,
     1070
     1071      553,  553,  821,  553,  821,  821,  821,  821,  821,  553,
     1072      642,  642,  821,  642,  821,  821,  821,  821,  642,  642,
     1073      555,  555,  821,  555,  821,  821,  821,  821,  821,  555,
     1074      644,  644,  821,  644,  821,  821,  821,  821,  644,  644,
     1075      557,  557,  821,  557,  821,  821,  821,  821,  821,  557,
     1076      646,  646,  821,  646,  821,  821,  821,  821,  646,  646,
     1077      559,  559,  821,  559,  821,  821,  821,  821,  821,  559,
     1078      648,  648,  821,  648,  821,  821,  821,  821,  648,  648,
     1079      561,  561,  821,  561,  821,  821,  821,  821,  821,  561,
     1080       85,   85,  821,   85,  821,  821,  821,  821,   85,   85,
     1081
     1082      563,  563,  821,  563,  821,  821,  821,  821,  821,  563,
     1083      466,  466,  821,  466,  821,  821,  821,  821,  466,  466,
     1084      654,  654,  821,  654,  821,  821,  821,  821,  654,  654,
     1085      575,  575,  821,  575,  821,  821,  821,  821,  821,  575,
     1086      656,  656,  821,  656,  821,  821,  821,  821,  656,  656,
     1087      577,  577,  821,  577,  821,  821,  821,  821,  821,  577,
     1088      658,  658,  821,  658,  821,  821,  821,  821,  658,  658,
     1089      579,  579,  821,  579,  821,  821,  821,  821,  821,  579,
     1090      139,  139,  821,  139,  821,  821,  821,  821,  139,  139,
     1091      581,  581,  821,  581,  821,  821,  821,  821,  821,  581,
     1092
     1093      661,  661,  821,  661,  821,  821,  821,  821,  821,  661,
     1094      583,  583,  821,  583,  821,  821,  821,  821,  821,  583,
     1095       85,  821,  821,   85,   85,  821,   85,   85,   85,   85,
     1096       85,   85,   85,   85,  585,  585,  821,  585,  821,  821,
     1097      821,  821,  821,  585,  634,  634,  634,  634,  634,  634,
     1098      634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
     1099      634,  697,  697,  821,  697,  821,  821,  821,  821,  697,
     1100      697,  636,  636,  821,  636,  821,  821,  821,  821,  821,
     1101      636,  198,  198,  821,  198,  821,  821,  821,  821,  198,
     1102      198,  638,  638,  821,  638,  821,  821,  821,  821,  821,
     1103
     1104      638,  700,  700,  821,  700,  821,  821,  821,  821,  821,
     1105      700,  640,  640,  821,  640,  821,  821,  821,  821,  821,
     1106      640,  198,  821,  821,  198,  198,  821,  198,  198,  198,
     1107      198,  198,  198,  198,  198,  642,  642,  821,  642,  821,
     1108      821,  821,  821,  821,  642,  701,  701,  821,  701,  821,
     1109      821,  821,  821,  821,  701,  644,  644,  821,  644,  821,
     1110      821,  821,  821,  821,  644,  646,  646,  821,  646,  821,
     1111      821,  821,  821,  821,  646,  702,  702,  821,  702,  821,
     1112      821,  821,  821,  821,  702,  648,  648,  821,  648,  821,
     1113      821,  821,  821,  821,  648,   85,   85,  821,   85,  821,
     1114
     1115      821,  821,  821,  821,   85,  704,  704,  821,  704,  821,
     1116      821,  821,  821,  704,  704,  654,  654,  821,  654,  821,
     1117      821,  821,  821,  821,  654,  259,  259,  821,  259,  821,
     1118      821,  821,  821,  259,  259,  656,  656,  821,  656,  821,
     1119      821,  821,  821,  821,  656,  707,  707,  821,  707,  821,
     1120      821,  821,  821,  821,  707,  658,  658,  821,  658,  821,
     1121      821,  821,  821,  821,  658,  139,  139,  821,  139,  821,
     1122      821,  821,  821,  821,  139,  708,  708,  821,  708,  821,
     1123      821,  821,  821,  708,  708,   85,  821,  821,   85,   85,
     1124      821,   85,   85,   85,   85,   85,   85,   85,   85,  738,
     1125
     1126      738,  821,  738,  821,  821,  821,  821,  821,  738,  697,
     1127      697,  821,  697,  821,  821,  821,  821,  821,  697,  739,
     1128      739,  821,  739,  821,  821,  821,  821,  739,  739,  741,
     1129      741,  821,  741,  821,  821,  821,  821,  741,  741,  743,
     1130      743,  821,  743,  821,  821,  821,  821,  743,  743,  745,
     1131      745,  821,  745,  821,  821,  821,  821,  821,  745,  746,
     1132      746,  821,  746,  821,  821,  821,  821,  746,  746,  748,
     1133      748,  821,  748,  821,  821,  821,  821,  748,  748,  766,
     1134      766,  821,  766,  821,  821,  821,  821,  766,  766,  768,
     1135      768,  821,  768,  821,  821,  821,  821,  768,  768,  770,
     1136
     1137      770,  821,  770,  821,  821,  821,  821,  770,  770,  772,
     1138      772,  821,  772,  821,  821,  821,  821,  772,  772,  774,
     1139      774,  821,  774,  821,  821,  821,  821,  774,  774,  776,
     1140      776,  821,  776,  821,  821,  821,  821,  776,  776,  585,
     1141      585,  821,  585,  821,  821,  821,  821,  585,  585,  792,
     1142      792,  821,  792,  821,  821,  821,  821,  792,  792,  642,
     1143      642,  821,  642,  821,  821,  821,  821,  642,  642,  646,
     1144      646,  821,  646,  821,  821,  821,  821,  646,  646,   85,
     1145       85,  821,   85,  821,  821,  821,  821,   85,   85,  797,
     1146      797,  821,  797,  821,  821,  821,  821,  797,  797,  139,
     1147
     1148      139,  821,  139,  821,  821,  821,  821,  139,  139,  198,
     1149      198,  821,  198,  821,  821,  821,  821,  198,  198,   11,
     1150      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1151      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1152      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1153      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1154      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1155      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1156      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1157      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1158
     1159      821,  821,  821,  821
    11591160    } ;
    11601161
    1161 static yyconst flex_int16_t yy_chk[3603] =
     1162static yyconst flex_int16_t yy_chk[3605] =
    11621163    {   0,
    11631164        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11801181        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11811182        5,    5,    5,    5,    5,    5,    5,    7,    8,    9,
    1182        10,   37,   37,   20,   48,    9,   10,  507,    7,    8,
     1183       10,   37,   37,   20,   48,    9,   10,  508,    7,    8,
    11831184       13,   13,   13,   13,   13,   13,   15,   15,   15,   15,
    11841185
    11851186       15,   15,   20,   25,   48,   42,   53,   28,   27,   28,
    1186        28,   28,   28,   28,   28,  507,  819,   25,   29,   25,
     1187       28,   28,   28,   28,   28,  508,  820,   25,   29,   25,
    11871188       27,   27,   27,   29,   53,   35,    7,    8,    9,   10,
    11881189       40,   42,   55,   29,   30,   40,   30,   30,   30,   30,
     
    11911192       56,   59,   30,   30,   47,   49,   47,   50,   30,   54,
    11921193       51,   50,   51,   40,   30,   60,   40,   72,   59,   54,
    1193        30,   51,   86,  107,  113,   45,   54,  818,   30,   58,
     1194       30,   51,   86,  107,  113,   45,   54,  819,   30,   58,
    11941195       45,   30,   31,   60,   31,   31,   31,   31,   31,   31,
    11951196
    1196       108,   58,  162,   72,   63,  106,  107,  113,   86,   58,
     1197      108,   58,  163,   72,   63,  106,  107,  113,   86,   58,
    11971198      106,   31,   45,   45,   45,   31,   58,   57,   45,   45,
    1198        31,   45,   52,   45,   45,  162,   31,   52,   45,   57,
     1199       31,   45,   52,   45,   45,  163,   31,   52,   45,   57,
    11991200       57,   45,   31,   61,  108,   52,  106,   52,   31,   57,
    1200        52,  126,   57,  126,   52,   61,   31,   38,  112,  817,
     1201       52,  126,   57,  126,   52,   61,   31,   38,  112,  171,
    12011202      129,   38,   38,  112,   38,  114,   38,   38,  128,   38,
    1202       128,   38,   67,   67,  129,  139,  129,   67,  130,  165,
     1203      128,   38,   67,   67,  129,  140,  129,   67,  130,  171,
    12031204       38,   38,   38,   66,   66,   66,   66,   66,   66,  112,
    12041205      130,   66,  130,   67,   67,   67,   67,   67,   67,  114,
    1205        38,  139,  165,   38,   76,   76,   76,   76,   79,   79,
    1206 
    1207        79,   79,   79,   79,   81,   81,   81,   81,   81,   81,
    1208        82,   82,   82,   82,   82,   82,  103,  103,  103,  103,
    1209        76,   38,  109,  104,  232,  104,  104,  104,  104,  104,
    1210       104,  105,  131,  105,  131,  110,  105,  105,  105,  105,
    1211       105,  105,  104,  103,  132,  132,   76,  132,  103,   76,
    1212        84,  109,  115,  110,   84,   84,  109,  104,  232,   84,
    1213        84,  110,   84,  104,   84,  133,  816,  133,  105,  147,
    1214       115,  103,  142,   84,   84,   84,  146,  142,  115,  109,
    1215       134,  134,  134,  136,  137,  136,  137,  147,  148,  150,
    1216       149,  146,  151,   84,  152,  153,   84,  155,  146,  149,
    1217 
    1218       156,  160,  157,  159,  161,  150,  148,  153,  159,  163,
    1219       151,  157,  158,  155,  161,  142,  152,  164,  160,  166,
    1220       167,  159,  156,  168,   84,   98,   98,   98,   98,   98,
    1221        98,  169,  170,  158,  158,  167,  163,  172,  164,  171,
    1222       168,  166,   98,   98,  175,  174,   98,  178,  176,  169,
    1223       183,  814,  170,  176,  209,  289,  209,   98,  182,  172,
    1224       174,  175,  289,   98,   98,  178,  171,  174,  177,   98,
    1225       102,  102,  102,  102,  102,  102,  180,  183,  182,  177,
    1226       184,  180,  179,  405,  181,  186,  198,  102,  102,  177,
    1227       177,  102,  187,  179,  266,  405,  180,  181,  186,  184,
    1228 
    1229       186,  210,  102,  210,  185,  187,  154,  266,  102,  102,
    1230       179,  154,  198,  154,  102,  154,  154,  185,  211,  154,
    1231       211,  154,  214,  270,  214,  185,  154,  154,  154,  313,
    1232       154,  190,  190,  190,  190,  190,  190,  191,  191,  190,
    1233       270,  212,  191,  193,  193,  216,  313,  216,  193,  195,
    1234       195,  217,  217,  217,  195,  212,  195,  212,  191,  191,
    1235       191,  191,  191,  191,  193,  193,  193,  193,  193,  193,
    1236       195,  195,  195,  195,  195,  195,  203,  203,  203,  203,
    1237       213,  215,  215,  219,  215,  219,  220,  813,  220,  237,
    1238       245,  225,  213,  225,  213,  281,  225,  225,  225,  225,
    1239 
    1240       225,  225,  230,  230,  281,  255,  230,  255,  203,  224,
    1241       224,  224,  224,  224,  224,  237,  245,  233,  233,  233,
    1242       233,  233,  233,  230,  230,  259,  224,  224,  225,  230,
    1243       224,  256,  267,  256,  233,  234,  234,  234,  234,  234,
    1244       234,  224,  344,  288,  344,  268,  272,  224,  224,  233,
    1245       267,  259,  288,  224,  292,  233,  235,  235,  235,  235,
    1246       235,  235,  236,  268,  236,  274,  272,  236,  236,  236,
    1247       236,  236,  236,  242,  235,  292,  292,  235,  244,  244,
    1248       244,  244,  244,  244,  808,  274,  269,  276,  235,  249,
    1249       249,  249,  249,  249,  249,  235,  242,  278,  242,  271,
    1250 
    1251       235,  242,  269,  273,  271,  276,  277,  242,  273,  275,
    1252       244,  280,  278,  282,  283,  403,  280,  279,  284,  242,
    1253       286,  249,  290,  242,  275,  291,  282,  242,  295,  403,
    1254       275,  275,  277,  279,  279,  287,  284,  296,  286,  293,
    1255       287,  283,  290,  291,  293,  294,  296,  295,  297,  298,
    1256       299,  294,  300,  303,  301,  302,  304,  300,  298,  301,
    1257       302,  308,  305,  310,  297,  299,  309,  307,  311,  312,
    1258       315,  314,  303,  316,  304,  305,  308,  302,  307,  309,
    1259       314,  317,  318,  321,  320,  310,  322,  323,  327,  312,
    1260       325,  311,  315,  320,  327,  323,  316,  324,  380,  322,
    1261 
    1262       318,  321,  324,  317,  807,  325,  326,  326,  345,  380,
    1263       345,  326,  381,  326,  334,  334,  334,  334,  335,  335,
    1264       335,  335,  351,  351,  351,  351,  351,  351,  381,  352,
    1265       352,  352,  352,  352,  352,  353,  365,  353,  383,  384,
    1266       353,  353,  353,  353,  353,  353,  334,  352,  384,  385,
    1267       352,  354,  354,  354,  354,  354,  354,  383,  803,  365,
    1268       385,  352,  355,  355,  355,  355,  355,  355,  352,  387,
    1269       415,  360,  361,  352,  356,  356,  356,  356,  356,  356,
    1270       360,  361,  367,  354,  357,  357,  357,  357,  357,  357,
    1271       415,  387,  356,  390,  355,  356,  360,  361,  363,  362,
    1272 
    1273       367,  386,  357,  363,  382,  357,  356,  433,  367,  390,
    1274       386,  388,  389,  356,  433,  801,  357,  798,  356,  382,
    1275       388,  391,  362,  357,  362,  389,  393,  362,  357,  363,
    1276       364,  366,  364,  362,  392,  364,  364,  364,  364,  364,
    1277       364,  395,  394,  391,  400,  362,  395,  396,  393,  362,
    1278       392,  392,  397,  362,  366,  398,  366,  399,  397,  366,
    1279       394,  407,  396,  400,  401,  366,  408,  364,  399,  396,
    1280       410,  409,  411,  416,  412,  417,  398,  366,  418,  401,
    1281       409,  366,  407,  412,  409,  366,  419,  411,  408,  420,
    1282       417,  423,  425,  410,  421,  416,  426,  430,  427,  428,
    1283 
    1284       418,  419,  429,  421,  431,  434,  430,  432,  423,  420,
    1285       435,  437,  434,  436,  438,  425,  440,  426,  427,  428,
    1286       432,  436,  431,  441,  429,  438,  498,  442,  437,  497,
    1287       468,  436,  441,  442,  497,  435,  469,  498,  440,  451,
    1288       451,  451,  451,  462,  462,  462,  462,  462,  462,  463,
    1289       463,  463,  463,  463,  463,  468,  489,  492,  490,  465,
    1290       467,  462,  469,  493,  462,  494,  500,  463,  465,  467,
    1291       463,  490,  492,  489,  499,  462,  496,  499,  494,  495,
    1292       505,  463,  462,  493,  465,  467,  500,  462,  463,  496,
    1293       506,  505,  523,  463,  464,  464,  464,  464,  464,  464,
    1294 
    1295       466,  495,  466,  506,  523,  466,  466,  466,  466,  466,
    1296       466,  471,  471,  471,  471,  471,  471,  472,  472,  472,
    1297       472,  472,  472,  473,  501,  473,  464,  502,  473,  473,
    1298       473,  473,  473,  473,  504,  472,  503,  466,  472,  504,
    1299       509,  508,  510,  501,  511,  503,  512,  517,  502,  472,
    1300       508,  512,  518,  511,  515,  519,  472,  520,  522,  510,
    1301       531,  472,  509,  515,  524,  526,  520,  527,  529,  518,
    1302       519,  532,  527,  517,  530,  522,  533,  529,  535,  524,
    1303       526,  536,  531,  530,  532,  537,  535,  538,  539,  541,
    1304       544,  536,  537,  533,  542,  545,  587,  588,  541,  595,
    1305 
    1306       539,  797,  595,  587,  542,  796,  588,  544,  545,  538,
    1307       564,  564,  564,  564,  564,  564,  565,  565,  565,  565,
    1308       565,  565,  566,  566,  566,  566,  566,  566,  567,  598,
    1309       567,  600,  591,  567,  567,  567,  567,  567,  567,  589,
    1310       566,  590,  564,  566,  570,  570,  570,  570,  570,  570,
    1311       592,  598,  589,  600,  566,  591,  795,  592,  590,  586,
    1312       794,  566,  570,  594,  586,  570,  566,  593,  572,  572,
    1313       572,  572,  572,  572,  596,  593,  570,  586,  597,  599,
    1314       594,  601,  602,  570,  601,  605,  572,  596,  570,  572,
    1315       603,  604,  606,  597,  608,  607,  599,  610,  611,  602,
    1316 
    1317       572,  606,  612,  615,  616,  605,  604,  572,  618,  621,
    1318       629,  661,  572,  607,  632,  622,  608,  603,  621,  610,
    1319       629,  611,  622,  615,  612,  618,  631,  664,  666,  632,
    1320       667,  616,  661,  666,  793,  631,  650,  650,  650,  650,
    1321       650,  650,  651,  651,  651,  651,  651,  651,  662,  665,
    1322       667,  670,  668,  664,  650,  668,  665,  650,  662,  669,
    1323       651,  672,  669,  651,  673,  681,  676,  672,  650,  670,
    1324       684,  679,  675,  673,  651,  650,  674,  792,  681,  674,
    1325       650,  651,  677,  684,  688,  677,  651,  652,  652,  652,
    1326       652,  652,  652,  675,  676,  678,  679,  680,  682,  683,
    1327 
    1328       680,  686,  691,  692,  678,  694,  682,  688,  695,  683,
    1329       686,  718,  713,  694,  717,  715,  714,  695,  719,  652,
    1330       715,  716,  691,  791,  717,  692,  702,  702,  702,  702,
    1331       702,  702,  713,  714,  718,  720,  716,  721,  720,  722,
    1332       724,  727,  726,  724,  719,  726,  728,  730,  727,  728,
    1333       721,  729,  749,  751,  729,  752,  753,  757,  702,  753,
    1334       754,  755,  730,  758,  755,  759,  722,  761,  759,  762,
    1335       779,  780,  762,  752,  751,  757,  764,  763,  780,  749,
    1336       763,  781,  754,  782,  781,  764,  784,  783,  758,  761,
    1337       783,  779,  782,  787,  790,  799,  787,  790,  802,  804,
    1338 
    1339       800,  802,  804,  784,  799,  800,  805,  806,  809,  805,
    1340       806,  810,  811,  812,  815,  811,  812,  789,  788,  786,
    1341       785,  778,  777,  776,  775,  774,  810,  773,  809,  772,
    1342       771,  770,  769,  768,  767,  766,  815,  821,  821,  821,
     1206       38,  140,  131,   38,  131,  166,   76,   76,   76,   76,
     1207
     1208       79,   79,   79,   79,   79,   79,   81,   81,   81,   81,
     1209       81,   81,   82,   82,   82,   82,   82,   82,  166,  151,
     1210       38,   38,   76,  103,  103,  103,  103,  148,  110,  132,
     1211      132,  133,  132,  133,  104,  151,  104,  104,  104,  104,
     1212      104,  104,  134,  134,  134,  148,  110,  115,   76,  162,
     1213      103,   76,   84,  104,  110,  103,   84,   84,  136,  162,
     1214      136,   84,   84,  109,   84,  115,   84,  138,  104,  138,
     1215      818,  150,  153,  115,  104,   84,   84,   84,  103,  105,
     1216      150,  105,  149,  152,  105,  105,  105,  105,  105,  105,
     1217      147,  143,  109,  156,  153,   84,  143,  109,   84,  154,
     1218
     1219      149,  152,  157,  160,  158,  147,  161,  168,  160,  156,
     1220      164,  154,  147,  158,  159,  170,  105,  165,  167,  172,
     1221      109,  160,  168,  161,  157,  169,   84,   98,   98,   98,
     1222       98,   98,   98,  170,  143,  159,  159,  164,  165,  173,
     1223      167,  175,  169,  176,   98,   98,  172,  177,   98,  179,
     1224      181,  500,  177,  180,  500,  181,  175,  178,  184,   98,
     1225      176,  173,  199,  175,  180,   98,   98,  179,  178,  182,
     1226      181,   98,  102,  102,  102,  102,  102,  102,  178,  178,
     1227      183,  180,  182,  185,  186,  184,  187,  270,  199,  102,
     1228      102,  233,  271,  102,  188,  817,  210,  186,  210,  187,
     1229
     1230      183,  187,  185,  270,  102,  186,  268,  188,  155,  271,
     1231      102,  102,  211,  155,  211,  155,  102,  155,  155,  238,
     1232      212,  155,  212,  155,  268,  233,  192,  192,  155,  155,
     1233      155,  192,  155,  191,  191,  191,  191,  191,  191,  194,
     1234      194,  191,  246,  213,  194,  238,  815,  192,  192,  192,
     1235      192,  192,  192,  204,  204,  204,  204,  213,  214,  213,
     1236      194,  194,  194,  194,  194,  194,  196,  196,  246,  295,
     1237      214,  196,  214,  196,  215,  295,  215,  216,  216,  217,
     1238      216,  217,  218,  218,  218,  204,  814,  196,  196,  196,
     1239      196,  196,  196,  220,  221,  220,  221,  225,  225,  225,
     1240
     1241      225,  225,  225,  226,  256,  226,  256,  260,  226,  226,
     1242      226,  226,  226,  226,  225,  225,  231,  231,  225,  257,
     1243      231,  257,  234,  234,  234,  234,  234,  234,  328,  225,
     1244      809,  808,  269,  260,  328,  225,  225,  231,  231,  234,
     1245      226,  225,  267,  231,  235,  235,  235,  235,  235,  235,
     1246      269,  272,  274,  277,  234,  267,  272,  274,  243,  278,
     1247      234,  236,  236,  236,  236,  236,  236,  237,  273,  237,
     1248      275,  277,  237,  237,  237,  237,  237,  237,  283,  236,
     1249      284,  243,  236,  243,  281,  278,  243,  279,  273,  281,
     1250      275,  283,  243,  236,  245,  245,  245,  245,  245,  245,
     1251
     1252      236,  282,  279,  280,  243,  236,  276,  284,  243,  804,
     1253      282,  285,  243,  250,  250,  250,  250,  250,  250,  280,
     1254      280,  276,  287,  289,  290,  288,  245,  276,  276,  285,
     1255      288,  290,  289,  291,  292,  293,  294,  297,  298,  296,
     1256      287,  294,  299,  301,  300,  250,  297,  304,  301,  305,
     1257      302,  299,  292,  291,  298,  302,  293,  293,  296,  300,
     1258      303,  306,  308,  309,  310,  303,  304,  305,  311,  312,
     1259      314,  313,  315,  308,  306,  316,  317,  310,  309,  318,
     1260      319,  315,  303,  323,  321,  322,  324,  314,  366,  326,
     1261      311,  313,  312,  321,  324,  325,  323,  316,  319,  317,
     1262
     1263      325,  318,  398,  322,  326,  327,  327,  345,  398,  345,
     1264      327,  366,  327,  335,  335,  335,  335,  336,  336,  336,
     1265      336,  346,  399,  346,  352,  352,  352,  352,  352,  352,
     1266      353,  353,  353,  353,  353,  353,  355,  355,  355,  355,
     1267      355,  355,  382,  399,  383,  335,  368,  354,  353,  354,
     1268      381,  353,  354,  354,  354,  354,  354,  354,  382,  383,
     1269      386,  381,  353,  596,  368,  364,  596,  802,  355,  353,
     1270      364,  386,  368,  408,  353,  356,  356,  356,  356,  356,
     1271      356,  357,  357,  357,  357,  357,  357,  358,  358,  358,
     1272      358,  358,  358,  363,  408,  384,  364,  361,  799,  357,
     1273
     1274      385,  387,  357,  362,  390,  358,  361,  356,  358,  385,
     1275      387,  388,  362,  357,  384,  389,  363,  390,  363,  358,
     1276      357,  363,  361,  395,  389,  357,  358,  363,  362,  391,
     1277      396,  358,  367,  388,  392,  396,  798,  797,  796,  363,
     1278      394,  395,  393,  363,  365,  391,  365,  363,  397,  365,
     1279      365,  365,  365,  365,  365,  367,  392,  367,  393,  393,
     1280      367,  400,  394,  397,  401,  402,  367,  406,  409,  411,
     1281      397,  404,  400,  416,  412,  410,  417,  419,  367,  406,
     1282      402,  365,  367,  401,  410,  404,  367,  413,  410,  412,
     1283      409,  418,  411,  416,  420,  421,  413,  424,  417,  419,
     1284
     1285      426,  422,  428,  427,  430,  429,  418,  431,  433,  420,
     1286      422,  432,  434,  435,  424,  421,  431,  436,  441,  434,
     1287      435,  433,  428,  426,  427,  429,  430,  437,  439,  432,
     1288      438,  443,  442,  499,  504,  437,  795,  443,  470,  439,
     1289      441,  442,  436,  504,  499,  437,  469,  438,  452,  452,
     1290      452,  452,  463,  463,  463,  463,  463,  463,  464,  464,
     1291      464,  464,  464,  464,  470,  490,  493,  491,  466,  468,
     1292      463,  469,  494,  463,  495,  506,  464,  466,  468,  464,
     1293      491,  493,  490,  794,  463,  497,  506,  495,  496,  524,
     1294      464,  463,  494,  466,  468,  498,  463,  464,  497,  507,
     1295
     1296      498,  524,  464,  465,  465,  465,  465,  465,  465,  467,
     1297      496,  467,  507,  501,  467,  467,  467,  467,  467,  467,
     1298      472,  472,  472,  472,  472,  472,  473,  473,  473,  473,
     1299      473,  473,  474,  501,  474,  465,  502,  474,  474,  474,
     1300      474,  474,  474,  503,  473,  505,  467,  473,  509,  510,
     1301      505,  511,  512,  516,  513,  502,  518,  509,  473,  513,
     1302      519,  512,  516,  520,  503,  473,  521,  523,  511,  528,
     1303      473,  510,  525,  527,  528,  521,  530,  519,  520,  532,
     1304      531,  533,  518,  534,  523,  530,  537,  525,  527,  531,
     1305      536,  539,  538,  540,  533,  542,  537,  543,  536,  538,
     1306
     1307      534,  532,  545,  546,  542,  540,  594,  543,  588,  589,
     1308      593,  793,  792,  539,  594,  588,  546,  593,  589,  545,
     1309      565,  565,  565,  565,  565,  565,  566,  566,  566,  566,
     1310      566,  566,  567,  567,  567,  567,  567,  567,  568,  599,
     1311      568,  601,  592,  568,  568,  568,  568,  568,  568,  590,
     1312      567,  591,  565,  567,  571,  571,  571,  571,  571,  571,
     1313      595,  599,  590,  601,  567,  592,  790,  604,  591,  587,
     1314      598,  567,  571,  600,  587,  571,  567,  595,  573,  573,
     1315      573,  573,  573,  573,  597,  598,  571,  587,  602,  603,
     1316      600,  602,  605,  571,  604,  606,  573,  597,  571,  573,
     1317
     1318      607,  608,  609,  611,  612,  617,  603,  605,  613,  607,
     1319      573,  616,  619,  623,  622,  606,  630,  573,  633,  608,
     1320      623,  789,  573,  622,  609,  611,  630,  612,  632,  619,
     1321      613,  616,  617,  633,  662,  665,  671,  632,  651,  651,
     1322      651,  651,  651,  651,  652,  652,  652,  652,  652,  652,
     1323      663,  666,  667,  668,  671,  662,  651,  667,  666,  651,
     1324      663,  665,  652,  669,  670,  652,  669,  670,  673,  674,
     1325      651,  677,  675,  668,  673,  675,  652,  651,  674,  676,
     1326      680,  678,  651,  652,  678,  689,  679,  684,  652,  653,
     1327      653,  653,  653,  653,  653,  679,  682,  684,  681,  677,
     1328
     1329      676,  681,  683,  685,  687,  680,  692,  693,  689,  682,
     1330      683,  695,  717,  687,  696,  716,  685,  714,  718,  695,
     1331      716,  653,  715,  696,  719,  720,  692,  717,  718,  693,
     1332      703,  703,  703,  703,  703,  703,  722,  714,  721,  715,
     1333      723,  721,  725,  727,  731,  725,  727,  719,  728,  722,
     1334      729,  720,  750,  729,  730,  728,  752,  730,  753,  731,
     1335      754,  755,  703,  754,  758,  756,  759,  723,  756,  760,
     1336      762,  763,  760,  780,  763,  764,  753,  752,  764,  750,
     1337      765,  781,  758,  755,  782,  785,  783,  782,  781,  765,
     1338      784,  759,  762,  784,  780,  783,  788,  791,  800,  788,
     1339
     1340      791,  801,  785,  810,  811,  803,  801,  800,  803,  805,
     1341      806,  807,  805,  806,  807,  812,  816,  813,  812,  811,
     1342      813,  787,  786,  810,  779,  778,  777,  776,  775,  774,
     1343      773,  772,  771,  770,  769,  768,  767,  766,  816,  822,
     1344      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
     1345      822,  822,  822,  822,  822,  822,  823,  823,  823,  823,
     1346      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
     1347      823,  823,  823,  824,  824,  824,  824,  824,  824,  824,
     1348      824,  824,  824,  824,  824,  824,  824,  824,  824,  824,
     1349      825,  761,  757,  825,  825,  751,  825,  825,  825,  825,
     1350
     1351      825,  825,  825,  825,  826,  749,  748,  747,  746,  745,
     1352      826,  826,  826,  826,  826,  826,  826,  826,  827,  827,
     1353      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
     1354      827,  827,  827,  827,  827,  828,  744,  743,  828,  828,
     1355      742,  828,  828,  828,  828,  828,  828,  828,  828,  829,
     1356      741,  829,  829,  740,  829,  829,  829,  829,  829,  829,
     1357      829,  829,  739,  829,  829,  829,  830,  738,  830,  737,
     1358      830,  736,  830,  735,  734,  733,  830,  830,  732,  830,
     1359      830,  831,  726,  724,  831,  831,  831,  831,  831,  831,
     1360      831,  831,  831,  831,  713,  831,  831,  831,  832,  832,
     1361
     1362      832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
     1363      832,  832,  832,  832,  832,  833,  833,  833,  712,  833,
     1364      711,  710,  709,  708,  833,  833,  834,  707,  706,  834,
     1365      834,  705,  834,  834,  834,  834,  834,  834,  834,  834,
     1366      835,  835,  702,  835,  701,  700,  699,  694,  835,  835,
     1367      836,  836,  691,  836,  690,  688,  686,  672,  836,  836,
     1368      837,  837,  664,  837,  661,  656,  654,  642,  837,  837,
     1369      838,  838,  638,  838,  636,  634,  631,  629,  838,  838,
     1370      839,  839,  628,  839,  627,  626,  625,  624,  839,  839,
     1371      840,  840,  621,  840,  620,  618,  615,  614,  840,  840,
     1372
     1373      841,  841,  610,  841,  585,  581,  579,  577,  841,  841,
     1374      842,  842,  575,  842,  569,  563,  561,  559,  842,  842,
     1375      843,  843,  557,  843,  555,  553,  551,  549,  843,  843,
     1376      844,  844,  844,  844,  844,  844,  844,  844,  844,  844,
     1377      844,  844,  844,  844,  844,  844,  844,  845,  845,  548,
     1378      845,  547,  544,  541,  535,  529,  845,  846,  846,  846,
     1379      526,  846,  846,  846,  846,  522,  846,  846,  847,  847,
     1380      847,  517,  847,  515,  514,  492,  488,  486,  847,  848,
     1381      848,  484,  848,  482,  480,  478,  477,  848,  848,  849,
     1382      849,  476,  849,  475,  461,  459,  458,  849,  849,  850,
     1383
     1384      850,  457,  850,  455,  453,  450,  448,  850,  850,  851,
     1385      851,  446,  851,  444,  440,  425,  423,  415,  851,  852,
     1386      852,  414,  852,  407,  405,  403,  379,  852,  852,  853,
     1387      853,  377,  853,  375,  373,  372,  371,  350,  853,  854,
     1388      348,  347,  854,  854,  343,  854,  854,  854,  854,  854,
     1389      854,  854,  854,  855,  855,  855,  855,  855,  855,  855,
     1390      855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
     1391      856,  856,  856,  856,  856,  856,  856,  856,  856,  856,
     1392      856,  856,  856,  856,  856,  856,  856,  857,  857,  341,
     1393      857,  339,  337,  333,  331,  857,  857,  858,  858,  330,
     1394
     1395      858,  329,  320,  307,  286,  858,  858,  859,  859,  265,
     1396      859,  263,  262,  261,  259,  859,  859,  860,  860,  258,
     1397      860,  253,  249,  248,  244,  241,  860,  861,  861,  240,
     1398      861,  229,  228,  223,  222,  861,  861,  862,  862,  219,
     1399      862,  209,  207,  206,  205,  201,  862,  863,  863,  200,
     1400      863,  198,  193,  174,  145,  863,  863,  864,  864,  144,
     1401      864,  139,  137,  135,  127,  124,  864,  865,  865,  123,
     1402      865,  119,  100,   97,   94,  865,  865,  866,  866,   92,
     1403      866,   85,   71,   69,   65,   44,  866,  867,  867,   39,
     1404      867,   36,   33,   18,   11,  867,  867,  868,  868,    4,
     1405
     1406      868,    3,    0,    0,    0,    0,  868,  869,  869,    0,
     1407      869,    0,    0,    0,    0,  869,  869,  870,  870,    0,
     1408      870,    0,    0,    0,    0,    0,  870,  871,  871,    0,
     1409      871,    0,    0,    0,    0,  871,  871,  872,  872,    0,
     1410      872,    0,    0,    0,    0,    0,  872,  873,  873,    0,
     1411      873,    0,  873,    0,    0,  873,  873,  874,  874,    0,
     1412      874,    0,  874,    0,    0,  874,  874,  875,  875,  875,
     1413        0,  875,  875,  875,  875,    0,  875,  875,  876,  876,
     1414        0,  876,    0,    0,    0,    0,  876,  876,  877,  877,
     1415        0,  877,    0,    0,    0,    0,  877,  877,  878,  878,
     1416
     1417        0,  878,    0,    0,    0,    0,  878,  878,  879,  879,
     1418        0,  879,    0,    0,    0,    0,    0,  879,  880,  880,
     1419        0,  880,    0,    0,    0,    0,  880,  880,  881,  881,
     1420        0,  881,    0,    0,    0,    0,    0,  881,  882,  882,
     1421        0,  882,    0,    0,    0,    0,  882,  882,  883,  883,
     1422        0,  883,    0,    0,    0,    0,    0,  883,  884,  884,
     1423        0,  884,    0,    0,    0,    0,  884,  884,  885,  885,
     1424        0,  885,    0,    0,    0,    0,    0,  885,  886,    0,
     1425        0,  886,  886,    0,  886,  886,  886,  886,  886,  886,
     1426      886,  886,  887,  887,  887,  887,  887,  887,  887,  887,
     1427
     1428      887,  887,  887,  887,  887,  887,  887,  887,  887,  888,
     1429      888,    0,  888,    0,    0,    0,    0,  888,  888,  889,
     1430      889,    0,  889,    0,    0,    0,    0,    0,  889,  890,
     1431      890,    0,  890,    0,    0,    0,    0,  890,  890,  891,
     1432      891,    0,  891,    0,    0,    0,    0,    0,  891,  892,
     1433      892,    0,  892,    0,    0,    0,    0,  892,  892,  893,
     1434      893,    0,  893,    0,    0,    0,    0,    0,  893,  894,
     1435      894,    0,  894,    0,    0,    0,    0,  894,  894,  895,
     1436      895,    0,  895,    0,    0,    0,    0,    0,  895,  896,
     1437      896,    0,  896,    0,    0,    0,    0,  896,  896,  897,
     1438
     1439      897,    0,  897,    0,    0,    0,    0,    0,  897,  898,
     1440      898,    0,  898,    0,    0,    0,    0,  898,  898,  899,
     1441      899,    0,  899,    0,    0,    0,    0,    0,  899,  900,
     1442      900,    0,  900,    0,    0,    0,    0,  900,  900,  901,
     1443      901,    0,  901,    0,    0,    0,    0,  901,  901,  902,
     1444      902,    0,  902,    0,    0,    0,    0,    0,  902,  903,
     1445      903,    0,  903,    0,    0,    0,    0,  903,  903,  904,
     1446      904,    0,  904,    0,    0,    0,    0,    0,  904,  905,
     1447      905,    0,  905,    0,  905,    0,    0,  905,  905,  906,
     1448      906,    0,  906,    0,    0,    0,    0,  906,  906,  907,
     1449
     1450      907,    0,  907,    0,    0,    0,    0,  907,  907,  908,
     1451      908,    0,  908,    0,    0,    0,    0,    0,  908,  909,
     1452      909,    0,  909,    0,    0,    0,    0,  909,  909,  910,
     1453      910,    0,  910,    0,    0,    0,    0,    0,  910,  911,
     1454      911,    0,  911,    0,    0,    0,    0,  911,  911,  912,
     1455      912,    0,  912,    0,    0,    0,    0,    0,  912,  913,
     1456      913,    0,  913,    0,    0,    0,    0,  913,  913,  914,
     1457      914,    0,  914,    0,    0,    0,    0,    0,  914,  915,
     1458      915,    0,  915,    0,    0,    0,    0,  915,  915,  916,
     1459      916,    0,  916,    0,    0,    0,    0,    0,  916,  917,
     1460
     1461      917,    0,  917,    0,    0,    0,    0,  917,  917,  918,
     1462      918,    0,  918,    0,    0,    0,    0,    0,  918,  919,
     1463        0,    0,  919,  919,    0,  919,  919,  919,  919,  919,
     1464      919,  919,  919,  920,  920,  920,  920,  920,  920,  920,
     1465      920,  920,  920,  920,  920,  920,  920,  920,  920,  920,
     1466      921,  921,    0,  921,    0,    0,    0,    0,  921,  921,
     1467      922,  922,    0,  922,    0,    0,    0,    0,    0,  922,
     1468      923,  923,    0,  923,    0,    0,    0,    0,  923,  923,
     1469      924,  924,    0,  924,    0,    0,    0,    0,    0,  924,
     1470      925,  925,    0,  925,    0,    0,    0,    0,  925,  925,
     1471
     1472      926,  926,    0,  926,    0,    0,    0,    0,    0,  926,
     1473      927,  927,    0,  927,    0,    0,    0,    0,  927,  927,
     1474      928,  928,    0,  928,    0,    0,    0,    0,    0,  928,
     1475      929,  929,    0,  929,    0,    0,    0,    0,  929,  929,
     1476      930,  930,    0,  930,    0,    0,    0,    0,    0,  930,
     1477      931,  931,    0,  931,    0,    0,    0,    0,  931,  931,
     1478      932,  932,    0,  932,    0,    0,    0,    0,    0,  932,
     1479      933,  933,    0,  933,    0,    0,    0,    0,  933,  933,
     1480      934,  934,    0,  934,    0,    0,    0,    0,    0,  934,
     1481      935,  935,    0,  935,    0,    0,    0,    0,  935,  935,
     1482
     1483      936,  936,    0,  936,    0,    0,    0,    0,    0,  936,
     1484      937,  937,    0,  937,    0,    0,    0,    0,  937,  937,
     1485      938,  938,    0,  938,    0,    0,    0,    0,  938,  938,
     1486      939,  939,    0,  939,    0,    0,    0,    0,    0,  939,
     1487      940,  940,    0,  940,    0,    0,    0,    0,  940,  940,
     1488      941,  941,    0,  941,    0,    0,    0,    0,    0,  941,
     1489      942,  942,    0,  942,    0,    0,    0,    0,  942,  942,
     1490      943,  943,    0,  943,    0,    0,    0,    0,    0,  943,
     1491      944,  944,    0,  944,    0,    0,    0,    0,  944,  944,
     1492      945,  945,    0,  945,    0,    0,    0,    0,    0,  945,
     1493
     1494      946,  946,    0,  946,    0,    0,    0,    0,    0,  946,
     1495      947,  947,    0,  947,    0,    0,    0,    0,    0,  947,
     1496      948,    0,    0,  948,  948,    0,  948,  948,  948,  948,
     1497      948,  948,  948,  948,  949,  949,    0,  949,    0,    0,
     1498        0,    0,    0,  949,  950,  950,  950,  950,  950,  950,
     1499      950,  950,  950,  950,  950,  950,  950,  950,  950,  950,
     1500      950,  951,  951,    0,  951,    0,    0,    0,    0,  951,
     1501      951,  952,  952,    0,  952,    0,    0,    0,    0,    0,
     1502      952,  953,  953,    0,  953,    0,    0,    0,    0,  953,
     1503      953,  954,  954,    0,  954,    0,    0,    0,    0,    0,
     1504
     1505      954,  955,  955,    0,  955,    0,    0,    0,    0,    0,
     1506      955,  956,  956,    0,  956,    0,    0,    0,    0,    0,
     1507      956,  957,    0,    0,  957,  957,    0,  957,  957,  957,
     1508      957,  957,  957,  957,  957,  958,  958,    0,  958,    0,
     1509        0,    0,    0,    0,  958,  959,  959,    0,  959,    0,
     1510        0,    0,    0,    0,  959,  960,  960,    0,  960,    0,
     1511        0,    0,    0,    0,  960,  961,  961,    0,  961,    0,
     1512        0,    0,    0,    0,  961,  962,  962,    0,  962,    0,
     1513        0,    0,    0,    0,  962,  963,  963,    0,  963,    0,
     1514        0,    0,    0,    0,  963,  964,  964,    0,  964,    0,
     1515
     1516        0,    0,    0,    0,  964,  965,  965,    0,  965,    0,
     1517        0,    0,    0,  965,  965,  966,  966,    0,  966,    0,
     1518        0,    0,    0,    0,  966,  967,  967,    0,  967,    0,
     1519        0,    0,    0,  967,  967,  968,  968,    0,  968,    0,
     1520        0,    0,    0,    0,  968,  969,  969,    0,  969,    0,
     1521        0,    0,    0,    0,  969,  970,  970,    0,  970,    0,
     1522        0,    0,    0,    0,  970,  971,  971,    0,  971,    0,
     1523        0,    0,    0,    0,  971,  972,  972,    0,  972,    0,
     1524        0,    0,    0,  972,  972,  973,    0,    0,  973,  973,
     1525        0,  973,  973,  973,  973,  973,  973,  973,  973,  974,
     1526
     1527      974,    0,  974,    0,    0,    0,    0,    0,  974,  975,
     1528      975,    0,  975,    0,    0,    0,    0,    0,  975,  976,
     1529      976,    0,  976,    0,    0,    0,    0,  976,  976,  977,
     1530      977,    0,  977,    0,    0,    0,    0,  977,  977,  978,
     1531      978,    0,  978,    0,    0,    0,    0,  978,  978,  979,
     1532      979,    0,  979,    0,    0,    0,    0,    0,  979,  980,
     1533      980,    0,  980,    0,    0,    0,    0,  980,  980,  981,
     1534      981,    0,  981,    0,    0,    0,    0,  981,  981,  982,
     1535      982,    0,  982,    0,    0,    0,    0,  982,  982,  983,
     1536      983,    0,  983,    0,    0,    0,    0,  983,  983,  984,
     1537
     1538      984,    0,  984,    0,    0,    0,    0,  984,  984,  985,
     1539      985,    0,  985,    0,    0,    0,    0,  985,  985,  986,
     1540      986,    0,  986,    0,    0,    0,    0,  986,  986,  987,
     1541      987,    0,  987,    0,    0,    0,    0,  987,  987,  988,
     1542      988,    0,  988,    0,    0,    0,    0,  988,  988,  989,
     1543      989,    0,  989,    0,    0,    0,    0,  989,  989,  990,
     1544      990,    0,  990,    0,    0,    0,    0,  990,  990,  991,
     1545      991,    0,  991,    0,    0,    0,    0,  991,  991,  992,
     1546      992,    0,  992,    0,    0,    0,    0,  992,  992,  993,
     1547      993,    0,  993,    0,    0,    0,    0,  993,  993,  994,
     1548
     1549      994,    0,  994,    0,    0,    0,    0,  994,  994,  995,
     1550      995,    0,  995,    0,    0,    0,    0,  995,  995,  821,
    13431551      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
    1344       821,  821,  821,  821,  822,  822,  822,  822,  822,  822,
    1345       822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
    1346       822,  823,  823,  823,  823,  823,  823,  823,  823,  823,
    1347       823,  823,  823,  823,  823,  823,  823,  823,  824,  765,
    1348       760,  824,  824,  756,  824,  824,  824,  824,  824,  824,
    1349 
    1350       824,  824,  825,  750,  748,  747,  746,  745,  825,  825,
    1351       825,  825,  825,  825,  825,  825,  826,  826,  826,  826,
    1352       826,  826,  826,  826,  826,  826,  826,  826,  826,  826,
    1353       826,  826,  826,  827,  744,  743,  827,  827,  742,  827,
    1354       827,  827,  827,  827,  827,  827,  827,  828,  741,  828,
    1355       828,  740,  828,  828,  828,  828,  828,  828,  828,  828,
    1356       739,  828,  828,  828,  829,  738,  829,  737,  829,  736,
    1357       829,  735,  734,  733,  829,  829,  732,  829,  829,  830,
    1358       731,  725,  830,  830,  830,  830,  830,  830,  830,  830,
    1359       830,  830,  723,  830,  830,  830,  831,  831,  831,  831,
    1360 
    1361       831,  831,  831,  831,  831,  831,  831,  831,  831,  831,
    1362       831,  831,  831,  832,  832,  832,  712,  832,  711,  710,
    1363       709,  708,  832,  832,  833,  707,  706,  833,  833,  705,
    1364       833,  833,  833,  833,  833,  833,  833,  833,  834,  834,
    1365       704,  834,  701,  700,  699,  698,  834,  834,  835,  835,
    1366       693,  835,  690,  689,  687,  685,  835,  835,  836,  836,
    1367       671,  836,  663,  660,  655,  653,  836,  836,  837,  837,
    1368       641,  837,  637,  635,  633,  630,  837,  837,  838,  838,
    1369       628,  838,  627,  626,  625,  624,  838,  838,  839,  839,
    1370       623,  839,  620,  619,  617,  614,  839,  839,  840,  840,
    1371 
    1372       613,  840,  609,  584,  580,  578,  840,  840,  841,  841,
    1373       576,  841,  574,  568,  562,  560,  841,  841,  842,  842,
    1374       558,  842,  556,  554,  552,  550,  842,  842,  843,  843,
    1375       843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
    1376       843,  843,  843,  843,  843,  844,  844,  548,  844,  547,
    1377       546,  543,  540,  534,  844,  845,  845,  845,  528,  845,
    1378       845,  845,  845,  525,  845,  845,  846,  846,  846,  521,
    1379       846,  516,  514,  513,  491,  487,  846,  847,  847,  485,
    1380       847,  483,  481,  479,  477,  847,  847,  848,  848,  476,
    1381       848,  475,  474,  460,  458,  848,  848,  849,  849,  457,
    1382 
    1383       849,  456,  454,  452,  449,  849,  849,  850,  850,  447,
    1384       850,  445,  443,  439,  424,  422,  850,  851,  851,  414,
    1385       851,  413,  406,  404,  402,  851,  851,  852,  852,  378,
    1386       852,  376,  374,  372,  371,  370,  852,  853,  349,  347,
    1387       853,  853,  346,  853,  853,  853,  853,  853,  853,  853,
    1388       853,  854,  854,  854,  854,  854,  854,  854,  854,  854,
    1389       854,  854,  854,  854,  854,  854,  854,  854,  855,  855,
    1390       855,  855,  855,  855,  855,  855,  855,  855,  855,  855,
    1391       855,  855,  855,  855,  855,  856,  856,  342,  856,  340,
    1392       338,  336,  332,  856,  856,  857,  857,  330,  857,  329,
    1393 
    1394       328,  319,  306,  857,  857,  858,  858,  285,  858,  264,
    1395       262,  261,  260,  858,  858,  859,  859,  258,  859,  257,
    1396       252,  248,  247,  243,  859,  860,  860,  240,  860,  239,
    1397       228,  227,  222,  860,  860,  861,  861,  221,  861,  218,
    1398       208,  206,  205,  204,  861,  862,  862,  200,  862,  199,
    1399       197,  192,  173,  862,  862,  863,  863,  144,  863,  143,
    1400       138,  135,  127,  124,  863,  864,  864,  123,  864,  119,
    1401       100,   97,   94,  864,  864,  865,  865,   92,  865,   85,
    1402        71,   69,   65,   44,  865,  866,  866,   39,  866,   36,
    1403        33,   18,   11,  866,  866,  867,  867,    4,  867,    3,
    1404 
    1405         0,    0,    0,    0,  867,  868,  868,    0,  868,    0,
    1406         0,    0,    0,  868,  868,  869,  869,    0,  869,    0,
    1407         0,    0,    0,    0,  869,  870,  870,    0,  870,    0,
    1408         0,    0,    0,  870,  870,  871,  871,    0,  871,    0,
    1409         0,    0,    0,    0,  871,  872,  872,    0,  872,    0,
    1410       872,    0,    0,  872,  872,  873,  873,    0,  873,    0,
    1411       873,    0,    0,  873,  873,  874,  874,  874,    0,  874,
    1412       874,  874,  874,    0,  874,  874,  875,  875,    0,  875,
    1413         0,    0,    0,    0,  875,  875,  876,  876,    0,  876,
    1414         0,    0,    0,    0,  876,  876,  877,  877,    0,  877,
    1415 
    1416         0,    0,    0,    0,  877,  877,  878,  878,    0,  878,
    1417         0,    0,    0,    0,    0,  878,  879,  879,    0,  879,
    1418         0,    0,    0,    0,  879,  879,  880,  880,    0,  880,
    1419         0,    0,    0,    0,    0,  880,  881,  881,    0,  881,
    1420         0,    0,    0,    0,  881,  881,  882,  882,    0,  882,
    1421         0,    0,    0,    0,    0,  882,  883,  883,    0,  883,
    1422         0,    0,    0,    0,  883,  883,  884,  884,    0,  884,
    1423         0,    0,    0,    0,    0,  884,  885,    0,    0,  885,
    1424       885,    0,  885,  885,  885,  885,  885,  885,  885,  885,
    1425       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
    1426 
    1427       886,  886,  886,  886,  886,  886,  886,  887,  887,    0,
    1428       887,    0,    0,    0,    0,  887,  887,  888,  888,    0,
    1429       888,    0,    0,    0,    0,    0,  888,  889,  889,    0,
    1430       889,    0,    0,    0,    0,  889,  889,  890,  890,    0,
    1431       890,    0,    0,    0,    0,    0,  890,  891,  891,    0,
    1432       891,    0,    0,    0,    0,  891,  891,  892,  892,    0,
    1433       892,    0,    0,    0,    0,    0,  892,  893,  893,    0,
    1434       893,    0,    0,    0,    0,  893,  893,  894,  894,    0,
    1435       894,    0,    0,    0,    0,    0,  894,  895,  895,    0,
    1436       895,    0,    0,    0,    0,  895,  895,  896,  896,    0,
    1437 
    1438       896,    0,    0,    0,    0,    0,  896,  897,  897,    0,
    1439       897,    0,    0,    0,    0,  897,  897,  898,  898,    0,
    1440       898,    0,    0,    0,    0,    0,  898,  899,  899,    0,
    1441       899,    0,    0,    0,    0,  899,  899,  900,  900,    0,
    1442       900,    0,    0,    0,    0,  900,  900,  901,  901,    0,
    1443       901,    0,    0,    0,    0,    0,  901,  902,  902,    0,
    1444       902,    0,    0,    0,    0,  902,  902,  903,  903,    0,
    1445       903,    0,    0,    0,    0,    0,  903,  904,  904,    0,
    1446       904,    0,  904,    0,    0,  904,  904,  905,  905,    0,
    1447       905,    0,    0,    0,    0,  905,  905,  906,  906,    0,
    1448 
    1449       906,    0,    0,    0,    0,  906,  906,  907,  907,    0,
    1450       907,    0,    0,    0,    0,    0,  907,  908,  908,    0,
    1451       908,    0,    0,    0,    0,  908,  908,  909,  909,    0,
    1452       909,    0,    0,    0,    0,    0,  909,  910,  910,    0,
    1453       910,    0,    0,    0,    0,  910,  910,  911,  911,    0,
    1454       911,    0,    0,    0,    0,    0,  911,  912,  912,    0,
    1455       912,    0,    0,    0,    0,  912,  912,  913,  913,    0,
    1456       913,    0,    0,    0,    0,    0,  913,  914,  914,    0,
    1457       914,    0,    0,    0,    0,  914,  914,  915,  915,    0,
    1458       915,    0,    0,    0,    0,    0,  915,  916,  916,    0,
    1459 
    1460       916,    0,    0,    0,    0,  916,  916,  917,  917,    0,
    1461       917,    0,    0,    0,    0,    0,  917,  918,    0,    0,
    1462       918,  918,    0,  918,  918,  918,  918,  918,  918,  918,
    1463       918,  919,  919,  919,  919,  919,  919,  919,  919,  919,
    1464       919,  919,  919,  919,  919,  919,  919,  919,  920,  920,
    1465         0,  920,    0,    0,    0,    0,  920,  920,  921,  921,
    1466         0,  921,    0,    0,    0,    0,    0,  921,  922,  922,
    1467         0,  922,    0,    0,    0,    0,  922,  922,  923,  923,
    1468         0,  923,    0,    0,    0,    0,    0,  923,  924,  924,
    1469         0,  924,    0,    0,    0,    0,  924,  924,  925,  925,
    1470 
    1471         0,  925,    0,    0,    0,    0,    0,  925,  926,  926,
    1472         0,  926,    0,    0,    0,    0,  926,  926,  927,  927,
    1473         0,  927,    0,    0,    0,    0,    0,  927,  928,  928,
    1474         0,  928,    0,    0,    0,    0,  928,  928,  929,  929,
    1475         0,  929,    0,    0,    0,    0,    0,  929,  930,  930,
    1476         0,  930,    0,    0,    0,    0,  930,  930,  931,  931,
    1477         0,  931,    0,    0,    0,    0,    0,  931,  932,  932,
    1478         0,  932,    0,    0,    0,    0,  932,  932,  933,  933,
    1479         0,  933,    0,    0,    0,    0,    0,  933,  934,  934,
    1480         0,  934,    0,    0,    0,    0,  934,  934,  935,  935,
    1481 
    1482         0,  935,    0,    0,    0,    0,    0,  935,  936,  936,
    1483         0,  936,    0,    0,    0,    0,  936,  936,  937,  937,
    1484         0,  937,    0,    0,    0,    0,  937,  937,  938,  938,
    1485         0,  938,    0,    0,    0,    0,    0,  938,  939,  939,
    1486         0,  939,    0,    0,    0,    0,  939,  939,  940,  940,
    1487         0,  940,    0,    0,    0,    0,    0,  940,  941,  941,
    1488         0,  941,    0,    0,    0,    0,  941,  941,  942,  942,
    1489         0,  942,    0,    0,    0,    0,    0,  942,  943,  943,
    1490         0,  943,    0,    0,    0,    0,  943,  943,  944,  944,
    1491         0,  944,    0,    0,    0,    0,    0,  944,  945,  945,
    1492 
    1493         0,  945,    0,    0,    0,    0,    0,  945,  946,  946,
    1494         0,  946,    0,    0,    0,    0,    0,  946,  947,    0,
    1495         0,  947,  947,    0,  947,  947,  947,  947,  947,  947,
    1496       947,  947,  948,  948,    0,  948,    0,    0,    0,    0,
    1497         0,  948,  949,  949,  949,  949,  949,  949,  949,  949,
    1498       949,  949,  949,  949,  949,  949,  949,  949,  949,  950,
    1499       950,    0,  950,    0,    0,    0,    0,  950,  950,  951,
    1500       951,    0,  951,    0,    0,    0,    0,    0,  951,  952,
    1501       952,    0,  952,    0,    0,    0,    0,  952,  952,  953,
    1502       953,    0,  953,    0,    0,    0,    0,    0,  953,  954,
    1503 
    1504       954,    0,  954,    0,    0,    0,    0,    0,  954,  955,
    1505       955,    0,  955,    0,    0,    0,    0,    0,  955,  956,
    1506         0,    0,  956,  956,    0,  956,  956,  956,  956,  956,
    1507       956,  956,  956,  957,  957,    0,  957,    0,    0,    0,
    1508         0,    0,  957,  958,  958,    0,  958,    0,    0,    0,
    1509         0,    0,  958,  959,  959,    0,  959,    0,    0,    0,
    1510         0,    0,  959,  960,  960,    0,  960,    0,    0,    0,
    1511         0,    0,  960,  961,  961,    0,  961,    0,    0,    0,
    1512         0,    0,  961,  962,  962,    0,  962,    0,    0,    0,
    1513         0,    0,  962,  963,  963,    0,  963,    0,    0,    0,
    1514 
    1515         0,    0,  963,  964,  964,    0,  964,    0,    0,    0,
    1516         0,  964,  964,  965,  965,    0,  965,    0,    0,    0,
    1517         0,    0,  965,  966,  966,    0,  966,    0,    0,    0,
    1518         0,  966,  966,  967,  967,    0,  967,    0,    0,    0,
    1519         0,    0,  967,  968,  968,    0,  968,    0,    0,    0,
    1520         0,    0,  968,  969,  969,    0,  969,    0,    0,    0,
    1521         0,    0,  969,  970,  970,    0,  970,    0,    0,    0,
    1522         0,    0,  970,  971,  971,    0,  971,    0,    0,    0,
    1523         0,  971,  971,  972,    0,    0,  972,  972,    0,  972,
    1524       972,  972,  972,  972,  972,  972,  972,  973,  973,    0,
    1525 
    1526       973,    0,    0,    0,    0,    0,  973,  974,  974,    0,
    1527       974,    0,    0,    0,    0,    0,  974,  975,  975,    0,
    1528       975,    0,    0,    0,    0,  975,  975,  976,  976,    0,
    1529       976,    0,    0,    0,    0,  976,  976,  977,  977,    0,
    1530       977,    0,    0,    0,    0,  977,  977,  978,  978,    0,
    1531       978,    0,    0,    0,    0,    0,  978,  979,  979,    0,
    1532       979,    0,    0,    0,    0,  979,  979,  980,  980,    0,
    1533       980,    0,    0,    0,    0,  980,  980,  981,  981,    0,
    1534       981,    0,    0,    0,    0,  981,  981,  982,  982,    0,
    1535       982,    0,    0,    0,    0,  982,  982,  983,  983,    0,
    1536 
    1537       983,    0,    0,    0,    0,  983,  983,  984,  984,    0,
    1538       984,    0,    0,    0,    0,  984,  984,  985,  985,    0,
    1539       985,    0,    0,    0,    0,  985,  985,  986,  986,    0,
    1540       986,    0,    0,    0,    0,  986,  986,  987,  987,    0,
    1541       987,    0,    0,    0,    0,  987,  987,  988,  988,    0,
    1542       988,    0,    0,    0,    0,  988,  988,  989,  989,    0,
    1543       989,    0,    0,    0,    0,  989,  989,  990,  990,    0,
    1544       990,    0,    0,    0,    0,  990,  990,  991,  991,    0,
    1545       991,    0,    0,    0,    0,  991,  991,  992,  992,    0,
    1546       992,    0,    0,    0,    0,  992,  992,  993,  993,    0,
    1547 
    1548       993,    0,    0,    0,    0,  993,  993,  994,  994,    0,
    1549       994,    0,    0,    0,    0,  994,  994,  820,  820,  820,
    1550       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1551       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1552       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1553       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1554       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1555       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1556       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1557       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
    1558 
    1559       820,  820
     1552      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1553      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1554      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1555      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1556      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1557      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1558      821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
     1559
     1560      821,  821,  821,  821
    15601561    } ;
    15611562
     
    15991600 * Created On       : Sat Sep 22 08:58:10 2001
    16001601 * Last Modified By : Peter A. Buhr
    1601  * Last Modified On : Sun May 31 23:41:32 2015
    1602  * Update Count     : 334
     1602 * Last Modified On : Wed Jun  3 22:24:07 2015
     1603 * Update Count     : 336
    16031604 */
    16041605#line 19 "lex.ll"
     
    16641665
    16651666
    1666 #line 1667 "Parser/lex.cc"
     1667#line 1668 "Parser/lex.cc"
    16671668
    16681669#define INITIAL 0
     
    18611862
    18621863                                   /* line directives */
    1863 #line 1864 "Parser/lex.cc"
     1864#line 1865 "Parser/lex.cc"
    18641865
    18651866        if ( !(yy_init) )
     
    19151916                                {
    19161917                                yy_current_state = (int) yy_def[yy_current_state];
    1917                                 if ( yy_current_state >= 821 )
     1918                                if ( yy_current_state >= 822 )
    19181919                                        yy_c = yy_meta[(unsigned int) yy_c];
    19191920                                }
     
    19211922                        ++yy_cp;
    19221923                        }
    1923                 while ( yy_base[yy_current_state] != 3518 );
     1924                while ( yy_base[yy_current_state] != 3520 );
    19241925
    19251926yy_find_action:
     
    28832884ECHO;
    28842885        YY_BREAK
    2885 #line 2886 "Parser/lex.cc"
     2886#line 2887 "Parser/lex.cc"
    28862887case YY_STATE_EOF(INITIAL):
    28872888case YY_STATE_EOF(COMMENT):
     
    31803181                        {
    31813182                        yy_current_state = (int) yy_def[yy_current_state];
    3182                         if ( yy_current_state >= 821 )
     3183                        if ( yy_current_state >= 822 )
    31833184                                yy_c = yy_meta[(unsigned int) yy_c];
    31843185                        }
     
    32083209                {
    32093210                yy_current_state = (int) yy_def[yy_current_state];
    3210                 if ( yy_current_state >= 821 )
     3211                if ( yy_current_state >= 822 )
    32113212                        yy_c = yy_meta[(unsigned int) yy_c];
    32123213                }
    32133214        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3214         yy_is_jam = (yy_current_state == 820);
     3215        yy_is_jam = (yy_current_state == 821);
    32153216
    32163217        return yy_is_jam ? 0 : yy_current_state;
  • src/Parser/lex.h

    r30651b0 ra61fea9a  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 12:18:48 2015
    13 // Update Count     : 334
     12// Last Modified On : Wed Jun  3 21:53:39 2015
     13// Update Count     : 335
    1414//
    1515
  • src/Parser/lex.ll

    r30651b0 ra61fea9a  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Sun May 31 23:41:32 2015
    13  * Update Count     : 334
     12 * Last Modified On : Wed Jun  3 22:24:07 2015
     13 * Update Count     : 336
    1414 */
    1515
     
    355355                                /* CFA, operator identifier */
    356356{op_unary}"?"   { IDENTIFIER_RETURN(); }                                // unary
    357 "?"({op_unary_pre_post}|"()"|"[?]") { IDENTIFIER_RETURN(); }
     357"?"({op_unary_pre_post}|"()"|"[?]"|"{}") { IDENTIFIER_RETURN(); }
    358358"?"{op_binary_over}"?"  { IDENTIFIER_RETURN(); }                // binary
    359359        /*
  • src/Parser/module.mk

    r30651b0 ra61fea9a  
    1111## Created On       : Sat May 16 15:29:09 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Mon Jun  1 08:16:25 2015
    14 ## Update Count     : 83
     13## Last Modified On : Thu Jun  4 09:39:00 2015
     14## Update Count     : 86
    1515###############################################################################
    1616
  • src/Parser/parser.cc

    r30651b0 ra61fea9a  
    10081008     705,   710,   711,   715,   720,   721,   725,   727,   733,   734,
    10091009     738,   740,   742,   744,   750,   751,   755,   756,   760,   762,
    1010      764,   769,   771,   777,   779,   783,   787,   791,   795,   799,
    1011      801,   803,   808,   810,   812,   821,   824,   826,   831,   833,
    1012      838,   851,   852,   857,   859,   864,   868,   870,   872,   874,
    1013      878,   880,   884,   885,   889,   893,   894,   900,   902,   906,
    1014      907,   912,   914,   918,   919,   923,   925,   929,   930,   934,
    1015      935,   939,   940,   956,   957,   958,   959,   960,   964,   969,
    1016      976,   986,   991,   996,  1004,  1009,  1014,  1019,  1024,  1032,
    1017     1037,  1050,  1056,  1063,  1065,  1072,  1077,  1082,  1094,  1099,
    1018     1104,  1109,  1114,  1122,  1127,  1135,  1136,  1137,  1138,  1144,
    1019     1149,  1157,  1158,  1159,  1160,  1164,  1165,  1166,  1167,  1172,
    1020     1173,  1183,  1184,  1189,  1190,  1195,  1197,  1199,  1201,  1203,
    1021     1206,  1205,  1217,  1218,  1220,  1230,  1231,  1236,  1240,  1242,
    1022     1244,  1246,  1248,  1251,  1256,  1258,  1260,  1262,  1264,  1266,
    1023     1268,  1270,  1272,  1274,  1276,  1278,  1284,  1285,  1287,  1289,
    1024     1291,  1296,  1297,  1303,  1304,  1306,  1308,  1313,  1315,  1317,
    1025     1319,  1324,  1325,  1327,  1329,  1334,  1335,  1337,  1342,  1343,
    1026     1345,  1347,  1352,  1354,  1356,  1361,  1362,  1366,  1368,  1370,
    1027     1372,  1374,  1376,  1378,  1380,  1383,  1388,  1390,  1395,  1397,
    1028     1402,  1403,  1405,  1406,  1411,  1412,  1414,  1416,  1421,  1423,
    1029     1429,  1430,  1432,  1435,  1438,  1443,  1444,  1449,  1454,  1458,
    1030     1460,  1462,  1467,  1469,  1475,  1476,  1484,  1485,  1489,  1490,
    1031     1491,  1493,  1495,  1503,  1504,  1506,  1508,  1513,  1514,  1520,
    1032     1521,  1525,  1526,  1531,  1532,  1533,  1535,  1544,  1545,  1547,
    1033     1550,  1552,  1556,  1557,  1558,  1560,  1562,  1566,  1571,  1579,
    1034     1580,  1589,  1591,  1596,  1597,  1598,  1602,  1603,  1604,  1608,
    1035     1609,  1610,  1614,  1615,  1616,  1621,  1622,  1623,  1624,  1630,
    1036     1631,  1635,  1636,  1640,  1641,  1642,  1643,  1658,  1659,  1664,
    1037     1665,  1669,  1671,  1675,  1677,  1679,  1703,  1704,  1706,  1708,
    1038     1713,  1715,  1717,  1722,  1723,  1729,  1728,  1732,  1736,  1738,
    1039     1740,  1746,  1747,  1752,  1757,  1759,  1764,  1766,  1767,  1769,
    1040     1774,  1776,  1778,  1783,  1785,  1790,  1795,  1803,  1809,  1808,
    1041     1822,  1823,  1828,  1829,  1833,  1838,  1843,  1851,  1856,  1867,
    1042     1868,  1879,  1880,  1886,  1887,  1891,  1892,  1893,  1896,  1895,
    1043     1906,  1911,  1918,  1924,  1933,  1939,  1945,  1951,  1957,  1965,
    1044     1971,  1979,  1985,  1994,  1995,  1996,  2000,  2004,  2006,  2009,
    1045     2011,  2015,  2016,  2020,  2024,  2025,  2028,  2030,  2031,  2035,
    1046     2036,  2037,  2038,  2073,  2074,  2075,  2076,  2080,  2085,  2090,
    1047     2092,  2094,  2099,  2101,  2103,  2105,  2110,  2112,  2122,  2123,
    1048     2124,  2128,  2130,  2132,  2137,  2139,  2141,  2146,  2148,  2150,
    1049     2159,  2160,  2161,  2165,  2167,  2169,  2174,  2176,  2178,  2183,
    1050     2185,  2187,  2202,  2203,  2204,  2205,  2209,  2214,  2219,  2221,
    1051     2223,  2228,  2230,  2232,  2234,  2239,  2241,  2243,  2253,  2254,
    1052     2255,  2256,  2260,  2262,  2264,  2269,  2271,  2273,  2275,  2280,
    1053     2282,  2284,  2315,  2316,  2317,  2318,  2322,  2330,  2332,  2334,
    1054     2339,  2341,  2346,  2348,  2362,  2363,  2364,  2368,  2370,  2372,
    1055     2374,  2376,  2381,  2382,  2384,  2386,  2391,  2393,  2395,  2401,
    1056     2403,  2405,  2409,  2411,  2413,  2415,  2429,  2430,  2431,  2435,
    1057     2437,  2439,  2441,  2443,  2448,  2449,  2451,  2453,  2458,  2460,
    1058     2462,  2468,  2469,  2471,  2481,  2484,  2486,  2489,  2491,  2493,
    1059     2506,  2507,  2508,  2512,  2514,  2516,  2518,  2520,  2525,  2526,
    1060     2528,  2530,  2535,  2537,  2545,  2546,  2547,  2552,  2553,  2557,
    1061     2559,  2561,  2563,  2565,  2567,  2574,  2576,  2578,  2580,  2582,
    1062     2584,  2586,  2588,  2590,  2592,  2597,  2599,  2601,  2606,  2632,
    1063     2633,  2635,  2639,  2640,  2644,  2646,  2648,  2650,  2652,  2654,
    1064     2661,  2663,  2665,  2667,  2669,  2671,  2676,  2681,  2683,  2685,
    1065     2705,  2707,  2712,  2713
     1010     764,   769,   771,   776,   778,   782,   786,   790,   794,   798,
     1011     800,   802,   807,   809,   811,   820,   823,   825,   830,   832,
     1012     837,   850,   851,   856,   858,   863,   867,   869,   871,   873,
     1013     877,   879,   883,   884,   888,   892,   893,   899,   901,   905,
     1014     906,   911,   913,   917,   918,   922,   924,   928,   929,   933,
     1015     934,   938,   939,   955,   956,   957,   958,   959,   963,   968,
     1016     975,   985,   990,   995,  1003,  1008,  1013,  1018,  1023,  1031,
     1017    1036,  1049,  1055,  1062,  1064,  1071,  1076,  1081,  1093,  1098,
     1018    1103,  1108,  1113,  1121,  1126,  1134,  1135,  1136,  1137,  1143,
     1019    1148,  1156,  1157,  1158,  1159,  1163,  1164,  1165,  1166,  1171,
     1020    1172,  1182,  1183,  1188,  1189,  1194,  1196,  1198,  1200,  1202,
     1021    1205,  1204,  1216,  1217,  1219,  1229,  1230,  1235,  1239,  1241,
     1022    1243,  1245,  1247,  1250,  1255,  1257,  1259,  1261,  1263,  1265,
     1023    1267,  1269,  1271,  1273,  1275,  1277,  1283,  1284,  1286,  1288,
     1024    1290,  1295,  1296,  1302,  1303,  1305,  1307,  1312,  1314,  1316,
     1025    1318,  1323,  1324,  1326,  1328,  1333,  1334,  1336,  1341,  1342,
     1026    1344,  1346,  1351,  1353,  1355,  1360,  1361,  1365,  1367,  1369,
     1027    1371,  1373,  1375,  1377,  1379,  1382,  1387,  1389,  1394,  1396,
     1028    1401,  1402,  1404,  1405,  1410,  1411,  1413,  1415,  1420,  1422,
     1029    1428,  1429,  1431,  1434,  1437,  1442,  1443,  1448,  1453,  1457,
     1030    1459,  1461,  1466,  1468,  1474,  1475,  1483,  1484,  1488,  1489,
     1031    1490,  1492,  1494,  1502,  1503,  1505,  1507,  1512,  1513,  1519,
     1032    1520,  1524,  1525,  1530,  1531,  1532,  1534,  1543,  1544,  1546,
     1033    1549,  1551,  1555,  1556,  1557,  1559,  1561,  1565,  1570,  1578,
     1034    1579,  1588,  1590,  1595,  1596,  1597,  1601,  1602,  1603,  1607,
     1035    1608,  1609,  1613,  1614,  1615,  1620,  1621,  1622,  1623,  1629,
     1036    1630,  1634,  1635,  1639,  1640,  1641,  1642,  1657,  1658,  1663,
     1037    1664,  1668,  1670,  1674,  1676,  1678,  1702,  1703,  1705,  1707,
     1038    1712,  1714,  1716,  1721,  1722,  1728,  1727,  1731,  1735,  1737,
     1039    1739,  1745,  1746,  1751,  1756,  1758,  1763,  1765,  1766,  1768,
     1040    1773,  1775,  1777,  1782,  1784,  1789,  1794,  1802,  1808,  1807,
     1041    1821,  1822,  1827,  1828,  1832,  1837,  1842,  1850,  1855,  1866,
     1042    1867,  1878,  1879,  1885,  1886,  1890,  1891,  1892,  1895,  1894,
     1043    1905,  1910,  1917,  1923,  1932,  1938,  1944,  1950,  1956,  1964,
     1044    1970,  1978,  1984,  1993,  1994,  1995,  1999,  2003,  2005,  2008,
     1045    2010,  2014,  2015,  2019,  2023,  2024,  2027,  2029,  2030,  2034,
     1046    2035,  2036,  2037,  2072,  2073,  2074,  2075,  2079,  2084,  2089,
     1047    2091,  2093,  2098,  2100,  2102,  2104,  2109,  2111,  2121,  2122,
     1048    2123,  2127,  2129,  2131,  2136,  2138,  2140,  2145,  2147,  2149,
     1049    2158,  2159,  2160,  2164,  2166,  2168,  2173,  2175,  2177,  2182,
     1050    2184,  2186,  2201,  2202,  2203,  2204,  2208,  2213,  2218,  2220,
     1051    2222,  2227,  2229,  2231,  2233,  2238,  2240,  2242,  2252,  2253,
     1052    2254,  2255,  2259,  2261,  2263,  2268,  2270,  2272,  2274,  2279,
     1053    2281,  2283,  2314,  2315,  2316,  2317,  2321,  2329,  2331,  2333,
     1054    2338,  2340,  2345,  2347,  2361,  2362,  2363,  2367,  2369,  2371,
     1055    2373,  2375,  2380,  2381,  2383,  2385,  2390,  2392,  2394,  2400,
     1056    2402,  2404,  2408,  2410,  2412,  2414,  2428,  2429,  2430,  2434,
     1057    2436,  2438,  2440,  2442,  2447,  2448,  2450,  2452,  2457,  2459,
     1058    2461,  2467,  2468,  2470,  2480,  2483,  2485,  2488,  2490,  2492,
     1059    2505,  2506,  2507,  2511,  2513,  2515,  2517,  2519,  2524,  2525,
     1060    2527,  2529,  2534,  2536,  2544,  2545,  2546,  2551,  2552,  2556,
     1061    2558,  2560,  2562,  2564,  2566,  2573,  2575,  2577,  2579,  2581,
     1062    2583,  2585,  2587,  2589,  2591,  2596,  2598,  2600,  2605,  2631,
     1063    2632,  2634,  2638,  2639,  2643,  2645,  2647,  2649,  2651,  2653,
     1064    2660,  2662,  2664,  2666,  2668,  2670,  2675,  2680,  2682,  2684,
     1065    2704,  2706,  2711,  2712
    10661066};
    10671067#endif
     
    60926092
    60936093/* Line 1806 of yacc.c  */
    6094 #line 773 "parser.yy"
     6094#line 772 "parser.yy"
    60956095    { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); }
    60966096    break;
     
    60996099
    61006100/* Line 1806 of yacc.c  */
    6101 #line 778 "parser.yy"
     6101#line 777 "parser.yy"
    61026102    { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(2) - (3)].tok)); }
    61036103    break;
     
    61066106
    61076107/* Line 1806 of yacc.c  */
    6108 #line 782 "parser.yy"
     6108#line 781 "parser.yy"
    61096109    { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(3) - (4)].en)); }
    61106110    break;
     
    61136113
    61146114/* Line 1806 of yacc.c  */
    6115 #line 786 "parser.yy"
     6115#line 785 "parser.yy"
    61166116    { (yyval.sn) = new StatementNode(StatementNode::Continue, 0, 0); }
    61176117    break;
     
    61206120
    61216121/* Line 1806 of yacc.c  */
    6122 #line 790 "parser.yy"
     6122#line 789 "parser.yy"
    61236123    { (yyval.sn) = new StatementNode(StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }
    61246124    break;
     
    61276127
    61286128/* Line 1806 of yacc.c  */
    6129 #line 794 "parser.yy"
     6129#line 793 "parser.yy"
    61306130    { (yyval.sn) = new StatementNode(StatementNode::Break, 0, 0); }
    61316131    break;
     
    61346134
    61356135/* Line 1806 of yacc.c  */
    6136 #line 798 "parser.yy"
     6136#line 797 "parser.yy"
    61376137    { (yyval.sn) = new StatementNode(StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    61386138    break;
     
    61416141
    61426142/* Line 1806 of yacc.c  */
    6143 #line 800 "parser.yy"
     6143#line 799 "parser.yy"
    61446144    { (yyval.sn) = new StatementNode(StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }
    61456145    break;
     
    61486148
    61496149/* Line 1806 of yacc.c  */
    6150 #line 802 "parser.yy"
     6150#line 801 "parser.yy"
    61516151    { (yyval.sn) = new StatementNode(StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); }
    61526152    break;
     
    61556155
    61566156/* Line 1806 of yacc.c  */
    6157 #line 804 "parser.yy"
     6157#line 803 "parser.yy"
    61586158    { (yyval.sn) = new StatementNode(StatementNode::Throw, 0, 0); }
    61596159    break;
     
    61626162
    61636163/* Line 1806 of yacc.c  */
    6164 #line 809 "parser.yy"
     6164#line 808 "parser.yy"
    61656165    { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
    61666166    break;
     
    61696169
    61706170/* Line 1806 of yacc.c  */
    6171 #line 811 "parser.yy"
     6171#line 810 "parser.yy"
    61726172    { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); }
    61736173    break;
     
    61766176
    61776177/* Line 1806 of yacc.c  */
    6178 #line 813 "parser.yy"
     6178#line 812 "parser.yy"
    61796179    {
    61806180                        (yyvsp[(3) - (4)].pn)->set_link((yyvsp[(4) - (4)].pn));
     
    61866186
    61876187/* Line 1806 of yacc.c  */
    6188 #line 825 "parser.yy"
     6188#line 824 "parser.yy"
    61896189    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    61906190    break;
     
    61936193
    61946194/* Line 1806 of yacc.c  */
    6195 #line 827 "parser.yy"
     6195#line 826 "parser.yy"
    61966196    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    61976197    break;
     
    62006200
    62016201/* Line 1806 of yacc.c  */
    6202 #line 832 "parser.yy"
     6202#line 831 "parser.yy"
    62036203    { (yyval.pn) = StatementNode::newCatchStmt((yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); }
    62046204    break;
     
    62076207
    62086208/* Line 1806 of yacc.c  */
    6209 #line 834 "parser.yy"
     6209#line 833 "parser.yy"
    62106210    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt((yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); }
    62116211    break;
     
    62146214
    62156215/* Line 1806 of yacc.c  */
    6216 #line 839 "parser.yy"
     6216#line 838 "parser.yy"
    62176217    {
    62186218                        (yyval.pn) = new StatementNode(StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn));
     
    62246224
    62256225/* Line 1806 of yacc.c  */
    6226 #line 853 "parser.yy"
     6226#line 852 "parser.yy"
    62276227    {
    62286228                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62346234
    62356235/* Line 1806 of yacc.c  */
    6236 #line 858 "parser.yy"
     6236#line 857 "parser.yy"
    62376237    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    62386238    break;
     
    62416241
    62426242/* Line 1806 of yacc.c  */
    6243 #line 860 "parser.yy"
     6243#line 859 "parser.yy"
    62446244    {
    62456245                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62516251
    62526252/* Line 1806 of yacc.c  */
    6253 #line 869 "parser.yy"
     6253#line 868 "parser.yy"
    62546254    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62556255    break;
     
    62586258
    62596259/* Line 1806 of yacc.c  */
    6260 #line 871 "parser.yy"
     6260#line 870 "parser.yy"
    62616261    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62626262    break;
     
    62656265
    62666266/* Line 1806 of yacc.c  */
    6267 #line 873 "parser.yy"
     6267#line 872 "parser.yy"
    62686268    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62696269    break;
     
    62726272
    62736273/* Line 1806 of yacc.c  */
    6274 #line 875 "parser.yy"
     6274#line 874 "parser.yy"
    62756275    { (yyval.sn) = new StatementNode(StatementNode::Asm, 0, 0); }
    62766276    break;
     
    62796279
    62806280/* Line 1806 of yacc.c  */
    6281 #line 889 "parser.yy"
     6281#line 888 "parser.yy"
    62826282    {}
    62836283    break;
     
    62866286
    62876287/* Line 1806 of yacc.c  */
    6288 #line 893 "parser.yy"
     6288#line 892 "parser.yy"
    62896289    {}
    62906290    break;
     
    62936293
    62946294/* Line 1806 of yacc.c  */
    6295 #line 901 "parser.yy"
     6295#line 900 "parser.yy"
    62966296    { (yyval.decl) = 0; }
    62976297    break;
     
    63006300
    63016301/* Line 1806 of yacc.c  */
    6302 #line 908 "parser.yy"
     6302#line 907 "parser.yy"
    63036303    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63046304    break;
     
    63076307
    63086308/* Line 1806 of yacc.c  */
    6309 #line 913 "parser.yy"
     6309#line 912 "parser.yy"
    63106310    { (yyval.decl) = 0; }
    63116311    break;
     
    63146314
    63156315/* Line 1806 of yacc.c  */
    6316 #line 920 "parser.yy"
     6316#line 919 "parser.yy"
    63176317    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63186318    break;
    63196319
    63206320  case 229:
     6321
     6322/* Line 1806 of yacc.c  */
     6323#line 933 "parser.yy"
     6324    {}
     6325    break;
     6326
     6327  case 230:
    63216328
    63226329/* Line 1806 of yacc.c  */
     
    63256332    break;
    63266333
    6327   case 230:
    6328 
    6329 /* Line 1806 of yacc.c  */
    6330 #line 935 "parser.yy"
    6331     {}
    6332     break;
    6333 
    63346334  case 238:
    63356335
    63366336/* Line 1806 of yacc.c  */
    6337 #line 965 "parser.yy"
     6337#line 964 "parser.yy"
    63386338    {
    63396339                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63456345
    63466346/* Line 1806 of yacc.c  */
    6347 #line 972 "parser.yy"
     6347#line 971 "parser.yy"
    63486348    {
    63496349                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63556355
    63566356/* Line 1806 of yacc.c  */
    6357 #line 977 "parser.yy"
     6357#line 976 "parser.yy"
    63586358    {
    63596359                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63656365
    63666366/* Line 1806 of yacc.c  */
    6367 #line 987 "parser.yy"
     6367#line 986 "parser.yy"
    63686368    {
    63696369                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63756375
    63766376/* Line 1806 of yacc.c  */
    6377 #line 992 "parser.yy"
     6377#line 991 "parser.yy"
    63786378    {
    63796379                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63856385
    63866386/* Line 1806 of yacc.c  */
    6387 #line 997 "parser.yy"
     6387#line 996 "parser.yy"
    63886388    {
    63896389                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63956395
    63966396/* Line 1806 of yacc.c  */
    6397 #line 1005 "parser.yy"
     6397#line 1004 "parser.yy"
    63986398    {
    63996399                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64056405
    64066406/* Line 1806 of yacc.c  */
    6407 #line 1010 "parser.yy"
     6407#line 1009 "parser.yy"
    64086408    {
    64096409                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64156415
    64166416/* Line 1806 of yacc.c  */
    6417 #line 1015 "parser.yy"
     6417#line 1014 "parser.yy"
    64186418    {
    64196419                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64256425
    64266426/* Line 1806 of yacc.c  */
    6427 #line 1020 "parser.yy"
     6427#line 1019 "parser.yy"
    64286428    {
    64296429                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64356435
    64366436/* Line 1806 of yacc.c  */
    6437 #line 1025 "parser.yy"
     6437#line 1024 "parser.yy"
    64386438    {
    64396439                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64456445
    64466446/* Line 1806 of yacc.c  */
    6447 #line 1033 "parser.yy"
     6447#line 1032 "parser.yy"
    64486448    {
    64496449                        typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
     
    64556455
    64566456/* Line 1806 of yacc.c  */
    6457 #line 1038 "parser.yy"
     6457#line 1037 "parser.yy"
    64586458    {
    64596459                        typedefTable.setNextIdentifier( *((yyvsp[(5) - (10)].tok)) );
     
    64656465
    64666466/* Line 1806 of yacc.c  */
    6467 #line 1053 "parser.yy"
     6467#line 1052 "parser.yy"
    64686468    {
    64696469                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64746474
    64756475/* Line 1806 of yacc.c  */
    6476 #line 1057 "parser.yy"
     6476#line 1056 "parser.yy"
    64776477    {
    64786478                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64836483
    64846484/* Line 1806 of yacc.c  */
    6485 #line 1064 "parser.yy"
     6485#line 1063 "parser.yy"
    64866486    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64876487    break;
     
    64906490
    64916491/* Line 1806 of yacc.c  */
    6492 #line 1068 "parser.yy"
     6492#line 1067 "parser.yy"
    64936493    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64946494    break;
     
    64976497
    64986498/* Line 1806 of yacc.c  */
    6499 #line 1073 "parser.yy"
     6499#line 1072 "parser.yy"
    65006500    {
    65016501                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65076507
    65086508/* Line 1806 of yacc.c  */
    6509 #line 1078 "parser.yy"
     6509#line 1077 "parser.yy"
    65106510    {
    65116511                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65176517
    65186518/* Line 1806 of yacc.c  */
    6519 #line 1083 "parser.yy"
     6519#line 1082 "parser.yy"
    65206520    {
    65216521                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD);
     
    65276527
    65286528/* Line 1806 of yacc.c  */
    6529 #line 1095 "parser.yy"
     6529#line 1094 "parser.yy"
    65306530    {
    65316531                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65376537
    65386538/* Line 1806 of yacc.c  */
    6539 #line 1100 "parser.yy"
     6539#line 1099 "parser.yy"
    65406540    {
    65416541                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65476547
    65486548/* Line 1806 of yacc.c  */
    6549 #line 1105 "parser.yy"
     6549#line 1104 "parser.yy"
    65506550    {
    65516551                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65576557
    65586558/* Line 1806 of yacc.c  */
    6559 #line 1110 "parser.yy"
     6559#line 1109 "parser.yy"
    65606560    {
    65616561                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65676567
    65686568/* Line 1806 of yacc.c  */
    6569 #line 1115 "parser.yy"
     6569#line 1114 "parser.yy"
    65706570    {
    65716571                        typedefTable.addToEnclosingScope( TypedefTable::TD);
     
    65776577
    65786578/* Line 1806 of yacc.c  */
    6579 #line 1123 "parser.yy"
     6579#line 1122 "parser.yy"
    65806580    {
    65816581                        typedefTable.addToEnclosingScope(*((yyvsp[(2) - (4)].tok)), TypedefTable::TD);
     
    65876587
    65886588/* Line 1806 of yacc.c  */
    6589 #line 1128 "parser.yy"
     6589#line 1127 "parser.yy"
    65906590    {
    65916591                        typedefTable.addToEnclosingScope(*((yyvsp[(5) - (7)].tok)), TypedefTable::TD);
     
    65976597
    65986598/* Line 1806 of yacc.c  */
    6599 #line 1145 "parser.yy"
     6599#line 1144 "parser.yy"
    66006600    {
    66016601                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66076607
    66086608/* Line 1806 of yacc.c  */
    6609 #line 1150 "parser.yy"
     6609#line 1149 "parser.yy"
    66106610    {
    66116611                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66176617
    66186618/* Line 1806 of yacc.c  */
    6619 #line 1172 "parser.yy"
     6619#line 1171 "parser.yy"
    66206620    { (yyval.decl) = 0; }
    66216621    break;
     
    66246624
    66256625/* Line 1806 of yacc.c  */
    6626 #line 1185 "parser.yy"
     6626#line 1184 "parser.yy"
    66276627    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66286628    break;
     
    66316631
    66326632/* Line 1806 of yacc.c  */
    6633 #line 1191 "parser.yy"
     6633#line 1190 "parser.yy"
    66346634    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }
    66356635    break;
     
    66386638
    66396639/* Line 1806 of yacc.c  */
    6640 #line 1196 "parser.yy"
     6640#line 1195 "parser.yy"
    66416641    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    66426642    break;
     
    66456645
    66466646/* Line 1806 of yacc.c  */
    6647 #line 1198 "parser.yy"
     6647#line 1197 "parser.yy"
    66486648    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66496649    break;
     
    66526652
    66536653/* Line 1806 of yacc.c  */
    6654 #line 1200 "parser.yy"
     6654#line 1199 "parser.yy"
    66556655    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66566656    break;
     
    66596659
    66606660/* Line 1806 of yacc.c  */
    6661 #line 1202 "parser.yy"
     6661#line 1201 "parser.yy"
    66626662    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66636663    break;
     
    66666666
    66676667/* Line 1806 of yacc.c  */
    6668 #line 1204 "parser.yy"
     6668#line 1203 "parser.yy"
    66696669    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66706670    break;
     
    66736673
    66746674/* Line 1806 of yacc.c  */
    6675 #line 1206 "parser.yy"
     6675#line 1205 "parser.yy"
    66766676    {
    66776677                        typedefTable.enterScope();
     
    66826682
    66836683/* Line 1806 of yacc.c  */
    6684 #line 1210 "parser.yy"
     6684#line 1209 "parser.yy"
    66856685    {
    66866686                        typedefTable.leaveScope();
     
    66926692
    66936693/* Line 1806 of yacc.c  */
    6694 #line 1219 "parser.yy"
     6694#line 1218 "parser.yy"
    66956695    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66966696    break;
     
    66996699
    67006700/* Line 1806 of yacc.c  */
    6701 #line 1221 "parser.yy"
     6701#line 1220 "parser.yy"
    67026702    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67036703    break;
     
    67066706
    67076707/* Line 1806 of yacc.c  */
    6708 #line 1232 "parser.yy"
     6708#line 1231 "parser.yy"
    67096709    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67106710    break;
     
    67136713
    67146714/* Line 1806 of yacc.c  */
    6715 #line 1241 "parser.yy"
     6715#line 1240 "parser.yy"
    67166716    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    67176717    break;
     
    67206720
    67216721/* Line 1806 of yacc.c  */
    6722 #line 1243 "parser.yy"
     6722#line 1242 "parser.yy"
    67236723    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    67246724    break;
     
    67276727
    67286728/* Line 1806 of yacc.c  */
    6729 #line 1245 "parser.yy"
     6729#line 1244 "parser.yy"
    67306730    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    67316731    break;
     
    67346734
    67356735/* Line 1806 of yacc.c  */
    6736 #line 1247 "parser.yy"
     6736#line 1246 "parser.yy"
    67376737    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    67386738    break;
     
    67416741
    67426742/* Line 1806 of yacc.c  */
    6743 #line 1250 "parser.yy"
     6743#line 1249 "parser.yy"
    67446744    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    67456745    break;
     
    67486748
    67496749/* Line 1806 of yacc.c  */
    6750 #line 1252 "parser.yy"
     6750#line 1251 "parser.yy"
    67516751    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67526752    break;
     
    67556755
    67566756/* Line 1806 of yacc.c  */
    6757 #line 1257 "parser.yy"
     6757#line 1256 "parser.yy"
    67586758    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67596759    break;
     
    67626762
    67636763/* Line 1806 of yacc.c  */
    6764 #line 1259 "parser.yy"
     6764#line 1258 "parser.yy"
    67656765    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67666766    break;
     
    67696769
    67706770/* Line 1806 of yacc.c  */
    6771 #line 1261 "parser.yy"
     6771#line 1260 "parser.yy"
    67726772    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67736773    break;
     
    67766776
    67776777/* Line 1806 of yacc.c  */
    6778 #line 1263 "parser.yy"
     6778#line 1262 "parser.yy"
    67796779    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67806780    break;
     
    67836783
    67846784/* Line 1806 of yacc.c  */
    6785 #line 1265 "parser.yy"
     6785#line 1264 "parser.yy"
    67866786    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    67876787    break;
     
    67906790
    67916791/* Line 1806 of yacc.c  */
    6792 #line 1267 "parser.yy"
     6792#line 1266 "parser.yy"
    67936793    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    67946794    break;
     
    67976797
    67986798/* Line 1806 of yacc.c  */
    6799 #line 1269 "parser.yy"
     6799#line 1268 "parser.yy"
    68006800    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    68016801    break;
     
    68046804
    68056805/* Line 1806 of yacc.c  */
    6806 #line 1271 "parser.yy"
     6806#line 1270 "parser.yy"
    68076807    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    68086808    break;
     
    68116811
    68126812/* Line 1806 of yacc.c  */
    6813 #line 1273 "parser.yy"
     6813#line 1272 "parser.yy"
    68146814    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68156815    break;
     
    68186818
    68196819/* Line 1806 of yacc.c  */
    6820 #line 1275 "parser.yy"
     6820#line 1274 "parser.yy"
    68216821    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68226822    break;
     
    68256825
    68266826/* Line 1806 of yacc.c  */
    6827 #line 1277 "parser.yy"
     6827#line 1276 "parser.yy"
    68286828    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    68296829    break;
     
    68326832
    68336833/* Line 1806 of yacc.c  */
    6834 #line 1279 "parser.yy"
     6834#line 1278 "parser.yy"
    68356835    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    68366836    break;
     
    68396839
    68406840/* Line 1806 of yacc.c  */
    6841 #line 1286 "parser.yy"
     6841#line 1285 "parser.yy"
    68426842    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68436843    break;
     
    68466846
    68476847/* Line 1806 of yacc.c  */
    6848 #line 1288 "parser.yy"
     6848#line 1287 "parser.yy"
    68496849    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68506850    break;
     
    68536853
    68546854/* Line 1806 of yacc.c  */
    6855 #line 1290 "parser.yy"
     6855#line 1289 "parser.yy"
    68566856    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68576857    break;
     
    68606860
    68616861/* Line 1806 of yacc.c  */
    6862 #line 1292 "parser.yy"
     6862#line 1291 "parser.yy"
    68636863    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68646864    break;
     
    68676867
    68686868/* Line 1806 of yacc.c  */
    6869 #line 1298 "parser.yy"
     6869#line 1297 "parser.yy"
    68706870    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68716871    break;
     
    68746874
    68756875/* Line 1806 of yacc.c  */
    6876 #line 1305 "parser.yy"
     6876#line 1304 "parser.yy"
    68776877    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68786878    break;
     
    68816881
    68826882/* Line 1806 of yacc.c  */
    6883 #line 1307 "parser.yy"
     6883#line 1306 "parser.yy"
    68846884    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68856885    break;
     
    68886888
    68896889/* Line 1806 of yacc.c  */
    6890 #line 1309 "parser.yy"
     6890#line 1308 "parser.yy"
    68916891    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68926892    break;
     
    68956895
    68966896/* Line 1806 of yacc.c  */
    6897 #line 1314 "parser.yy"
     6897#line 1313 "parser.yy"
    68986898    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    68996899    break;
     
    69026902
    69036903/* Line 1806 of yacc.c  */
    6904 #line 1316 "parser.yy"
     6904#line 1315 "parser.yy"
    69056905    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    69066906    break;
     
    69096909
    69106910/* Line 1806 of yacc.c  */
    6911 #line 1318 "parser.yy"
     6911#line 1317 "parser.yy"
    69126912    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    69136913    break;
     
    69166916
    69176917/* Line 1806 of yacc.c  */
    6918 #line 1320 "parser.yy"
     6918#line 1319 "parser.yy"
    69196919    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    69206920    break;
     
    69236923
    69246924/* Line 1806 of yacc.c  */
    6925 #line 1326 "parser.yy"
     6925#line 1325 "parser.yy"
    69266926    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69276927    break;
     
    69306930
    69316931/* Line 1806 of yacc.c  */
    6932 #line 1328 "parser.yy"
     6932#line 1327 "parser.yy"
    69336933    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69346934    break;
     
    69376937
    69386938/* Line 1806 of yacc.c  */
    6939 #line 1330 "parser.yy"
     6939#line 1329 "parser.yy"
    69406940    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69416941    break;
     
    69446944
    69456945/* Line 1806 of yacc.c  */
    6946 #line 1336 "parser.yy"
     6946#line 1335 "parser.yy"
    69476947    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69486948    break;
     
    69516951
    69526952/* Line 1806 of yacc.c  */
    6953 #line 1338 "parser.yy"
     6953#line 1337 "parser.yy"
    69546954    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69556955    break;
     
    69586958
    69596959/* Line 1806 of yacc.c  */
    6960 #line 1344 "parser.yy"
     6960#line 1343 "parser.yy"
    69616961    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69626962    break;
     
    69656965
    69666966/* Line 1806 of yacc.c  */
    6967 #line 1346 "parser.yy"
     6967#line 1345 "parser.yy"
    69686968    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69696969    break;
     
    69726972
    69736973/* Line 1806 of yacc.c  */
    6974 #line 1348 "parser.yy"
     6974#line 1347 "parser.yy"
    69756975    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69766976    break;
     
    69796979
    69806980/* Line 1806 of yacc.c  */
    6981 #line 1353 "parser.yy"
     6981#line 1352 "parser.yy"
    69826982    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69836983    break;
     
    69866986
    69876987/* Line 1806 of yacc.c  */
    6988 #line 1355 "parser.yy"
     6988#line 1354 "parser.yy"
    69896989    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69906990    break;
     
    69936993
    69946994/* Line 1806 of yacc.c  */
    6995 #line 1357 "parser.yy"
     6995#line 1356 "parser.yy"
    69966996    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69976997    break;
     
    70007000
    70017001/* Line 1806 of yacc.c  */
    7002 #line 1367 "parser.yy"
     7002#line 1366 "parser.yy"
    70037003    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); }
    70047004    break;
     
    70077007
    70087008/* Line 1806 of yacc.c  */
    7009 #line 1369 "parser.yy"
     7009#line 1368 "parser.yy"
    70107010    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); }
    70117011    break;
     
    70147014
    70157015/* Line 1806 of yacc.c  */
    7016 #line 1371 "parser.yy"
     7016#line 1370 "parser.yy"
    70177017    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); }
    70187018    break;
     
    70217021
    70227022/* Line 1806 of yacc.c  */
    7023 #line 1373 "parser.yy"
     7023#line 1372 "parser.yy"
    70247024    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); }
    70257025    break;
     
    70287028
    70297029/* Line 1806 of yacc.c  */
    7030 #line 1375 "parser.yy"
     7030#line 1374 "parser.yy"
    70317031    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); }
    70327032    break;
     
    70357035
    70367036/* Line 1806 of yacc.c  */
    7037 #line 1377 "parser.yy"
     7037#line 1376 "parser.yy"
    70387038    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); }
    70397039    break;
     
    70427042
    70437043/* Line 1806 of yacc.c  */
    7044 #line 1379 "parser.yy"
     7044#line 1378 "parser.yy"
    70457045    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); }
    70467046    break;
     
    70497049
    70507050/* Line 1806 of yacc.c  */
    7051 #line 1382 "parser.yy"
     7051#line 1381 "parser.yy"
    70527052    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); }
    70537053    break;
     
    70567056
    70577057/* Line 1806 of yacc.c  */
    7058 #line 1384 "parser.yy"
     7058#line 1383 "parser.yy"
    70597059    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); }
    70607060    break;
     
    70637063
    70647064/* Line 1806 of yacc.c  */
    7065 #line 1389 "parser.yy"
     7065#line 1388 "parser.yy"
    70667066    { (yyval.aggKey) = DeclarationNode::Struct; }
    70677067    break;
     
    70707070
    70717071/* Line 1806 of yacc.c  */
    7072 #line 1391 "parser.yy"
     7072#line 1390 "parser.yy"
    70737073    { (yyval.aggKey) = DeclarationNode::Union; }
    70747074    break;
     
    70777077
    70787078/* Line 1806 of yacc.c  */
    7079 #line 1396 "parser.yy"
     7079#line 1395 "parser.yy"
    70807080    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    70817081    break;
     
    70847084
    70857085/* Line 1806 of yacc.c  */
    7086 #line 1398 "parser.yy"
     7086#line 1397 "parser.yy"
    70877087    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    70887088    break;
     
    70917091
    70927092/* Line 1806 of yacc.c  */
    7093 #line 1404 "parser.yy"
     7093#line 1403 "parser.yy"
    70947094    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    70957095    break;
     
    70987098
    70997099/* Line 1806 of yacc.c  */
    7100 #line 1407 "parser.yy"
     7100#line 1406 "parser.yy"
    71017101    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    71027102    break;
     
    71057105
    71067106/* Line 1806 of yacc.c  */
    7107 #line 1413 "parser.yy"
     7107#line 1412 "parser.yy"
    71087108    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    71097109    break;
     
    71127112
    71137113/* Line 1806 of yacc.c  */
    7114 #line 1415 "parser.yy"
     7114#line 1414 "parser.yy"
    71157115    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71167116    break;
     
    71197119
    71207120/* Line 1806 of yacc.c  */
    7121 #line 1417 "parser.yy"
     7121#line 1416 "parser.yy"
    71227122    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71237123    break;
     
    71267126
    71277127/* Line 1806 of yacc.c  */
    7128 #line 1422 "parser.yy"
     7128#line 1421 "parser.yy"
    71297129    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71307130    break;
     
    71337133
    71347134/* Line 1806 of yacc.c  */
    7135 #line 1424 "parser.yy"
     7135#line 1423 "parser.yy"
    71367136    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71377137    break;
     
    71407140
    71417141/* Line 1806 of yacc.c  */
    7142 #line 1429 "parser.yy"
     7142#line 1428 "parser.yy"
    71437143    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71447144    break;
     
    71477147
    71487148/* Line 1806 of yacc.c  */
    7149 #line 1431 "parser.yy"
     7149#line 1430 "parser.yy"
    71507150    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71517151    break;
     
    71547154
    71557155/* Line 1806 of yacc.c  */
    7156 #line 1434 "parser.yy"
     7156#line 1433 "parser.yy"
    71577157    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71587158    break;
     
    71617161
    71627162/* Line 1806 of yacc.c  */
    7163 #line 1437 "parser.yy"
     7163#line 1436 "parser.yy"
    71647164    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71657165    break;
     
    71687168
    71697169/* Line 1806 of yacc.c  */
    7170 #line 1443 "parser.yy"
     7170#line 1442 "parser.yy"
    71717171    { (yyval.en) = 0; }
    71727172    break;
     
    71757175
    71767176/* Line 1806 of yacc.c  */
    7177 #line 1445 "parser.yy"
     7177#line 1444 "parser.yy"
    71787178    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71797179    break;
     
    71827182
    71837183/* Line 1806 of yacc.c  */
    7184 #line 1450 "parser.yy"
     7184#line 1449 "parser.yy"
    71857185    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71867186    break;
     
    71897189
    71907190/* Line 1806 of yacc.c  */
    7191 #line 1459 "parser.yy"
     7191#line 1458 "parser.yy"
    71927192    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    71937193    break;
     
    71967196
    71977197/* Line 1806 of yacc.c  */
    7198 #line 1461 "parser.yy"
     7198#line 1460 "parser.yy"
    71997199    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }
    72007200    break;
     
    72037203
    72047204/* Line 1806 of yacc.c  */
    7205 #line 1463 "parser.yy"
     7205#line 1462 "parser.yy"
    72067206    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); }
    72077207    break;
     
    72107210
    72117211/* Line 1806 of yacc.c  */
    7212 #line 1468 "parser.yy"
     7212#line 1467 "parser.yy"
    72137213    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72147214    break;
     
    72177217
    72187218/* Line 1806 of yacc.c  */
    7219 #line 1470 "parser.yy"
     7219#line 1469 "parser.yy"
    72207220    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72217221    break;
     
    72247224
    72257225/* Line 1806 of yacc.c  */
    7226 #line 1475 "parser.yy"
     7226#line 1474 "parser.yy"
    72277227    { (yyval.en) = 0; }
    72287228    break;
     
    72317231
    72327232/* Line 1806 of yacc.c  */
    7233 #line 1477 "parser.yy"
     7233#line 1476 "parser.yy"
    72347234    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72357235    break;
     
    72387238
    72397239/* Line 1806 of yacc.c  */
    7240 #line 1484 "parser.yy"
     7240#line 1483 "parser.yy"
    72417241    { (yyval.decl) = 0; }
    72427242    break;
     
    72457245
    72467246/* Line 1806 of yacc.c  */
    7247 #line 1492 "parser.yy"
     7247#line 1491 "parser.yy"
    72487248    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72497249    break;
     
    72527252
    72537253/* Line 1806 of yacc.c  */
    7254 #line 1494 "parser.yy"
     7254#line 1493 "parser.yy"
    72557255    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72567256    break;
     
    72597259
    72607260/* Line 1806 of yacc.c  */
    7261 #line 1496 "parser.yy"
     7261#line 1495 "parser.yy"
    72627262    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72637263    break;
     
    72667266
    72677267/* Line 1806 of yacc.c  */
    7268 #line 1505 "parser.yy"
     7268#line 1504 "parser.yy"
    72697269    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72707270    break;
     
    72737273
    72747274/* Line 1806 of yacc.c  */
    7275 #line 1507 "parser.yy"
     7275#line 1506 "parser.yy"
    72767276    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72777277    break;
     
    72807280
    72817281/* Line 1806 of yacc.c  */
    7282 #line 1509 "parser.yy"
     7282#line 1508 "parser.yy"
    72837283    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72847284    break;
     
    72877287
    72887288/* Line 1806 of yacc.c  */
    7289 #line 1515 "parser.yy"
     7289#line 1514 "parser.yy"
    72907290    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72917291    break;
     
    72947294
    72957295/* Line 1806 of yacc.c  */
    7296 #line 1520 "parser.yy"
     7296#line 1519 "parser.yy"
    72977297    { (yyval.decl) = 0; }
    72987298    break;
     
    73017301
    73027302/* Line 1806 of yacc.c  */
    7303 #line 1527 "parser.yy"
     7303#line 1526 "parser.yy"
    73047304    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    73057305    break;
     
    73087308
    73097309/* Line 1806 of yacc.c  */
    7310 #line 1534 "parser.yy"
     7310#line 1533 "parser.yy"
    73117311    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73127312    break;
     
    73157315
    73167316/* Line 1806 of yacc.c  */
    7317 #line 1536 "parser.yy"
     7317#line 1535 "parser.yy"
    73187318    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73197319    break;
     
    73227322
    73237323/* Line 1806 of yacc.c  */
    7324 #line 1546 "parser.yy"
     7324#line 1545 "parser.yy"
    73257325    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73267326    break;
     
    73297329
    73307330/* Line 1806 of yacc.c  */
    7331 #line 1549 "parser.yy"
     7331#line 1548 "parser.yy"
    73327332    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73337333    break;
     
    73367336
    73377337/* Line 1806 of yacc.c  */
    7338 #line 1551 "parser.yy"
     7338#line 1550 "parser.yy"
    73397339    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73407340    break;
     
    73437343
    73447344/* Line 1806 of yacc.c  */
    7345 #line 1561 "parser.yy"
     7345#line 1560 "parser.yy"
    73467346    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73477347    break;
     
    73507350
    73517351/* Line 1806 of yacc.c  */
    7352 #line 1567 "parser.yy"
     7352#line 1566 "parser.yy"
    73537353    {
    73547354                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73607360
    73617361/* Line 1806 of yacc.c  */
    7362 #line 1572 "parser.yy"
     7362#line 1571 "parser.yy"
    73637363    {
    73647364                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73707370
    73717371/* Line 1806 of yacc.c  */
    7372 #line 1581 "parser.yy"
     7372#line 1580 "parser.yy"
    73737373    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73747374    break;
     
    73777377
    73787378/* Line 1806 of yacc.c  */
    7379 #line 1590 "parser.yy"
     7379#line 1589 "parser.yy"
    73807380    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73817381    break;
     
    73847384
    73857385/* Line 1806 of yacc.c  */
    7386 #line 1592 "parser.yy"
     7386#line 1591 "parser.yy"
    73877387    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73887388    break;
     
    73917391
    73927392/* Line 1806 of yacc.c  */
    7393 #line 1617 "parser.yy"
     7393#line 1616 "parser.yy"
    73947394    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73957395    break;
     
    73987398
    73997399/* Line 1806 of yacc.c  */
    7400 #line 1625 "parser.yy"
     7400#line 1624 "parser.yy"
    74017401    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    74027402    break;
     
    74057405
    74067406/* Line 1806 of yacc.c  */
     7407#line 1629 "parser.yy"
     7408    { (yyval.in) = 0; }
     7409    break;
     7410
     7411  case 440:
     7412
     7413/* Line 1806 of yacc.c  */
    74077414#line 1630 "parser.yy"
    7408     { (yyval.in) = 0; }
    7409     break;
    7410 
    7411   case 440:
    7412 
    7413 /* Line 1806 of yacc.c  */
    7414 #line 1631 "parser.yy"
    74157415    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74167416    break;
     
    74197419
    74207420/* Line 1806 of yacc.c  */
     7421#line 1634 "parser.yy"
     7422    { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
     7423    break;
     7424
     7425  case 442:
     7426
     7427/* Line 1806 of yacc.c  */
    74217428#line 1635 "parser.yy"
    7422     { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); }
    7423     break;
    7424 
    7425   case 442:
    7426 
    7427 /* Line 1806 of yacc.c  */
    7428 #line 1636 "parser.yy"
    74297429    { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); }
    74307430    break;
     
    74337433
    74347434/* Line 1806 of yacc.c  */
     7435#line 1640 "parser.yy"
     7436    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7437    break;
     7438
     7439  case 445:
     7440
     7441/* Line 1806 of yacc.c  */
    74357442#line 1641 "parser.yy"
    7436     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7437     break;
    7438 
    7439   case 445:
    7440 
    7441 /* Line 1806 of yacc.c  */
    7442 #line 1642 "parser.yy"
    74437443    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); }
    74447444    break;
     
    74477447
    74487448/* Line 1806 of yacc.c  */
    7449 #line 1644 "parser.yy"
     7449#line 1643 "parser.yy"
    74507450    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); }
    74517451    break;
     
    74547454
    74557455/* Line 1806 of yacc.c  */
    7456 #line 1660 "parser.yy"
     7456#line 1659 "parser.yy"
    74577457    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    74587458    break;
     
    74617461
    74627462/* Line 1806 of yacc.c  */
    7463 #line 1665 "parser.yy"
     7463#line 1664 "parser.yy"
    74647464    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    74657465    break;
     
    74687468
    74697469/* Line 1806 of yacc.c  */
    7470 #line 1670 "parser.yy"
     7470#line 1669 "parser.yy"
    74717471    { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); }
    74727472    break;
     
    74757475
    74767476/* Line 1806 of yacc.c  */
    7477 #line 1674 "parser.yy"
     7477#line 1673 "parser.yy"
    74787478    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74797479    break;
     
    74827482
    74837483/* Line 1806 of yacc.c  */
    7484 #line 1676 "parser.yy"
     7484#line 1675 "parser.yy"
    74857485    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74867486    break;
     
    74897489
    74907490/* Line 1806 of yacc.c  */
    7491 #line 1678 "parser.yy"
     7491#line 1677 "parser.yy"
    74927492    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); }
    74937493    break;
     
    74967496
    74977497/* Line 1806 of yacc.c  */
    7498 #line 1680 "parser.yy"
     7498#line 1679 "parser.yy"
    74997499    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    75007500    break;
     
    75037503
    75047504/* Line 1806 of yacc.c  */
    7505 #line 1705 "parser.yy"
     7505#line 1704 "parser.yy"
    75067506    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75077507    break;
     
    75107510
    75117511/* Line 1806 of yacc.c  */
    7512 #line 1707 "parser.yy"
     7512#line 1706 "parser.yy"
    75137513    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75147514    break;
     
    75177517
    75187518/* Line 1806 of yacc.c  */
    7519 #line 1709 "parser.yy"
     7519#line 1708 "parser.yy"
    75207520    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75217521    break;
     
    75247524
    75257525/* Line 1806 of yacc.c  */
    7526 #line 1714 "parser.yy"
     7526#line 1713 "parser.yy"
    75277527    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75287528    break;
     
    75317531
    75327532/* Line 1806 of yacc.c  */
    7533 #line 1716 "parser.yy"
     7533#line 1715 "parser.yy"
    75347534    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); }
    75357535    break;
     
    75387538
    75397539/* Line 1806 of yacc.c  */
    7540 #line 1718 "parser.yy"
     7540#line 1717 "parser.yy"
    75417541    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75427542    break;
     
    75457545
    75467546/* Line 1806 of yacc.c  */
    7547 #line 1724 "parser.yy"
     7547#line 1723 "parser.yy"
    75487548    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75497549    break;
     
    75527552
    75537553/* Line 1806 of yacc.c  */
    7554 #line 1729 "parser.yy"
     7554#line 1728 "parser.yy"
    75557555    { typedefTable.addToEnclosingScope(*((yyvsp[(2) - (2)].tok)), TypedefTable::TD); }
    75567556    break;
     
    75597559
    75607560/* Line 1806 of yacc.c  */
    7561 #line 1731 "parser.yy"
     7561#line 1730 "parser.yy"
    75627562    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75637563    break;
     
    75667566
    75677567/* Line 1806 of yacc.c  */
    7568 #line 1737 "parser.yy"
     7568#line 1736 "parser.yy"
    75697569    { (yyval.tclass) = DeclarationNode::Type; }
    75707570    break;
     
    75737573
    75747574/* Line 1806 of yacc.c  */
    7575 #line 1739 "parser.yy"
     7575#line 1738 "parser.yy"
    75767576    { (yyval.tclass) = DeclarationNode::Ftype; }
    75777577    break;
     
    75807580
    75817581/* Line 1806 of yacc.c  */
    7582 #line 1741 "parser.yy"
     7582#line 1740 "parser.yy"
    75837583    { (yyval.tclass) = DeclarationNode::Dtype; }
    75847584    break;
     
    75877587
    75887588/* Line 1806 of yacc.c  */
    7589 #line 1746 "parser.yy"
     7589#line 1745 "parser.yy"
    75907590    { (yyval.decl) = 0; }
    75917591    break;
     
    75947594
    75957595/* Line 1806 of yacc.c  */
    7596 #line 1748 "parser.yy"
     7596#line 1747 "parser.yy"
    75977597    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    75987598    break;
     
    76017601
    76027602/* Line 1806 of yacc.c  */
    7603 #line 1753 "parser.yy"
     7603#line 1752 "parser.yy"
    76047604    {
    76057605                        typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) );
     
    76117611
    76127612/* Line 1806 of yacc.c  */
    7613 #line 1758 "parser.yy"
     7613#line 1757 "parser.yy"
    76147614    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    76157615    break;
     
    76187618
    76197619/* Line 1806 of yacc.c  */
    7620 #line 1760 "parser.yy"
     7620#line 1759 "parser.yy"
    76217621    { (yyval.decl) = 0; }
    76227622    break;
     
    76257625
    76267626/* Line 1806 of yacc.c  */
    7627 #line 1765 "parser.yy"
     7627#line 1764 "parser.yy"
    76287628    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    76297629    break;
     
    76327632
    76337633/* Line 1806 of yacc.c  */
    7634 #line 1768 "parser.yy"
     7634#line 1767 "parser.yy"
    76357635    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    76367636    break;
     
    76397639
    76407640/* Line 1806 of yacc.c  */
    7641 #line 1770 "parser.yy"
     7641#line 1769 "parser.yy"
    76427642    { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }
    76437643    break;
     
    76467646
    76477647/* Line 1806 of yacc.c  */
    7648 #line 1775 "parser.yy"
     7648#line 1774 "parser.yy"
    76497649    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76507650    break;
     
    76537653
    76547654/* Line 1806 of yacc.c  */
    7655 #line 1777 "parser.yy"
     7655#line 1776 "parser.yy"
    76567656    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76577657    break;
     
    76607660
    76617661/* Line 1806 of yacc.c  */
    7662 #line 1779 "parser.yy"
     7662#line 1778 "parser.yy"
    76637663    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76647664    break;
     
    76677667
    76687668/* Line 1806 of yacc.c  */
    7669 #line 1784 "parser.yy"
     7669#line 1783 "parser.yy"
    76707670    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76717671    break;
     
    76747674
    76757675/* Line 1806 of yacc.c  */
    7676 #line 1786 "parser.yy"
     7676#line 1785 "parser.yy"
    76777677    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76787678    break;
     
    76817681
    76827682/* Line 1806 of yacc.c  */
    7683 #line 1791 "parser.yy"
     7683#line 1790 "parser.yy"
    76847684    {
    76857685                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD);
     
    76917691
    76927692/* Line 1806 of yacc.c  */
    7693 #line 1796 "parser.yy"
     7693#line 1795 "parser.yy"
    76947694    {
    76957695                        typedefTable.addToEnclosingScope(*((yyvsp[(1) - (6)].tok)), TypedefTable::TG);
     
    77017701
    77027702/* Line 1806 of yacc.c  */
    7703 #line 1804 "parser.yy"
     7703#line 1803 "parser.yy"
    77047704    {
    77057705                        typedefTable.addToEnclosingScope(*((yyvsp[(2) - (9)].tok)), TypedefTable::ID );
     
    77117711
    77127712/* Line 1806 of yacc.c  */
    7713 #line 1809 "parser.yy"
     7713#line 1808 "parser.yy"
    77147714    {
    77157715                        typedefTable.enterContext( *((yyvsp[(2) - (8)].tok)) );
     
    77217721
    77227722/* Line 1806 of yacc.c  */
    7723 #line 1814 "parser.yy"
     7723#line 1813 "parser.yy"
    77247724    {
    77257725                        typedefTable.leaveContext();
     
    77327732
    77337733/* Line 1806 of yacc.c  */
    7734 #line 1824 "parser.yy"
     7734#line 1823 "parser.yy"
    77357735    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77367736    break;
     
    77397739
    77407740/* Line 1806 of yacc.c  */
    7741 #line 1834 "parser.yy"
     7741#line 1833 "parser.yy"
    77427742    {
    77437743                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77497749
    77507750/* Line 1806 of yacc.c  */
    7751 #line 1839 "parser.yy"
     7751#line 1838 "parser.yy"
    77527752    {
    77537753                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77597759
    77607760/* Line 1806 of yacc.c  */
    7761 #line 1844 "parser.yy"
     7761#line 1843 "parser.yy"
    77627762    {
    77637763                        typedefTable.addToEnclosingScope2( *((yyvsp[(5) - (5)].tok)), TypedefTable::ID );
     
    77697769
    77707770/* Line 1806 of yacc.c  */
    7771 #line 1852 "parser.yy"
     7771#line 1851 "parser.yy"
    77727772    {
    77737773                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77797779
    77807780/* Line 1806 of yacc.c  */
    7781 #line 1857 "parser.yy"
     7781#line 1856 "parser.yy"
    77827782    {
    77837783                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77897789
    77907790/* Line 1806 of yacc.c  */
    7791 #line 1867 "parser.yy"
     7791#line 1866 "parser.yy"
    77927792    {}
    77937793    break;
     
    77967796
    77977797/* Line 1806 of yacc.c  */
    7798 #line 1869 "parser.yy"
     7798#line 1868 "parser.yy"
    77997799    {
    78007800                        if ( theTree ) {
     
    78097809
    78107810/* Line 1806 of yacc.c  */
    7811 #line 1881 "parser.yy"
     7811#line 1880 "parser.yy"
    78127812    { (yyval.decl) = ((yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78137813    break;
     
    78167816
    78177817/* Line 1806 of yacc.c  */
    7818 #line 1886 "parser.yy"
     7818#line 1885 "parser.yy"
    78197819    { (yyval.decl) = 0; }
    78207820    break;
     
    78237823
    78247824/* Line 1806 of yacc.c  */
    7825 #line 1894 "parser.yy"
     7825#line 1893 "parser.yy"
    78267826    {}
    78277827    break;
     
    78307830
    78317831/* Line 1806 of yacc.c  */
    7832 #line 1896 "parser.yy"
     7832#line 1895 "parser.yy"
    78337833    {
    78347834                        linkageStack.push( linkage );
     
    78407840
    78417841/* Line 1806 of yacc.c  */
    7842 #line 1901 "parser.yy"
     7842#line 1900 "parser.yy"
    78437843    {
    78447844                        linkage = linkageStack.top();
     
    78517851
    78527852/* Line 1806 of yacc.c  */
    7853 #line 1907 "parser.yy"
     7853#line 1906 "parser.yy"
    78547854    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78557855    break;
     
    78587858
    78597859/* Line 1806 of yacc.c  */
    7860 #line 1919 "parser.yy"
     7860#line 1918 "parser.yy"
    78617861    {
    78627862                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78697869
    78707870/* Line 1806 of yacc.c  */
    7871 #line 1925 "parser.yy"
     7871#line 1924 "parser.yy"
    78727872    {
    78737873                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78807880
    78817881/* Line 1806 of yacc.c  */
    7882 #line 1934 "parser.yy"
     7882#line 1933 "parser.yy"
    78837883    {
    78847884                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78917891
    78927892/* Line 1806 of yacc.c  */
    7893 #line 1940 "parser.yy"
     7893#line 1939 "parser.yy"
    78947894    {
    78957895                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79027902
    79037903/* Line 1806 of yacc.c  */
    7904 #line 1946 "parser.yy"
     7904#line 1945 "parser.yy"
    79057905    {
    79067906                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79137913
    79147914/* Line 1806 of yacc.c  */
    7915 #line 1952 "parser.yy"
     7915#line 1951 "parser.yy"
    79167916    {
    79177917                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79247924
    79257925/* Line 1806 of yacc.c  */
    7926 #line 1958 "parser.yy"
     7926#line 1957 "parser.yy"
    79277927    {
    79287928                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79357935
    79367936/* Line 1806 of yacc.c  */
    7937 #line 1966 "parser.yy"
     7937#line 1965 "parser.yy"
    79387938    {
    79397939                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79467946
    79477947/* Line 1806 of yacc.c  */
    7948 #line 1972 "parser.yy"
     7948#line 1971 "parser.yy"
    79497949    {
    79507950                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79577957
    79587958/* Line 1806 of yacc.c  */
    7959 #line 1980 "parser.yy"
     7959#line 1979 "parser.yy"
    79607960    {
    79617961                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79687968
    79697969/* Line 1806 of yacc.c  */
    7970 #line 1986 "parser.yy"
     7970#line 1985 "parser.yy"
    79717971    {
    79727972                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79797979
    79807980/* Line 1806 of yacc.c  */
    7981 #line 2001 "parser.yy"
     7981#line 2000 "parser.yy"
    79827982    { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }
    79837983    break;
    79847984
    79857985  case 539:
     7986
     7987/* Line 1806 of yacc.c  */
     7988#line 2034 "parser.yy"
     7989    {}
     7990    break;
     7991
     7992  case 540:
    79867993
    79877994/* Line 1806 of yacc.c  */
     
    79907997    break;
    79917998
    7992   case 540:
     7999  case 541:
    79938000
    79948001/* Line 1806 of yacc.c  */
     
    79978004    break;
    79988005
    7999   case 541:
     8006  case 542:
    80008007
    80018008/* Line 1806 of yacc.c  */
     
    80048011    break;
    80058012
    8006   case 542:
    8007 
    8008 /* Line 1806 of yacc.c  */
    8009 #line 2038 "parser.yy"
    8010     {}
    8011     break;
    8012 
    80138013  case 547:
    80148014
    80158015/* Line 1806 of yacc.c  */
    8016 #line 2081 "parser.yy"
     8016#line 2080 "parser.yy"
    80178017    {
    80188018                        typedefTable.setNextIdentifier( *((yyvsp[(1) - (1)].tok)) );
     
    80248024
    80258025/* Line 1806 of yacc.c  */
    8026 #line 2086 "parser.yy"
     8026#line 2085 "parser.yy"
    80278027    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80288028    break;
     
    80318031
    80328032/* Line 1806 of yacc.c  */
    8033 #line 2091 "parser.yy"
     8033#line 2090 "parser.yy"
    80348034    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    80358035    break;
     
    80388038
    80398039/* Line 1806 of yacc.c  */
    8040 #line 2093 "parser.yy"
     8040#line 2092 "parser.yy"
    80418041    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    80428042    break;
     
    80458045
    80468046/* Line 1806 of yacc.c  */
    8047 #line 2095 "parser.yy"
     8047#line 2094 "parser.yy"
    80488048    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80498049    break;
     
    80528052
    80538053/* Line 1806 of yacc.c  */
    8054 #line 2100 "parser.yy"
     8054#line 2099 "parser.yy"
    80558055    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    80568056    break;
     
    80598059
    80608060/* Line 1806 of yacc.c  */
    8061 #line 2102 "parser.yy"
     8061#line 2101 "parser.yy"
    80628062    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80638063    break;
     
    80668066
    80678067/* Line 1806 of yacc.c  */
    8068 #line 2104 "parser.yy"
     8068#line 2103 "parser.yy"
    80698069    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80708070    break;
     
    80738073
    80748074/* Line 1806 of yacc.c  */
    8075 #line 2106 "parser.yy"
     8075#line 2105 "parser.yy"
    80768076    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80778077    break;
     
    80808080
    80818081/* Line 1806 of yacc.c