Index: src/Parser/lex.cc
===================================================================
--- src/Parser/lex.cc	(revision d3bc0ad5ca6325ee71ad0755de4023871114d0e7)
+++ 	(revision )
@@ -1,3868 +1,0 @@
-
-#line 3 "Parser/lex.cc"
-
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 35
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
-
-/* begin standard C headers. */
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
-
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
-#endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
-#endif
-
-#endif /* ! C99 */
-
-#endif /* ! FLEXINT_H */
-
-#ifdef __cplusplus
-
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
-#else
-#define yyconst
-#endif
-
-/* Returned upon end-of-file. */
-#define YY_NULL 0
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
- */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-/* Enter a start condition.  This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
-#define BEGIN (yy_start) = 1 + 2 *
-
-/* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state.  The YYSTATE alias is for lex
- * compatibility.
- */
-#define YY_START (((yy_start) - 1) / 2)
-#define YYSTATE YY_START
-
-/* Action number for EOF rule of a given start state. */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart(yyin  )
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-/* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
-#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
-
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int yyleng;
-
-extern FILE *yyin, *yyout;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-     *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE yylex. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < yyleng; ++yyl )\
-                    if ( yytext[yyl] == '\n' )\
-                        --yylineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
-		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
-		} \
-	while ( 0 )
-
-#define unput(c) yyunput( c, (yytext_ptr)  )
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
-struct yy_buffer_state
-	{
-	FILE *yy_input_file;
-
-	char *yy_ch_buf;		/* input buffer */
-	char *yy_buf_pos;		/* current position in input buffer */
-
-	/* Size of input buffer in bytes, not including room for EOB
-	 * characters.
-	 */
-	yy_size_t yy_buf_size;
-
-	/* Number of characters read into yy_ch_buf, not including EOB
-	 * characters.
-	 */
-	int yy_n_chars;
-
-	/* Whether we "own" the buffer - i.e., we know we created it,
-	 * and can realloc() it to grow it, and should free() it to
-	 * delete it.
-	 */
-	int yy_is_our_buffer;
-
-	/* Whether this is an "interactive" input source; if so, and
-	 * if we're using stdio for input, then we want to use getc()
-	 * instead of fread(), to make sure we stop fetching input after
-	 * each newline.
-	 */
-	int yy_is_interactive;
-
-	/* Whether we're considered to be at the beginning of a line.
-	 * If so, '^' rules will be active on the next match, otherwise
-	 * not.
-	 */
-	int yy_at_bol;
-
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
-	/* Whether to try to fill the input buffer when we reach the
-	 * end of it.
-	 */
-	int yy_fill_buffer;
-
-	int yy_buffer_status;
-
-#define YY_BUFFER_NEW 0
-#define YY_BUFFER_NORMAL 1
-	/* When an EOF's been seen but there's still some text to process
-	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
-	 * shouldn't try reading from the input source any more.  We might
-	 * still have a bunch of tokens to match, though, because of
-	 * possible backing-up.
-	 *
-	 * When we actually see the EOF, we change the status to "new"
-	 * (via yyrestart()), so that the user can continue scanning by
-	 * just pointing yyin at a new input file.
-	 */
-#define YY_BUFFER_EOF_PENDING 2
-
-	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
-
-/* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
-
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-
-/* yy_hold_char holds the character lost when yytext is formed. */
-static char yy_hold_char;
-static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-int yyleng;
-
-/* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
-static int yy_start = 0;	/* start state number */
-
-/* Flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin.  A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-void yyrestart (FILE *input_file  );
-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
-void yy_delete_buffer (YY_BUFFER_STATE b  );
-void yy_flush_buffer (YY_BUFFER_STATE b  );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void yypop_buffer_state (void );
-
-static void yyensure_buffer_stack (void );
-static void yy_load_buffer_state (void );
-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
-
-void *yyalloc (yy_size_t  );
-void *yyrealloc (void *,yy_size_t  );
-void yyfree (void *  );
-
-#define yy_new_buffer yy_create_buffer
-
-#define yy_set_interactive(is_interactive) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        yyensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
-	}
-
-#define yy_set_bol(at_bol) \
-	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        yyensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
-	}
-
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
-
-/* Begin user sect3 */
-
-typedef unsigned char YY_CHAR;
-
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-
-typedef int yy_state_type;
-
-extern int yylineno;
-
-int yylineno = 1;
-
-extern char *yytext;
-#define yytext_ptr yytext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
-
-/* Done after the current pattern has been matched and before the
- * corresponding action - sets up yytext.
- */
-#define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	yyleng = (size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
-	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 190
-#define YY_END_OF_BUFFER 191
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[928] =
-    {   0,
-        0,    0,    0,    0,    0,    0,  125,  125,  128,  128,
-      191,  189,    7,    9,    8,  148,  127,  110,  153,  156,
-      124,  135,  136,  151,  149,  139,  150,  142,  152,  115,
-      116,  117,  140,  141,  158,  160,  159,  161,  189,  110,
-      133,  189,  134,  154,  110,  112,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  137,  157,  138,  155,    7,  189,
-        4,    4,  190,  113,  190,  114,  125,  126,  132,  128,
-      129,    7,    9,    0,    8,  165,  184,  110,    0,  177,
-      147,  170,  178,  175,  162,  173,  163,  174,  172,    0,
-
-      121,    3,    0,  176,  120,  118,    0,    0,  118,  118,
-        0,    0,  118,  117,  117,  117,    0,  117,  145,  146,
-      144,  166,  168,  164,  169,  167,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  111,  183,    0,  127,  124,  110,    0,    0,  180,
-        0,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,   39,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-       58,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-
-      110,  179,  171,    7,    0,    0,    0,    2,    0,    5,
-      113,    0,    0,    0,  125,    0,  131,  130,  130,    0,
-        0,    0,  128,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  143,  121,
-      122,    0,  122,  122,    0,    0,    6,  122,  118,    0,
-        0,    0,  122,    0,  118,  118,  118,  118,    0,  119,
-        0,    0,  117,  117,  117,  117,    0,  181,  182,    0,
-      187,  185,    0,    0,    0,  111,    0,    0,    0,    0,
-        0,    0,    0,    0,  110,   17,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-
-      110,  110,  110,  110,  110,   14,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,   52,  110,  110,  110,   65,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,   95,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,    0,    0,    0,    0,    0,
-        0,    0,    0,  130,    0,    0,    0,    0,    0,  130,
-        0,    0,  188,    0,    0,    0,    0,    0,    0,    0,
-      122,    0,  122,    0,  122,    0,  122,    0,    0,  122,
-        0,  118,  118,    0,    0,  119,  119,    0,  119,    0,
-
-      119,  117,  117,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  186,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,   21,
-      110,   24,  110,   27,  110,  110,  110,  110,  110,  110,
-      110,   42,  110,   44,  110,  110,  110,  110,  110,  110,
-      110,   57,  110,   68,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  104,  110,  110,  110,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,  130,    0,    0,    0,    0,    0,  122,    0,    0,
-        0,    0,    0,    0,    0,  119,  119,    0,  123,    0,
-      119,  119,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  110,  110,   22,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,   15,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,   23,   25,  110,   32,  110,  110,  110,  110,
-       41,  110,  110,  110,  110,   50,  110,  110,   55,  110,
-      110,   71,   74,   75,  110,  110,  110,   81,  110,  110,
-      110,  110,  110,   92,   94,   96,  110,  110,  101,  110,
-
-      110,  108,  110,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  123,    0,    0,  119,  123,  123,  123,  123,
-        0,  119,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  110,    0,  110,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
-      110,  110,   60,  110,  110,  110,  110,  110,  110,  110,
-      110,   28,  110,  110,  110,   40,   43,   46,  110,  110,
-       53,  110,   62,   69,  110,  110,   80,   82,   85,   86,
-       88,   89,  110,  110,   98,  110,  110,  109,    0,    1,
-
-        0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
-      130,    0,    0,    0,    0,  123,    0,  123,  123,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  110,  110,
-       18,  110,  110,  110,  110,  110,  110,  110,   90,  110,
-       16,  110,  110,  110,   33,  110,  110,  110,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,   37,   38,  110,
-       49,   54,  110,  110,  110,   97,  110,  110,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   10,   11,   29,  110,   56,  110,   70,  110,  110,
-      110,  110,  110,  110,  110,  110,  110,  110,   61,   63,
-
-       66,  110,  110,   83,   99,  110,  110,   35,  110,   48,
-       76,   77,  110,  102,  105,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  110,  110,   72,
-      110,  110,   12,  110,  110,   30,   34,  110,  110,  110,
-       67,  110,  110,  110,  110,  110,  110,  110,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   36,   59,  110,  110,  110,  110,  110,  110,  110,
-       51,   64,   78,   84,  100,  106,  110,  110,  110,    0,
-        0,    0,    0,    0,    0,    0,    0,  110,  110,   13,
-       19,  110,  110,   31,  110,  110,  110,   26,   47,   93,
-
-        0,    0,  110,  110,  110,  110,  110,  110,   79,  107,
-      110,   91,   20,  110,  110,   45,   87,  110,  110,  110,
-      110,  110,  110,  110,  103,   73,    0
-    } ;
-
-static yyconst flex_int32_t yy_ec[256] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        4,    5,    6,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    7,    8,    9,   10,   11,   12,   13,   14,   15,
-       16,   17,   18,   19,   20,   21,   22,   23,   24,   25,
-       26,   26,   26,   26,   26,   27,   28,   29,   30,   31,
-       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
-       42,   11,   43,   11,   11,   44,   45,   46,   11,   47,
-       11,   48,   49,   50,   51,   11,   11,   52,   11,   11,
-       53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
-
-       63,   64,   65,   66,   67,   11,   68,   69,   70,   71,
-       72,   73,   11,   74,   75,   76,   77,   78,   79,   80,
-       81,   82,   83,   84,   85,   86,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int32_t yy_meta[87] =
-    {   0,
-        1,    1,    2,    1,    1,    1,    1,    1,    3,    1,
-        4,    1,    1,    5,    1,    1,    1,    1,    1,    1,
-        6,    1,    7,    7,    7,    7,    7,    7,    1,    1,
-        1,    8,    1,    1,    1,    9,    9,    9,    9,    9,
-        9,    4,    4,   10,    4,    4,   11,    4,    4,    4,
-       10,    4,    1,   12,    1,    1,   13,    1,    9,    9,
-        9,    9,    9,    9,    4,    4,    4,    4,   10,    4,
-        4,    4,   11,    4,    4,    4,   10,    4,    4,    4,
-        4,    4,    1,    1,    1,    1
-    } ;
-
-static yyconst flex_int16_t yy_base[1102] =
-    {   0,
-        0,   85, 2373, 2371,   95,    0,  179,  180,  181,  182,
-     2385, 2911,  193, 2911,  199,   56, 2911, 2330,   61,  175,
-     2911, 2911, 2911,   57,  190, 2911,  193,  191,  206,  218,
-      278,    0, 2350, 2911,  218, 2349,  154,  348,  157,  223,
-     2911,  178, 2911,  219,  271, 2911,  177,  166,  202,  270,
-      213,  295,  138,  212,  218,  194,  256,  210,  272,  318,
-      331,  206,  155,  225, 2911,  227, 2911, 2344,  403,  350,
-     2911, 2353, 2911, 2320,  212, 2911,    0, 2911,  431,    0,
-     2911,  412, 2911,  418,  444, 2911,  504, 2319,  214, 2911,
-     2911, 2911, 2911, 2911, 2337, 2911, 2334, 2911, 2911, 2344,
-
-      566, 2911, 2361, 2911,  435,  418,  504,  453,  292,  250,
-      302,  462,  360,    0,  349,  343,  329,  415, 2911, 2911,
-     2911, 2331, 2911, 2911, 2911, 2329, 2326,  357,  363, 2339,
-      364,  435,  454,  396,  465,  455,  506, 2320,  469, 2268,
-      472, 2297, 2911,  235, 2911, 2911,  504, 2291, 2288, 2911,
-     2261,  479,  243,  469,  373,  398,  480,  491,  439,  493,
-      577,  492,  489,  510,  495,  497,  512,  280,  328,  499,
-      496,  500,  520,  524,  231,  514,  526,  446,  518,  527,
-     2289,  532,  533,  557,  541,  558,  561,  585,  530,  580,
-      573,  559,  589,  595,  594,  604,  610,  603,  602,  605,
-
-      611, 2911, 2911,  677,  686, 2338,  692, 2911,  698, 2911,
-     2284,  545, 2278, 2277,    0,  689, 2911, 2911,  704, 2276,
-     2274, 2271,    0, 2293,  586,  634,  670,  713,  712,  674,
-      702,  703,  706, 2290,  709,  716, 2266, 2264, 2911,    0,
-      630,  731,  699,  721, 2244, 2296, 2911,  744,  752,  732,
-      768,  779,  809,  792,  723, 2911, 2254, 2226,    0,  817,
-     2271,  818,  736, 2911, 2247, 2221,  831, 2911, 2911, 2254,
-     2911, 2911,  747,  748, 2230, 2228,  746, 2224, 2223, 2221,
-        0, 2218,    0, 2187,  636,  757,  767,  793,  806,  768,
-      808,  710,  811,  795,  826,  709,  827,  744,  745,  833,
-
-      830,  828,  818,  829,  839, 2217,  842,  838,  844,  329,
-      846,  851,  852,  854,  858,  855,  862,  867,  864,  868,
-      871,  872,  877,  878,  885,  875,  879,  886, 2216,  560,
-      888,  889,  892,  891,  893,  896,  774,  900,  902,  904,
-      901,  905,  908,  909,  911, 2214,  912,  916,  959,  915,
-      921,  410,  917,  926,  929,  987,  983, 2208, 2205, 2204,
-        0, 2203,    0,  974,  979, 2201,    0, 2198,    0, 2197,
-        0, 2219, 2911,  959,  974, 2196, 2191,    0, 2190,    0,
-     2911,  991, 1009, 1002, 2911, 1015, 1056, 2189, 1031, 1037,
-     2187, 2911, 2911, 1020, 1028, 1065, 1047, 1121,  977, 1086,
-
-     1052, 2911, 2911, 2184, 2180, 2176,    0, 2174,    0, 2172,
-        0, 2169,    0, 2911,  958, 1020,  955,  995,  997, 1048,
-     1050, 1038, 1054, 1052, 1072, 1060, 1082, 1056, 1086, 1096,
-     1097, 1100, 1102, 1106, 1104, 1108, 1103, 1016, 1111, 2170,
-      772, 2168,  632, 2165, 1115, 1116, 1117, 1120, 1125, 1122,
-     1123, 2162, 1127, 2161, 1133, 1134, 1135, 1139, 1140, 1144,
-     1145, 2160, 1141, 2158, 1146, 1147, 1148, 1151, 1157, 1152,
-     1159, 1149, 1165, 1162, 1163, 1168, 1177, 1166, 1167, 1181,
-     1185, 1182, 1183, 2155, 1186, 1187,  953, 1243, 2149,    0,
-     2148,    0, 2147,    0, 2145,    0, 1235, 2142,    0, 2139,
-
-        0, 2138, 2137, 2135,    0, 2132,    0, 1240, 2129, 1246,
-     1262, 1235, 1297, 1253, 1202, 1200, 2911, 1304, 1332, 1315,
-     2141, 2115, 2125, 2122,    0, 2119,    0, 2118,    0, 2117,
-        0, 2115,    0, 2112,    0, 1222, 1188, 2112, 1226, 1224,
-     1237, 1245, 1240, 1242, 1280, 1290, 1283,  990, 1291, 1244,
-     1296, 1292, 1251, 1307, 1297, 1310, 1282, 1309, 1298, 1299,
-     1324, 1325, 2111, 1332, 1327, 2110, 1314, 1328, 1329, 1337,
-     2108, 1339, 1334, 1338, 1341, 2105, 1349, 1352, 2102, 1353,
-     1354, 2101, 2100, 2098, 1355, 1358, 1359, 2095, 1360, 1365,
-     1366, 1361, 1367, 1378, 2094, 2093, 1380, 1374, 2091, 1369,
-
-     1381, 2088, 1370, 2138, 2083,    0, 2081,    0, 2048,    0,
-     2046,    0, 2045,    0, 2042,    0, 2039,    0, 2038,    0,
-     1426, 1432, 1461, 1443, 2037, 2911, 1449, 1398, 1436, 1451,
-     2035, 2911, 2032,    0, 2029,    0, 2028,    0, 2027,    0,
-        0,    0, 2028,    0, 1437, 1440, 1382, 1443, 1426, 1393,
-     1390, 1444, 1453, 1454, 1428, 1424, 1457, 1456, 1458, 1463,
-     1472, 1468, 1477, 1475, 1508, 1481, 1482, 1484, 1483, 1487,
-     1486, 2025, 1488, 1491, 1494, 2024, 2023, 2021, 1497, 1498,
-     2018, 1499, 2017, 2016, 1505, 1500, 2014, 2007, 2005, 2004,
-     2001, 1997, 1506, 1510, 1993, 1512, 1504, 1989, 2037, 2911,
-
-     1982,    0, 1981,    0,    0,    0, 1982,    0,    0,    0,
-     2911,    0,    0,    0,    0, 1557, 1976, 2911, 2911, 1563,
-     1975,    0, 1974,    0,    0,    0,    0, 1972, 1518, 1538,
-     1972, 1523, 1540, 1543, 1551, 1541, 1554, 1552, 1559, 1545,
-     1971, 1558, 1568, 1569, 1573, 1571, 1587, 1577, 1575, 1606,
-     1582, 1583, 1586, 1588, 1589, 1590, 1591, 1970, 1968, 1595,
-     1965, 1964, 1597, 1593, 1599, 1963, 1601, 1603,    0,    0,
-        0, 1958, 1955, 1954, 1652,    0, 1953, 1951, 1948, 1947,
-     1946, 1947, 1944, 1943, 1610, 1942, 1608, 1940, 1614, 1629,
-     1604, 1630, 1616, 1632, 1607, 1635, 1637, 1665, 1937, 1641,
-
-     1936, 1642, 1646, 1648, 1654, 1643, 1647, 1935, 1652, 1933,
-     1930, 1929, 1656, 1928, 1926, 1916, 1914, 1913, 1910, 1909,
-     1908, 1906, 1889, 1880, 1879, 1876, 1869, 1659, 1660, 1869,
-     1661, 1662, 1663, 1664, 1669, 1671, 1862, 1667, 1700, 1678,
-     1860, 1676, 1688, 1689, 1684, 1683, 1690, 1694, 1856, 1835,
-     1834, 1833, 1826, 1824, 1823, 1781, 1778, 1777, 1775, 1774,
-     1773, 1774, 1772, 1695, 1696, 1702, 1697, 1704, 1708, 1707,
-     1771, 1767, 1709, 1766, 1719, 1714, 1718, 1713, 1720, 1712,
-     1674, 1602, 1521, 1519, 1382, 1199, 1197, 1721, 1726, 1077,
-     1732, 1723, 1734, 1033, 1737, 1738, 1742,  991,  957,  865,
-
-      773,  695, 1736, 1743, 1744, 1749, 1748, 1750,  570,  528,
-     1746,  385,  381, 1752, 1754,  277,  276, 1755, 1757, 1760,
-     1762, 1761, 1763, 1765,  238,  203, 2911, 1839, 1852, 1865,
-     1875, 1885, 1898, 1908, 1921, 1934, 1947, 1955, 1965, 1972,
-     1979, 1986, 1993, 2000, 2007, 2014, 2021, 2028, 2035, 2039,
-     2047, 2053, 2060, 2067, 2074, 2081, 2084, 2091, 2097, 2110,
-     2123, 2130, 2137, 2144, 2151, 2154, 2161, 2164, 2171, 2174,
-     2181, 2184, 2191, 2194, 2201, 2204, 2211, 2214, 2221, 2229,
-     2236, 2243, 2250, 2257, 2260, 2267, 2270, 2277, 2280, 2287,
-     2293, 2306, 2313, 2320, 2323, 2330, 2333, 2340, 2343, 2350,
-
-     2353, 2360, 2363, 2370, 2373, 2380, 2387, 2390, 2397, 2400,
-     2407, 2414, 2421, 2424, 2431, 2434, 2441, 2444, 2451, 2454,
-     2461, 2464, 2471, 2477, 2490, 2497, 2504, 2507, 2514, 2517,
-     2524, 2527, 2534, 2537, 2544, 2547, 2554, 2557, 2564, 2567,
-     2574, 2577, 2584, 2591, 2594, 2601, 2604, 2611, 2614, 2621,
-     2624, 2627, 2633, 2640, 2649, 2656, 2663, 2666, 2673, 2676,
-     2679, 2685, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713,
-     2720, 2723, 2730, 2733, 2736, 2739, 2742, 2752, 2759, 2762,
-     2765, 2768, 2775, 2782, 2789, 2792, 2799, 2806, 2813, 2820,
-     2827, 2834, 2841, 2848, 2855, 2862, 2869, 2876, 2883, 2890,
-
-     2897
-    } ;
-
-static yyconst flex_int16_t yy_def[1102] =
-    {   0,
-      927,    1,  928,  928,  927,    5,  929,  929,  930,  930,
-      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,   31,  927,  927,  927,  927,  927,  927,  932,  931,
-      927,  927,  927,  927,  931,  927,  931,  931,  931,  931,
-      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-      931,  931,  931,  931,  927,  927,  927,  927,  927,  933,
-      927,  927,  927,  934,  927,  927,  935,  927,  927,  936,
-      927,  927,  927,  927,  927,  927,  927,  931,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-
-      927,  927,  937,  927,  927,   30,  927,  927,  927,  927,
-      938,   30,  927,   31,  927,  927,   31,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  939,  927,  927,  927,  927,  931,  940,  941,  927,
-      927,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-      931,  931,  931,  931,  931,  931,  931,  931,  931,  931,
-
-      931,  927,  927,  927,  933,  933,  933,  927,  933,  927,
-      934,  927,  942,  943,  935,  927,  927,  927,  927,  944,
-      945,  946,  936,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  947,  948,  927,  101,
-      927,  927,  927,  927,  101,  937,  927,  101,  112,  249,
-      927,  927,  927,  927,  927,  927,  927,  927,  949,  950,
-      951,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  952,  927,  953,  954,  955,
-      956,  957,  958,  927,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
-      959,  959,  959,  959,  959,  960,  961,  962,  963,  964,
-      965,  966,  967,  927,  927,  968,  969,  970,  971,  972,
-      973,  927,  927,  927,  927,  927,  974,  975,  976,  977,
-      927,  927,  927,  927,  927,  927,  927,  387,  927,  383,
-      390,  927,  927,  978,  979,  980,  927,  927,  927,  980,
-
-      927,  927,  927,  981,  982,  983,  984,  985,  986,  987,
-      988,  989,  990,  927,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
-      991,  991,  991,  991,  991,  991,  991,  992,  993,  994,
-      995,  996,  997,  998,  999, 1000,  927, 1001, 1002, 1003,
-
-     1004, 1005, 1005, 1006, 1007, 1008, 1009,  927,  508,  927,
-      927, 1010,  927, 1010,  927,  927,  927,  927,  927,  927,
-      927,  927, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
-     1019, 1020, 1021, 1022, 1023, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-     1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
-
-     1024, 1024, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
-     1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
-      927,  927,  927,  927, 1042,  927,  623,  927,  927,  927,
-      627,  927, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
-     1051, 1052, 1053, 1054, 1053, 1053, 1053, 1053, 1053, 1053,
-     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
-     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
-     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
-     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
-     1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,  927,
-
-     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
-      927, 1066, 1067, 1068, 1069,  927,  716,  927,  927,  927,
-     1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1079, 1080,
-     1081, 1082, 1083, 1084,  927, 1085, 1070, 1072, 1086, 1087,
-     1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1088, 1089, 1082, 1090, 1083,
-     1091, 1084, 1092, 1093, 1086, 1094, 1087, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1095, 1088,
-     1096, 1089, 1097, 1090, 1098, 1091, 1099, 1092, 1100, 1093,
-     1094, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1101,
-     1095, 1096, 1097, 1098, 1072, 1099, 1100, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-
-     1101, 1072, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
-     1078, 1078, 1078, 1078, 1078, 1078,    0,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-
-      927
-    } ;
-
-static yyconst flex_int16_t yy_nxt[2998] =
-    {   0,
-       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
-       18,   19,   20,   21,   22,   23,   24,   25,   26,   27,
-       28,   29,   30,   31,   32,   32,   32,   32,   33,   34,
-       35,   36,   37,   38,   39,   18,   18,   18,   18,   18,
-       18,   18,   18,   40,   18,   18,   18,   18,   18,   18,
-       40,   18,   41,   42,   43,   44,   45,   46,   47,   48,
-       49,   50,   51,   52,   53,   18,   54,   18,   55,   56,
-       18,   57,   18,   58,   59,   60,   61,   62,   63,   18,
-       18,   64,   65,   66,   67,   68,   69,   86,   94,   87,
-       87,   69,   90,   91,   70,   73,   73,   73,   73,   73,
-
-       73,   73,   73,   73,   73,   74,   73,   73,   73,   73,
-       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
-       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
-       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   73,   75,   73,
-       73,   74,   76,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   73,   73,   73,
-       73,   78,   78,   81,   81,  125,  126,   92,  143,   81,
-       81,   89,   78,   78,   82,   83,   84,   84,   84,   82,
-
-       84,   83,   85,   85,   85,   84,   93,   95,   89,  180,
-      144,  100,   97,  101,  101,  101,  101,  101,  101,   89,
-      200,   96,  102,   87,   98,   99,   87,  103,  148,  120,
-       89,  145,   79,   79,   79,   79,  146,  104,  105,  164,
-      106,  106,  106,  106,  107,  107,  121,   89,  122,  123,
-      150,  162,  151,  163,  149,   89,   89,  108,  202,   89,
-      165,  109,  213,   89,  237,   89,   89,  166,  110,  111,
-      185,   89,  188,  167,  112,  181,   89,  199,   89,  147,
-      108,  172,  182,  173,   89,  278,  113,  201,  214,  183,
-      238,   89,  174,  257,  110,  184,   89,  111,  105,  322,
-
-      114,  114,  114,  114,  114,  114,  152,  153,  154,   89,
-      203,  279,  155,  156,  287,  157,  158,  108,  258,  159,
-      160,  115,  259,   89,   89,   89,  186,  161,  116,   89,
-       89,  187,  168,   89,  117,  255,  169,  189,  190,  145,
-      108,  170,  256,  314,  146,  171,  118,  191,   89,  927,
-      192,  207,  208,  175,  116,  127,  207,  197,  261,  128,
-      129,  176,  130,  177,  131,  132,  178,  133,  256,  134,
-      179,   89,  209,  209,  209,  209,  209,  209,  135,  136,
-      137,   89,   89,  193,   89,  267,  265,  147,  270,  443,
-      271,  194,  263,  195,  270,  270,  271,  271,  196,  264,
-
-      138,  198,  315,  139,  204,   83,   84,   84,   84,  204,
-      256,  266,  205,   82,   83,   84,   84,   84,   82,   84,
-       83,   84,   84,   84,   84,  264,   89,  270,  255,  271,
-      140,  141,  216,  217,   89,  289,  256,  216,   89,  218,
-      249,  249,  249,  249,  218,   84,   83,   85,   85,   85,
-       84,   89,  272,  219,  219,  219,  219,  248,  248,  248,
-      248,  248,  248,   89,  218,  264,  270,  290,  271,  927,
-      252,  484,  252,  272,  250,  253,  253,  253,  253,  253,
-      253,  220,  927,  263,  218,  270,  270,  271,  271,  218,
-      218,  264,   89,  218,  218,  273,  270,  927,  271,   89,
-
-      270,  218,  271,  270,  218,  271,  218,  221,  218,  254,
-      222,  224,  145,  927,  293,  225,  226,  146,  262,  325,
-      227,  228,   89,  229,  105,  230,  107,  107,  107,  107,
-      107,  107,   89,   89,  231,  232,  233,  270,  274,  271,
-      288,  927,   89,  108,   89,   89,   89,  285,   89,   89,
-       89,  291,   89,   89,  286,  311,  234,   89,  294,  235,
-      251,  306,  292,   89,  307,   89,  108,   89,  312,  309,
-      310,   89,  308,   89,  318,  316,  317,   89,  319,   89,
-       89,   89,  313,   89,  323,   89,   89,  236,  240,  240,
-      240,  240,  240,  240,   89,  358,  320,  324,  326,  321,
-
-      328,  338,  327,  330,  241,  242,  243,  329,  244,  243,
-       89,   89,   89,   89,   89,  331,  332,  372,  145,  373,
-      333,  359,  245,   89,  464,  343,   89,  243,  242,  243,
-       89,  341,  244,   89,  243,  295,  296,  297,   89,  298,
-      299,  334,   89,  300,  339,  301,  342,   89,   89,  335,
-      302,  303,  304,  345,  305,   89,   89,   89,   89,  336,
-      337,  340,  344,   89,   89,  372,  349,  373,  352,  350,
-      353,  354,  381,  381,  347,  346,  348,  351,  204,   83,
-       84,   84,   84,  204,  355,   89,  205,  207,  208,   89,
-      216,  217,  207,  207,  208,  216,  381,  564,  207,  356,
-
-      208,  372,  415,  373,  356,  372,  357,  373,  209,  209,
-      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
-      209,  209,  209,  209,  209,  209,  364,  364,  364,  364,
-      373,  373,  374,  372,  372,  373,  373,  372,  375,  373,
-      372,  381,  373,  372,  372,  373,  373,  372,  382,  373,
-      382,  927,  927,  383,  383,  383,  383,  383,  383,  385,
-      365,  385,   89,   89,  385,  381,  387,  387,  387,  387,
-      387,  387,  105,  392,  249,  249,  249,  249,  270,  270,
-      271,  271,  385,  423,  385,  429,  402,  384,  389,  385,
-      107,  107,  107,  107,  107,  107,  404,   89,   89,  392,
-
-      388,  253,  253,  253,  253,  253,  253,  108,  250,  252,
-       89,  252,  402,  432,  253,  253,  253,  253,  253,  253,
-       89,   89,  405,  431,  262,   89,  421,   89,  416,  927,
-      108,  390,  390,  390,  390,  390,  390,  395,  417,  563,
-      107,  107,  107,  107,  107,  107,   89,  241,   89,  243,
-      471,  244,  243,  114,  114,  114,  114,  114,  114,   89,
-      397,   89,  418,  398,   89,  391,  419,  399,  425,  424,
-      243,   89,  243,  400,  262,  244,  420,  243,  422,   89,
-       89,   89,   89,   89,  437,  401,   89,  267,  435,  398,
-      436,   89,   89,  399,  426,   89,  441,   89,  430,   89,
-
-      427,  428,  433,  434,   89,   89,  442,   89,   89,  438,
-      439,   89,  448,  440,  450,   89,  449,   89,   89,  444,
-       89,   89,  445,  453,   89,   89,  446,  447,   89,  452,
-       89,   89,   89,  455,  451,  457,  458,  454,   89,   89,
-      456,   89,   89,  459,   89,   89,   89,  461,  467,   89,
-      462,  466,  463,   89,   89,   89,  465,   89,   89,  469,
-      460,   89,   89,  468,   89,   89,  474,  145,   89,   89,
-       89,  470,  473,  472,   89,  485,  475,  479,  481,   89,
-      478,  476,   89,  477,  480,  208,  482,  483,  356,  208,
-      372,  206,  373,  356,  486,  357,  218,  218,  218,  218,
-
-      487,  364,  364,  364,  364,  372,   89,  373,   89,  603,
-       89,   89,   89,  383,  383,  383,  383,  383,  383,  382,
-      521,  382,  536,  538,  383,  383,  383,  383,  383,  383,
-      497,  508,  508,  508,  508,  508,  508,  240,  240,  240,
-      240,  240,  240,   89,   89,  522,  656,  241,   89,  243,
-       89,  244,  243,  249,  249,  249,  249,  107,  107,  390,
-      390,  390,  390,  390,  390,  509,  513,  539,  540,   89,
-      243,  386,  243,   89,  513,  244,  514,  243,  387,  387,
-      387,  387,  387,  387,  515,  395,   89,  389,  561,  537,
-      516,   89,  513,  391,  241,  242,  243,  517,  244,  243,
-
-      513,   89,  517,   89,  543,   89,  927,   89,  397,   89,
-      541,  398,  388,   89,  542,  399,  544,  243,  242,  243,
-      516,  400,  244,  517,  243,   89,  547,  545,  517,  397,
-       89,  549,  398,  401,  546,   89,  399,  398,  518,   89,
-      518,  399,  523,  519,  519,  519,  519,  519,  519,   89,
-       89,  548,  550,   89,  401,   89,   89,   89,  398,   89,
-      555,   89,  399,  558,   89,  551,  552,  560,   89,   89,
-       89,  554,  553,   89,  556,   89,   89,  520,   89,  562,
-       89,  557,  559,  567,  569,  571,   89,   89,   89,  565,
-      570,  566,   89,   89,   89,  572,  568,   89,   89,   89,
-
-       89,   89,   89,  575,   89,   89,  573,  579,  577,  574,
-       89,  580,   89,  584,  576,   89,   89,  578,   89,   89,
-       89,   89,  581,  583,  588,  586,  582,  589,  592,  591,
-       89,  585,  587,  590,   89,   89,   89,  593,   89,   89,
-       89,   89,  595,  596,  594,  208,  597,  600,  513,  602,
-      626,  604,  599,  927,  646,  927,  598,  218,  218,  218,
-      218,  601,  508,  508,  508,  508,  508,  508,  387,  387,
-      387,  387,  387,  387,  513,   89,  626,   89,  241,   89,
-      243,  513,  244,  243,  390,  390,  390,  390,  390,  390,
-       89,  514,  645,   89,  647,   89,  509,   89,   89,  513,
-
-      648,  243,  510,  243,   89,  665,  244,  513,  243,  625,
-      649,  650,  658,  661,  622,  651,  622,  652,  511,  623,
-      623,  623,  623,  623,  623,  513,  519,  519,  519,  519,
-      519,  519,  518,   89,  518,   89,   89,  519,  519,  519,
-      519,  519,  519,   89,   89,   89,  653,  655,  654,   89,
-       89,   89,   89,  624,  627,  627,  627,  627,  627,  627,
-       89,  663,   89,   89,  657,  662,  660,   89,  659,  668,
-      628,  666,  629,  667,  630,  629,  664,   89,   89,  671,
-       89,   89,   89,  670,  673,   89,  669,   89,  631,  672,
-       89,   89,   89,  629,   89,  629,  674,  675,  630,  676,
-
-      629,  677,   89,  679,  678,   89,   89,   89,   89,  680,
-      682,   89,   89,   89,   89,  683,  684,  681,   89,   89,
-       89,  688,   89,   89,  686,  693,  690,   89,  689,  687,
-      685,   89,  692,   89,   89,   89,  691,  695,  902,  696,
-      718,  718,  694,   89,  732,  698,   89,  697,  508,  508,
-      508,  508,  508,  508,  623,  623,  623,  623,  623,  623,
-      622,  736,  622,  735,  718,  623,  623,  623,  623,  623,
-      623,  627,  627,  627,  627,  627,  627,   89,  718,   89,
-      741,   89,  621,  716,  716,  716,  716,  716,  716,  719,
-       89,  719,  734,   89,  719,  729,   89,   89,  740,  628,
-
-      731,  629,  718,  630,  629,  631,   89,   89,  730,   89,
-       89,   89,  719,  738,  719,  739,   89,  717,  733,  719,
-      737,   89,  629,  742,  629,   89,  744,  630,   89,  629,
-       89,  743,  750,  748,   89,   89,   89,   89,  745,   89,
-       89,   89,  746,  747,   89,  749,  753,   89,  756,  751,
-       89,   89,   89,   89,  754,  752,  759,   89,   89,   89,
-      764,   89,  755,   89,  757,   89,  758,  763,  765,  762,
-      760,   89,  768,  766,  767,  927,   89,  927,  761,  716,
-      716,  716,  716,  716,  716,  627,  627,  627,  627,  627,
-      627,   89,  782,   89,   89,  628,   89,  629,   89,  630,
-
-      629,  783,  784,  786,   89,   89,  785,   89,  790,  787,
-      798,   89,   89,  717,  788,  791,  792,  793,  629,  720,
-      629,   89,   89,  630,   89,  629,   89,  789,   89,  796,
-       89,  795,  801,  799,  794,   89,   89,  800,  802,   89,
-       89,   89,   89,   89,   89,  797,   89,  804,   89,  803,
-       89,  805,   89,  808,   89,  806,   89,   89,  927,   89,
-       89,   89,  814,   89,  807,  815,  809,   89,  812,   89,
-      811,  810,  832,  813,  716,  716,  716,  716,  716,  716,
-      828,  829,   89,   89,  830,   89,  836,  831,   89,  839,
-       89,  837,  834,  833,   89,   89,   89,  840,  841,   89,
-
-       89,   89,  835,  838,  843,   89,  842,   89,  775,   89,
-      844,  845,   89,   89,   89,   89,   89,   89,   89,  866,
-       89,  862,   89,  846,   89,  868,  871,  869,  847,   89,
-      927,   89,  848,  865,  872,  864,   89,   89,  870,  867,
-      863,   89,   89,   89,  874,  875,  876,   89,   89,   89,
-       89,  873,  877,   89,  878,   89,  889,   89,  890,  891,
-       89,   89,   89,  879,  894,  896,   89,   89,  901,  888,
-      897,   89,   89,   89,   89,  892,   89,  895,  899,   89,
-      898,  893,  900,  903,  904,   89,  906,   89,  905,   89,
-       89,   89,  907,  908,  909,   89,   89,   89,  910,   89,
-
-      913,   89,   89,   89,  915,   89,  916,   89,   89,  911,
-       89,  912,  914,   89,   89,   89,   89,  920,   89,   89,
-       89,  917,  919,  921,   89,   89,  918,   89,  926,  927,
-      927,  887,  924,  927,  886,  922,  923,  927,  925,   71,
-       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
-       71,   71,   77,   77,   77,   77,   77,   77,   77,   77,
-       77,   77,   77,   77,   77,   80,   80,   80,   80,   80,
-       80,   80,   80,   80,   80,   80,   80,   80,   88,  884,
-      927,   88,  883,   88,   88,   88,   88,   88,  142,  927,
-      882,  927,  142,  142,  142,  142,  142,  142,  206,  206,
-
-      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
-      206,  211,  881,   89,  211,   89,  211,  211,  211,  211,
-      211,  215,   89,  215,  215,  927,  215,  215,  215,  215,
-      215,  215,  861,  215,  223,  927,  860,  223,  223,  223,
-      223,  223,  223,  223,  223,  858,  223,  246,  246,  246,
-      246,  246,  246,  246,  246,  246,  246,  246,  246,  246,
-      260,  260,  927,  260,  856,  927,  854,  260,  276,  927,
-      852,  276,  850,  276,  276,  276,  276,  276,  280,   89,
-      280,   89,   89,   89,  280,  282,   89,  282,   89,   89,
-       89,  282,  360,   89,  360,   89,   89,   89,  360,  362,
-
-       89,  362,  927,  827,  825,  362,  366,  927,  366,  927,
-      822,  820,  366,  368,  818,  368,   89,   89,   89,  368,
-      370,   89,  370,   89,   89,   89,  370,  377,  781,  377,
-      778,  777,  775,  377,  379,  212,  379,  771,  770,  700,
-      379,  394,   89,  394,  396,  396,   89,  396,  396,  396,
-       89,  396,  260,  260,   89,  260,  276,   89,   89,  276,
-       89,  276,  276,  276,  276,  276,  406,   89,  406,   89,
-       89,   89,  406,  408,   89,  408,   89,   89,   89,  408,
-      410,   89,  410,  727,  726,  724,  410,  280,  722,  280,
-      412,  720,  412,  625,  715,  714,  412,  282,  712,  282,
-
-       88,  710,  708,   88,  706,   88,   88,   88,   88,   88,
-      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
-      206,  206,  206,  488,  488,  488,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  489,  704,  489,  702,
-      700,   89,  489,  491,   89,  491,   89,   89,   89,  491,
-      493,   89,  493,   89,   89,   89,  493,  360,   89,  360,
-      495,   89,  495,   89,   89,   89,  495,  362,  644,  362,
-      498,  642,  498,  640,  638,  636,  498,  366,  634,  366,
-      500,  523,  500,  632,  632,  621,  500,  368,  620,  368,
-      502,  618,  502,  503,  503,  616,  502,  370,  614,  370,
-
-      504,  612,  504,  610,  608,  606,  504,  377,   89,  377,
-      506,   89,  506,   89,   89,   89,  506,  379,   89,  379,
-      512,   89,  512,   89,  512,  535,  512,  394,  533,  394,
-      531,  394,  529,  394,  396,  396,  527,  396,  396,  396,
-      525,  396,  524,  511,  524,  510,  507,  505,  524,  526,
-      373,  526,  373,  503,  501,  526,  528,  499,  528,  496,
-      494,  492,  528,  406,  490,  406,  530,   89,  530,   89,
-       89,  414,  530,  408,  413,  408,  532,  411,  532,  409,
-      407,  277,  532,  410,  272,  410,  534,  271,  534,  403,
-      403,  259,  534,  412,  393,  412,   88,  393,  247,   88,
-
-      386,   88,   88,   88,   88,   88,  488,  488,  488,  488,
-      488,  488,  488,  488,  488,  488,  488,  488,  488,  605,
-      380,  605,  378,  376,  372,  605,  489,  371,  489,  607,
-      369,  607,  367,  363,  361,  607,  491,  212,  491,  609,
-      208,  609,   89,  284,  283,  609,  493,  281,  493,  611,
-      277,  611,  272,  275,  272,  611,  495,  270,  495,  613,
-      269,  613,  268,  247,  239,  613,  498,   87,  498,  615,
-       87,  615,   89,  212,  210,  615,  500,   87,  500,  502,
-      124,  502,  119,   89,  927,  502,  617,   72,  617,   72,
-      927,  927,  617,  504,  927,  504,  619,  927,  619,  927,
-
-      927,  927,  619,  506,  927,  506,  512,  927,  512,  927,
-      512,  927,  512,  396,  927,  396,  927,  927,  927,  396,
-      633,  927,  633,  927,  927,  927,  633,  524,  927,  524,
-      635,  927,  635,  927,  927,  927,  635,  526,  927,  526,
-      637,  927,  637,  927,  927,  927,  637,  528,  927,  528,
-      639,  927,  639,  927,  927,  927,  639,  530,  927,  530,
-      641,  927,  641,  927,  927,  927,  641,  532,  927,  532,
-      643,  927,  643,  927,  927,  927,  643,  534,  927,  534,
-       88,  927,  927,   88,  927,   88,   88,   88,   88,   88,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-
-      699,  699,  699,  701,  927,  701,  927,  927,  927,  701,
-      605,  927,  605,  703,  927,  703,  927,  927,  927,  703,
-      607,  927,  607,  705,  927,  705,  927,  927,  927,  705,
-      609,  927,  609,  707,  927,  707,  927,  927,  927,  707,
-      611,  927,  611,  709,  927,  709,  927,  927,  927,  709,
-      613,  927,  613,  711,  927,  711,  927,  927,  927,  711,
-      615,  927,  615,  713,  927,  713,  927,  927,  927,  713,
-      617,  927,  617,   88,  927,   88,  927,  927,  927,   88,
-      619,  927,  619,  512,  927,  512,  927,  927,  927,  512,
-      721,  927,  721,  927,  927,  927,  721,  633,  927,  633,
-
-      723,  927,  723,  927,  927,  927,  723,  635,  927,  635,
-      725,  927,  725,  927,  927,  927,  725,  637,  927,  637,
-      142,  927,  142,  927,  927,  927,  142,  639,  927,  639,
-      728,  927,  728,  641,  927,  641,   88,  927,  927,   88,
-      927,   88,   88,   88,   88,   88,  643,  927,  643,  699,
-      699,  699,  699,  699,  699,  699,  699,  699,  699,  699,
-      699,  699,  769,  927,  769,  927,  927,  927,  769,  701,
-      927,  701,  211,  927,  211,  927,  927,  927,  211,  703,
-      927,  703,  772,  927,  772,  705,  927,  705,  211,  927,
-      927,  211,  927,  211,  211,  211,  211,  211,  707,  927,
-
-      707,  773,  927,  773,  709,  927,  709,  711,  927,  711,
-      774,  927,  774,  713,  927,  713,   88,  927,   88,  776,
-      927,  776,  927,  927,  927,  776,  721,  927,  721,  276,
-      927,  276,  927,  927,  927,  276,  723,  927,  723,  779,
-      927,  779,  725,  927,  725,  142,  927,  142,  780,  927,
-      780,  927,  927,  927,  780,   88,  927,  927,   88,  927,
-       88,   88,   88,   88,   88,  816,  927,  816,  769,  927,
-      769,  211,  927,  211,  817,  927,  817,  927,  927,  927,
-      817,  819,  927,  819,  927,  927,  927,  819,  821,  927,
-      821,  927,  927,  927,  821,  823,  927,  823,  824,  927,
-
-      824,  927,  927,  927,  824,  826,  927,  826,  927,  927,
-      927,  826,  849,  927,  849,  927,  927,  927,  849,  851,
-      927,  851,  927,  927,  927,  851,  853,  927,  853,  927,
-      927,  927,  853,  855,  927,  855,  927,  927,  927,  855,
-      857,  927,  857,  927,  927,  927,  857,  859,  927,  859,
-      927,  927,  927,  859,  643,  927,  643,  927,  927,  927,
-      643,  880,  927,  880,  927,  927,  927,  880,  707,  927,
-      707,  927,  927,  927,  707,  711,  927,  711,  927,  927,
-      927,  711,   88,  927,   88,  927,  927,  927,   88,  885,
-      927,  885,  927,  927,  927,  885,  142,  927,  142,  927,
-
-      927,  927,  142,  211,  927,  211,  927,  927,  927,  211,
-       11,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927
-
-    } ;
-
-static yyconst flex_int16_t yy_chk[2998] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    2,   16,   24,   16,
-       24,    2,   19,   19,    2,    5,    5,    5,    5,    5,
-
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    7,    8,    9,   10,   37,   37,   20,   39,    9,
-       10,   53,    7,    8,   13,   13,   13,   13,   13,   13,
-
-       15,   15,   15,   15,   15,   15,   20,   25,   63,   53,
-       39,   28,   27,   28,   28,   28,   28,   28,   28,   48,
-       63,   25,   29,   25,   27,   27,   27,   29,   42,   35,
-       47,   40,    7,    8,    9,   10,   40,   29,   30,   48,
-       30,   30,   30,   30,   30,   30,   35,   56,   35,   35,
-       44,   47,   44,   47,   42,   49,  926,   30,   66,   62,
-       49,   30,   75,   58,   89,   54,   51,   49,   30,   30,
-       56,   55,   58,   49,   30,   54,   40,   62,   64,   40,
-       30,   51,   54,   51,  175,  144,   30,   64,   75,   55,
-       89,  925,   51,  110,   30,   55,  153,   30,   31,  175,
-
-       31,   31,   31,   31,   31,   31,   45,   45,   45,   57,
-       66,  144,   45,   45,  153,   45,   45,   31,  110,   45,
-       45,   31,  111,   50,   45,   59,   57,   45,   31,  917,
-      916,   57,   50,  168,   31,  109,   50,   59,   59,   61,
-       31,   50,  109,  168,   61,   50,   31,   59,   52,  117,
-       59,   70,   70,   52,   31,   38,   70,   61,  111,   38,
-       38,   52,   38,   52,   38,   38,   52,   38,  109,   38,
-       52,   60,   70,   70,   70,   70,   70,   70,   38,   38,
-       38,  169,  310,   60,   61,  117,  116,   61,  128,  310,
-      128,   60,  115,   60,  129,  131,  129,  131,   60,  115,
-
-       38,   61,  169,   38,   69,   69,   69,   69,   69,   69,
-      113,  116,   69,   82,   82,   82,   82,   82,   82,   84,
-       84,   84,   84,   84,   84,  115,  155,  134,  113,  134,
-       38,   38,   79,   79,  913,  155,  113,   79,  912,   79,
-      106,  106,  106,  106,   79,   85,   85,   85,   85,   85,
-       85,  156,  132,   79,   79,   79,   79,  105,  105,  105,
-      105,  105,  105,  352,   79,  118,  132,  156,  132,  106,
-      108,  352,  108,  133,  106,  108,  108,  108,  108,  108,
-      108,   79,  112,  118,   79,  133,  136,  133,  136,   79,
-       79,  118,  159,   79,   79,  135,  135,  106,  135,  178,
-
-      139,   79,  139,  141,   79,  141,   79,   79,   79,  108,
-       79,   87,  147,  112,  159,   87,   87,  147,  112,  178,
-       87,   87,  154,   87,  107,   87,  107,  107,  107,  107,
-      107,  107,  152,  157,   87,   87,   87,  137,  137,  137,
-      154,  112,  163,  107,  158,  162,  160,  152,  165,  171,
-      166,  157,  170,  172,  152,  166,   87,  147,  160,   87,
-      107,  162,  158,  164,  163,  167,  107,  176,  166,  165,
-      165,  179,  164,  173,  172,  170,  171,  174,  173,  177,
-      180,  910,  167,  189,  176,  182,  183,   87,  101,  101,
-      101,  101,  101,  101,  185,  212,  173,  177,  179,  174,
-
-      182,  189,  180,  183,  101,  101,  101,  182,  101,  101,
-      184,  186,  192,  330,  187,  184,  185,  225,  197,  225,
-      186,  212,  101,  909,  330,  192,  191,  101,  101,  101,
-      161,  191,  101,  190,  101,  161,  161,  161,  188,  161,
-      161,  187,  193,  161,  190,  161,  191,  195,  194,  188,
-      161,  161,  161,  194,  161,  199,  198,  196,  200,  188,
-      188,  190,  193,  197,  201,  226,  197,  226,  199,  198,
-      199,  200,  241,  241,  195,  194,  196,  198,  204,  204,
-      204,  204,  204,  204,  201,  443,  204,  205,  205,  285,
-      216,  216,  205,  207,  207,  216,  241,  443,  207,  209,
-
-      209,  227,  285,  227,  209,  230,  209,  230,  205,  205,
-      205,  205,  205,  205,  207,  207,  207,  207,  207,  207,
-      209,  209,  209,  209,  209,  209,  219,  219,  219,  219,
-      228,  229,  231,  231,  232,  231,  232,  233,  233,  233,
-      235,  243,  235,  229,  228,  229,  228,  236,  242,  236,
-      242,  902,  250,  242,  242,  242,  242,  242,  242,  244,
-      219,  244,  296,  292,  244,  243,  248,  248,  248,  248,
-      248,  248,  249,  255,  249,  249,  249,  249,  273,  274,
-      273,  274,  244,  292,  244,  296,  263,  242,  250,  244,
-      251,  251,  251,  251,  251,  251,  277,  298,  299,  255,
-
-      248,  252,  252,  252,  252,  252,  252,  251,  249,  254,
-      286,  254,  263,  299,  254,  254,  254,  254,  254,  254,
-      287,  290,  277,  298,  251,  441,  290,  337,  286,  901,
-      251,  253,  253,  253,  253,  253,  253,  260,  287,  441,
-      262,  262,  262,  262,  262,  262,  288,  253,  294,  253,
-      337,  253,  253,  267,  267,  267,  267,  267,  267,  289,
-      260,  291,  288,  260,  293,  253,  288,  260,  294,  293,
-      253,  303,  253,  260,  262,  253,  289,  253,  291,  295,
-      297,  302,  304,  301,  303,  260,  300,  267,  301,  260,
-      302,  308,  305,  260,  295,  307,  308,  309,  297,  311,
-
-      295,  295,  300,  300,  312,  313,  309,  314,  316,  304,
-      305,  315,  314,  307,  316,  317,  315,  319,  900,  311,
-      318,  320,  312,  319,  321,  322,  313,  313,  326,  318,
-      323,  324,  327,  321,  317,  323,  324,  320,  325,  328,
-      322,  331,  332,  325,  334,  333,  335,  326,  333,  336,
-      327,  332,  328,  338,  341,  339,  331,  340,  342,  335,
-      325,  343,  344,  334,  345,  347,  340,  349,  350,  348,
-      353,  336,  339,  338,  351,  353,  341,  345,  348,  354,
-      344,  342,  355,  343,  347,  357,  350,  351,  356,  356,
-      374,  357,  374,  356,  354,  356,  364,  364,  364,  364,
-
-      355,  365,  365,  365,  365,  375,  487,  375,  417,  487,
-      899,  415,  349,  382,  382,  382,  382,  382,  382,  384,
-      399,  384,  415,  417,  384,  384,  384,  384,  384,  384,
-      364,  383,  383,  383,  383,  383,  383,  386,  386,  386,
-      386,  386,  386,  548,  898,  399,  548,  383,  418,  383,
-      419,  383,  383,  389,  389,  389,  389,  389,  389,  390,
-      390,  390,  390,  390,  390,  383,  394,  418,  419,  438,
-      383,  386,  383,  416,  395,  383,  394,  383,  387,  387,
-      387,  387,  387,  387,  395,  396,  894,  389,  438,  416,
-      397,  422,  394,  390,  387,  387,  387,  397,  387,  387,
-
-      395,  420,  401,  421,  422,  424,  400,  423,  396,  428,
-      420,  396,  387,  426,  421,  396,  423,  387,  387,  387,
-      401,  396,  387,  397,  387,  425,  426,  424,  401,  400,
-      890,  428,  400,  396,  425,  427,  400,  396,  398,  429,
-      398,  396,  400,  398,  398,  398,  398,  398,  398,  430,
-      431,  427,  429,  432,  400,  433,  437,  435,  400,  434,
-      433,  436,  400,  435,  439,  430,  430,  437,  445,  446,
-      447,  432,  431,  448,  434,  450,  451,  398,  449,  439,
-      453,  434,  436,  447,  449,  451,  455,  456,  457,  445,
-      450,  446,  458,  459,  463,  453,  448,  460,  461,  465,
-
-      466,  467,  472,  457,  468,  470,  455,  461,  459,  456,
-      469,  463,  471,  468,  458,  474,  475,  460,  473,  478,
-      479,  476,  465,  467,  472,  470,  466,  473,  476,  475,
-      477,  469,  471,  474,  480,  482,  483,  477,  481,  485,
-      486,  537,  479,  480,  478,  488,  481,  483,  515,  486,
-      516,  488,  482,  887,  537,  886,  481,  497,  497,  497,
-      497,  485,  508,  508,  508,  508,  508,  508,  510,  510,
-      510,  510,  510,  510,  515,  536,  516,  540,  508,  539,
-      508,  512,  508,  508,  511,  511,  511,  511,  511,  511,
-      541,  512,  536,  543,  539,  544,  508,  550,  542,  514,
-
-      540,  508,  510,  508,  553,  557,  508,  512,  508,  514,
-      541,  542,  550,  553,  513,  543,  513,  544,  511,  513,
-      513,  513,  513,  513,  513,  514,  518,  518,  518,  518,
-      518,  518,  520,  545,  520,  557,  547,  520,  520,  520,
-      520,  520,  520,  546,  549,  552,  545,  547,  546,  551,
-      555,  559,  560,  513,  519,  519,  519,  519,  519,  519,
-      554,  555,  558,  556,  549,  554,  552,  567,  551,  560,
-      519,  558,  519,  559,  519,  519,  556,  561,  562,  564,
-      565,  568,  569,  562,  567,  564,  561,  573,  519,  565,
-      570,  574,  572,  519,  575,  519,  568,  569,  519,  570,
-
-      519,  572,  577,  574,  573,  578,  580,  581,  585,  575,
-      578,  586,  587,  589,  592,  580,  581,  577,  590,  591,
-      593,  589,  600,  603,  586,  594,  591,  598,  590,  587,
-      585,  594,  593,  597,  601,  647,  592,  598,  885,  600,
-      628,  628,  597,  651,  647,  603,  650,  601,  621,  621,
-      621,  621,  621,  621,  622,  622,  622,  622,  622,  622,
-      624,  651,  624,  650,  628,  624,  624,  624,  624,  624,
-      624,  627,  627,  627,  627,  627,  627,  656,  629,  649,
-      656,  655,  621,  623,  623,  623,  623,  623,  623,  630,
-      645,  630,  649,  646,  630,  645,  648,  652,  655,  623,
-
-      646,  623,  629,  623,  623,  627,  653,  654,  645,  658,
-      657,  659,  630,  653,  630,  654,  660,  623,  648,  630,
-      652,  662,  623,  657,  623,  661,  659,  623,  664,  623,
-      663,  658,  665,  663,  666,  667,  669,  668,  660,  671,
-      670,  673,  661,  662,  674,  664,  668,  675,  671,  666,
-      679,  680,  682,  686,  669,  667,  675,  697,  685,  693,
-      686,  665,  670,  694,  673,  696,  674,  685,  693,  682,
-      679,  729,  697,  694,  696,  884,  732,  883,  680,  716,
-      716,  716,  716,  716,  716,  720,  720,  720,  720,  720,
-      720,  730,  729,  733,  736,  716,  734,  716,  740,  716,
-
-      716,  730,  732,  734,  735,  738,  733,  737,  738,  735,
-      747,  742,  739,  716,  736,  739,  740,  742,  716,  720,
-      716,  743,  744,  716,  746,  716,  745,  737,  749,  745,
-      748,  744,  750,  748,  743,  751,  752,  749,  751,  753,
-      747,  754,  755,  756,  757,  746,  764,  753,  760,  752,
-      763,  754,  765,  757,  767,  755,  768,  791,  882,  750,
-      795,  787,  767,  785,  756,  768,  760,  789,  764,  793,
-      763,  760,  791,  765,  775,  775,  775,  775,  775,  775,
-      785,  787,  790,  792,  789,  794,  795,  790,  796,  798,
-      797,  796,  793,  792,  800,  802,  806,  800,  802,  803,
-
-      807,  804,  794,  797,  804,  809,  803,  805,  775,  813,
-      805,  806,  828,  829,  831,  832,  833,  834,  798,  833,
-      838,  828,  835,  807,  836,  835,  839,  836,  809,  842,
-      881,  840,  813,  832,  840,  831,  846,  845,  838,  834,
-      829,  843,  844,  847,  843,  844,  845,  848,  864,  865,
-      867,  842,  846,  839,  847,  866,  865,  868,  866,  867,
-      870,  869,  873,  848,  869,  873,  878,  876,  880,  864,
-      876,  877,  875,  879,  888,  868,  892,  870,  878,  889,
-      877,  868,  879,  888,  889,  891,  892,  893,  891,  903,
-      895,  896,  893,  895,  896,  897,  904,  905,  897,  911,
-
-      905,  907,  906,  908,  907,  914,  908,  915,  918,  903,
-      919,  904,  906,  920,  922,  921,  923,  918,  924,  874,
-      872,  911,  915,  919,  871,  863,  914,  862,  924,  861,
-      860,  859,  922,  858,  857,  920,  921,  856,  923,  928,
-      928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
-      928,  928,  929,  929,  929,  929,  929,  929,  929,  929,
-      929,  929,  929,  929,  929,  930,  930,  930,  930,  930,
-      930,  930,  930,  930,  930,  930,  930,  930,  931,  855,
-      854,  931,  853,  931,  931,  931,  931,  931,  932,  852,
-      851,  850,  932,  932,  932,  932,  932,  932,  933,  933,
-
-      933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
-      933,  934,  849,  841,  934,  837,  934,  934,  934,  934,
-      934,  935,  830,  935,  935,  827,  935,  935,  935,  935,
-      935,  935,  826,  935,  936,  825,  824,  936,  936,  936,
-      936,  936,  936,  936,  936,  823,  936,  937,  937,  937,
-      937,  937,  937,  937,  937,  937,  937,  937,  937,  937,
-      938,  938,  822,  938,  821,  820,  819,  938,  939,  818,
-      817,  939,  816,  939,  939,  939,  939,  939,  940,  815,
-      940,  814,  812,  811,  940,  941,  810,  941,  808,  801,
-      799,  941,  942,  788,  942,  786,  784,  783,  942,  943,
-
-      782,  943,  781,  780,  779,  943,  944,  778,  944,  777,
-      774,  773,  944,  945,  772,  945,  766,  762,  761,  945,
-      946,  759,  946,  758,  741,  731,  946,  947,  728,  947,
-      723,  721,  717,  947,  948,  707,  948,  703,  701,  699,
-      948,  949,  698,  949,  950,  950,  695,  950,  950,  950,
-      692,  950,  951,  951,  691,  951,  952,  690,  689,  952,
-      688,  952,  952,  952,  952,  952,  953,  687,  953,  684,
-      683,  681,  953,  954,  678,  954,  677,  676,  672,  954,
-      955,  643,  955,  639,  637,  635,  955,  956,  633,  956,
-      957,  631,  957,  625,  619,  617,  957,  958,  615,  958,
-
-      959,  613,  611,  959,  609,  959,  959,  959,  959,  959,
-      960,  960,  960,  960,  960,  960,  960,  960,  960,  960,
-      960,  960,  960,  961,  961,  961,  961,  961,  961,  961,
-      961,  961,  961,  961,  961,  961,  962,  607,  962,  605,
-      604,  602,  962,  963,  599,  963,  596,  595,  588,  963,
-      964,  584,  964,  583,  582,  579,  964,  965,  576,  965,
-      966,  571,  966,  566,  563,  538,  966,  967,  534,  967,
-      968,  532,  968,  530,  528,  526,  968,  969,  524,  969,
-      970,  523,  970,  522,  521,  509,  970,  971,  506,  971,
-      972,  504,  972,  503,  502,  500,  972,  973,  498,  973,
-
-      974,  495,  974,  493,  491,  489,  974,  975,  484,  975,
-      976,  464,  976,  462,  454,  452,  976,  977,  444,  977,
-      978,  442,  978,  440,  978,  412,  978,  979,  410,  979,
-      408,  979,  406,  979,  980,  980,  405,  980,  980,  980,
-      404,  980,  981,  391,  981,  388,  379,  377,  981,  982,
-      376,  982,  372,  370,  368,  982,  983,  366,  983,  362,
-      360,  359,  983,  984,  358,  984,  985,  346,  985,  329,
-      306,  284,  985,  986,  282,  986,  987,  280,  987,  279,
-      278,  276,  987,  988,  275,  988,  989,  270,  989,  266,
-      265,  261,  989,  990,  258,  990,  991,  257,  246,  991,
-
-      245,  991,  991,  991,  991,  991,  992,  992,  992,  992,
-      992,  992,  992,  992,  992,  992,  992,  992,  992,  993,
-      238,  993,  237,  234,  224,  993,  994,  222,  994,  995,
-      221,  995,  220,  214,  213,  995,  996,  211,  996,  997,
-      206,  997,  181,  151,  149,  997,  998,  148,  998,  999,
-      142,  999,  140,  138,  130,  999, 1000,  127, 1000, 1001,
-      126, 1001,  122,  103,  100, 1001, 1002,   97, 1002, 1003,
-       95, 1003,   88,   74,   72, 1003, 1004,   68, 1004, 1005,
-       36, 1005,   33,   18,   11, 1005, 1006,    4, 1006,    3,
-        0,    0, 1006, 1007,    0, 1007, 1008,    0, 1008,    0,
-
-        0,    0, 1008, 1009,    0, 1009, 1010,    0, 1010,    0,
-     1010,    0, 1010, 1011,    0, 1011,    0,    0,    0, 1011,
-     1012,    0, 1012,    0,    0,    0, 1012, 1013,    0, 1013,
-     1014,    0, 1014,    0,    0,    0, 1014, 1015,    0, 1015,
-     1016,    0, 1016,    0,    0,    0, 1016, 1017,    0, 1017,
-     1018,    0, 1018,    0,    0,    0, 1018, 1019,    0, 1019,
-     1020,    0, 1020,    0,    0,    0, 1020, 1021,    0, 1021,
-     1022,    0, 1022,    0,    0,    0, 1022, 1023,    0, 1023,
-     1024,    0,    0, 1024,    0, 1024, 1024, 1024, 1024, 1024,
-     1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
-
-     1025, 1025, 1025, 1026,    0, 1026,    0,    0,    0, 1026,
-     1027,    0, 1027, 1028,    0, 1028,    0,    0,    0, 1028,
-     1029,    0, 1029, 1030,    0, 1030,    0,    0,    0, 1030,
-     1031,    0, 1031, 1032,    0, 1032,    0,    0,    0, 1032,
-     1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
-     1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
-     1037,    0, 1037, 1038,    0, 1038,    0,    0,    0, 1038,
-     1039,    0, 1039, 1040,    0, 1040,    0,    0,    0, 1040,
-     1041,    0, 1041, 1042,    0, 1042,    0,    0,    0, 1042,
-     1043,    0, 1043,    0,    0,    0, 1043, 1044,    0, 1044,
-
-     1045,    0, 1045,    0,    0,    0, 1045, 1046,    0, 1046,
-     1047,    0, 1047,    0,    0,    0, 1047, 1048,    0, 1048,
-     1049,    0, 1049,    0,    0,    0, 1049, 1050,    0, 1050,
-     1051,    0, 1051, 1052,    0, 1052, 1053,    0,    0, 1053,
-        0, 1053, 1053, 1053, 1053, 1053, 1054,    0, 1054, 1055,
-     1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
-     1055, 1055, 1056,    0, 1056,    0,    0,    0, 1056, 1057,
-        0, 1057, 1058,    0, 1058,    0,    0,    0, 1058, 1059,
-        0, 1059, 1060,    0, 1060, 1061,    0, 1061, 1062,    0,
-        0, 1062,    0, 1062, 1062, 1062, 1062, 1062, 1063,    0,
-
-     1063, 1064,    0, 1064, 1065,    0, 1065, 1066,    0, 1066,
-     1067,    0, 1067, 1068,    0, 1068, 1069,    0, 1069, 1070,
-        0, 1070,    0,    0,    0, 1070, 1071,    0, 1071, 1072,
-        0, 1072,    0,    0,    0, 1072, 1073,    0, 1073, 1074,
-        0, 1074, 1075,    0, 1075, 1076,    0, 1076, 1077,    0,
-     1077,    0,    0,    0, 1077, 1078,    0,    0, 1078,    0,
-     1078, 1078, 1078, 1078, 1078, 1079,    0, 1079, 1080,    0,
-     1080, 1081,    0, 1081, 1082,    0, 1082,    0,    0,    0,
-     1082, 1083,    0, 1083,    0,    0,    0, 1083, 1084,    0,
-     1084,    0,    0,    0, 1084, 1085,    0, 1085, 1086,    0,
-
-     1086,    0,    0,    0, 1086, 1087,    0, 1087,    0,    0,
-        0, 1087, 1088,    0, 1088,    0,    0,    0, 1088, 1089,
-        0, 1089,    0,    0,    0, 1089, 1090,    0, 1090,    0,
-        0,    0, 1090, 1091,    0, 1091,    0,    0,    0, 1091,
-     1092,    0, 1092,    0,    0,    0, 1092, 1093,    0, 1093,
-        0,    0,    0, 1093, 1094,    0, 1094,    0,    0,    0,
-     1094, 1095,    0, 1095,    0,    0,    0, 1095, 1096,    0,
-     1096,    0,    0,    0, 1096, 1097,    0, 1097,    0,    0,
-        0, 1097, 1098,    0, 1098,    0,    0,    0, 1098, 1099,
-        0, 1099,    0,    0,    0, 1099, 1100,    0, 1100,    0,
-
-        0,    0, 1100, 1101,    0, 1101,    0,    0,    0, 1101,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927,  927,  927,  927,
-      927,  927,  927,  927,  927,  927,  927
-
-    } ;
-
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[191] =
-    {   0,
-1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     };
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int yy_flex_debug;
-int yy_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "lex.ll"
-/*
- * Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
- *
- * The contents of this file are covered under the licence agreement in the
- * file "LICENCE" distributed with Cforall.
- *
- * lex.l --
- *
- * Author           : Peter A. Buhr
- * Created On       : Sat Sep 22 08:58:10 2001
- * Last Modified By : Peter A. Buhr
- * Last Modified On : Thu Mar  9 21:38:26 2017
- * Update Count     : 505
- */
-#line 20 "lex.ll"
-// This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been
-// performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g.,
-// line-number directives) and C/C++ style comments, which are ignored.
-
-//**************************** Includes and Defines ****************************
-
-#include <string>
-#include <cstdio>										// FILENAME_MAX
-
-#include "lex.h"
-#include "parser.h"										// YACC generated definitions based on C++ grammar
-#include "ParseNode.h"
-#include "TypedefTable.h"
-
-char *yyfilename;
-std::string *strtext;									// accumulate parts of character and string constant value
-
-#define RETURN_LOCN(x)		yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x )
-#define RETURN_VAL(x)		yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x )
-#define RETURN_CHAR(x)		yylval.tok.str = nullptr; RETURN_LOCN( x )
-#define RETURN_STR(x)		yylval.tok.str = strtext; RETURN_LOCN( x )
-
-#define WHITE_RETURN(x)		// do nothing
-#define NEWLINE_RETURN()	WHITE_RETURN( '\n' )
-#define ASCIIOP_RETURN()	RETURN_CHAR( (int)yytext[0] ) // single character operator
-#define NAMEDOP_RETURN(x)	RETURN_CHAR( x )			// multichar operator, with a name
-#define NUMERIC_RETURN(x)	rm_underscore(); RETURN_VAL( x ) // numeric constant
-#define KEYWORD_RETURN(x)	RETURN_CHAR( x )			// keyword
-#define IDENTIFIER_RETURN()	RETURN_VAL( typedefTable.isKind( yytext ) )
-#define ATTRIBUTE_RETURN()	RETURN_VAL( ATTR_IDENTIFIER )
-
-void rm_underscore() {
-	// Remove underscores in numeric constant by copying the non-underscore characters to the front of the string.
-	yyleng = 0;
-	for ( int i = 0; yytext[i] != '\0'; i += 1 ) {
-		if ( yytext[i] != '_' ) {
-			yytext[yyleng] = yytext[i];
-			yyleng += 1;
-		} // if
-	} // for
-	yytext[yyleng] = '\0';
-}
-
-// identifier, GCC: $ in identifier
-// attribute identifier, GCC: $ in identifier
-// numeric constants, CFA: '_' in constant
-// GCC: D (double), DL (long double) and iI (imaginary) suffixes
-//floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
-// character escape sequence, GCC: \e => esc character
-// ' stop highlighting
-// display/white-space characters
-// overloadable operators
-// op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="
-// operator {op_unary_pre_post}|{op_binary_over}|{op_binary_not_over}
-
-
-
-
-#line 1567 "Parser/lex.cc"
-
-#define INITIAL 0
-#define COMMENT 1
-#define BKQUOTE 2
-#define QUOTE 3
-#define STRING 4
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
-
-/* Accessor methods to globals.
-   These are made visible to non-reentrant scanners for convenience. */
-
-int yylex_destroy (void );
-
-int yyget_debug (void );
-
-void yyset_debug (int debug_flag  );
-
-YY_EXTRA_TYPE yyget_extra (void );
-
-void yyset_extra (YY_EXTRA_TYPE user_defined  );
-
-FILE *yyget_in (void );
-
-void yyset_in  (FILE * in_str  );
-
-FILE *yyget_out (void );
-
-void yyset_out  (FILE * out_str  );
-
-int yyget_leng (void );
-
-char *yyget_text (void );
-
-int yyget_lineno (void );
-
-void yyset_lineno (int line_number  );
-
-/* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
-
-#ifndef YY_SKIP_YYWRAP
-#ifdef __cplusplus
-extern "C" int yywrap (void );
-#else
-extern int yywrap (void );
-#endif
-#endif
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
-#endif
-
-#ifndef YY_NO_INPUT
-
-#ifdef __cplusplus
-static int yyinput (void );
-#else
-static int input (void );
-#endif
-
-#endif
-
-/* Amount of stuff to slurp up with each read. */
-#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
-#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
-#endif
-
-/* Copy whatever the last rule matched to the standard output. */
-#ifndef ECHO
-/* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
-#endif
-
-/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#ifndef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
-		{ \
-		int c = '*'; \
-		size_t n; \
-		for ( n = 0; n < max_size && \
-			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
-			buf[n] = (char) c; \
-		if ( c == '\n' ) \
-			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( yyin ) ) \
-			YY_FATAL_ERROR( "input in flex scanner failed" ); \
-		result = n; \
-		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(yyin); \
-			} \
-		}\
-\
-
-#endif
-
-/* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#ifndef yyterminate
-#define yyterminate() return YY_NULL
-#endif
-
-/* Number of entries by which start-condition stack grows. */
-#ifndef YY_START_STACK_INCR
-#define YY_START_STACK_INCR 25
-#endif
-
-/* Report a fatal error. */
-#ifndef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
-#endif
-
-/* end tables serialization structures and prototypes */
-
-/* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
-#ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int yylex (void);
-
-#define YY_DECL int yylex (void)
-#endif /* !YY_DECL */
-
-/* Code executed at the beginning of each rule, after yytext and yyleng
- * have been set up.
- */
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-/* Code executed at the end of each rule. */
-#ifndef YY_BREAK
-#define YY_BREAK break;
-#endif
-
-#define YY_RULE_SETUP \
-	if ( yyleng > 0 ) \
-		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
-				(yytext[yyleng - 1] == '\n'); \
-	YY_USER_ACTION
-
-/** The main scanner function which does all the work.
- */
-YY_DECL
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
-    
-#line 138 "lex.ll"
-
-				   /* line directives */
-#line 1762 "Parser/lex.cc"
-
-	if ( !(yy_init) )
-		{
-		(yy_init) = 1;
-
-#ifdef YY_USER_INIT
-		YY_USER_INIT;
-#endif
-
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
-
-		if ( ! yyin )
-			yyin = stdin;
-
-		if ( ! yyout )
-			yyout = stdout;
-
-		if ( ! YY_CURRENT_BUFFER ) {
-			yyensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				yy_create_buffer(yyin,YY_BUF_SIZE );
-		}
-
-		yy_load_buffer_state( );
-		}
-
-	while ( 1 )		/* loops until end-of-file is reached */
-		{
-		yy_cp = (yy_c_buf_p);
-
-		/* Support of yytext. */
-		*yy_cp = (yy_hold_char);
-
-		/* yy_bp points to the position in yy_ch_buf of the start of
-		 * the current run.
-		 */
-		yy_bp = yy_cp;
-
-		yy_current_state = (yy_start);
-		yy_current_state += YY_AT_BOL();
-yy_match:
-		do
-			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
-			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-				{
-				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 928 )
-					yy_c = yy_meta[(unsigned int) yy_c];
-				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-			++yy_cp;
-			}
-		while ( yy_base[yy_current_state] != 2911 );
-
-yy_find_action:
-		yy_act = yy_accept[yy_current_state];
-		if ( yy_act == 0 )
-			{ /* have to back up */
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			yy_act = yy_accept[yy_current_state];
-			}
-
-		YY_DO_BEFORE_ACTION;
-
-		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
-			{
-			int yyl;
-			for ( yyl = 0; yyl < yyleng; ++yyl )
-				if ( yytext[yyl] == '\n' )
-					   
-    yylineno++;
-;
-			}
-
-do_action:	/* This label is used only to access EOF actions. */
-
-		switch ( yy_act )
-	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
-case 1:
-/* rule 1 can match eol */
-YY_RULE_SETUP
-#line 140 "lex.ll"
-{
-	/* " stop highlighting */
-	static char filename[FILENAME_MAX];					// temporarily store current source-file name
-	char *end_num;
-	char *begin_string, *end_string;
-	long lineno, length;
-	lineno = strtol( yytext + 1, &end_num, 0 );
-	begin_string = strchr( end_num, '"' );
-	if ( begin_string ) {								// file name ?
-		end_string = strchr( begin_string + 1, '"' );	// look for ending delimiter
-		assert( end_string );							// closing quote ?
-		length = end_string - begin_string - 1;			// file-name length without quotes or sentinel
-		assert( length < FILENAME_MAX );				// room for sentinel ?
-		memcpy( &filename, begin_string + 1, length );	// copy file name from yytext
-		filename[ length ] = '\0';						// terminate string with sentinel
-		//std::cout << "file " << filename << " line " << lineno << std::endl;
-		yylineno = lineno;
-		yyfilename = filename;
-	} // if
-}
-	YY_BREAK
-/* ignore preprocessor directives (for now) */
-case 2:
-/* rule 2 can match eol */
-YY_RULE_SETUP
-#line 162 "lex.ll"
-;
-	YY_BREAK
-/* ignore C style comments (ALSO HANDLED BY CPP) */
-case 3:
-YY_RULE_SETUP
-#line 165 "lex.ll"
-{ BEGIN COMMENT; }
-	YY_BREAK
-case 4:
-/* rule 4 can match eol */
-YY_RULE_SETUP
-#line 166 "lex.ll"
-;
-	YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 167 "lex.ll"
-{ BEGIN 0; }
-	YY_BREAK
-/* ignore C++ style comments (ALSO HANDLED BY CPP) */
-case 6:
-/* rule 6 can match eol */
-YY_RULE_SETUP
-#line 170 "lex.ll"
-;
-	YY_BREAK
-/* ignore whitespace */
-case 7:
-YY_RULE_SETUP
-#line 173 "lex.ll"
-{ WHITE_RETURN(' '); }
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 174 "lex.ll"
-{ WHITE_RETURN(' '); }
-	YY_BREAK
-case 9:
-/* rule 9 can match eol */
-YY_RULE_SETUP
-#line 175 "lex.ll"
-{ NEWLINE_RETURN(); }
-	YY_BREAK
-/* keywords */
-case 10:
-YY_RULE_SETUP
-#line 178 "lex.ll"
-{ KEYWORD_RETURN(ALIGNAS); }			// C11
-	YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 179 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// C11
-	YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 180 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 181 "lex.ll"
-{ KEYWORD_RETURN(ALIGNOF); }			// GCC
-	YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 182 "lex.ll"
-{ KEYWORD_RETURN(ASM); }
-	YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 183 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 184 "lex.ll"
-{ KEYWORD_RETURN(ASM); }				// GCC
-	YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 185 "lex.ll"
-{ KEYWORD_RETURN(AT); }					// CFA
-	YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 186 "lex.ll"
-{ KEYWORD_RETURN(ATOMIC); }				// C11
-	YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 187 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 188 "lex.ll"
-{ KEYWORD_RETURN(ATTRIBUTE); }			// GCC
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 189 "lex.ll"
-{ KEYWORD_RETURN(AUTO); }
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 190 "lex.ll"
-{ KEYWORD_RETURN(BOOL); }				// C99
-	YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 191 "lex.ll"
-{ KEYWORD_RETURN(BREAK); }
-	YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 192 "lex.ll"
-{ KEYWORD_RETURN(CASE); }
-	YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 193 "lex.ll"
-{ KEYWORD_RETURN(CATCH); }				// CFA
-	YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 194 "lex.ll"
-{ KEYWORD_RETURN(CATCHRESUME); }		// CFA
-	YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 195 "lex.ll"
-{ KEYWORD_RETURN(CHAR); }
-	YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 196 "lex.ll"
-{ KEYWORD_RETURN(CHOOSE); }				// CFA
-	YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 197 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// C99
-	YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 198 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 199 "lex.ll"
-{ KEYWORD_RETURN(COMPLEX); }			// GCC
-	YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 200 "lex.ll"
-{ KEYWORD_RETURN(CONST); }
-	YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 201 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 202 "lex.ll"
-{ KEYWORD_RETURN(CONST); }				// GCC
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 203 "lex.ll"
-{ KEYWORD_RETURN(CONTINUE); }
-	YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 204 "lex.ll"
-{ KEYWORD_RETURN(COROUTINE); }			// CFA
-	YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 205 "lex.ll"
-{ KEYWORD_RETURN(DEFAULT); }
-	YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 206 "lex.ll"
-{ KEYWORD_RETURN(DISABLE); }			// CFA
-	YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 207 "lex.ll"
-{ KEYWORD_RETURN(DO); }
-	YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 208 "lex.ll"
-{ KEYWORD_RETURN(DOUBLE); }
-	YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 209 "lex.ll"
-{ KEYWORD_RETURN(DTYPE); }				// CFA
-	YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 210 "lex.ll"
-{ KEYWORD_RETURN(ELSE); }
-	YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 211 "lex.ll"
-{ KEYWORD_RETURN(ENABLE); }				// CFA
-	YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 212 "lex.ll"
-{ KEYWORD_RETURN(ENUM); }
-	YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 213 "lex.ll"
-{ KEYWORD_RETURN(EXTENSION); }			// GCC
-	YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 214 "lex.ll"
-{ KEYWORD_RETURN(EXTERN); }
-	YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 215 "lex.ll"
-{ KEYWORD_RETURN(FALLTHRU); }			// CFA
-	YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 216 "lex.ll"
-{ KEYWORD_RETURN(FALLTHRU); }			// CFA
-	YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 217 "lex.ll"
-{ KEYWORD_RETURN(FINALLY); }			// CFA
-	YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 218 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }
-	YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 219 "lex.ll"
-{ KEYWORD_RETURN(FLOAT); }				// GCC
-	YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 220 "lex.ll"
-{ KEYWORD_RETURN(FOR); }
-	YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 221 "lex.ll"
-{ KEYWORD_RETURN(FORALL); }				// CFA
-	YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 222 "lex.ll"
-{ KEYWORD_RETURN(FORTRAN); }
-	YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 223 "lex.ll"
-{ KEYWORD_RETURN(FTYPE); }				// CFA
-	YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 224 "lex.ll"
-{ KEYWORD_RETURN(GENERIC); }			// C11
-	YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 225 "lex.ll"
-{ KEYWORD_RETURN(GOTO); }
-	YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 226 "lex.ll"
-{ KEYWORD_RETURN(IF); }
-	YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 227 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// C99
-	YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 228 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 229 "lex.ll"
-{ KEYWORD_RETURN(IMAGINARY); }			// GCC
-	YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 230 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// C99
-	YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 231 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 232 "lex.ll"
-{ KEYWORD_RETURN(INLINE); }				// GCC
-	YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 233 "lex.ll"
-{ KEYWORD_RETURN(INT); }
-	YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 234 "lex.ll"
-{ KEYWORD_RETURN(INT); }				// GCC
-	YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 235 "lex.ll"
-{ KEYWORD_RETURN(LABEL); }				// GCC
-	YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 236 "lex.ll"
-{ KEYWORD_RETURN(LONG); }
-	YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 237 "lex.ll"
-{ KEYWORD_RETURN(LVALUE); }				// CFA
-	YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 238 "lex.ll"
-{ KEYWORD_RETURN(MONITOR); }			// CFA
-	YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 239 "lex.ll"
-{ KEYWORD_RETURN(MUTEX); }				// CFA
-	YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 240 "lex.ll"
-{ KEYWORD_RETURN(NORETURN); }			// C11
-	YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 241 "lex.ll"
-{ KEYWORD_RETURN(OFFSETOF); }		// GCC
-	YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 242 "lex.ll"
-{ NUMERIC_RETURN(ONE_T); }				// CFA
-	YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 243 "lex.ll"
-{ KEYWORD_RETURN(OTYPE); }				// CFA
-	YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 244 "lex.ll"
-{ KEYWORD_RETURN(REGISTER); }
-	YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 245 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// C99
-	YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 246 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 247 "lex.ll"
-{ KEYWORD_RETURN(RESTRICT); }			// GCC
-	YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 248 "lex.ll"
-{ KEYWORD_RETURN(RETURN); }
-	YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 249 "lex.ll"
-{ KEYWORD_RETURN(SHORT); }
-	YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 250 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }
-	YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 251 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 252 "lex.ll"
-{ KEYWORD_RETURN(SIGNED); }				// GCC
-	YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 253 "lex.ll"
-{ KEYWORD_RETURN(SIZEOF); }
-	YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 254 "lex.ll"
-{ KEYWORD_RETURN(STATIC); }
-	YY_BREAK
-case 87:
-YY_RULE_SETUP
-#line 255 "lex.ll"
-{ KEYWORD_RETURN(STATICASSERT); }		// C11
-	YY_BREAK
-case 88:
-YY_RULE_SETUP
-#line 256 "lex.ll"
-{ KEYWORD_RETURN(STRUCT); }
-	YY_BREAK
-case 89:
-YY_RULE_SETUP
-#line 257 "lex.ll"
-{ KEYWORD_RETURN(SWITCH); }
-	YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 258 "lex.ll"
-{ KEYWORD_RETURN(THREAD); }				// C11
-	YY_BREAK
-case 91:
-YY_RULE_SETUP
-#line 259 "lex.ll"
-{ KEYWORD_RETURN(THREADLOCAL); }		// C11
-	YY_BREAK
-case 92:
-YY_RULE_SETUP
-#line 260 "lex.ll"
-{ KEYWORD_RETURN(THROW); }				// CFA
-	YY_BREAK
-case 93:
-YY_RULE_SETUP
-#line 261 "lex.ll"
-{ KEYWORD_RETURN(THROWRESUME); }		// CFA
-	YY_BREAK
-case 94:
-YY_RULE_SETUP
-#line 262 "lex.ll"
-{ KEYWORD_RETURN(TRAIT); }				// CFA
-	YY_BREAK
-case 95:
-YY_RULE_SETUP
-#line 263 "lex.ll"
-{ KEYWORD_RETURN(TRY); }				// CFA
-	YY_BREAK
-case 96:
-YY_RULE_SETUP
-#line 264 "lex.ll"
-{ KEYWORD_RETURN(TTYPE); }				// CFA
-	YY_BREAK
-case 97:
-YY_RULE_SETUP
-#line 265 "lex.ll"
-{ KEYWORD_RETURN(TYPEDEF); }
-	YY_BREAK
-case 98:
-YY_RULE_SETUP
-#line 266 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 99:
-YY_RULE_SETUP
-#line 267 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 100:
-YY_RULE_SETUP
-#line 268 "lex.ll"
-{ KEYWORD_RETURN(TYPEOF); }				// GCC
-	YY_BREAK
-case 101:
-YY_RULE_SETUP
-#line 269 "lex.ll"
-{ KEYWORD_RETURN(UNION); }
-	YY_BREAK
-case 102:
-YY_RULE_SETUP
-#line 270 "lex.ll"
-{ KEYWORD_RETURN(UNSIGNED); }
-	YY_BREAK
-case 103:
-YY_RULE_SETUP
-#line 271 "lex.ll"
-{ KEYWORD_RETURN(VALIST); }			// GCC
-	YY_BREAK
-case 104:
-YY_RULE_SETUP
-#line 272 "lex.ll"
-{ KEYWORD_RETURN(VOID); }
-	YY_BREAK
-case 105:
-YY_RULE_SETUP
-#line 273 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }
-	YY_BREAK
-case 106:
-YY_RULE_SETUP
-#line 274 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 107:
-YY_RULE_SETUP
-#line 275 "lex.ll"
-{ KEYWORD_RETURN(VOLATILE); }			// GCC
-	YY_BREAK
-case 108:
-YY_RULE_SETUP
-#line 276 "lex.ll"
-{ KEYWORD_RETURN(WHILE); }
-	YY_BREAK
-case 109:
-YY_RULE_SETUP
-#line 277 "lex.ll"
-{ NUMERIC_RETURN(ZERO_T); }				// CFA
-	YY_BREAK
-/* identifier */
-case 110:
-YY_RULE_SETUP
-#line 280 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 281 "lex.ll"
-{ ATTRIBUTE_RETURN(); }
-	YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 282 "lex.ll"
-{ BEGIN BKQUOTE; }
-	YY_BREAK
-case 113:
-YY_RULE_SETUP
-#line 283 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 114:
-YY_RULE_SETUP
-#line 284 "lex.ll"
-{ BEGIN 0; }
-	YY_BREAK
-/* numeric constants */
-case 115:
-YY_RULE_SETUP
-#line 287 "lex.ll"
-{ NUMERIC_RETURN(ZERO); }				// CFA
-	YY_BREAK
-case 116:
-YY_RULE_SETUP
-#line 288 "lex.ll"
-{ NUMERIC_RETURN(ONE); }				// CFA
-	YY_BREAK
-case 117:
-YY_RULE_SETUP
-#line 289 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 290 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 291 "lex.ll"
-{ NUMERIC_RETURN(INTEGERconstant); }
-	YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 292 "lex.ll"
-{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
-	YY_BREAK
-case 121:
-YY_RULE_SETUP
-#line 293 "lex.ll"
-{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
-	YY_BREAK
-case 122:
-YY_RULE_SETUP
-#line 294 "lex.ll"
-{ NUMERIC_RETURN(FLOATINGconstant); }
-	YY_BREAK
-case 123:
-YY_RULE_SETUP
-#line 295 "lex.ll"
-{ NUMERIC_RETURN(FLOATINGconstant); }
-	YY_BREAK
-/* character constant, allows empty value */
-case 124:
-YY_RULE_SETUP
-#line 298 "lex.ll"
-{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
-	YY_BREAK
-case 125:
-YY_RULE_SETUP
-#line 299 "lex.ll"
-{ strtext->append( yytext, yyleng ); }
-	YY_BREAK
-case 126:
-/* rule 126 can match eol */
-YY_RULE_SETUP
-#line 300 "lex.ll"
-{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
-	YY_BREAK
-/* ' stop highlighting */
-/* string constant */
-case 127:
-YY_RULE_SETUP
-#line 304 "lex.ll"
-{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
-	YY_BREAK
-case 128:
-YY_RULE_SETUP
-#line 305 "lex.ll"
-{ strtext->append( yytext, yyleng ); }
-	YY_BREAK
-case 129:
-/* rule 129 can match eol */
-YY_RULE_SETUP
-#line 306 "lex.ll"
-{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
-	YY_BREAK
-/* " stop highlighting */
-/* common character/string constant */
-case 130:
-YY_RULE_SETUP
-#line 310 "lex.ll"
-{ rm_underscore(); strtext->append( yytext, yyleng ); }
-	YY_BREAK
-case 131:
-/* rule 131 can match eol */
-YY_RULE_SETUP
-#line 311 "lex.ll"
-{}						// continuation (ALSO HANDLED BY CPP)
-	YY_BREAK
-case 132:
-YY_RULE_SETUP
-#line 312 "lex.ll"
-{ strtext->append( yytext, yyleng ); } // unknown escape character
-	YY_BREAK
-/* punctuation */
-case 133:
-YY_RULE_SETUP
-#line 315 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 134:
-YY_RULE_SETUP
-#line 316 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 135:
-YY_RULE_SETUP
-#line 317 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 136:
-YY_RULE_SETUP
-#line 318 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 137:
-YY_RULE_SETUP
-#line 319 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 138:
-YY_RULE_SETUP
-#line 320 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 139:
-YY_RULE_SETUP
-#line 321 "lex.ll"
-{ ASCIIOP_RETURN(); }					// also operator
-	YY_BREAK
-case 140:
-YY_RULE_SETUP
-#line 322 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 141:
-YY_RULE_SETUP
-#line 323 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 142:
-YY_RULE_SETUP
-#line 324 "lex.ll"
-{ ASCIIOP_RETURN(); }					// also operator
-	YY_BREAK
-case 143:
-YY_RULE_SETUP
-#line 325 "lex.ll"
-{ NAMEDOP_RETURN(ELLIPSIS); }
-	YY_BREAK
-/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
-case 144:
-YY_RULE_SETUP
-#line 328 "lex.ll"
-{ RETURN_VAL('['); }
-	YY_BREAK
-case 145:
-YY_RULE_SETUP
-#line 329 "lex.ll"
-{ RETURN_VAL(']'); }
-	YY_BREAK
-case 146:
-YY_RULE_SETUP
-#line 330 "lex.ll"
-{ RETURN_VAL('{'); }
-	YY_BREAK
-case 147:
-YY_RULE_SETUP
-#line 331 "lex.ll"
-{ RETURN_VAL('}'); }
-	YY_BREAK
-/* operators */
-case 148:
-YY_RULE_SETUP
-#line 334 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 149:
-YY_RULE_SETUP
-#line 335 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 150:
-YY_RULE_SETUP
-#line 336 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 151:
-YY_RULE_SETUP
-#line 337 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 152:
-YY_RULE_SETUP
-#line 338 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 153:
-YY_RULE_SETUP
-#line 339 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 154:
-YY_RULE_SETUP
-#line 340 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 155:
-YY_RULE_SETUP
-#line 341 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 156:
-YY_RULE_SETUP
-#line 342 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 157:
-YY_RULE_SETUP
-#line 343 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 158:
-YY_RULE_SETUP
-#line 344 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 159:
-YY_RULE_SETUP
-#line 345 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 160:
-YY_RULE_SETUP
-#line 346 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 161:
-YY_RULE_SETUP
-#line 347 "lex.ll"
-{ ASCIIOP_RETURN(); }
-	YY_BREAK
-case 162:
-YY_RULE_SETUP
-#line 349 "lex.ll"
-{ NAMEDOP_RETURN(ICR); }
-	YY_BREAK
-case 163:
-YY_RULE_SETUP
-#line 350 "lex.ll"
-{ NAMEDOP_RETURN(DECR); }
-	YY_BREAK
-case 164:
-YY_RULE_SETUP
-#line 351 "lex.ll"
-{ NAMEDOP_RETURN(EQ); }
-	YY_BREAK
-case 165:
-YY_RULE_SETUP
-#line 352 "lex.ll"
-{ NAMEDOP_RETURN(NE); }
-	YY_BREAK
-case 166:
-YY_RULE_SETUP
-#line 353 "lex.ll"
-{ NAMEDOP_RETURN(LS); }
-	YY_BREAK
-case 167:
-YY_RULE_SETUP
-#line 354 "lex.ll"
-{ NAMEDOP_RETURN(RS); }
-	YY_BREAK
-case 168:
-YY_RULE_SETUP
-#line 355 "lex.ll"
-{ NAMEDOP_RETURN(LE); }
-	YY_BREAK
-case 169:
-YY_RULE_SETUP
-#line 356 "lex.ll"
-{ NAMEDOP_RETURN(GE); }
-	YY_BREAK
-case 170:
-YY_RULE_SETUP
-#line 357 "lex.ll"
-{ NAMEDOP_RETURN(ANDAND); }
-	YY_BREAK
-case 171:
-YY_RULE_SETUP
-#line 358 "lex.ll"
-{ NAMEDOP_RETURN(OROR); }
-	YY_BREAK
-case 172:
-YY_RULE_SETUP
-#line 359 "lex.ll"
-{ NAMEDOP_RETURN(ARROW); }
-	YY_BREAK
-case 173:
-YY_RULE_SETUP
-#line 360 "lex.ll"
-{ NAMEDOP_RETURN(PLUSassign); }
-	YY_BREAK
-case 174:
-YY_RULE_SETUP
-#line 361 "lex.ll"
-{ NAMEDOP_RETURN(MINUSassign); }
-	YY_BREAK
-case 175:
-YY_RULE_SETUP
-#line 362 "lex.ll"
-{ NAMEDOP_RETURN(MULTassign); }
-	YY_BREAK
-case 176:
-YY_RULE_SETUP
-#line 363 "lex.ll"
-{ NAMEDOP_RETURN(DIVassign); }
-	YY_BREAK
-case 177:
-YY_RULE_SETUP
-#line 364 "lex.ll"
-{ NAMEDOP_RETURN(MODassign); }
-	YY_BREAK
-case 178:
-YY_RULE_SETUP
-#line 365 "lex.ll"
-{ NAMEDOP_RETURN(ANDassign); }
-	YY_BREAK
-case 179:
-YY_RULE_SETUP
-#line 366 "lex.ll"
-{ NAMEDOP_RETURN(ORassign); }
-	YY_BREAK
-case 180:
-YY_RULE_SETUP
-#line 367 "lex.ll"
-{ NAMEDOP_RETURN(ERassign); }
-	YY_BREAK
-case 181:
-YY_RULE_SETUP
-#line 368 "lex.ll"
-{ NAMEDOP_RETURN(LSassign); }
-	YY_BREAK
-case 182:
-YY_RULE_SETUP
-#line 369 "lex.ll"
-{ NAMEDOP_RETURN(RSassign); }
-	YY_BREAK
-case 183:
-YY_RULE_SETUP
-#line 371 "lex.ll"
-{ NAMEDOP_RETURN(ATassign); }			// CFA
-	YY_BREAK
-/* CFA, operator identifier */
-case 184:
-YY_RULE_SETUP
-#line 374 "lex.ll"
-{ IDENTIFIER_RETURN(); }				// unary
-	YY_BREAK
-case 185:
-YY_RULE_SETUP
-#line 375 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 186:
-YY_RULE_SETUP
-#line 376 "lex.ll"
-{ IDENTIFIER_RETURN(); }
-	YY_BREAK
-case 187:
-YY_RULE_SETUP
-#line 377 "lex.ll"
-{ IDENTIFIER_RETURN(); }		// binary
-	YY_BREAK
-/*
-	  This rule handles ambiguous cases with operator identifiers, e.g., "int *?*?()", where the string "*?*?"
-	  can be lexed as "*"/"?*?" or "*?"/"*?". Since it is common practise to put a unary operator juxtaposed
-	  to an identifier, e.g., "*i", users will be annoyed if they cannot do this with respect to operator
-	  identifiers. Even with this special hack, there are 5 general cases that cannot be handled. The first
-	  case is for the function-call identifier "?()":
-
-	  int * ?()();	// declaration: space required after '*'
-	  * ?()();	// expression: space required after '*'
-
-	  Without the space, the string "*?()" is ambiguous without N character look ahead; it requires scanning
-	  ahead to determine if there is a '(', which is the start of an argument/parameter list.
-
-	  The 4 remaining cases occur in expressions:
-
-	  i++?i:0;		// space required before '?'
-	  i--?i:0;		// space required before '?'
-	  i?++i:0;		// space required after '?'
-	  i?--i:0;		// space required after '?'
-
-	  In the first two cases, the string "i++?" is ambiguous, where this string can be lexed as "i"/"++?" or
-	  "i++"/"?"; it requires scanning ahead to determine if there is a '(', which is the start of an argument
-	  list.  In the second two cases, the string "?++x" is ambiguous, where this string can be lexed as
-	  "?++"/"x" or "?"/"++x"; it requires scanning ahead to determine if there is a '(', which is the start of
-	  an argument list.
-	*/
-case 188:
-YY_RULE_SETUP
-#line 404 "lex.ll"
-{
-	// 1 or 2 character unary operator ?
-	int i = yytext[1] == '?' ? 1 : 2;
-	yyless( i );		// put back characters up to first '?'
-	if ( i > 1 ) {
-		NAMEDOP_RETURN( yytext[0] == '+' ? ICR : DECR );
-	} else {
-		ASCIIOP_RETURN();
-	} // if
-}
-	YY_BREAK
-/* unknown characters */
-case 189:
-YY_RULE_SETUP
-#line 416 "lex.ll"
-{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
-	YY_BREAK
-case 190:
-YY_RULE_SETUP
-#line 418 "lex.ll"
-ECHO;
-	YY_BREAK
-#line 2885 "Parser/lex.cc"
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(COMMENT):
-case YY_STATE_EOF(BKQUOTE):
-case YY_STATE_EOF(QUOTE):
-case YY_STATE_EOF(STRING):
-	yyterminate();
-
-	case YY_END_OF_BUFFER:
-		{
-		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
-
-		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
-		YY_RESTORE_YY_MORE_OFFSET
-
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
-			{
-			/* We're scanning a new file or input source.  It's
-			 * possible that this happened because the user
-			 * just pointed yyin at a new source and called
-			 * yylex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
-			 * globals.  Here is the right place to do so, because
-			 * this is the first action (other than possibly a
-			 * back-up) that will match for the new input source.
-			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
-			}
-
-		/* Note that here we test for yy_c_buf_p "<=" to the position
-		 * of the first EOB in the buffer, since yy_c_buf_p will
-		 * already have been incremented past the NUL character
-		 * (since all states make transitions on EOB to the
-		 * end-of-buffer state).  Contrast this with the test
-		 * in input().
-		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			{ /* This was really a NUL. */
-			yy_state_type yy_next_state;
-
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
-
-			yy_current_state = yy_get_previous_state(  );
-
-			/* Okay, we're now positioned to make the NUL
-			 * transition.  We couldn't have
-			 * yy_get_previous_state() go ahead and do it
-			 * for us because it doesn't know how to deal
-			 * with the possibility of jamming (and we don't
-			 * want to build jamming into it because then it
-			 * will run more slowly).
-			 */
-
-			yy_next_state = yy_try_NUL_trans( yy_current_state );
-
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-
-			if ( yy_next_state )
-				{
-				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
-				yy_current_state = yy_next_state;
-				goto yy_match;
-				}
-
-			else
-				{
-				yy_cp = (yy_c_buf_p);
-				goto yy_find_action;
-				}
-			}
-
-		else switch ( yy_get_next_buffer(  ) )
-			{
-			case EOB_ACT_END_OF_FILE:
-				{
-				(yy_did_buffer_switch_on_eof) = 0;
-
-				if ( yywrap( ) )
-					{
-					/* Note: because we've taken care in
-					 * yy_get_next_buffer() to have set up
-					 * yytext, we can now set up
-					 * yy_c_buf_p so that if some total
-					 * hoser (like flex itself) wants to
-					 * call the scanner after we return the
-					 * YY_NULL, it'll still work - another
-					 * YY_NULL will get returned.
-					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
-
-					yy_act = YY_STATE_EOF(YY_START);
-					goto do_action;
-					}
-
-				else
-					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-					}
-				break;
-				}
-
-			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_match;
-
-			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
-
-				yy_current_state = yy_get_previous_state(  );
-
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
-				goto yy_find_action;
-			}
-		break;
-		}
-
-	default:
-		YY_FATAL_ERROR(
-			"fatal flex scanner internal error--no action found" );
-	} /* end of action switch */
-		} /* end of scanning one token */
-} /* end of yylex */
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- *	EOB_ACT_LAST_MATCH -
- *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- *	EOB_ACT_END_OF_FILE - end of file
- */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
-	int ret_val;
-
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
-		YY_FATAL_ERROR(
-		"fatal flex scanner internal error--end of buffer missed" );
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
-		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
-			{
-			/* We matched a single character, the EOB, so
-			 * treat this as a final EOF.
-			 */
-			return EOB_ACT_END_OF_FILE;
-			}
-
-		else
-			{
-			/* We matched some text prior to the EOB, first
-			 * process it.
-			 */
-			return EOB_ACT_LAST_MATCH;
-			}
-		}
-
-	/* Try to read more data. */
-
-	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
-
-	for ( i = 0; i < number_to_move; ++i )
-		*(dest++) = *(source++);
-
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
-		/* don't do the read, it's not guaranteed to return an EOF,
-		 * just force an EOF
-		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
-
-	else
-		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
-
-		while ( num_to_read <= 0 )
-			{ /* Not enough room in the buffer - grow it. */
-
-			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
-
-			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
-
-			if ( b->yy_is_our_buffer )
-				{
-				int new_size = b->yy_buf_size * 2;
-
-				if ( new_size <= 0 )
-					b->yy_buf_size += b->yy_buf_size / 8;
-				else
-					b->yy_buf_size *= 2;
-
-				b->yy_ch_buf = (char *)
-					/* Include room in for 2 EOB chars. */
-					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
-				}
-			else
-				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
-
-			if ( ! b->yy_ch_buf )
-				YY_FATAL_ERROR(
-				"fatal error - scanner input buffer overflow" );
-
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
-						number_to_move - 1;
-
-			}
-
-		if ( num_to_read > YY_READ_BUF_SIZE )
-			num_to_read = YY_READ_BUF_SIZE;
-
-		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), (size_t) num_to_read );
-
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	if ( (yy_n_chars) == 0 )
-		{
-		if ( number_to_move == YY_MORE_ADJ )
-			{
-			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart(yyin  );
-			}
-
-		else
-			{
-			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
-				YY_BUFFER_EOF_PENDING;
-			}
-		}
-
-	else
-		ret_val = EOB_ACT_CONTINUE_SCAN;
-
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
-		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
-		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
-			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
-	}
-
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
-
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
-
-	return ret_val;
-}
-
-/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-    static yy_state_type yy_get_previous_state (void)
-{
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
-	yy_current_state += YY_AT_BOL();
-
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
-		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
-		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-			{
-			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 928 )
-				yy_c = yy_meta[(unsigned int) yy_c];
-			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-		}
-
-	return yy_current_state;
-}
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- *	next_state = yy_try_NUL_trans( current_state );
- */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
-	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
-
-	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
-	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
-		{
-		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 928 )
-			yy_c = yy_meta[(unsigned int) yy_c];
-		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 927);
-
-	return yy_is_jam ? 0 : yy_current_state;
-}
-
-#ifndef YY_NO_INPUT
-#ifdef __cplusplus
-    static int yyinput (void)
-#else
-    static int input  (void)
-#endif
-
-{
-	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
-
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
-		{
-		/* yy_c_buf_p now points to the character we want to return.
-		 * If this occurs *before* the EOB characters, then it's a
-		 * valid NUL; if not, then we've hit the end of the buffer.
-		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
-			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
-
-		else
-			{ /* need more input */
-			int offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
-
-			switch ( yy_get_next_buffer(  ) )
-				{
-				case EOB_ACT_LAST_MATCH:
-					/* This happens because yy_g_n_b()
-					 * sees that we've accumulated a
-					 * token and flags that we need to
-					 * try matching the token before
-					 * proceeding.  But for input(),
-					 * there's no matching to consider.
-					 * So convert the EOB_ACT_LAST_MATCH
-					 * to EOB_ACT_END_OF_FILE.
-					 */
-
-					/* Reset buffer status. */
-					yyrestart(yyin );
-
-					/*FALLTHROUGH*/
-
-				case EOB_ACT_END_OF_FILE:
-					{
-					if ( yywrap( ) )
-						return EOF;
-
-					if ( ! (yy_did_buffer_switch_on_eof) )
-						YY_NEW_FILE;
-#ifdef __cplusplus
-					return yyinput();
-#else
-					return input();
-#endif
-					}
-
-				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
-					break;
-				}
-			}
-		}
-
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve yytext */
-	(yy_hold_char) = *++(yy_c_buf_p);
-
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
-		   
-    yylineno++;
-;
-
-	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
-
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void yyrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        yyensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer(yyin,YY_BUF_SIZE );
-	}
-
-	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
-	yy_load_buffer_state( );
-}
-
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		yypop_buffer_state();
-	 *		yypush_buffer_state(new_buffer);
-     */
-	yyensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
-		return;
-
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	yy_load_buffer_state( );
-
-	/* We don't actually know whether we did this switch during
-	 * EOF (yywrap()) processing, but the only time this flag
-	 * is looked at is after yywrap() is called, so it's safe
-	 * to go ahead and always set it.
-	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-static void yy_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
-
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
-{
-	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_buf_size = size;
-
-	/* yy_ch_buf has to be 2 characters longer than the size given because
-	 * we need to put in 2 end-of-buffer characters.
-	 */
-	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
-	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
-	b->yy_is_our_buffer = 1;
-
-	yy_init_buffer(b,file );
-
-	return b;
-}
-
-/** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- * 
- */
-    void yy_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
-	if ( ! b )
-		return;
-
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
-
-	if ( b->yy_is_our_buffer )
-		yyfree((void *) b->yy_ch_buf  );
-
-	yyfree((void *) b  );
-}
-
-#ifndef __cplusplus
-extern int isatty (int );
-#endif /* __cplusplus */
-    
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
-    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
-
-{
-	int oerrno = errno;
-    
-	yy_flush_buffer(b );
-
-	b->yy_input_file = file;
-	b->yy_fill_buffer = 1;
-
-    /* If b is the current buffer, then yy_init_buffer was _probably_
-     * called from yyrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
-
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-    
-	errno = oerrno;
-}
-
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void yy_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
-		return;
-
-	b->yy_n_chars = 0;
-
-	/* We always need two end-of-buffer characters.  The first causes
-	 * a transition to the end-of-buffer state.  The second causes
-	 * a jam in that state.
-	 */
-	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
-	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
-
-	b->yy_buf_pos = &b->yy_ch_buf[0];
-
-	b->yy_at_bol = 1;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	if ( b == YY_CURRENT_BUFFER )
-		yy_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	yyensure_buffer_stack();
-
-	/* This block is copied from yy_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from yy_switch_to_buffer. */
-	yy_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void yypop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	yy_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		yy_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void yyensure_buffer_stack (void)
-{
-	int num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-								  
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
-	}
-
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
-
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		if ( ! (yy_buffer_stack) )
-			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
-{
-	YY_BUFFER_STATE b;
-    
-	if ( size < 2 ||
-	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
-	     base[size-1] != YY_END_OF_BUFFER_CHAR )
-		/* They forgot to leave room for the EOB's. */
-		return 0;
-
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
-	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
-
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
-	b->yy_buf_pos = b->yy_ch_buf = base;
-	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
-	b->yy_n_chars = b->yy_buf_size;
-	b->yy_is_interactive = 0;
-	b->yy_at_bol = 1;
-	b->yy_fill_buffer = 0;
-	b->yy_buffer_status = YY_BUFFER_NEW;
-
-	yy_switch_to_buffer(b  );
-
-	return b;
-}
-
-/** Setup the input buffer state to scan a string. The next call to yylex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       yy_scan_bytes() instead.
- */
-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
-{
-    
-	return yy_scan_bytes(yystr,strlen(yystr) );
-}
-
-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
- * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
-{
-	YY_BUFFER_STATE b;
-	char *buf;
-	yy_size_t n;
-	int i;
-    
-	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) yyalloc(n  );
-	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
-
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
-
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
-
-	b = yy_scan_buffer(buf,n );
-	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
-
-	/* It's okay to grow etc. this buffer, and we should throw it
-	 * away when we're done.
-	 */
-	b->yy_is_our_buffer = 1;
-
-	return b;
-}
-
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
-#endif
-
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
-
-/* Redefine yyless() so it works in section 3 code. */
-
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up yytext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		yytext[yyleng] = (yy_hold_char); \
-		(yy_c_buf_p) = yytext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		yyleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
-
-/* Accessor  methods (get/set functions) to struct members. */
-
-/** Get the current line number.
- * 
- */
-int yyget_lineno  (void)
-{
-        
-    return yylineno;
-}
-
-/** Get the input stream.
- * 
- */
-FILE *yyget_in  (void)
-{
-        return yyin;
-}
-
-/** Get the output stream.
- * 
- */
-FILE *yyget_out  (void)
-{
-        return yyout;
-}
-
-/** Get the length of the current token.
- * 
- */
-int yyget_leng  (void)
-{
-        return yyleng;
-}
-
-/** Get the current token.
- * 
- */
-
-char *yyget_text  (void)
-{
-        return yytext;
-}
-
-/** Set the current line number.
- * @param line_number
- * 
- */
-void yyset_lineno (int  line_number )
-{
-    
-    yylineno = line_number;
-}
-
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see yy_switch_to_buffer
- */
-void yyset_in (FILE *  in_str )
-{
-        yyin = in_str ;
-}
-
-void yyset_out (FILE *  out_str )
-{
-        yyout = out_str ;
-}
-
-int yyget_debug  (void)
-{
-        return yy_flex_debug;
-}
-
-void yyset_debug (int  bdebug )
-{
-        yy_flex_debug = bdebug ;
-}
-
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from yylex_destroy(), so don't allocate here.
-     */
-
-    /* We do not touch yylineno unless the option is enabled. */
-    yylineno =  1;
-    
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    yyin = stdin;
-    yyout = stdout;
-#else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * yylex_init()
-     */
-    return 0;
-}
-
-/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		yy_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		yypop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	yyfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * yylex() is called, initialization will occur. */
-    yy_init_globals( );
-
-    return 0;
-}
-
-/*
- * Internal utility routines.
- */
-
-#ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
-	register int i;
-	for ( i = 0; i < n; ++i )
-		s1[i] = s2[i];
-}
-#endif
-
-#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
-	register int n;
-	for ( n = 0; s[n]; ++n )
-		;
-
-	return n;
-}
-#endif
-
-void *yyalloc (yy_size_t  size )
-{
-	return (void *) malloc( size );
-}
-
-void *yyrealloc  (void * ptr, yy_size_t  size )
-{
-	/* The cast to (char *) in the following accommodates both
-	 * implementations that use char* generic pointers, and those
-	 * that use void* generic pointers.  It works with the latter
-	 * because both ANSI C and C++ allow castless assignment from
-	 * any pointer type to void*, and deal with argument conversions
-	 * as though doing an assignment.
-	 */
-	return (void *) realloc( (char *) ptr, size );
-}
-
-void yyfree (void * ptr )
-{
-	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 418 "lex.ll"
-
-
-
-// Local Variables: //
-// mode: c++ //
-// tab-width: 4 //
-// compile-command: "make install" //
-// End: //
-
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision d3bc0ad5ca6325ee71ad0755de4023871114d0e7)
+++ 	(revision )
@@ -1,9950 +1,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison implementation for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
-   simplifying the original so-called "semantic" parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON 1
-
-/* Bison version.  */
-#define YYBISON_VERSION "2.5"
-
-/* Skeleton name.  */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers.  */
-#define YYPURE 0
-
-/* Push parsers.  */
-#define YYPUSH 0
-
-/* Pull parsers.  */
-#define YYPULL 1
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
-
-/* Copy the first part of user declarations.  */
-
-/* Line 268 of yacc.c  */
-#line 42 "parser.yy"
-
-#define YYDEBUG_LEXER_TEXT (yylval)						// lexer loads this up each time
-#define YYDEBUG 1										// get the pretty debugging code to compile
-
-#undef __GNUC_MINOR__
-
-#include <cstdio>
-#include <stack>
-#include "lex.h"
-#include "parser.h"
-#include "ParseNode.h"
-#include "TypedefTable.h"
-#include "TypeData.h"
-#include "LinkageSpec.h"
-using namespace std;
-
-extern DeclarationNode * parseTree;
-extern LinkageSpec::Spec linkage;
-extern TypedefTable typedefTable;
-
-stack< LinkageSpec::Spec > linkageStack;
-
-void appendStr( string *to, string *from ) {
-	// "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string.
-	to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) );
-} // appendStr
-
-DeclarationNode * distAttr( DeclarationNode * specifier, DeclarationNode * declList ) {
-	// distribute declaration_specifier across all declared variables, e.g., static, const, __attribute__.
-	DeclarationNode * cur = declList, * cl = (new DeclarationNode)->addType( specifier );
-	//cur->addType( specifier );
-	for ( cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) {
-		cl->cloneBaseType( cur );
-	} // for
-	declList->addType( cl );
-//	delete cl;
-	return declList;
-} // distAttr
-
-void distExt( DeclarationNode * declaration ) {
-	// distribute EXTENSION across all declarations
-	for ( DeclarationNode *iter = declaration; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) {
-		iter->set_extension( true );
-	} // for
-} // distExt
-
-
-/* Line 268 of yacc.c  */
-#line 119 "Parser/parser.cc"
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     TYPEDEF = 258,
-     EXTERN = 259,
-     STATIC = 260,
-     AUTO = 261,
-     REGISTER = 262,
-     THREADLOCAL = 263,
-     INLINE = 264,
-     FORTRAN = 265,
-     NORETURN = 266,
-     CONST = 267,
-     VOLATILE = 268,
-     RESTRICT = 269,
-     ATOMIC = 270,
-     FORALL = 271,
-     LVALUE = 272,
-     MUTEX = 273,
-     VOID = 274,
-     CHAR = 275,
-     SHORT = 276,
-     INT = 277,
-     LONG = 278,
-     FLOAT = 279,
-     DOUBLE = 280,
-     SIGNED = 281,
-     UNSIGNED = 282,
-     ZERO_T = 283,
-     ONE_T = 284,
-     VALIST = 285,
-     BOOL = 286,
-     COMPLEX = 287,
-     IMAGINARY = 288,
-     TYPEOF = 289,
-     LABEL = 290,
-     ENUM = 291,
-     STRUCT = 292,
-     UNION = 293,
-     COROUTINE = 294,
-     MONITOR = 295,
-     THREAD = 296,
-     OTYPE = 297,
-     FTYPE = 298,
-     DTYPE = 299,
-     TTYPE = 300,
-     TRAIT = 301,
-     SIZEOF = 302,
-     OFFSETOF = 303,
-     ATTRIBUTE = 304,
-     EXTENSION = 305,
-     IF = 306,
-     ELSE = 307,
-     SWITCH = 308,
-     CASE = 309,
-     DEFAULT = 310,
-     DO = 311,
-     WHILE = 312,
-     FOR = 313,
-     BREAK = 314,
-     CONTINUE = 315,
-     GOTO = 316,
-     RETURN = 317,
-     CHOOSE = 318,
-     DISABLE = 319,
-     ENABLE = 320,
-     FALLTHRU = 321,
-     TRY = 322,
-     CATCH = 323,
-     CATCHRESUME = 324,
-     FINALLY = 325,
-     THROW = 326,
-     THROWRESUME = 327,
-     AT = 328,
-     ASM = 329,
-     ALIGNAS = 330,
-     ALIGNOF = 331,
-     GENERIC = 332,
-     STATICASSERT = 333,
-     IDENTIFIER = 334,
-     QUOTED_IDENTIFIER = 335,
-     TYPEDEFname = 336,
-     TYPEGENname = 337,
-     ATTR_IDENTIFIER = 338,
-     ATTR_TYPEDEFname = 339,
-     ATTR_TYPEGENname = 340,
-     INTEGERconstant = 341,
-     CHARACTERconstant = 342,
-     STRINGliteral = 343,
-     REALDECIMALconstant = 344,
-     REALFRACTIONconstant = 345,
-     FLOATINGconstant = 346,
-     ZERO = 347,
-     ONE = 348,
-     ARROW = 349,
-     ICR = 350,
-     DECR = 351,
-     LS = 352,
-     RS = 353,
-     LE = 354,
-     GE = 355,
-     EQ = 356,
-     NE = 357,
-     ANDAND = 358,
-     OROR = 359,
-     ELLIPSIS = 360,
-     MULTassign = 361,
-     DIVassign = 362,
-     MODassign = 363,
-     PLUSassign = 364,
-     MINUSassign = 365,
-     LSassign = 366,
-     RSassign = 367,
-     ANDassign = 368,
-     ERassign = 369,
-     ORassign = 370,
-     ATassign = 371,
-     THEN = 372
-   };
-#endif
-/* Tokens.  */
-#define TYPEDEF 258
-#define EXTERN 259
-#define STATIC 260
-#define AUTO 261
-#define REGISTER 262
-#define THREADLOCAL 263
-#define INLINE 264
-#define FORTRAN 265
-#define NORETURN 266
-#define CONST 267
-#define VOLATILE 268
-#define RESTRICT 269
-#define ATOMIC 270
-#define FORALL 271
-#define LVALUE 272
-#define MUTEX 273
-#define VOID 274
-#define CHAR 275
-#define SHORT 276
-#define INT 277
-#define LONG 278
-#define FLOAT 279
-#define DOUBLE 280
-#define SIGNED 281
-#define UNSIGNED 282
-#define ZERO_T 283
-#define ONE_T 284
-#define VALIST 285
-#define BOOL 286
-#define COMPLEX 287
-#define IMAGINARY 288
-#define TYPEOF 289
-#define LABEL 290
-#define ENUM 291
-#define STRUCT 292
-#define UNION 293
-#define COROUTINE 294
-#define MONITOR 295
-#define THREAD 296
-#define OTYPE 297
-#define FTYPE 298
-#define DTYPE 299
-#define TTYPE 300
-#define TRAIT 301
-#define SIZEOF 302
-#define OFFSETOF 303
-#define ATTRIBUTE 304
-#define EXTENSION 305
-#define IF 306
-#define ELSE 307
-#define SWITCH 308
-#define CASE 309
-#define DEFAULT 310
-#define DO 311
-#define WHILE 312
-#define FOR 313
-#define BREAK 314
-#define CONTINUE 315
-#define GOTO 316
-#define RETURN 317
-#define CHOOSE 318
-#define DISABLE 319
-#define ENABLE 320
-#define FALLTHRU 321
-#define TRY 322
-#define CATCH 323
-#define CATCHRESUME 324
-#define FINALLY 325
-#define THROW 326
-#define THROWRESUME 327
-#define AT 328
-#define ASM 329
-#define ALIGNAS 330
-#define ALIGNOF 331
-#define GENERIC 332
-#define STATICASSERT 333
-#define IDENTIFIER 334
-#define QUOTED_IDENTIFIER 335
-#define TYPEDEFname 336
-#define TYPEGENname 337
-#define ATTR_IDENTIFIER 338
-#define ATTR_TYPEDEFname 339
-#define ATTR_TYPEGENname 340
-#define INTEGERconstant 341
-#define CHARACTERconstant 342
-#define STRINGliteral 343
-#define REALDECIMALconstant 344
-#define REALFRACTIONconstant 345
-#define FLOATINGconstant 346
-#define ZERO 347
-#define ONE 348
-#define ARROW 349
-#define ICR 350
-#define DECR 351
-#define LS 352
-#define RS 353
-#define LE 354
-#define GE 355
-#define EQ 356
-#define NE 357
-#define ANDAND 358
-#define OROR 359
-#define ELLIPSIS 360
-#define MULTassign 361
-#define DIVassign 362
-#define MODassign 363
-#define PLUSassign 364
-#define MINUSassign 365
-#define LSassign 366
-#define RSassign 367
-#define ANDassign 368
-#define ERassign 369
-#define ORassign 370
-#define ATassign 371
-#define THEN 372
-
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-/* Line 293 of yacc.c  */
-#line 142 "parser.yy"
-
-	Token tok;
-	ParseNode * pn;
-	ExpressionNode * en;
-	DeclarationNode * decl;
-	DeclarationNode::Aggregate aggKey;
-	DeclarationNode::TypeClass tclass;
-	StatementNode * sn;
-	ConstantExpr * constant;
-	ForCtl * fctl;
-	LabelNode * label;
-	InitializerNode * in;
-	OperKinds op;
-	std::string * str;
-	bool flag;
-
-
-
-/* Line 293 of yacc.c  */
-#line 408 "Parser/parser.cc"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-/* Copy the second part of user declarations.  */
-
-
-/* Line 343 of yacc.c  */
-#line 420 "Parser/parser.cc"
-
-#ifdef short
-# undef short
-#endif
-
-#ifdef YYTYPE_UINT8
-typedef YYTYPE_UINT8 yytype_uint8;
-#else
-typedef unsigned char yytype_uint8;
-#endif
-
-#ifdef YYTYPE_INT8
-typedef YYTYPE_INT8 yytype_int8;
-#elif (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-typedef signed char yytype_int8;
-#else
-typedef short int yytype_int8;
-#endif
-
-#ifdef YYTYPE_UINT16
-typedef YYTYPE_UINT16 yytype_uint16;
-#else
-typedef unsigned short int yytype_uint16;
-#endif
-
-#ifdef YYTYPE_INT16
-typedef YYTYPE_INT16 yytype_int16;
-#else
-typedef short int yytype_int16;
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-#  define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-#  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYSIZE_T size_t
-# else
-#  define YYSIZE_T unsigned int
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-#  if ENABLE_NLS
-#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(msgid) dgettext ("bison-runtime", msgid)
-#  endif
-# endif
-# ifndef YY_
-#  define YY_(msgid) msgid
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E.  */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(e) ((void) (e))
-#else
-# define YYUSE(e) /* empty */
-#endif
-
-/* Identity function, used to suppress warnings about constant conditions.  */
-#ifndef lint
-# define YYID(n) (n)
-#else
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static int
-YYID (int yyi)
-#else
-static int
-YYID (yyi)
-    int yyi;
-#endif
-{
-  return yyi;
-}
-#endif
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# ifdef YYSTACK_USE_ALLOCA
-#  if YYSTACK_USE_ALLOCA
-#   ifdef __GNUC__
-#    define YYSTACK_ALLOC __builtin_alloca
-#   elif defined __BUILTIN_VA_ARG_INCR
-#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#   elif defined _AIX
-#    define YYSTACK_ALLOC __alloca
-#   elif defined _MSC_VER
-#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-#    define alloca _alloca
-#   else
-#    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#     ifndef EXIT_SUCCESS
-#      define EXIT_SUCCESS 0
-#     endif
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-    /* The OS might guarantee only one guard page at the bottom of the stack,
-       and a page size can be as small as 4096 bytes.  So we cannot safely
-       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
-       to allow for a few compiler-allocated temporary stack slots.  */
-#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-#  endif
-# else
-#  define YYSTACK_ALLOC YYMALLOC
-#  define YYSTACK_FREE YYFREE
-#  ifndef YYSTACK_ALLOC_MAXIMUM
-#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-#  endif
-#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
-       && ! ((defined YYMALLOC || defined malloc) \
-	     && (defined YYFREE || defined free)))
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   ifndef EXIT_SUCCESS
-#    define EXIT_SUCCESS 0
-#   endif
-#  endif
-#  ifndef YYMALLOC
-#   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-#  ifndef YYFREE
-#   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-#   endif
-#  endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
-     && (! defined __cplusplus \
-	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  yytype_int16 yyss_alloc;
-  YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
-      + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
-	Stack = &yyptr->Stack_alloc;					\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (YYID (0))
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  YYSIZE_T yyi;				\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];		\
-	}					\
-      while (YYID (0))
-#  endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  244
-/* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   12347
-
-/* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  142
-/* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  249
-/* YYNRULES -- Number of rules.  */
-#define YYNRULES  779
-/* YYNRULES -- Number of states.  */
-#define YYNSTATES  1586
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   372
-
-#define YYTRANSLATE(YYX)						\
-  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const yytype_uint8 yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   130,     2,     2,     2,   133,   127,     2,
-     118,   119,   126,   128,   125,   129,   122,   132,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   139,   141,
-     134,   140,   135,   138,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   120,     2,   121,   136,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   123,   137,   124,   131,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const yytype_uint16 yyprhs[] =
-{
-       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
-      17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
-      37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
-      72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
-     120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
-     157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
-     187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
-     224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
-     253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
-     287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
-     321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
-     353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
-     377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
-     408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
-     431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
-     468,   470,   473,   475,   478,   481,   483,   486,   489,   495,
-     503,   509,   519,   525,   535,   537,   541,   543,   545,   549,
-     553,   556,   558,   561,   564,   565,   567,   570,   574,   575,
-     577,   580,   584,   588,   593,   594,   596,   598,   601,   607,
-     615,   622,   629,   634,   638,   643,   646,   650,   653,   657,
-     661,   665,   669,   675,   679,   683,   688,   690,   696,   703,
-     709,   716,   726,   737,   747,   758,   761,   763,   766,   769,
-     772,   774,   781,   790,   801,   814,   829,   830,   832,   833,
-     835,   837,   841,   846,   854,   855,   857,   861,   863,   867,
-     869,   871,   873,   877,   879,   881,   883,   887,   888,   890,
-     894,   899,   901,   905,   907,   909,   913,   917,   921,   925,
-     929,   932,   936,   943,   947,   951,   956,   958,   961,   964,
-     968,   974,   982,   990,   996,  1006,  1009,  1012,  1018,  1022,
-    1028,  1033,  1037,  1042,  1047,  1055,  1060,  1064,  1068,  1072,
-    1076,  1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,
-    1101,  1103,  1105,  1107,  1109,  1111,  1113,  1115,  1116,  1118,
-    1120,  1123,  1125,  1127,  1129,  1131,  1133,  1135,  1137,  1139,
-    1140,  1146,  1148,  1151,  1155,  1157,  1160,  1162,  1164,  1166,
-    1168,  1170,  1172,  1174,  1176,  1178,  1180,  1182,  1184,  1186,
-    1188,  1190,  1192,  1194,  1196,  1198,  1200,  1202,  1204,  1206,
-    1208,  1211,  1214,  1218,  1222,  1224,  1228,  1230,  1233,  1236,
-    1239,  1244,  1249,  1254,  1259,  1261,  1264,  1267,  1271,  1273,
-    1276,  1279,  1281,  1284,  1287,  1291,  1293,  1296,  1299,  1301,
-    1304,  1307,  1311,  1313,  1316,  1319,  1321,  1323,  1325,  1327,
-    1333,  1334,  1342,  1351,  1353,  1357,  1361,  1363,  1365,  1367,
-    1369,  1371,  1372,  1375,  1378,  1382,  1386,  1391,  1393,  1396,
-    1400,  1403,  1405,  1410,  1411,  1413,  1416,  1419,  1421,  1422,
-    1424,  1427,  1434,  1435,  1444,  1446,  1450,  1453,  1458,  1459,
-    1462,  1463,  1465,  1467,  1469,  1475,  1481,  1487,  1489,  1495,
-    1501,  1511,  1513,  1519,  1520,  1522,  1524,  1530,  1532,  1534,
-    1540,  1546,  1548,  1552,  1556,  1561,  1563,  1565,  1567,  1569,
-    1572,  1574,  1578,  1582,  1585,  1589,  1591,  1595,  1597,  1599,
-    1601,  1603,  1605,  1607,  1609,  1611,  1613,  1615,  1617,  1620,
-    1622,  1624,  1625,  1628,  1631,  1633,  1638,  1639,  1641,  1644,
-    1648,  1653,  1656,  1659,  1661,  1664,  1667,  1673,  1679,  1687,
-    1694,  1696,  1699,  1702,  1706,  1708,  1711,  1714,  1719,  1722,
-    1727,  1728,  1733,  1736,  1738,  1740,  1742,  1744,  1745,  1748,
-    1754,  1760,  1774,  1776,  1778,  1782,  1786,  1789,  1793,  1797,
-    1800,  1805,  1807,  1814,  1824,  1825,  1837,  1839,  1843,  1847,
-    1851,  1853,  1855,  1861,  1864,  1870,  1871,  1873,  1875,  1879,
-    1880,  1882,  1884,  1886,  1892,  1893,  1900,  1903,  1905,  1908,
-    1913,  1916,  1920,  1924,  1928,  1933,  1939,  1945,  1951,  1958,
-    1960,  1962,  1964,  1968,  1969,  1975,  1976,  1978,  1980,  1983,
-    1990,  1992,  1996,  1997,  1999,  2004,  2006,  2008,  2010,  2012,
-    2015,  2017,  2020,  2023,  2025,  2029,  2032,  2036,  2041,  2044,
-    2049,  2054,  2058,  2067,  2071,  2074,  2076,  2079,  2086,  2095,
-    2099,  2102,  2106,  2110,  2115,  2120,  2124,  2126,  2128,  2130,
-    2135,  2144,  2148,  2151,  2155,  2159,  2164,  2169,  2173,  2176,
-    2178,  2181,  2184,  2186,  2190,  2193,  2197,  2202,  2205,  2210,
-    2215,  2219,  2226,  2235,  2239,  2242,  2244,  2247,  2250,  2253,
-    2257,  2262,  2265,  2270,  2275,  2279,  2286,  2295,  2299,  2302,
-    2304,  2307,  2310,  2312,  2314,  2317,  2321,  2326,  2329,  2334,
-    2341,  2350,  2352,  2355,  2358,  2360,  2363,  2366,  2370,  2375,
-    2377,  2382,  2387,  2391,  2397,  2406,  2410,  2413,  2417,  2419,
-    2425,  2431,  2438,  2445,  2447,  2450,  2453,  2455,  2458,  2461,
-    2465,  2470,  2472,  2477,  2482,  2486,  2492,  2501,  2505,  2507,
-    2510,  2512,  2515,  2522,  2528,  2535,  2543,  2551,  2553,  2556,
-    2559,  2561,  2564,  2567,  2571,  2576,  2578,  2583,  2588,  2592,
-    2601,  2605,  2607,  2609,  2612,  2614,  2616,  2619,  2623,  2626,
-    2630,  2633,  2637,  2641,  2644,  2649,  2653,  2656,  2660,  2663,
-    2668,  2672,  2675,  2682,  2689,  2696,  2704,  2706,  2709,  2711,
-    2713,  2715,  2718,  2722,  2725,  2729,  2732,  2736,  2740,  2745,
-    2748,  2752,  2757,  2760,  2766,  2773,  2780,  2781,  2783,  2784
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
-static const yytype_int16 yyrhs[] =
-{
-     319,     0,    -1,    -1,    -1,    86,    -1,    89,    -1,    90,
-      -1,    91,    -1,    87,    -1,    79,    -1,    83,    -1,   149,
-      -1,    79,    -1,    83,    -1,    79,    -1,   149,    -1,    92,
-      -1,    93,    -1,   151,    -1,    88,    -1,   151,    88,    -1,
-      79,    -1,   149,    -1,   179,    -1,   118,   181,   119,    -1,
-     118,   185,   119,    -1,   152,    -1,   153,   120,   143,   176,
-     144,   121,    -1,   153,   118,   154,   119,    -1,   153,   122,
-     148,    -1,   153,   122,   120,   143,   156,   144,   121,    -1,
-     153,    90,    -1,   153,    94,   148,    -1,   153,    94,   120,
-     143,   156,   144,   121,    -1,   153,    95,    -1,   153,    96,
-      -1,   118,   292,   119,   123,   296,   389,   124,    -1,   153,
-     123,   154,   124,    -1,   155,    -1,   154,   125,   155,    -1,
-      -1,   176,    -1,   157,    -1,   156,   125,   157,    -1,   158,
-      -1,    89,   157,    -1,    89,   120,   143,   156,   144,   121,
-      -1,   158,   122,   157,    -1,   158,   122,   120,   143,   156,
-     144,   121,    -1,   158,    94,   157,    -1,   158,    94,   120,
-     143,   156,   144,   121,    -1,    86,   159,    -1,    91,   159,
-      -1,   148,   159,    -1,    -1,   159,    90,    -1,   153,    -1,
-     145,    -1,   150,    -1,    50,   163,    -1,   161,   163,    -1,
-     162,   163,    -1,    95,   160,    -1,    96,   160,    -1,    47,
-     160,    -1,    47,   118,   292,   119,    -1,    76,   160,    -1,
-      76,   118,   292,   119,    -1,    48,   118,   292,   125,   148,
-     119,    -1,    83,    -1,    83,   118,   155,   119,    -1,    83,
-     118,   293,   119,    -1,   126,    -1,   127,    -1,   128,    -1,
-     129,    -1,   130,    -1,   131,    -1,   160,    -1,   118,   292,
-     119,   163,    -1,   163,    -1,   164,   126,   163,    -1,   164,
-     132,   163,    -1,   164,   133,   163,    -1,   164,    -1,   165,
-     128,   164,    -1,   165,   129,   164,    -1,   165,    -1,   166,
-      97,   165,    -1,   166,    98,   165,    -1,   166,    -1,   167,
-     134,   166,    -1,   167,   135,   166,    -1,   167,    99,   166,
-      -1,   167,   100,   166,    -1,   167,    -1,   168,   101,   167,
-      -1,   168,   102,   167,    -1,   168,    -1,   169,   127,   168,
-      -1,   169,    -1,   170,   136,   169,    -1,   170,    -1,   171,
-     137,   170,    -1,   171,    -1,   172,   103,   171,    -1,   172,
-      -1,   173,   104,   172,    -1,   173,    -1,   173,   138,   181,
-     139,   174,    -1,   173,   138,   139,   174,    -1,   174,    -1,
-     174,    -1,   160,   178,   176,    -1,    -1,   176,    -1,   140,
-      -1,   116,    -1,   106,    -1,   107,    -1,   108,    -1,   109,
-      -1,   110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,
-      -1,   115,    -1,   120,   143,   125,   180,   144,   121,    -1,
-     120,   143,   176,   125,   180,   144,   121,    -1,   177,    -1,
-     180,   125,   177,    -1,   176,    -1,   181,   125,   176,    -1,
-      -1,   181,    -1,   184,    -1,   185,    -1,   189,    -1,   190,
-      -1,   202,    -1,   204,    -1,   205,    -1,   210,    -1,   136,
-     153,   123,   154,   124,   141,    -1,   289,   139,   329,   183,
-      -1,   123,   124,    -1,   123,   143,   143,   221,   186,   144,
-     124,    -1,   187,    -1,   186,   143,   187,    -1,   224,    -1,
-      50,   224,    -1,   325,    -1,    50,   325,    -1,   183,   144,
-      -1,   183,    -1,   188,   183,    -1,   182,   141,    -1,    51,
-     118,   181,   119,   183,    -1,    51,   118,   181,   119,   183,
-      52,   183,    -1,    53,   118,   181,   119,   195,    -1,    53,
-     118,   181,   119,   123,   143,   217,   196,   124,    -1,    63,
-     118,   181,   119,   195,    -1,    63,   118,   181,   119,   123,
-     143,   217,   198,   124,    -1,   175,    -1,   175,   105,   175,
-      -1,   327,    -1,   191,    -1,   192,   125,   191,    -1,    54,
-     192,   139,    -1,    55,   139,    -1,   193,    -1,   194,   193,
-      -1,   194,   183,    -1,    -1,   197,    -1,   194,   188,    -1,
-     197,   194,   188,    -1,    -1,   199,    -1,   194,   201,    -1,
-     194,   188,   200,    -1,   199,   194,   201,    -1,   199,   194,
-     188,   200,    -1,    -1,   201,    -1,    66,    -1,    66,   141,
-      -1,    57,   118,   181,   119,   183,    -1,    56,   183,    57,
-     118,   181,   119,   141,    -1,    58,   118,   143,   203,   119,
-     183,    -1,   182,   144,   141,   182,   141,   182,    -1,   224,
-     182,   141,   182,    -1,    61,   289,   141,    -1,    61,   126,
-     181,   141,    -1,    60,   141,    -1,    60,   289,   141,    -1,
-      59,   141,    -1,    59,   289,   141,    -1,    62,   182,   141,
-      -1,    71,   177,   141,    -1,    72,   177,   141,    -1,    72,
-     177,    73,   176,   141,    -1,    67,   185,   206,    -1,    67,
-     185,   208,    -1,    67,   185,   206,   208,    -1,   207,    -1,
-      68,   118,   105,   119,   185,    -1,   207,    68,   118,   105,
-     119,   185,    -1,    69,   118,   105,   119,   185,    -1,   207,
-      69,   118,   105,   119,   185,    -1,    68,   118,   143,   143,
-     209,   144,   119,   185,   144,    -1,   207,    68,   118,   143,
-     143,   209,   144,   119,   185,   144,    -1,    69,   118,   143,
-     143,   209,   144,   119,   185,   144,    -1,   207,    69,   118,
-     143,   143,   209,   144,   119,   185,   144,    -1,    70,   185,
-      -1,   239,    -1,   239,   326,    -1,   239,   374,    -1,   383,
-     148,    -1,   383,    -1,    74,   211,   118,   150,   119,   141,
-      -1,    74,   211,   118,   150,   139,   212,   119,   141,    -1,
-      74,   211,   118,   150,   139,   212,   139,   212,   119,   141,
-      -1,    74,   211,   118,   150,   139,   212,   139,   212,   139,
-     215,   119,   141,    -1,    74,   211,    61,   118,   150,   139,
-     139,   212,   139,   215,   139,   216,   119,   141,    -1,    -1,
-      13,    -1,    -1,   213,    -1,   214,    -1,   213,   125,   214,
-      -1,   150,   118,   175,   119,    -1,   120,   175,   121,   150,
-     118,   175,   119,    -1,    -1,   150,    -1,   215,   125,   150,
-      -1,   148,    -1,   216,   125,   148,    -1,   144,    -1,   218,
-      -1,   224,    -1,   218,   143,   224,    -1,   144,    -1,   220,
-      -1,   234,    -1,   220,   143,   234,    -1,    -1,   222,    -1,
-      35,   223,   141,    -1,   222,    35,   223,   141,    -1,   291,
-      -1,   223,   125,   291,    -1,   225,    -1,   234,    -1,   226,
-     144,   141,    -1,   231,   144,   141,    -1,   228,   144,   141,
-      -1,   310,   144,   141,    -1,   313,   144,   141,    -1,   227,
-     294,    -1,   245,   227,   294,    -1,   226,   144,   125,   143,
-     289,   294,    -1,   384,   289,   328,    -1,   387,   289,   328,
-      -1,   241,   387,   289,   328,    -1,   229,    -1,   241,   229,
-      -1,   245,   229,    -1,   245,   241,   229,    -1,   228,   144,
-     125,   143,   289,    -1,   387,   289,   118,   143,   277,   144,
-     119,    -1,   230,   289,   118,   143,   277,   144,   119,    -1,
-     120,   143,   279,   144,   121,    -1,   120,   143,   279,   144,
-     125,   143,   280,   144,   121,    -1,     3,   227,    -1,     3,
-     229,    -1,   231,   144,   125,   143,   148,    -1,     3,   238,
-     326,    -1,   232,   144,   125,   143,   326,    -1,   241,     3,
-     238,   326,    -1,   238,     3,   326,    -1,   238,     3,   241,
-     326,    -1,     3,   148,   140,   176,    -1,   233,   144,   125,
-     143,   148,   140,   176,    -1,   236,   235,   144,   141,    -1,
-     232,   144,   141,    -1,   233,   144,   141,    -1,   253,   144,
-     141,    -1,   326,   328,   294,    -1,   235,   125,   329,   326,
-     328,   294,    -1,   249,    -1,   253,    -1,   257,    -1,   300,
-      -1,   249,    -1,   255,    -1,   257,    -1,   300,    -1,   250,
-      -1,   254,    -1,   258,    -1,   301,    -1,   250,    -1,   256,
-      -1,   258,    -1,   301,    -1,    -1,   241,    -1,   242,    -1,
-     241,   242,    -1,   243,    -1,   331,    -1,    12,    -1,    14,
-      -1,    13,    -1,    17,    -1,    18,    -1,    15,    -1,    -1,
-      16,   118,   244,   303,   119,    -1,   246,    -1,   241,   246,
-      -1,   245,   241,   246,    -1,   247,    -1,   246,   247,    -1,
-       4,    -1,     5,    -1,     6,    -1,     7,    -1,     8,    -1,
-       9,    -1,    10,    -1,    11,    -1,    20,    -1,    25,    -1,
-      24,    -1,    22,    -1,    23,    -1,    21,    -1,    26,    -1,
-      27,    -1,    19,    -1,    31,    -1,    32,    -1,    33,    -1,
-      30,    -1,    28,    -1,    29,    -1,   250,    -1,   245,   250,
-      -1,   249,   247,    -1,   249,   247,   241,    -1,   249,   247,
-     250,    -1,   251,    -1,   240,   252,   240,    -1,   248,    -1,
-     241,   248,    -1,   251,   242,    -1,   251,   248,    -1,    34,
-     118,   293,   119,    -1,    34,   118,   181,   119,    -1,    85,
-     118,   293,   119,    -1,    85,   118,   181,   119,    -1,   254,
-      -1,   245,   254,    -1,   253,   247,    -1,   253,   247,   241,
-      -1,   259,    -1,   241,   259,    -1,   254,   242,    -1,   256,
-      -1,   245,   256,    -1,   255,   247,    -1,   255,   247,   241,
-      -1,   260,    -1,   241,   260,    -1,   256,   242,    -1,   258,
-      -1,   245,   258,    -1,   257,   247,    -1,   257,   247,   241,
-      -1,    81,    -1,   241,    81,    -1,   258,   242,    -1,   261,
-      -1,   272,    -1,   263,    -1,   274,    -1,   264,   329,   123,
-     265,   124,    -1,    -1,   264,   329,   291,   262,   123,   265,
-     124,    -1,   264,   329,   118,   309,   119,   123,   265,   124,
-      -1,   263,    -1,   264,   329,   291,    -1,   264,   329,   302,
-      -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,    41,
-      -1,    -1,   265,   266,    -1,   267,   141,    -1,    50,   267,
-     141,    -1,   238,   268,   141,    -1,    50,   238,   268,   141,
-      -1,   383,    -1,   383,   291,    -1,   267,   125,   291,    -1,
-     267,   125,    -1,   269,    -1,   268,   125,   329,   269,    -1,
-      -1,   271,    -1,   335,   270,    -1,   348,   270,    -1,   374,
-      -1,    -1,   271,    -1,   139,   175,    -1,    36,   329,   123,
-     275,   389,   124,    -1,    -1,    36,   329,   291,   273,   123,
-     275,   389,   124,    -1,   274,    -1,    36,   329,   291,    -1,
-     291,   276,    -1,   275,   125,   291,   276,    -1,    -1,   140,
-     175,    -1,    -1,   278,    -1,   280,    -1,   279,    -1,   279,
-     144,   125,   143,   280,    -1,   280,   144,   125,   143,   105,
-      -1,   279,   144,   125,   143,   105,    -1,   284,    -1,   280,
-     144,   125,   143,   284,    -1,   279,   144,   125,   143,   284,
-      -1,   279,   144,   125,   143,   280,   144,   125,   143,   284,
-      -1,   285,    -1,   280,   144,   125,   143,   285,    -1,    -1,
-     282,    -1,   283,    -1,   283,   144,   125,   143,   105,    -1,
-     287,    -1,   286,    -1,   283,   144,   125,   143,   287,    -1,
-     283,   144,   125,   143,   286,    -1,   286,    -1,   379,   289,
-     390,    -1,   387,   289,   390,    -1,   241,   387,   289,   390,
-      -1,   229,    -1,   287,    -1,   379,    -1,   387,    -1,   241,
-     387,    -1,   388,    -1,   237,   353,   390,    -1,   237,   357,
-     390,    -1,   237,   390,    -1,   237,   368,   390,    -1,   148,
-      -1,   288,   125,   148,    -1,   146,    -1,    81,    -1,    82,
-      -1,   147,    -1,    81,    -1,    82,    -1,   148,    -1,    81,
-      -1,    82,    -1,   383,    -1,   238,    -1,   238,   362,    -1,
-     292,    -1,   388,    -1,    -1,   140,   295,    -1,   116,   295,
-      -1,   176,    -1,   123,   296,   389,   124,    -1,    -1,   295,
-      -1,   297,   295,    -1,   296,   125,   295,    -1,   296,   125,
-     297,   295,    -1,   298,   139,    -1,   291,   139,    -1,   299,
-      -1,   298,   299,    -1,   122,   291,    -1,   120,   143,   176,
-     144,   121,    -1,   120,   143,   327,   144,   121,    -1,   120,
-     143,   175,   105,   175,   144,   121,    -1,   122,   120,   143,
-     156,   144,   121,    -1,   301,    -1,   245,   301,    -1,   300,
-     247,    -1,   300,   247,   241,    -1,   302,    -1,   241,   302,
-      -1,   301,   242,    -1,    82,   118,   309,   119,    -1,   304,
-     390,    -1,   303,   125,   304,   390,    -1,    -1,   306,   291,
-     305,   307,    -1,   238,   353,    -1,    42,    -1,    44,    -1,
-      43,    -1,    45,    -1,    -1,   307,   308,    -1,   137,   291,
-     118,   309,   119,    -1,   137,   123,   143,   315,   124,    -1,
-     137,   118,   143,   303,   144,   119,   123,   143,   315,   124,
-     118,   309,   119,    -1,   293,    -1,   176,    -1,   309,   125,
-     293,    -1,   309,   125,   176,    -1,    42,   311,    -1,   246,
-      42,   311,    -1,   310,   125,   311,    -1,   312,   307,    -1,
-     312,   307,   140,   293,    -1,   291,    -1,   290,   118,   143,
-     303,   144,   119,    -1,    46,   291,   118,   143,   303,   144,
-     119,   123,   124,    -1,    -1,    46,   291,   118,   143,   303,
-     144,   119,   123,   314,   315,   124,    -1,   316,    -1,   315,
-     143,   316,    -1,   317,   144,   141,    -1,   318,   144,   141,
-      -1,   227,    -1,   229,    -1,   317,   144,   125,   143,   289,
-      -1,   238,   326,    -1,   318,   144,   125,   143,   326,    -1,
-      -1,   320,    -1,   322,    -1,   320,   143,   322,    -1,    -1,
-     320,    -1,   224,    -1,   324,    -1,    74,   118,   150,   119,
-     141,    -1,    -1,     4,    88,   323,   123,   321,   124,    -1,
-      50,   322,    -1,   325,    -1,   340,   185,    -1,   344,   143,
-     219,   185,    -1,   228,   185,    -1,   236,   340,   185,    -1,
-     241,   340,   185,    -1,   245,   340,   185,    -1,   245,   241,
-     340,   185,    -1,   236,   344,   143,   219,   185,    -1,   241,
-     344,   143,   219,   185,    -1,   245,   344,   143,   219,   185,
-      -1,   245,   241,   344,   143,   219,   185,    -1,   335,    -1,
-     348,    -1,   340,    -1,   175,   131,   175,    -1,    -1,    74,
-     118,   150,   119,   329,    -1,    -1,   330,    -1,   331,    -1,
-     330,   331,    -1,    49,   118,   118,   332,   119,   119,    -1,
-     333,    -1,   332,   125,   333,    -1,    -1,   334,    -1,   334,
-     118,   154,   119,    -1,    79,    -1,    81,    -1,    82,    -1,
-      12,    -1,   336,   329,    -1,   337,    -1,   338,   329,    -1,
-     339,   329,    -1,   146,    -1,   118,   336,   119,    -1,   161,
-     335,    -1,   161,   241,   335,    -1,   118,   337,   119,   329,
-      -1,   336,   366,    -1,   118,   337,   119,   366,    -1,   118,
-     338,   119,   367,    -1,   118,   338,   119,    -1,   118,   337,
-     119,   118,   143,   281,   144,   119,    -1,   118,   339,   119,
-      -1,   341,   329,    -1,   342,    -1,   343,   329,    -1,   336,
-     118,   143,   281,   144,   119,    -1,   118,   342,   119,   118,
-     143,   281,   144,   119,    -1,   118,   341,   119,    -1,   161,
-     340,    -1,   161,   241,   340,    -1,   118,   342,   119,    -1,
-     118,   342,   119,   366,    -1,   118,   343,   119,   367,    -1,
-     118,   343,   119,    -1,   345,    -1,   346,    -1,   347,    -1,
-     336,   118,   288,   119,    -1,   118,   346,   119,   118,   143,
-     281,   144,   119,    -1,   118,   345,   119,    -1,   161,   344,
-      -1,   161,   241,   344,    -1,   118,   346,   119,    -1,   118,
-     346,   119,   366,    -1,   118,   347,   119,   367,    -1,   118,
-     347,   119,    -1,   349,   329,    -1,   350,    -1,   351,   329,
-      -1,   352,   329,    -1,   358,    -1,   118,   349,   119,    -1,
-     161,   348,    -1,   161,   241,   348,    -1,   118,   350,   119,
-     329,    -1,   349,   366,    -1,   118,   350,   119,   366,    -1,
-     118,   351,   119,   367,    -1,   118,   351,   119,    -1,   349,
-     118,   143,   281,   144,   119,    -1,   118,   350,   119,   118,
-     143,   281,   144,   119,    -1,   118,   352,   119,    -1,   336,
-     329,    -1,   354,    -1,   355,   329,    -1,   356,   329,    -1,
-     161,   353,    -1,   161,   241,   353,    -1,   118,   354,   119,
-     329,    -1,   336,   372,    -1,   118,   354,   119,   366,    -1,
-     118,   355,   119,   367,    -1,   118,   355,   119,    -1,   336,
-     118,   143,   281,   144,   119,    -1,   118,   354,   119,   118,
-     143,   281,   144,   119,    -1,   118,   356,   119,    -1,   358,
-     329,    -1,   359,    -1,   360,   329,    -1,   361,   329,    -1,
-      81,    -1,    82,    -1,   161,   357,    -1,   161,   241,   357,
-      -1,   118,   359,   119,   329,    -1,   358,   372,    -1,   118,
-     359,   119,   372,    -1,   358,   118,   143,   281,   144,   119,
-      -1,   118,   359,   119,   118,   143,   281,   144,   119,    -1,
-     363,    -1,   364,   329,    -1,   365,   329,    -1,   161,    -1,
-     161,   241,    -1,   161,   362,    -1,   161,   241,   362,    -1,
-     118,   363,   119,   329,    -1,   366,    -1,   118,   363,   119,
-     366,    -1,   118,   364,   119,   367,    -1,   118,   364,   119,
-      -1,   118,   143,   281,   144,   119,    -1,   118,   363,   119,
-     118,   143,   281,   144,   119,    -1,   118,   365,   119,    -1,
-     120,   121,    -1,   120,   121,   367,    -1,   367,    -1,   120,
-     143,   176,   144,   121,    -1,   120,   143,   126,   144,   121,
-      -1,   367,   120,   143,   176,   144,   121,    -1,   367,   120,
-     143,   126,   144,   121,    -1,   369,    -1,   370,   329,    -1,
-     371,   329,    -1,   161,    -1,   161,   241,    -1,   161,   368,
-      -1,   161,   241,   368,    -1,   118,   369,   119,   329,    -1,
-     372,    -1,   118,   369,   119,   372,    -1,   118,   370,   119,
-     367,    -1,   118,   370,   119,    -1,   118,   143,   281,   144,
-     119,    -1,   118,   369,   119,   118,   143,   281,   144,   119,
-      -1,   118,   371,   119,    -1,   373,    -1,   373,   367,    -1,
-     367,    -1,   120,   121,    -1,   120,   143,   241,   126,   144,
-     121,    -1,   120,   143,   241,   144,   121,    -1,   120,   143,
-     241,   176,   144,   121,    -1,   120,   143,     5,   240,   176,
-     144,   121,    -1,   120,   143,   241,     5,   176,   144,   121,
-      -1,   375,    -1,   376,   329,    -1,   377,   329,    -1,   161,
-      -1,   161,   241,    -1,   161,   374,    -1,   161,   241,   374,
-      -1,   118,   375,   119,   329,    -1,   366,    -1,   118,   375,
-     119,   366,    -1,   118,   376,   119,   367,    -1,   118,   376,
-     119,    -1,   118,   375,   119,   118,   143,   281,   144,   119,
-      -1,   118,   377,   119,    -1,   379,    -1,   387,    -1,   241,
-     387,    -1,   380,    -1,   381,    -1,   161,   239,    -1,   241,
-     161,   239,    -1,   161,   388,    -1,   241,   161,   388,    -1,
-     161,   378,    -1,   241,   161,   378,    -1,   120,   121,   239,
-      -1,   382,   239,    -1,   120,   121,   367,   239,    -1,   382,
-     367,   239,    -1,   367,   239,    -1,   120,   121,   380,    -1,
-     382,   380,    -1,   120,   121,   367,   380,    -1,   382,   367,
-     380,    -1,   367,   380,    -1,   120,   143,   241,   126,   144,
-     121,    -1,   120,   143,   241,   176,   144,   121,    -1,   120,
-     143,   245,   176,   144,   121,    -1,   120,   143,   245,   241,
-     176,   144,   121,    -1,   387,    -1,   241,   387,    -1,   384,
-      -1,   385,    -1,   386,    -1,   161,   238,    -1,   241,   161,
-     238,    -1,   161,   388,    -1,   241,   161,   388,    -1,   161,
-     383,    -1,   241,   161,   383,    -1,   120,   121,   238,    -1,
-     120,   121,   367,   238,    -1,   367,   238,    -1,   120,   121,
-     385,    -1,   120,   121,   367,   385,    -1,   367,   385,    -1,
-     120,   143,   280,   144,   121,    -1,   387,   118,   143,   277,
-     144,   119,    -1,   230,   118,   143,   277,   144,   119,    -1,
-      -1,   125,    -1,    -1,   140,   176,    -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const yytype_uint16 yyrline[] =
-{
-       0,   330,   330,   334,   341,   342,   343,   344,   345,   349,
-     350,   351,   355,   356,   360,   361,   365,   366,   370,   374,
-     375,   386,   388,   390,   391,   393,   398,   399,   405,   407,
-     409,   411,   413,   415,   417,   419,   421,   423,   432,   433,
-     439,   440,   444,   445,   449,   450,   452,   454,   456,   458,
-     460,   465,   467,   469,   481,   482,   490,   493,   495,   497,
-     502,   515,   517,   519,   521,   523,   525,   527,   529,   531,
-     533,   535,   542,   543,   549,   550,   551,   552,   556,   557,
-     564,   565,   567,   569,   574,   575,   577,   582,   583,   585,
-     590,   591,   593,   595,   597,   602,   603,   605,   610,   611,
-     616,   617,   622,   623,   628,   629,   634,   635,   640,   641,
-     644,   651,   656,   657,   665,   666,   670,   671,   672,   673,
-     674,   675,   676,   677,   678,   679,   680,   681,   691,   693,
-     698,   699,   704,   705,   711,   712,   718,   719,   720,   721,
-     722,   723,   724,   725,   726,   736,   743,   745,   756,   757,
-     762,   764,   769,   771,   776,   780,   781,   786,   791,   794,
-     796,   798,   808,   810,   821,   822,   824,   828,   830,   834,
-     835,   840,   841,   845,   850,   851,   855,   857,   863,   864,
-     868,   870,   872,   874,   880,   881,   885,   887,   892,   894,
-     896,   901,   903,   908,   910,   914,   917,   921,   924,   928,
-     930,   932,   934,   939,   941,   943,   948,   950,   952,   954,
-     956,   961,   963,   965,   967,   972,   980,   981,   986,   988,
-     993,   997,   999,  1001,  1003,  1005,  1011,  1012,  1018,  1019,
-    1023,  1024,  1029,  1031,  1037,  1038,  1040,  1046,  1051,  1061,
-    1063,  1067,  1068,  1073,  1075,  1079,  1080,  1084,  1086,  1090,
-    1091,  1095,  1096,  1100,  1101,  1116,  1117,  1118,  1119,  1120,
-    1124,  1129,  1136,  1146,  1151,  1156,  1164,  1169,  1174,  1179,
-    1184,  1214,  1219,  1226,  1228,  1235,  1240,  1245,  1256,  1261,
-    1266,  1271,  1276,  1285,  1290,  1320,  1324,  1325,  1326,  1332,
-    1337,  1345,  1346,  1347,  1348,  1357,  1358,  1359,  1360,  1364,
-    1365,  1366,  1367,  1376,  1377,  1378,  1379,  1384,  1385,  1394,
-    1395,  1400,  1401,  1405,  1407,  1409,  1411,  1413,  1415,  1418,
-    1417,  1429,  1430,  1432,  1442,  1443,  1448,  1450,  1452,  1454,
-    1456,  1459,  1461,  1463,  1468,  1470,  1472,  1474,  1476,  1478,
-    1480,  1482,  1484,  1486,  1488,  1490,  1492,  1494,  1496,  1502,
-    1503,  1505,  1507,  1509,  1514,  1515,  1521,  1522,  1524,  1526,
-    1531,  1533,  1535,  1537,  1542,  1543,  1545,  1547,  1552,  1553,
-    1555,  1560,  1561,  1563,  1565,  1570,  1571,  1573,  1578,  1579,
-    1581,  1583,  1588,  1590,  1592,  1597,  1598,  1602,  1603,  1607,
-    1610,  1609,  1613,  1615,  1619,  1624,  1629,  1631,  1633,  1635,
-    1637,  1643,  1644,  1649,  1650,  1655,  1658,  1666,  1667,  1669,
-    1671,  1676,  1677,  1683,  1684,  1686,  1689,  1692,  1697,  1698,
-    1703,  1708,  1711,  1710,  1714,  1718,  1726,  1728,  1734,  1735,
-    1743,  1744,  1748,  1749,  1750,  1752,  1754,  1761,  1762,  1764,
-    1766,  1771,  1772,  1778,  1779,  1783,  1784,  1789,  1790,  1791,
-    1793,  1801,  1802,  1804,  1807,  1809,  1813,  1814,  1815,  1817,
-    1819,  1824,  1829,  1837,  1839,  1848,  1850,  1855,  1856,  1857,
-    1861,  1862,  1863,  1867,  1868,  1869,  1873,  1874,  1875,  1880,
-    1881,  1886,  1887,  1889,  1894,  1895,  1900,  1901,  1902,  1903,
-    1904,  1919,  1920,  1925,  1926,  1932,  1934,  1937,  1939,  1941,
-    1964,  1965,  1967,  1969,  1974,  1975,  1977,  1982,  1987,  1988,
-    1994,  1993,  1997,  2001,  2003,  2005,  2007,  2013,  2014,  2019,
-    2024,  2026,  2031,  2033,  2034,  2036,  2041,  2043,  2045,  2050,
-    2052,  2057,  2062,  2070,  2076,  2075,  2089,  2090,  2095,  2096,
-    2100,  2105,  2110,  2118,  2123,  2134,  2135,  2140,  2141,  2147,
-    2148,  2152,  2153,  2154,  2159,  2158,  2169,  2177,  2183,  2189,
-    2198,  2204,  2210,  2216,  2222,  2230,  2236,  2244,  2250,  2259,
-    2260,  2261,  2265,  2271,  2272,  2282,  2283,  2287,  2288,  2293,
-    2298,  2299,  2305,  2306,  2308,  2313,  2314,  2315,  2316,  2351,
-    2353,  2354,  2356,  2361,  2366,  2371,  2373,  2375,  2380,  2382,
-    2384,  2386,  2391,  2393,  2402,  2404,  2405,  2410,  2412,  2414,
-    2419,  2421,  2423,  2428,  2430,  2432,  2444,  2445,  2446,  2450,
-    2452,  2454,  2459,  2461,  2463,  2468,  2470,  2472,  2487,  2489,
-    2490,  2492,  2497,  2498,  2503,  2505,  2507,  2512,  2514,  2516,
-    2518,  2523,  2525,  2527,  2537,  2539,  2540,  2542,  2547,  2549,
-    2551,  2556,  2558,  2560,  2562,  2567,  2569,  2571,  2584,  2586,
-    2587,  2589,  2594,  2599,  2607,  2609,  2611,  2616,  2618,  2623,
-    2625,  2642,  2643,  2645,  2650,  2652,  2654,  2656,  2658,  2663,
-    2664,  2666,  2668,  2673,  2675,  2677,  2683,  2685,  2687,  2691,
-    2693,  2695,  2697,  2731,  2732,  2734,  2739,  2741,  2743,  2745,
-    2747,  2752,  2753,  2755,  2757,  2762,  2764,  2766,  2772,  2773,
-    2775,  2784,  2787,  2789,  2792,  2794,  2796,  2810,  2811,  2813,
-    2818,  2820,  2822,  2824,  2826,  2831,  2832,  2834,  2836,  2841,
-    2843,  2851,  2852,  2853,  2858,  2859,  2864,  2866,  2868,  2870,
-    2872,  2874,  2881,  2883,  2885,  2887,  2889,  2892,  2894,  2896,
-    2898,  2900,  2905,  2907,  2909,  2914,  2940,  2941,  2943,  2947,
-    2948,  2952,  2954,  2956,  2958,  2960,  2962,  2969,  2971,  2973,
-    2975,  2977,  2979,  2984,  2991,  2993,  3011,  3013,  3018,  3019
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
-static const char *const yytname[] =
-{
-  "$end", "error", "$undefined", "TYPEDEF", "EXTERN", "STATIC", "AUTO",
-  "REGISTER", "THREADLOCAL", "INLINE", "FORTRAN", "NORETURN", "CONST",
-  "VOLATILE", "RESTRICT", "ATOMIC", "FORALL", "LVALUE", "MUTEX", "VOID",
-  "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", "SIGNED", "UNSIGNED",
-  "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF",
-  "LABEL", "ENUM", "STRUCT", "UNION", "COROUTINE", "MONITOR", "THREAD",
-  "OTYPE", "FTYPE", "DTYPE", "TTYPE", "TRAIT", "SIZEOF", "OFFSETOF",
-  "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT",
-  "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE",
-  "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME",
-  "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF",
-  "GENERIC", "STATICASSERT", "IDENTIFIER", "QUOTED_IDENTIFIER",
-  "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname",
-  "ATTR_TYPEGENname", "INTEGERconstant", "CHARACTERconstant",
-  "STRINGliteral", "REALDECIMALconstant", "REALFRACTIONconstant",
-  "FLOATINGconstant", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS",
-  "LE", "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
-  "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
-  "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
-  "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
-  "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
-  "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
-  "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
-  "string_literal", "string_literal_list", "primary_expression",
-  "postfix_expression", "argument_expression_list", "argument_expression",
-  "field_list", "field", "field_name", "fraction_constants",
-  "unary_expression", "ptrref_operator", "unary_operator",
-  "cast_expression", "multiplicative_expression", "additive_expression",
-  "shift_expression", "relational_expression", "equality_expression",
-  "AND_expression", "exclusive_OR_expression", "inclusive_OR_expression",
-  "logical_AND_expression", "logical_OR_expression",
-  "conditional_expression", "constant_expression", "assignment_expression",
-  "assignment_expression_opt", "assignment_operator", "tuple",
-  "tuple_expression_list", "comma_expression", "comma_expression_opt",
-  "statement", "labeled_statement", "compound_statement",
-  "block_item_list", "block_item", "statement_list",
-  "expression_statement", "selection_statement", "case_value",
-  "case_value_list", "case_label", "case_label_list", "case_clause",
-  "switch_clause_list_opt", "switch_clause_list", "choose_clause_list_opt",
-  "choose_clause_list", "fall_through_opt", "fall_through",
-  "iteration_statement", "for_control_expression", "jump_statement",
-  "exception_statement", "handler_list", "handler_clause",
-  "finally_clause", "exception_declaration", "asm_statement",
-  "asm_volatile_opt", "asm_operands_opt", "asm_operands_list",
-  "asm_operand", "asm_clobbers_list_opt", "label_list",
-  "declaration_list_opt", "declaration_list", "KR_declaration_list_opt",
-  "KR_declaration_list", "local_label_declaration_opt",
-  "local_label_declaration_list", "local_label_list", "declaration",
-  "cfa_declaration", "cfa_variable_declaration", "cfa_variable_specifier",
-  "cfa_function_declaration", "cfa_function_specifier",
-  "cfa_function_return", "cfa_typedef_declaration", "typedef_declaration",
-  "typedef_expression", "c_declaration", "declaring_list",
-  "declaration_specifier", "declaration_specifier_nobody",
-  "type_specifier", "type_specifier_nobody", "type_qualifier_list_opt",
-  "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1",
-  "declaration_qualifier_list", "storage_class_list", "storage_class",
-  "basic_type_name", "basic_declaration_specifier", "basic_type_specifier",
-  "direct_type_name", "indirect_type_name", "sue_declaration_specifier",
-  "sue_type_specifier", "sue_declaration_specifier_nobody",
-  "sue_type_specifier_nobody", "typedef_declaration_specifier",
-  "typedef_type_specifier", "elaborated_type", "elaborated_type_nobody",
-  "aggregate_type", "$@2", "aggregate_type_nobody", "aggregate_key",
-  "field_declaration_list", "field_declaration",
-  "cfa_field_declaring_list", "field_declaring_list", "field_declarator",
-  "bit_subrange_size_opt", "bit_subrange_size", "enum_type", "$@3",
-  "enum_type_nobody", "enumerator_list", "enumerator_value_opt",
-  "cfa_parameter_type_list_opt", "cfa_parameter_type_list",
-  "cfa_parameter_list", "cfa_abstract_parameter_list",
-  "parameter_type_list_opt", "parameter_type_list", "parameter_list",
-  "cfa_parameter_declaration", "cfa_abstract_parameter_declaration",
-  "parameter_declaration", "abstract_parameter_declaration",
-  "identifier_list", "identifier_or_type_name",
-  "no_01_identifier_or_type_name", "no_attr_identifier_or_type_name",
-  "type_name_no_function", "type_name", "initializer_opt", "initializer",
-  "initializer_list", "designation", "designator_list", "designator",
-  "typegen_declaration_specifier", "typegen_type_specifier",
-  "typegen_name", "type_parameter_list", "type_parameter", "$@4",
-  "type_class", "assertion_list_opt", "assertion", "type_name_list",
-  "type_declaring_list", "type_declarator", "type_declarator_name",
-  "trait_specifier", "$@5", "trait_declaration_list", "trait_declaration",
-  "cfa_trait_declaring_list", "trait_declaring_list", "translation_unit",
-  "external_definition_list", "external_definition_list_opt",
-  "external_definition", "$@6", "external_function_definition",
-  "function_definition", "declarator", "subrange", "asm_name_opt",
-  "attribute_list_opt", "attribute_list", "attribute",
-  "attribute_name_list", "attribute_name", "attr_name",
-  "variable_declarator", "paren_identifier", "variable_ptr",
-  "variable_array", "variable_function", "function_declarator",
-  "function_no_ptr", "function_ptr", "function_array",
-  "KR_function_declarator", "KR_function_no_ptr", "KR_function_ptr",
-  "KR_function_array", "variable_type_redeclarator", "paren_type",
-  "type_ptr", "type_array", "type_function",
-  "identifier_parameter_declarator", "identifier_parameter_ptr",
-  "identifier_parameter_array", "identifier_parameter_function",
-  "type_parameter_redeclarator", "typedef", "type_parameter_ptr",
-  "type_parameter_array", "type_parameter_function", "abstract_declarator",
-  "abstract_ptr", "abstract_array", "abstract_function", "array_dimension",
-  "multi_array_dimension", "abstract_parameter_declarator",
-  "abstract_parameter_ptr", "abstract_parameter_array",
-  "abstract_parameter_function", "array_parameter_dimension",
-  "array_parameter_1st_dimension", "variable_abstract_declarator",
-  "variable_abstract_ptr", "variable_abstract_array",
-  "variable_abstract_function",
-  "cfa_identifier_parameter_declarator_tuple",
-  "cfa_identifier_parameter_declarator_no_tuple",
-  "cfa_identifier_parameter_ptr", "cfa_identifier_parameter_array",
-  "cfa_array_parameter_1st_dimension", "cfa_abstract_declarator_tuple",
-  "cfa_abstract_declarator_no_tuple", "cfa_abstract_ptr",
-  "cfa_abstract_array", "cfa_abstract_tuple", "cfa_abstract_function",
-  "comma_opt", "assignment_opt", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const yytype_uint16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,    40,    41,
-      91,    93,    46,   123,   125,    44,    42,    38,    43,    45,
-      33,   126,    47,    37,    60,    62,    94,   124,    63,    58,
-      61,    59
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const yytype_uint16 yyr1[] =
-{
-       0,   142,   143,   144,   145,   145,   145,   145,   145,   146,
-     146,   146,   147,   147,   148,   148,   149,   149,   150,   151,
-     151,   152,   152,   152,   152,   152,   153,   153,   153,   153,
-     153,   153,   153,   153,   153,   153,   153,   153,   154,   154,
-     155,   155,   156,   156,   157,   157,   157,   157,   157,   157,
-     157,   158,   158,   158,   159,   159,   160,   160,   160,   160,
-     160,   160,   160,   160,   160,   160,   160,   160,   160,   160,
-     160,   160,   161,   161,   162,   162,   162,   162,   163,   163,
-     164,   164,   164,   164,   165,   165,   165,   166,   166,   166,
-     167,   167,   167,   167,   167,   168,   168,   168,   169,   169,
-     170,   170,   171,   171,   172,   172,   173,   173,   174,   174,
-     174,   175,   176,   176,   177,   177,   178,   178,   178,   178,
-     178,   178,   178,   178,   178,   178,   178,   178,   179,   179,
-     180,   180,   181,   181,   182,   182,   183,   183,   183,   183,
-     183,   183,   183,   183,   183,   184,   185,   185,   186,   186,
-     187,   187,   187,   187,   187,   188,   188,   189,   190,   190,
-     190,   190,   190,   190,   191,   191,   191,   192,   192,   193,
-     193,   194,   194,   195,   196,   196,   197,   197,   198,   198,
-     199,   199,   199,   199,   200,   200,   201,   201,   202,   202,
-     202,   203,   203,   204,   204,   204,   204,   204,   204,   204,
-     204,   204,   204,   205,   205,   205,   206,   206,   206,   206,
-     206,   207,   207,   207,   207,   208,   209,   209,   209,   209,
-     209,   210,   210,   210,   210,   210,   211,   211,   212,   212,
-     213,   213,   214,   214,   215,   215,   215,   216,   216,   217,
-     217,   218,   218,   219,   219,   220,   220,   221,   221,   222,
-     222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
-     226,   226,   226,   227,   227,   227,   228,   228,   228,   228,
-     228,   229,   229,   230,   230,   231,   231,   231,   232,   232,
-     232,   232,   232,   233,   233,   234,   234,   234,   234,   235,
-     235,   236,   236,   236,   236,   237,   237,   237,   237,   238,
-     238,   238,   238,   239,   239,   239,   239,   240,   240,   241,
-     241,   242,   242,   243,   243,   243,   243,   243,   243,   244,
-     243,   245,   245,   245,   246,   246,   247,   247,   247,   247,
-     247,   247,   247,   247,   248,   248,   248,   248,   248,   248,
-     248,   248,   248,   248,   248,   248,   248,   248,   248,   249,
-     249,   249,   249,   249,   250,   250,   251,   251,   251,   251,
-     252,   252,   252,   252,   253,   253,   253,   253,   254,   254,
-     254,   255,   255,   255,   255,   256,   256,   256,   257,   257,
-     257,   257,   258,   258,   258,   259,   259,   260,   260,   261,
-     262,   261,   261,   261,   263,   263,   264,   264,   264,   264,
-     264,   265,   265,   266,   266,   266,   266,   267,   267,   267,
-     267,   268,   268,   269,   269,   269,   269,   269,   270,   270,
-     271,   272,   273,   272,   272,   274,   275,   275,   276,   276,
-     277,   277,   278,   278,   278,   278,   278,   279,   279,   279,
-     279,   280,   280,   281,   281,   282,   282,   283,   283,   283,
-     283,   284,   284,   284,   284,   284,   285,   285,   285,   285,
-     285,   286,   286,   287,   287,   288,   288,   289,   289,   289,
-     290,   290,   290,   291,   291,   291,   292,   292,   292,   293,
-     293,   294,   294,   294,   295,   295,   296,   296,   296,   296,
-     296,   297,   297,   298,   298,   299,   299,   299,   299,   299,
-     300,   300,   300,   300,   301,   301,   301,   302,   303,   303,
-     305,   304,   304,   306,   306,   306,   306,   307,   307,   308,
-     308,   308,   309,   309,   309,   309,   310,   310,   310,   311,
-     311,   312,   312,   313,   314,   313,   315,   315,   316,   316,
-     317,   317,   317,   318,   318,   319,   319,   320,   320,   321,
-     321,   322,   322,   322,   323,   322,   322,   324,   324,   324,
-     325,   325,   325,   325,   325,   325,   325,   325,   325,   326,
-     326,   326,   327,   328,   328,   329,   329,   330,   330,   331,
-     332,   332,   333,   333,   333,   334,   334,   334,   334,   335,
-     335,   335,   335,   336,   336,   337,   337,   337,   338,   338,
-     338,   338,   339,   339,   340,   340,   340,   341,   341,   341,
-     342,   342,   342,   343,   343,   343,   344,   344,   344,   345,
-     345,   345,   346,   346,   346,   347,   347,   347,   348,   348,
-     348,   348,   349,   349,   350,   350,   350,   351,   351,   351,
-     351,   352,   352,   352,   353,   353,   353,   353,   354,   354,
-     354,   355,   355,   355,   355,   356,   356,   356,   357,   357,
-     357,   357,   358,   358,   359,   359,   359,   360,   360,   361,
-     361,   362,   362,   362,   363,   363,   363,   363,   363,   364,
-     364,   364,   364,   365,   365,   365,   366,   366,   366,   367,
-     367,   367,   367,   368,   368,   368,   369,   369,   369,   369,
-     369,   370,   370,   370,   370,   371,   371,   371,   372,   372,
-     372,   373,   373,   373,   373,   373,   373,   374,   374,   374,
-     375,   375,   375,   375,   375,   376,   376,   376,   376,   377,
-     377,   378,   378,   378,   379,   379,   380,   380,   380,   380,
-     380,   380,   381,   381,   381,   381,   381,   381,   381,   381,
-     381,   381,   382,   382,   382,   382,   383,   383,   383,   384,
-     384,   385,   385,   385,   385,   385,   385,   386,   386,   386,
-     386,   386,   386,   387,   388,   388,   389,   389,   390,   390
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const yytype_uint8 yyr2[] =
-{
-       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
-       7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
-       0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
-       7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
-       2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
-       4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
-       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
-       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
-       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
-       4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
-       1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
-       1,     2,     1,     2,     2,     1,     2,     2,     5,     7,
-       5,     9,     5,     9,     1,     3,     1,     1,     3,     3,
-       2,     1,     2,     2,     0,     1,     2,     3,     0,     1,
-       2,     3,     3,     4,     0,     1,     1,     2,     5,     7,
-       6,     6,     4,     3,     4,     2,     3,     2,     3,     3,
-       3,     3,     5,     3,     3,     4,     1,     5,     6,     5,
-       6,     9,    10,     9,    10,     2,     1,     2,     2,     2,
-       1,     6,     8,    10,    12,    14,     0,     1,     0,     1,
-       1,     3,     4,     7,     0,     1,     3,     1,     3,     1,
-       1,     1,     3,     1,     1,     1,     3,     0,     1,     3,
-       4,     1,     3,     1,     1,     3,     3,     3,     3,     3,
-       2,     3,     6,     3,     3,     4,     1,     2,     2,     3,
-       5,     7,     7,     5,     9,     2,     2,     5,     3,     5,
-       4,     3,     4,     4,     7,     4,     3,     3,     3,     3,
-       6,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     1,     1,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       2,     2,     3,     3,     1,     3,     1,     2,     2,     2,
-       4,     4,     4,     4,     1,     2,     2,     3,     1,     2,
-       2,     1,     2,     2,     3,     1,     2,     2,     1,     2,
-       2,     3,     1,     2,     2,     1,     1,     1,     1,     5,
-       0,     7,     8,     1,     3,     3,     1,     1,     1,     1,
-       1,     0,     2,     2,     3,     3,     4,     1,     2,     3,
-       2,     1,     4,     0,     1,     2,     2,     1,     0,     1,
-       2,     6,     0,     8,     1,     3,     2,     4,     0,     2,
-       0,     1,     1,     1,     5,     5,     5,     1,     5,     5,
-       9,     1,     5,     0,     1,     1,     5,     1,     1,     5,
-       5,     1,     3,     3,     4,     1,     1,     1,     1,     2,
-       1,     3,     3,     2,     3,     1,     3,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
-       1,     0,     2,     2,     1,     4,     0,     1,     2,     3,
-       4,     2,     2,     1,     2,     2,     5,     5,     7,     6,
-       1,     2,     2,     3,     1,     2,     2,     4,     2,     4,
-       0,     4,     2,     1,     1,     1,     1,     0,     2,     5,
-       5,    13,     1,     1,     3,     3,     2,     3,     3,     2,
-       4,     1,     6,     9,     0,    11,     1,     3,     3,     3,
-       1,     1,     5,     2,     5,     0,     1,     1,     3,     0,
-       1,     1,     1,     5,     0,     6,     2,     1,     2,     4,
-       2,     3,     3,     3,     4,     5,     5,     5,     6,     1,
-       1,     1,     3,     0,     5,     0,     1,     1,     2,     6,
-       1,     3,     0,     1,     4,     1,     1,     1,     1,     2,
-       1,     2,     2,     1,     3,     2,     3,     4,     2,     4,
-       4,     3,     8,     3,     2,     1,     2,     6,     8,     3,
-       2,     3,     3,     4,     4,     3,     1,     1,     1,     4,
-       8,     3,     2,     3,     3,     4,     4,     3,     2,     1,
-       2,     2,     1,     3,     2,     3,     4,     2,     4,     4,
-       3,     6,     8,     3,     2,     1,     2,     2,     2,     3,
-       4,     2,     4,     4,     3,     6,     8,     3,     2,     1,
-       2,     2,     1,     1,     2,     3,     4,     2,     4,     6,
-       8,     1,     2,     2,     1,     2,     2,     3,     4,     1,
-       4,     4,     3,     5,     8,     3,     2,     3,     1,     5,
-       5,     6,     6,     1,     2,     2,     1,     2,     2,     3,
-       4,     1,     4,     4,     3,     5,     8,     3,     1,     2,
-       1,     2,     6,     5,     6,     7,     7,     1,     2,     2,
-       1,     2,     2,     3,     4,     1,     4,     4,     3,     8,
-       3,     1,     1,     2,     1,     1,     2,     3,     2,     3,
-       2,     3,     3,     2,     4,     3,     2,     3,     2,     4,
-       3,     2,     6,     6,     6,     7,     1,     2,     1,     1,
-       1,     2,     3,     2,     3,     2,     3,     3,     4,     2,
-       3,     4,     2,     5,     6,     6,     0,     1,     0,     2
-};
-
-/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
-   Performed when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const yytype_uint16 yydefact[] =
-{
-     307,   307,   326,   327,   328,   329,   330,   331,   332,   333,
-     313,   315,   314,   318,     0,   316,   317,   342,   334,   339,
-     337,   338,   336,   335,   340,   341,   347,   348,   346,   343,
-     344,   345,   575,   396,   397,   398,   399,   400,     0,     0,
-       0,   307,     0,     9,   382,     0,    10,    16,    17,     0,
-       2,    72,    73,   593,    11,   307,   551,   253,     3,   481,
-       3,   266,     0,     3,     3,     3,   254,     0,     0,     0,
-     308,   309,   311,   307,   321,   324,   356,   291,   349,   354,
-     292,   364,   293,   378,   368,   385,   393,   575,   386,   424,
-     294,   500,   504,     3,     3,     0,     2,   547,   552,   557,
-     312,     0,     0,   575,   605,   575,     2,   616,   617,   618,
-     307,     0,   759,   760,     0,    14,     0,    15,   307,   275,
-     276,     0,   308,   299,   300,   301,   302,   554,   319,     0,
-     576,   577,    14,   474,   475,    13,   470,   473,     0,   531,
-     526,   517,   474,   475,     0,     0,   556,     0,   307,     0,
-       0,     0,     0,     0,     0,     0,     0,   307,   307,     0,
-     761,   308,   610,   622,   765,   758,   756,   763,     0,     0,
-       0,   260,     2,     0,   560,   468,   469,   467,     0,     0,
-       0,     0,   662,   663,     0,     0,     3,   573,   569,   575,
-     590,   575,   575,   571,     2,   570,   575,   629,   575,   575,
-     632,     0,     0,     0,   307,   307,   326,   383,     2,   307,
-     267,   310,   322,   357,   369,   505,     0,     2,     0,   481,
-     268,   308,   350,   365,   379,   501,     0,     2,     0,   325,
-     351,   358,   359,     0,   366,   370,   380,   384,     0,   502,
-     506,     0,     0,     0,     1,   307,     2,   558,   604,   606,
-     307,     2,   769,   308,   772,   573,   573,     0,   308,     0,
-       0,   278,   575,   571,     2,   307,     0,     0,   307,     0,
-     425,   578,     2,   529,     2,   582,    19,     0,    18,     0,
-       0,     0,     0,    21,    69,     4,     8,     5,     6,     7,
-       0,     0,   307,     2,    74,    75,    76,    77,    57,    22,
-      58,    26,    56,    78,   307,     0,    80,    84,    87,    90,
-      95,    98,   100,   102,   104,   106,   108,   112,   523,    23,
-     477,   479,   522,     0,   476,   480,     0,   594,   609,   612,
-     615,   621,   624,   627,     2,   767,   307,   770,   575,     2,
-      72,   307,     3,   455,     0,   778,   308,   307,   321,   295,
-     349,   296,   371,   297,   378,   375,   387,   575,   388,     3,
-       3,   437,   441,   451,   456,   298,   500,   307,   457,   734,
-     735,   307,   458,   460,     2,   611,   623,   757,     2,     2,
-     255,     2,   486,     0,   484,   483,   482,   146,     2,     2,
-     257,     2,     2,   256,     2,   286,     2,   287,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   595,   634,   575,
-       0,     0,   481,     2,   589,   598,   688,   591,   592,   561,
-     307,     2,   628,   637,   630,   631,     0,   281,   307,   307,
-     355,   308,     0,   308,   307,   762,   766,   764,   562,   307,
-     573,   261,   269,   323,     0,     2,   563,   307,   527,   352,
-     353,   288,   367,   381,   475,   307,   401,   394,   395,   503,
-     528,   258,   259,   548,   307,   465,     0,   307,   243,     0,
-       2,   245,     0,   308,   307,     0,   263,     2,   264,   283,
-       0,     0,     2,   307,   573,   307,   513,   515,   514,   516,
-       0,     0,   778,     0,   776,   428,     0,   307,     0,   307,
-     518,   307,   588,   585,   586,   587,     0,   580,   583,     0,
-      20,   307,    64,   307,    78,    59,   307,    66,   307,   307,
-      62,    63,     2,   132,     0,     0,     0,   756,   307,    31,
-       0,    34,    35,    40,     2,     0,    40,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   117,   116,     0,
-      60,    61,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     2,   674,   478,   671,   575,   575,   679,   507,   307,
-       2,   613,   614,     2,   625,   626,     0,   768,   771,     0,
-     307,   307,     0,   736,   308,   303,   304,   305,   306,   740,
-     731,   732,   738,     0,     2,     2,     0,   696,   575,   778,
-     645,   575,   575,   778,   575,   659,   575,   575,   710,   778,
-     693,   575,   575,   701,   708,   463,   307,   376,   459,   308,
-     372,   373,   377,     0,     0,     0,   307,   746,   308,   751,
-     778,   743,   307,   748,   778,   307,   307,     0,     0,    21,
-       2,     0,    22,     0,   487,   776,     0,     0,   493,   247,
-       0,   307,     0,     0,     0,   575,   601,   603,   633,   575,
-     640,   643,   596,   635,     0,   285,     0,   289,   686,     0,
-     307,   282,     0,     0,     0,     0,   280,     2,     0,   265,
-     564,   307,     0,     0,   307,     0,   308,     3,   444,     3,
-     448,   447,   619,     0,   559,   307,   308,    72,     3,   307,
-     778,   308,     3,   457,   458,     2,     0,     0,     0,   512,
-     320,   307,   508,   510,   777,     0,     0,   426,     0,     3,
-       2,     2,     0,   530,     3,     0,   582,    40,   553,     0,
-       2,     0,     0,     0,    41,     0,     0,   307,    24,     0,
-      25,     0,   114,     3,     2,    32,     0,    38,     0,     2,
-      29,     0,   113,    81,    82,    83,    85,    86,    88,    89,
-      93,    94,    91,    92,    96,    97,    99,   101,   103,   105,
-     107,     0,     0,   307,     0,     0,     0,   675,   676,   672,
-     673,   525,   524,   307,   307,   425,   742,   307,   747,   308,
-     307,   690,   733,   689,     2,   307,     0,     0,     0,     0,
-       0,     0,     0,     0,   711,     0,   779,   697,   648,   664,
-     698,     2,   644,   651,   461,   646,   647,   462,     2,   658,
-     667,   660,   661,   464,   694,   695,   709,   737,   741,   739,
-     778,   374,   394,   273,     2,   773,     2,   452,   745,   750,
-     453,     3,   431,     3,     3,     3,   481,     0,     0,     2,
-     495,   492,   777,     0,   488,     2,   491,   494,     0,   307,
-     248,   270,     3,   277,   279,     0,     2,   597,   599,   600,
-       2,   636,   638,   639,   573,     0,   687,   565,     3,   361,
-     360,   363,   362,   307,   566,     0,   567,     0,   307,   389,
-     413,   402,     0,   407,   401,     0,     0,   466,   246,     0,
-       0,     3,     2,   696,   459,     0,   555,     0,   778,   517,
-     428,   421,   111,   429,   776,     0,   307,   307,   307,     0,
-     579,   581,     0,    65,   307,     0,    67,    70,    71,     0,
-     133,   486,    79,   115,   130,     3,   114,     0,    28,    40,
-       3,     0,    37,   110,     0,     3,   575,   682,   685,   677,
-       3,     3,   744,   749,     2,    72,   307,     3,     3,   308,
-       0,     3,   575,   654,   657,   575,   575,   704,   707,   307,
-       3,   649,   665,   699,   307,   307,   454,   307,   307,     0,
-       0,     0,     0,   262,   111,     0,     3,     3,     0,   489,
-       0,   485,     0,     0,   251,   307,     0,     0,   134,     0,
-       0,     0,     0,     0,   134,     0,     0,   114,   114,   226,
-      21,   382,   469,    69,     0,    22,   135,     0,     3,   136,
-     137,     2,   148,   138,   139,   140,   141,   142,   143,   150,
-       0,   152,     0,     0,     0,   307,   307,   481,   575,     0,
-     568,   401,   413,     0,     0,     0,   720,     0,   411,   414,
-     418,   575,   418,   725,   417,   717,   575,   575,   410,   403,
-     408,   307,   607,     2,   692,   691,     0,   697,     2,   509,
-     511,   427,     0,   532,     3,   540,   541,     0,     2,   536,
-       3,     3,     0,     0,   584,     0,   776,   114,     0,     3,
-      54,     0,    54,    54,     3,    42,    44,    39,     0,     3,
-     109,     0,     2,   678,   680,   681,     0,     0,   307,     0,
-       0,     0,     3,   575,     0,     2,   650,   652,   653,     2,
-     666,   668,     2,   700,   702,   703,     0,     0,    72,     0,
-       3,     3,     3,     3,   439,   438,   442,   775,     2,     2,
-     774,     0,     0,     0,     0,     3,   490,     3,     0,   249,
-     151,   153,     0,     0,     0,     0,     2,   197,     0,   195,
-       0,     0,     0,     0,     0,     0,     0,     0,   227,     0,
-       0,   157,   154,   307,     0,   575,     0,   272,   284,     3,
-       3,   290,   574,   641,   307,     0,   404,     0,     0,     0,
-       0,   420,   721,   722,   575,   405,   415,   419,   416,   718,
-     719,   409,   391,   307,   271,   307,   423,     0,   543,   520,
-     307,     0,     0,   519,   534,    68,     0,   131,   128,     0,
-      51,     2,    45,    52,    53,     0,     0,     0,     0,    27,
-       0,   683,   307,   608,   620,   752,   753,   754,     0,   705,
-     307,   307,   307,     3,     3,     0,   713,     0,     0,     0,
-       0,   307,   307,     3,   572,   496,   497,     0,   252,     0,
-       0,     0,     0,   307,   198,   196,     0,   193,   199,     0,
-       0,     0,     0,   203,   206,   204,   200,     0,   201,     0,
-       0,    40,   149,   147,   134,   250,     0,     0,   392,   406,
-     575,   728,   730,   723,   413,   446,   450,   449,     0,   537,
-       2,   538,     2,   539,   533,   307,    36,   129,    55,     0,
-      43,    33,     2,    49,     2,    47,    30,     3,   755,     3,
-       3,     3,     0,     0,   712,   714,   655,   669,   274,     2,
-     436,     3,   435,     0,   499,   134,     0,     0,   134,     3,
-       0,   134,     3,   308,   307,   194,     0,     2,     2,   215,
-     205,     0,     0,     0,     0,     0,     0,   145,   602,   642,
-       2,   724,   726,   727,   412,     2,     0,     0,     2,     3,
-       0,     0,     0,     0,     0,     0,   715,   716,   307,     0,
-     498,   158,     0,     0,     2,   171,   134,   160,     0,   188,
-       0,   134,     0,   308,     2,   162,     0,     2,     0,     2,
-       2,     2,   202,     0,     0,   228,    37,   307,   307,   542,
-     544,   535,     0,     3,     3,   684,   656,   670,   706,   440,
-     134,   164,   167,     0,   166,   170,     3,   173,   172,     0,
-     134,   190,   134,     3,     0,   307,     0,   307,     0,     2,
-       0,     2,     0,   221,     0,     0,     0,   229,   230,   144,
-       3,     2,    46,     0,     0,   159,     0,     0,   169,   239,
-     174,     2,   241,   189,     0,   192,   178,   207,     3,   216,
-     308,   220,   209,     3,     0,   307,     0,   307,   228,     0,
-       0,     0,   228,     0,     0,     0,    50,    48,   165,   168,
-     134,     0,   175,   307,   134,   134,     0,   179,     0,     0,
-     720,   217,   218,   219,     0,   208,     3,   210,     3,     0,
-       0,     0,   222,     0,   231,   729,   307,   155,   176,   161,
-     134,   242,   191,   186,   184,   180,   163,   134,     0,   721,
-       0,     0,     0,   234,     0,   232,     0,   234,     0,   156,
-     177,   187,   181,   185,   184,   182,     3,     3,     0,     0,
-     235,     0,     0,   223,     0,   521,   183,   211,   213,     3,
-       3,     0,     0,     0,     0,   212,   214,   236,   237,     0,
-     233,   224,     0,     0,   225,   238
-};
-
-/* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
-{
-      -1,   805,   468,   298,    53,   136,   137,   299,   300,   278,
-     301,   302,   756,   757,  1104,  1105,  1106,  1230,   303,   383,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   995,   523,   944,   549,   319,   945,  1026,
-    1027,  1527,  1029,  1030,  1031,  1032,  1528,  1033,  1034,  1432,
-    1433,  1395,  1396,  1397,  1501,  1502,  1506,  1507,  1552,  1553,
-    1035,  1350,  1036,  1037,  1283,  1284,  1285,  1478,  1038,  1179,
-    1456,  1457,  1458,  1561,  1579,  1470,  1471,   469,   470,   869,
-     870,  1003,    56,    57,    58,    59,    60,   343,   159,    63,
-      64,    65,    66,   186,   472,   345,    68,  1479,    69,   258,
-      71,    72,   268,   347,   348,    75,    76,   349,   123,    79,
-     204,    80,   124,   351,   352,   353,   125,    84,   355,    85,
-     695,    86,    87,   694,   901,   902,  1057,  1058,  1206,  1059,
-      88,   496,    89,   494,   727,   851,   852,   359,   360,   697,
-     698,   699,   361,   362,   700,   364,   466,  1040,   138,   139,
-     321,   322,   171,   654,   655,   656,   657,   658,   365,   126,
-      92,   491,   492,   919,   493,   273,   500,   323,    93,   140,
-     141,    94,  1315,  1088,  1089,  1090,  1091,    95,    96,   716,
-      97,   267,    98,    99,   187,   997,   689,   414,   130,   100,
-     506,   507,   508,   188,   262,   190,   191,   192,   263,   103,
-     104,   105,   106,   107,   108,   109,   195,   196,   197,   198,
-     199,   818,   610,   611,   612,   613,   200,   615,   616,   617,
-     573,   574,   575,   576,  1063,   110,   619,   620,   621,   622,
-     623,   624,  1064,  1065,  1066,  1067,   599,   368,   369,   370,
-     371,   324,   165,   112,   113,   114,   373,   725,   625
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -1383
-static const yytype_int16 yypact[] =
-{
-    8270, 10217,   -17, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383,   -36, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383,   140, -1383, -1383, -1383, -1383, -1383,  1657,  1214,
-     102,  8520,   132, -1383, -1383,   149, -1383, -1383, -1383,   830,
-     187, -1383, -1383, -1383, -1383,  5208, -1383, -1383, -1383,    24,
-     243, -1383,  1781, -1383, -1383, -1383, -1383,  1921,   370,    92,
-    4591, -1383, -1383,  5208,  2459, -1383, -1383,  2198,   385,  6772,
-     412,  1903,  2198,  1932, -1383, -1383, -1383,   140, -1383, -1383,
-    2198,  2311, -1383,   275, -1383,   395,   433, -1383, -1383, -1383,
-   -1383,   291,   243,   140, -1383,   140, -1383, -1383, -1383, -1383,
-   10499,  1781, -1383, -1383,  1781, -1383,   320, -1383, 10571, -1383,
-   -1383,  2251, 10618, -1383,  2432,  2432,  2432, -1383, -1383,  1192,
-     140, -1383,   345,   378,   418, -1383, -1383, -1383,   429, -1383,
-   -1383, -1383, -1383, -1383,   446,   451, -1383,   425,  9857,  2118,
-     800,   455,   479,   494,   533,   546,   551, 10690,  7882,   557,
-   -1383,  6581, -1383, -1383, -1383, -1383,   559, -1383,    21,  4787,
-    4787, -1383,   625,   286, -1383, -1383, -1383, -1383,   641,   314,
-     329,   432, -1383, -1383,  1921,  2167,   639,   700, -1383,    73,
-   -1383,   140,   140,   243, -1383, -1383,   173, -1383,   140,   140,
-   -1383,  2636,   669,   678,  2432, 12189, -1383, -1383, -1383,  5208,
-   -1383, -1383,  2198, -1383, -1383, -1383,   243, -1383,  1781,    24,
-   -1383,  8941, -1383,  2432,  2432,  2432,   243, -1383,  1657, -1383,
-    3514, -1383, -1383,   643,  2432, -1383,  2432, -1383,   980,  2432,
-   -1383,  1657,   653,   671, -1383,  8520,   502, -1383, -1383, -1383,
-    9579, -1383, -1383,  7092, -1383,   700,    34, 11586, 10618,  2251,
-    2636, -1383,   284, -1383, -1383, 10571,  1781,   709, 12151,  1214,
-     717, -1383, -1383,   118, -1383,   521, -1383,   741,   777, 11604,
-     758, 11586, 11660, -1383,   769, -1383, -1383, -1383, -1383, -1383,
-   11678, 11678,  9617,   187, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383,  1030,  2396,  9857, 11586, -1383,   499,   831,   880,
-     441,   888,   765,   754,   789,   827,    -6, -1383, -1383, -1383,
-     708, -1383, -1383,   177, -1383, -1383,  2118, -1383, -1383,   383,
-     816, -1383,   407,   816, -1383, -1383, 10499, -1383,   140,   819,
-     822,  9977, -1383, -1383,  1636,  1050,  9283, 12227,  2198,  2198,
-   -1383,  2198,  2432,  2198,  2432, -1383, -1383,   140, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383,  2198,  2432, 10737,  1781, -1383,
-   -1383, 10809,  1848, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383,  5755, 11586, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,  1042,   833,
-     836,   848,  1053,   851,   853,   862,  2167, -1383, -1383,   140,
-     824,   866,    24,   865, -1383, -1383,   875, -1383, -1383, -1383,
-    9579, -1383, -1383, -1383, -1383, -1383,  2636, -1383,  9857,  9857,
-   -1383,  2432,  2251, 12265,  9407, -1383, -1383, -1383, -1383,  9579,
-      34, -1383, -1383,  2198,   243, -1383, -1383,  9579, -1383,  4504,
-   -1383, -1383,  2432,  2432,   149,  9857, -1383,   887, -1383,  2432,
-   -1383, -1383, -1383, -1383,  6965, -1383,   352, 11872, -1383,   243,
-     894, -1383,  2251, 11963, 12189, 11734, -1383, -1383, -1383, -1383,
-    1085,  2636, -1383,  9407,   700,  8395, -1383, -1383, -1383, -1383,
-     870,   397,   879,  1214,   897,   907,   911, 12151,   999, 10571,
-   -1383, 12151, -1383, -1383, -1383, -1383,   409, -1383,   923,   908,
-   -1383,  9617, -1383, 10856, -1383, -1383,  9617, -1383,  9737,  9617,
-   -1383, -1383,   187, -1383,   582,   934,   936, -1383,  7626, -1383,
-     901, -1383, -1383, 11586, -1383,   946, 11586, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, 11586,
-   -1383, -1383, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586,
-   11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586, 11586,
-    6765,   708,  1098, -1383, -1383,   140,   140, -1383, -1383,  9857,
-   -1383, -1383,   875, -1383, -1383,   875, 11752, -1383, -1383,  1214,
-   10809,  7626,   942, -1383, 10928, -1383,  2432,  2432,  2432, -1383,
-   -1383,   559, -1383,   953,   746,   958, 11586,  1942,   292,   879,
-   -1383,   140,   140,   879,   325, -1383,   140,   140,   875,   879,
-   -1383,   140,   140, -1383,   816, -1383, 10975, -1383,  1781, 12057,
-    2432,  2432, -1383,  1282,   434,   463, 10975, -1383, 11094, -1383,
-     879, -1383, 10737, -1383,   108,  9065,  9065,  1781,  5316,   928,
-   -1383,   763,   947,   961, -1383,   959,  4787,   228, -1383,  1067,
-    1781,  9065,   502,  2251,   502,   344,   816, -1383, -1383,   388,
-     816, -1383, -1383, -1383,  2251, -1383,   425, -1383,   816,   243,
-    6965, -1383,   583,   985,   607,   987, -1383,   819,   243, -1383,
-   -1383,  9579,   243,   657, 10333,   986, 12057, -1383, -1383,  1004,
-   -1383, -1383, -1383,   502, -1383, 12010, 12104,   822, -1383,  9065,
-     652,  9283, -1383, -1383,   559,  1006,  1014,   870,  2503, -1383,
-   -1383, 12151, -1383, -1383,  1214,  1043, 11586, -1383,  1214,  1044,
-   -1383, -1383,  1056, -1383,  1044,  1059,   521, 11586, -1383,  1061,
-     187,  1069,  1065,  1079, -1383,  1081,  1087,  7626, -1383, 11586,
-   -1383,  5482, 11586,  1083, -1383, -1383,   676, -1383, 11586, -1383,
-   -1383,   877, -1383, -1383, -1383, -1383,   499,   499,   831,   831,
-     880,   880,   880,   880,   441,   441,   888,   765,   754,   789,
-     827, 11586,   165,  6965,  1094,  1095,  1101,  1098, -1383, -1383,
-   -1383, -1383, -1383,  6965,  6965, -1383, -1383, 10737, -1383,  8010,
-   10097, -1383, -1383, -1383,   746,  6965,  1092,  1102,  1104,  1113,
-    1114,  1120,  1121,  1128, -1383,  3273, -1383,  1942, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383, -1383,   875, -1383, -1383, -1383,
-     879,  2432, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383,  1130,  1131, -1383,    24,  1083,  5316, -1383,
-   -1383, -1383,  5755,  1051, -1383, -1383, -1383, -1383,  1214,  7359,
-    1182, -1383, -1383, -1383, -1383,  1115, -1383, -1383, -1383,   875,
-   -1383, -1383, -1383,   875,   700,  1134,   875, -1383, -1383, -1383,
-   -1383, -1383, -1383,  7882, -1383,   243, -1383,  1139, 10856, -1383,
-    1890, -1383,   518,  1214, -1383,  1145,  1140, -1383, -1383,  1147,
-    1148, -1383,  1001,  2290, -1383,   487, -1383,  2503,   879, -1383,
-     907, -1383, -1383, -1383,   897,  1153, 12151, 10571,  9857,  1157,
-   -1383, -1383,   690,  1143,  7882,   502,  1143, -1383, -1383,  1143,
-   -1383,  5755, -1383, -1383, -1383,  1152, 11586,  1231, -1383, 11586,
-   -1383,  1231, -1383, -1383, 11586, -1383,   472,   816, -1383, -1383,
-   -1383, -1383, -1383, -1383, -1383,   822,  9977, -1383, -1383,  8138,
-    1161, -1383,   528,   816, -1383,   536,   537,   816, -1383,  2432,
-    3627, -1383, -1383, -1383,  6965,  6965, -1383,  9407,  9407,  1162,
-    1158,  1164,  1167, -1383,   610,   248,  1083, -1383,  1231, -1383,
-    4787, -1383, 11586,   542, -1383,  7498,  1160,  1169, 11530,  1172,
-    1174,   664,   707,   613, 11586,  1180,   243, 11586, 11586,  1295,
-    1170,  1173,   149,   220,   846,  1177,  1188,  1184, -1383, -1383,
-   -1383,  1194, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-    1189, -1383,  1214,  1208, 11586,  6965,  6965,    24,   140,  1215,
-   -1383, -1383,  1890,   548,  1720, 11586,  2073,   574, -1383, -1383,
-    1205,    56,  1205, -1383, -1383, -1383,   140,   140,  1214, -1383,
-   -1383, 10380, -1383, -1383, -1383, -1383,  1233,  2290, -1383, -1383,
-    1216, -1383,  1245, -1383,  1044, -1383, -1383,  2251,  1246, -1383,
-   -1383, -1383,   718,  1248, -1383,  1254,   959, 11586,  1258,  1152,
-   -1383,   727, -1383, -1383,  1264, -1383,    31, -1383,  1270,  1264,
-   -1383,  1274, -1383, -1383, -1383,   875,  1275,  1276,  7754,  1277,
-    1279,  1284, -1383,   140,  1287, -1383, -1383, -1383,   875, -1383,
-   -1383, -1383, -1383, -1383, -1383,   875, 11586, 11586,   822,  1286,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, 11586, 11586,  1289,  1290,  1264, -1383, -1383,  1214, -1383,
-   -1383, -1383, 11586, 11586,  1346, 11586, -1383, -1383,  1271, -1383,
-    1273, 11586,  1291,  1292, 11586,  1159,  1297,    57, -1383,    19,
-    1981, -1383, -1383,  7359,  1299,   140,   584, -1383, -1383, -1383,
-   -1383, -1383, -1383, -1383, 10452,   611, -1383,   912,  1306,  1317,
-    1324, -1383,  2073, -1383,   140, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383, -1383, 11173, -1383,  9407, -1383,  1325, -1383, -1383,
-   10571,   619,   656, -1383,  1321, -1383,  1323, -1383, -1383,  1330,
-    1326, -1383, -1383,  1326,  1326,  1231,  1331,  1329,  1704, -1383,
-    1333, -1383,  6965, -1383, -1383, -1383, -1383, -1383,  1335, -1383,
-    6965,  6965,  6965, -1383, -1383,  1337, -1383,  1339,  1342,  1343,
-     728,  9112,  9236, -1383, -1383, -1383, -1383,  1353, -1383,   733,
-     738,  1332,   752,  7184, -1383, -1383,   666, -1383, -1383,   755,
-    1358,  1359,   243,  1412,  1008, -1383, -1383, 11586, -1383,  1368,
-     425, 11586, -1383, -1383, 11530, -1383,  1370,  1372, -1383, -1383,
-     570,   816, -1383, -1383,  1890, -1383, -1383, -1383,  1364, -1383,
-   -1383, -1383, -1383, -1383, -1383, 10571, -1383, -1383, -1383,  1231,
-   -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383, -1383,  1371,  1376, -1383, -1383, -1383, -1383, -1383, -1383,
-   -1383,  1379, -1383,  1378, -1383, 11530,   233, 11586, 11530, -1383,
-    1383, 11586, -1383,  8817, 10571, -1383,   457,  1401,  1403, -1383,
-   -1383,  1386,  1393,  1373,   425,    88,   945, -1383, -1383, -1383,
-   -1383, -1383, -1383,   875, -1383, -1383,  1781,  2251,  1391,  1264,
-    1231,  1231,  1397,  1405,  1406,  1421, -1383, -1383,  9407,  1410,
-   -1383,  1466, 11586,  1408, -1383, -1383, 11443, -1383,   756, -1383,
-    1417, 11530,  1420,  9454, -1383, -1383,  1423, -1383,  1425, -1383,
-    1446,  1452, -1383,  1426,  1427,    66,  1428,  6965, 10571, -1383,
-   -1383, -1383,  1443,  1264,  1264, -1383, -1383, -1383, -1383, -1383,
-   11530,   293, -1383,   290, -1383, -1383,  8645, -1383, -1383,  1434,
-   11586, -1383, 11586,  8645,   243, 11047,   243, 11047,  1457, -1383,
-    1459, -1383,  1445, -1383, 11586,  1464,   182,  1461, -1383, -1383,
-   -1383,  1465, -1383,  1467,  1470, -1383, 11586, 11586, -1383, -1383,
-    1034,   112, -1383, -1383,  1451, -1383,  1034, -1383, -1383,  1775,
-   10928,   502, -1383, -1383,   243, 11047,   243, 11047,    66,  1473,
-   11586,  1454,    66,    66,  1478,  1482, -1383, -1383, -1383, -1383,
-   11443,  1477,  1034,  8770, 11586, 11356,  1479,  1034,  1483,  1775,
-    2146, -1383, -1383, -1383,  1485, -1383, -1383, -1383, -1383,  1469,
-     425,  1486, -1383,   245, -1383, -1383,  9857, -1383, 11264, -1383,
-   11443, -1383, -1383,  1471, 11177, -1383, -1383, 11356,   243,  2146,
-     243,  1487,  1492,   425,  1498, -1383,  1476,   425,   776, -1383,
-   11264, -1383, -1383, -1383, 11177, -1383, -1383, -1383,   243,   243,
-   -1383,   311, 11586, -1383,   786, -1383, -1383, -1383, -1383, -1383,
-   -1383,   425,   502,  1503,  1488, -1383, -1383, -1383, -1383,   809,
-   -1383, -1383,  1494,   502, -1383, -1383
-};
-
-/* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
-{
-   -1383,  4593,  1583, -1383,  1593, -1383,     7,     0,    78, -1383,
-   -1383,   602,  -522,  -505,  -863, -1004, -1383,    38,  6002,  1181,
-   -1383,  1422,   541,   588,   595,   601,  1062,  1073,  1066,  1060,
-    1071, -1383,   277,  -546,  4562,  -898, -1383, -1383,   704,  -156,
-    -911,   350, -1383,   867, -1383,   468, -1382, -1383, -1383,   189,
-   -1383,  -814,  -749,   303, -1383, -1383, -1383, -1383,   106, -1288,
-   -1383, -1383, -1383, -1383, -1383, -1383,   382, -1255, -1383, -1383,
-    -582, -1383,   168,   127, -1383,   235, -1383,  -305, -1383, -1383,
-   -1383,   637,  -822, -1383, -1383,     6, -1179,   609,   270, -1383,
-   -1383, -1383,   -90, -1383,     9,  -473,    47,  -313,  -199,  2590,
-    3849, -1383, -1383,   131,   265,  1119,   550,    60,  2977, -1383,
-   -1383, -1383,   202, -1383,   185,   346,  3452,   -48,  -331, -1383,
-   -1383,  5280,  5430,  -843, -1383,   783,   630,   379,   622,  -420,
-   -1383, -1383,  5841,   962,   766,  -534, -1383,    52,  -204,  -615,
-   -1383, -1383,  -942,  -935,    39,  -222, -1383,    33, -1383,  1416,
-    -216,    20,  -188,  -133,   748,   829, -1383,  1036,   394,  3580,
-    1399,  -457,   975, -1383, -1383,   791, -1383,  -436, -1383,   -83,
-   -1383, -1383, -1383, -1259,   482, -1383, -1383, -1383,  1227, -1383,
-      23, -1383, -1383,  -849,   -95, -1324,  -170,  5964, -1383,  2284,
-   -1383,   978, -1383,  -167,   133,  -172,  -168,  -163,     2,   -46,
-     -45,   -43,  1526,    10,    35,    51,   -16,  -155,  -152,  -150,
-    -142,  -320,  -488,  -433,  -408,  -556,  -322,  -512, -1383, -1383,
-    -462,  1149,  1150,  1154,  1151,  5148,  -577,  -523,  -521,  -515,
-    -256, -1383,  -990, -1043, -1030, -1021,  -591,   141,  -243, -1383,
-   -1383,   -28,    77,   -58, -1383,  4060,   469,  -592,  -206
-};
-
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -551
-static const yytype_int16 yytable[] =
-{
-      54,   117,   102,   151,   152,   430,   153,   119,   116,    67,
-     710,  1198,   399,   743,   761,   627,   400,   412,   407,   693,
-    1041,   401,   214,   614,  1199,   609,   261,   164,   593,   402,
-     820,   441,   403,  1200,   404,   838,   385,   386,   117,   117,
-     729,    54,   405,   102,   734,  1144,  1145,  1039,   121,    54,
-      67,   819,   254,  1146,   637,    54,  1378,   162,   641,   154,
-      77,  1071,    54,   863,   146,   888,  1203,    54,  1434,   193,
-      54,   127,   216,    54,   214,   226,   526,   111,   111,   219,
-    1289,   811,   128,   812,   155,   476,   478,   399,  1109,   813,
-     164,   400,   810,   407,  1352,   178,   401,  1232,   569,   337,
-     156,    77,   160,  1173,   402,    40,   427,   403,   411,   404,
-     788,    54,   855,   214,    54,   679,   807,   405,   111,  1176,
-    1177,    54,    40,  1534,   639,  1237,   202,   872,   643,   117,
-    1287,    73,   570,   101,   688,  1155,   524,  1290,   151,   152,
-     169,   153,   692,  1434,   255,   448,   379,   256,  1550,    54,
-     111,   162,   477,  1238,   276,  1554,  1161,   252,   460,  1461,
-     471,    54,   380,   375,   170,   160,  -240,  -240,   955,   408,
-     719,   808,    73,   214,   101,   911,   413,   203,   960,   961,
-     923,   436,   150,  1160,    54,    54,  1454,   162,   101,    40,
-     971,   246,  1483,   413,   154,   320,   809,   363,  1288,  1227,
-     189,    54,    81,   101,   335,   214,   101,  1414,  1194,    54,
-     214,   162,  1303,   151,   152,   932,   153,  1535,    54,   155,
-     145,    54,    40,   444,   677,   277,   477,  1415,   117,   807,
-    1516,  1320,  1518,  1323,  1325,   156,  -240,   436,   117,   672,
-     983,   117,   701,    81,   408,    54,   117,   102,   606,  1555,
-     147,   440,   432,   465,    67,   498,   435,  1352,   499,    54,
-      54,   982,   162,   627,  1352,    74,    54,   148,   463,   117,
-      62,    62,   682,   684,   710,   223,   164,   796,   588,   712,
-    1146,   811,   101,   812,   808,   614,   722,  1392,  1393,   813,
-     749,   421,   970,   413,   101,   739,   578,   741,   627,   484,
-     742,  1491,   579,   746,   954,    77,    74,   627,   157,   809,
-      77,    62,   435,   837,   672,   490,   807,   398,   189,  1144,
-    1145,  1492,   111,   593,  1352,   959,    54,  1146,   375,   848,
-     471,   681,  1082,    40,  1041,   212,   820,   686,   518,   320,
-      62,    40,   101,    62,    54,    54,    82,   798,   865,   471,
-     651,   160,   823,  1151,   101,   524,  1394,   471,   830,   -10,
-     524,  1039,  1349,   524,  1546,   627,   172,   866,    54,  1141,
-    1142,   808,    54,   201,    40,   838,    73,   178,   101,  1152,
-     627,   474,   652,   587,  1547,   214,   895,    82,  -299,   811,
-     673,   812,   480,    40,    90,   244,   809,   813,  1466,   849,
-     241,   640,   482,   824,   413,   644,    54,   827,   375,   246,
-     821,   389,   605,   833,   782,  1467,   206,     3,     4,     5,
-       6,     7,     8,     9,  1152,   214,    54,   390,   344,  1468,
-    1189,  1190,    54,  -546,   847,    90,  1571,    40,   850,   392,
-    1402,   854,   854,   828,  1107,   605,  1429,    81,   683,   685,
-    1572,  1351,    81,  1146,   394,   393,  1379,   854,   701,   101,
-     257,   710,   876,   -12,   413,   673,  1198,   117,   627,  1084,
-     395,   702,    54,   363,   116,   320,   320,   703,   608,  1199,
-      77,    54,   600,   375,   962,    54,   443,   102,  1200,  1512,
-      54,    62,  1092,   117,    67,   614,  -471,   981,   117,    77,
-     983,   580,   320,   413,  1226,   854,   880,    77,   413,  1201,
-      74,  1392,  1393,   276,   121,    62,   720,  1423,  1424,   733,
-    1203,    40,   721,   864,   167,   583,   596,   413,   735,  1474,
-     117,  1475,   630,   502,   736,   117,  -472,   755,   745,   189,
-     559,   560,   760,   712,   490,    77,   320,   272,   490,  1303,
-     823,   474,   596,    -3,   963,   843,   596,   396,   320,   844,
-     320,   701,   111,   320,   274,   320,   320,   363,   874,   275,
-     474,   701,   701,   397,   328,   561,   562,    40,   474,   884,
-    1404,   115,  1438,   701,   845,    40,    40,   167,   846,   117,
-    1112,    82,   413,  1532,    47,    48,    82,   981,   329,   792,
-     503,   471,   504,   505,    54,  1263,  1264,    54,   845,    61,
-     120,   212,  1078,   330,  1472,   908,    73,   325,   101,    40,
-     213,  1472,    81,   608,   713,   552,   320,  1327,    54,   232,
-     363,   553,   554,   117,   986,  1329,  1330,  1331,   627,    90,
-    1207,    81,  1207,  1068,    90,   710,  1125,    54,   413,    81,
-      61,   117,   331,   837,  1129,  1132,   605,   605,   214,  1069,
-      54,   840,   117,    54,   117,   332,   903,  1158,   993,   873,
-     333,   875,   213,  1068,    54,   374,   223,   378,   437,   210,
-     856,  1531,   220,  1159,   363,   363,  1438,    81,  1370,  1196,
-     413,  1438,    43,   871,   175,   176,    46,   853,   853,  1204,
-     363,   748,   889,   117,   344,    47,    48,   749,   749,  1158,
-     907,   213,  1079,   853,  1047,  1205,  1438,    54,    54,  1131,
-    1134,  1500,   800,  1438,   117,  1295,   891,  1505,   117,   999,
-     712,  -112,   749,  1060,   437,  -112,  1204,   806,   212,  1171,
-     608,   900,   710,    43,  1310,   175,   176,    46,   363,   387,
-      74,    77,  1299,  1530,   885,    62,    47,    48,  1537,   391,
-    1311,   853,   701,   701,   409,    77,    82,   600,   490,  1366,
-     912,   213,   605,   167,   411,   596,   897,   600,    51,    52,
-    1136,  1312,   579,  1143,   451,    82,    43,   428,   175,   176,
-      46,   749,   606,    82,   461,   948,   429,  1313,   344,    47,
-      48,   949,  1460,   213,    54,  1167,   115,  1355,   213,  1094,
-     602,   596,   462,  1100,    90,   949,  1101,    54,  1102,    47,
-      48,   596,   474,   701,   701,    43,   571,   596,   413,    46,
-     442,    82,   485,    90,    51,    52,   474,  1223,    47,    48,
-    -422,    90,   115,   579,   142,   143,  1431,  1231,  1169,  1338,
-     806,   608,  1345,  1339,    61,    47,    48,  1346,   749,  1191,
-     509,   344,   652,   749,   804,   510,   605,  1156,   117,  1025,
-     903,  1348,    51,    52,  1356,  1439,   513,   749,    67,    90,
-     749,   749,   399,   859,  1062,  1060,   400,   518,   713,   407,
-     566,   401,   565,    81,   443,  1565,   213,   325,   325,   402,
-      54,   579,   403,   117,   404,  1574,  1519,    81,  1489,    43,
-    1523,  1571,   405,    46,   712,   344,   344,    54,   246,   327,
-    1498,  1431,    47,    48,   325,   283,   567,   174,  1582,    77,
-     568,   344,   363,  1085,  1583,   117,   334,   806,    47,    48,
-     590,   652,  1095,    -3,  1521,  1052,   111,   117,    49,    43,
-     608,   117,   665,    46,  1103,   666,    51,    52,  1103,   555,
-     556,   212,    47,    48,   519,   675,   381,   667,   325,   247,
-     669,   443,   670,   490,  1087,   320,   212,   557,   558,   344,
-     115,   671,   596,   213,   676,   630,   678,   325,   717,   563,
-     564,  1307,  1218,    47,    48,   251,    51,    52,   117,   213,
-      73,   952,   949,   922,   111,  1103,  1269,  1270,  1025,  1272,
-    -390,    54,    54,    54,    67,  1276,  1573,  -244,  1279,   606,
-     701,   754,   724,   213,   800,   115,   363,   363,   701,   701,
-     701,   327,   413,  1061,   728,   672,  1062,    82,    47,    48,
-     408,   737,   117,   903,  1168,  1170,  1172,   726,   325,   738,
-     608,    82,    54,   750,    54,   751,    54,  1341,   953,   115,
-     419,   142,   454,   801,   212,    77,   759,   -14,   117,  1416,
-     949,    81,    47,    48,   803,   713,  1361,  1362,   115,   814,
-     142,   143,   111,   438,   862,    90,   -15,    54,  1392,  1393,
-    1548,    47,    48,   446,    61,   839,   766,   767,   455,    90,
-     861,   117,   868,   456,   890,   602,   892,   600,  1103,   904,
-      10,    11,    12,    13,    14,    15,    16,   730,   900,   912,
-     529,   605,   731,  -445,   530,   531,   532,    51,    52,    43,
-    -550,   182,   183,    46,    74,   994,    73,  1060,   916,    62,
-    1233,  1234,    47,    48,   213,   768,   769,    40,   533,   627,
-     534,   596,   535,   536,   770,   771,   772,   773,   117,   525,
-     246,   327,   413,   344,   774,   775,   903,   921,   604,   721,
-     605,   421,   668,   413,   928,  1001,    51,    52,   930,   213,
-     933,    55,   118,  1025,   936,  1061,   673,  1197,   213,  1061,
-     606,  1398,    67,   229,   935,   701,   230,    62,   937,   234,
-     938,   236,    54,   482,   327,   413,   939,    81,   946,   239,
-     821,   327,   605,   956,   957,    82,   571,  1042,   413,  1028,
-     958,   972,    55,   973,    51,    52,  1085,  1280,  1281,  1282,
-     149,  1110,   974,   975,   443,   117,    55,   117,   117,   976,
-     977,   900,  1103,    77,  1103,  1103,   213,   978,   185,  -433,
-    -432,   209,  1306,  1048,    55,  1044,   213,   344,   344,   713,
-     111,   213,  1051,    90,  1072,  1073,   941,  1087,  1074,  1075,
-      74,   115,  1083,   142,   143,    62,  1093,  1097,  1162,   994,
-    1123,  1147,  1420,  1148,    47,    48,  1150,  1163,  1062,  1149,
-    1165,   118,  1166,   115,  1025,   142,   143,   111,  1174,   118,
-     363,   363,   260,   265,    54,   214,    47,    48,  1178,    -9,
-     115,   690,  -468,   749,    73,   269,   -11,  1100,    -3,   117,
-    1101,  1085,  1102,    47,    48,  1181,  1103,  1187,  1185,   304,
-     149,   229,   922,    77,  1193,  1061,   704,   399,   118,   341,
-     415,   400,   209,   407,  1055,  1025,   401,   423,  1025,   213,
-     111,    82,  1214,   498,   402,   214,   713,   403,  1164,   404,
-     219,   115,  1087,   142,   454,   185,   185,   405,  1365,  1216,
-    1219,  1224,   672,  1225,    47,    48,    54,    54,   525,  1228,
-     117,   117,   260,   525,  1511,    81,   525,  1103,  1103,  1235,
-      55,  1239,   111,  1241,  1243,  1244,  1025,   325,  1245,    90,
-    1246,  1025,   209,  1271,  1354,  1247,  1249,  1256,   115,  1419,
-    1265,  1266,  1274,   415,  1275,  1100,  1318,  1481,  1101,  1481,
-    1102,    47,    48,  1293,  1085,  1300,    55,   363,   922,   922,
-    1025,   111,  1277,  1278,   265,   839,  1301,  1061,  1286,   265,
-     260,   260,  1413,  1302,  1308,  1314,   118,  1316,    74,  1322,
-    1347,  1317,  1321,    62,  1326,   144,  1328,  1481,  1334,  1481,
-    1335,  1336,  1337,   151,   152,  1087,   153,   229,   230,   215,
-     631,   577,   236,   304,  1344,    81,  1357,  1358,    61,    54,
-     581,   117,  1282,   584,   239,   304,  1364,  1375,  1513,  1368,
-      62,  1369,  1386,  1455,   408,   111,    77,  1387,  -434,  1390,
-    1025,   572,  1401,    77,  1410,  1025,  1406,   149,  1408,    54,
-      54,  1411,   162,   111,  1412,  1421,  1425,   118,  1430,   213,
-     111,   215,   341,   673,  1426,  1427,   607,   626,  1025,    82,
-    1025,   344,   344,  1028,  1025,  1339,  1086,  1025,    74,    54,
-    1428,   375,  1444,    62,  1446,   270,   887,  1435,   636,   415,
-    1025,  1448,   636,   423,  1025,   894,   223,  1450,  1440,   896,
-     215,  1442,   229,    77,  1462,  1452,  1455,  1354,  1453,  1459,
-    1455,  1455,   117,   320,  1354,  1473,  1484,    90,  1486,  1578,
-     111,   163,  1490,   117,  1488,    62,  1493,   185,  1496,  1495,
-    1585,  1497,  1504,   194,  1520,  1522,   217,  1525,  1544,   227,
-    1526,  1529,  1538,  1536,  1540,  1545,  1558,   260,  1543,   304,
-     304,  1559,  1551,   260,    61,   636,  1562,  1563,   212,    82,
-     215,  1560,  1580,    62,    62,  1560,  1180,   776,   779,  1581,
-     596,   415,   596,   778,  1354,  1584,   304,   458,    81,   777,
-     780,   168,   480,   173,  1367,    81,   179,   180,   181,  1577,
-    1099,  1292,   215,   260,   457,   177,  1499,   215,   344,  1405,
-    1566,  1524,   260,   233,   636,  1360,    55,    90,   443,   922,
-     596,   718,   596,    62,  1564,   163,   242,   243,  1476,  1186,
-     118,  1053,  1195,  1374,  1208,   495,  1081,   376,    62,  1096,
-     924,  1000,   304,   867,   118,  1391,   918,   304,  1399,   304,
-     304,    74,  1309,   515,   177,    81,    62,   177,    74,   341,
-    1080,   163,   715,    62,   931,    43,     0,   175,   176,    46,
-     784,   785,   577,   577,     0,   786,   550,   551,    47,    48,
-       0,   922,     0,     0,     0,   163,   132,     0,   133,   134,
-     135,     0,     0,   922,   922,   215,  1437,   445,     0,    47,
-      48,  1441,   572,   572,   374,     0,     0,     0,     0,     0,
-     304,     0,  1050,   550,     0,     0,     0,   922,    74,   410,
-       0,   636,   341,    62,     0,   626,     0,     0,     0,     0,
-    1465,     0,    82,   115,     0,   607,     0,     0,   607,    82,
-    1100,     0,    61,  1101,     0,  1102,    47,    48,   653,    43,
-       0,   182,   183,    46,     0,   550,     0,   636,     0,     0,
-       0,   177,    47,    48,     0,     0,   878,   636,     0,   626,
-     882,     0,     0,   636,  1324,     0,   636,   636,     0,  1086,
-      90,     0,   215,     0,     0,     0,     0,    90,  1054,   922,
-     413,     0,   636,     0,   260,     0,    51,    52,     0,    82,
-       0,     0,   376,     0,    43,   260,   182,   183,    46,   177,
-      43,     0,   175,   176,    46,     0,     0,    47,    48,     0,
-       0,     0,   215,    47,    48,   118,     0,     0,  1549,     0,
-       0,     0,    61,  1175,  1549,     0,     0,     0,     0,     0,
-     636,   913,   626,  1509,     0,   413,     0,    90,   718,   718,
-    1549,    51,    52,   213,  1549,     0,  -300,     0,     0,   723,
-       0,     0,     0,     0,   732,    10,    11,    12,    13,    14,
-      15,    16,     0,   592,  1086,   603,     0,    43,   341,   175,
-     176,    46,   376,     0,     0,  -301,     0,   177,   577,     0,
-      47,    48,   634,   635,    10,    11,    12,    13,    14,    15,
-      16,     0,    40,   213,    10,    11,    12,    13,    14,    15,
-      16,   177,   210,   220,     0,   177,   378,     0,   572,    43,
-       0,   182,   183,    46,   763,   764,   765,     0,   636,     0,
-     966,    40,    47,    48,     0,   607,     0,     0,     0,     0,
-       0,    40,     0,   215,     0,   325,     0,     0,   607,     0,
-      43,     0,   182,   183,    46,   795,     0,     0,  1054,     0,
-     413,     0,   442,    47,    48,     0,    51,    52,     0,     0,
-       0,    43,     0,   182,   183,    46,     0,  1086,   215,  1055,
-     213,     0,   458,     0,    47,    48,     0,   215,     0,   184,
-       0,     0,     0,     0,     0,    61,     0,    51,    52,   842,
-     304,     0,    61,     0,     0,     0,     0,     0,     0,     0,
-     604,     0,   605,     0,     0,     0,     0,   860,    51,    52,
-       0,   529,     0,     0,   341,   530,   531,   532,     0,   118,
-       0,  1056,     0,     0,     0,    10,    11,    12,    13,    14,
-      15,    16,     0,   913,   913,   215,     0,     0,   718,   533,
-       0,   534,     0,   535,  1291,   215,     0,  1114,   118,   304,
-     215,     0,    61,     0,     0,   341,     0,     0,     0,     0,
-       0,     0,    40,  1127,     0,     0,     0,     0,     0,     0,
-      10,    11,    12,    13,    14,    15,    16,     0,     0,     0,
-     920,     0,     0,     0,   495,     0,     0,   341,     0,  1359,
-       0,     0,    43,     0,   182,   183,    46,     0,    10,    11,
-      12,    13,    14,    15,    16,    47,    48,    40,   636,   636,
-       0,     0,     0,   942,     0,     0,     0,     0,     0,    10,
-      11,    12,    13,    14,    15,    16,   304,     0,     0,     0,
-       0,  1054,     0,   413,     0,    40,     0,    43,   215,    51,
-      52,    46,   206,     3,     4,     5,     6,     7,     8,     9,
-      47,    48,   415,     0,     0,     0,    40,     0,     0,     0,
-       0,   177,     0,     0,     0,    43,     0,   182,   183,    46,
-       0,     0,     0,  1056,     0,  1056,    49,  1056,    47,    48,
-     177,     0,     0,     0,    51,    52,    43,     0,   182,   183,
-      46,     0,   118,   177,     0,     0,     0,     0,   913,    47,
-      48,     0,     0,     0,  1509,     0,   413,     0,   260,     0,
-       0,     0,    51,    52,     0,     0,     0,     0,   653,     0,
-     905,     0,   906,     0,  1004,   184,     0,     0,     0,     0,
-     909,   910,     0,    51,    52,   915,     0,     0,     0,   341,
-       0,     0,    10,    11,    12,    13,    14,    15,    16,     0,
-       0,  1477,   925,  1482,  -302,     0,   131,   929,     0,  1070,
-       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
-      43,     0,   182,   183,    46,     0,   603,     0,     0,    40,
-       0,     0,     0,    47,    48,     0,     0,     0,   415,     0,
-       0,  1515,     0,  1517,     0,     0,     0,   653,     0,     0,
-      40,     0,     0,     0,   304,     0,     0,     0,   215,   259,
-       0,   131,     0,     0,     0,   118,     0,    51,    52,     0,
-       0,     0,     0,  1056,     0,     0,     0,   131,   550,   131,
-       0,     0,     0,     0,     0,     0,   636,     0,     0,     0,
-       0,   118,     0,     0,     0,  1556,     0,  1557,   912,     0,
-     605,     0,     0,     0,   271,     0,    51,    52,     0,     0,
-       0,     0,     0,     0,     0,  1569,  1570,   515,     0,     0,
-       0,     0,     0,     0,   989,     0,   990,   991,   992,     0,
-       0,     0,   636,   636,    10,    11,    12,    13,    14,    15,
-      16,  1372,     0,     0,   304,  1043,     0,     0,  1004,     0,
-       0,     0,   177,   206,     3,     4,     5,     6,     7,     8,
-       9,  1049,     0,   131,     0,   131,   131,     0,     0,     0,
-     131,    40,   131,   131,  1211,  1056,     0,     0,     0,     0,
-       0,     0,     0,     0,  1076,     0,   118,     0,     0,     0,
-       0,   228,   537,   538,   539,   540,   541,   542,   543,   544,
-     545,   546,   547,     0,     0,    10,    11,    12,    13,    14,
-      15,    16,     0,     0,     0,     0,     0,     0,  1098,     0,
-       0,     0,     0,  1108,   265,   118,   548,     0,  1111,     0,
-       0,     0,     0,  1116,  1117,     0,   131,     0,  1119,     0,
-    1120,  1121,    40,     0,  1124,     0,     0,     0,   260,     0,
-       0,     0,     0,  1139,     0,     0,     0,     0,     0,   636,
-       0,     0,     0,     0,  1268,     0,     0,     0,     0,  1153,
-    1154,     0,    43,     0,   265,     0,    46,     0,     0,     0,
-      70,   122,     0,     0,     0,    47,    48,     0,     0,   118,
-       0,   177,     0,     0,   177,   177,   177,     0,     0,     0,
-       0,  1182,     0,     0,  1184,     0,     0,   118,     0,     0,
-       0,   717,   131,     0,   118,     0,   118,     0,   118,    51,
-      52,    70,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   131,     0,     0,     0,   161,     0,     0,    10,    11,
-      12,    13,    14,    15,    16,     0,     0,     0,     0,     0,
-    1510,   265,     0,   221,     0,     0,   118,  1217,   118,     0,
-       0,     0,     0,  1221,  1222,     0,     0,     0,     0,     0,
-       0,     0,  1229,     0,   118,    40,     0,  1236,     0,     0,
-    1510,  1510,  1240,   131,     0,     0,     0,     0,     0,     0,
-     253,     0,     0,     0,     0,  1248,     0,   304,     0,     0,
-       0,     0,     0,     0,     0,    43,     0,   182,   183,    46,
-    1510,  1255,     0,  1257,  1258,  1259,  1260,     0,    47,    48,
-       0,     0,     0,     0,     0,     0,     0,     0,  1267,   326,
-    1153,     0,     0,     0,     0,     0,     0,   253,   346,     0,
-       0,     0,   215,     0,   259,     0,     0,     0,     0,     0,
-       0,     0,    51,    52,     0,     0,     0,     0,     0,     0,
-       0,     0,  1296,  1297,     0,   406,   177,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   426,     0,     0,   431,   433,     0,     0,     0,   161,
-       0,     0,   215,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     449,     0,     0,     0,   452,     0,   453,     0,     0,   459,
-       0,     0,     0,     0,     0,    70,  1332,  1333,     0,     0,
-     473,     0,     0,     0,     0,     0,  1343,     0,     0,     0,
-     481,     0,     0,     0,     0,     0,     0,     0,   433,   131,
-     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   215,
-       0,     0,     0,     0,     0,     0,     0,   177,     0,     0,
-       0,     0,   131,     0,     0,   131,   131,     0,   131,     0,
-     131,   131,     0,     0,     0,   131,   131,     0,     0,     0,
-    1382,     0,  1383,  1384,  1385,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  1389,     0,   253,     0,     0,     0,
-       0,   594,  1400,     0,     0,   173,     0,   629,   177,     0,
-       0,   177,     0,     0,     0,     0,     0,     0,     0,   131,
-       0,     0,     0,   131,     0,     0,     0,   638,     0,     0,
-       0,   638,  1422,     0,     0,     0,     0,     0,     0,   177,
-       0,     0,     0,     0,     0,     0,     0,    78,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
-       0,     0,     0,     0,   177,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1463,  1464,     0,     0,
-     473,     0,     0,     0,     0,     0,     0,     0,    78,  1469,
-       0,     0,     0,   177,   346,     0,  1469,     0,     0,   473,
-       0,     0,     0,     0,     0,     0,     0,   473,     0,     0,
-       0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
-     222,     0,     0,     0,   696,     0,     0,   433,     0,     0,
-       0,  1508,     0,     0,   706,     0,  1514,     0,     0,     0,
-       0,     0,     0,   711,     0,    70,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   433,     0,     0,
-       0,   433,     0,   177,     0,     0,     0,     0,   177,  1541,
-       0,  1542,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   346,     0,
-       0,   177,     0,   177,     0,     0,     0,   177,     0,     0,
-     177,     0,     0,     0,     0,   350,     0,     0,     0,  1567,
-    1568,     0,     0,   177,     0,     0,     0,   177,     0,     0,
-       0,     0,  1575,  1576,     0,     0,     0,     0,     0,     0,
-       0,     0,   787,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     638,   799,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   817,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   450,     0,     0,
-       0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
-       0,   841,    78,     0,     0,     0,   594,    78,     0,     0,
-       0,     0,   638,     0,     0,   346,   346,     0,     0,     0,
-     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   346,     0,     0,     0,     0,   131,     0,     0,   131,
-     131,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     696,     0,     0,     0,     0,     0,     0,     0,   979,     0,
-       0,   473,     0,     0,     0,    10,    11,    12,    13,    14,
-      15,    16,     0,     0,     0,   473,     0,     0,     0,   346,
-       0,     0,     0,     0,     0,     0,     0,     0,   917,     0,
-       0,   433,     0,     0,     0,     0,     0,     0,   595,     0,
-     279,   280,    40,   281,   222,     0,     0,     0,     0,     0,
-       0,     0,   131,     0,     0,     0,     0,   711,     0,     0,
-       0,     0,     0,     0,   595,   131,     0,     0,   595,   282,
-     131,   131,   283,     0,     0,     0,   284,     0,     0,   285,
-     286,   276,   287,   288,   289,    47,    48,     0,   290,   291,
-       0,     0,     0,   696,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   696,   696,     0,     0,   638,     0,     0,
-     969,   292,     0,   381,     0,   696,     0,    78,     0,   340,
-      52,   294,   295,   296,   297,   980,     0,   131,     0,     0,
-       0,   350,     0,     0,     0,     0,    78,     0,     0,     0,
-       0,     0,     0,     0,    78,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   350,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   222,    83,     0,     0,     0,     0,     0,     0,    70,
-     350,     0,    78,     0,     0,     0,     0,     0,     0,   131,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   799,     0,     0,     0,     0,   131,     0,
-       0,     0,     0,    83,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1077,     0,   350,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   433,   122,     0,     0,
-       0,     0,     0,     0,   711,   224,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,  -307,     0,
-       0,     0,     0,     0,     0,     0,   594,     0,     0,     0,
-       0,     0,     0,    40,     0,     0,     0,   595,   350,   431,
-       0,     0,     0,     0,   696,   696,     0,   346,   346,     0,
-      91,     0,     0,     0,   131,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    70,     0,     0,     0,  -307,
-       0,     0,     0,   595,     0,     0,     0,     0,     0,     0,
-     354,     0,     0,   595,     0,     0,     0,     0,     0,   595,
-       0,    91,   350,   350,     0,     0,     0,     0,     0,     0,
-       0,     0,  1137,     0,     0,   696,   696,     0,   350,    10,
-      11,    12,    13,    14,    15,    16,  1202,     0,     0,     0,
-       0,     0,     0,   225,     0,     0,     0,   350,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
-       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,    78,     0,     0,     0,   350,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
-       0,     0,    83,   282,     0,     0,   283,     0,   711,     0,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,   350,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   366,     0,
-       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
-       0,     0,     0,  1138,    52,   294,   295,   296,   297,     0,
-     350,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     350,   350,     0,    70,   595,     0,     0,   222,     0,     0,
-       0,     0,   350,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   597,     0,     0,     0,     0,     0,   224,
-       0,     0,     0,   696,     0,   711,     0,     0,     0,     0,
-     122,     0,     0,     0,     0,     0,     0,     0,     0,   597,
-       0,     0,     0,   597,     0,    91,     0,     0,     0,     0,
-      91,     0,   696,     0,     0,     0,     0,     0,     0,     0,
-     696,   696,   696,     0,     0,     0,    78,     0,     0,     0,
-       0,   346,   346,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1353,     0,     0,     0,     0,     0,     0,
-     350,     0,    83,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   354,     0,     0,     0,
-       0,    83,     0,     0,     0,     0,     0,     0,     0,    83,
-       0,     0,     0,     0,     0,   122,     0,     0,     0,     0,
-       0,   350,     0,     0,     0,     0,   354,     0,     0,   211,
-       0,   598,     0,     0,     0,     0,   224,   225,   231,     0,
-     235,     0,   237,     0,     0,   354,     0,    83,     0,     0,
-     240,     0,     0,   595,  1403,     0,     0,   598,     0,     0,
-       0,   598,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   350,   350,     0,   350,   350,     0,     0,     0,     0,
-       0,   211,     0,   235,   237,   240,     0,     0,   346,     0,
-     354,     0,    78,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      91,     0,     0,     0,     0,     0,     0,   696,   122,     0,
-     211,     0,     0,     0,   366,     0,     0,     0,     0,    91,
-       0,     0,   350,   350,     0,     0,  1353,    91,     0,     0,
-       0,     0,     0,  1353,     0,  1480,     0,  1480,     0,     0,
-       0,     0,   597,   354,   366,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
-       0,     0,     0,   366,     0,    91,     0,     0,     0,     0,
-     211,     0,   235,   237,   240,  1480,     0,  1480,   597,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   597,     0,
-       0,     0,     0,  1353,   597,   350,     0,   354,   354,     0,
-    1539,     0,   211,     0,     0,     0,     0,   211,   366,     0,
-       0,     0,     0,   354,     0,   166,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     218,     0,   354,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    83,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
-      78,   354,     0,     0,     0,     0,     0,     0,     0,     0,
-     598,   366,     0,     0,     0,   211,     0,     0,   166,     0,
-       0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
-     350,     0,   350,     0,     0,   211,     0,     0,     0,   354,
-       0,   632,     0,   237,     0,     0,   598,     0,   166,     0,
-       0,     0,     0,     0,     0,   240,   598,     0,   372,   350,
-       0,   377,   598,     0,     0,   366,   366,   350,   350,   350,
-       0,     0,     0,     0,     0,   354,     0,     0,   350,   350,
-       0,   366,     0,     0,     0,   354,   354,     0,     0,   597,
-      78,     0,   224,     0,     0,   211,     0,   354,     0,     0,
-     366,     0,     0,     0,     0,     0,     0,     0,     0,   166,
-       0,    91,     0,     0,     0,   211,     0,     0,     0,     0,
-     211,   218,   211,     0,     0,    91,     0,     0,     0,   366,
-       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
-       0,   211,   211,     0,     0,     0,     0,     0,   211,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   377,     0,
-       0,    83,   211,     0,     0,   166,     0,   366,     0,     0,
-     211,   222,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   354,     0,     0,     0,     0,
-       0,     0,   527,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   366,   166,   350,     0,     0,     0,     0,
-       0,     0,     0,   366,   366,     0,     0,   598,     0,     0,
-     225,     0,     0,     0,     0,   366,   354,     0,     0,     0,
-       0,     0,     0,     0,   350,     0,     0,     0,     0,     0,
-       0,   601,     0,     0,     0,     0,   628,     0,     0,     0,
-       0,     0,     0,    78,     0,     0,     0,     0,   597,     0,
-      78,     0,   595,     0,   595,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   354,   354,     0,   354,
-     354,     0,     0,   211,     0,   632,   237,   240,     0,    91,
-       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
-       0,     0,   595,     0,   595,     0,     0,     0,     0,     0,
-       0,     0,     0,   366,     0,     0,     0,     0,   211,   632,
-      78,     0,     0,     0,     0,     0,     0,   211,   166,   166,
-       0,     0,     0,     0,   372,     0,     0,   354,   354,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   366,   166,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,  -308,     0,
-       0,     0,     0,   714,     0,   211,   598,     0,     0,     0,
-       0,     0,     0,    40,     0,   211,     0,     0,     0,   166,
-     211,     0,     0,     0,   366,   366,     0,   366,   366,     0,
-     354,   527,     0,   527,     0,     0,   527,     0,   166,   527,
-       0,     0,     0,     0,     0,    91,     0,     0,   372,  -308,
-       0,     0,     0,     0,   205,   206,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,   366,   366,    32,    33,    34,
-      35,    36,    37,     0,     0,    83,   211,     0,     0,   166,
-      40,     0,     0,   158,     0,     0,     0,     0,   211,     0,
-       0,   372,     0,     0,   802,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   354,   211,   354,     0,     0,
-      43,     0,   207,    45,    46,     0,     0,     0,     0,     0,
-       0,     0,     0,    47,    48,     0,   601,     0,     0,   245,
-     211,     0,     0,     0,   354,     0,   601,     0,   366,   250,
-       0,     0,   354,   354,   354,   372,   372,     0,     0,    49,
-     318,   208,     0,   354,   354,     0,     0,    51,    52,     0,
-     342,   372,     0,     0,     0,    83,     0,     0,     0,     0,
-       0,   384,   384,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   527,     0,     0,     0,     0,     0,
-       0,     0,     0,    91,     0,   388,   211,     0,     0,   372,
-       0,   914,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   420,     0,     0,
-       0,     0,     0,   366,     0,   366,     0,     0,     0,     0,
-       0,   434,     0,     0,     0,     0,   224,   714,     0,     0,
-     439,     0,     0,     0,     0,     0,     0,     0,   211,   479,
-     447,     0,   366,     0,     0,     0,     0,     0,     0,   211,
-     366,   366,   366,     0,   279,   280,     0,   281,     0,   464,
-     354,   366,   366,     0,   475,     0,     0,     0,     0,     0,
-       0,     0,     0,    91,     0,     0,     0,   483,     0,   628,
-       0,     0,     0,   282,     0,   497,   283,   501,     0,   354,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,   528,     0,    83,     0,
-       0,     0,     0,     0,     0,    83,     0,   597,     0,   597,
-       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
-     382,     0,     0,    51,    52,   294,   295,   296,   297,     0,
-       0,     0,     0,     0,     0,     0,   211,   586,     0,     0,
-       0,     0,   591,     0,   225,     0,     0,   597,     0,   597,
-       0,     0,     0,     0,   384,     0,     0,     0,     0,     0,
-       0,     0,     0,   372,     0,    83,     0,     0,   527,     0,
-       0,     0,     0,     0,     0,     0,     0,   645,   366,     0,
-       0,   646,   647,     0,   648,     0,     0,     0,     0,     0,
-       0,   659,   660,     0,   661,   662,     0,   663,   166,   664,
-       0,     0,     0,     0,   714,     0,     0,   366,     0,     0,
-       0,     0,     0,     0,     0,     0,   586,     0,     0,     0,
-       0,     0,     0,     0,   680,     0,    91,   318,     0,     0,
-       0,     0,     0,    91,     0,   598,   601,   598,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   708,   691,     0,
-       0,     0,     0,     0,     0,     0,     0,   372,   372,     0,
-       0,   211,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   705,     0,   598,     0,   598,     0,     0,
-     709,     0,     0,     0,     0,   464,     0,     0,     0,     0,
-     744,     0,     0,    91,     0,     0,     0,     0,     0,     0,
-     753,     0,     0,     0,     0,   744,     0,     0,   744,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   762,     0,     0,     0,   747,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   758,     0,     0,
-       0,   527,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   791,     0,     0,     0,     0,     0,     0,   342,     0,
-       0,     0,     0,   753,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   783,     0,     0,     0,   816,     0,
-       0,     0,     0,   793,     0,     0,   794,     0,   714,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   815,     0,
-       0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
-     857,     0,     0,     0,     0,     0,     0,     0,   384,     0,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,     0,   858,    32,    33,    34,    35,    36,    37,
-       0,     0,   211,     0,   527,     0,     0,    40,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   714,     0,     0,     0,     0,
-     893,     0,     0,     0,     0,     0,     0,    43,     0,    44,
-      45,    46,     0,     0,     0,     0,     0,     0,     0,   744,
-      47,    48,     0,     0,     0,   336,   367,     0,   245,   753,
-       0,   940,     0,     0,   943,     0,     0,     0,     0,     0,
-     950,   372,   372,   926,   927,     0,    49,     0,    50,   211,
-       0,     0,     0,   934,    51,    52,     0,   416,     0,     0,
-       0,     0,     0,     0,   416,     0,     0,   947,     0,     0,
-       0,     0,   951,     0,     0,     0,     0,     0,     0,     0,
-       0,   967,   968,   279,   280,     0,   281,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   342,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
-       0,     0,   282,     0,     0,   283,     0,     0,     0,   284,
-       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
-     416,   290,   291,   218,   984,     0,     0,     0,     0,     0,
-     996,   985,     0,     0,   384,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   292,     0,   381,   987,   356,   988,
-       0,   752,    51,    52,   294,   295,   296,   297,   372,     0,
-       0,     0,   998,     0,     0,   342,     0,     0,  1002,     0,
-       0,     0,     0,   218,     0,     0,     0,     0,   416,  1045,
-       0,     0,     0,  1046,     0,     0,     0,   416,   582,     0,
-     416,   585,     0,     0,     0,     0,     0,     0,     0,   367,
-     318,     0,     0,   618,     0,     0,   342,     0,     0,     0,
-       0,     0,     0,   384,     0,   527,     0,   527,   943,     0,
-       0,   744,     0,     0,     0,     0,     0,     0,     0,   642,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   279,
-     280,  1122,   281,     0,     0,     0,     0,     0,     0,     0,
-     377,     0,  1140,     0,     0,   527,   416,   527,     0,     0,
-     416,     0,     0,     0,     0,     0,     0,  1118,   282,     0,
-       0,   283,   384,     0,  1157,   284,     0,     0,   285,   286,
-     276,   287,   288,   289,    47,    48,     0,   290,   291,   943,
-     943,     0,   367,     0,     0,     0,   166,     0,   357,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     292,     0,   381,     0,     0,   941,  1188,     0,    51,    52,
-     294,   295,   296,   297,     0,     0,     0,     0,     0,     0,
-       0,   356,     0,     0,  1183,     0,   356,   356,   416,     0,
-       0,   367,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   356,     0,     0,
-       0,   356,     0,     0,     0,     0,     0,     0,     0,   943,
-       0,     0,     0,     0,     0,     0,  1213,     0,     0,     0,
-       0,  1215,     0,     0,     0,     0,   367,     0,     0,     0,
-     857,  1220,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1253,  1254,
-       0,     0,     0,     0,     0,  1242,     0,     0,     0,     0,
-       0,     0,     0,     0,   356,     0,     0,     0,  1250,   416,
-     416,     0,  1251,     0,     0,  1252,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   797,   367,
-       0,  1261,  1262,     0,   356,     0,     0,     0,     0,     0,
-       0,     0,   618,     0,     0,   618,   618,     0,     0,  1273,
-       0,     0,   618,   356,     0,     0,     0,     0,     0,     0,
-       0,   357,   836,     0,   367,     0,   357,   357,     0,     0,
-       0,     0,     0,     0,   367,     0,     0,     0,     0,     0,
-       0,     0,     0,   367,   367,     0,     0,   357,     0,     0,
-       0,   357,   279,   280,     0,   281,     0,     0,   356,   367,
-       0,     0,     0,   416,   879,     0,     0,   416,   883,     0,
-       0,     0,     0,     0,  1319,     0,   886,     0,     0,     0,
-       0,   282,     0,     0,   649,     0,   142,   143,   284,     0,
-       0,   285,   286,   276,   287,   288,   289,    47,    48,  1363,
-     290,   291,     0,   744,     0,     0,     0,   367,   618,     0,
-       0,     0,     0,     0,   357,     0,     0,     0,     0,     0,
-     356,   356,     0,   292,   356,   650,     0,   651,   382,     0,
-       0,    51,    52,   294,   295,   296,   297,     0,     0,     0,
-       0,     0,     0,     0,   357,   367,     0,     0,     0,     0,
-       0,     0,     0,  1376,     0,  1377,   356,     0,     0,   356,
-       0,     0,     0,   357,     0,  1380,   356,  1381,   356,     0,
-       0,     0,   356,     0,     0,   356,   356,     0,     0,     0,
-       0,     0,  1388,     0,     0,   416,     0,     0,     0,     0,
-       0,   356,     0,     0,     0,     0,     0,     0,     0,     0,
-    1407,  1409,   618,     0,   618,     0,     0,     0,   357,     0,
-     356,     0,     0,  1417,     0,   618,     0,     0,  1418,     0,
-       0,  1220,     0,     0,     0,     0,   356,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1436,     0,   356,
-       0,   356,     0,     0,     0,     0,   129,  1443,     0,   358,
-    1445,     0,  1447,  1449,  1451,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     357,   357,     0,     0,   357,     0,     0,   356,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   367,  1485,     0,  1487,     0,     0,     0,   416,     0,
-       0,   238,     0,     0,  1220,     0,   357,     0,     0,   357,
-     618,   618,     0,   356,  1503,     0,   357,   248,   357,   249,
-       0,     0,   357,   356,   356,   357,   357,   356,     0,   356,
-     356,     0,   367,     0,     0,   356,     0,     0,   318,     0,
-       0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   416,  1115,     0,     0,     0,     0,
-     357,     0,     0,     0,   367,     0,     0,     0,     0,     0,
-     416,  1128,     0,   618,   618,  1135,   357,     0,     0,     0,
-       0,     0,     0,     0,     0,   367,   367,     0,     0,   357,
-       0,   357,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   417,   418,     0,     0,     0,
-     422,     0,   424,   425,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   356,     0,     0,     0,   357,     0,     0,
-       0,     0,   358,     0,     0,     0,     0,   358,   358,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     416,     0,   416,     0,   416,     0,     0,     0,   358,   416,
-       0,     0,   358,   357,   356,     0,     0,     0,     0,     0,
-       0,     0,     0,   357,   357,   618,     0,   357,     0,   357,
-     357,     0,     0,     0,     0,   357,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   356,     0,     0,   356,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   356,   356,   367,   356,   356,     0,
-       0,     0,     0,     0,     0,   358,     0,     0,     0,     0,
-       0,   512,     0,   514,   517,     0,     0,     0,     0,     0,
-       0,     0,   520,   521,     0,     0,     0,     0,     0,     0,
-       0,     0,   589,     0,     0,   358,   514,   514,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   633,     0,   357,   358,   356,   356,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   514,     0,   416,     0,     0,     0,     0,
-     416,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   367,   357,     0,     0,     0,     0,   358,
-       0,     0,     0,   674,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   514,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   357,     0,   356,   357,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   367,
-     367,     0,     0,     0,   357,   357,     0,   357,   357,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   358,   358,     0,     0,   358,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   416,  1373,
-       0,     0,   416,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   358,     0,     0,
-     358,     0,     0,     0,     0,   357,   357,   358,     0,   358,
-       0,     0,     0,   358,     0,     0,   358,   358,     0,     0,
-       0,     0,     0,   356,     0,   356,     0,     0,     0,     0,
-       0,     0,   358,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   358,   356,     0,     0,     0,     0,     0,     0,     0,
-     356,   356,   356,     0,     0,     0,   367,   358,     0,   789,
-     790,   356,   356,     0,     0,     0,     0,     0,   357,     0,
-     358,     0,   358,     0,   514,   514,   514,   514,   514,   514,
-     514,   514,   514,   514,   514,   514,   514,   514,   514,   514,
-     514,   514,   822,     0,     0,   825,   826,     0,   829,     0,
-     831,   832,     0,     0,     0,   834,   835,     0,   358,     0,
-       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
-      35,    36,    37,     0,   358,     0,     0,   416,     0,   877,
-      40,     0,     0,   881,   358,   358,     0,     0,   358,     0,
-     358,   358,     0,   357,     0,   357,   358,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   416,   416,     0,
-      43,     0,   207,    45,    46,     0,     0,     0,   356,     0,
-       0,     0,   357,    47,    48,     0,     0,     0,     0,     0,
-     357,   357,   357,     0,     0,     0,     0,   416,     0,     0,
-       0,   357,   357,     0,     0,     0,     0,   356,     0,    49,
-       0,   264,     0,     0,     0,     0,     0,    51,    52,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   356,     0,   356,   514,     0,
-       0,     0,     0,     0,   358,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   514,     0,     0,     0,     0,     0,     0,
-     356,     0,     0,     0,     0,   356,     0,   356,     0,     0,
-       0,     0,     0,     0,     0,   358,     0,     0,     0,     0,
-       0,     0,     0,   514,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,   358,     0,     0,
-     358,     0,   279,   280,     0,   281,     0,     0,   357,     0,
-       0,    40,     0,     0,     0,   358,   358,     0,   358,   358,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   282,     0,     0,   283,     0,     0,   357,   284,     0,
-       0,   285,   286,   276,   287,   288,   289,    47,    48,     0,
-     290,   291,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   357,     0,   357,     0,     0,
-       0,     0,     0,   292,     0,   381,   358,   358,     0,     0,
-       0,    51,    52,   294,   295,   296,   297,     0,     0,     0,
-       0,     0,     0,     0,   781,     0,     0,     0,     0,     0,
-     357,     0,     0,     0,     0,   357,     0,   357,     0,     0,
-    1113,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1126,     0,     0,  1130,
-    1133,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   514,     0,     0,   358,
-       0,     0,     0,     0,     0,     0,     0,     0,   514,   206,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
-       0,   338,    33,    34,    35,    36,    37,   514,     0,     0,
-       0,     0,  1192,     0,    40,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    1209,  1210,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    44,    45,     0,     0,
-       0,     0,     0,     0,   358,     0,   358,   514,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   358,  -443,     0,     0,  1130,     0,     0,
-       0,   358,   358,   358,     0,     0,     0,     0,     0,     0,
-       0,     0,   358,   358,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
-      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
-       0,    40,     0,     0,     0,     0,     0,     0,     0,  1294,
-       0,     0,     0,   514,   514,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1304,     0,
-       0,     0,     0,   207,    45,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     1,   206,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    51,    52,
-      32,    33,    34,    35,    36,    37,    38,     0,     0,   358,
-      39,   279,   280,    40,   281,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   358,     0,
-     282,     0,     0,   283,  1371,    44,    45,   284,     0,     0,
-     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
-     291,     0,     0,     0,     0,     0,   358,     0,   358,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   292,     0,   293,     0,     0,     0,     0,     0,
-      51,    52,   294,   295,   296,   297,     0,     0,     0,     0,
-       0,   358,     0,     0,     0,  -134,   358,     0,   358,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     1,   206,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,     0,   514,    32,    33,    34,    35,    36,
-      37,    38,     0,     0,     0,    39,   279,   280,    40,  1005,
-    1006,     0,  1007,     0,     0,  1008,  1009,  1010,  1011,  1012,
-    1013,  1014,  1015,     0,     0,     0,  1016,     0,     0,     0,
-    1017,  1018,     0,  1019,     0,   282,     0,     0,  1020,     0,
-    1021,  1022,  1023,     0,     0,   285,   286,   276,   287,   288,
-     289,    47,    48,     0,   290,   291,   514,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   514,   514,
-       0,     0,     0,     0,     0,     0,     0,   292,     0,   293,
-       0,     0,   172,     0,     0,    51,    52,   294,   295,   296,
-     297,     0,   514,     0,     0,  1024,     0,     0,     0,     0,
-    -134,     1,   206,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,     0,     0,    32,    33,    34,    35,    36,    37,
-      38,     0,     0,     0,    39,   279,   280,    40,   281,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   514,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   282,     0,     0,   283,     0,    44,
-      45,   284,     0,     0,   285,   286,   276,   287,   288,   289,
-      47,    48,     0,   290,   291,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   292,     0,   293,     0,
-       0,     0,     0,     0,    51,    52,   294,   295,   296,   297,
-     206,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-       0,     0,   338,    33,    34,    35,    36,    37,     0,     0,
-       0,     0,     0,   279,   280,    40,   281,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   282,     0,     0,   283,     0,    44,    45,   284,
-       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
-       0,   290,   291,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   292,     0,   339,     0,     0,     0,
-       0,   752,   340,    52,   294,   295,   296,   297,   206,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,     0,     0,
-     338,    33,    34,    35,    36,    37,     0,     0,     0,     0,
-       0,   279,   280,    40,   281,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     282,     0,     0,   283,     0,    44,    45,   284,     0,     0,
-     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
-     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   292,     0,   339,     0,     0,     0,     0,   752,
-      51,    52,   294,   295,   296,   297,   206,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,   338,    33,
-      34,    35,    36,    37,     0,     0,     0,     0,     0,   279,
-     280,    40,   281,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   282,     0,
-       0,   283,     0,    44,    45,   284,     0,     0,   285,   286,
-     276,   287,   288,   289,    47,    48,     0,   290,   291,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     292,     0,   339,     0,     0,     0,     0,     0,   340,    52,
-     294,   295,   296,   297,   206,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,     0,     0,   338,    33,    34,    35,
-      36,    37,     0,     0,     0,     0,     0,   279,   280,    40,
-     281,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   282,     0,     0,   283,
-       0,   207,    45,   284,     0,     0,   285,   286,   276,   287,
-     288,   289,    47,    48,     0,   290,   291,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
-     964,     0,     0,     0,     0,     0,   965,    52,   294,   295,
-     296,   297,   206,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,     0,     0,   338,    33,    34,    35,    36,    37,
-       0,     0,     0,     0,     0,   279,   280,    40,   281,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   282,     0,     0,   283,     0,   207,
-      45,   284,     0,     0,   285,   286,   276,   287,   288,   289,
-      47,    48,     0,   290,   291,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   292,     0,   381,     0,
-       0,     0,     0,     0,    51,    52,   294,   295,   296,   297,
-    -545,     0,     0,     1,     2,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
-      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
-      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    42,     0,     0,     0,     0,    43,
-       0,    44,    45,    46,     0,     0,     0,     0,     0,     0,
-       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
-      50,     0,     0,     0,     0,     0,    51,    52,     1,     2,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
-       0,    32,    33,    34,    35,    36,    37,    38,     0,     0,
-       0,    39,     0,     0,    40,    41,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    42,
-       0,     0,     0,     0,    43,     0,    44,    45,    46,     0,
-       0,     0,     0,     0,     0,     0,     0,    47,    48,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    49,     0,    50,     0,     0,     0,  -549,
-       0,    51,    52,     1,     2,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
-      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
-      41,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    42,     0,     0,     0,     0,    43,
-       0,    44,    45,    46,     0,     0,     0,     0,     0,     0,
-       0,     0,    47,    48,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    49,     0,
-      50,     0,     0,     0,     0,     0,    51,    52,     1,   206,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,  -307,
-       0,    32,    33,    34,    35,    36,    37,    38,     0,     0,
-       0,    39,     0,     0,    40,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    44,    45,     0,     0,
-    -307,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    50,     0,     0,     0,     0,
-       0,    51,    52,     1,   206,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
-      36,    37,    38,     0,     0,     0,    39,     0,     0,    40,
-     205,   206,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    44,    45,    32,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      50,     0,     0,     0,     0,     0,    51,    52,   207,    45,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   208,     0,     0,
-       0,     0,     0,    51,    52,   206,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
-      35,    36,    37,     0,     0,     0,     0,     0,     0,     0,
-      40,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      43,     0,   207,    45,    46,     0,     0,     0,     0,     0,
-       0,     0,     0,    47,    48,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
-       0,   208,     0,     0,     0,     0,     0,    51,    52,   206,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
-       0,   338,    33,    34,    35,    36,    37,     0,     0,     0,
-       0,     0,     0,     0,    40,     0,   206,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    44,    45,   338,    33,
-      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
-       0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  -430,   687,     0,     0,     0,     0,
-       0,    51,    52,    44,    45,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1340,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   687,     0,     0,     0,     0,     0,    51,    52,
-     206,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-       0,     0,   338,    33,    34,    35,    36,    37,     0,     0,
-       0,     0,     0,     0,     0,    40,     0,   206,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    44,    45,   338,
-      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
-       0,     0,    40,     0,     0,     0,     0,     0,     0,     0,
-       0,  1342,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   687,     0,     0,     0,
-       0,     0,    51,    52,   207,    45,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   264,     0,     0,     0,     0,     0,    51,
-      52,   206,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,    40,     0,   206,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    44,    45,
-      32,    33,    34,    35,    36,    37,     0,     0,     0,     0,
-       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   687,     0,     0,
-       0,     0,     0,    51,    52,   207,    45,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   208,     0,     0,     0,     0,     0,
-      51,    52,   467,   206,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,     0,     0,    32,    33,    34,    35,    36,
-      37,     0,     0,     0,     0,     0,     0,     0,    40,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
-      44,    45,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
-     284,     0,    -3,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,     0,   522,     0,     0,
-     172,     0,     0,    51,    52,   294,   295,   296,   297,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,   -40,   293,     0,     0,
-       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,     0,   293,     0,     0,
-       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,     0,   339,     0,     0,
-       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,   279,   280,    40,   281,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   282,     0,     0,   283,     0,    44,    45,
-     284,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
-       0,     0,     0,    51,    52,   294,   295,   296,   297,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,    32,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   115,     0,    44,    45,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    47,
-      48,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    50,     0,     0,
-       0,     0,     0,    51,    52,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,     0,     0,    32,
-      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
-       0,     0,    40,   898,     0,     0,     0,     0,     0,     0,
-       0,     0,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    44,    45,    32,    33,    34,    35,
-      36,    37,     0,     0,     0,     0,     0,     0,     0,    40,
-     898,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   740,     0,     0,     0,   899,     0,    51,
-      52,    44,    45,     0,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
-      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
-     740,    40,   898,     0,  1212,     0,    51,    52,     0,     0,
-       0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    44,    45,    32,    33,    34,    35,    36,
-      37,     0,     0,     0,     0,     0,     0,     0,    40,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   740,     0,     0,     0,  1298,     0,    51,    52,
-      44,    45,     0,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,     0,     0,    32,    33,    34,
-      35,    36,    37,     0,     0,     0,     0,     0,     0,   251,
-      40,     0,     0,     0,     0,    51,    52,     0,     0,     0,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    44,    45,    32,    33,    34,    35,    36,    37,
-       0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    50,     0,     0,     0,     0,     0,    51,    52,   207,
-      45,     0,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,     0,     0,    32,    33,    34,    35,
-      36,    37,     0,     0,     0,     0,     0,     0,   264,    40,
-       0,     0,     0,     0,    51,    52,     0,     0,     0,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    44,    45,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     334,     0,     0,     0,     0,     0,    51,    52,    44,    45,
-       0,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,     0,     0,   338,    33,    34,    35,    36,
-      37,     0,     0,     0,     0,     0,     0,   251,    40,     0,
-       0,     0,     0,    51,    52,     0,     0,     0,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      44,    45,    32,    33,    34,    35,    36,    37,     0,     0,
-       0,     0,     0,     0,     0,    40,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   334,
-       0,     0,     0,     0,     0,    51,    52,    44,    45,     0,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,     0,     0,   338,    33,    34,    35,    36,    37,
-       0,     0,     0,     0,     0,     0,   740,    40,     0,     0,
-       0,     0,    51,    52,     0,     0,     0,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,   207,
-      45,   338,    33,    34,    35,    36,    37,     0,     0,     0,
-       0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   264,     0,
-       0,     0,     0,     0,    51,    52,    44,    45,     0,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,   687,    40,     0,     0,     0,
-       0,    51,    52,     0,     0,     0,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    44,    45,
-     338,    33,    34,    35,    36,    37,     0,     0,     0,     0,
-       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   740,     0,     0,
-       0,     0,     0,    51,    52,   207,    45,   206,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,     0,     0,   338,
-      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
-      51,    52,    40,     0,   279,   280,     0,   281,  1006,     0,
-    1007,     0,     0,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
-    1015,     0,     0,  1533,  1016,     0,     0,     0,  1017,  1018,
-       0,  1019,     0,   282,    44,    45,  1020,     0,   175,   176,
-    1023,     0,     0,   285,   286,   276,   287,   288,   289,    47,
-      48,     0,   290,   291,     0,     0,     0,     0,  1305,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   292,     0,   381,     0,     0,
-     172,     0,     0,    51,    52,   294,   295,   296,   297,     0,
-       0,   279,   280,  1024,   281,  1006,     0,  1007,  -134,     0,
-    1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,     0,     0,
-       0,  1016,     0,     0,     0,  1017,  1018,     0,  1019,     0,
-     282,     0,     0,  1020,     0,   175,   176,  1023,     0,     0,
-     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
-     291,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   292,     0,   381,     0,     0,   172,     0,     0,
-      51,    52,   294,   295,   296,   297,     0,     0,     0,     0,
-    1024,     0,     0,   279,   280,  -134,   281,  1006,     0,  1007,
-    1392,  1393,  1008,  1009,  1010,  1011,  1012,  1013,  1014,  1015,
-       0,     0,  1533,  1016,     0,     0,     0,  1017,  1018,     0,
-    1019,     0,   282,     0,     0,  1020,     0,   175,   176,  1023,
-       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
-       0,   290,   291,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   292,     0,   381,     0,     0,   172,
-       0,     0,    51,    52,   294,   295,   296,   297,     0,     0,
-     279,   280,  1024,   281,  1006,     0,  1007,  1392,  1393,  1008,
-    1009,  1010,  1011,  1012,  1013,  1014,  1015,     0,     0,     0,
-    1016,     0,     0,     0,  1017,  1018,     0,  1019,     0,   282,
-       0,     0,  1020,     0,   175,   176,  1023,     0,     0,   285,
-     286,   276,   287,   288,   289,    47,    48,     0,   290,   291,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   292,     0,   381,     0,     0,   172,     0,     0,    51,
-      52,   294,   295,   296,   297,     0,     0,   279,   280,  1024,
-     281,  1006,     0,  1007,     0,     0,  1008,  1009,  1010,  1011,
-    1012,  1013,  1014,  1015,     0,     0,     0,  1016,     0,     0,
-       0,  1017,  1018,     0,  1019,     0,   282,     0,     0,  1020,
-       0,   175,   176,  1023,     0,     0,   285,   286,   276,   287,
-     288,   289,    47,    48,     0,   290,   291,     0,     0,     0,
-       0,     0,     0,   279,   280,     0,   281,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
-     381,   279,   280,   172,   281,     0,    51,    52,   294,   295,
-     296,   297,   282,     0,     0,   283,  1024,     0,     0,   284,
-       0,     0,   285,   286,   276,   287,   288,   289,    47,    48,
-     282,   290,   291,   283,     0,     0,     0,   284,     0,     0,
-     285,   286,   276,   287,   288,   289,    47,    48,     0,   290,
-     291,     0,     0,     0,   292,     0,   381,   279,   280,     0,
-     281,     0,    51,    52,   294,   295,   296,   297,     0,     0,
-       0,     0,   511,     0,   381,   279,   280,     0,   281,     0,
-      51,    52,   294,   295,   296,   297,   282,     0,     0,   283,
-       0,     0,     0,   284,     0,     0,   285,   286,   276,   287,
-     288,   289,    47,    48,   282,   290,   291,   283,     0,     0,
-       0,   284,     0,     0,   285,   286,   276,   287,   288,   289,
-      47,    48,     0,   290,   291,     0,     0,     0,   516,     0,
-     381,   279,   280,     0,   281,     0,    51,    52,   294,   295,
-     296,   297,     0,     0,     0,     0,   519,     0,   381,   279,
-     280,     0,   281,     0,    51,    52,   294,   295,   296,   297,
-     282,     0,     0,   283,     0,     0,     0,   284,     0,     0,
-     285,   286,   276,   287,   288,   289,    47,    48,   282,   290,
-     291,   283,     0,     0,     0,   284,     0,     0,   285,   286,
-     276,   287,   288,   289,    47,    48,     0,   290,   291,     0,
-       0,     0,   292,     0,   381,     0,     0,     0,     0,     0,
-     707,    52,   294,   295,   296,   297,     0,     0,     0,     0,
-     292,     0,   381,     0,     0,     0,     0,     0,   340,    52,
-     294,   295,   296,   297,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,    32,    33,
-      34,    35,    36,    37,     0,     0,     0,     0,     0,     0,
-       0,    40,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   115,     0,    44,    45,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    47,    48,   205,   206,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,     0,     0,    32,
-      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
-       0,     0,    40,   467,   206,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,   207,    45,    32,    33,    34,    35,
-      36,    37,     0,     0,     0,     0,     0,     0,     0,    40,
-       0,   206,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    44,    45,   338,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,    40,     0,   206,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,   207,    45,
-      32,    33,    34,    35,    36,    37,     0,     0,     0,     0,
-       0,     0,     0,    40,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,   207,    45,    32,    33,    34,
-      35,    36,    37,   486,   487,   488,   489,     0,     0,     0,
-      40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,     0,     0,    32,    33,    34,    35,    36,
-      37,     0,    44,    45,     0,     0,     0,     0,    40,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,   338,    33,    34,    35,    36,    37,     0,
-      44,    45,     0,     0,     0,     0,    40,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
-       0,    32,    33,    34,    35,    36,    37,     0,    44,    45,
-       0,     0,     0,     0,    40,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   207,    45
-};
-
-#define yypact_value_is_default(yystate) \
-  ((yystate) == (-1383))
-
-#define yytable_value_is_error(yytable_value) \
-  YYID (0)
-
-static const yytype_int16 yycheck[] =
-{
-       0,     1,     0,    49,    49,   204,    49,     1,     1,     0,
-     483,  1054,   184,   518,   536,   346,   184,   187,   185,   455,
-     869,   184,    70,   345,  1054,   345,   121,    55,   341,   184,
-     607,   219,   184,  1054,   184,   626,   169,   170,    38,    39,
-     497,    41,   184,    41,   501,   987,   988,   869,     1,    49,
-      41,   607,   110,   988,   367,    55,  1315,    55,   371,    49,
-       0,   904,    62,   655,    41,   680,  1056,    67,  1392,    67,
-      70,    88,    70,    73,   122,    73,   292,     0,     1,    73,
-      61,   604,   118,   604,    49,   255,   256,   259,   951,   604,
-     118,   259,   604,   260,  1273,    62,   259,  1101,   104,   157,
-      49,    41,    55,  1014,   259,    49,   201,   259,    74,   259,
-     572,   111,   646,   161,   114,   420,   604,   259,    41,  1017,
-    1018,   121,    49,  1505,   367,    94,    34,   661,   371,   129,
-      73,     0,   138,     0,   439,   998,   292,   118,   184,   184,
-     116,   184,   447,  1467,   111,   228,   125,   114,  1530,   149,
-      73,   149,   118,   122,    88,  1537,  1005,   110,   241,  1418,
-     250,   161,   141,   161,   140,   118,    54,    55,   783,   185,
-     490,   604,    41,   221,    41,   709,   120,    85,   793,   794,
-     726,   209,    49,  1005,   184,   185,   120,   185,    55,    49,
-     805,   118,  1447,   120,   184,   148,   604,   158,   141,  1097,
-      67,   201,     0,    70,   157,   253,    73,   119,  1051,   209,
-     258,   209,  1202,   259,   259,   737,   259,  1505,   218,   184,
-     118,   221,    49,   221,   412,   147,   118,   139,   228,   717,
-    1485,  1235,  1487,  1237,  1238,   184,   124,   265,   238,   406,
-     817,   241,   464,    41,   260,   245,   246,   245,   140,  1537,
-     118,   218,   205,   246,   245,   137,   209,  1436,   140,   259,
-     260,   817,   260,   594,  1443,     0,   266,   118,   245,   269,
-       0,     1,   428,   429,   747,    73,   304,   590,   336,   483,
-    1215,   804,   149,   804,   717,   607,   492,    54,    55,   804,
-     125,   118,   804,   120,   161,   511,   119,   513,   629,   266,
-     516,   119,   125,   519,   139,   245,    41,   638,   121,   717,
-     250,    41,   265,   626,   481,   268,   804,   184,   185,  1261,
-    1262,   139,   245,   636,  1503,   787,   326,  1262,   326,   642,
-     420,   426,   924,    49,  1183,    70,   913,   432,   118,   292,
-      70,    49,   209,    73,   344,   345,     0,   590,   120,   439,
-     122,   304,   608,   105,   221,   511,   123,   447,   614,   139,
-     516,  1183,  1273,   519,   119,   696,   123,   139,   368,   984,
-     985,   804,   372,     3,    49,   966,   245,   344,   245,   131,
-     711,   250,   382,   336,   139,   433,   691,    41,     3,   912,
-     406,   912,   259,    49,     0,     0,   804,   912,   105,   642,
-     125,   368,   118,   609,   120,   372,   406,   613,   406,   118,
-     118,   125,   120,   619,   570,   125,     4,     5,     6,     7,
-       8,     9,    10,    11,   131,   473,   426,   141,   158,   139,
-    1045,  1046,   432,     0,   640,    41,   125,    49,   644,   125,
-    1351,   645,   646,   118,   949,   120,  1388,   245,   428,   429,
-     139,  1273,   250,  1388,   125,   141,  1319,   661,   680,   326,
-     140,   934,   118,   118,   120,   481,  1509,   467,   799,   926,
-     141,   119,   472,   434,   467,   428,   429,   125,   345,  1509,
-     420,   481,   341,   481,   797,   485,   221,   485,  1509,  1479,
-     490,   221,   928,   493,   485,   817,   118,   817,   498,   439,
-    1077,   118,   455,   120,  1096,   709,   118,   447,   120,  1055,
-     245,    54,    55,    88,   467,   245,   119,  1380,  1381,   499,
-    1510,    49,   125,   656,    55,   118,   341,   120,   119,  1440,
-     530,  1442,   347,    12,   125,   535,   118,   530,   518,   406,
-      99,   100,   535,   747,   497,   485,   499,   118,   501,  1539,
-     806,   420,   367,   141,   797,   121,   371,   125,   511,   125,
-     513,   783,   485,   516,   118,   518,   519,   528,   663,   118,
-     439,   793,   794,   141,   119,   134,   135,    49,   447,   674,
-     123,    79,  1396,   805,   121,    49,    49,   118,   125,   589,
-     118,   245,   120,  1504,    92,    93,   250,   917,   119,   579,
-      79,   691,    81,    82,   604,  1151,  1152,   607,   121,     0,
-       1,   346,   125,   119,  1436,   705,   485,   148,   485,    49,
-      70,  1443,   420,   490,   483,   126,   579,  1242,   628,    79,
-     591,   132,   133,   633,   840,  1250,  1251,  1252,   969,   245,
-    1060,   439,  1062,   125,   250,  1118,   118,   647,   120,   447,
-      41,   651,   119,   966,   118,   118,   120,   120,   706,   141,
-     660,   628,   662,   663,   664,   119,   694,   125,   856,   662,
-     119,   664,   122,   125,   674,   118,   474,   118,   209,    70,
-     647,  1503,    73,   141,   645,   646,  1500,   485,   118,   141,
-     120,  1505,    79,   660,    81,    82,    83,   645,   646,   125,
-     661,   119,   119,   703,   434,    92,    93,   125,   125,   125,
-     703,   161,   918,   661,   884,   141,  1530,   717,   718,   975,
-     976,  1470,   591,  1537,   724,   141,   119,  1476,   728,   862,
-     934,   121,   125,   900,   265,   125,   125,   604,   473,   126,
-     607,   694,  1215,    79,   125,    81,    82,    83,   709,   124,
-     485,   691,   141,  1502,   676,   485,    92,    93,  1507,   118,
-     141,   709,   984,   985,   125,   705,   420,   626,   721,  1291,
-     118,   221,   120,   304,    74,   590,   119,   636,   126,   127,
-     979,   125,   125,   987,   141,   439,    79,   118,    81,    82,
-      83,   125,   140,   447,   141,   119,   118,   141,   528,    92,
-      93,   125,  1417,   253,   804,   141,    79,   141,   258,   119,
-     341,   626,   141,    86,   420,   125,    89,   817,    91,    92,
-      93,   636,   691,  1045,  1046,    79,   118,   642,   120,    83,
-     221,   485,   123,   439,   126,   127,   705,   119,    92,    93,
-     123,   447,    79,   125,    81,    82,  1392,   120,   141,   121,
-     717,   718,   119,   125,   245,    92,    93,   119,   125,  1047,
-     119,   591,   862,   125,   118,    88,   120,  1000,   868,   869,
-     898,   119,   126,   127,   119,   119,   118,   125,   869,   485,
-     125,   125,  1054,   120,   900,  1052,  1054,   118,   747,  1056,
-     136,  1054,   127,   691,   629,   119,   346,   428,   429,  1054,
-     900,   125,  1054,   903,  1054,   119,  1488,   705,  1454,    79,
-    1492,   125,  1054,    83,  1118,   645,   646,   917,   118,   119,
-    1466,  1467,    92,    93,   455,    79,   137,    60,   119,   869,
-     103,   661,   893,   927,   125,   935,   120,   804,    92,    93,
-     121,   941,   935,   121,  1490,   898,   869,   947,   118,    79,
-     817,   951,   119,    83,   947,   119,   126,   127,   951,   128,
-     129,   696,    92,    93,   118,   141,   120,   119,   499,   102,
-     119,   706,   119,   926,   927,   928,   711,    97,    98,   709,
-      79,   119,   797,   433,   118,   800,   121,   518,   118,   101,
-     102,  1213,  1087,    92,    93,   120,   126,   127,   998,   449,
-     869,   124,   125,   726,   927,   998,  1162,  1163,  1008,  1165,
-     123,  1011,  1012,  1013,  1005,  1171,  1562,   123,  1174,   140,
-    1242,   120,   125,   473,   893,    79,   987,   988,  1250,  1251,
-    1252,   119,   120,   900,   123,  1202,  1052,   691,    92,    93,
-    1056,   118,  1042,  1071,  1011,  1012,  1013,   140,   579,   141,
-     917,   705,  1052,   119,  1054,   119,  1056,  1261,   781,    79,
-     193,    81,    82,   121,   799,  1005,   120,   139,  1068,   124,
-     125,   869,    92,    93,   121,   934,    68,    69,    79,   121,
-      81,    82,  1005,   216,   125,   691,   139,  1087,    54,    55,
-    1526,    92,    93,   226,   485,   626,   555,   556,   118,   705,
-     139,  1101,    35,   123,   119,   636,   119,   966,  1101,   123,
-      12,    13,    14,    15,    16,    17,    18,   118,  1071,   118,
-      90,   120,   123,   119,    94,    95,    96,   126,   127,    79,
-     124,    81,    82,    83,   869,   858,  1005,  1304,   124,   869,
-    1102,  1103,    92,    93,   594,   557,   558,    49,   118,  1480,
-     120,   966,   122,   123,   559,   560,   561,   562,  1158,   292,
-     118,   119,   120,   893,   563,   564,  1194,   124,   118,   125,
-     120,   118,   119,   120,   118,   124,   126,   127,   119,   629,
-     119,     0,     1,  1183,   119,  1052,  1202,  1054,   638,  1056,
-     140,  1347,  1183,    74,   125,  1417,    77,   927,   119,    80,
-     119,    82,  1202,   118,   119,   120,   119,  1005,   125,    90,
-     118,   119,   120,   119,   119,   869,   118,    35,   120,   869,
-     119,   119,    41,   119,   126,   127,  1220,    68,    69,    70,
-      49,   954,   119,   119,   969,  1235,    55,  1237,  1238,   119,
-     119,  1194,  1235,  1183,  1237,  1238,   696,   119,    67,   119,
-     119,    70,  1213,   119,    73,   140,   706,   987,   988,  1118,
-    1183,   711,   123,   869,   119,   125,   123,  1220,   121,   121,
-    1005,    79,   119,    81,    82,  1005,   119,   125,   118,  1002,
-     119,   119,  1377,   125,    92,    93,   119,   118,  1304,   125,
-     118,   110,   118,    79,  1294,    81,    82,  1220,   118,   118,
-    1261,  1262,   121,   122,  1304,  1353,    92,    93,    13,   139,
-      79,   444,   139,   125,  1183,   123,   139,    86,   124,  1319,
-      89,  1315,    91,    92,    93,   141,  1319,   119,   139,   148,
-     149,   212,  1055,  1273,   119,  1202,   469,  1509,   157,   158,
-     189,  1509,   161,  1510,   139,  1345,  1509,   196,  1348,   799,
-    1273,  1005,   119,   137,  1509,  1403,  1215,  1509,  1008,  1509,
-    1354,    79,  1315,    81,    82,   184,   185,  1509,  1290,   124,
-     124,   123,  1539,   119,    92,    93,  1376,  1377,   511,   121,
-    1380,  1381,   201,   516,  1479,  1183,   519,  1380,  1381,   125,
-     209,   121,  1315,   119,   119,   119,  1396,   928,   121,  1005,
-     121,  1401,   221,    57,  1273,   121,   119,   121,    79,  1376,
-     121,   121,   141,   262,   141,    86,    90,  1445,    89,  1447,
-      91,    92,    93,   124,  1418,   119,   245,  1388,  1151,  1152,
-    1430,  1354,   141,   141,   253,   966,   119,  1304,   141,   258,
-     259,   260,  1364,   119,   119,   124,   265,   124,  1183,   120,
-     118,   121,   121,  1183,   121,    39,   121,  1485,   121,  1487,
-     121,   119,   119,  1509,  1509,  1418,  1509,   348,   349,    70,
-     351,   320,   353,   292,   121,  1273,   118,   118,   869,  1479,
-     329,  1481,    70,   332,   365,   304,   118,   123,  1481,   119,
-    1220,   119,   121,  1415,  1510,  1418,  1436,   121,   119,   121,
-    1500,   320,   119,  1443,   118,  1505,   105,   326,   105,  1509,
-    1510,   118,  1510,  1436,   141,   124,   119,   336,    52,   969,
-    1443,   122,   341,  1539,   119,   119,   345,   346,  1528,  1183,
-    1530,  1261,  1262,  1183,  1534,   125,   927,  1537,  1273,  1539,
-     119,  1539,   119,  1273,   119,   129,   679,   139,   367,   398,
-    1550,   105,   371,   402,  1554,   688,  1354,   105,   141,   692,
-     161,   141,   443,  1503,   121,   139,  1488,  1436,   141,   141,
-    1492,  1493,  1572,  1526,  1443,   141,   119,  1183,   119,  1572,
-    1503,    55,   118,  1583,   139,  1315,   125,   406,   121,   124,
-    1583,   121,   141,    67,   121,   141,    70,   119,  1520,    73,
-     118,   124,   119,   124,   119,   119,   119,   426,   139,   428,
-     429,   119,   141,   432,  1005,   434,   118,   141,  1353,  1273,
-     221,  1543,   119,  1353,  1354,  1547,  1024,   565,   568,   141,
-    1445,   480,  1447,   567,  1503,   141,   455,   238,  1436,   566,
-     569,    58,  1509,    60,  1294,  1443,    63,    64,    65,  1571,
-     946,  1183,   253,   472,   238,    62,  1467,   258,  1388,  1356,
-    1554,  1493,   481,    80,   483,  1283,   485,  1273,  1403,  1392,
-    1485,   490,  1487,  1403,  1547,   149,    93,    94,  1443,  1042,
-     499,   898,  1052,  1304,  1062,   269,   920,   161,  1418,   941,
-     728,   862,   511,   657,   513,  1345,   721,   516,  1348,   518,
-     519,  1436,  1220,   281,   111,  1503,  1436,   114,  1443,   528,
-     919,   185,   485,  1443,   736,    79,    -1,    81,    82,    83,
-     571,   571,   571,   572,    -1,   571,   304,   305,    92,    93,
-      -1,  1454,    -1,    -1,    -1,   209,    79,    -1,    81,    82,
-      83,    -1,    -1,  1466,  1467,   346,  1396,   221,    -1,    92,
-      93,  1401,   571,   572,   118,    -1,    -1,    -1,    -1,    -1,
-     579,    -1,   895,   341,    -1,    -1,    -1,  1490,  1503,   186,
-      -1,   590,   591,  1503,    -1,   594,    -1,    -1,    -1,    -1,
-    1430,    -1,  1436,    79,    -1,   604,    -1,    -1,   607,  1443,
-      86,    -1,  1183,    89,    -1,    91,    92,    93,   382,    79,
-      -1,    81,    82,    83,    -1,   383,    -1,   626,    -1,    -1,
-      -1,   218,    92,    93,    -1,    -1,   665,   636,    -1,   638,
-     669,    -1,    -1,   642,   120,    -1,   645,   646,    -1,  1220,
-    1436,    -1,   433,    -1,    -1,    -1,    -1,  1443,   118,  1562,
-     120,    -1,   661,    -1,   663,    -1,   126,   127,    -1,  1503,
-      -1,    -1,   326,    -1,    79,   674,    81,    82,    83,   266,
-      79,    -1,    81,    82,    83,    -1,    -1,    92,    93,    -1,
-      -1,    -1,   473,    92,    93,   694,    -1,    -1,  1528,    -1,
-      -1,    -1,  1273,  1016,  1534,    -1,    -1,    -1,    -1,    -1,
-     709,   710,   711,   118,    -1,   120,    -1,  1503,   717,   718,
-    1550,   126,   127,  1353,  1554,    -1,     3,    -1,    -1,   493,
-      -1,    -1,    -1,    -1,   498,    12,    13,    14,    15,    16,
-      17,    18,    -1,   340,  1315,   342,    -1,    79,   747,    81,
-      82,    83,   406,    -1,    -1,     3,    -1,   344,   787,    -1,
-      92,    93,   359,   360,    12,    13,    14,    15,    16,    17,
-      18,    -1,    49,  1403,    12,    13,    14,    15,    16,    17,
-      18,   368,  1353,  1354,    -1,   372,   118,    -1,   787,    79,
-      -1,    81,    82,    83,   552,   553,   554,    -1,   797,    -1,
-     799,    49,    92,    93,    -1,   804,    -1,    -1,    -1,    -1,
-      -1,    49,    -1,   594,    -1,  1526,    -1,    -1,   817,    -1,
-      79,    -1,    81,    82,    83,   589,    -1,    -1,   118,    -1,
-     120,    -1,  1403,    92,    93,    -1,   126,   127,    -1,    -1,
-      -1,    79,    -1,    81,    82,    83,    -1,  1418,   629,   139,
-    1480,    -1,   633,    -1,    92,    93,    -1,   638,    -1,   118,
-      -1,    -1,    -1,    -1,    -1,  1436,    -1,   126,   127,   633,
-     869,    -1,  1443,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     118,    -1,   120,    -1,    -1,    -1,    -1,   651,   126,   127,
-      -1,    90,    -1,    -1,   893,    94,    95,    96,    -1,   898,
-      -1,   900,    -1,    -1,    -1,    12,    13,    14,    15,    16,
-      17,    18,    -1,   912,   913,   696,    -1,    -1,   917,   118,
-      -1,   120,    -1,   122,   123,   706,    -1,   956,   927,   928,
-     711,    -1,  1503,    -1,    -1,   934,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,   972,    -1,    -1,    -1,    -1,    -1,    -1,
-      12,    13,    14,    15,    16,    17,    18,    -1,    -1,    -1,
-     724,    -1,    -1,    -1,   728,    -1,    -1,   966,    -1,  1282,
-      -1,    -1,    79,    -1,    81,    82,    83,    -1,    12,    13,
-      14,    15,    16,    17,    18,    92,    93,    49,   987,   988,
-      -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,    -1,    12,
-      13,    14,    15,    16,    17,    18,  1005,    -1,    -1,    -1,
-      -1,   118,    -1,   120,    -1,    49,    -1,    79,   799,   126,
-     127,    83,     4,     5,     6,     7,     8,     9,    10,    11,
-      92,    93,  1061,    -1,    -1,    -1,    49,    -1,    -1,    -1,
-      -1,   628,    -1,    -1,    -1,    79,    -1,    81,    82,    83,
-      -1,    -1,    -1,  1052,    -1,  1054,   118,  1056,    92,    93,
-     647,    -1,    -1,    -1,   126,   127,    79,    -1,    81,    82,
-      83,    -1,  1071,   660,    -1,    -1,    -1,    -1,  1077,    92,
-      93,    -1,    -1,    -1,   118,    -1,   120,    -1,  1087,    -1,
-      -1,    -1,   126,   127,    -1,    -1,    -1,    -1,   862,    -1,
-     697,    -1,   699,    -1,   868,   118,    -1,    -1,    -1,    -1,
-     707,   708,    -1,   126,   127,   712,    -1,    -1,    -1,  1118,
-      -1,    -1,    12,    13,    14,    15,    16,    17,    18,    -1,
-      -1,  1444,   729,  1446,     3,    -1,    32,   734,    -1,   903,
-      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
-      79,    -1,    81,    82,    83,    -1,   753,    -1,    -1,    49,
-      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,  1197,    -1,
-      -1,  1484,    -1,  1486,    -1,    -1,    -1,   941,    -1,    -1,
-      49,    -1,    -1,    -1,  1183,    -1,    -1,    -1,   969,   118,
-      -1,    87,    -1,    -1,    -1,  1194,    -1,   126,   127,    -1,
-      -1,    -1,    -1,  1202,    -1,    -1,    -1,   103,   966,   105,
-      -1,    -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,    -1,
-      -1,  1220,    -1,    -1,    -1,  1538,    -1,  1540,   118,    -1,
-     120,    -1,    -1,    -1,   130,    -1,   126,   127,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1558,  1559,  1005,    -1,    -1,
-      -1,    -1,    -1,    -1,   851,    -1,   853,   854,   855,    -1,
-      -1,    -1,  1261,  1262,    12,    13,    14,    15,    16,    17,
-      18,  1300,    -1,    -1,  1273,   872,    -1,    -1,  1042,    -1,
-      -1,    -1,   869,     4,     5,     6,     7,     8,     9,    10,
-      11,   888,    -1,   189,    -1,   191,   192,    -1,    -1,    -1,
-     196,    49,   198,   199,  1068,  1304,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   911,    -1,  1315,    -1,    -1,    -1,
-      -1,    42,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,    -1,    -1,    12,    13,    14,    15,    16,
-      17,    18,    -1,    -1,    -1,    -1,    -1,    -1,   945,    -1,
-      -1,    -1,    -1,   950,  1353,  1354,   140,    -1,   955,    -1,
-      -1,    -1,    -1,   960,   961,    -1,   262,    -1,   965,    -1,
-     967,   968,    49,    -1,   971,    -1,    -1,    -1,  1377,    -1,
-      -1,    -1,    -1,   980,    -1,    -1,    -1,    -1,    -1,  1388,
-      -1,    -1,    -1,    -1,  1158,    -1,    -1,    -1,    -1,   996,
-     997,    -1,    79,    -1,  1403,    -1,    83,    -1,    -1,    -1,
-       0,     1,    -1,    -1,    -1,    92,    93,    -1,    -1,  1418,
-      -1,  1008,    -1,    -1,  1011,  1012,  1013,    -1,    -1,    -1,
-      -1,  1028,    -1,    -1,  1031,    -1,    -1,  1436,    -1,    -1,
-      -1,   118,   338,    -1,  1443,    -1,  1445,    -1,  1447,   126,
-     127,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   357,    -1,    -1,    -1,    55,    -1,    -1,    12,    13,
-      14,    15,    16,    17,    18,    -1,    -1,    -1,    -1,    -1,
-    1479,  1480,    -1,    73,    -1,    -1,  1485,  1084,  1487,    -1,
-      -1,    -1,    -1,  1090,  1091,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1099,    -1,  1503,    49,    -1,  1104,    -1,    -1,
-    1509,  1510,  1109,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-     110,    -1,    -1,    -1,    -1,  1122,    -1,  1526,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,    83,
-    1539,  1138,    -1,  1140,  1141,  1142,  1143,    -1,    92,    93,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1155,   149,
-    1157,    -1,    -1,    -1,    -1,    -1,    -1,   157,   158,    -1,
-      -1,    -1,  1353,    -1,   118,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1189,  1190,    -1,   185,  1183,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   201,    -1,    -1,   204,   205,    -1,    -1,    -1,   209,
-      -1,    -1,  1403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     230,    -1,    -1,    -1,   234,    -1,   236,    -1,    -1,   239,
-      -1,    -1,    -1,    -1,    -1,   245,  1253,  1254,    -1,    -1,
-     250,    -1,    -1,    -1,    -1,    -1,  1263,    -1,    -1,    -1,
-     260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   268,   575,
-     576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1480,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1294,    -1,    -1,
-      -1,    -1,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
-     616,   617,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
-    1327,    -1,  1329,  1330,  1331,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1341,    -1,   336,    -1,    -1,    -1,
-      -1,   341,  1349,    -1,    -1,  1352,    -1,   347,  1345,    -1,
-      -1,  1348,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   665,
-      -1,    -1,    -1,   669,    -1,    -1,    -1,   367,    -1,    -1,
-      -1,   371,  1379,    -1,    -1,    -1,    -1,    -1,    -1,  1376,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1396,
-      -1,    -1,    -1,    -1,  1401,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  1423,  1424,    -1,    -1,
-     420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,  1436,
-      -1,    -1,    -1,  1430,   434,    -1,  1443,    -1,    -1,   439,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,    -1,    -1,
-      -1,    -1,    -1,  1460,    -1,    -1,    -1,    -1,    -1,    -1,
-      73,    -1,    -1,    -1,   464,    -1,    -1,   467,    -1,    -1,
-      -1,  1478,    -1,    -1,   474,    -1,  1483,    -1,    -1,    -1,
-      -1,    -1,    -1,   483,    -1,   485,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   497,    -1,    -1,
-      -1,   501,    -1,  1500,    -1,    -1,    -1,    -1,  1505,  1516,
-      -1,  1518,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,
-      -1,  1528,    -1,  1530,    -1,    -1,    -1,  1534,    -1,    -1,
-    1537,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,  1556,
-    1557,    -1,    -1,  1550,    -1,    -1,    -1,  1554,    -1,    -1,
-      -1,    -1,  1569,  1570,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     590,   591,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   607,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   230,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,    -1,    -1,
-      -1,   631,   245,    -1,    -1,    -1,   636,   250,    -1,    -1,
-      -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,    -1,
-     956,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   661,    -1,    -1,    -1,    -1,   972,    -1,    -1,   975,
-     976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,
-      -1,   691,    -1,    -1,    -1,    12,    13,    14,    15,    16,
-      17,    18,    -1,    -1,    -1,   705,    -1,    -1,    -1,   709,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   718,    -1,
-      -1,   721,    -1,    -1,    -1,    -1,    -1,    -1,   341,    -1,
-      47,    48,    49,    50,   347,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1048,    -1,    -1,    -1,    -1,   747,    -1,    -1,
-      -1,    -1,    -1,    -1,   367,  1061,    -1,    -1,   371,    76,
-    1066,  1067,    79,    -1,    -1,    -1,    83,    -1,    -1,    86,
-      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
-      -1,    -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   793,   794,    -1,    -1,   797,    -1,    -1,
-     800,   118,    -1,   120,    -1,   805,    -1,   420,    -1,   126,
-     127,   128,   129,   130,   131,   815,    -1,  1123,    -1,    -1,
-      -1,   434,    -1,    -1,    -1,    -1,   439,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   447,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   464,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   474,     0,    -1,    -1,    -1,    -1,    -1,    -1,   869,
-     483,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,  1185,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,  1204,    -1,
-      -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   913,    -1,   528,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   926,   927,    -1,    -1,
-      -1,    -1,    -1,    -1,   934,    73,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,    -1,    -1,
-      -1,    -1,    -1,    49,    -1,    -1,    -1,   590,   591,   979,
-      -1,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
-       0,    -1,    -1,    -1,  1300,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,    -1,    85,
-      -1,    -1,    -1,   626,    -1,    -1,    -1,    -1,    -1,    -1,
-     158,    -1,    -1,   636,    -1,    -1,    -1,    -1,    -1,   642,
-      -1,    41,   645,   646,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     5,    -1,    -1,  1045,  1046,    -1,   661,    12,
-      13,    14,    15,    16,    17,    18,  1056,    -1,    -1,    -1,
-      -1,    -1,    -1,    73,    -1,    -1,    -1,   680,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   691,    -1,
-      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,   705,    -1,    -1,    -1,   709,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   245,    -1,    -1,
-      -1,    -1,   250,    76,    -1,    -1,    79,    -1,  1118,    -1,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,   747,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
-     783,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     793,   794,    -1,  1183,   797,    -1,    -1,   800,    -1,    -1,
-      -1,    -1,   805,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   341,    -1,    -1,    -1,    -1,    -1,   347,
-      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
-    1220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,
-      -1,    -1,    -1,   371,    -1,   245,    -1,    -1,    -1,    -1,
-     250,    -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1250,  1251,  1252,    -1,    -1,    -1,   869,    -1,    -1,    -1,
-      -1,  1261,  1262,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,    -1,    -1,
-     893,    -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
-      -1,   439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   447,
-      -1,    -1,    -1,    -1,    -1,  1315,    -1,    -1,    -1,    -1,
-      -1,   934,    -1,    -1,    -1,    -1,   464,    -1,    -1,    70,
-      -1,   341,    -1,    -1,    -1,    -1,   474,   347,    79,    -1,
-      81,    -1,    83,    -1,    -1,   483,    -1,   485,    -1,    -1,
-      91,    -1,    -1,   966,  1354,    -1,    -1,   367,    -1,    -1,
-      -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   984,   985,    -1,   987,   988,    -1,    -1,    -1,    -1,
-      -1,   122,    -1,   124,   125,   126,    -1,    -1,  1388,    -1,
-     528,    -1,  1005,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     420,    -1,    -1,    -1,    -1,    -1,    -1,  1417,  1418,    -1,
-     161,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,   439,
-      -1,    -1,  1045,  1046,    -1,    -1,  1436,   447,    -1,    -1,
-      -1,    -1,    -1,  1443,    -1,  1445,    -1,  1447,    -1,    -1,
-      -1,    -1,   590,   591,   464,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   483,    -1,   485,    -1,    -1,    -1,    -1,
-     221,    -1,   223,   224,   225,  1485,    -1,  1487,   626,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   636,    -1,
-      -1,    -1,    -1,  1503,   642,  1118,    -1,   645,   646,    -1,
-    1510,    -1,   253,    -1,    -1,    -1,    -1,   258,   528,    -1,
-      -1,    -1,    -1,   661,    -1,    55,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      70,    -1,   680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   691,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   705,    -1,    -1,
-    1183,   709,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     590,   591,    -1,    -1,    -1,   326,    -1,    -1,   118,    -1,
-      -1,    -1,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1213,    -1,  1215,    -1,    -1,   346,    -1,    -1,    -1,   747,
-      -1,   352,    -1,   354,    -1,    -1,   626,    -1,   148,    -1,
-      -1,    -1,    -1,    -1,    -1,   366,   636,    -1,   158,  1242,
-      -1,   161,   642,    -1,    -1,   645,   646,  1250,  1251,  1252,
-      -1,    -1,    -1,    -1,    -1,   783,    -1,    -1,  1261,  1262,
-      -1,   661,    -1,    -1,    -1,   793,   794,    -1,    -1,   797,
-    1273,    -1,   800,    -1,    -1,   406,    -1,   805,    -1,    -1,
-     680,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   209,
-      -1,   691,    -1,    -1,    -1,   426,    -1,    -1,    -1,    -1,
-     431,   221,   433,    -1,    -1,   705,    -1,    -1,    -1,   709,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   449,    -1,
-      -1,   452,   453,    -1,    -1,    -1,    -1,    -1,   459,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,
-      -1,   869,   473,    -1,    -1,   265,    -1,   747,    -1,    -1,
-     481,  1354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,
-      -1,    -1,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   783,   304,  1388,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   793,   794,    -1,    -1,   797,    -1,    -1,
-     800,    -1,    -1,    -1,    -1,   805,   934,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1417,    -1,    -1,    -1,    -1,    -1,
-      -1,   341,    -1,    -1,    -1,    -1,   346,    -1,    -1,    -1,
-      -1,    -1,    -1,  1436,    -1,    -1,    -1,    -1,   966,    -1,
-    1443,    -1,  1445,    -1,  1447,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   984,   985,    -1,   987,
-     988,    -1,    -1,   594,    -1,   596,   597,   598,    -1,   869,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,
-      -1,    -1,  1485,    -1,  1487,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,   629,   630,
-    1503,    -1,    -1,    -1,    -1,    -1,    -1,   638,   428,   429,
-      -1,    -1,    -1,    -1,   434,    -1,    -1,  1045,  1046,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   934,   455,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    -1,    -1,   483,    -1,   696,   966,    -1,    -1,    -1,
-      -1,    -1,    -1,    49,    -1,   706,    -1,    -1,    -1,   499,
-     711,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
-    1118,   511,    -1,   513,    -1,    -1,   516,    -1,   518,   519,
-      -1,    -1,    -1,    -1,    -1,  1005,    -1,    -1,   528,    85,
-      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,  1045,  1046,    36,    37,    38,
-      39,    40,    41,    -1,    -1,  1183,   787,    -1,    -1,   579,
-      49,    -1,    -1,    50,    -1,    -1,    -1,    -1,   799,    -1,
-      -1,   591,    -1,    -1,   594,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1213,   817,  1215,    -1,    -1,
-      79,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    92,    93,    -1,   626,    -1,    -1,    96,
-     841,    -1,    -1,    -1,  1242,    -1,   636,    -1,  1118,   106,
-      -1,    -1,  1250,  1251,  1252,   645,   646,    -1,    -1,   118,
-     148,   120,    -1,  1261,  1262,    -1,    -1,   126,   127,    -1,
-     158,   661,    -1,    -1,    -1,  1273,    -1,    -1,    -1,    -1,
-      -1,   169,   170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   694,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1183,    -1,   172,   917,    -1,    -1,   709,
-      -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,
-      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
-      -1,   208,    -1,    -1,    -1,    -1,  1354,   747,    -1,    -1,
-     217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   969,   257,
-     227,    -1,  1242,    -1,    -1,    -1,    -1,    -1,    -1,   980,
-    1250,  1251,  1252,    -1,    47,    48,    -1,    50,    -1,   246,
-    1388,  1261,  1262,    -1,   251,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1273,    -1,    -1,    -1,   264,    -1,   799,
-      -1,    -1,    -1,    76,    -1,   272,    79,   274,    -1,  1417,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,   293,    -1,  1436,    -1,
-      -1,    -1,    -1,    -1,    -1,  1443,    -1,  1445,    -1,  1447,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  1077,   334,    -1,    -1,
-      -1,    -1,   339,    -1,  1354,    -1,    -1,  1485,    -1,  1487,
-      -1,    -1,    -1,    -1,   382,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   893,    -1,  1503,    -1,    -1,   898,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   374,  1388,    -1,
-      -1,   378,   379,    -1,   381,    -1,    -1,    -1,    -1,    -1,
-      -1,   388,   389,    -1,   391,   392,    -1,   394,   928,   396,
-      -1,    -1,    -1,    -1,   934,    -1,    -1,  1417,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   413,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   421,    -1,  1436,   455,    -1,    -1,
-      -1,    -1,    -1,  1443,    -1,  1445,   966,  1447,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   475,   445,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   987,   988,    -1,
-      -1,  1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   470,    -1,  1485,    -1,  1487,    -1,    -1,
-     477,    -1,    -1,    -1,    -1,   482,    -1,    -1,    -1,    -1,
-     518,    -1,    -1,  1503,    -1,    -1,    -1,    -1,    -1,    -1,
-     528,    -1,    -1,    -1,    -1,   533,    -1,    -1,   536,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   549,    -1,    -1,    -1,   522,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   534,    -1,    -1,
-      -1,  1071,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   579,    -1,    -1,    -1,    -1,    -1,    -1,   586,    -1,
-      -1,    -1,    -1,   591,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,   606,    -1,
-      -1,    -1,    -1,   580,    -1,    -1,   583,    -1,  1118,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   605,    -1,
-      -1,    -1,  1353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     648,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   656,    -1,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    -1,   650,    36,    37,    38,    39,    40,    41,
-      -1,    -1,  1403,    -1,  1194,    -1,    -1,    49,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1215,    -1,    -1,    -1,    -1,
-     687,    -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    81,
-      82,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   737,
-      92,    93,    -1,    -1,    -1,   157,   158,    -1,   715,   747,
-      -1,   749,    -1,    -1,   752,    -1,    -1,    -1,    -1,    -1,
-     758,  1261,  1262,   730,   731,    -1,   118,    -1,   120,  1480,
-      -1,    -1,    -1,   740,   126,   127,    -1,   189,    -1,    -1,
-      -1,    -1,    -1,    -1,   196,    -1,    -1,   754,    -1,    -1,
-      -1,    -1,   759,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   799,   800,    47,    48,    -1,    50,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   815,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1539,    -1,
-      -1,    -1,    76,    -1,    -1,    79,    -1,    -1,    -1,    83,
-      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
-     262,    95,    96,  1353,   821,    -1,    -1,    -1,    -1,    -1,
-     858,   828,    -1,    -1,   862,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   118,    -1,   120,   844,   158,   846,
-      -1,   125,   126,   127,   128,   129,   130,   131,  1388,    -1,
-      -1,    -1,   859,    -1,    -1,   893,    -1,    -1,   865,    -1,
-      -1,    -1,    -1,  1403,    -1,    -1,    -1,    -1,   320,   876,
-      -1,    -1,    -1,   880,    -1,    -1,    -1,   329,   330,    -1,
-     332,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   341,
-     928,    -1,    -1,   345,    -1,    -1,   934,    -1,    -1,    -1,
-      -1,    -1,    -1,   941,    -1,  1445,    -1,  1447,   946,    -1,
-      -1,   949,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   371,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
-      48,   969,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1480,    -1,   980,    -1,    -1,  1485,   398,  1487,    -1,    -1,
-     402,    -1,    -1,    -1,    -1,    -1,    -1,   964,    76,    -1,
-      -1,    79,  1000,    -1,  1002,    83,    -1,    -1,    86,    87,
-      88,    89,    90,    91,    92,    93,    -1,    95,    96,  1017,
-    1018,    -1,   434,    -1,    -1,    -1,  1526,    -1,   158,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     118,    -1,   120,    -1,    -1,   123,  1044,    -1,   126,   127,
-     128,   129,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   341,    -1,    -1,  1031,    -1,   346,   347,   480,    -1,
-      -1,   483,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
-      -1,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1097,
-      -1,    -1,    -1,    -1,    -1,    -1,  1073,    -1,    -1,    -1,
-      -1,  1078,    -1,    -1,    -1,    -1,   528,    -1,    -1,    -1,
-    1118,  1088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1136,  1137,
-      -1,    -1,    -1,    -1,    -1,  1112,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,  1125,   571,
-     572,    -1,  1129,    -1,    -1,  1132,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   590,   591,
-      -1,  1148,  1149,    -1,   464,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   604,    -1,    -1,   607,   608,    -1,    -1,  1166,
-      -1,    -1,   614,   483,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   341,   624,    -1,   626,    -1,   346,   347,    -1,    -1,
-      -1,    -1,    -1,    -1,   636,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   645,   646,    -1,    -1,   367,    -1,    -1,
-      -1,   371,    47,    48,    -1,    50,    -1,    -1,   528,   661,
-      -1,    -1,    -1,   665,   666,    -1,    -1,   669,   670,    -1,
-      -1,    -1,    -1,    -1,  1231,    -1,   678,    -1,    -1,    -1,
-      -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,
-      -1,    86,    87,    88,    89,    90,    91,    92,    93,  1287,
-      95,    96,    -1,  1291,    -1,    -1,    -1,   709,   710,    -1,
-      -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,
-     590,   591,    -1,   118,   594,   120,    -1,   122,   123,    -1,
-      -1,   126,   127,   128,   129,   130,   131,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   464,   747,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1310,    -1,  1312,   626,    -1,    -1,   629,
-      -1,    -1,    -1,   483,    -1,  1322,   636,  1324,   638,    -1,
-      -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,    -1,
-      -1,    -1,  1339,    -1,    -1,   787,    -1,    -1,    -1,    -1,
-      -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1357,  1358,   804,    -1,   806,    -1,    -1,    -1,   528,    -1,
-     680,    -1,    -1,  1370,    -1,   817,    -1,    -1,  1375,    -1,
-      -1,  1378,    -1,    -1,    -1,    -1,   696,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1394,    -1,   709,
-      -1,   711,    -1,    -1,    -1,    -1,    32,  1404,    -1,   158,
-    1407,    -1,  1409,  1410,  1411,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     590,   591,    -1,    -1,   594,    -1,    -1,   747,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   893,  1449,    -1,  1451,    -1,    -1,    -1,   900,    -1,
-      -1,    87,    -1,    -1,  1461,    -1,   626,    -1,    -1,   629,
-     912,   913,    -1,   783,  1471,    -1,   636,   103,   638,   105,
-      -1,    -1,   642,   793,   794,   645,   646,   797,    -1,   799,
-     800,    -1,   934,    -1,    -1,   805,    -1,    -1,  1526,    -1,
-      -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   956,   957,    -1,    -1,    -1,    -1,
-     680,    -1,    -1,    -1,   966,    -1,    -1,    -1,    -1,    -1,
-     972,   973,    -1,   975,   976,   977,   696,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   987,   988,    -1,    -1,   709,
-      -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   191,   192,    -1,    -1,    -1,
-     196,    -1,   198,   199,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   893,    -1,    -1,    -1,   747,    -1,    -1,
-      -1,    -1,   341,    -1,    -1,    -1,    -1,   346,   347,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1052,    -1,  1054,    -1,  1056,    -1,    -1,    -1,   367,  1061,
-      -1,    -1,   371,   783,   934,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   793,   794,  1077,    -1,   797,    -1,   799,
-     800,    -1,    -1,    -1,    -1,   805,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,    -1,   969,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   984,   985,  1118,   987,   988,    -1,
-      -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,    -1,
-      -1,   279,    -1,   281,   282,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   290,   291,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   338,    -1,    -1,   464,   304,   305,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   357,    -1,   893,   483,  1045,  1046,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   341,    -1,  1197,    -1,    -1,    -1,    -1,
-    1202,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1215,   934,    -1,    -1,    -1,    -1,   528,
-      -1,    -1,    -1,   409,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   383,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   966,    -1,  1118,   969,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1261,
-    1262,    -1,    -1,    -1,   984,   985,    -1,   987,   988,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   590,   591,    -1,    -1,   594,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1300,  1301,
-      -1,    -1,  1304,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,    -1,
-     629,    -1,    -1,    -1,    -1,  1045,  1046,   636,    -1,   638,
-      -1,    -1,    -1,   642,    -1,    -1,   645,   646,    -1,    -1,
-      -1,    -1,    -1,  1213,    -1,  1215,    -1,    -1,    -1,    -1,
-      -1,    -1,   661,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   680,  1242,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1250,  1251,  1252,    -1,    -1,    -1,  1388,   696,    -1,   575,
-     576,  1261,  1262,    -1,    -1,    -1,    -1,    -1,  1118,    -1,
-     709,    -1,   711,    -1,   552,   553,   554,   555,   556,   557,
-     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
-     568,   569,   608,    -1,    -1,   611,   612,    -1,   614,    -1,
-     616,   617,    -1,    -1,    -1,   621,   622,    -1,   747,    -1,
-      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
-      39,    40,    41,    -1,   783,    -1,    -1,  1479,    -1,   665,
-      49,    -1,    -1,   669,   793,   794,    -1,    -1,   797,    -1,
-     799,   800,    -1,  1213,    -1,  1215,   805,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1509,  1510,    -1,
-      79,    -1,    81,    82,    83,    -1,    -1,    -1,  1388,    -1,
-      -1,    -1,  1242,    92,    93,    -1,    -1,    -1,    -1,    -1,
-    1250,  1251,  1252,    -1,    -1,    -1,    -1,  1539,    -1,    -1,
-      -1,  1261,  1262,    -1,    -1,    -1,    -1,  1417,    -1,   118,
-      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,   726,    -1,
-      -1,    -1,    -1,    -1,   893,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   751,    -1,    -1,    -1,    -1,    -1,    -1,
-    1480,    -1,    -1,    -1,    -1,  1485,    -1,  1487,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   781,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    -1,   966,    -1,    -1,
-     969,    -1,    47,    48,    -1,    50,    -1,    -1,  1388,    -1,
-      -1,    49,    -1,    -1,    -1,   984,   985,    -1,   987,   988,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    76,    -1,    -1,    79,    -1,    -1,  1417,    83,    -1,
-      -1,    86,    87,    88,    89,    90,    91,    92,    93,    -1,
-      95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,    -1,    -1,
-      -1,    -1,    -1,   118,    -1,   120,  1045,  1046,    -1,    -1,
-      -1,   126,   127,   128,   129,   130,   131,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   139,    -1,    -1,    -1,    -1,    -1,
-    1480,    -1,    -1,    -1,    -1,  1485,    -1,  1487,    -1,    -1,
-     956,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   972,    -1,    -1,   975,
-     976,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   954,    -1,    -1,  1118,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   966,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
-      -1,    36,    37,    38,    39,    40,    41,  1005,    -1,    -1,
-      -1,    -1,  1048,    -1,    49,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    1066,  1067,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
-      -1,    -1,    -1,    -1,  1213,    -1,  1215,  1055,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1242,   119,    -1,    -1,  1123,    -1,    -1,
-      -1,  1250,  1251,  1252,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1261,  1262,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1185,
-      -1,    -1,    -1,  1151,  1152,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1204,    -1,
-      -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,   126,   127,
-      36,    37,    38,    39,    40,    41,    42,    -1,    -1,  1388,
-      46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1417,    -1,
-      76,    -1,    -1,    79,  1300,    81,    82,    83,    -1,    -1,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
-      96,    -1,    -1,    -1,    -1,    -1,  1445,    -1,  1447,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,    -1,
-     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
-      -1,  1480,    -1,    -1,    -1,   141,  1485,    -1,  1487,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    -1,  1392,    36,    37,    38,    39,    40,
-      41,    42,    -1,    -1,    -1,    46,    47,    48,    49,    50,
-      51,    -1,    53,    -1,    -1,    56,    57,    58,    59,    60,
-      61,    62,    63,    -1,    -1,    -1,    67,    -1,    -1,    -1,
-      71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,    -1,
-      81,    82,    83,    -1,    -1,    86,    87,    88,    89,    90,
-      91,    92,    93,    -1,    95,    96,  1454,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1466,  1467,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,
-      -1,    -1,   123,    -1,    -1,   126,   127,   128,   129,   130,
-     131,    -1,  1490,    -1,    -1,   136,    -1,    -1,    -1,    -1,
-     141,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
-      42,    -1,    -1,    -1,    46,    47,    48,    49,    50,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1562,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,
-      82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
-      92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
-      -1,    -1,    -1,    -1,   126,   127,   128,   129,   130,   131,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      -1,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
-      -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,
-      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
-      -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,    -1,
-      -1,   125,   126,   127,   128,   129,   130,   131,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    -1,    -1,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      -1,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
-      96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,   125,
-     126,   127,   128,   129,   130,   131,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    47,
-      48,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,
-      -1,    79,    -1,    81,    82,    83,    -1,    -1,    86,    87,
-      88,    89,    90,    91,    92,    93,    -1,    95,    96,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     118,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
-     128,   129,   130,   131,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,    49,
-      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    79,
-      -1,    81,    82,    83,    -1,    -1,    86,    87,    88,    89,
-      90,    91,    92,    93,    -1,    95,    96,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,   126,   127,   128,   129,
-     130,   131,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,
-      82,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
-      92,    93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,
-      -1,    -1,    -1,    -1,   126,   127,   128,   129,   130,   131,
-       0,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
-      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
-      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
-      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,   126,   127,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
-      -1,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    50,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      -1,    -1,    -1,    -1,    79,    -1,    81,    82,    83,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   118,    -1,   120,    -1,    -1,    -1,   124,
-      -1,   126,   127,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
-      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
-      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    79,
-      -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,   126,   127,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
-      85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,
-      -1,   126,   127,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
-      40,    41,    42,    -1,    -1,    -1,    46,    -1,    -1,    49,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      79,    -1,    81,    82,    83,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,
-      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    49,    -1,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    81,    82,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
-      -1,   126,   127,    81,    82,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      -1,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    81,    82,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   105,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,
-      -1,    -1,   126,   127,    81,    82,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,
-     127,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,    81,    82,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,
-     126,   127,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      81,    82,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
-      83,    -1,   123,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,   119,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    47,    48,    49,    50,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    -1,    -1,    79,    -1,    81,    82,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,   128,   129,   130,   131,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,
-      93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,    50,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    81,    82,    36,    37,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,
-      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   120,    -1,    -1,    -1,   124,    -1,   126,
-     127,    81,    82,    -1,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-     120,    49,    50,    -1,   124,    -1,   126,   127,    -1,    -1,
-      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    81,    82,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   120,    -1,    -1,    -1,   124,    -1,   126,   127,
-      81,    82,    -1,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-      49,    -1,    -1,    -1,    -1,   126,   127,    -1,    -1,    -1,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    81,    82,    36,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,
-      82,    -1,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    -1,    -1,    36,    37,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,   120,    49,
-      -1,    -1,    -1,    -1,   126,   127,    -1,    -1,    -1,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     120,    -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,
-      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    -1,    -1,    -1,    -1,    -1,   120,    49,    -1,
-      -1,    -1,    -1,   126,   127,    -1,    -1,    -1,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      81,    82,    36,    37,    38,    39,    40,    41,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,
-      -1,    -1,    -1,    -1,    -1,   126,   127,    81,    82,    -1,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    -1,    -1,    36,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    -1,    -1,   120,    49,    -1,    -1,
-      -1,    -1,   126,   127,    -1,    -1,    -1,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    81,
-      82,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,
-      -1,    -1,    -1,    -1,   126,   127,    81,    82,    -1,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,   120,    49,    -1,    -1,    -1,
-      -1,   126,   127,    -1,    -1,    -1,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   120,    -1,    -1,
-      -1,    -1,    -1,   126,   127,    81,    82,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
-     126,   127,    49,    -1,    47,    48,    -1,    50,    51,    -1,
-      53,    -1,    -1,    56,    57,    58,    59,    60,    61,    62,
-      63,    -1,    -1,    66,    67,    -1,    -1,    -1,    71,    72,
-      -1,    74,    -1,    76,    81,    82,    79,    -1,    81,    82,
-      83,    -1,    -1,    86,    87,    88,    89,    90,    91,    92,
-      93,    -1,    95,    96,    -1,    -1,    -1,    -1,   105,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,
-     123,    -1,    -1,   126,   127,   128,   129,   130,   131,    -1,
-      -1,    47,    48,   136,    50,    51,    -1,    53,   141,    -1,
-      56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    71,    72,    -1,    74,    -1,
-      76,    -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
-      96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   118,    -1,   120,    -1,    -1,   123,    -1,    -1,
-     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
-     136,    -1,    -1,    47,    48,   141,    50,    51,    -1,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      -1,    -1,    66,    67,    -1,    -1,    -1,    71,    72,    -1,
-      74,    -1,    76,    -1,    -1,    79,    -1,    81,    82,    83,
-      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
-      -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   118,    -1,   120,    -1,    -1,   123,
-      -1,    -1,   126,   127,   128,   129,   130,   131,    -1,    -1,
-      47,    48,   136,    50,    51,    -1,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
-      67,    -1,    -1,    -1,    71,    72,    -1,    74,    -1,    76,
-      -1,    -1,    79,    -1,    81,    82,    83,    -1,    -1,    86,
-      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   118,    -1,   120,    -1,    -1,   123,    -1,    -1,   126,
-     127,   128,   129,   130,   131,    -1,    -1,    47,    48,   136,
-      50,    51,    -1,    53,    -1,    -1,    56,    57,    58,    59,
-      60,    61,    62,    63,    -1,    -1,    -1,    67,    -1,    -1,
-      -1,    71,    72,    -1,    74,    -1,    76,    -1,    -1,    79,
-      -1,    81,    82,    83,    -1,    -1,    86,    87,    88,    89,
-      90,    91,    92,    93,    -1,    95,    96,    -1,    -1,    -1,
-      -1,    -1,    -1,    47,    48,    -1,    50,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   118,    -1,
-     120,    47,    48,   123,    50,    -1,   126,   127,   128,   129,
-     130,   131,    76,    -1,    -1,    79,   136,    -1,    -1,    83,
-      -1,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
-      76,    95,    96,    79,    -1,    -1,    -1,    83,    -1,    -1,
-      86,    87,    88,    89,    90,    91,    92,    93,    -1,    95,
-      96,    -1,    -1,    -1,   118,    -1,   120,    47,    48,    -1,
-      50,    -1,   126,   127,   128,   129,   130,   131,    -1,    -1,
-      -1,    -1,   118,    -1,   120,    47,    48,    -1,    50,    -1,
-     126,   127,   128,   129,   130,   131,    76,    -1,    -1,    79,
-      -1,    -1,    -1,    83,    -1,    -1,    86,    87,    88,    89,
-      90,    91,    92,    93,    76,    95,    96,    79,    -1,    -1,
-      -1,    83,    -1,    -1,    86,    87,    88,    89,    90,    91,
-      92,    93,    -1,    95,    96,    -1,    -1,    -1,   118,    -1,
-     120,    47,    48,    -1,    50,    -1,   126,   127,   128,   129,
-     130,   131,    -1,    -1,    -1,    -1,   118,    -1,   120,    47,
-      48,    -1,    50,    -1,   126,   127,   128,   129,   130,   131,
-      76,    -1,    -1,    79,    -1,    -1,    -1,    83,    -1,    -1,
-      86,    87,    88,    89,    90,    91,    92,    93,    76,    95,
-      96,    79,    -1,    -1,    -1,    83,    -1,    -1,    86,    87,
-      88,    89,    90,    91,    92,    93,    -1,    95,    96,    -1,
-      -1,    -1,   118,    -1,   120,    -1,    -1,    -1,    -1,    -1,
-     126,   127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,
-     118,    -1,   120,    -1,    -1,    -1,    -1,    -1,   126,   127,
-     128,   129,   130,   131,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    -1,    -1,    36,    37,
-      38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    79,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    92,    93,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    81,    82,    36,    37,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,
-      -1,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    81,    82,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    81,    82,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    81,    82,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    -1,    -1,    -1,
-      49,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
-      41,    -1,    81,    82,    -1,    -1,    -1,    -1,    49,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    -1,    -1,    36,    37,    38,    39,    40,    41,    -1,
-      81,    82,    -1,    -1,    -1,    -1,    49,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    81,    82,
-      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const yytype_uint16 yystos[] =
-{
-       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    36,    37,    38,    39,    40,    41,    42,    46,
-      49,    50,    74,    79,    81,    82,    83,    92,    93,   118,
-     120,   126,   127,   146,   149,   161,   224,   225,   226,   227,
-     228,   229,   230,   231,   232,   233,   234,   236,   238,   240,
-     241,   242,   243,   245,   246,   247,   248,   249,   250,   251,
-     253,   254,   257,   258,   259,   261,   263,   264,   272,   274,
-     300,   301,   302,   310,   313,   319,   320,   322,   324,   325,
-     331,   336,   340,   341,   342,   343,   344,   345,   346,   347,
-     367,   384,   385,   386,   387,    79,   148,   149,   161,   227,
-     229,   238,   241,   250,   254,   258,   301,    88,   118,   329,
-     330,   331,    79,    81,    82,    83,   147,   148,   290,   291,
-     311,   312,    81,    82,   291,   118,   322,   118,   118,   161,
-     336,   341,   342,   343,   345,   346,   347,   121,   143,   230,
-     238,   241,   340,   344,   383,   384,   387,   388,   144,   116,
-     140,   294,   123,   144,   185,    81,    82,   146,   289,   144,
-     144,   144,    81,    82,   118,   161,   235,   326,   335,   336,
-     337,   338,   339,   340,   344,   348,   349,   350,   351,   352,
-     358,     3,    34,    85,   252,     3,     4,    81,   120,   161,
-     229,   242,   246,   248,   259,   302,   340,   344,   387,   227,
-     229,   241,   250,   254,   258,   301,   340,   344,    42,   247,
-     247,   242,   248,   144,   247,   242,   247,   242,   329,   247,
-     242,   125,   144,   144,     0,   143,   118,   185,   329,   329,
-     143,   120,   238,   241,   385,   289,   289,   140,   241,   118,
-     161,   326,   336,   340,   120,   161,   387,   323,   244,   123,
-     291,   331,   118,   307,   118,   118,    88,   150,   151,    47,
-      48,    50,    76,    79,    83,    86,    87,    89,    90,    91,
-      95,    96,   118,   120,   128,   129,   130,   131,   145,   149,
-     150,   152,   153,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   176,   179,
-     238,   292,   293,   309,   383,   388,   241,   119,   119,   119,
-     119,   119,   119,   119,   120,   238,   367,   385,    36,   120,
-     126,   161,   176,   229,   230,   237,   241,   245,   246,   249,
-     250,   255,   256,   257,   258,   260,   263,   264,   274,   279,
-     280,   284,   285,   286,   287,   300,   301,   367,   379,   380,
-     381,   382,   387,   388,   118,   340,   344,   387,   118,   125,
-     141,   120,   123,   161,   176,   295,   295,   124,   143,   125,
-     141,   118,   125,   141,   125,   141,   125,   141,   336,   337,
-     338,   339,   349,   350,   351,   352,   241,   335,   348,   125,
-     144,    74,   328,   120,   329,   366,   367,   329,   329,   185,
-     143,   118,   329,   366,   329,   329,   241,   326,   118,   118,
-     240,   241,   238,   241,   143,   238,   383,   388,   185,   143,
-     289,   294,   229,   246,   340,   344,   185,   143,   311,   241,
-     250,   141,   241,   241,    82,   118,   123,   291,   302,   241,
-     311,   141,   141,   322,   143,   148,   288,     3,   144,   219,
-     220,   234,   236,   241,   245,   143,   328,   118,   328,   176,
-     336,   241,   118,   143,   289,   123,    42,    43,    44,    45,
-     238,   303,   304,   306,   275,   291,   273,   143,   137,   140,
-     308,   143,    12,    79,    81,    82,   332,   333,   334,   119,
-      88,   118,   160,   118,   160,   163,   118,   160,   118,   118,
-     160,   160,   120,   176,   181,   185,   292,   387,   143,    90,
-      94,    95,    96,   118,   120,   122,   123,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   140,   178,
-     163,   163,   126,   132,   133,   128,   129,    97,    98,    99,
-     100,   134,   135,   101,   102,   127,   136,   137,   103,   104,
-     138,   118,   161,   362,   363,   364,   365,   366,   119,   125,
-     118,   366,   367,   118,   366,   367,   143,   238,   385,   329,
-     121,   143,   144,   239,   241,   250,   256,   258,   301,   378,
-     379,   387,   388,   144,   118,   120,   140,   161,   336,   353,
-     354,   355,   356,   357,   358,   359,   360,   361,   367,   368,
-     369,   370,   371,   372,   373,   390,   161,   260,   387,   241,
-     256,   247,   242,   329,   144,   144,   161,   239,   241,   380,
-     289,   239,   367,   380,   289,   143,   143,   143,   143,    79,
-     120,   122,   149,   291,   295,   296,   297,   298,   299,   143,
-     143,   143,   143,   143,   143,   119,   119,   119,   119,   119,
-     119,   119,   335,   348,   329,   141,   118,   294,   121,   219,
-     143,   326,   181,   293,   181,   293,   326,   120,   219,   328,
-     185,   143,   219,   309,   265,   262,   241,   281,   282,   283,
-     286,   287,   119,   125,   185,   143,   241,   126,   176,   143,
-     237,   241,   280,   379,   387,   320,   321,   118,   161,   353,
-     119,   125,   390,   291,   125,   389,   140,   276,   123,   303,
-     118,   123,   291,   293,   303,   119,   125,   118,   141,   292,
-     120,   292,   292,   155,   176,   293,   292,   143,   119,   125,
-     119,   119,   125,   176,   120,   148,   154,   155,   143,   120,
-     148,   154,   176,   163,   163,   163,   164,   164,   165,   165,
-     166,   166,   166,   166,   167,   167,   168,   169,   170,   171,
-     172,   139,   181,   143,   363,   364,   365,   241,   362,   329,
-     329,   176,   293,   143,   143,   291,   239,   367,   380,   241,
-     245,   121,   387,   121,   118,   143,   336,   354,   355,   356,
-     359,   369,   370,   371,   121,   143,   176,   241,   353,   357,
-     368,   118,   329,   372,   390,   329,   329,   390,   118,   329,
-     372,   329,   329,   390,   329,   329,   367,   239,   378,   388,
-     289,   241,   291,   121,   125,   121,   125,   390,   239,   380,
-     390,   277,   278,   279,   280,   277,   289,   176,   143,   120,
-     291,   139,   125,   389,   295,   120,   139,   299,    35,   221,
-     222,   289,   277,   148,   326,   148,   118,   329,   366,   367,
-     118,   329,   366,   367,   326,   150,   367,   185,   281,   119,
-     119,   119,   119,   143,   185,   219,   185,   119,    50,   124,
-     238,   266,   267,   383,   123,   144,   144,   148,   234,   144,
-     144,   277,   118,   161,   387,   144,   124,   241,   304,   305,
-     291,   124,   174,   175,   275,   144,   143,   143,   118,   144,
-     119,   333,   154,   119,   143,   125,   119,   119,   119,   119,
-     176,   123,   163,   176,   177,   180,   125,   143,   119,   125,
-     176,   143,   124,   174,   139,   281,   119,   119,   119,   362,
-     281,   281,   239,   380,   120,   126,   161,   176,   176,   241,
-     359,   281,   119,   119,   119,   119,   119,   119,   119,     5,
-     241,   353,   357,   368,   143,   143,   390,   143,   143,   144,
-     144,   144,   144,   294,   174,   175,   176,   327,   143,   295,
-     297,   124,   143,   223,   291,    50,    51,    53,    56,    57,
-      58,    59,    60,    61,    62,    63,    67,    71,    72,    74,
-      79,    81,    82,    83,   136,   149,   181,   182,   183,   184,
-     185,   186,   187,   189,   190,   202,   204,   205,   210,   224,
-     289,   325,    35,   144,   140,   143,   143,   328,   119,   144,
-     185,   123,   238,   267,   118,   139,   161,   268,   269,   271,
-     335,   336,   348,   366,   374,   375,   376,   377,   125,   141,
-     291,   265,   119,   125,   121,   121,   144,   241,   125,   390,
-     307,   276,   389,   119,   303,   227,   229,   238,   315,   316,
-     317,   318,   309,   119,   119,   148,   296,   125,   144,   180,
-      86,    89,    91,   148,   156,   157,   158,   155,   144,   156,
-     174,   144,   118,   329,   366,   367,   144,   144,   143,   144,
-     144,   144,   176,   119,   144,   118,   329,   366,   367,   118,
-     329,   372,   118,   329,   372,   367,   240,     5,   126,   144,
-     176,   281,   281,   280,   284,   284,   285,   119,   125,   125,
-     119,   105,   131,   144,   144,   156,   295,   176,   125,   141,
-     224,   325,   118,   118,   183,   118,   118,   141,   289,   141,
-     289,   126,   289,   182,   118,   185,   177,   177,    13,   211,
-     153,   141,   144,   143,   144,   139,   223,   119,   176,   281,
-     281,   294,   329,   119,   265,   268,   141,   336,   375,   376,
-     377,   175,   241,   374,   125,   141,   270,   271,   270,   329,
-     329,   291,   124,   143,   119,   143,   124,   144,   326,   124,
-     143,   144,   144,   119,   123,   119,   389,   177,   121,   144,
-     159,   120,   157,   159,   159,   125,   144,    94,   122,   121,
-     144,   119,   143,   119,   119,   121,   121,   121,   144,   119,
-     143,   143,   143,   176,   176,   144,   121,   144,   144,   144,
-     144,   143,   143,   175,   175,   121,   121,   144,   291,   181,
-     181,    57,   181,   143,   141,   141,   181,   141,   141,   181,
-      68,    69,    70,   206,   207,   208,   141,    73,   141,    61,
-     118,   123,   187,   124,   329,   141,   144,   144,   124,   141,
-     119,   119,   119,   374,   329,   105,   286,   287,   119,   316,
-     125,   141,   125,   141,   124,   314,   124,   121,    90,   143,
-     157,   121,   120,   157,   120,   157,   121,   281,   121,   281,
-     281,   281,   144,   144,   121,   121,   119,   119,   121,   125,
-     105,   280,   105,   144,   121,   119,   119,   118,   119,   182,
-     203,   224,   228,   241,   245,   141,   119,   118,   118,   185,
-     208,    68,    69,   176,   118,   150,   154,   183,   119,   119,
-     118,   329,   366,   367,   269,   123,   143,   143,   315,   156,
-     143,   143,   144,   144,   144,   144,   121,   121,   143,   144,
-     121,   183,    54,    55,   123,   193,   194,   195,   181,   183,
-     144,   119,   182,   241,   123,   195,   105,   143,   105,   143,
-     118,   118,   141,   150,   119,   139,   124,   143,   143,   289,
-     326,   124,   144,   156,   156,   119,   119,   119,   119,   284,
-      52,   175,   191,   192,   327,   139,   143,   183,   193,   119,
-     141,   183,   141,   143,   119,   143,   119,   143,   105,   143,
-     105,   143,   139,   141,   120,   150,   212,   213,   214,   141,
-     281,   315,   121,   144,   144,   183,   105,   125,   139,   144,
-     217,   218,   224,   141,   182,   182,   217,   185,   209,   239,
-     241,   383,   185,   209,   119,   143,   119,   143,   139,   175,
-     118,   119,   139,   125,   144,   124,   121,   121,   175,   191,
-     194,   196,   197,   143,   141,   194,   198,   199,   144,   118,
-     161,   326,   374,   148,   144,   185,   209,   185,   209,   212,
-     121,   175,   141,   212,   214,   119,   118,   183,   188,   124,
-     194,   224,   182,    66,   188,   201,   124,   194,   119,   241,
-     119,   144,   144,   139,   150,   119,   119,   139,   309,   183,
-     188,   141,   200,   201,   188,   201,   185,   185,   119,   119,
-     150,   215,   118,   141,   215,   119,   200,   144,   144,   185,
-     185,   125,   139,   175,   119,   144,   144,   150,   148,   216,
-     119,   141,   119,   125,   141,   148
-};
-
-#define yyerrok		(yyerrstatus = 0)
-#define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		(-2)
-#define YYEOF		0
-
-#define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
-#define YYERROR		goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror.  This remains here temporarily
-   to ease the transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  However,
-   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
-   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
-   discussed.  */
-
-#define YYFAIL		goto yyerrlab
-#if defined YYFAIL
-  /* This is here to suppress warnings from the GCC cpp's
-     -Wunused-macros.  Normally we don't worry about that warning, but
-     some users do, and we want to make it easy for users to remove
-     YYFAIL uses, which will produce warnings from Bison 2.5.  */
-#endif
-
-#define YYRECOVERING()  (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value)					\
-do								\
-  if (yychar == YYEMPTY && yylen == 1)				\
-    {								\
-      yychar = (Token);						\
-      yylval = (Value);						\
-      YYPOPSTACK (1);						\
-      goto yybackup;						\
-    }								\
-  else								\
-    {								\
-      yyerror (YY_("syntax error: cannot back up")); \
-      YYERROR;							\
-    }								\
-while (YYID (0))
-
-
-#define YYTERROR	1
-#define YYERRCODE	256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-   If N is 0, then set CURRENT to the empty location which ends
-   the previous symbol: RHS[0] (always defined).  */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)				\
-    do									\
-      if (YYID (N))                                                    \
-	{								\
-	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
-	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
-	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
-	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
-	}								\
-      else								\
-	{								\
-	  (Current).first_line   = (Current).last_line   =		\
-	    YYRHSLOC (Rhs, 0).last_line;				\
-	  (Current).first_column = (Current).last_column =		\
-	    YYRHSLOC (Rhs, 0).last_column;				\
-	}								\
-    while (YYID (0))
-#endif
-
-
-/* This macro is provided for backward compatibility. */
-
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-/* YYLEX -- calling `yylex' with the right arguments.  */
-
-#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
-#else
-# define YYLEX yylex ()
-#endif
-
-/* Enable debugging if requested.  */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#  define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args)			\
-do {						\
-  if (yydebug)					\
-    YYFPRINTF Args;				\
-} while (YYID (0))
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
-do {									  \
-  if (yydebug)								  \
-    {									  \
-      YYFPRINTF (stderr, "%s ", Title);					  \
-      yy_symbol_print (stderr,						  \
-		  Type, Value); \
-      YYFPRINTF (stderr, "\n");						  \
-    }									  \
-} while (YYID (0))
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-#endif
-{
-  if (!yyvaluep)
-    return;
-# ifdef YYPRINT
-  if (yytype < YYNTOKENS)
-    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# else
-  YYUSE (yyoutput);
-# endif
-  switch (yytype)
-    {
-      default:
-	break;
-    }
-}
-
-
-/*--------------------------------.
-| Print this symbol on YYOUTPUT.  |
-`--------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-#else
-static void
-yy_symbol_print (yyoutput, yytype, yyvaluep)
-    FILE *yyoutput;
-    int yytype;
-    YYSTYPE const * const yyvaluep;
-#endif
-{
-  if (yytype < YYNTOKENS)
-    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-  else
-    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-  YYFPRINTF (yyoutput, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included).                                                   |
-`------------------------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
-#else
-static void
-yy_stack_print (yybottom, yytop)
-    yytype_int16 *yybottom;
-    yytype_int16 *yytop;
-#endif
-{
-  YYFPRINTF (stderr, "Stack now");
-  for (; yybottom <= yytop; yybottom++)
-    {
-      int yybot = *yybottom;
-      YYFPRINTF (stderr, " %d", yybot);
-    }
-  YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top)				\
-do {								\
-  if (yydebug)							\
-    yy_stack_print ((Bottom), (Top));				\
-} while (YYID (0))
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced.  |
-`------------------------------------------------*/
-
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
-#else
-static void
-yy_reduce_print (yyvsp, yyrule)
-    YYSTYPE *yyvsp;
-    int yyrule;
-#endif
-{
-  int yynrhs = yyr2[yyrule];
-  int yyi;
-  unsigned long int yylno = yyrline[yyrule];
-  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-	     yyrule - 1, yylno);
-  /* The symbols being reduced.  */
-  for (yyi = 0; yyi < yynrhs; yyi++)
-    {
-      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
-      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-		       &(yyvsp[(yyi + 1) - (yynrhs)])
-		       		       );
-      YYFPRINTF (stderr, "\n");
-    }
-}
-
-# define YY_REDUCE_PRINT(Rule)		\
-do {					\
-  if (yydebug)				\
-    yy_reduce_print (yyvsp, Rule); \
-} while (YYID (0))
-
-/* Nonzero means print parse trace.  It is left uninitialized so that
-   multiple parsers can coexist.  */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks.  */
-#ifndef	YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).
-
-   Do not make this value too large; the results are undefined if
-   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
-   evaluated with infinite-precision integer arithmetic.  */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-#  if defined __GLIBC__ && defined _STRING_H
-#   define yystrlen strlen
-#  else
-/* Return the length of YYSTR.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static YYSIZE_T
-yystrlen (const char *yystr)
-#else
-static YYSIZE_T
-yystrlen (yystr)
-    const char *yystr;
-#endif
-{
-  YYSIZE_T yylen;
-  for (yylen = 0; yystr[yylen]; yylen++)
-    continue;
-  return yylen;
-}
-#  endif
-# endif
-
-# ifndef yystpcpy
-#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-#   define yystpcpy stpcpy
-#  else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
-   YYDEST.  */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-#else
-static char *
-yystpcpy (yydest, yysrc)
-    char *yydest;
-    const char *yysrc;
-#endif
-{
-  char *yyd = yydest;
-  const char *yys = yysrc;
-
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-   quotes and backslashes, so that it's suitable for yyerror.  The
-   heuristic is that double-quoting is unnecessary unless the string
-   contains an apostrophe, a comma, or backslash (other than
-   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
-   null, do not copy; instead, return the length of what the result
-   would have been.  */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
-  if (*yystr == '"')
-    {
-      YYSIZE_T yyn = 0;
-      char const *yyp = yystr;
-
-      for (;;)
-	switch (*++yyp)
-	  {
-	  case '\'':
-	  case ',':
-	    goto do_not_strip_quotes;
-
-	  case '\\':
-	    if (*++yyp != '\\')
-	      goto do_not_strip_quotes;
-	    /* Fall through.  */
-	  default:
-	    if (yyres)
-	      yyres[yyn] = *yyp;
-	    yyn++;
-	    break;
-
-	  case '"':
-	    if (yyres)
-	      yyres[yyn] = '\0';
-	    return yyn;
-	  }
-    do_not_strip_quotes: ;
-    }
-
-  if (! yyres)
-    return yystrlen (yystr);
-
-  return yystpcpy (yyres, yystr) - yyres;
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
-   about the unexpected token YYTOKEN for the state stack whose top is
-   YYSSP.
-
-   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
-   not large enough to hold the message.  In that case, also set
-   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
-   required number of bytes is too large to store.  */
-static int
-yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
-                yytype_int16 *yyssp, int yytoken)
-{
-  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
-  YYSIZE_T yysize = yysize0;
-  YYSIZE_T yysize1;
-  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-  /* Internationalized format string. */
-  const char *yyformat = 0;
-  /* Arguments of yyformat. */
-  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-  /* Number of reported tokens (one for the "unexpected", one per
-     "expected"). */
-  int yycount = 0;
-
-  /* There are many possibilities here to consider:
-     - Assume YYFAIL is not used.  It's too flawed to consider.  See
-       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
-       for details.  YYERROR is fine as it does not invoke this
-       function.
-     - If this state is a consistent state with a default action, then
-       the only way this function was invoked is if the default action
-       is an error action.  In that case, don't check for expected
-       tokens because there are none.
-     - The only way there can be no lookahead present (in yychar) is if
-       this state is a consistent state with a default action.  Thus,
-       detecting the absence of a lookahead is sufficient to determine
-       that there is no unexpected or expected token to report.  In that
-       case, just report a simple "syntax error".
-     - Don't assume there isn't a lookahead just because this state is a
-       consistent state with a default action.  There might have been a
-       previous inconsistent state, consistent state with a non-default
-       action, or user semantic action that manipulated yychar.
-     - Of course, the expected token list depends on states to have
-       correct lookahead information, and it depends on the parser not
-       to perform extra reductions after fetching a lookahead from the
-       scanner and before detecting a syntax error.  Thus, state merging
-       (from LALR or IELR) and default reductions corrupt the expected
-       token list.  However, the list is correct for canonical LR with
-       one exception: it will still contain any token that will not be
-       accepted due to an error action in a later state.
-  */
-  if (yytoken != YYEMPTY)
-    {
-      int yyn = yypact[*yyssp];
-      yyarg[yycount++] = yytname[yytoken];
-      if (!yypact_value_is_default (yyn))
-        {
-          /* Start YYX at -YYN if negative to avoid negative indexes in
-             YYCHECK.  In other words, skip the first -YYN actions for
-             this state because they are default actions.  */
-          int yyxbegin = yyn < 0 ? -yyn : 0;
-          /* Stay within bounds of both yycheck and yytname.  */
-          int yychecklim = YYLAST - yyn + 1;
-          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-          int yyx;
-
-          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
-                && !yytable_value_is_error (yytable[yyx + yyn]))
-              {
-                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-                  {
-                    yycount = 1;
-                    yysize = yysize0;
-                    break;
-                  }
-                yyarg[yycount++] = yytname[yyx];
-                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-                if (! (yysize <= yysize1
-                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                  return 2;
-                yysize = yysize1;
-              }
-        }
-    }
-
-  switch (yycount)
-    {
-# define YYCASE_(N, S)                      \
-      case N:                               \
-        yyformat = S;                       \
-      break
-      YYCASE_(0, YY_("syntax error"));
-      YYCASE_(1, YY_("syntax error, unexpected %s"));
-      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
-      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
-      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
-      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
-    }
-
-  yysize1 = yysize + yystrlen (yyformat);
-  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-    return 2;
-  yysize = yysize1;
-
-  if (*yymsg_alloc < yysize)
-    {
-      *yymsg_alloc = 2 * yysize;
-      if (! (yysize <= *yymsg_alloc
-             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
-        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
-      return 1;
-    }
-
-  /* Avoid sprintf, as that infringes on the user's name space.
-     Don't have undefined behavior even if the translation
-     produced a string with the wrong number of "%s"s.  */
-  {
-    char *yyp = *yymsg;
-    int yyi = 0;
-    while ((*yyp = *yyformat) != '\0')
-      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
-        {
-          yyp += yytnamerr (yyp, yyarg[yyi++]);
-          yyformat += 2;
-        }
-      else
-        {
-          yyp++;
-          yyformat++;
-        }
-  }
-  return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-/*ARGSUSED*/
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
-    const char *yymsg;
-    int yytype;
-    YYSTYPE *yyvaluep;
-#endif
-{
-  YYUSE (yyvaluep);
-
-  if (!yymsg)
-    yymsg = "Deleting";
-  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
-  switch (yytype)
-    {
-
-      default:
-	break;
-    }
-}
-
-
-/* Prevent warnings from -Wmissing-prototypes.  */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-/* The lookahead symbol.  */
-int yychar;
-
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-
-/*----------.
-| yyparse.  |
-`----------*/
-
-#ifdef YYPARSE_PARAM
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void *YYPARSE_PARAM)
-#else
-int
-yyparse (YYPARSE_PARAM)
-    void *YYPARSE_PARAM;
-#endif
-#else /* ! YYPARSE_PARAM */
-#if (defined __STDC__ || defined __C99__FUNC__ \
-     || defined __cplusplus || defined _MSC_VER)
-int
-yyparse (void)
-#else
-int
-yyparse ()
-
-#endif
-#endif
-{
-    int yystate;
-    /* Number of tokens to shift before error messages enabled.  */
-    int yyerrstatus;
-
-    /* The stacks and their tools:
-       `yyss': related to states.
-       `yyvs': related to semantic values.
-
-       Refer to the stacks thru separate pointers, to allow yyoverflow
-       to reallocate them elsewhere.  */
-
-    /* The state stack.  */
-    yytype_int16 yyssa[YYINITDEPTH];
-    yytype_int16 *yyss;
-    yytype_int16 *yyssp;
-
-    /* The semantic value stack.  */
-    YYSTYPE yyvsa[YYINITDEPTH];
-    YYSTYPE *yyvs;
-    YYSTYPE *yyvsp;
-
-    YYSIZE_T yystacksize;
-
-  int yyn;
-  int yyresult;
-  /* Lookahead token as an internal (translated) token number.  */
-  int yytoken;
-  /* The variables used to return semantic value and location from the
-     action routines.  */
-  YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  /* The number of symbols on the RHS of the reduced rule.
-     Keep to zero when no symbol should be popped.  */
-  int yylen = 0;
-
-  yytoken = 0;
-  yyss = yyssa;
-  yyvs = yyvsa;
-  yystacksize = YYINITDEPTH;
-
-  YYDPRINTF ((stderr, "Starting parse\n"));
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY; /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-  yyssp = yyss;
-  yyvsp = yyvs;
-
-  goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate.  |
-`------------------------------------------------------------*/
- yynewstate:
-  /* In all cases, when you get here, the value and location stacks
-     have just been pushed.  So pushing a state here evens the stacks.  */
-  yyssp++;
-
- yysetstate:
-  *yyssp = yystate;
-
-  if (yyss + yystacksize - 1 <= yyssp)
-    {
-      /* Get the current used size of the three stacks, in elements.  */
-      YYSIZE_T yysize = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      {
-	/* Give user a chance to reallocate the stack.  Use copies of
-	   these so that the &'s don't force the real ones into
-	   memory.  */
-	YYSTYPE *yyvs1 = yyvs;
-	yytype_int16 *yyss1 = yyss;
-
-	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
-	yyoverflow (YY_("memory exhausted"),
-		    &yyss1, yysize * sizeof (*yyssp),
-		    &yyvs1, yysize * sizeof (*yyvsp),
-		    &yystacksize);
-
-	yyss = yyss1;
-	yyvs = yyvs1;
-      }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
-      goto yyexhaustedlab;
-# else
-      /* Extend the stack our own way.  */
-      if (YYMAXDEPTH <= yystacksize)
-	goto yyexhaustedlab;
-      yystacksize *= 2;
-      if (YYMAXDEPTH < yystacksize)
-	yystacksize = YYMAXDEPTH;
-
-      {
-	yytype_int16 *yyss1 = yyss;
-	union yyalloc *yyptr =
-	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
-	if (! yyptr)
-	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss_alloc, yyss);
-	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-#  undef YYSTACK_RELOCATE
-	if (yyss1 != yyssa)
-	  YYSTACK_FREE (yyss1);
-      }
-# endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + yysize - 1;
-      yyvsp = yyvs + yysize - 1;
-
-      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
-		  (unsigned long int) yystacksize));
-
-      if (yyss + yystacksize - 1 <= yyssp)
-	YYABORT;
-    }
-
-  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
-
-  if (yystate == YYFINAL)
-    YYACCEPT;
-
-  goto yybackup;
-
-/*-----------.
-| yybackup.  |
-`-----------*/
-yybackup:
-
-  /* Do appropriate processing given the current state.  Read a
-     lookahead token if we need one and don't already have one.  */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-  yyn = yypact[yystate];
-  if (yypact_value_is_default (yyn))
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
-  if (yychar == YYEMPTY)
-    {
-      YYDPRINTF ((stderr, "Reading a token: "));
-      yychar = YYLEX;
-    }
-
-  if (yychar <= YYEOF)
-    {
-      yychar = yytoken = YYEOF;
-      YYDPRINTF ((stderr, "Now at end of input.\n"));
-    }
-  else
-    {
-      yytoken = YYTRANSLATE (yychar);
-      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
-    }
-
-  /* If the proper action on seeing token YYTOKEN is to reduce or to
-     detect an error, take that action.  */
-  yyn += yytoken;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
-    goto yydefault;
-  yyn = yytable[yyn];
-  if (yyn <= 0)
-    {
-      if (yytable_value_is_error (yyn))
-        goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-
-  /* Count tokens shifted since error; after three, turn off error
-     status.  */
-  if (yyerrstatus)
-    yyerrstatus--;
-
-  /* Shift the lookahead token.  */
-  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
-  /* Discard the shifted token.  */
-  yychar = YYEMPTY;
-
-  yystate = yyn;
-  *++yyvsp = yylval;
-
-  goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state.  |
-`-----------------------------------------------------------*/
-yydefault:
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-  goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- Do a reduction.  |
-`-----------------------------*/
-yyreduce:
-  /* yyn is the number of a rule to reduce with.  */
-  yylen = yyr2[yyn];
-
-  /* If YYLEN is nonzero, implement the default value of the action:
-     `$$ = $1'.
-
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
-     users should not rely upon it.  Assigning to YYVAL
-     unconditionally makes the parser a bit smaller, and it avoids a
-     GCC warning that YYVAL may be used uninitialized.  */
-  yyval = yyvsp[1-yylen];
-
-
-  YY_REDUCE_PRINT (yyn);
-  switch (yyn)
-    {
-        case 2:
-
-/* Line 1806 of yacc.c  */
-#line 330 "parser.yy"
-    { typedefTable.enterScope(); }
-    break;
-
-  case 3:
-
-/* Line 1806 of yacc.c  */
-#line 334 "parser.yy"
-    { typedefTable.leaveScope(); }
-    break;
-
-  case 4:
-
-/* Line 1806 of yacc.c  */
-#line 341 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 5:
-
-/* Line 1806 of yacc.c  */
-#line 342 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 6:
-
-/* Line 1806 of yacc.c  */
-#line 343 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 7:
-
-/* Line 1806 of yacc.c  */
-#line 344 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 8:
-
-/* Line 1806 of yacc.c  */
-#line 345 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 18:
-
-/* Line 1806 of yacc.c  */
-#line 370 "parser.yy"
-    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
-    break;
-
-  case 19:
-
-/* Line 1806 of yacc.c  */
-#line 374 "parser.yy"
-    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
-    break;
-
-  case 20:
-
-/* Line 1806 of yacc.c  */
-#line 376 "parser.yy"
-    {
-			appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );						// append 2nd juxtaposed string to 1st
-			delete (yyvsp[(2) - (2)].tok);									// allocated by lexer
-			(yyval.str) = (yyvsp[(1) - (2)].str);									// conversion from tok to str
-		}
-    break;
-
-  case 21:
-
-/* Line 1806 of yacc.c  */
-#line 387 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 22:
-
-/* Line 1806 of yacc.c  */
-#line 389 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); }
-    break;
-
-  case 24:
-
-/* Line 1806 of yacc.c  */
-#line 392 "parser.yy"
-    { (yyval.en) = (yyvsp[(2) - (3)].en); }
-    break;
-
-  case 25:
-
-/* Line 1806 of yacc.c  */
-#line 394 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
-    break;
-
-  case 27:
-
-/* Line 1806 of yacc.c  */
-#line 404 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
-    break;
-
-  case 28:
-
-/* Line 1806 of yacc.c  */
-#line 406 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
-    break;
-
-  case 29:
-
-/* Line 1806 of yacc.c  */
-#line 408 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
-    break;
-
-  case 30:
-
-/* Line 1806 of yacc.c  */
-#line 410 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
-    break;
-
-  case 31:
-
-/* Line 1806 of yacc.c  */
-#line 412 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); }
-    break;
-
-  case 32:
-
-/* Line 1806 of yacc.c  */
-#line 414 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
-    break;
-
-  case 33:
-
-/* Line 1806 of yacc.c  */
-#line 416 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
-    break;
-
-  case 34:
-
-/* Line 1806 of yacc.c  */
-#line 418 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
-    break;
-
-  case 35:
-
-/* Line 1806 of yacc.c  */
-#line 420 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
-    break;
-
-  case 36:
-
-/* Line 1806 of yacc.c  */
-#line 422 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
-    break;
-
-  case 37:
-
-/* Line 1806 of yacc.c  */
-#line 424 "parser.yy"
-    {
-			Token fn;
-			fn.str = new std::string( "?{}" );			// location undefined - use location of '{'?
-			(yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) );
-		}
-    break;
-
-  case 39:
-
-/* Line 1806 of yacc.c  */
-#line 434 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
-    break;
-
-  case 40:
-
-/* Line 1806 of yacc.c  */
-#line 439 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 43:
-
-/* Line 1806 of yacc.c  */
-#line 445 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
-    break;
-
-  case 45:
-
-/* Line 1806 of yacc.c  */
-#line 451 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }
-    break;
-
-  case 46:
-
-/* Line 1806 of yacc.c  */
-#line 453 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }
-    break;
-
-  case 47:
-
-/* Line 1806 of yacc.c  */
-#line 455 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
-    break;
-
-  case 48:
-
-/* Line 1806 of yacc.c  */
-#line 457 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
-    break;
-
-  case 49:
-
-/* Line 1806 of yacc.c  */
-#line 459 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
-    break;
-
-  case 50:
-
-/* Line 1806 of yacc.c  */
-#line 461 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
-    break;
-
-  case 51:
-
-/* Line 1806 of yacc.c  */
-#line 466 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 52:
-
-/* Line 1806 of yacc.c  */
-#line 468 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 53:
-
-/* Line 1806 of yacc.c  */
-#line 470 "parser.yy"
-    {
-			if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) {
-				(yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) );
-			} else {
-				(yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) );
-			}
-		}
-    break;
-
-  case 54:
-
-/* Line 1806 of yacc.c  */
-#line 481 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 55:
-
-/* Line 1806 of yacc.c  */
-#line 483 "parser.yy"
-    {
-			Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) );
-			(yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en),  constant ) ) : new ExpressionNode( constant );
-		}
-    break;
-
-  case 57:
-
-/* Line 1806 of yacc.c  */
-#line 494 "parser.yy"
-    { (yyval.en) = (yyvsp[(1) - (1)].en); }
-    break;
-
-  case 58:
-
-/* Line 1806 of yacc.c  */
-#line 496 "parser.yy"
-    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
-    break;
-
-  case 59:
-
-/* Line 1806 of yacc.c  */
-#line 498 "parser.yy"
-    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
-    break;
-
-  case 60:
-
-/* Line 1806 of yacc.c  */
-#line 503 "parser.yy"
-    {
-			switch ( (yyvsp[(1) - (2)].op) ) {
-			  case OperKinds::AddressOf:
-				(yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) );
-				break;
-			  case OperKinds::PointTo:
-				(yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) );
-				break;
-			  default:
-				assert( false );
-			}
-		}
-    break;
-
-  case 61:
-
-/* Line 1806 of yacc.c  */
-#line 516 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 62:
-
-/* Line 1806 of yacc.c  */
-#line 518 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 63:
-
-/* Line 1806 of yacc.c  */
-#line 520 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 64:
-
-/* Line 1806 of yacc.c  */
-#line 522 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 65:
-
-/* Line 1806 of yacc.c  */
-#line 524 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
-    break;
-
-  case 66:
-
-/* Line 1806 of yacc.c  */
-#line 526 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 67:
-
-/* Line 1806 of yacc.c  */
-#line 528 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
-    break;
-
-  case 68:
-
-/* Line 1806 of yacc.c  */
-#line 530 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
-    break;
-
-  case 69:
-
-/* Line 1806 of yacc.c  */
-#line 532 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
-    break;
-
-  case 70:
-
-/* Line 1806 of yacc.c  */
-#line 534 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
-    break;
-
-  case 71:
-
-/* Line 1806 of yacc.c  */
-#line 536 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
-    break;
-
-  case 72:
-
-/* Line 1806 of yacc.c  */
-#line 542 "parser.yy"
-    { (yyval.op) = OperKinds::PointTo; }
-    break;
-
-  case 73:
-
-/* Line 1806 of yacc.c  */
-#line 543 "parser.yy"
-    { (yyval.op) = OperKinds::AddressOf; }
-    break;
-
-  case 74:
-
-/* Line 1806 of yacc.c  */
-#line 549 "parser.yy"
-    { (yyval.op) = OperKinds::UnPlus; }
-    break;
-
-  case 75:
-
-/* Line 1806 of yacc.c  */
-#line 550 "parser.yy"
-    { (yyval.op) = OperKinds::UnMinus; }
-    break;
-
-  case 76:
-
-/* Line 1806 of yacc.c  */
-#line 551 "parser.yy"
-    { (yyval.op) = OperKinds::Neg; }
-    break;
-
-  case 77:
-
-/* Line 1806 of yacc.c  */
-#line 552 "parser.yy"
-    { (yyval.op) = OperKinds::BitNeg; }
-    break;
-
-  case 79:
-
-/* Line 1806 of yacc.c  */
-#line 558 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
-    break;
-
-  case 81:
-
-/* Line 1806 of yacc.c  */
-#line 566 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 82:
-
-/* Line 1806 of yacc.c  */
-#line 568 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 83:
-
-/* Line 1806 of yacc.c  */
-#line 570 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 85:
-
-/* Line 1806 of yacc.c  */
-#line 576 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 86:
-
-/* Line 1806 of yacc.c  */
-#line 578 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 88:
-
-/* Line 1806 of yacc.c  */
-#line 584 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 89:
-
-/* Line 1806 of yacc.c  */
-#line 586 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 91:
-
-/* Line 1806 of yacc.c  */
-#line 592 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 92:
-
-/* Line 1806 of yacc.c  */
-#line 594 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 93:
-
-/* Line 1806 of yacc.c  */
-#line 596 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 94:
-
-/* Line 1806 of yacc.c  */
-#line 598 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 96:
-
-/* Line 1806 of yacc.c  */
-#line 604 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 97:
-
-/* Line 1806 of yacc.c  */
-#line 606 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 99:
-
-/* Line 1806 of yacc.c  */
-#line 612 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 101:
-
-/* Line 1806 of yacc.c  */
-#line 618 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 103:
-
-/* Line 1806 of yacc.c  */
-#line 624 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 105:
-
-/* Line 1806 of yacc.c  */
-#line 630 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
-    break;
-
-  case 107:
-
-/* Line 1806 of yacc.c  */
-#line 636 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
-    break;
-
-  case 109:
-
-/* Line 1806 of yacc.c  */
-#line 642 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
-    break;
-
-  case 110:
-
-/* Line 1806 of yacc.c  */
-#line 645 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
-    break;
-
-  case 113:
-
-/* Line 1806 of yacc.c  */
-#line 658 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 114:
-
-/* Line 1806 of yacc.c  */
-#line 665 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 116:
-
-/* Line 1806 of yacc.c  */
-#line 670 "parser.yy"
-    { (yyval.op) = OperKinds::Assign; }
-    break;
-
-  case 117:
-
-/* Line 1806 of yacc.c  */
-#line 671 "parser.yy"
-    { (yyval.op) = OperKinds::AtAssn; }
-    break;
-
-  case 118:
-
-/* Line 1806 of yacc.c  */
-#line 672 "parser.yy"
-    { (yyval.op) = OperKinds::MulAssn; }
-    break;
-
-  case 119:
-
-/* Line 1806 of yacc.c  */
-#line 673 "parser.yy"
-    { (yyval.op) = OperKinds::DivAssn; }
-    break;
-
-  case 120:
-
-/* Line 1806 of yacc.c  */
-#line 674 "parser.yy"
-    { (yyval.op) = OperKinds::ModAssn; }
-    break;
-
-  case 121:
-
-/* Line 1806 of yacc.c  */
-#line 675 "parser.yy"
-    { (yyval.op) = OperKinds::PlusAssn; }
-    break;
-
-  case 122:
-
-/* Line 1806 of yacc.c  */
-#line 676 "parser.yy"
-    { (yyval.op) = OperKinds::MinusAssn; }
-    break;
-
-  case 123:
-
-/* Line 1806 of yacc.c  */
-#line 677 "parser.yy"
-    { (yyval.op) = OperKinds::LSAssn; }
-    break;
-
-  case 124:
-
-/* Line 1806 of yacc.c  */
-#line 678 "parser.yy"
-    { (yyval.op) = OperKinds::RSAssn; }
-    break;
-
-  case 125:
-
-/* Line 1806 of yacc.c  */
-#line 679 "parser.yy"
-    { (yyval.op) = OperKinds::AndAssn; }
-    break;
-
-  case 126:
-
-/* Line 1806 of yacc.c  */
-#line 680 "parser.yy"
-    { (yyval.op) = OperKinds::ERAssn; }
-    break;
-
-  case 127:
-
-/* Line 1806 of yacc.c  */
-#line 681 "parser.yy"
-    { (yyval.op) = OperKinds::OrAssn; }
-    break;
-
-  case 128:
-
-/* Line 1806 of yacc.c  */
-#line 692 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
-    break;
-
-  case 129:
-
-/* Line 1806 of yacc.c  */
-#line 694 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
-    break;
-
-  case 131:
-
-/* Line 1806 of yacc.c  */
-#line 700 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
-    break;
-
-  case 133:
-
-/* Line 1806 of yacc.c  */
-#line 706 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 134:
-
-/* Line 1806 of yacc.c  */
-#line 711 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 138:
-
-/* Line 1806 of yacc.c  */
-#line 720 "parser.yy"
-    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
-    break;
-
-  case 144:
-
-/* Line 1806 of yacc.c  */
-#line 727 "parser.yy"
-    {
-			Token fn;
-			fn.str = new string( "^?{}" );				// location undefined
-			(yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );
-		}
-    break;
-
-  case 145:
-
-/* Line 1806 of yacc.c  */
-#line 737 "parser.yy"
-    {
-			(yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) );
-		}
-    break;
-
-  case 146:
-
-/* Line 1806 of yacc.c  */
-#line 744 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
-    break;
-
-  case 147:
-
-/* Line 1806 of yacc.c  */
-#line 752 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
-    break;
-
-  case 149:
-
-/* Line 1806 of yacc.c  */
-#line 758 "parser.yy"
-    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
-    break;
-
-  case 150:
-
-/* Line 1806 of yacc.c  */
-#line 763 "parser.yy"
-    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
-    break;
-
-  case 151:
-
-/* Line 1806 of yacc.c  */
-#line 765 "parser.yy"
-    {
-			distExt( (yyvsp[(2) - (2)].decl) );
-			(yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
-		}
-    break;
-
-  case 152:
-
-/* Line 1806 of yacc.c  */
-#line 770 "parser.yy"
-    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
-    break;
-
-  case 153:
-
-/* Line 1806 of yacc.c  */
-#line 772 "parser.yy"
-    {
-			distExt( (yyvsp[(2) - (2)].decl) );
-			(yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
-		}
-    break;
-
-  case 156:
-
-/* Line 1806 of yacc.c  */
-#line 782 "parser.yy"
-    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
-    break;
-
-  case 157:
-
-/* Line 1806 of yacc.c  */
-#line 787 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
-    break;
-
-  case 158:
-
-/* Line 1806 of yacc.c  */
-#line 793 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
-    break;
-
-  case 159:
-
-/* Line 1806 of yacc.c  */
-#line 795 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
-    break;
-
-  case 160:
-
-/* Line 1806 of yacc.c  */
-#line 797 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
-    break;
-
-  case 161:
-
-/* Line 1806 of yacc.c  */
-#line 799 "parser.yy"
-    {
-			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
-			// The semantics of the declaration list is changed to include associated initialization, which is performed
-			// *before* the transfer to the appropriate case clause by hoisting the declarations into a compound
-			// statement around the switch.  Statements after the initial declaration list can never be executed, and
-			// therefore, are removed from the grammar even though C allows it. The change also applies to choose
-			// statement.
-			(yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
-		}
-    break;
-
-  case 162:
-
-/* Line 1806 of yacc.c  */
-#line 809 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
-    break;
-
-  case 163:
-
-/* Line 1806 of yacc.c  */
-#line 811 "parser.yy"
-    {
-			StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
-			(yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;
-		}
-    break;
-
-  case 164:
-
-/* Line 1806 of yacc.c  */
-#line 821 "parser.yy"
-    { (yyval.en) = (yyvsp[(1) - (1)].en); }
-    break;
-
-  case 165:
-
-/* Line 1806 of yacc.c  */
-#line 823 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 167:
-
-/* Line 1806 of yacc.c  */
-#line 828 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
-    break;
-
-  case 168:
-
-/* Line 1806 of yacc.c  */
-#line 830 "parser.yy"
-    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
-    break;
-
-  case 169:
-
-/* Line 1806 of yacc.c  */
-#line 834 "parser.yy"
-    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
-    break;
-
-  case 170:
-
-/* Line 1806 of yacc.c  */
-#line 835 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_default() ); }
-    break;
-
-  case 172:
-
-/* Line 1806 of yacc.c  */
-#line 841 "parser.yy"
-    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
-    break;
-
-  case 173:
-
-/* Line 1806 of yacc.c  */
-#line 845 "parser.yy"
-    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
-    break;
-
-  case 174:
-
-/* Line 1806 of yacc.c  */
-#line 850 "parser.yy"
-    { (yyval.sn) = nullptr; }
-    break;
-
-  case 176:
-
-/* Line 1806 of yacc.c  */
-#line 856 "parser.yy"
-    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
-    break;
-
-  case 177:
-
-/* Line 1806 of yacc.c  */
-#line 858 "parser.yy"
-    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
-    break;
-
-  case 178:
-
-/* Line 1806 of yacc.c  */
-#line 863 "parser.yy"
-    { (yyval.sn) = nullptr; }
-    break;
-
-  case 180:
-
-/* Line 1806 of yacc.c  */
-#line 869 "parser.yy"
-    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
-    break;
-
-  case 181:
-
-/* Line 1806 of yacc.c  */
-#line 871 "parser.yy"
-    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
-    break;
-
-  case 182:
-
-/* Line 1806 of yacc.c  */
-#line 873 "parser.yy"
-    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
-    break;
-
-  case 183:
-
-/* Line 1806 of yacc.c  */
-#line 875 "parser.yy"
-    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
-    break;
-
-  case 184:
-
-/* Line 1806 of yacc.c  */
-#line 880 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
-    break;
-
-  case 186:
-
-/* Line 1806 of yacc.c  */
-#line 886 "parser.yy"
-    { (yyval.sn) = nullptr; }
-    break;
-
-  case 187:
-
-/* Line 1806 of yacc.c  */
-#line 888 "parser.yy"
-    { (yyval.sn) = nullptr; }
-    break;
-
-  case 188:
-
-/* Line 1806 of yacc.c  */
-#line 893 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
-    break;
-
-  case 189:
-
-/* Line 1806 of yacc.c  */
-#line 895 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
-    break;
-
-  case 190:
-
-/* Line 1806 of yacc.c  */
-#line 897 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
-    break;
-
-  case 191:
-
-/* Line 1806 of yacc.c  */
-#line 902 "parser.yy"
-    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
-    break;
-
-  case 192:
-
-/* Line 1806 of yacc.c  */
-#line 904 "parser.yy"
-    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
-    break;
-
-  case 193:
-
-/* Line 1806 of yacc.c  */
-#line 909 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
-    break;
-
-  case 194:
-
-/* Line 1806 of yacc.c  */
-#line 913 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
-    break;
-
-  case 195:
-
-/* Line 1806 of yacc.c  */
-#line 916 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
-    break;
-
-  case 196:
-
-/* Line 1806 of yacc.c  */
-#line 920 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
-    break;
-
-  case 197:
-
-/* Line 1806 of yacc.c  */
-#line 923 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
-    break;
-
-  case 198:
-
-/* Line 1806 of yacc.c  */
-#line 927 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
-    break;
-
-  case 199:
-
-/* Line 1806 of yacc.c  */
-#line 929 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
-    break;
-
-  case 200:
-
-/* Line 1806 of yacc.c  */
-#line 931 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
-    break;
-
-  case 201:
-
-/* Line 1806 of yacc.c  */
-#line 933 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
-    break;
-
-  case 202:
-
-/* Line 1806 of yacc.c  */
-#line 935 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
-    break;
-
-  case 203:
-
-/* Line 1806 of yacc.c  */
-#line 940 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
-    break;
-
-  case 204:
-
-/* Line 1806 of yacc.c  */
-#line 942 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
-    break;
-
-  case 205:
-
-/* Line 1806 of yacc.c  */
-#line 944 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
-    break;
-
-  case 207:
-
-/* Line 1806 of yacc.c  */
-#line 951 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
-    break;
-
-  case 208:
-
-/* Line 1806 of yacc.c  */
-#line 953 "parser.yy"
-    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
-    break;
-
-  case 209:
-
-/* Line 1806 of yacc.c  */
-#line 955 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
-    break;
-
-  case 210:
-
-/* Line 1806 of yacc.c  */
-#line 957 "parser.yy"
-    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
-    break;
-
-  case 211:
-
-/* Line 1806 of yacc.c  */
-#line 962 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
-    break;
-
-  case 212:
-
-/* Line 1806 of yacc.c  */
-#line 964 "parser.yy"
-    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
-    break;
-
-  case 213:
-
-/* Line 1806 of yacc.c  */
-#line 966 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
-    break;
-
-  case 214:
-
-/* Line 1806 of yacc.c  */
-#line 968 "parser.yy"
-    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
-    break;
-
-  case 215:
-
-/* Line 1806 of yacc.c  */
-#line 973 "parser.yy"
-    {
-			(yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
-		}
-    break;
-
-  case 217:
-
-/* Line 1806 of yacc.c  */
-#line 982 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
-		}
-    break;
-
-  case 218:
-
-/* Line 1806 of yacc.c  */
-#line 987 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 219:
-
-/* Line 1806 of yacc.c  */
-#line 989 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );
-		}
-    break;
-
-  case 221:
-
-/* Line 1806 of yacc.c  */
-#line 998 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
-    break;
-
-  case 222:
-
-/* Line 1806 of yacc.c  */
-#line 1000 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
-    break;
-
-  case 223:
-
-/* Line 1806 of yacc.c  */
-#line 1002 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
-    break;
-
-  case 224:
-
-/* Line 1806 of yacc.c  */
-#line 1004 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
-    break;
-
-  case 225:
-
-/* Line 1806 of yacc.c  */
-#line 1006 "parser.yy"
-    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
-    break;
-
-  case 226:
-
-/* Line 1806 of yacc.c  */
-#line 1011 "parser.yy"
-    { (yyval.flag) = false; }
-    break;
-
-  case 227:
-
-/* Line 1806 of yacc.c  */
-#line 1013 "parser.yy"
-    { (yyval.flag) = true; }
-    break;
-
-  case 228:
-
-/* Line 1806 of yacc.c  */
-#line 1018 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 231:
-
-/* Line 1806 of yacc.c  */
-#line 1025 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
-    break;
-
-  case 232:
-
-/* Line 1806 of yacc.c  */
-#line 1030 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
-    break;
-
-  case 233:
-
-/* Line 1806 of yacc.c  */
-#line 1032 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
-    break;
-
-  case 234:
-
-/* Line 1806 of yacc.c  */
-#line 1037 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 235:
-
-/* Line 1806 of yacc.c  */
-#line 1039 "parser.yy"
-    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
-    break;
-
-  case 236:
-
-/* Line 1806 of yacc.c  */
-#line 1042 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
-    break;
-
-  case 237:
-
-/* Line 1806 of yacc.c  */
-#line 1047 "parser.yy"
-    {
-			(yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
-			delete (yyvsp[(1) - (1)].tok);									// allocated by lexer
-		}
-    break;
-
-  case 238:
-
-/* Line 1806 of yacc.c  */
-#line 1052 "parser.yy"
-    {
-			(yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
-			delete (yyvsp[(3) - (3)].tok);									// allocated by lexer
-		}
-    break;
-
-  case 239:
-
-/* Line 1806 of yacc.c  */
-#line 1062 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 242:
-
-/* Line 1806 of yacc.c  */
-#line 1069 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 243:
-
-/* Line 1806 of yacc.c  */
-#line 1074 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 246:
-
-/* Line 1806 of yacc.c  */
-#line 1081 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 251:
-
-/* Line 1806 of yacc.c  */
-#line 1095 "parser.yy"
-    {}
-    break;
-
-  case 252:
-
-/* Line 1806 of yacc.c  */
-#line 1096 "parser.yy"
-    {}
-    break;
-
-  case 260:
-
-/* Line 1806 of yacc.c  */
-#line 1125 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );
-		}
-    break;
-
-  case 261:
-
-/* Line 1806 of yacc.c  */
-#line 1132 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;
-		}
-    break;
-
-  case 262:
-
-/* Line 1806 of yacc.c  */
-#line 1137 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
-		}
-    break;
-
-  case 263:
-
-/* Line 1806 of yacc.c  */
-#line 1147 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
-			(yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].decl) );
-		}
-    break;
-
-  case 264:
-
-/* Line 1806 of yacc.c  */
-#line 1152 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
-			(yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].decl) );
-		}
-    break;
-
-  case 265:
-
-/* Line 1806 of yacc.c  */
-#line 1157 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
-			(yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)].decl) );
-		}
-    break;
-
-  case 266:
-
-/* Line 1806 of yacc.c  */
-#line 1165 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (1)].decl);
-		}
-    break;
-
-  case 267:
-
-/* Line 1806 of yacc.c  */
-#line 1170 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
-		}
-    break;
-
-  case 268:
-
-/* Line 1806 of yacc.c  */
-#line 1175 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );
-		}
-    break;
-
-  case 269:
-
-/* Line 1806 of yacc.c  */
-#line 1180 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );
-		}
-    break;
-
-  case 270:
-
-/* Line 1806 of yacc.c  */
-#line 1185 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
-		}
-    break;
-
-  case 271:
-
-/* Line 1806 of yacc.c  */
-#line 1216 "parser.yy"
-    {
-			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
-		}
-    break;
-
-  case 272:
-
-/* Line 1806 of yacc.c  */
-#line 1220 "parser.yy"
-    {
-			(yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
-		}
-    break;
-
-  case 273:
-
-/* Line 1806 of yacc.c  */
-#line 1227 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
-    break;
-
-  case 274:
-
-/* Line 1806 of yacc.c  */
-#line 1231 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
-    break;
-
-  case 275:
-
-/* Line 1806 of yacc.c  */
-#line 1236 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
-		}
-    break;
-
-  case 276:
-
-/* Line 1806 of yacc.c  */
-#line 1241 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef();
-		}
-    break;
-
-  case 277:
-
-/* Line 1806 of yacc.c  */
-#line 1246 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
-		}
-    break;
-
-  case 278:
-
-/* Line 1806 of yacc.c  */
-#line 1257 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();
-		}
-    break;
-
-  case 279:
-
-/* Line 1806 of yacc.c  */
-#line 1262 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );
-		}
-    break;
-
-  case 280:
-
-/* Line 1806 of yacc.c  */
-#line 1267 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();
-		}
-    break;
-
-  case 281:
-
-/* Line 1806 of yacc.c  */
-#line 1272 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();
-		}
-    break;
-
-  case 282:
-
-/* Line 1806 of yacc.c  */
-#line 1277 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::TD );
-			(yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );
-		}
-    break;
-
-  case 283:
-
-/* Line 1806 of yacc.c  */
-#line 1286 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
-			(yyval.decl) = DeclarationNode::newName( 0 );			// unimplemented
-		}
-    break;
-
-  case 284:
-
-/* Line 1806 of yacc.c  */
-#line 1291 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
-			(yyval.decl) = DeclarationNode::newName( 0 );			// unimplemented
-		}
-    break;
-
-  case 285:
-
-/* Line 1806 of yacc.c  */
-#line 1321 "parser.yy"
-    {
-			(yyval.decl) = distAttr( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].decl) );
-		}
-    break;
-
-  case 289:
-
-/* Line 1806 of yacc.c  */
-#line 1333 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (3)].decl)->addAsmName( (yyvsp[(2) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );
-		}
-    break;
-
-  case 290:
-
-/* Line 1806 of yacc.c  */
-#line 1338 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(4) - (6)].decl)->addQualifiers( (yyvsp[(3) - (6)].decl) )->addAsmName( (yyvsp[(5) - (6)].decl) )->addInitializer( (yyvsp[(6) - (6)].in) ) );
-		}
-    break;
-
-  case 307:
-
-/* Line 1806 of yacc.c  */
-#line 1384 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 310:
-
-/* Line 1806 of yacc.c  */
-#line 1396 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 313:
-
-/* Line 1806 of yacc.c  */
-#line 1406 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Const ); }
-    break;
-
-  case 314:
-
-/* Line 1806 of yacc.c  */
-#line 1408 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Restrict ); }
-    break;
-
-  case 315:
-
-/* Line 1806 of yacc.c  */
-#line 1410 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Volatile ); }
-    break;
-
-  case 316:
-
-/* Line 1806 of yacc.c  */
-#line 1412 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Lvalue ); }
-    break;
-
-  case 317:
-
-/* Line 1806 of yacc.c  */
-#line 1414 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Mutex ); }
-    break;
-
-  case 318:
-
-/* Line 1806 of yacc.c  */
-#line 1416 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeQualifier( DeclarationNode::Atomic ); }
-    break;
-
-  case 319:
-
-/* Line 1806 of yacc.c  */
-#line 1418 "parser.yy"
-    {
-			typedefTable.enterScope();
-		}
-    break;
-
-  case 320:
-
-/* Line 1806 of yacc.c  */
-#line 1422 "parser.yy"
-    {
-			typedefTable.leaveScope();
-			(yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) );
-		}
-    break;
-
-  case 322:
-
-/* Line 1806 of yacc.c  */
-#line 1431 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 323:
-
-/* Line 1806 of yacc.c  */
-#line 1433 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 325:
-
-/* Line 1806 of yacc.c  */
-#line 1444 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 326:
-
-/* Line 1806 of yacc.c  */
-#line 1449 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
-    break;
-
-  case 327:
-
-/* Line 1806 of yacc.c  */
-#line 1451 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
-    break;
-
-  case 328:
-
-/* Line 1806 of yacc.c  */
-#line 1453 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
-    break;
-
-  case 329:
-
-/* Line 1806 of yacc.c  */
-#line 1455 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
-    break;
-
-  case 330:
-
-/* Line 1806 of yacc.c  */
-#line 1457 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
-    break;
-
-  case 331:
-
-/* Line 1806 of yacc.c  */
-#line 1460 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Inline ); }
-    break;
-
-  case 332:
-
-/* Line 1806 of yacc.c  */
-#line 1462 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Fortran ); }
-    break;
-
-  case 333:
-
-/* Line 1806 of yacc.c  */
-#line 1464 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFuncSpecifier( DeclarationNode::Noreturn ); }
-    break;
-
-  case 334:
-
-/* Line 1806 of yacc.c  */
-#line 1469 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
-    break;
-
-  case 335:
-
-/* Line 1806 of yacc.c  */
-#line 1471 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
-    break;
-
-  case 336:
-
-/* Line 1806 of yacc.c  */
-#line 1473 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
-    break;
-
-  case 337:
-
-/* Line 1806 of yacc.c  */
-#line 1475 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
-    break;
-
-  case 338:
-
-/* Line 1806 of yacc.c  */
-#line 1477 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
-    break;
-
-  case 339:
-
-/* Line 1806 of yacc.c  */
-#line 1479 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
-    break;
-
-  case 340:
-
-/* Line 1806 of yacc.c  */
-#line 1481 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
-    break;
-
-  case 341:
-
-/* Line 1806 of yacc.c  */
-#line 1483 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
-    break;
-
-  case 342:
-
-/* Line 1806 of yacc.c  */
-#line 1485 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
-    break;
-
-  case 343:
-
-/* Line 1806 of yacc.c  */
-#line 1487 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
-    break;
-
-  case 344:
-
-/* Line 1806 of yacc.c  */
-#line 1489 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
-    break;
-
-  case 345:
-
-/* Line 1806 of yacc.c  */
-#line 1491 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
-    break;
-
-  case 346:
-
-/* Line 1806 of yacc.c  */
-#line 1493 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
-    break;
-
-  case 347:
-
-/* Line 1806 of yacc.c  */
-#line 1495 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); }
-    break;
-
-  case 348:
-
-/* Line 1806 of yacc.c  */
-#line 1497 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); }
-    break;
-
-  case 350:
-
-/* Line 1806 of yacc.c  */
-#line 1504 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 351:
-
-/* Line 1806 of yacc.c  */
-#line 1506 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 352:
-
-/* Line 1806 of yacc.c  */
-#line 1508 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 353:
-
-/* Line 1806 of yacc.c  */
-#line 1510 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
-    break;
-
-  case 355:
-
-/* Line 1806 of yacc.c  */
-#line 1516 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 357:
-
-/* Line 1806 of yacc.c  */
-#line 1523 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 358:
-
-/* Line 1806 of yacc.c  */
-#line 1525 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 359:
-
-/* Line 1806 of yacc.c  */
-#line 1527 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 360:
-
-/* Line 1806 of yacc.c  */
-#line 1532 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
-    break;
-
-  case 361:
-
-/* Line 1806 of yacc.c  */
-#line 1534 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
-    break;
-
-  case 362:
-
-/* Line 1806 of yacc.c  */
-#line 1536 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
-    break;
-
-  case 363:
-
-/* Line 1806 of yacc.c  */
-#line 1538 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
-    break;
-
-  case 365:
-
-/* Line 1806 of yacc.c  */
-#line 1544 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 366:
-
-/* Line 1806 of yacc.c  */
-#line 1546 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 367:
-
-/* Line 1806 of yacc.c  */
-#line 1548 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 369:
-
-/* Line 1806 of yacc.c  */
-#line 1554 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 370:
-
-/* Line 1806 of yacc.c  */
-#line 1556 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 372:
-
-/* Line 1806 of yacc.c  */
-#line 1562 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 373:
-
-/* Line 1806 of yacc.c  */
-#line 1564 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 374:
-
-/* Line 1806 of yacc.c  */
-#line 1566 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 376:
-
-/* Line 1806 of yacc.c  */
-#line 1572 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 377:
-
-/* Line 1806 of yacc.c  */
-#line 1574 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 379:
-
-/* Line 1806 of yacc.c  */
-#line 1580 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 380:
-
-/* Line 1806 of yacc.c  */
-#line 1582 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 381:
-
-/* Line 1806 of yacc.c  */
-#line 1584 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 382:
-
-/* Line 1806 of yacc.c  */
-#line 1589 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
-    break;
-
-  case 383:
-
-/* Line 1806 of yacc.c  */
-#line 1591 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 384:
-
-/* Line 1806 of yacc.c  */
-#line 1593 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 389:
-
-/* Line 1806 of yacc.c  */
-#line 1608 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), nullptr, nullptr, (yyvsp[(4) - (5)].decl), true )->addQualifiers( (yyvsp[(2) - (5)].decl) ); }
-    break;
-
-  case 390:
-
-/* Line 1806 of yacc.c  */
-#line 1610 "parser.yy"
-    { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
-    break;
-
-  case 391:
-
-/* Line 1806 of yacc.c  */
-#line 1612 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(3) - (7)].tok), nullptr, (yyvsp[(6) - (7)].decl), true )->addQualifiers( (yyvsp[(2) - (7)].decl) ); }
-    break;
-
-  case 392:
-
-/* Line 1806 of yacc.c  */
-#line 1614 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (8)].aggKey), nullptr, (yyvsp[(4) - (8)].en), (yyvsp[(7) - (8)].decl), false )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
-    break;
-
-  case 394:
-
-/* Line 1806 of yacc.c  */
-#line 1620 "parser.yy"
-    {
-			typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
-			(yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (3)].aggKey), (yyvsp[(3) - (3)].tok), nullptr, nullptr, false )->addQualifiers( (yyvsp[(2) - (3)].decl) );
-		}
-    break;
-
-  case 395:
-
-/* Line 1806 of yacc.c  */
-#line 1625 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) ); }
-    break;
-
-  case 396:
-
-/* Line 1806 of yacc.c  */
-#line 1630 "parser.yy"
-    { (yyval.aggKey) = DeclarationNode::Struct; }
-    break;
-
-  case 397:
-
-/* Line 1806 of yacc.c  */
-#line 1632 "parser.yy"
-    { (yyval.aggKey) = DeclarationNode::Union; }
-    break;
-
-  case 398:
-
-/* Line 1806 of yacc.c  */
-#line 1634 "parser.yy"
-    { (yyval.aggKey) = DeclarationNode::Struct; }
-    break;
-
-  case 399:
-
-/* Line 1806 of yacc.c  */
-#line 1636 "parser.yy"
-    { (yyval.aggKey) = DeclarationNode::Struct; }
-    break;
-
-  case 400:
-
-/* Line 1806 of yacc.c  */
-#line 1638 "parser.yy"
-    { (yyval.aggKey) = DeclarationNode::Struct; }
-    break;
-
-  case 401:
-
-/* Line 1806 of yacc.c  */
-#line 1643 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 402:
-
-/* Line 1806 of yacc.c  */
-#line 1645 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
-    break;
-
-  case 404:
-
-/* Line 1806 of yacc.c  */
-#line 1651 "parser.yy"
-    {
-			distExt( (yyvsp[(2) - (3)].decl) );								// mark all fields in list
-			(yyval.decl) = (yyvsp[(2) - (3)].decl);
-		}
-    break;
-
-  case 405:
-
-/* Line 1806 of yacc.c  */
-#line 1656 "parser.yy"
-    {
-			(yyval.decl) = distAttr( (yyvsp[(1) - (3)].decl), (yyvsp[(2) - (3)].decl) ); }
-    break;
-
-  case 406:
-
-/* Line 1806 of yacc.c  */
-#line 1659 "parser.yy"
-    {
-			distExt( (yyvsp[(3) - (4)].decl) );								// mark all fields in list
-			(yyval.decl) = distAttr( (yyvsp[(2) - (4)].decl), (yyvsp[(3) - (4)].decl) );
-		}
-    break;
-
-  case 408:
-
-/* Line 1806 of yacc.c  */
-#line 1668 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
-    break;
-
-  case 409:
-
-/* Line 1806 of yacc.c  */
-#line 1670 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
-    break;
-
-  case 410:
-
-/* Line 1806 of yacc.c  */
-#line 1672 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
-    break;
-
-  case 412:
-
-/* Line 1806 of yacc.c  */
-#line 1678 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(3) - (4)].decl) ) ); }
-    break;
-
-  case 413:
-
-/* Line 1806 of yacc.c  */
-#line 1683 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
-    break;
-
-  case 414:
-
-/* Line 1806 of yacc.c  */
-#line 1685 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
-    break;
-
-  case 415:
-
-/* Line 1806 of yacc.c  */
-#line 1688 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
-    break;
-
-  case 416:
-
-/* Line 1806 of yacc.c  */
-#line 1691 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
-    break;
-
-  case 418:
-
-/* Line 1806 of yacc.c  */
-#line 1697 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 419:
-
-/* Line 1806 of yacc.c  */
-#line 1699 "parser.yy"
-    { (yyval.en) = (yyvsp[(1) - (1)].en); }
-    break;
-
-  case 420:
-
-/* Line 1806 of yacc.c  */
-#line 1704 "parser.yy"
-    { (yyval.en) = (yyvsp[(2) - (2)].en); }
-    break;
-
-  case 421:
-
-/* Line 1806 of yacc.c  */
-#line 1709 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(4) - (6)].decl), true )->addQualifiers( (yyvsp[(2) - (6)].decl) ); }
-    break;
-
-  case 422:
-
-/* Line 1806 of yacc.c  */
-#line 1711 "parser.yy"
-    { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); }
-    break;
-
-  case 423:
-
-/* Line 1806 of yacc.c  */
-#line 1713 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (8)].tok), (yyvsp[(6) - (8)].decl), true )->addQualifiers( (yyvsp[(2) - (8)].decl) ); }
-    break;
-
-  case 425:
-
-/* Line 1806 of yacc.c  */
-#line 1719 "parser.yy"
-    {
-			typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) );
-			(yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (3)].tok), 0, false )->addQualifiers( (yyvsp[(2) - (3)].decl) );
-		}
-    break;
-
-  case 426:
-
-/* Line 1806 of yacc.c  */
-#line 1727 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
-    break;
-
-  case 427:
-
-/* Line 1806 of yacc.c  */
-#line 1729 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
-    break;
-
-  case 428:
-
-/* Line 1806 of yacc.c  */
-#line 1734 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 429:
-
-/* Line 1806 of yacc.c  */
-#line 1736 "parser.yy"
-    { (yyval.en) = (yyvsp[(2) - (2)].en); }
-    break;
-
-  case 430:
-
-/* Line 1806 of yacc.c  */
-#line 1743 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 434:
-
-/* Line 1806 of yacc.c  */
-#line 1751 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 435:
-
-/* Line 1806 of yacc.c  */
-#line 1753 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
-    break;
-
-  case 436:
-
-/* Line 1806 of yacc.c  */
-#line 1755 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
-    break;
-
-  case 438:
-
-/* Line 1806 of yacc.c  */
-#line 1763 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 439:
-
-/* Line 1806 of yacc.c  */
-#line 1765 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 440:
-
-/* Line 1806 of yacc.c  */
-#line 1767 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
-    break;
-
-  case 442:
-
-/* Line 1806 of yacc.c  */
-#line 1773 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 443:
-
-/* Line 1806 of yacc.c  */
-#line 1778 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 446:
-
-/* Line 1806 of yacc.c  */
-#line 1785 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
-    break;
-
-  case 449:
-
-/* Line 1806 of yacc.c  */
-#line 1792 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 450:
-
-/* Line 1806 of yacc.c  */
-#line 1794 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
-    break;
-
-  case 452:
-
-/* Line 1806 of yacc.c  */
-#line 1803 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
-    break;
-
-  case 453:
-
-/* Line 1806 of yacc.c  */
-#line 1806 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
-    break;
-
-  case 454:
-
-/* Line 1806 of yacc.c  */
-#line 1808 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
-    break;
-
-  case 459:
-
-/* Line 1806 of yacc.c  */
-#line 1818 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 461:
-
-/* Line 1806 of yacc.c  */
-#line 1825 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr );
-		}
-    break;
-
-  case 462:
-
-/* Line 1806 of yacc.c  */
-#line 1830 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr );
-		}
-    break;
-
-  case 463:
-
-/* Line 1806 of yacc.c  */
-#line 1838 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].en) ? new InitializerNode( (yyvsp[(2) - (2)].en) ) : nullptr ); }
-    break;
-
-  case 464:
-
-/* Line 1806 of yacc.c  */
-#line 1840 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); }
-    break;
-
-  case 465:
-
-/* Line 1806 of yacc.c  */
-#line 1849 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
-    break;
-
-  case 466:
-
-/* Line 1806 of yacc.c  */
-#line 1851 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
-    break;
-
-  case 478:
-
-/* Line 1806 of yacc.c  */
-#line 1876 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 481:
-
-/* Line 1806 of yacc.c  */
-#line 1886 "parser.yy"
-    { (yyval.in) = nullptr; }
-    break;
-
-  case 482:
-
-/* Line 1806 of yacc.c  */
-#line 1888 "parser.yy"
-    { (yyval.in) = (yyvsp[(2) - (2)].in); }
-    break;
-
-  case 483:
-
-/* Line 1806 of yacc.c  */
-#line 1890 "parser.yy"
-    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
-    break;
-
-  case 484:
-
-/* Line 1806 of yacc.c  */
-#line 1894 "parser.yy"
-    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
-    break;
-
-  case 485:
-
-/* Line 1806 of yacc.c  */
-#line 1895 "parser.yy"
-    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
-    break;
-
-  case 486:
-
-/* Line 1806 of yacc.c  */
-#line 1900 "parser.yy"
-    { (yyval.in) = nullptr; }
-    break;
-
-  case 488:
-
-/* Line 1806 of yacc.c  */
-#line 1902 "parser.yy"
-    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
-    break;
-
-  case 489:
-
-/* Line 1806 of yacc.c  */
-#line 1903 "parser.yy"
-    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
-    break;
-
-  case 490:
-
-/* Line 1806 of yacc.c  */
-#line 1905 "parser.yy"
-    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
-    break;
-
-  case 492:
-
-/* Line 1806 of yacc.c  */
-#line 1921 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
-    break;
-
-  case 494:
-
-/* Line 1806 of yacc.c  */
-#line 1927 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
-    break;
-
-  case 495:
-
-/* Line 1806 of yacc.c  */
-#line 1933 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
-    break;
-
-  case 496:
-
-/* Line 1806 of yacc.c  */
-#line 1936 "parser.yy"
-    { (yyval.en) = (yyvsp[(3) - (5)].en); }
-    break;
-
-  case 497:
-
-/* Line 1806 of yacc.c  */
-#line 1938 "parser.yy"
-    { (yyval.en) = (yyvsp[(3) - (5)].en); }
-    break;
-
-  case 498:
-
-/* Line 1806 of yacc.c  */
-#line 1940 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
-    break;
-
-  case 499:
-
-/* Line 1806 of yacc.c  */
-#line 1942 "parser.yy"
-    { (yyval.en) = (yyvsp[(4) - (6)].en); }
-    break;
-
-  case 501:
-
-/* Line 1806 of yacc.c  */
-#line 1966 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 502:
-
-/* Line 1806 of yacc.c  */
-#line 1968 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 503:
-
-/* Line 1806 of yacc.c  */
-#line 1970 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 505:
-
-/* Line 1806 of yacc.c  */
-#line 1976 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 506:
-
-/* Line 1806 of yacc.c  */
-#line 1978 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 507:
-
-/* Line 1806 of yacc.c  */
-#line 1983 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
-    break;
-
-  case 509:
-
-/* Line 1806 of yacc.c  */
-#line 1989 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
-    break;
-
-  case 510:
-
-/* Line 1806 of yacc.c  */
-#line 1994 "parser.yy"
-    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
-    break;
-
-  case 511:
-
-/* Line 1806 of yacc.c  */
-#line 1996 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 513:
-
-/* Line 1806 of yacc.c  */
-#line 2002 "parser.yy"
-    { (yyval.tclass) = DeclarationNode::Otype; }
-    break;
-
-  case 514:
-
-/* Line 1806 of yacc.c  */
-#line 2004 "parser.yy"
-    { (yyval.tclass) = DeclarationNode::Dtype; }
-    break;
-
-  case 515:
-
-/* Line 1806 of yacc.c  */
-#line 2006 "parser.yy"
-    { (yyval.tclass) = DeclarationNode::Ftype; }
-    break;
-
-  case 516:
-
-/* Line 1806 of yacc.c  */
-#line 2008 "parser.yy"
-    { (yyval.tclass) = DeclarationNode::Ttype; }
-    break;
-
-  case 517:
-
-/* Line 1806 of yacc.c  */
-#line 2013 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 518:
-
-/* Line 1806 of yacc.c  */
-#line 2015 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
-    break;
-
-  case 519:
-
-/* Line 1806 of yacc.c  */
-#line 2020 "parser.yy"
-    {
-			typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
-			(yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) );
-		}
-    break;
-
-  case 520:
-
-/* Line 1806 of yacc.c  */
-#line 2025 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
-    break;
-
-  case 521:
-
-/* Line 1806 of yacc.c  */
-#line 2027 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 522:
-
-/* Line 1806 of yacc.c  */
-#line 2032 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
-    break;
-
-  case 524:
-
-/* Line 1806 of yacc.c  */
-#line 2035 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
-    break;
-
-  case 525:
-
-/* Line 1806 of yacc.c  */
-#line 2037 "parser.yy"
-    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
-    break;
-
-  case 526:
-
-/* Line 1806 of yacc.c  */
-#line 2042 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
-    break;
-
-  case 527:
-
-/* Line 1806 of yacc.c  */
-#line 2044 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
-    break;
-
-  case 528:
-
-/* Line 1806 of yacc.c  */
-#line 2046 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copySpecifiers( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 529:
-
-/* Line 1806 of yacc.c  */
-#line 2051 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 530:
-
-/* Line 1806 of yacc.c  */
-#line 2053 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 531:
-
-/* Line 1806 of yacc.c  */
-#line 2058 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
-			(yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 );
-		}
-    break;
-
-  case 532:
-
-/* Line 1806 of yacc.c  */
-#line 2063 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
-			(yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) );
-		}
-    break;
-
-  case 533:
-
-/* Line 1806 of yacc.c  */
-#line 2071 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
-			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 );
-		}
-    break;
-
-  case 534:
-
-/* Line 1806 of yacc.c  */
-#line 2076 "parser.yy"
-    {
-			typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
-			typedefTable.enterScope();
-		}
-    break;
-
-  case 535:
-
-/* Line 1806 of yacc.c  */
-#line 2081 "parser.yy"
-    {
-			typedefTable.leaveTrait();
-			typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID );
-			(yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );
-		}
-    break;
-
-  case 537:
-
-/* Line 1806 of yacc.c  */
-#line 2091 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 540:
-
-/* Line 1806 of yacc.c  */
-#line 2101 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope2( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (1)].decl);
-		}
-    break;
-
-  case 541:
-
-/* Line 1806 of yacc.c  */
-#line 2106 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope2( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (1)].decl);
-		}
-    break;
-
-  case 542:
-
-/* Line 1806 of yacc.c  */
-#line 2111 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) );
-		}
-    break;
-
-  case 543:
-
-/* Line 1806 of yacc.c  */
-#line 2119 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope2( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );
-		}
-    break;
-
-  case 544:
-
-/* Line 1806 of yacc.c  */
-#line 2124 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope2( TypedefTable::ID );
-			(yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );
-		}
-    break;
-
-  case 545:
-
-/* Line 1806 of yacc.c  */
-#line 2134 "parser.yy"
-    {}
-    break;
-
-  case 546:
-
-/* Line 1806 of yacc.c  */
-#line 2136 "parser.yy"
-    { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);	}
-    break;
-
-  case 548:
-
-/* Line 1806 of yacc.c  */
-#line 2142 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
-    break;
-
-  case 549:
-
-/* Line 1806 of yacc.c  */
-#line 2147 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 553:
-
-/* Line 1806 of yacc.c  */
-#line 2155 "parser.yy"
-    {
-			(yyval.decl) = DeclarationNode::newAsmStmt( new StatementNode( build_asmstmt( false, (yyvsp[(3) - (5)].constant), 0 ) ) );
-		}
-    break;
-
-  case 554:
-
-/* Line 1806 of yacc.c  */
-#line 2159 "parser.yy"
-    {
-			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
-			linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) );
-		}
-    break;
-
-  case 555:
-
-/* Line 1806 of yacc.c  */
-#line 2164 "parser.yy"
-    {
-			linkage = linkageStack.top();
-			linkageStack.pop();
-			(yyval.decl) = (yyvsp[(5) - (6)].decl);
-		}
-    break;
-
-  case 556:
-
-/* Line 1806 of yacc.c  */
-#line 2170 "parser.yy"
-    {
-			distExt( (yyvsp[(2) - (2)].decl) );								// mark all fields in list
-			(yyval.decl) = (yyvsp[(2) - (2)].decl);
-		}
-    break;
-
-  case 558:
-
-/* Line 1806 of yacc.c  */
-#line 2184 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
-		}
-    break;
-
-  case 559:
-
-/* Line 1806 of yacc.c  */
-#line 2190 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );
-		}
-    break;
-
-  case 560:
-
-/* Line 1806 of yacc.c  */
-#line 2199 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );
-		}
-    break;
-
-  case 561:
-
-/* Line 1806 of yacc.c  */
-#line 2205 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );
-		}
-    break;
-
-  case 562:
-
-/* Line 1806 of yacc.c  */
-#line 2211 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
-		}
-    break;
-
-  case 563:
-
-/* Line 1806 of yacc.c  */
-#line 2217 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );
-		}
-    break;
-
-  case 564:
-
-/* Line 1806 of yacc.c  */
-#line 2223 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );
-		}
-    break;
-
-  case 565:
-
-/* Line 1806 of yacc.c  */
-#line 2231 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );
-		}
-    break;
-
-  case 566:
-
-/* Line 1806 of yacc.c  */
-#line 2237 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
-		}
-    break;
-
-  case 567:
-
-/* Line 1806 of yacc.c  */
-#line 2245 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );
-		}
-    break;
-
-  case 568:
-
-/* Line 1806 of yacc.c  */
-#line 2251 "parser.yy"
-    {
-			typedefTable.addToEnclosingScope( TypedefTable::ID );
-			typedefTable.leaveScope();
-			(yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );
-		}
-    break;
-
-  case 572:
-
-/* Line 1806 of yacc.c  */
-#line 2266 "parser.yy"
-    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
-    break;
-
-  case 573:
-
-/* Line 1806 of yacc.c  */
-#line 2271 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 574:
-
-/* Line 1806 of yacc.c  */
-#line 2273 "parser.yy"
-    {
-			DeclarationNode * name = new DeclarationNode();
-			name->asmName = (yyvsp[(3) - (5)].constant);
-			(yyval.decl) = name->addQualifiers( (yyvsp[(5) - (5)].decl) );
-		}
-    break;
-
-  case 575:
-
-/* Line 1806 of yacc.c  */
-#line 2282 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 578:
-
-/* Line 1806 of yacc.c  */
-#line 2289 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 579:
-
-/* Line 1806 of yacc.c  */
-#line 2294 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (6)].decl); }
-    break;
-
-  case 581:
-
-/* Line 1806 of yacc.c  */
-#line 2300 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
-    break;
-
-  case 582:
-
-/* Line 1806 of yacc.c  */
-#line 2305 "parser.yy"
-    { (yyval.decl) = nullptr; }
-    break;
-
-  case 583:
-
-/* Line 1806 of yacc.c  */
-#line 2307 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); }
-    break;
-
-  case 584:
-
-/* Line 1806 of yacc.c  */
-#line 2309 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
-    break;
-
-  case 588:
-
-/* Line 1806 of yacc.c  */
-#line 2317 "parser.yy"
-    { (yyval.tok) = Token{ new string( "__const__" ) }; }
-    break;
-
-  case 589:
-
-/* Line 1806 of yacc.c  */
-#line 2352 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 591:
-
-/* Line 1806 of yacc.c  */
-#line 2355 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 592:
-
-/* Line 1806 of yacc.c  */
-#line 2357 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 593:
-
-/* Line 1806 of yacc.c  */
-#line 2362 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
-			(yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
-		}
-    break;
-
-  case 594:
-
-/* Line 1806 of yacc.c  */
-#line 2367 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 595:
-
-/* Line 1806 of yacc.c  */
-#line 2372 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 596:
-
-/* Line 1806 of yacc.c  */
-#line 2374 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 597:
-
-/* Line 1806 of yacc.c  */
-#line 2376 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 598:
-
-/* Line 1806 of yacc.c  */
-#line 2381 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 599:
-
-/* Line 1806 of yacc.c  */
-#line 2383 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 600:
-
-/* Line 1806 of yacc.c  */
-#line 2385 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 601:
-
-/* Line 1806 of yacc.c  */
-#line 2387 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 602:
-
-/* Line 1806 of yacc.c  */
-#line 2392 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 603:
-
-/* Line 1806 of yacc.c  */
-#line 2394 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 604:
-
-/* Line 1806 of yacc.c  */
-#line 2403 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 606:
-
-/* Line 1806 of yacc.c  */
-#line 2406 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 607:
-
-/* Line 1806 of yacc.c  */
-#line 2411 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
-    break;
-
-  case 608:
-
-/* Line 1806 of yacc.c  */
-#line 2413 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 609:
-
-/* Line 1806 of yacc.c  */
-#line 2415 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 610:
-
-/* Line 1806 of yacc.c  */
-#line 2420 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 611:
-
-/* Line 1806 of yacc.c  */
-#line 2422 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 612:
-
-/* Line 1806 of yacc.c  */
-#line 2424 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 613:
-
-/* Line 1806 of yacc.c  */
-#line 2429 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 614:
-
-/* Line 1806 of yacc.c  */
-#line 2431 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 615:
-
-/* Line 1806 of yacc.c  */
-#line 2433 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 619:
-
-/* Line 1806 of yacc.c  */
-#line 2451 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
-    break;
-
-  case 620:
-
-/* Line 1806 of yacc.c  */
-#line 2453 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 621:
-
-/* Line 1806 of yacc.c  */
-#line 2455 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 622:
-
-/* Line 1806 of yacc.c  */
-#line 2460 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 623:
-
-/* Line 1806 of yacc.c  */
-#line 2462 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 624:
-
-/* Line 1806 of yacc.c  */
-#line 2464 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 625:
-
-/* Line 1806 of yacc.c  */
-#line 2469 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 626:
-
-/* Line 1806 of yacc.c  */
-#line 2471 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 627:
-
-/* Line 1806 of yacc.c  */
-#line 2473 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 628:
-
-/* Line 1806 of yacc.c  */
-#line 2488 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 630:
-
-/* Line 1806 of yacc.c  */
-#line 2491 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 631:
-
-/* Line 1806 of yacc.c  */
-#line 2493 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 633:
-
-/* Line 1806 of yacc.c  */
-#line 2499 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 634:
-
-/* Line 1806 of yacc.c  */
-#line 2504 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 635:
-
-/* Line 1806 of yacc.c  */
-#line 2506 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 636:
-
-/* Line 1806 of yacc.c  */
-#line 2508 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 637:
-
-/* Line 1806 of yacc.c  */
-#line 2513 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 638:
-
-/* Line 1806 of yacc.c  */
-#line 2515 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 639:
-
-/* Line 1806 of yacc.c  */
-#line 2517 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 640:
-
-/* Line 1806 of yacc.c  */
-#line 2519 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 641:
-
-/* Line 1806 of yacc.c  */
-#line 2524 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
-    break;
-
-  case 642:
-
-/* Line 1806 of yacc.c  */
-#line 2526 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 643:
-
-/* Line 1806 of yacc.c  */
-#line 2528 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 644:
-
-/* Line 1806 of yacc.c  */
-#line 2538 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 646:
-
-/* Line 1806 of yacc.c  */
-#line 2541 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 647:
-
-/* Line 1806 of yacc.c  */
-#line 2543 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 648:
-
-/* Line 1806 of yacc.c  */
-#line 2548 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 649:
-
-/* Line 1806 of yacc.c  */
-#line 2550 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 650:
-
-/* Line 1806 of yacc.c  */
-#line 2552 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 651:
-
-/* Line 1806 of yacc.c  */
-#line 2557 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 652:
-
-/* Line 1806 of yacc.c  */
-#line 2559 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 653:
-
-/* Line 1806 of yacc.c  */
-#line 2561 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 654:
-
-/* Line 1806 of yacc.c  */
-#line 2563 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 655:
-
-/* Line 1806 of yacc.c  */
-#line 2568 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
-    break;
-
-  case 656:
-
-/* Line 1806 of yacc.c  */
-#line 2570 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 657:
-
-/* Line 1806 of yacc.c  */
-#line 2572 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 658:
-
-/* Line 1806 of yacc.c  */
-#line 2585 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 660:
-
-/* Line 1806 of yacc.c  */
-#line 2588 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 661:
-
-/* Line 1806 of yacc.c  */
-#line 2590 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 662:
-
-/* Line 1806 of yacc.c  */
-#line 2595 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
-			(yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
-		}
-    break;
-
-  case 663:
-
-/* Line 1806 of yacc.c  */
-#line 2600 "parser.yy"
-    {
-			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
-			(yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) );
-		}
-    break;
-
-  case 664:
-
-/* Line 1806 of yacc.c  */
-#line 2608 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 665:
-
-/* Line 1806 of yacc.c  */
-#line 2610 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 666:
-
-/* Line 1806 of yacc.c  */
-#line 2612 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 667:
-
-/* Line 1806 of yacc.c  */
-#line 2617 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 668:
-
-/* Line 1806 of yacc.c  */
-#line 2619 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 669:
-
-/* Line 1806 of yacc.c  */
-#line 2624 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
-    break;
-
-  case 670:
-
-/* Line 1806 of yacc.c  */
-#line 2626 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 672:
-
-/* Line 1806 of yacc.c  */
-#line 2644 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 673:
-
-/* Line 1806 of yacc.c  */
-#line 2646 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 674:
-
-/* Line 1806 of yacc.c  */
-#line 2651 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
-    break;
-
-  case 675:
-
-/* Line 1806 of yacc.c  */
-#line 2653 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 676:
-
-/* Line 1806 of yacc.c  */
-#line 2655 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 677:
-
-/* Line 1806 of yacc.c  */
-#line 2657 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 678:
-
-/* Line 1806 of yacc.c  */
-#line 2659 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 680:
-
-/* Line 1806 of yacc.c  */
-#line 2665 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 681:
-
-/* Line 1806 of yacc.c  */
-#line 2667 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 682:
-
-/* Line 1806 of yacc.c  */
-#line 2669 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 683:
-
-/* Line 1806 of yacc.c  */
-#line 2674 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
-    break;
-
-  case 684:
-
-/* Line 1806 of yacc.c  */
-#line 2676 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 685:
-
-/* Line 1806 of yacc.c  */
-#line 2678 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 686:
-
-/* Line 1806 of yacc.c  */
-#line 2684 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
-    break;
-
-  case 687:
-
-/* Line 1806 of yacc.c  */
-#line 2686 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
-    break;
-
-  case 689:
-
-/* Line 1806 of yacc.c  */
-#line 2692 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
-    break;
-
-  case 690:
-
-/* Line 1806 of yacc.c  */
-#line 2694 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
-    break;
-
-  case 691:
-
-/* Line 1806 of yacc.c  */
-#line 2696 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
-    break;
-
-  case 692:
-
-/* Line 1806 of yacc.c  */
-#line 2698 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
-    break;
-
-  case 694:
-
-/* Line 1806 of yacc.c  */
-#line 2733 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 695:
-
-/* Line 1806 of yacc.c  */
-#line 2735 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 696:
-
-/* Line 1806 of yacc.c  */
-#line 2740 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( nullptr ); }
-    break;
-
-  case 697:
-
-/* Line 1806 of yacc.c  */
-#line 2742 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 698:
-
-/* Line 1806 of yacc.c  */
-#line 2744 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( nullptr ) ); }
-    break;
-
-  case 699:
-
-/* Line 1806 of yacc.c  */
-#line 2746 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 700:
-
-/* Line 1806 of yacc.c  */
-#line 2748 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 702:
-
-/* Line 1806 of yacc.c  */
-#line 2754 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 703:
-
-/* Line 1806 of yacc.c  */
-#line 2756 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 704:
-
-/* Line 1806 of yacc.c  */
-#line 2758 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 705:
-
-/* Line 1806 of yacc.c  */
-#line 2763 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
-    break;
-
-  case 706:
-
-/* Line 1806 of yacc.c  */
-#line 2765 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 707:
-
-/* Line 1806 of yacc.c  */
-#line 2767 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 709:
-
-/* Line 1806 of yacc.c  */
-#line 2774 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 711:
-
-/* Line 1806 of yacc.c  */
-#line 2785 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
-    break;
-
-  case 712:
-
-/* Line 1806 of yacc.c  */
-#line 2788 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
-    break;
-
-  case 713:
-
-/* Line 1806 of yacc.c  */
-#line 2790 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
-    break;
-
-  case 714:
-
-/* Line 1806 of yacc.c  */
-#line 2793 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
-    break;
-
-  case 715:
-
-/* Line 1806 of yacc.c  */
-#line 2795 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
-    break;
-
-  case 716:
-
-/* Line 1806 of yacc.c  */
-#line 2797 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
-    break;
-
-  case 718:
-
-/* Line 1806 of yacc.c  */
-#line 2812 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 719:
-
-/* Line 1806 of yacc.c  */
-#line 2814 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 720:
-
-/* Line 1806 of yacc.c  */
-#line 2819 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
-    break;
-
-  case 721:
-
-/* Line 1806 of yacc.c  */
-#line 2821 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 722:
-
-/* Line 1806 of yacc.c  */
-#line 2823 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 723:
-
-/* Line 1806 of yacc.c  */
-#line 2825 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
-    break;
-
-  case 724:
-
-/* Line 1806 of yacc.c  */
-#line 2827 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 726:
-
-/* Line 1806 of yacc.c  */
-#line 2833 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 727:
-
-/* Line 1806 of yacc.c  */
-#line 2835 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 728:
-
-/* Line 1806 of yacc.c  */
-#line 2837 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 729:
-
-/* Line 1806 of yacc.c  */
-#line 2842 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
-    break;
-
-  case 730:
-
-/* Line 1806 of yacc.c  */
-#line 2844 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
-    break;
-
-  case 733:
-
-/* Line 1806 of yacc.c  */
-#line 2854 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 736:
-
-/* Line 1806 of yacc.c  */
-#line 2865 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 737:
-
-/* Line 1806 of yacc.c  */
-#line 2867 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 738:
-
-/* Line 1806 of yacc.c  */
-#line 2869 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 739:
-
-/* Line 1806 of yacc.c  */
-#line 2871 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 740:
-
-/* Line 1806 of yacc.c  */
-#line 2873 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 741:
-
-/* Line 1806 of yacc.c  */
-#line 2875 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 742:
-
-/* Line 1806 of yacc.c  */
-#line 2882 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-    break;
-
-  case 743:
-
-/* Line 1806 of yacc.c  */
-#line 2884 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 744:
-
-/* Line 1806 of yacc.c  */
-#line 2886 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-    break;
-
-  case 745:
-
-/* Line 1806 of yacc.c  */
-#line 2888 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
-    break;
-
-  case 746:
-
-/* Line 1806 of yacc.c  */
-#line 2890 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 747:
-
-/* Line 1806 of yacc.c  */
-#line 2893 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-    break;
-
-  case 748:
-
-/* Line 1806 of yacc.c  */
-#line 2895 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 749:
-
-/* Line 1806 of yacc.c  */
-#line 2897 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
-    break;
-
-  case 750:
-
-/* Line 1806 of yacc.c  */
-#line 2899 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
-    break;
-
-  case 751:
-
-/* Line 1806 of yacc.c  */
-#line 2901 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 752:
-
-/* Line 1806 of yacc.c  */
-#line 2906 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
-    break;
-
-  case 753:
-
-/* Line 1806 of yacc.c  */
-#line 2908 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
-    break;
-
-  case 754:
-
-/* Line 1806 of yacc.c  */
-#line 2913 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
-    break;
-
-  case 755:
-
-/* Line 1806 of yacc.c  */
-#line 2915 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
-    break;
-
-  case 757:
-
-/* Line 1806 of yacc.c  */
-#line 2942 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 761:
-
-/* Line 1806 of yacc.c  */
-#line 2953 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 762:
-
-/* Line 1806 of yacc.c  */
-#line 2955 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 763:
-
-/* Line 1806 of yacc.c  */
-#line 2957 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 764:
-
-/* Line 1806 of yacc.c  */
-#line 2959 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 765:
-
-/* Line 1806 of yacc.c  */
-#line 2961 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
-    break;
-
-  case 766:
-
-/* Line 1806 of yacc.c  */
-#line 2963 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
-    break;
-
-  case 767:
-
-/* Line 1806 of yacc.c  */
-#line 2970 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-    break;
-
-  case 768:
-
-/* Line 1806 of yacc.c  */
-#line 2972 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-    break;
-
-  case 769:
-
-/* Line 1806 of yacc.c  */
-#line 2974 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 770:
-
-/* Line 1806 of yacc.c  */
-#line 2976 "parser.yy"
-    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-    break;
-
-  case 771:
-
-/* Line 1806 of yacc.c  */
-#line 2978 "parser.yy"
-    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
-    break;
-
-  case 772:
-
-/* Line 1806 of yacc.c  */
-#line 2980 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
-    break;
-
-  case 773:
-
-/* Line 1806 of yacc.c  */
-#line 2985 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
-    break;
-
-  case 774:
-
-/* Line 1806 of yacc.c  */
-#line 2992 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
-    break;
-
-  case 775:
-
-/* Line 1806 of yacc.c  */
-#line 2994 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
-    break;
-
-  case 778:
-
-/* Line 1806 of yacc.c  */
-#line 3018 "parser.yy"
-    { (yyval.en) = nullptr; }
-    break;
-
-  case 779:
-
-/* Line 1806 of yacc.c  */
-#line 3020 "parser.yy"
-    { (yyval.en) = (yyvsp[(2) - (2)].en); }
-    break;
-
-
-
-/* Line 1806 of yacc.c  */
-#line 9701 "Parser/parser.cc"
-      default: break;
-    }
-  /* User semantic actions sometimes alter yychar, and that requires
-     that yytoken be updated with the new translation.  We take the
-     approach of translating immediately before every use of yytoken.
-     One alternative is translating here after every semantic action,
-     but that translation would be missed if the semantic action invokes
-     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
-     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
-     incorrect destructor might then be invoked immediately.  In the
-     case of YYERROR or YYBACKUP, subsequent parser actions might lead
-     to an incorrect destructor call or verbose syntax error message
-     before the lookahead is translated.  */
-  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-
-  *++yyvsp = yyval;
-
-  /* Now `shift' the result of the reduction.  Determine what state
-     that goes to, based on the state we popped back to and the rule
-     number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTOKENS];
-
-  goto yynewstate;
-
-
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
-  /* Make sure we have latest lookahead translation.  See comments at
-     user semantic actions for why this is necessary.  */
-  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
-  /* If not already recovering from an error, report this error.  */
-  if (!yyerrstatus)
-    {
-      ++yynerrs;
-#if ! YYERROR_VERBOSE
-      yyerror (YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
-                                        yyssp, yytoken)
-      {
-        char const *yymsgp = YY_("syntax error");
-        int yysyntax_error_status;
-        yysyntax_error_status = YYSYNTAX_ERROR;
-        if (yysyntax_error_status == 0)
-          yymsgp = yymsg;
-        else if (yysyntax_error_status == 1)
-          {
-            if (yymsg != yymsgbuf)
-              YYSTACK_FREE (yymsg);
-            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
-            if (!yymsg)
-              {
-                yymsg = yymsgbuf;
-                yymsg_alloc = sizeof yymsgbuf;
-                yysyntax_error_status = 2;
-              }
-            else
-              {
-                yysyntax_error_status = YYSYNTAX_ERROR;
-                yymsgp = yymsg;
-              }
-          }
-        yyerror (yymsgp);
-        if (yysyntax_error_status == 2)
-          goto yyexhaustedlab;
-      }
-# undef YYSYNTAX_ERROR
-#endif
-    }
-
-
-
-  if (yyerrstatus == 3)
-    {
-      /* If just tried and failed to reuse lookahead token after an
-	 error, discard it.  */
-
-      if (yychar <= YYEOF)
-	{
-	  /* Return failure if at end of input.  */
-	  if (yychar == YYEOF)
-	    YYABORT;
-	}
-      else
-	{
-	  yydestruct ("Error: discarding",
-		      yytoken, &yylval);
-	  yychar = YYEMPTY;
-	}
-    }
-
-  /* Else will try to reuse lookahead token after shifting the error
-     token.  */
-  goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR.  |
-`---------------------------------------------------*/
-yyerrorlab:
-
-  /* Pacify compilers like GCC when the user code never invokes
-     YYERROR and the label yyerrorlab therefore never appears in user
-     code.  */
-  if (/*CONSTCOND*/ 0)
-     goto yyerrorlab;
-
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYERROR.  */
-  YYPOPSTACK (yylen);
-  yylen = 0;
-  YY_STACK_PRINT (yyss, yyssp);
-  yystate = *yyssp;
-  goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR.  |
-`-------------------------------------------------------------*/
-yyerrlab1:
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
-
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (!yypact_value_is_default (yyn))
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
-
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-	YYABORT;
-
-
-      yydestruct ("Error: popping",
-		  yystos[yystate], yyvsp);
-      YYPOPSTACK (1);
-      yystate = *yyssp;
-      YY_STACK_PRINT (yyss, yyssp);
-    }
-
-  *++yyvsp = yylval;
-
-
-  /* Shift the error token.  */
-  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
-  yystate = yyn;
-  goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here.  |
-`-------------------------------------*/
-yyacceptlab:
-  yyresult = 0;
-  goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here.  |
-`-----------------------------------*/
-yyabortlab:
-  yyresult = 1;
-  goto yyreturn;
-
-#if !defined(yyoverflow) || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
-yyexhaustedlab:
-  yyerror (YY_("memory exhausted"));
-  yyresult = 2;
-  /* Fall through.  */
-#endif
-
-yyreturn:
-  if (yychar != YYEMPTY)
-    {
-      /* Make sure we have latest lookahead translation.  See comments at
-         user semantic actions for why this is necessary.  */
-      yytoken = YYTRANSLATE (yychar);
-      yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval);
-    }
-  /* Do not reclaim the symbols of the rule which action triggered
-     this YYABORT or YYACCEPT.  */
-  YYPOPSTACK (yylen);
-  YY_STACK_PRINT (yyss, yyssp);
-  while (yyssp != yyss)
-    {
-      yydestruct ("Cleanup: popping",
-		  yystos[*yyssp], yyvsp);
-      YYPOPSTACK (1);
-    }
-#ifndef yyoverflow
-  if (yyss != yyssa)
-    YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
-  if (yymsg != yymsgbuf)
-    YYSTACK_FREE (yymsg);
-#endif
-  /* Make sure YYID is used.  */
-  return YYID (yyresult);
-}
-
-
-
-/* Line 2067 of yacc.c  */
-#line 3023 "parser.yy"
-
-// ----end of grammar----
-
-extern char *yytext;
-
-void yyerror( const char * ) {
-	cout << "Error ";
-	if ( yyfilename ) {
-		cout << "in file " << yyfilename << " ";
-	} // if
-	cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl;
-}
-
-// Local Variables: //
-// mode: c++ //
-// tab-width: 4 //
-// compile-command: "make install" //
-// End: //
-
Index: src/Parser/parser.h
===================================================================
--- src/Parser/parser.h	(revision d3bc0ad5ca6325ee71ad0755de4023871114d0e7)
+++ 	(revision )
@@ -1,311 +1,0 @@
-/* A Bison parser, made by GNU Bison 2.5.  */
-
-/* Bison interface for Yacc-like parsers in C
-   
-      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
-   
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-/* As a special exception, you may create a larger work that contains
-   part or all of the Bison parser skeleton and distribute that work
-   under terms of your choice, so long as that work isn't itself a
-   parser generator using the skeleton or a modified version thereof
-   as a parser skeleton.  Alternatively, if you modify or redistribute
-   the parser skeleton itself, you may (at your option) remove this
-   special exception, which will cause the skeleton and the resulting
-   Bison output files to be licensed under the GNU General Public
-   License without this special exception.
-   
-   This special exception was added by the Free Software Foundation in
-   version 2.2 of Bison.  */
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     TYPEDEF = 258,
-     EXTERN = 259,
-     STATIC = 260,
-     AUTO = 261,
-     REGISTER = 262,
-     THREADLOCAL = 263,
-     INLINE = 264,
-     FORTRAN = 265,
-     NORETURN = 266,
-     CONST = 267,
-     VOLATILE = 268,
-     RESTRICT = 269,
-     ATOMIC = 270,
-     FORALL = 271,
-     LVALUE = 272,
-     MUTEX = 273,
-     VOID = 274,
-     CHAR = 275,
-     SHORT = 276,
-     INT = 277,
-     LONG = 278,
-     FLOAT = 279,
-     DOUBLE = 280,
-     SIGNED = 281,
-     UNSIGNED = 282,
-     ZERO_T = 283,
-     ONE_T = 284,
-     VALIST = 285,
-     BOOL = 286,
-     COMPLEX = 287,
-     IMAGINARY = 288,
-     TYPEOF = 289,
-     LABEL = 290,
-     ENUM = 291,
-     STRUCT = 292,
-     UNION = 293,
-     COROUTINE = 294,
-     MONITOR = 295,
-     THREAD = 296,
-     OTYPE = 297,
-     FTYPE = 298,
-     DTYPE = 299,
-     TTYPE = 300,
-     TRAIT = 301,
-     SIZEOF = 302,
-     OFFSETOF = 303,
-     ATTRIBUTE = 304,
-     EXTENSION = 305,
-     IF = 306,
-     ELSE = 307,
-     SWITCH = 308,
-     CASE = 309,
-     DEFAULT = 310,
-     DO = 311,
-     WHILE = 312,
-     FOR = 313,
-     BREAK = 314,
-     CONTINUE = 315,
-     GOTO = 316,
-     RETURN = 317,
-     CHOOSE = 318,
-     DISABLE = 319,
-     ENABLE = 320,
-     FALLTHRU = 321,
-     TRY = 322,
-     CATCH = 323,
-     CATCHRESUME = 324,
-     FINALLY = 325,
-     THROW = 326,
-     THROWRESUME = 327,
-     AT = 328,
-     ASM = 329,
-     ALIGNAS = 330,
-     ALIGNOF = 331,
-     GENERIC = 332,
-     STATICASSERT = 333,
-     IDENTIFIER = 334,
-     QUOTED_IDENTIFIER = 335,
-     TYPEDEFname = 336,
-     TYPEGENname = 337,
-     ATTR_IDENTIFIER = 338,
-     ATTR_TYPEDEFname = 339,
-     ATTR_TYPEGENname = 340,
-     INTEGERconstant = 341,
-     CHARACTERconstant = 342,
-     STRINGliteral = 343,
-     REALDECIMALconstant = 344,
-     REALFRACTIONconstant = 345,
-     FLOATINGconstant = 346,
-     ZERO = 347,
-     ONE = 348,
-     ARROW = 349,
-     ICR = 350,
-     DECR = 351,
-     LS = 352,
-     RS = 353,
-     LE = 354,
-     GE = 355,
-     EQ = 356,
-     NE = 357,
-     ANDAND = 358,
-     OROR = 359,
-     ELLIPSIS = 360,
-     MULTassign = 361,
-     DIVassign = 362,
-     MODassign = 363,
-     PLUSassign = 364,
-     MINUSassign = 365,
-     LSassign = 366,
-     RSassign = 367,
-     ANDassign = 368,
-     ERassign = 369,
-     ORassign = 370,
-     ATassign = 371,
-     THEN = 372
-   };
-#endif
-/* Tokens.  */
-#define TYPEDEF 258
-#define EXTERN 259
-#define STATIC 260
-#define AUTO 261
-#define REGISTER 262
-#define THREADLOCAL 263
-#define INLINE 264
-#define FORTRAN 265
-#define NORETURN 266
-#define CONST 267
-#define VOLATILE 268
-#define RESTRICT 269
-#define ATOMIC 270
-#define FORALL 271
-#define LVALUE 272
-#define MUTEX 273
-#define VOID 274
-#define CHAR 275
-#define SHORT 276
-#define INT 277
-#define LONG 278
-#define FLOAT 279
-#define DOUBLE 280
-#define SIGNED 281
-#define UNSIGNED 282
-#define ZERO_T 283
-#define ONE_T 284
-#define VALIST 285
-#define BOOL 286
-#define COMPLEX 287
-#define IMAGINARY 288
-#define TYPEOF 289
-#define LABEL 290
-#define ENUM 291
-#define STRUCT 292
-#define UNION 293
-#define COROUTINE 294
-#define MONITOR 295
-#define THREAD 296
-#define OTYPE 297
-#define FTYPE 298
-#define DTYPE 299
-#define TTYPE 300
-#define TRAIT 301
-#define SIZEOF 302
-#define OFFSETOF 303
-#define ATTRIBUTE 304
-#define EXTENSION 305
-#define IF 306
-#define ELSE 307
-#define SWITCH 308
-#define CASE 309
-#define DEFAULT 310
-#define DO 311
-#define WHILE 312
-#define FOR 313
-#define BREAK 314
-#define CONTINUE 315
-#define GOTO 316
-#define RETURN 317
-#define CHOOSE 318
-#define DISABLE 319
-#define ENABLE 320
-#define FALLTHRU 321
-#define TRY 322
-#define CATCH 323
-#define CATCHRESUME 324
-#define FINALLY 325
-#define THROW 326
-#define THROWRESUME 327
-#define AT 328
-#define ASM 329
-#define ALIGNAS 330
-#define ALIGNOF 331
-#define GENERIC 332
-#define STATICASSERT 333
-#define IDENTIFIER 334
-#define QUOTED_IDENTIFIER 335
-#define TYPEDEFname 336
-#define TYPEGENname 337
-#define ATTR_IDENTIFIER 338
-#define ATTR_TYPEDEFname 339
-#define ATTR_TYPEGENname 340
-#define INTEGERconstant 341
-#define CHARACTERconstant 342
-#define STRINGliteral 343
-#define REALDECIMALconstant 344
-#define REALFRACTIONconstant 345
-#define FLOATINGconstant 346
-#define ZERO 347
-#define ONE 348
-#define ARROW 349
-#define ICR 350
-#define DECR 351
-#define LS 352
-#define RS 353
-#define LE 354
-#define GE 355
-#define EQ 356
-#define NE 357
-#define ANDAND 358
-#define OROR 359
-#define ELLIPSIS 360
-#define MULTassign 361
-#define DIVassign 362
-#define MODassign 363
-#define PLUSassign 364
-#define MINUSassign 365
-#define LSassign 366
-#define RSassign 367
-#define ANDassign 368
-#define ERassign 369
-#define ORassign 370
-#define ATassign 371
-#define THEN 372
-
-
-
-
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
-{
-
-/* Line 2068 of yacc.c  */
-#line 142 "parser.yy"
-
-	Token tok;
-	ParseNode * pn;
-	ExpressionNode * en;
-	DeclarationNode * decl;
-	DeclarationNode::Aggregate aggKey;
-	DeclarationNode::TypeClass tclass;
-	StatementNode * sn;
-	ConstantExpr * constant;
-	ForCtl * fctl;
-	LabelNode * label;
-	InitializerNode * in;
-	OperKinds op;
-	std::string * str;
-	bool flag;
-
-
-
-/* Line 2068 of yacc.c  */
-#line 303 "Parser/parser.h"
-} YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-extern YYSTYPE yylval;
-
-
