#line 3 "lex.yy.c" #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 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yyget_lval #define yyget_lval_ALREADY_DEFINED #else #define yyget_lval yyget_lval #endif #ifdef yyset_lval #define yyset_lval_ALREADY_DEFINED #else #define yyset_lval yyset_lval #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . 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 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 #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void* yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* 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 yyg->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 ((yyg->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 , yyscanner ) #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 #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* 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 = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->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, yyg->yytext_ptr , yyscanner ) #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. */ int 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 */ /* 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 ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->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 yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void yyrestart ( FILE *input_file , yyscan_t yyscanner ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); void yypop_buffer_state ( yyscan_t yyscanner ); static void yyensure_buffer_stack ( yyscan_t yyscanner ); static void yy_load_buffer_state ( yyscan_t yyscanner ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); void *yyalloc ( yy_size_t , yyscan_t yyscanner ); void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); void yyfree ( void * , yyscan_t yyscanner ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; typedef int yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state ( yyscan_t yyscanner ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner); static int yy_get_next_buffer ( yyscan_t yyscanner ); static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 163 #define YY_END_OF_BUFFER 164 /* 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 const flex_int16_t yy_acclist[1597] = { 0, 62, 62, 62, 62, 62, 62, 62, 62, 138, 138, 138, 138, 149, 149, 160, 160, 164, 114, 163, 115, 163, 115, 163, 113, 163, 117, 163, 114, 163, 114, 163, 114, 163, 117, 163, 98, 99, 163, 62, 98, 99, 163, 84, 163, 84, 98, 99, 163, 63, 98, 99, 163, 98, 99, 163, 55, 98, 99, 163, 61, 98, 99, 163, 98, 99, 163, 89, 98, 99, 163, 85, 98, 99, 163, 1, 19, 98, 99, 163,16400, 97, 98, 99, 163, 83, 98, 99, 163, 19, 98, 99, 163,16400, 55, 98, 99, 163, 98, 99, 163, 67, 98, 99, 163, 54, 98, 99, 163, 99, 163, 99, 163, 99, 163, 99, 163, 62, 98, 99, 163, 20, 98, 99, 163,16401, 72, 98, 99, 163, 58, 98, 99, 163, 20, 98, 99, 163,16401, 58, 98, 99, 163, 89, 98, 99, 163, 1, 20, 98, 99, 163,16401, 20, 98, 99, 163,16401, 56, 98, 99, 163, 20, 98, 99, 163,16401, 59, 98, 99, 163, 99, 163, 99, 163, 99, 163, 62, 98, 99, 163, 21, 98, 99, 163,16402, 72, 98, 99, 163, 21, 98, 99, 163,16402, 89, 98, 99, 163, 1, 21, 98, 99, 163,16402, 21, 98, 99, 163,16402, 56, 98, 99, 163, 21, 98, 99, 163,16402, 99, 163, 99, 163, 99, 163, 111, 112, 163, 111, 112, 163, 105, 163, 105, 111, 112, 163, 107, 111, 112, 163, 100, 107, 111, 112, 163, 110, 111, 112, 163, 112, 163, 112, 163, 112, 163, 112, 163, 106, 163, 106, 111, 112, 163, 146, 152, 163, 146, 152, 163, 132, 163, 132, 146, 152, 163, 120, 146, 152, 163, 146, 152, 163, 152, 163, 152, 163, 152, 163, 152, 163, 131, 146, 152, 163, 133, 163, 133, 146, 152, 163, 130, 131, 146, 152, 163, 130, 131, 146, 152, 163, 130, 131, 146, 152, 163, 131, 152, 163, 131, 152, 163, 131, 152, 163, 131, 152, 163, 134, 163, 134, 146, 152, 163, 137, 146, 152, 163, 146, 152, 163, 121, 146, 152, 163, 62, 98, 99, 163, 98, 99, 163, 98, 99, 163, 89, 98, 99, 163, 1, 10, 19, 98, 99, 163,16400, 56, 98, 99, 163, 98, 99, 163, 138, 146, 152, 163, 135, 163, 135, 146, 152, 163, 146, 152, 163, 146, 152, 163, 151, 163, 149, 151, 163, 150, 163, 150, 151, 163, 148, 151, 163, 147, 151, 163, 156, 161, 163, 160, 161, 163, 159, 163, 156, 159, 161, 163, 157, 158, 161, 162, 163, 156, 161, 163, 158, 161, 163, 156, 161, 163, 153, 156, 161, 163, 153, 156, 161, 163, 156, 161, 163, 156, 161, 163, 146, 163, 145, 163, 145, 146, 163, 139, 146, 163, 146, 163, 163, 163, 163, 163, 114, 114, 114, 114, 115, 113, 119, 116, 114, 114, 114, 119, 62, 88, 84, 68, 66, 64, 70, 1, 87, 4, 90, 1, 19,16400, 19,16400, 19,16400, 97, 96, 92, 92, 96, 93, 96, 94, 96, 95, 96, 98, 62, 88, 20, 22,16401, 20,16401, 20, 22,16401, 20,16401, 20,16401, 79, 73, 78, 76, 75, 74, 77, 1, 20, 22,16401, 57, 4, 20, 22,16401, 20, 22,16401, 20,16401, 22, 20,16401, 20,16401, 20,16401, 9, 20,16401, 92, 20, 98, 16401, 62, 88, 21, 23,16402, 21,16402, 21, 23, 16402, 21,16402, 21,16402, 1, 21, 23,16402, 82, 4, 21, 23,16402, 21, 23,16402, 21,16402, 23, 21,16402, 21,16402, 21,16402, 9, 21,16402, 21, 98,16402, 105, 109, 104, 104, 109, 101, 109, 108, 109, 102, 109, 103, 109, 109, 111, 106, 132, 128, 124, 125, 124, 125, 128, 122, 128, 126, 128, 127, 128, 146, 133, 130, 129, 130, 129, 130, 134, 136, 9, 136, 136, 123, 128, 62, 88, 1, 10, 1, 10, 19,16400, 138, 135, 125, 125, 128, 149, 150, 156, 160, 159, 156, 153, 156, 153, 156, 156, 156, 153, 156, 156, 156, 145, 144, 140, 144, 143, 144, 119, 114, 119, 118, 118, 119, 86, 91, 69, 71, 65, 2, 2, 2, 60, 4, 5, 5, 5, 8, 4, 5, 8, 8208, 5, 8, 5, 8, 4, 19, 16400, 8208, 92, 94, 94, 94, 20, 22,16401, 20, 22,16401, 20, 22,16401, 20, 22,16401, 8209, 20, 22,16401, 20, 22,16401, 20, 22,16401, 22, 22, 81, 80, 20, 22,16401, 20,16401, 20,16401, 4, 8209, 1, 20, 22,16401, 20, 22,16401, 6, 4, 6, 6, 6, 6, 8, 8, 4, 6, 8, 8209, 6, 8, 8, 6, 8, 8, 8, 8, 20, 22, 16401, 4, 20, 22,16401, 20, 22,16401, 20, 22, 16401, 22, 20, 22,16401, 22, 20, 22,16401, 20, 16401, 20,16401, 9, 20, 22,16401, 21, 23,16402, 21, 23,16402, 21, 23,16402, 21, 23,16402, 8210, 21, 23,16402, 21, 23,16402, 21, 23,16402, 23, 23, 21, 23,16402, 21,16402, 21,16402, 4, 8210, 1, 21, 23,16402, 21, 23,16402, 7, 4, 7, 7, 7, 7, 8, 8, 4, 7, 8, 8210, 7, 8, 8, 7, 8, 8, 8, 8, 21, 23,16402, 4, 21, 23,16402, 21, 23,16402, 21, 23,16402, 23, 21, 23,16402, 23, 21, 23,16402, 21,16402, 21,16402, 9, 21, 23,16402, 104, 104, 102, 102, 102, 124, 125, 124, 125, 126, 126, 126, 9, 2, 14, 2, 12, 8, 8208, 125, 125, 81, 156, 80, 156, 153, 156, 156, 153, 156, 156, 156, 118, 5, 4, 2, 3, 3, 2, 3, 2, 3, 51, 51, 51, 51, 51, 51, 33, 4, 5, 8, 4, 5, 4, 5, 8208, 4, 5, 4, 5, 19,16400, 5, 19,16400, 6, 4, 20, 22,16401, 20, 22,16401, 20, 22,16401, 20, 22,16401, 20, 22,16401, 20, 22,16401, 22, 22, 22, 22, 20, 22,16401, 20, 22,16401, 20, 22,16401, 4, 6, 8209, 6, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, 6, 4, 6, 4, 6, 8209, 6, 4, 6, 6, 20, 22,16401, 20, 22,16401, 4, 6, 20, 22,16401, 6, 20, 22,16401, 22, 20, 22,16401, 20, 22, 16401, 20, 22,16401, 9, 20, 22,16401, 7, 4, 21, 23,16402, 21, 23,16402, 21, 23,16402, 21, 23,16402, 21, 23,16402, 21, 23,16402, 23, 23, 23, 23, 21, 23,16402, 21, 23,16402, 21, 23, 16402, 4, 7, 8210, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 4, 7, 4, 7, 8210, 7, 4, 7, 7, 21, 23,16402, 21, 23, 16402, 4, 7, 21, 23,16402, 7, 21, 23,16402, 23, 21, 23,16402, 21, 23,16402, 21, 23,16402, 15, 13, 11, 9, 21, 23,16402, 2, 3, 14, 2, 3, 12, 156, 156, 24, 32, 34, 45, 45, 45, 45, 45, 45, 40, 40, 40, 40, 40, 40, 48, 4, 5, 8208, 4, 6, 20, 22,16401, 20, 22,16401, 20, 22,16401, 22, 6, 6, 6, 6, 6, 4, 6, 4, 6, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22, 16401, 6, 20, 22,16401, 6, 8209, 6, 20, 22, 16401, 6, 20, 22,16401, 4, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 22, 6, 22, 4, 7, 21, 23,16402, 21, 23,16402, 21, 23, 16402, 23, 7, 7, 7, 7, 7, 4, 7, 4, 7, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23, 16402, 7, 8210, 7, 21, 23,16402, 7, 21, 23, 16402, 4, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 23, 7, 23, 156, 154, 36, 36, 36, 36, 36, 36, 52, 52, 52, 52, 52, 52, 53, 43, 43, 43, 43, 43, 43, 26, 25, 25, 25, 25, 25, 25, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 8209, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 22, 6, 22, 6, 22, 6, 22, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 8210, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 23, 7, 23, 7, 23, 7, 23, 155, 142, 142, 29, 29, 29, 29, 29, 29, 28, 49, 49, 49, 49, 49, 49, 44, 42, 27, 37, 37, 37, 37, 37, 37, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22, 16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22,16401, 6, 20, 22, 16401, 6, 22, 7, 21, 23,16402, 7, 21, 23, 16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 21, 23, 16402, 7, 21, 23,16402, 7, 21, 23,16402, 7, 23, 30, 30, 30, 30, 30, 30, 47, 47, 47, 47, 47, 47, 31, 31, 31, 31, 31, 31, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 41, 35, 35, 35, 35, 35, 35, 50, 46, 46, 46, 46, 46, 46, 141 } ; static const flex_int16_t yy_accept[1644] = { 0, 1, 1, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 39, 43, 45, 49, 53, 56, 60, 64, 67, 71, 75, 81, 85, 89, 94, 98, 101, 105, 109, 111, 113, 115, 117, 121, 126, 130, 134, 139, 143, 147, 153, 158, 162, 167, 171, 173, 175, 177, 181, 186, 190, 195, 199, 205, 210, 214, 219, 221, 223, 225, 228, 231, 233, 237, 241, 246, 250, 252, 254, 256, 258, 260, 264, 267, 270, 272, 276, 280, 283, 285, 287, 289, 291, 295, 297, 301, 306, 311, 316, 319, 322, 325, 328, 330, 334, 338, 341, 345, 349, 352, 355, 359, 366, 370, 373, 377, 379, 383, 386, 389, 391, 394, 396, 399, 402, 405, 408, 411, 413, 417, 422, 425, 428, 431, 435, 439, 442, 445, 447, 449, 452, 455, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 467, 468, 469, 470, 471, 472, 472, 473, 474, 474, 475, 475, 476, 477, 477, 478, 479, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 481, 482, 483, 484, 484, 487, 489, 491, 492, 492, 493, 494, 496, 498, 500, 502, 503, 503, 503, 504, 504, 505, 505, 508, 510, 510, 513, 513, 515, 515, 515, 515, 515, 517, 518, 519, 520, 521, 522, 523, 524, 524, 528, 529, 530, 530, 533, 536, 538, 539, 541, 541, 541, 541, 543, 543, 545, 548, 548, 548, 548, 549, 552, 552, 552, 553, 553, 554, 554, 557, 559, 559, 562, 562, 564, 564, 564, 564, 566, 566, 570, 571, 572, 572, 575, 578, 580, 581, 583, 583, 583, 583, 585, 585, 587, 590, 590, 590, 590, 593, 593, 593, 593, 593, 594, 595, 596, 598, 600, 602, 604, 606, 607, 608, 608, 608, 609, 609, 609, 610, 611, 613, 616, 618, 620, 622, 623, 623, 623, 624, 625, 627, 629, 630, 630, 631, 631, 633, 634, 636, 637, 638, 638, 638, 640, 640, 644, 644, 645, 645, 646, 647, 649, 650, 651, 652, 653, 654, 655, 657, 659, 660, 661, 663, 664, 665, 666, 667, 669, 671, 672, 673, 674, 675, 677, 678, 679, 679, 679, 680, 681, 682, 682, 683, 683, 684, 684, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 685, 686, 686, 686, 688, 689, 690, 691, 695, 697, 699, 699, 702, 703, 704, 705, 706, 707, 707, 707, 707, 707, 710, 713, 716, 719, 719, 719, 719, 720, 723, 726, 729, 729, 729, 729, 730, 730, 731, 731, 731, 731, 731, 731, 732, 733, 736, 738, 740, 740, 740, 740, 742, 746, 749, 750, 750, 750, 752, 753, 753, 754, 754, 754, 754, 756, 757, 761, 763, 764, 766, 767, 768, 769, 772, 776, 779, 782, 783, 786, 786, 786, 786, 787, 787, 787, 787, 787, 787, 790, 792, 794, 794, 794, 794, 798, 798, 798, 798, 798, 798, 798, 801, 804, 807, 810, 810, 810, 810, 811, 814, 817, 820, 820, 820, 820, 821, 821, 822, 822, 822, 822, 822, 822, 825, 827, 829, 829, 829, 829, 831, 835, 838, 839, 839, 839, 841, 842, 842, 843, 843, 843, 843, 845, 846, 850, 852, 853, 855, 856, 857, 858, 861, 865, 868, 871, 872, 875, 875, 875, 875, 876, 876, 876, 876, 876, 876, 879, 881, 883, 883, 883, 883, 883, 883, 883, 887, 887, 887, 887, 888, 889, 890, 891, 892, 892, 894, 896, 897, 898, 899, 899, 900, 900, 902, 902, 904, 904, 906, 907, 908, 910, 912, 914, 915, 917, 918, 919, 919, 919, 920, 921, 922, 924, 925, 927, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 930, 931, 932, 933, 934, 935, 935, 935, 935, 935, 935, 936, 936, 936, 936, 936, 936, 936, 936, 939, 939, 941, 944, 946, 946, 950, 953, 954, 954, 955, 958, 961, 964, 964, 964, 964, 964, 964, 967, 970, 973, 973, 973, 973, 973, 973, 974, 975, 976, 976, 976, 976, 977, 977, 977, 977, 977, 977, 977, 980, 983, 986, 986, 986, 986, 986, 986, 989, 990, 991, 991, 991, 991, 992, 993, 994, 996, 997, 998, 998, 998, 998, 999, 999, 999, 999, 1000, 1000, 1000, 1000, 1001, 1003, 1003, 1003, 1006, 1007, 1009, 1013, 1016, 1016, 1021, 1025, 1025, 1025, 1025, 1025, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1029, 1032, 1035, 1035, 1035, 1035, 1035, 1035, 1039, 1039, 1040, 1040, 1041, 1044, 1047, 1050, 1050, 1050, 1050, 1050, 1050, 1053, 1056, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1061, 1062, 1062, 1062, 1062, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1066, 1069, 1072, 1072, 1072, 1072, 1072, 1072, 1075, 1076, 1077, 1077, 1077, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1084, 1084, 1084, 1085, 1085, 1085, 1085, 1086, 1086, 1086, 1086, 1087, 1089, 1089, 1089, 1092, 1093, 1095, 1099, 1102, 1102, 1107, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1115, 1118, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1123, 1123, 1124, 1128, 1128, 1131, 1134, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1141, 1142, 1142, 1143, 1144, 1145, 1145, 1145, 1146, 1147, 1148, 1148, 1149, 1150, 1151, 1151, 1151, 1151, 1152, 1152, 1153, 1155, 1157, 1160, 1163, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1171, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1176, 1180, 1184, 1188, 1192, 1192, 1192, 1192, 1196, 1198, 1202, 1206, 1211, 1215, 1215, 1215, 1215, 1219, 1223, 1227, 1227, 1227, 1227, 1229, 1229, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1233, 1236, 1239, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1244, 1244, 1244, 1244, 1244, 1244, 1245, 1245, 1245, 1245, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1247, 1248, 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1252, 1256, 1260, 1264, 1268, 1268, 1268, 1268, 1272, 1274, 1278, 1282, 1287, 1291, 1291, 1291, 1291, 1295, 1299, 1303, 1303, 1303, 1303, 1305, 1305, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1308, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1310, 1311, 1312, 1312, 1313, 1314, 1315, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1321, 1322, 1322, 1322, 1322, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1328, 1328, 1328, 1329, 1329, 1329, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1339, 1343, 1347, 1347, 1347, 1347, 1347, 1347, 1351, 1355, 1359, 1359, 1359, 1359, 1361, 1365, 1369, 1373, 1373, 1373, 1373, 1373, 1373, 1377, 1381, 1385, 1385, 1385, 1385, 1385, 1385, 1387, 1389, 1391, 1391, 1391, 1391, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1397, 1401, 1405, 1405, 1405, 1405, 1405, 1405, 1409, 1413, 1417, 1417, 1417, 1417, 1419, 1423, 1427, 1431, 1431, 1431, 1431, 1431, 1431, 1435, 1439, 1443, 1443, 1443, 1443, 1443, 1443, 1445, 1447, 1449, 1449, 1449, 1449, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1451, 1452, 1453, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1467, 1467, 1467, 1467, 1468, 1468, 1468, 1469, 1469, 1469, 1470, 1470, 1470, 1470, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1480, 1484, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1492, 1496, 1500, 1500, 1500, 1500, 1500, 1500, 1504, 1508, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1518, 1522, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1530, 1534, 1538, 1538, 1538, 1538, 1538, 1538, 1542, 1546, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1550, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1582, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1597, 1597 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 6, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 22, 22, 23, 24, 6, 25, 6, 26, 27, 28, 28, 29, 30, 31, 29, 32, 33, 32, 34, 32, 32, 32, 35, 32, 32, 32, 36, 37, 38, 32, 32, 39, 32, 32, 32, 40, 41, 42, 43, 32, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 32, 54, 55, 56, 57, 58, 59, 32, 60, 61, 62, 63, 64, 39, 65, 66, 32, 67, 68, 69, 9, 1, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71 } ; static const YY_CHAR yy_meta[75] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 6, 9, 10, 2, 6, 11, 10, 11, 12, 13, 14, 14, 14, 14, 15, 16, 6, 6, 17, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 10, 6, 7, 19, 1, 14, 14, 14, 14, 20, 14, 18, 18, 18, 18, 21, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 10, 1, 7, 1, 1, 22, 22, 22 } ; static const flex_int16_t yy_base[1891] = { 0, 0, 3, 77, 0, 151, 0, 225, 0, 298, 371, 6, 8, 345, 351, 445, 0, 518, 591, 664, 0, 357, 527, 706, 779, 852, 901, 950, 1018, 532, 537, 5344, 232,11243, 5335, 5332, 11, 247, 253, 258, 12, 11243, 24,11243, 5332,11243, 612, 1086, 5316, 30, 37, 11243, 383, 0,11243, 5315,11243, 1158,11243,11243,11243, 5258, 5255, 5241, 544, 616, 1217,11243, 1275, 5296, 12, 6, 628, 698, 374,11243, 5238, 5237, 5236, 565, 714, 5282, 1342, 723, 350, 731, 745, 534, 5234, 5233, 5232, 11243, 13,11243, 5298,11243,11243, 1416,11243, 5230, 5229, 5228,11243, 5294,11243, 572,11243, 5293,11243, 1488,11243, 5225, 5223, 5222,11243,11243, 5288, 0, 41, 1535,11243, 5216, 5213, 5209,11243, 5275, 1578, 1643,11243, 340, 783, 45, 339, 416, 5269, 18, 626,11243, 5273, 521, 65, 11243, 331,11243, 5271,11243,11243, 0, 332,11243, 5270, 11243, 387,11243, 595, 526, 790, 5226, 5210,11243,11243, 5264,11243, 829,11243, 5196, 5195, 5194, 454, 568, 574, 622,11243, 5258, 722, 0,11243, 548, 719, 725, 820, 67, 922, 844, 888, 957,11243,11243, 605,11243,11243, 11243, 975, 982, 536, 0, 822, 1664, 861, 976, 1001, 937, 1009, 982, 970, 1159, 1024, 1153, 1004, 1196, 1172, 1248, 1205, 1056, 5191, 5189, 5188, 794, 961, 1150, 341, 1268,11243, 1727, 1288, 5237, 1169, 0, 1134,11243, 567, 624,11243, 811, 0,11243, 5167, 5166, 1309, 1319, 1332, 1351, 1488, 1357, 1313, 1496, 1319, 1367, 5164, 5163, 5162, 1382, 1587,11243,11243,11243,11243,11243,11243,11243, 1324, 1794,11243, 1861, 1935, 1603, 1801, 1822, 625, 1833, 5160, 5159, 5158, 2002, 5204, 2069, 0, 5156, 5154, 5153, 835, 1377, 5152, 5151, 1652, 1389, 1895, 1618, 2007, 2010, 1480, 2035, 1502, 2077, 5149, 5148, 5147, 2094, 1521, 2161,11243, 2228, 2302, 2108, 2147, 2168, 786, 2189, 5142, 5133, 5132, 2200, 1005, 2369, 0, 5127, 5126, 5123, 2376, 5122, 5115, 632, 700,11243,11243, 578, 910,11243,11243, 1173,11243, 0,11243, 5114, 5098,11243, 652, 712,11243,11243, 721, 923,11243, 1181, 0,11243, 5096, 5095,11243, 0, 848, 2432,11243, 910,11243, 1587, 1607, 0,11243, 758, 982, 1661, 636, 1677, 1622, 1786, 5118, 1011, 748,11243, 727, 1163, 841,11243, 0, 883,11243, 1832, 777, 1882, 1812, 1904, 2114, 5104, 5095,11243,11243,11243, 708, 0, 1140, 873,11243, 960, 935,11243, 1992, 2035,11243,11243,11243, 1052, 1070, 1154, 1228, 0, 2464, 1499, 5078, 5077, 5075, 679, 5088, 277, 5092, 1217, 5084, 5091, 5078, 5077, 1171, 5063, 944, 5071, 255, 5059, 5058, 1856, 1813, 2041, 1998, 2074, 1993, 2129, 2152, 2195, 2208, 2356, 1505, 2514, 2192, 2087, 2223, 2360, 2392, 2214, 2364, 2383, 2402, 2424, 2397, 5040, 5026, 2270, 2588, 0, 2513, 0, 2485,11243, 2528, 0, 2547, 2388, 2553, 2644, 1182, 1336,11243, 5044, 4997, 2648, 2663, 2658, 2679, 2684, 2687, 2701, 4996, 4995, 4993, 2678, 2723, 2755, 2760, 4992, 4985, 4984, 2741, 5028, 1444, 4977, 4972, 4967, 4964, 4963,11243,11243, 2763, 2777, 2799, 4958, 4955, 4953, 2866, 2933, 2845, 2372, 4998, 2830, 3000, 1529, 2479, 2897, 4943, 4941, 4940, 2719, 4986, 3067, 1539, 2833, 2907, 4938, 4936, 4930, 2860, 3134, 2940, 2967, 1559, 3007, 4926, 4925, 4918, 1774, 4912, 4910, 4904, 4900, 4897, 3028, 3039, 3091, 4889, 4888, 4886, 3201, 4885, 4884, 4876, 2789, 3268, 2977, 3109, 3161, 3168, 3209, 4875, 4871, 4869, 2824, 3237, 3242, 3285, 4862, 4860, 4858, 2995, 4903, 1790, 4851, 4850, 4842, 4831, 4830, 3296, 3310, 3321, 4825, 4822, 4819, 3388, 3455, 3357, 2796, 4858, 3098, 3522, 1798, 2914, 3407, 4802, 4796, 4792, 2861, 4837, 3589, 1817, 2928, 3419, 4788, 4786, 4784, 3181, 3656, 3428, 3441, 1966, 3482, 4774, 4773, 4772, 2099, 4771, 4770, 4763, 4746, 4745, 3489, 3549, 3556, 4739, 4735, 4730, 2012, 3038, 786, 3723, 4725, 4723, 4722, 1310, 1255, 2361,11243, 4767, 4719, 1378, 1262, 2381, 11243, 4764, 4717, 2879, 2179, 2209, 0, 3779, 0, 2923, 1544, 1279, 0, 0, 3194, 3108, 3124, 4720, 4730, 0, 2264,11243, 3566, 3620, 1074, 0, 2559, 3811, 4703, 4702, 4712, 4718, 4704, 1181, 4697, 4699, 4703, 373, 4682, 4689, 1243, 4668, 0, 4663, 4651, 4667, 4655, 1653, 4643, 4644, 4643, 4642, 4628, 4631, 3023, 3344, 3579, 3642, 3612, 3690, 3696, 3781, 3715, 3800, 3863, 3875, 3879, 3883, 3887,11243, 3891, 3921, 4617, 4611, 4607, 3918, 3983, 4057, 4003, 1674, 11243, 4019, 4131, 4015, 4145, 4031, 4154, 4600, 3690, 3128, 3341, 3227, 3382, 3733, 3236, 4651, 3797, 3378, 4162, 4170, 4198, 4206, 4594, 4590, 4588, 4587, 4585, 4223, 4230, 4266, 4583, 4578, 4577, 4560, 4552, 3278, 3446, 2643, 4551, 4550, 4548, 2647, 4547, 4537, 4535, 4534, 4530, 4529, 4283, 4290, 4304, 4511, 4505, 4504, 4503, 4499, 4371, 3019, 2660, 4497, 4496, 4489, 2751, 3086, 3101, 4438, 2900, 4242, 4488, 4484, 4483, 2991, 4477, 4463, 4461, 3718, 4459, 4451, 4450, 3977, 3502, 4446, 4445, 3515, 4088, 3754, 4327, 4344, 4402, 4505, 4424, 3595, 4444, 4433, 4432, 3004, 4425, 4424, 4416, 4412, 4408, 4407, 4401, 4384, 4445, 4462, 4522, 4382, 4379, 4378, 4366, 4361, 4589, 4356, 4541, 3548, 4563, 4529, 4611, 4616, 4345, 4342, 4341, 4335, 4334, 4623, 4648, 4659, 4316, 4315, 4299, 4298, 4295, 3771, 3839, 3031, 4290, 4289, 4283, 3094, 4281, 4279, 4278, 4275, 4272, 4267, 4684, 4691, 4696, 4266, 4264, 4262, 4260, 4258, 4763, 3313, 3120, 4255, 4254, 4250, 3165, 3584, 3608, 4830, 3189, 4724, 4248, 4241, 4231, 3194, 4229, 4224, 4207, 4300, 4206, 4205, 4198, 4361, 3896, 4197, 4189, 3668, 4729, 3991, 4791, 4796, 4863, 4930, 4803, 4022, 4182, 4169, 4162, 3198, 4160, 4154, 4152, 4150, 4141, 4139, 4138, 4126, 4870, 4888, 4891, 4125, 4118, 4116, 4106, 4102, 1347, 1393, 3258, 3277, 0, 0, 4997, 4099, 3286, 5053, 4118, 5102, 0, 0, 4079, 1817, 2093, 4098, 4095, 4090, 4065, 4067, 4065, 4056, 4049, 4028, 2114, 4041, 4024, 4030, 4017, 4027, 4016, 4014, 3994, 3992, 3988, 3983, 2184, 3970, 2409,11243, 2534,11243, 3651, 3860, 4323, 4079, 5171, 4427, 5245, 4904, 4047, 2736,11243, 4214, 4366, 4519, 5319, 4600, 11243, 4091, 5349, 4419, 3949, 3948, 3946, 4917, 4606,11243, 4335, 0, 4553, 3939, 3924, 3923, 4515, 5412, 2800,11243, 4687, 3715, 4487, 5479, 4958, 5018, 5021, 3919, 3916, 3903, 3892, 3888, 3884, 3876, 3872, 3856, 3252, 3835, 3831, 3830, 3820, 3809, 3808, 3806, 3797, 3796, 3794, 3793, 3258, 3778, 3776, 3752, 3751, 3745, 3374, 3736, 3714, 3708, 3393, 3707, 3702, 3701, 3697, 3690, 3663, 3652, 4851, 4925, 3648, 3630, 3627, 3624, 3596, 5546, 3590, 3737, 5089, 5208, 5267, 5358, 3585, 3576, 3575, 5417, 4755, 5420, 5445, 5613, 5487, 3573, 3555, 3535, 5504, 5512, 5571, 3531, 3519, 3508, 4984, 3554, 3422, 3505, 3504, 3480, 3470, 3468, 3461, 3456, 3441, 3438, 3433, 3418, 3417, 5680, 5574, 5579, 5641, 3415, 3413, 3403, 3400, 3387, 3386, 3382, 3374, 3373, 3474, 3364, 3354, 3342, 3322, 3321, 3319, 3310, 3296, 3295, 3285, 3284, 3486, 3277, 3275, 3273, 3265, 3264, 3576, 3252, 3250, 3233, 3598, 3222, 3214, 3181, 3161, 3159, 3157, 3149, 5127, 5618, 3140, 3110, 3109, 3092, 3068, 5747, 3065, 3816, 5646, 5704, 5722, 5764, 3053, 3052, 3050, 5775, 5057, 5789, 5800, 5867, 5807, 3049, 3045, 3037, 5874, 5885, 5888, 3015, 3013, 3000, 5652, 3038, 3708, 2990, 2983, 2978, 2974, 2967, 2963, 2959, 2946, 2941, 2939, 2934, 2922, 5961,11243, 0, 0, 2931, 2917, 2925, 2905, 2913, 2892, 0, 2956, 2881, 2891, 2870, 2875, 0, 2863, 2865, 3184, 2832, 2847, 2823, 0, 2820, 6030, 6104, 6178, 3926,11243, 3185, 6208, 3505, 2793, 2790, 2785, 3938, 11243, 3420, 0, 2777, 2770, 2769, 3588,11243, 3691, 4401, 3892, 4023,11243, 3917, 0, 2761, 2760, 2751, 4002, 4280, 4032,11243, 4243, 4461, 4317,11243, 4425, 0, 2748, 2747, 2731, 6271, 2729, 2719, 2718, 2711, 2709, 248, 281, 293, 309, 320, 331, 340, 350, 370, 463, 472, 477, 501, 506, 553, 590, 5906, 5948, 6052, 598, 606, 617, 643, 685, 6069, 6141, 6217, 692, 699, 703, 5066, 6276, 6279, 6293, 715, 764, 772, 808, 817, 6304, 6346, 6363, 847, 849, 875, 889, 897, 5685, 5944, 3778, 927, 944, 948, 3835, 966, 975, 987, 991, 997, 1014, 1016, 1031, 1033, 1040, 1056, 1087, 1094, 1110, 1126, 1136, 1147, 1164, 1192, 1196, 1206, 1210, 1216, 1221, 1223, 1234, 1246, 1254, 1305, 6371, 6374, 6385, 1325, 1335, 1424, 1427, 1433, 6388, 6399, 6447, 1436, 1442, 1444, 5132, 6458, 6461, 6469, 1450, 1451, 1454, 1456, 1457, 6472, 6483, 6486, 1460, 1465, 1466, 1474, 1481, 6016, 6124, 3929, 1488, 1489, 1517, 3974, 1520, 1521, 1526, 1545, 1546, 1566, 1581, 1586,11243,11243, 1637, 0, 4478, 0, 1634, 1638, 1641, 4538, 1636, 4539, 1635, 4639, 1640, 1640, 1642, 1657, 0,11243, 4640, 6516, 1646, 1648, 1653, 4704,11243,11243, 4723, 0, 1674, 1734, 1740, 6579, 4805, 6653, 4724,11243, 4905, 4819,11243, 6727, 4820,11243, 4981, 6801, 6875, 4843,11243, 4886, 0, 1742, 1750, 1753, 1756, 1757, 1765, 1768, 1772, 1785, 6601, 6675, 6749, 1788, 1789, 1807, 1823, 1828, 1838, 6823, 6883, 6886, 1839, 1849, 1852, 1857, 1862, 6897, 6908, 6945, 1882, 1947, 1950, 1952, 1965, 1966, 1972, 1974, 1976, 4043, 1977, 1991, 1993, 1998, 1999, 2003, 2017, 2023, 2031, 2033, 2036, 2048, 2053, 2068, 6956, 6967, 6970, 2070, 2074, 2084, 2086, 2088, 2092, 6978, 6981, 7039, 2095, 2107, 2117, 2123, 2124, 7050, 7053, 7061, 2137, 2139, 2144, 2152, 2168, 2169, 2174, 2182, 2187, 4118, 2188, 2190, 2200, 2205, 2208, 2209, 2223, 2224, 2235, 0, 2237, 0, 2253, 0, 2316, 0, 0, 4967,11243, 4982, 0, 2328, 2348, 2352, 7135,11243, 5010, 0, 2354, 2356, 2357, 5034,11243, 5047, 0, 2361, 2365, 2369, 7209,11243, 5048, 0, 2397, 2398, 2402,11243, 5106, 0, 2403, 2418, 2419, 5121,11243, 2421, 2430, 2433, 2438, 2450, 2453, 2457, 2458, 2470, 2472, 2473, 2485, 2490, 2494, 2495, 2501, 2506, 2535, 2603, 2605, 2606, 2611, 2618, 2619, 2621, 2623, 2633, 2635, 2678, 0, 5122, 0,11243, 5144, 0, 2643, 2653, 2655, 5155,11243,11243, 5175, 0, 2659, 2669, 2673, 2675, 2677, 2684, 2685, 2692, 2695, 2697, 2699, 5160, 0, 0, 11243,11243, 7283, 7305, 7327, 7349, 7371, 7393, 7415, 7426, 7447, 7469, 7486, 7503, 7520, 7537, 7554, 7571, 7593, 7602, 7616, 7637, 7659, 7681, 7703, 3439, 7720, 7731, 7752, 2756, 7769, 7786, 7803, 7820, 7837, 7854, 7871, 7888, 7905, 7922, 7939, 7956, 7973, 7990, 8007, 8024, 8041, 8058, 8075, 2834, 2838, 8084, 8092, 4240, 8113, 8124, 8145, 2876, 8167, 8189, 8211, 8220, 8228, 2894, 8244, 8255, 3117, 8271, 8288, 8305, 8322, 8339, 8356, 8373, 8390, 8407, 8424, 8441, 8458, 8475, 8492, 8509, 8526, 8543, 8560, 8577, 8594, 8611, 8628, 8645, 8662, 8679, 8696, 8713, 8730, 8747, 8764, 8781, 8798, 8815, 8832, 8849, 8866, 8883, 8900, 4270, 3599, 4196, 8909, 2911, 8930, 8952, 2945, 2975, 8964, 8985, 9006, 9017, 9033, 9050, 9067, 9084, 9101, 9118, 9135, 9152, 9169, 9186, 9203, 9220, 9237, 9254, 9271, 9288, 9305, 9322, 9339, 9356, 9373, 9390, 9407, 9424, 9441, 9458, 9475, 9492, 9509, 9526, 9543, 9560, 9577, 9594, 9611, 9628, 9645, 9662, 9679, 9696, 9713, 9730, 9747, 9764, 3012, 9773, 9794, 3185, 3280, 9816, 9838, 9855, 9866, 9882, 9899, 9916, 9933, 9950, 9967, 9984,10001,10018, 10035,10052,10069,10086,10103,10120,10137,10154,10171,10188, 10205,10222,10239,10256,10273,10290,10307,10324,10341,10358, 10375,10392,10409,10426,10443,10465, 3361, 3400,10487,10509, 10531,10553,10575,10592,10609,10626,10643,10660,10677,10694, 10711,10728,10745,10762,10779,10796,10813,10830,10847,10864, 10881,10898,10915,10932,10949,10971,10993,11015,11032,11049, 11066,11088,11110,11132,11154,11176,11198,11220, 3584, 3613 } ; static const flex_int16_t yy_def[1891] = { 0, 1643, 1643, 1642, 3, 1642, 5, 1642, 7, 1644, 1644, 10, 10, 1645, 1645, 1642, 15, 1645, 1645, 3, 19, 1645, 1645, 1645, 1645, 1646, 1646, 1647, 1647, 1648, 1648, 1642, 1649, 1642, 1642, 1642, 1642, 1649, 1649, 1649, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1650, 1651, 1642, 1650, 1642, 1652, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1653, 1642, 1642, 1653, 1642, 1642, 68, 1654, 1655, 68, 1642, 1642, 1642, 1642, 1642, 1656, 66, 1656, 1642, 82, 1657, 1658, 82, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1659, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1660, 1660, 1660, 1642, 1642, 1642, 1642, 1642, 1642, 1661, 1659, 1642, 1642, 1642, 1642, 1642, 1650, 1642, 1642, 1642, 1642, 1642, 127, 127, 1642, 1642, 1642, 1642, 1642, 1642, 1662, 1642, 1642, 1662, 1642, 1662, 1642, 1662, 1662, 1662, 1662, 1662, 1642, 1642, 1642, 1642, 1663, 1642, 1642, 1642, 1642, 1649, 1649, 1649, 1649, 1642, 1642, 1642, 1664, 1642, 1649, 1649, 1649, 1642, 1665, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1666, 47, 1667, 1642, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1667, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1668, 1642, 1642, 1650, 1650, 1650, 1669, 1642, 1642, 1642, 1642, 1642, 1642, 1670, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1671, 68, 1642, 1672, 1673, 68, 1642, 1642, 1642, 1642, 1674, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1671, 1642, 1675, 1642, 261, 1676, 1677, 1678, 1677, 1642, 1642, 1642, 1679, 1642, 1679, 275, 1642, 1642, 1642, 1642, 68, 1642, 1642, 1642, 1642, 1642, 1642, 1680, 1681, 1642, 1682, 1683, 1681, 1642, 1642, 1642, 1684, 1642, 1680, 1642, 1685, 1642, 299, 1686, 1687, 1688, 1687, 1642, 1642, 1642, 1689, 1642, 1689, 313, 1642, 1642, 1642, 1681, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1690, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1691, 1642, 1642, 1642, 1642, 1692, 1692, 1692, 1642, 1642, 1642, 1642, 1693, 1693, 1642, 1642, 1642, 1642, 1694, 1642, 1695, 1696, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1697, 1642, 1642, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1642, 1642, 1642, 1698, 1699, 1700, 1701, 1642, 1701, 1642, 1642, 1702, 1642, 1642, 1642, 1642, 1642, 1703, 1642, 1703, 1704, 1703, 1705, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1642, 1642, 1642, 1642, 1702, 1702, 1702, 1702, 1642, 1702, 1702, 1702, 1642, 1706, 1642, 1642, 1642, 1642, 1707, 1642, 1642, 1708, 1642, 1709, 1709, 1710, 1709, 1642, 1642, 1642, 1642, 1711, 1712, 1712, 1642, 1642, 1642, 1713, 1642, 1714, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1715, 1716, 1716, 1642, 1642, 1642, 1708, 1709, 505, 1717, 1642, 1708, 1718, 1719, 1720, 1717, 1642, 1642, 1642, 1717, 1642, 1718, 1719, 1720, 1717, 1642, 1642, 1642, 505, 1721, 1722, 1722, 1723, 1722, 1642, 1642, 1642, 1724, 1642, 1642, 1642, 1642, 1642, 1725, 1726, 1726, 1642, 1642, 1642, 1725, 1642, 1642, 1642, 1642, 1727, 1642, 1728, 1728, 1729, 1728, 1642, 1642, 1642, 1642, 1730, 1731, 1731, 1642, 1642, 1642, 1732, 1642, 1733, 1642, 1642, 1642, 1642, 1642, 1734, 1735, 1735, 1642, 1642, 1642, 1727, 1728, 583, 1736, 1642, 1727, 1737, 1738, 1739, 1736, 1642, 1642, 1642, 1736, 1642, 1737, 1738, 1739, 1736, 1642, 1642, 1642, 583, 1740, 1741, 1741, 1742, 1741, 1642, 1642, 1642, 1743, 1642, 1642, 1642, 1642, 1642, 1744, 1745, 1745, 1642, 1642, 1642, 1642, 1642, 1746, 1744, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1747, 1642, 1642, 1642, 1642, 1642, 1748, 1642, 1642, 1642, 1749, 1750, 1749, 1751, 1642, 1642, 1642, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1753, 1754, 1642, 1755, 1755, 1749, 1749, 1749, 1749, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1756, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1642, 1757, 1642, 1642, 1642, 1642, 1757, 1757, 1757, 1757, 1642, 1642, 1757, 1757, 1757, 1757, 1757, 1757, 1642, 1755, 1642, 729, 729, 729, 1755, 1758, 1758, 1759, 1642, 1760, 1761, 1762, 1762, 1642, 1642, 1642, 1642, 1642, 1763, 1763, 1763, 1642, 1642, 1642, 1642, 1642, 1764, 1764, 1765, 1642, 1642, 1642, 1766, 1642, 1642, 1642, 1642, 1642, 1642, 1767, 1767, 1767, 1642, 1642, 1642, 1642, 1642, 1768, 1759, 1769, 1642, 1642, 1642, 1770, 1759, 1759, 1768, 1771, 1759, 1642, 1642, 1642, 1772, 1642, 1642, 1642, 1773, 1642, 1642, 1642, 1759, 786, 1642, 1642, 786, 1759, 786, 1774, 1775, 1760, 1776, 1777, 1778, 1642, 1642, 1642, 1779, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1780, 1780, 1780, 1642, 1642, 1642, 1642, 1642, 1780, 1642, 1781, 1642, 1782, 1783, 1784, 1784, 1642, 1642, 1642, 1642, 1642, 1785, 1785, 1785, 1642, 1642, 1642, 1642, 1642, 1786, 1786, 1787, 1642, 1642, 1642, 1788, 1642, 1642, 1642, 1642, 1642, 1642, 1789, 1789, 1789, 1642, 1642, 1642, 1642, 1642, 1790, 1781, 1791, 1642, 1642, 1642, 1792, 1781, 1781, 1790, 1793, 1781, 1642, 1642, 1642, 1794, 1642, 1642, 1642, 1795, 1642, 1642, 1642, 1781, 884, 1642, 1642, 884, 1781, 884, 1796, 1797, 1782, 1798, 1799, 1800, 1642, 1642, 1642, 1801, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1802, 1802, 1802, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1803, 1803, 1802, 1642, 1804, 1804, 1805, 1805, 1806, 1807, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1808, 1642, 1642, 1809, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1642, 1642, 1810, 1810, 1810, 1810, 1810, 1642, 1810, 1642, 1810, 1642, 1642, 1642, 1810, 1810, 1642, 1810, 993, 1810, 1642, 1642, 1642, 1810, 1810, 1642, 1642, 1810, 1811, 1811, 1812, 1813, 1813, 1813, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1814, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1815, 1642, 1642, 1642, 1642, 1642, 1816, 1642, 1642, 1642, 1817, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1818, 1818, 1642, 1642, 1642, 1642, 1642, 1812, 1642, 1064, 1819, 1819, 1820, 1819, 1642, 1642, 1642, 1821, 1822, 1819, 1819, 1823, 1824, 1642, 1642, 1642, 1825, 1826, 1826, 1642, 1642, 1642, 1827, 1642, 1828, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1829, 1830, 1830, 1830, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1831, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1832, 1642, 1642, 1642, 1642, 1642, 1833, 1642, 1642, 1642, 1834, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1835, 1835, 1642, 1642, 1642, 1642, 1642, 1829, 1642, 1154, 1836, 1836, 1837, 1836, 1642, 1642, 1642, 1838, 1839, 1836, 1836, 1840, 1841, 1642, 1642, 1642, 1842, 1843, 1843, 1642, 1642, 1642, 1844, 1642, 1845, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1846, 1642, 1847, 1848, 1642, 1642, 1642, 1642, 1849, 1642, 1850, 1642, 1642, 1642, 1642, 1642, 1851, 1642, 1642, 1642, 1642, 1642, 1642, 1852, 1642, 1853, 1853, 1853, 1220, 1642, 1220, 1642, 1220, 1642, 1642, 1642, 1220, 1642, 1220, 1225, 1642, 1642, 1642, 1642, 1642, 1220, 1220, 1220, 1220, 1642, 1220, 1225, 1642, 1642, 1642, 1220, 1220, 1642, 1642, 1220, 1220, 1220, 1642, 1220, 1225, 1642, 1642, 1642, 1220, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1854, 1855, 1855, 1642, 1642, 1642, 1642, 1642, 1856, 1857, 1857, 1642, 1642, 1642, 1858, 1859, 1860, 1860, 1642, 1642, 1642, 1642, 1642, 1861, 1861, 1861, 1642, 1642, 1642, 1642, 1642, 1862, 1862, 1863, 1642, 1642, 1642, 1864, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1865, 1866, 1866, 1642, 1642, 1642, 1642, 1642, 1867, 1868, 1868, 1642, 1642, 1642, 1869, 1870, 1871, 1871, 1642, 1642, 1642, 1642, 1642, 1872, 1872, 1872, 1642, 1642, 1642, 1642, 1642, 1873, 1873, 1874, 1642, 1642, 1642, 1875, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1876, 1642, 1877, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1878, 1642, 1220, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1220, 1418, 1642, 1642, 1642, 1220, 1220, 1220, 1642, 1642, 1220, 1642, 1642, 1220, 1642, 1642, 1220, 1220, 1220, 1220, 1642, 1220, 1418, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1879, 1879, 1879, 1642, 1642, 1642, 1642, 1642, 1642, 1880, 1880, 1880, 1642, 1642, 1642, 1642, 1642, 1881, 1881, 1881, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1863, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1865, 1865, 1865, 1642, 1642, 1642, 1642, 1642, 1642, 1867, 1867, 1867, 1642, 1642, 1642, 1642, 1642, 1870, 1870, 1870, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1874, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1882, 1642, 1883, 1642, 1884, 1642, 1885, 1886, 1642, 1642, 1220, 1418, 1642, 1642, 1642, 1220, 1642, 1220, 1418, 1642, 1642, 1642, 1220, 1642, 1220, 1418, 1642, 1642, 1642, 1220, 1642, 1220, 1418, 1642, 1642, 1642, 1642, 1220, 1418, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1887, 1642, 1888, 1642, 1220, 1418, 1642, 1642, 1642, 1642, 1642, 1642, 1220, 1418, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1889, 1890, 1642, 0, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642 } ; static const flex_int16_t yy_nxt[11318] = { 0, 1642, 1642, 33, 34, 35, 33, 34, 35, 102, 103, 102, 103, 174, 180, 321, 174, 180, 321, 175, 181, 230, 280, 264, 176, 176, 182, 36, 1642, 182, 40, 263, 263, 263, 263, 175, 181, 265, 183, 220, 183, 184, 220, 185, 185, 185, 185, 218, 1642, 219, 219, 219, 219, 1642, 322, 265, 221, 221, 221, 221, 350, 350, 350, 222, 363, 363, 363, 363, 370, 371, 392, 393, 37, 38, 39, 37, 38, 39, 41, 42, 43, 44, 42, 41, 45, 46, 41, 41, 47, 48, 41, 49, 41, 49, 50, 51, 52, 52, 52, 52, 41, 53, 41, 41, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 56, 57, 48, 41, 58, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 59, 41, 41, 60, 60, 61, 62, 63, 41, 64, 43, 44, 64, 65, 45, 66, 65, 67, 56, 41, 65, 68, 69, 68, 70, 51, 71, 71, 71, 71, 72, 53, 65, 65, 73, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 56, 74, 41, 67, 58, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 41, 41, 75, 60, 60, 76, 77, 78, 41, 79, 43, 44, 79, 80, 45, 81, 80, 67, 56, 48, 80, 82, 69, 82, 83, 80, 84, 84, 84, 84, 85, 53, 80, 80, 86, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 56, 87, 48, 67, 58, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 41, 41, 41, 60, 60, 88, 89, 90, 92, 93, 94, 92, 169, 170, 171, 95, 691, 95, 95, 95, 95, 692, 95, 95, 96, 177, 1452, 169, 170, 171, 674, 178, 95, 169, 170, 171, 179, 675, 169, 170, 171, 372, 375, 676, 372, 375, 95, 97, 95, 220, 359, 220, 220, 359, 220, 105, 106, 107, 105, 756, 108, 105, 106, 107, 105, 360, 108, 136, 137, 138, 136, 762, 108, 222, 95, 302, 98, 98, 99, 100, 101, 92, 93, 94, 92, 230, 280, 769, 95, 303, 95, 95, 95, 95, 109, 95, 95, 96, 1039, 244, 109, 242, 242, 242, 242, 95, 139, 303, 223, 1453, 224, 224, 224, 224, 377, 377, 377, 377, 778, 95, 97, 95, 226, 110, 110, 111, 112, 113, 1045, 110, 110, 111, 112, 113, 954, 110, 110, 111, 112, 113, 226, 364, 955, 365, 365, 365, 365, 95, 1454, 98, 98, 99, 100, 101, 114, 104, 115, 116, 104, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 117, 117, 117, 117, 114, 114, 114, 114, 114, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 114, 114, 114, 114, 114, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 117, 117, 117, 117, 117, 117, 119, 117, 114, 114, 114, 120, 120, 121, 122, 123, 105, 124, 125, 105, 370, 371, 169, 170, 171, 136, 137, 138, 136, 1049, 108, 160, 161, 230, 280, 162, 160, 161, 1455, 380, 162, 126, 238, 784, 339, 238, 405, 290, 405, 288, 288, 288, 288, 381, 239, 127, 239, 240, 128, 241, 241, 241, 241, 284, 139, 466, 284, 792, 466, 163, 336, 381, 1057, 336, 163, 285, 633, 285, 286, 633, 287, 287, 287, 287, 110, 110, 111, 112, 113, 105, 124, 125, 105, 110, 110, 111, 112, 113, 164, 164, 165, 166, 167, 164, 164, 165, 166, 167, 398, 337, 378, 379, 379, 379, 126, 187, 169, 170, 171, 1456, 243, 188, 466, 230, 367, 466, 189, 367, 127, 244, 321, 128, 267, 321, 177, 245, 169, 170, 171, 246, 178, 244, 169, 170, 171, 399, 647, 268, 647, 190, 336, 246, 191, 336, 192, 247, 796, 110, 110, 111, 112, 113, 129, 368, 1284, 129, 193, 269, 130, 322, 67, 56, 1463, 194, 131, 69, 131, 132, 41, 133, 133, 133, 133, 1464, 248, 249, 250, 134, 179, 337, 169, 170, 171, 536, 537, 538, 270, 271, 272, 325, 632, 135, 274, 67, 136, 137, 138, 136, 275, 1067, 275, 340, 638, 276, 276, 276, 276, 252, 289, 639, 174, 220, 639, 174, 220, 652, 175, 290, 652, 126, 671, 176, 672, 291, 661, 305, 300, 292, 301, 301, 301, 301, 175, 140, 290, 222, 128, 370, 651, 312, 306, 1465, 661, 293, 292, 313, 359, 313, 1292, 359, 314, 314, 314, 314, 297, 1472, 277, 278, 279, 1473, 307, 360, 110, 110, 111, 112, 113, 136, 137, 138, 136, 1299, 294, 295, 296, 177, 187, 169, 170, 171, 380, 390, 188, 169, 170, 171, 935, 189, 935, 308, 309, 310, 126, 380, 381, 382, 382, 382, 382, 453, 453, 453, 453, 315, 316, 317, 140, 381, 180, 128, 190, 180, 381, 191, 181, 192, 467, 467, 467, 176, 1480, 468, 387, 466, 230, 381, 466, 361, 1481, 372, 181, 197, 372, 387, 362, 110, 110, 111, 112, 113, 142, 143, 144, 142, 614, 615, 616, 218, 145, 185, 185, 185, 185, 350, 350, 350, 387, 146, 146, 146, 146, 387, 392, 393, 1076, 387, 146, 146, 146, 146, 197, 375, 387, 1482, 375, 387, 394, 387, 388, 394, 408, 409, 410, 146, 146, 146, 146, 146, 146, 142, 143, 144, 142, 221, 221, 221, 221, 145, 633, 325, 395, 633, 427, 1307, 428, 1483, 146, 146, 146, 146, 182, 639, 340, 182, 639, 146, 146, 146, 146, 408, 409, 410, 183, 394, 183, 184, 394, 185, 185, 185, 185, 1484, 146, 146, 146, 146, 146, 146, 148, 149, 150, 148, 625, 151, 152, 1083, 197, 153, 153, 662, 393, 153, 154, 1485, 626, 155, 156, 156, 156, 153, 396, 627, 185, 185, 185, 185, 221, 221, 221, 221, 394, 400, 433, 394, 397, 401, 153, 401, 153, 197, 402, 402, 403, 1315, 403, 197, 157, 404, 404, 404, 688, 197, 397, 689, 395, 408, 409, 410, 158, 367, 1490, 438, 367, 153, 1491, 153, 148, 149, 150, 148, 197, 151, 152, 197, 297, 153, 153, 429, 197, 153, 154, 437, 1321, 155, 156, 156, 156, 153, 408, 409, 410, 1492, 430, 197, 408, 409, 410, 625, 368, 431, 408, 409, 410, 1493, 153, 432, 153, 1089, 443, 626, 434, 435, 436, 1494, 157, 440, 627, 402, 402, 408, 409, 410, 408, 409, 410, 197, 158, 408, 409, 410, 807, 153, 816, 153, 195, 665, 665, 195, 196, 665, 665, 196, 408, 409, 410, 196, 196, 825, 196, 1105, 196, 196, 196, 196, 196, 197, 1495, 196, 196, 450, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 838, 196, 408, 409, 410, 198, 199, 200, 201, 202, 203, 204, 196, 205, 196, 206, 207, 208, 209, 196, 210, 211, 212, 213, 196, 196, 196, 465, 465, 465, 465, 846, 214, 215, 216, 230, 231, 232, 1117, 652, 370, 454, 652, 219, 219, 219, 219, 404, 404, 404, 197, 233, 233, 233, 1496, 397, 197, 463, 466, 463, 228, 466, 464, 464, 464, 464, 634, 634, 634, 197, 854, 635, 441, 397, 640, 640, 640, 232, 232, 641, 860, 232, 232, 439, 177, 442, 169, 170, 171, 232, 685, 867, 232, 197, 232, 446, 232, 234, 187, 408, 409, 410, 197, 686, 188, 408, 409, 410, 1129, 189, 251, 251, 251, 251, 252, 253, 949, 950, 408, 409, 410, 667, 667, 667, 254, 255, 256, 257, 258, 259, 444, 633, 190, 445, 633, 191, 1497, 192, 639, 449, 876, 639, 408, 409, 410, 197, 678, 679, 680, 193, 1135, 408, 409, 410, 1498, 652, 194, 243, 652, 455, 1139, 456, 456, 456, 456, 1499, 260, 882, 261, 261, 261, 261, 245, 458, 958, 447, 246, 959, 890, 223, 448, 224, 224, 224, 224, 238, 633, 325, 238, 633, 1147, 458, 247, 226, 408, 409, 410, 239, 1500, 239, 240, 489, 241, 241, 241, 241, 481, 481, 481, 481, 471, 226, 241, 241, 241, 241, 490, 504, 504, 504, 504, 248, 249, 250, 289, 263, 263, 263, 263, 467, 467, 467, 395, 298, 468, 299, 299, 299, 299, 291, 932, 932, 472, 292, 241, 241, 241, 241, 244, 894, 242, 242, 242, 242, 639, 340, 473, 639, 244, 293, 242, 242, 242, 242, 496, 491, 492, 493, 244, 1351, 242, 242, 242, 242, 473, 251, 251, 251, 251, 1507, 551, 497, 287, 287, 287, 287, 932, 932, 294, 295, 296, 324, 324, 325, 326, 327, 324, 324, 324, 328, 324, 328, 328, 328, 328, 324, 328, 328, 328, 329, 329, 329, 324, 324, 324, 324, 328, 324, 324, 324, 330, 324, 324, 324, 324, 324, 324, 330, 324, 330, 328, 327, 328, 324, 324, 327, 327, 324, 330, 327, 327, 324, 324, 324, 324, 324, 324, 327, 324, 324, 327, 330, 327, 324, 327, 331, 324, 324, 328, 324, 324, 324, 324, 324, 324, 340, 341, 342, 1508, 342, 475, 1157, 342, 561, 561, 561, 561, 1509, 483, 244, 1359, 343, 343, 343, 569, 476, 1516, 244, 1517, 246, 763, 764, 765, 268, 1366, 1524, 197, 246, 1525, 570, 1166, 1526, 197, 342, 1374, 477, 342, 342, 342, 1527, 1528, 342, 342, 484, 582, 582, 582, 582, 1173, 342, 652, 370, 342, 652, 342, 1529, 342, 344, 351, 351, 351, 351, 1382, 1534, 478, 479, 480, 351, 351, 351, 351, 709, 485, 486, 487, 408, 409, 410, 571, 572, 573, 408, 409, 410, 351, 351, 351, 351, 351, 351, 353, 1535, 354, 354, 1388, 1536, 355, 354, 355, 499, 1537, 356, 356, 356, 356, 793, 794, 795, 244, 354, 644, 644, 644, 644, 268, 793, 794, 795, 246, 1179, 1538, 526, 354, 526, 244, 354, 527, 527, 527, 527, 356, 356, 356, 356, 500, 817, 818, 819, 474, 552, 905, 287, 287, 287, 287, 650, 650, 650, 650, 354, 340, 341, 342, 553, 342, 914, 474, 342, 284, 720, 923, 284, 720, 501, 502, 503, 343, 343, 343, 721, 285, 553, 285, 286, 358, 287, 287, 287, 287, 645, 720, 645, 1539, 720, 646, 646, 646, 1540, 342, 1541, 721, 342, 342, 342, 1542, 1543, 342, 342, 649, 1544, 363, 363, 363, 363, 342, 1545, 1546, 342, 1547, 342, 1548, 342, 344, 411, 412, 413, 414, 415, 416, 417, 407, 418, 669, 419, 420, 421, 422, 670, 423, 424, 425, 426, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 407, 459, 460, 460, 460, 460, 459, 459, 459, 459, 459, 461, 461, 461, 462, 461, 461, 461, 461, 461, 461, 461, 461, 459, 459, 459, 459, 459, 461, 461, 461, 461, 462, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 459, 459, 459, 459, 459, 459, 459, 459, 475, 364, 669, 365, 365, 365, 365, 529, 670, 264, 407, 505, 505, 505, 505, 476, 244, 971, 669, 246, 971, 670, 530, 506, 1015, 1027, 246, 972, 267, 655, 655, 655, 655, 1039, 197, 477, 1045, 244, 653, 267, 1049, 506, 531, 268, 536, 537, 538, 246, 244, 377, 377, 377, 377, 1057, 268, 654, 1457, 1584, 246, 696, 861, 862, 863, 269, 478, 479, 480, 508, 891, 892, 893, 532, 533, 534, 269, 1585, 509, 197, 510, 510, 510, 510, 511, 408, 409, 410, 512, 891, 892, 893, 513, 1284, 270, 271, 272, 394, 1586, 380, 394, 382, 382, 382, 382, 270, 271, 272, 1067, 1466, 513, 695, 300, 381, 301, 301, 301, 301, 656, 1587, 656, 395, 1588, 657, 657, 657, 657, 1292, 408, 409, 410, 381, 1589, 514, 515, 516, 459, 459, 459, 459, 459, 517, 459, 518, 517, 459, 459, 459, 517, 517, 459, 517, 1474, 459, 519, 519, 519, 519, 520, 459, 517, 517, 521, 517, 517, 517, 522, 517, 517, 517, 517, 517, 517, 517, 517, 459, 517, 459, 459, 459, 517, 517, 517, 517, 522, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 459, 459, 459, 459, 459, 523, 524, 525, 542, 456, 456, 456, 456, 555, 197, 1590, 289, 244, 1591, 197, 1299, 663, 290, 245, 931, 290, 931, 246, 556, 932, 932, 291, 292, 1592, 1076, 292, 915, 916, 917, 663, 1307, 563, 1593, 543, 1083, 1486, 701, 463, 557, 463, 290, 293, 664, 664, 664, 664, 306, 698, 699, 1594, 292, 1595, 197, 408, 409, 410, 1315, 1596, 408, 409, 410, 1321, 544, 545, 546, 542, 564, 558, 559, 560, 294, 295, 296, 289, 244, 1597, 547, 547, 547, 547, 245, 1089, 290, 973, 246, 197, 973, 697, 291, 1105, 577, 1117, 292, 974, 1129, 565, 566, 567, 197, 290, 543, 408, 409, 410, 984, 306, 1135, 984, 293, 292, 604, 1139, 604, 290, 985, 605, 605, 605, 605, 380, 700, 382, 382, 382, 382, 578, 1147, 554, 1501, 544, 545, 546, 1598, 381, 408, 409, 410, 294, 295, 296, 197, 717, 1599, 607, 1351, 554, 1600, 408, 409, 410, 1157, 381, 290, 1510, 579, 580, 581, 555, 608, 614, 615, 616, 292, 197, 305, 1601, 302, 702, 583, 583, 583, 583, 556, 290, 1009, 1602, 292, 1009, 609, 306, 584, 1359, 1603, 292, 1010, 305, 646, 646, 646, 408, 409, 410, 557, 703, 290, 1518, 620, 1604, 584, 307, 306, 704, 1605, 197, 292, 290, 197, 610, 611, 612, 1366, 291, 408, 409, 410, 292, 939, 939, 939, 197, 307, 558, 559, 560, 586, 197, 1606, 1166, 308, 309, 310, 621, 1374, 587, 197, 588, 588, 588, 588, 589, 1607, 716, 705, 590, 706, 1173, 1530, 591, 1608, 308, 309, 310, 408, 409, 410, 408, 409, 410, 1609, 718, 622, 623, 624, 1382, 722, 591, 1610, 1388, 408, 409, 410, 943, 943, 943, 408, 409, 410, 453, 453, 453, 453, 1611, 1179, 408, 409, 410, 1612, 1613, 592, 593, 594, 459, 459, 459, 459, 459, 595, 459, 596, 595, 459, 459, 459, 595, 595, 459, 595, 1614, 595, 597, 597, 597, 597, 598, 459, 595, 595, 599, 595, 595, 595, 600, 595, 595, 595, 595, 595, 595, 595, 595, 459, 595, 459, 459, 459, 595, 595, 595, 595, 600, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 459, 459, 459, 459, 459, 601, 602, 603, 620, 1615, 197, 634, 634, 634, 197, 289, 635, 290, 197, 628, 628, 628, 628, 291, 290, 720, 779, 292, 720, 407, 291, 640, 640, 640, 292, 721, 641, 197, 664, 664, 664, 664, 971, 621, 707, 971, 197, 708, 719, 669, 293, 197, 972, 670, 723, 407, 197, 669, 670, 408, 409, 410, 407, 408, 409, 410, 669, 408, 409, 410, 670, 724, 622, 623, 624, 780, 781, 782, 197, 294, 295, 296, 351, 351, 351, 351, 408, 409, 410, 725, 727, 351, 351, 351, 351, 408, 409, 410, 407, 669, 408, 409, 410, 670, 407, 408, 409, 410, 351, 351, 351, 351, 351, 351, 668, 668, 668, 668, 508, 669, 670, 726, 1457, 668, 668, 668, 668, 408, 409, 410, 730, 1630, 730, 783, 1284, 731, 731, 731, 731, 1466, 668, 668, 668, 668, 668, 668, 710, 710, 710, 710, 710, 1631, 710, 711, 1292, 710, 710, 710, 1474, 1632, 710, 455, 710, 456, 456, 456, 456, 973, 712, 710, 973, 1299, 710, 1307, 1486, 458, 455, 974, 732, 732, 732, 732, 797, 798, 799, 710, 1633, 710, 711, 710, 458, 1315, 463, 458, 463, 1321, 1501, 733, 733, 733, 733, 734, 1634, 735, 735, 735, 735, 1351, 458, 667, 667, 667, 710, 710, 710, 710, 710, 713, 714, 715, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 1510, 459, 729, 729, 729, 729, 459, 459, 459, 459, 459, 461, 461, 461, 462, 461, 461, 461, 461, 461, 461, 461, 461, 459, 459, 459, 459, 459, 461, 461, 461, 461, 462, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 459, 459, 459, 459, 459, 459, 459, 459, 465, 465, 465, 465, 263, 263, 263, 263, 508, 738, 1635, 738, 1359, 1518, 739, 739, 739, 739, 1636, 510, 510, 510, 510, 511, 475, 1366, 1374, 512, 1530, 475, 1637, 737, 741, 244, 481, 481, 481, 481, 244, 476, 1382, 244, 1388, 246, 476, 1638, 475, 268, 246, 737, 407, 246, 1028, 1029, 1030, 244, 763, 764, 765, 477, 669, 476, 670, 1638, 477, 246, 407, 742, 749, 1040, 1041, 1042, 514, 515, 516, 984, 669, 244, 984, 779, 670, 477, 1457, 530, 1466, 985, 757, 246, 478, 479, 480, 1474, 1486, 478, 479, 480, 743, 744, 745, 1501, 483, 758, 1510, 750, 1518, 483, 1530, 469, 770, 244, 478, 479, 480, 469, 244, 268, 1027, 244, 748, 246, 268, 757, 499, 530, 246, 740, 1451, 246, 780, 781, 782, 244, 751, 752, 753, 484, 1015, 268, 670, 1009, 484, 246, 1009, 771, 499, 301, 301, 301, 301, 1010, 759, 760, 761, 244, 669, 407, 877, 500, 670, 268, 1046, 1047, 1048, 246, 485, 486, 487, 669, 407, 485, 486, 487, 772, 773, 774, 508, 670, 669, 508, 500, 561, 561, 561, 561, 407, 636, 501, 502, 503, 642, 511, 636, 670, 783, 512, 642, 526, 669, 526, 244, 407, 527, 527, 527, 527, 878, 879, 880, 501, 502, 503, 508, 1415, 474, 244, 1414, 527, 527, 527, 527, 509, 877, 777, 777, 777, 777, 511, 660, 474, 1413, 512, 474, 1412, 660, 513, 644, 644, 644, 644, 514, 515, 516, 797, 798, 799, 406, 474, 1411, 800, 1410, 800, 406, 513, 801, 801, 801, 801, 779, 805, 586, 805, 1409, 648, 806, 806, 806, 806, 779, 648, 1408, 878, 879, 880, 586, 881, 514, 515, 516, 475, 465, 465, 465, 465, 1407, 1406, 529, 1405, 264, 881, 505, 505, 505, 505, 476, 244, 1237, 943, 246, 1237, 1404, 530, 506, 943, 1403, 246, 1238, 780, 781, 782, 1050, 1051, 1052, 529, 477, 1402, 1401, 780, 781, 782, 506, 531, 244, 1400, 895, 896, 897, 944, 530, 836, 619, 836, 246, 944, 837, 837, 837, 837, 895, 896, 897, 855, 1396, 478, 479, 480, 785, 923, 531, 613, 532, 533, 534, 529, 606, 509, 856, 786, 786, 786, 786, 787, 244, 971, 936, 512, 971, 1395, 530, 788, 936, 914, 246, 972, 826, 1394, 855, 532, 533, 534, 779, 778, 905, 244, 197, 542, 1393, 788, 531, 476, 933, 1392, 933, 246, 244, 934, 934, 934, 1179, 1181, 245, 793, 794, 795, 246, 857, 858, 859, 1381, 827, 789, 790, 791, 785, 817, 818, 819, 532, 533, 534, 543, 1380, 509, 1173, 804, 804, 804, 804, 787, 780, 781, 782, 512, 408, 409, 410, 788, 542, 828, 829, 830, 1118, 1119, 1120, 586, 1373, 244, 779, 778, 544, 545, 546, 245, 1372, 788, 555, 246, 1166, 1358, 589, 1357, 1157, 787, 590, 290, 657, 657, 657, 657, 469, 556, 469, 543, 585, 292, 469, 1350, 789, 790, 791, 808, 657, 657, 657, 657, 1012, 1012, 1012, 1012, 809, 557, 810, 810, 810, 810, 811, 780, 781, 782, 812, 894, 544, 545, 546, 861, 862, 863, 555, 592, 593, 594, 780, 781, 782, 839, 477, 290, 1349, 1348, 558, 559, 560, 556, 290, 1251, 1642, 292, 1251, 1642, 306, 1130, 1131, 1132, 292, 1252, 1642, 290, 1196, 605, 605, 605, 605, 557, 1196, 813, 814, 815, 826, 1147, 840, 554, 655, 655, 655, 655, 555, 244, 1347, 833, 833, 833, 833, 476, 381, 290, 890, 246, 1346, 554, 882, 556, 558, 559, 560, 292, 1136, 1137, 1138, 841, 842, 843, 381, 827, 847, 732, 732, 732, 732, 563, 1345, 557, 734, 290, 735, 735, 735, 735, 290, 608, 1140, 1141, 1142, 292, 306, 891, 892, 893, 292, 915, 916, 917, 828, 829, 830, 586, 934, 934, 934, 848, 558, 559, 560, 1344, 564, 757, 588, 588, 588, 588, 589, 1139, 563, 1197, 590, 934, 934, 934, 835, 1197, 758, 290, 1343, 868, 939, 939, 939, 306, 849, 850, 851, 292, 290, 565, 566, 567, 835, 577, 608, 1342, 757, 1135, 292, 1028, 1029, 1030, 290, 564, 577, 1040, 1041, 1042, 306, 1341, 876, 877, 292, 290, 869, 592, 593, 594, 1340, 306, 1339, 973, 1129, 292, 973, 759, 760, 761, 578, 576, 1338, 974, 565, 566, 567, 731, 731, 731, 731, 578, 867, 568, 197, 870, 871, 872, 604, 457, 604, 290, 1398, 605, 605, 605, 605, 1337, 1398, 579, 580, 581, 878, 879, 880, 554, 860, 457, 1336, 854, 579, 580, 581, 586, 739, 739, 739, 739, 733, 733, 733, 733, 587, 554, 875, 875, 875, 875, 589, 1335, 457, 1399, 590, 408, 409, 410, 591, 1399, 898, 1642, 898, 1334, 1642, 899, 899, 899, 899, 877, 457, 1642, 903, 1117, 903, 607, 591, 904, 904, 904, 904, 877, 562, 1333, 290, 1046, 1047, 1048, 607, 406, 608, 846, 406, 757, 292, 554, 1332, 290, 406, 592, 593, 594, 555, 608, 1050, 1051, 1052, 292, 758, 838, 609, 302, 1331, 583, 583, 583, 583, 556, 878, 879, 880, 292, 1330, 609, 1105, 584, 541, 1329, 757, 607, 878, 879, 880, 1322, 1323, 1324, 924, 557, 290, 610, 611, 612, 825, 584, 608, 290, 1642, 535, 292, 1642, 528, 556, 610, 611, 612, 292, 1642, 759, 760, 761, 1064, 1064, 1064, 1064, 609, 1328, 558, 559, 560, 883, 816, 925, 784, 804, 804, 804, 804, 1327, 587, 807, 884, 884, 884, 884, 885, 1118, 1119, 1120, 590, 1326, 784, 1431, 886, 610, 611, 612, 620, 1130, 1131, 1132, 926, 927, 928, 620, 876, 290, 837, 837, 837, 837, 886, 291, 290, 1325, 1089, 292, 1091, 1314, 291, 463, 1642, 463, 292, 1642, 733, 733, 733, 733, 1313, 1237, 1642, 621, 1237, 887, 888, 889, 883, 1640, 621, 1238, 1083, 197, 1090, 1640, 1306, 587, 877, 902, 902, 902, 902, 885, 636, 1642, 636, 590, 1642, 1091, 636, 886, 622, 623, 624, 1642, 1305, 975, 1641, 622, 623, 624, 885, 876, 1641, 1642, 197, 1642, 455, 886, 733, 733, 733, 733, 1076, 1642, 1291, 1290, 1642, 1136, 1137, 1138, 408, 409, 410, 1642, 1067, 878, 879, 880, 977, 507, 887, 888, 889, 906, 197, 1283, 1092, 1093, 1094, 1140, 1141, 1142, 907, 197, 908, 908, 908, 908, 909, 878, 879, 880, 910, 408, 409, 410, 902, 902, 902, 902, 976, 1642, 1433, 796, 1642, 1433, 1282, 1642, 557, 1281, 1642, 1642, 1434, 1642, 1219, 1642, 455, 1642, 456, 456, 456, 456, 197, 408, 409, 410, 1642, 1057, 197, 1642, 458, 1280, 408, 409, 410, 1058, 1642, 911, 912, 913, 924, 455, 792, 731, 731, 731, 731, 197, 458, 290, 779, 937, 937, 937, 937, 556, 1642, 978, 1642, 292, 979, 1013, 1013, 1013, 1013, 1066, 1066, 1066, 1066, 1279, 1058, 408, 409, 410, 981, 925, 784, 408, 409, 410, 1278, 1277, 1066, 1066, 1066, 1066, 1049, 1276, 855, 1389, 1390, 1391, 1642, 1275, 784, 1642, 408, 409, 410, 1059, 1060, 1061, 1642, 856, 926, 927, 928, 940, 940, 940, 940, 1642, 784, 197, 1642, 1045, 940, 940, 940, 940, 805, 1642, 805, 855, 1274, 806, 806, 806, 806, 779, 778, 1273, 197, 940, 940, 940, 940, 940, 940, 668, 668, 668, 668, 980, 1156, 1156, 1156, 1156, 668, 668, 668, 668, 857, 858, 859, 1272, 855, 1039, 982, 1487, 1488, 1489, 408, 409, 410, 668, 668, 668, 668, 668, 668, 856, 498, 1271, 1642, 769, 488, 1642, 780, 781, 782, 408, 409, 410, 1642, 1270, 984, 762, 1269, 984, 1642, 855, 197, 1642, 1642, 197, 985, 1642, 1642, 756, 1642, 1642, 1642, 1436, 1642, 1642, 1436, 197, 1642, 1268, 1267, 197, 1642, 1437, 1027, 197, 1322, 1323, 1324, 197, 857, 858, 859, 197, 1154, 1154, 1154, 1154, 1642, 1642, 1220, 1642, 1642, 986, 983, 482, 882, 1642, 1642, 1642, 1642, 408, 409, 410, 408, 409, 410, 1642, 988, 1642, 197, 1266, 1642, 987, 882, 748, 408, 409, 410, 1642, 408, 409, 410, 474, 408, 409, 410, 1265, 408, 409, 410, 740, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 1264, 418, 1430, 419, 420, 421, 422, 989, 423, 424, 425, 426, 1642, 1263, 1432, 1642, 1015, 408, 409, 410, 670, 669, 1642, 801, 801, 801, 801, 779, 1531, 1532, 1533, 1439, 1642, 197, 1439, 1642, 407, 1156, 1156, 1156, 1156, 1440, 1642, 670, 1642, 669, 407, 1642, 1642, 882, 1218, 1642, 1642, 197, 1642, 1642, 990, 1180, 1642, 1217, 1009, 1251, 1642, 1009, 1251, 197, 1216, 882, 1215, 197, 1010, 1252, 1181, 1389, 1390, 1391, 780, 781, 782, 998, 1214, 197, 408, 409, 410, 991, 991, 991, 991, 991, 1213, 991, 992, 1007, 991, 991, 991, 197, 1212, 991, 1211, 991, 408, 409, 410, 999, 1210, 993, 991, 1209, 1438, 991, 1208, 1207, 408, 409, 410, 1206, 408, 409, 410, 1182, 1183, 1184, 991, 1205, 991, 992, 991, 197, 408, 409, 410, 1204, 806, 806, 806, 806, 779, 994, 1239, 197, 1487, 1488, 1489, 1203, 408, 409, 410, 1202, 1201, 991, 991, 991, 991, 991, 995, 996, 997, 1000, 1000, 1000, 1000, 1000, 1200, 1000, 1001, 1222, 1000, 1000, 1000, 1199, 1198, 1000, 1642, 1000, 407, 1642, 408, 409, 410, 1002, 1000, 1642, 1642, 1000, 1642, 780, 781, 782, 408, 409, 410, 1642, 1194, 197, 311, 508, 1000, 1193, 1000, 1001, 1000, 619, 197, 1016, 509, 1003, 1014, 1014, 1014, 1014, 511, 1192, 244, 1191, 512, 1531, 1532, 1533, 530, 1008, 923, 304, 246, 1000, 1000, 1000, 1000, 1000, 1004, 1005, 1006, 741, 1011, 1190, 613, 642, 1189, 642, 1017, 741, 244, 642, 408, 409, 410, 606, 268, 1188, 244, 1187, 246, 408, 409, 410, 268, 914, 749, 1186, 246, 514, 515, 516, 197, 749, 1185, 244, 742, 1018, 1019, 1020, 1642, 530, 244, 1642, 742, 246, 648, 905, 530, 648, 1642, 800, 246, 800, 1155, 648, 801, 801, 801, 801, 779, 750, 585, 1153, 1240, 743, 744, 745, 750, 749, 1152, 894, 1146, 743, 744, 745, 936, 1642, 244, 936, 1642, 408, 409, 410, 530, 936, 770, 1642, 246, 1145, 751, 752, 753, 770, 890, 244, 1144, 751, 752, 753, 1442, 530, 244, 1148, 750, 246, 1143, 770, 530, 780, 781, 782, 246, 882, 1642, 1134, 244, 1642, 877, 1133, 876, 771, 530, 1128, 1642, 576, 246, 1127, 771, 1126, 1068, 867, 288, 751, 752, 753, 1441, 1125, 1148, 244, 568, 197, 771, 1124, 1123, 1069, 860, 475, 1122, 246, 772, 773, 774, 197, 1121, 854, 244, 772, 773, 774, 1116, 1444, 1074, 562, 1115, 1070, 246, 1149, 1150, 1151, 1221, 772, 773, 774, 785, 899, 899, 899, 899, 877, 1114, 846, 477, 509, 197, 804, 804, 804, 804, 787, 408, 409, 410, 512, 1071, 1072, 1073, 788, 1642, 1113, 554, 1642, 408, 409, 410, 508, 1112, 1111, 1642, 778, 838, 478, 479, 480, 1642, 788, 1075, 1075, 1075, 1075, 511, 273, 1642, 1241, 512, 1642, 1103, 1084, 878, 879, 880, 541, 1642, 408, 409, 410, 244, 197, 789, 790, 791, 785, 268, 1102, 1101, 197, 246, 825, 826, 266, 509, 1435, 786, 786, 786, 786, 787, 244, 1642, 1250, 512, 1642, 1085, 476, 788, 826, 1100, 246, 1642, 514, 515, 516, 535, 1099, 244, 1422, 778, 528, 1422, 1230, 476, 1098, 788, 827, 246, 1423, 408, 409, 410, 1097, 816, 1086, 1087, 1088, 408, 409, 410, 1096, 1095, 1642, 827, 1013, 1013, 1013, 1013, 789, 790, 791, 1077, 807, 1065, 507, 828, 829, 830, 1063, 1062, 809, 1443, 1078, 1078, 1078, 1078, 1079, 796, 826, 1056, 812, 1055, 828, 829, 830, 1106, 197, 244, 1433, 1436, 197, 1433, 1436, 476, 290, 792, 1070, 246, 1434, 1437, 608, 1054, 1053, 903, 292, 903, 784, 1044, 904, 904, 904, 904, 877, 827, 1043, 778, 1242, 1038, 1255, 586, 1107, 498, 1037, 1036, 197, 1080, 1081, 1082, 587, 769, 1104, 1104, 1104, 1104, 589, 408, 409, 410, 590, 408, 409, 410, 828, 829, 830, 826, 1254, 242, 1035, 1108, 1109, 1110, 488, 1034, 244, 1033, 833, 833, 833, 833, 476, 878, 879, 880, 246, 762, 1032, 839, 1031, 756, 1026, 197, 839, 408, 409, 410, 290, 197, 482, 847, 827, 290, 306, 592, 593, 594, 292, 306, 290, 1439, 1642, 292, 1439, 1642, 608, 1025, 1024, 1249, 292, 1440, 1642, 748, 840, 1023, 847, 474, 1022, 840, 1021, 828, 829, 830, 740, 290, 848, 847, 228, 1253, 196, 608, 408, 409, 410, 292, 290, 670, 408, 409, 410, 669, 608, 841, 842, 843, 292, 407, 841, 842, 843, 848, 868, 970, 969, 849, 850, 851, 968, 868, 967, 290, 848, 966, 868, 965, 1422, 608, 290, 1422, 197, 292, 964, 290, 608, 963, 1423, 962, 292, 608, 849, 850, 851, 292, 961, 1642, 1433, 869, 1642, 1433, 960, 849, 850, 851, 869, 1642, 1434, 957, 898, 869, 898, 956, 1262, 899, 899, 899, 899, 877, 904, 904, 904, 904, 877, 953, 952, 951, 870, 871, 872, 408, 409, 410, 948, 870, 871, 872, 947, 946, 870, 871, 872, 883, 945, 407, 1298, 1298, 1298, 1298, 779, 942, 587, 941, 902, 902, 902, 902, 885, 345, 641, 332, 590, 635, 318, 938, 886, 311, 878, 879, 880, 1158, 930, 878, 879, 880, 555, 929, 876, 1642, 290, 619, 1642, 1174, 886, 290, 1159, 922, 304, 1642, 292, 1164, 290, 1436, 1439, 292, 1436, 1439, 306, 780, 781, 782, 292, 1437, 1440, 921, 1160, 887, 888, 889, 883, 557, 920, 613, 919, 918, 606, 1582, 1175, 587, 1582, 884, 884, 884, 884, 885, 901, 1583, 900, 590, 585, 1058, 881, 886, 901, 1161, 1162, 1163, 900, 1555, 558, 559, 560, 586, 585, 876, 779, 1176, 1177, 1178, 924, 886, 1642, 881, 1165, 1165, 1165, 1165, 589, 290, 1642, 874, 590, 1642, 873, 556, 1058, 576, 924, 292, 1642, 924, 866, 288, 887, 888, 889, 290, 1237, 1642, 290, 1237, 1642, 556, 865, 925, 556, 292, 1238, 1642, 292, 1251, 864, 568, 1251, 1059, 1060, 1061, 570, 197, 853, 1252, 852, 925, 562, 1058, 925, 592, 593, 594, 1167, 845, 197, 844, 926, 927, 928, 554, 281, 907, 779, 1168, 1168, 1168, 1168, 1169, 834, 273, 832, 910, 831, 541, 926, 927, 928, 926, 927, 928, 1016, 824, 1058, 1582, 266, 1562, 1582, 1160, 823, 244, 408, 409, 410, 1583, 822, 530, 535, 1642, 1642, 246, 1642, 1642, 821, 408, 409, 410, 1316, 1642, 1642, 820, 528, 1059, 1060, 1061, 803, 1017, 1170, 1171, 1172, 924, 802, 1317, 507, 783, 803, 802, 1642, 507, 290, 1642, 937, 937, 937, 937, 556, 783, 1642, 776, 292, 775, 1016, 1316, 498, 1016, 1018, 1019, 1020, 768, 242, 244, 1622, 767, 244, 1622, 925, 530, 766, 1569, 530, 246, 1623, 488, 246, 1642, 1642, 490, 1642, 1642, 755, 754, 1318, 1319, 1320, 1642, 1642, 1017, 482, 747, 1017, 746, 474, 235, 468, 926, 927, 928, 940, 940, 940, 940, 1365, 1365, 1365, 1365, 877, 940, 940, 940, 940, 1298, 1298, 1298, 1298, 779, 1018, 1019, 1020, 1018, 1019, 1020, 728, 1068, 940, 940, 940, 940, 940, 940, 1195, 1195, 244, 1195, 1642, 1195, 196, 1642, 1069, 1195, 1195, 694, 246, 1195, 1642, 693, 690, 687, 684, 1582, 1622, 1195, 1582, 1622, 683, 878, 879, 880, 1070, 1583, 1623, 1148, 682, 681, 780, 781, 782, 677, 1195, 673, 1195, 670, 1642, 669, 407, 1642, 877, 1365, 1365, 1365, 1365, 877, 1642, 1622, 659, 658, 1622, 1071, 1072, 1073, 625, 643, 345, 1623, 637, 1195, 1148, 1195, 1223, 1223, 1223, 1223, 1223, 1642, 1223, 1224, 1642, 1223, 1223, 1223, 332, 631, 1223, 1642, 1223, 1639, 1639, 1639, 318, 630, 1225, 1223, 629, 311, 1223, 1149, 1150, 1151, 618, 617, 878, 879, 880, 1639, 1639, 1639, 1639, 1223, 304, 1223, 1224, 1223, 1068, 575, 574, 288, 1226, 550, 281, 549, 548, 244, 273, 252, 540, 539, 266, 1069, 495, 494, 242, 246, 470, 235, 1223, 1223, 1223, 1223, 1223, 1227, 1228, 1229, 1231, 1231, 1231, 1231, 1231, 1070, 1231, 1232, 228, 1231, 1231, 1231, 452, 451, 1231, 196, 1231, 173, 347, 346, 345, 385, 1233, 1231, 384, 383, 1231, 376, 373, 1285, 369, 366, 352, 347, 1071, 1072, 1073, 346, 244, 1231, 345, 1231, 1232, 1231, 268, 348, 347, 346, 246, 345, 338, 335, 334, 333, 332, 323, 320, 319, 318, 297, 283, 282, 281, 262, 1286, 237, 1231, 1231, 1231, 1231, 1231, 1234, 1235, 1236, 1243, 1243, 1243, 1243, 1243, 236, 1243, 1244, 235, 1243, 1243, 1243, 228, 217, 1243, 186, 1243, 173, 172, 1287, 1288, 1289, 1245, 1243, 1642, 1642, 1243, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1243, 1642, 1243, 1244, 1243, 1642, 1642, 1068, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1642, 1642, 1642, 1642, 1069, 1642, 1642, 1642, 246, 1243, 1243, 1243, 1243, 1243, 1246, 1247, 1248, 411, 412, 413, 414, 415, 416, 417, 1070, 418, 1642, 419, 420, 421, 422, 1642, 423, 424, 425, 426, 1256, 1256, 1256, 1256, 1256, 1642, 1256, 1257, 1642, 1256, 1256, 1256, 1293, 1642, 1256, 1068, 1256, 1071, 1072, 1073, 1642, 244, 1258, 1256, 244, 1642, 1256, 268, 1642, 1642, 1069, 246, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1256, 1068, 1256, 1257, 1256, 1642, 1642, 1642, 1294, 1642, 244, 1070, 1642, 1642, 1642, 1642, 1079, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1256, 1256, 1256, 1256, 1256, 1259, 1260, 1261, 785, 1070, 1295, 1296, 1297, 1071, 1072, 1073, 1300, 509, 1642, 1066, 1066, 1066, 1066, 787, 1642, 244, 1642, 512, 1642, 1642, 1642, 268, 1642, 1308, 1642, 246, 1642, 1642, 1071, 1072, 1073, 1084, 244, 778, 1642, 1642, 1642, 1642, 530, 1642, 244, 1301, 246, 1642, 1642, 1642, 268, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1309, 1642, 1642, 1642, 789, 790, 791, 785, 1085, 1642, 1642, 1642, 1302, 1303, 1304, 1642, 509, 1642, 1064, 1064, 1064, 1064, 787, 1642, 1642, 1642, 512, 1642, 1642, 1310, 1311, 1312, 1084, 1642, 1642, 1106, 1642, 1086, 1087, 1088, 1106, 244, 778, 1642, 290, 1642, 1642, 268, 1642, 290, 608, 246, 1642, 1642, 292, 608, 1642, 1642, 1642, 292, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1085, 1642, 1642, 1107, 789, 790, 791, 1077, 1107, 1642, 1642, 1642, 1148, 1642, 1642, 1642, 809, 1642, 1078, 1078, 1078, 1078, 1079, 1642, 1642, 1642, 812, 877, 1642, 1086, 1087, 1088, 1108, 1109, 1110, 1106, 1642, 1108, 1109, 1110, 1158, 1642, 1070, 1642, 290, 1642, 1383, 1148, 1642, 290, 608, 1642, 1642, 1642, 292, 1159, 1642, 1642, 1642, 292, 1642, 1384, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1107, 1080, 1081, 1082, 883, 1160, 1149, 1150, 1151, 1316, 1642, 1383, 1642, 587, 1642, 1156, 1156, 1156, 1156, 885, 1642, 1642, 1642, 590, 1317, 1642, 1642, 1642, 1158, 1108, 1109, 1110, 1642, 1642, 1161, 1162, 1163, 290, 1642, 876, 1385, 1386, 1387, 1159, 1316, 1642, 1352, 292, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 290, 1642, 1642, 1642, 1642, 1642, 306, 1642, 1160, 1642, 292, 1642, 1642, 887, 888, 889, 883, 1642, 1318, 1319, 1320, 1642, 1642, 1642, 1642, 587, 1353, 1154, 1154, 1154, 1154, 885, 1642, 1158, 1642, 590, 1642, 1161, 1162, 1163, 1642, 1642, 290, 1642, 1360, 1642, 1642, 1642, 1159, 1642, 1642, 876, 292, 290, 1642, 1354, 1355, 1356, 1158, 306, 1642, 1642, 1642, 292, 1642, 1642, 1642, 290, 1160, 1158, 1642, 1642, 1642, 1159, 1642, 1642, 1367, 292, 290, 1361, 887, 888, 889, 1642, 1169, 290, 1642, 1642, 292, 1642, 1642, 306, 1642, 1160, 1642, 292, 1642, 1161, 1162, 1163, 1642, 1642, 1642, 1642, 1160, 1642, 1642, 1642, 1362, 1363, 1364, 1368, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1161, 1162, 1163, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1161, 1162, 1163, 1167, 1642, 1642, 1642, 1369, 1370, 1371, 1375, 1642, 907, 1642, 1168, 1168, 1168, 1168, 1169, 290, 1642, 1174, 910, 1642, 1174, 608, 1642, 1642, 1642, 292, 290, 1642, 1642, 290, 1642, 1642, 306, 1642, 1160, 306, 292, 1642, 1458, 292, 1642, 1376, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1642, 1642, 1642, 1175, 530, 1642, 1175, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1170, 1171, 1172, 1642, 1642, 1642, 1642, 1377, 1378, 1379, 1459, 1642, 1642, 1316, 1642, 1642, 1642, 1285, 1176, 1177, 1178, 1176, 1177, 1178, 1397, 1397, 244, 1397, 1317, 1397, 1642, 1642, 268, 1397, 1397, 1642, 246, 1397, 1642, 1460, 1461, 1462, 1642, 1642, 1642, 1397, 1642, 1642, 1316, 1642, 1642, 1642, 1286, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1397, 1642, 1397, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1318, 1319, 1320, 1642, 1287, 1288, 1289, 1642, 1383, 1642, 1642, 1642, 1397, 1642, 1397, 1416, 1416, 1416, 1416, 1416, 1642, 1416, 1417, 1384, 1416, 1416, 1416, 1642, 1642, 1416, 1642, 1416, 1642, 1642, 1642, 1642, 1642, 1418, 1416, 1642, 1642, 1416, 1642, 1383, 1285, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1416, 1642, 1416, 1417, 1416, 268, 1642, 1467, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1385, 1386, 1387, 1642, 530, 1642, 1642, 1286, 246, 1416, 1416, 1416, 1416, 1416, 1419, 1420, 1421, 1642, 1422, 1642, 1642, 1422, 1642, 1642, 1468, 1642, 1642, 1642, 1423, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1287, 1288, 1289, 197, 1642, 1642, 1642, 1642, 1383, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1469, 1470, 1471, 1642, 1642, 1642, 1384, 1642, 1293, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1642, 1642, 1642, 1642, 268, 1642, 1642, 1383, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 408, 409, 410, 1424, 1424, 1424, 1424, 1424, 1294, 1424, 1425, 1642, 1424, 1424, 1424, 1642, 1642, 1424, 1642, 1424, 1385, 1386, 1387, 1642, 1642, 1426, 1424, 1642, 1642, 1424, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1295, 1296, 1297, 1642, 1642, 1424, 1642, 1424, 1425, 1424, 1642, 1642, 1293, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1642, 1642, 1642, 1642, 268, 1642, 1642, 1642, 246, 1424, 1424, 1424, 1424, 1424, 1427, 1428, 1429, 411, 412, 413, 414, 415, 416, 417, 1294, 418, 1642, 419, 420, 421, 422, 1642, 423, 424, 425, 426, 1445, 1445, 1445, 1445, 1445, 1642, 1445, 1446, 1642, 1445, 1445, 1445, 1475, 1642, 1445, 1300, 1445, 1295, 1296, 1297, 1642, 244, 1447, 1445, 244, 1642, 1445, 530, 1642, 1300, 268, 246, 1642, 1642, 246, 1642, 1642, 1642, 244, 1445, 1308, 1445, 1446, 1445, 268, 1642, 1642, 1476, 246, 244, 1301, 1642, 1642, 1642, 1642, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1301, 1642, 1445, 1445, 1445, 1445, 1445, 1448, 1449, 1450, 1642, 1309, 1477, 1478, 1479, 1302, 1303, 1304, 1308, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1642, 1302, 1303, 1304, 1642, 530, 1642, 1308, 1642, 246, 1642, 1642, 1310, 1311, 1312, 1502, 244, 1642, 1352, 1642, 1642, 1642, 530, 1642, 290, 1309, 246, 290, 1642, 1352, 608, 1642, 1511, 306, 292, 1642, 1642, 292, 290, 1642, 1642, 290, 1309, 1360, 306, 1642, 1642, 608, 292, 1642, 1503, 292, 290, 1353, 1310, 1311, 1312, 1642, 306, 1642, 1642, 1642, 292, 1642, 1353, 1642, 1642, 1512, 1642, 1642, 1642, 1310, 1311, 1312, 1642, 1642, 1642, 1642, 1361, 1504, 1505, 1506, 1354, 1355, 1356, 1642, 1642, 1642, 1642, 1642, 1642, 1360, 1642, 1354, 1355, 1356, 1513, 1514, 1515, 1642, 290, 1642, 1519, 1642, 1642, 1367, 306, 1362, 1363, 1364, 292, 290, 1642, 1367, 290, 1642, 1375, 608, 1642, 1642, 306, 292, 290, 1642, 292, 290, 1361, 1375, 306, 1642, 1375, 608, 292, 1642, 1642, 292, 290, 1520, 1642, 290, 1368, 1642, 608, 1642, 1642, 608, 292, 1642, 1368, 292, 1642, 1376, 1642, 1642, 1642, 1362, 1363, 1364, 1642, 1642, 1642, 1642, 1376, 1642, 1642, 1376, 1521, 1522, 1523, 1369, 1370, 1371, 1642, 1642, 1642, 1642, 1642, 1369, 1370, 1371, 1377, 1378, 1379, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1377, 1378, 1379, 1377, 1378, 1379, 411, 412, 413, 414, 415, 416, 417, 1642, 418, 1642, 419, 420, 421, 422, 1642, 423, 424, 425, 426, 1549, 1549, 1549, 1549, 1549, 1642, 1549, 1550, 1642, 1549, 1549, 1549, 1642, 1642, 1549, 1642, 1549, 1642, 1642, 1642, 1642, 1642, 1551, 1549, 1642, 1642, 1549, 1642, 1642, 1458, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1549, 1642, 1549, 1550, 1549, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1459, 1642, 1549, 1549, 1549, 1549, 1549, 1552, 1553, 1554, 1556, 1556, 1556, 1556, 1556, 1642, 1556, 1557, 1642, 1556, 1556, 1556, 1642, 1642, 1556, 1642, 1556, 1642, 1642, 1460, 1461, 1462, 1558, 1556, 1642, 1642, 1556, 1642, 1642, 1458, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1556, 1642, 1556, 1557, 1556, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1459, 1642, 1556, 1556, 1556, 1556, 1556, 1559, 1560, 1561, 1563, 1563, 1563, 1563, 1563, 1642, 1563, 1564, 1642, 1563, 1563, 1563, 1642, 1642, 1563, 1642, 1563, 1642, 1642, 1460, 1461, 1462, 1565, 1563, 1642, 1642, 1563, 1642, 1642, 1458, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1563, 1642, 1563, 1564, 1563, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1459, 1642, 1563, 1563, 1563, 1563, 1563, 1566, 1567, 1568, 1570, 1570, 1570, 1570, 1570, 1642, 1570, 1571, 1642, 1570, 1570, 1570, 1642, 1642, 1570, 1642, 1570, 1642, 1642, 1460, 1461, 1462, 1572, 1570, 1642, 1642, 1570, 1642, 1642, 1467, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 244, 1570, 1642, 1570, 1571, 1570, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1468, 1642, 1570, 1570, 1570, 1570, 1570, 1573, 1574, 1575, 1576, 1576, 1576, 1576, 1576, 1642, 1576, 1577, 1642, 1576, 1576, 1576, 1642, 1642, 1576, 1467, 1576, 1642, 1467, 1469, 1470, 1471, 1578, 1576, 244, 1642, 1576, 244, 1642, 1475, 530, 1642, 1642, 530, 246, 1642, 1642, 246, 244, 1576, 1475, 1576, 1577, 1576, 530, 1642, 1642, 1642, 246, 244, 1468, 1642, 1642, 1468, 1642, 530, 1642, 1642, 1642, 246, 1642, 1642, 1642, 1642, 1476, 1642, 1576, 1576, 1576, 1576, 1576, 1579, 1580, 1581, 1642, 1476, 1642, 1475, 1642, 1469, 1470, 1471, 1469, 1470, 1471, 1642, 244, 1642, 1502, 1642, 1642, 1642, 530, 1477, 1478, 1479, 246, 290, 1642, 1502, 1642, 1642, 1502, 608, 1477, 1478, 1479, 292, 290, 1642, 1511, 290, 1476, 1511, 608, 1642, 1642, 608, 292, 290, 1642, 292, 290, 1503, 1642, 608, 1642, 1642, 608, 292, 1642, 1642, 292, 1642, 1503, 1642, 1642, 1503, 1642, 1642, 1642, 1477, 1478, 1479, 1642, 1512, 1642, 1642, 1512, 1642, 1642, 1642, 1504, 1505, 1506, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1504, 1505, 1506, 1504, 1505, 1506, 1642, 1642, 1511, 1642, 1642, 1513, 1514, 1515, 1513, 1514, 1515, 290, 1642, 1519, 1642, 1642, 1519, 608, 1642, 1642, 1642, 292, 290, 1642, 1519, 290, 1642, 1642, 608, 1642, 1642, 608, 292, 290, 1642, 292, 1642, 1512, 1642, 608, 1642, 1642, 1642, 292, 1642, 1642, 1642, 1642, 1520, 1642, 1642, 1520, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1520, 1642, 1642, 1642, 1642, 1642, 1642, 1513, 1514, 1515, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1521, 1522, 1523, 1521, 1522, 1523, 1642, 1642, 1642, 1642, 1642, 1521, 1522, 1523, 1616, 1616, 1616, 1616, 1616, 1642, 1616, 1617, 1642, 1616, 1616, 1616, 1642, 1642, 1616, 1642, 1616, 1642, 1642, 1642, 1642, 1642, 1618, 1616, 1642, 1642, 1616, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1616, 1642, 1616, 1617, 1616, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1616, 1616, 1616, 1616, 1616, 1619, 1620, 1621, 1624, 1624, 1624, 1624, 1624, 1642, 1624, 1625, 1642, 1624, 1624, 1624, 1642, 1642, 1624, 1642, 1624, 1642, 1642, 1642, 1642, 1642, 1626, 1624, 1642, 1642, 1624, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1624, 1642, 1624, 1625, 1624, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1624, 1624, 1624, 1624, 1624, 1627, 1628, 1629, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 168, 168, 1642, 1642, 1642, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 1642, 168, 168, 168, 168, 168, 225, 1642, 225, 1642, 1642, 1642, 225, 1642, 225, 225, 227, 227, 1642, 1642, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 242, 1642, 242, 1642, 1642, 242, 242, 1642, 242, 242, 1642, 242, 242, 242, 242, 242, 242, 266, 1642, 266, 1642, 1642, 266, 266, 1642, 266, 266, 1642, 266, 266, 266, 266, 266, 266, 273, 1642, 273, 1642, 1642, 273, 1642, 1642, 273, 273, 1642, 1642, 273, 1642, 273, 273, 273, 288, 1642, 288, 1642, 1642, 288, 288, 288, 288, 288, 1642, 288, 288, 288, 288, 288, 288, 304, 1642, 304, 1642, 1642, 304, 304, 304, 304, 304, 1642, 304, 304, 304, 304, 304, 304, 311, 1642, 311, 1642, 1642, 311, 1642, 311, 311, 311, 1642, 1642, 311, 1642, 311, 311, 311, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 349, 1642, 1642, 1642, 349, 1642, 349, 349, 357, 357, 357, 357, 1642, 1642, 357, 1642, 1642, 357, 357, 357, 357, 357, 374, 1642, 1642, 374, 1642, 374, 1642, 374, 374, 1642, 374, 374, 374, 374, 1642, 374, 374, 374, 374, 374, 374, 374, 386, 386, 1642, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 389, 389, 1642, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 407, 1642, 407, 1642, 1642, 407, 1642, 407, 407, 407, 1642, 1642, 407, 407, 407, 407, 407, 457, 1642, 457, 1642, 1642, 1642, 457, 1642, 457, 457, 227, 227, 1642, 1642, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 474, 1642, 474, 1642, 1642, 474, 474, 1642, 474, 474, 1642, 474, 474, 474, 474, 474, 474, 482, 1642, 482, 1642, 1642, 482, 482, 1642, 482, 482, 1642, 482, 482, 482, 482, 482, 482, 488, 1642, 488, 1642, 1642, 488, 1642, 1642, 488, 488, 1642, 1642, 488, 1642, 488, 488, 488, 498, 1642, 498, 1642, 1642, 498, 498, 1642, 498, 498, 1642, 498, 498, 498, 498, 498, 498, 507, 1642, 507, 1642, 1642, 507, 507, 1642, 507, 507, 1642, 507, 507, 1642, 507, 507, 507, 528, 1642, 528, 1642, 1642, 528, 528, 1642, 528, 528, 1642, 528, 528, 528, 528, 528, 528, 266, 1642, 266, 1642, 1642, 266, 266, 1642, 266, 266, 1642, 266, 266, 266, 266, 266, 266, 535, 1642, 535, 1642, 1642, 535, 1642, 1642, 535, 1642, 1642, 1642, 535, 535, 535, 535, 535, 541, 1642, 541, 1642, 1642, 541, 541, 1642, 541, 541, 1642, 541, 541, 541, 541, 541, 541, 554, 1642, 554, 1642, 1642, 554, 554, 554, 554, 554, 1642, 554, 554, 554, 554, 554, 554, 288, 1642, 288, 1642, 1642, 288, 288, 288, 288, 288, 1642, 288, 288, 288, 288, 288, 288, 562, 1642, 562, 1642, 1642, 562, 562, 562, 562, 562, 1642, 562, 562, 562, 562, 562, 562, 568, 1642, 568, 1642, 1642, 568, 1642, 568, 568, 568, 1642, 1642, 568, 1642, 568, 568, 568, 576, 1642, 576, 1642, 1642, 576, 576, 576, 576, 576, 1642, 576, 576, 576, 576, 576, 576, 585, 1642, 585, 1642, 1642, 585, 585, 585, 585, 585, 1642, 585, 585, 1642, 585, 585, 585, 606, 1642, 606, 1642, 1642, 606, 606, 606, 606, 606, 1642, 606, 606, 606, 606, 606, 606, 304, 1642, 304, 1642, 1642, 304, 304, 304, 304, 304, 1642, 304, 304, 304, 304, 304, 304, 613, 1642, 613, 1642, 1642, 613, 1642, 613, 613, 1642, 1642, 1642, 613, 613, 613, 613, 613, 619, 1642, 619, 1642, 1642, 619, 619, 619, 619, 619, 1642, 619, 619, 619, 619, 619, 619, 349, 1642, 1642, 1642, 349, 1642, 349, 349, 357, 1642, 1642, 1642, 357, 1642, 357, 357, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 1642, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 225, 1642, 225, 1642, 1642, 1642, 225, 1642, 225, 225, 374, 1642, 1642, 374, 1642, 374, 1642, 374, 374, 1642, 374, 374, 374, 374, 1642, 374, 374, 374, 374, 374, 374, 374, 389, 389, 1642, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 168, 168, 1642, 1642, 1642, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 1642, 168, 168, 168, 168, 168, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 457, 1642, 1642, 1642, 457, 1642, 457, 457, 666, 1642, 1642, 1642, 666, 1642, 666, 666, 407, 1642, 407, 1642, 1642, 407, 1642, 407, 407, 407, 1642, 1642, 407, 407, 407, 407, 407, 736, 1642, 736, 1642, 1642, 1642, 736, 1642, 736, 736, 507, 1642, 507, 1642, 1642, 507, 1642, 1642, 507, 507, 1642, 507, 507, 1642, 507, 507, 507, 474, 1642, 474, 1642, 1642, 474, 474, 1642, 474, 474, 1642, 474, 474, 474, 474, 474, 474, 740, 1642, 740, 1642, 1642, 740, 740, 1642, 740, 740, 1642, 740, 740, 740, 740, 740, 740, 748, 1642, 748, 1642, 1642, 748, 748, 1642, 748, 748, 1642, 748, 748, 748, 748, 748, 748, 482, 1642, 482, 1642, 1642, 482, 482, 1642, 482, 482, 1642, 482, 482, 482, 482, 482, 482, 756, 1642, 756, 1642, 1642, 756, 1642, 1642, 756, 756, 1642, 1642, 756, 756, 756, 756, 756, 762, 1642, 762, 1642, 1642, 762, 1642, 1642, 762, 1642, 1642, 1642, 762, 762, 762, 762, 762, 769, 1642, 769, 1642, 1642, 769, 769, 1642, 769, 769, 1642, 769, 769, 769, 769, 769, 769, 498, 1642, 498, 1642, 1642, 498, 498, 1642, 498, 498, 1642, 498, 498, 498, 498, 498, 498, 778, 1642, 778, 1642, 1642, 778, 1642, 1642, 778, 778, 1642, 1642, 778, 778, 778, 778, 778, 784, 1642, 784, 1642, 1642, 784, 784, 1642, 784, 784, 1642, 784, 784, 784, 784, 784, 784, 792, 1642, 792, 1642, 1642, 792, 1642, 1642, 792, 1642, 1642, 1642, 792, 792, 792, 792, 792, 796, 1642, 796, 1642, 1642, 796, 1642, 1642, 796, 796, 1642, 1642, 796, 1642, 796, 796, 796, 807, 1642, 807, 1642, 1642, 807, 807, 1642, 807, 807, 1642, 807, 807, 807, 807, 807, 807, 528, 1642, 528, 1642, 1642, 528, 528, 1642, 528, 528, 1642, 528, 528, 528, 528, 528, 528, 816, 1642, 816, 1642, 1642, 816, 1642, 1642, 816, 1642, 1642, 1642, 816, 816, 816, 816, 816, 535, 1642, 535, 1642, 1642, 535, 1642, 1642, 535, 1642, 1642, 1642, 535, 535, 535, 535, 535, 825, 1642, 825, 1642, 1642, 825, 825, 1642, 825, 825, 1642, 825, 825, 825, 825, 825, 825, 541, 1642, 541, 1642, 1642, 541, 541, 1642, 541, 541, 1642, 541, 541, 541, 541, 541, 541, 585, 1642, 585, 1642, 1642, 585, 1642, 585, 585, 585, 1642, 585, 585, 1642, 585, 585, 585, 554, 1642, 554, 1642, 1642, 554, 554, 554, 554, 554, 1642, 554, 554, 554, 554, 554, 554, 838, 1642, 838, 1642, 1642, 838, 838, 838, 838, 838, 1642, 838, 838, 838, 838, 838, 838, 846, 1642, 846, 1642, 1642, 846, 846, 846, 846, 846, 1642, 846, 846, 846, 846, 846, 846, 562, 1642, 562, 1642, 1642, 562, 562, 562, 562, 562, 1642, 562, 562, 562, 562, 562, 562, 854, 1642, 854, 1642, 1642, 854, 1642, 854, 854, 854, 1642, 1642, 854, 854, 854, 854, 854, 860, 1642, 860, 1642, 1642, 860, 1642, 860, 860, 1642, 1642, 1642, 860, 860, 860, 860, 860, 867, 1642, 867, 1642, 1642, 867, 867, 867, 867, 867, 1642, 867, 867, 867, 867, 867, 867, 576, 1642, 576, 1642, 1642, 576, 576, 576, 576, 576, 1642, 576, 576, 576, 576, 576, 576, 876, 1642, 876, 1642, 1642, 876, 1642, 876, 876, 876, 1642, 1642, 876, 876, 876, 876, 876, 882, 1642, 882, 1642, 1642, 882, 882, 882, 882, 882, 1642, 882, 882, 882, 882, 882, 882, 890, 1642, 890, 1642, 1642, 890, 1642, 890, 890, 1642, 1642, 1642, 890, 890, 890, 890, 890, 894, 1642, 894, 1642, 1642, 894, 1642, 894, 894, 894, 1642, 1642, 894, 1642, 894, 894, 894, 905, 1642, 905, 1642, 1642, 905, 905, 905, 905, 905, 1642, 905, 905, 905, 905, 905, 905, 606, 1642, 606, 1642, 1642, 606, 606, 606, 606, 606, 1642, 606, 606, 606, 606, 606, 606, 914, 1642, 914, 1642, 1642, 914, 1642, 914, 914, 1642, 1642, 1642, 914, 914, 914, 914, 914, 613, 1642, 613, 1642, 1642, 613, 1642, 613, 613, 1642, 1642, 1642, 613, 613, 613, 613, 613, 923, 1642, 923, 1642, 1642, 923, 923, 923, 923, 923, 1642, 923, 923, 923, 923, 923, 923, 619, 1642, 619, 1642, 1642, 619, 619, 619, 619, 619, 1642, 619, 619, 619, 619, 619, 619, 666, 1642, 1642, 1642, 666, 1642, 666, 666, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 1642, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 374, 1642, 1642, 374, 1642, 374, 1642, 374, 374, 1642, 374, 374, 374, 374, 1642, 374, 374, 374, 374, 374, 374, 374, 457, 1642, 1642, 457, 1642, 1642, 1642, 457, 1642, 457, 457, 710, 710, 710, 710, 710, 1642, 710, 710, 710, 710, 1642, 710, 1642, 1642, 710, 710, 710, 1642, 710, 1642, 1642, 710, 407, 1642, 1642, 407, 407, 1642, 407, 1642, 1642, 407, 1642, 407, 407, 407, 1642, 1642, 407, 407, 407, 407, 407, 736, 1642, 736, 1642, 1642, 1642, 736, 1642, 736, 736, 778, 1642, 778, 1642, 1642, 778, 1642, 1642, 778, 778, 1642, 1642, 778, 778, 778, 778, 778, 507, 1642, 507, 1642, 1642, 507, 507, 1642, 507, 507, 1642, 507, 507, 1642, 507, 507, 507, 1015, 1642, 1015, 1642, 1642, 1015, 1015, 1642, 1015, 1015, 1642, 1015, 1015, 1015, 1015, 1015, 1015, 740, 1642, 740, 1642, 1642, 740, 740, 1642, 740, 740, 1642, 740, 740, 740, 740, 740, 740, 748, 1642, 748, 1642, 1642, 748, 748, 1642, 748, 748, 1642, 748, 748, 748, 748, 748, 748, 756, 1642, 756, 1642, 1642, 756, 1642, 1642, 756, 756, 1642, 1642, 756, 756, 756, 756, 756, 1027, 1642, 1027, 1642, 1642, 1027, 1642, 1642, 1027, 1642, 1642, 1642, 1027, 1027, 1027, 1027, 1027, 762, 1642, 762, 1642, 1642, 762, 1642, 1642, 762, 1642, 1642, 1642, 762, 762, 762, 762, 762, 769, 1642, 769, 1642, 1642, 769, 769, 1642, 769, 769, 1642, 769, 769, 769, 769, 769, 769, 784, 1642, 784, 1642, 1642, 784, 784, 1642, 784, 784, 1642, 784, 784, 784, 784, 784, 784, 1039, 1642, 1039, 1642, 1642, 1039, 1642, 1642, 1039, 1642, 1642, 1642, 1039, 1039, 1039, 1039, 1039, 1045, 1642, 1045, 1642, 1642, 1045, 1642, 1642, 1045, 1642, 1642, 1642, 1045, 1045, 1045, 1045, 1045, 1049, 1642, 1049, 1642, 1642, 1049, 1642, 1642, 1049, 1642, 1642, 1642, 1049, 1049, 1049, 1049, 1049, 792, 1642, 792, 1642, 1642, 792, 1642, 1642, 792, 1642, 1642, 1642, 792, 792, 792, 792, 792, 1057, 1642, 1057, 1642, 1642, 1057, 1642, 1642, 1057, 1057, 1642, 1642, 1057, 1057, 1057, 1057, 1057, 1067, 1642, 1067, 1642, 1642, 1067, 1067, 1642, 1067, 1067, 1642, 1067, 1067, 1067, 1067, 1067, 1067, 474, 1642, 474, 1642, 1642, 474, 474, 1642, 474, 474, 1642, 474, 474, 474, 474, 474, 474, 1076, 1642, 1076, 1642, 1642, 1076, 1076, 1642, 1076, 1076, 1642, 1076, 1076, 1076, 1076, 1076, 1076, 1083, 1642, 1083, 1642, 1642, 1083, 1083, 1642, 1083, 1083, 1642, 1083, 1083, 1083, 1083, 1083, 1083, 1089, 1642, 1089, 1642, 1642, 1089, 1642, 1642, 1089, 1089, 1642, 1642, 1089, 1642, 1089, 1089, 1089, 816, 1642, 816, 1642, 1642, 816, 1642, 1642, 816, 1642, 1642, 1642, 816, 816, 816, 816, 816, 825, 1642, 825, 1642, 1642, 825, 825, 1642, 825, 825, 1642, 825, 825, 825, 825, 825, 825, 876, 1642, 876, 1642, 1642, 876, 1642, 876, 876, 876, 1642, 1642, 876, 876, 876, 876, 876, 585, 1642, 585, 1642, 1642, 585, 585, 585, 585, 585, 1642, 585, 585, 1642, 585, 585, 585, 1105, 1642, 1105, 1642, 1642, 1105, 1105, 1105, 1105, 1105, 1642, 1105, 1105, 1105, 1105, 1105, 1105, 838, 1642, 838, 1642, 1642, 838, 838, 838, 838, 838, 1642, 838, 838, 838, 838, 838, 838, 846, 1642, 846, 1642, 1642, 846, 846, 846, 846, 846, 1642, 846, 846, 846, 846, 846, 846, 854, 1642, 854, 1642, 1642, 854, 1642, 854, 854, 854, 1642, 1642, 854, 854, 854, 854, 854, 1117, 1642, 1117, 1642, 1642, 1117, 1642, 1117, 1117, 1642, 1642, 1642, 1117, 1117, 1117, 1117, 1117, 860, 1642, 860, 1642, 1642, 860, 1642, 860, 860, 1642, 1642, 1642, 860, 860, 860, 860, 860, 867, 1642, 867, 1642, 1642, 867, 867, 867, 867, 867, 1642, 867, 867, 867, 867, 867, 867, 882, 1642, 882, 1642, 1642, 882, 882, 882, 882, 882, 1642, 882, 882, 882, 882, 882, 882, 1129, 1642, 1129, 1642, 1642, 1129, 1642, 1129, 1129, 1642, 1642, 1642, 1129, 1129, 1129, 1129, 1129, 1135, 1642, 1135, 1642, 1642, 1135, 1642, 1135, 1135, 1642, 1642, 1642, 1135, 1135, 1135, 1135, 1135, 1139, 1642, 1139, 1642, 1642, 1139, 1642, 1139, 1139, 1642, 1642, 1642, 1139, 1139, 1139, 1139, 1139, 890, 1642, 890, 1642, 1642, 890, 1642, 890, 890, 1642, 1642, 1642, 890, 890, 890, 890, 890, 1147, 1642, 1147, 1642, 1642, 1147, 1642, 1147, 1147, 1147, 1642, 1642, 1147, 1147, 1147, 1147, 1147, 1157, 1642, 1157, 1642, 1642, 1157, 1157, 1157, 1157, 1157, 1642, 1157, 1157, 1157, 1157, 1157, 1157, 554, 1642, 554, 1642, 1642, 554, 554, 554, 554, 554, 1642, 554, 554, 554, 554, 554, 554, 1166, 1642, 1166, 1642, 1642, 1166, 1166, 1166, 1166, 1166, 1642, 1166, 1166, 1166, 1166, 1166, 1166, 1173, 1642, 1173, 1642, 1642, 1173, 1173, 1173, 1173, 1173, 1642, 1173, 1173, 1173, 1173, 1173, 1173, 1179, 1642, 1179, 1642, 1642, 1179, 1642, 1179, 1179, 1179, 1642, 1642, 1179, 1642, 1179, 1179, 1179, 914, 1642, 914, 1642, 1642, 914, 1642, 914, 914, 1642, 1642, 1642, 914, 914, 914, 914, 914, 923, 1642, 923, 1642, 1642, 923, 923, 923, 923, 923, 1642, 923, 923, 923, 923, 923, 923, 666, 1642, 1642, 1642, 666, 1642, 666, 666, 374, 1642, 1642, 374, 1642, 374, 1642, 374, 374, 1642, 374, 374, 374, 374, 1642, 374, 374, 374, 374, 374, 374, 374, 991, 991, 991, 991, 991, 1642, 991, 991, 991, 991, 1642, 991, 1642, 1642, 991, 991, 991, 1642, 991, 1642, 991, 991, 1000, 1000, 1000, 1000, 1000, 1642, 1000, 1000, 1000, 1000, 1642, 1000, 1642, 1642, 1000, 1000, 1000, 1642, 1000, 1000, 1642, 1000, 407, 1642, 407, 1642, 1642, 407, 1642, 407, 407, 407, 1642, 1642, 407, 407, 407, 407, 407, 457, 1642, 457, 1642, 1642, 1642, 457, 1642, 457, 457, 784, 1642, 784, 1642, 1642, 784, 784, 1642, 784, 784, 1642, 784, 784, 784, 784, 784, 784, 1015, 1642, 1015, 1642, 1642, 1015, 1015, 1642, 1015, 1015, 1642, 1015, 1015, 1015, 1015, 1015, 1015, 1027, 1642, 1027, 1642, 1642, 1027, 1642, 1642, 1027, 1642, 1642, 1642, 1027, 1027, 1027, 1027, 1027, 1039, 1642, 1039, 1642, 1642, 1039, 1642, 1642, 1039, 1642, 1642, 1642, 1039, 1039, 1039, 1039, 1039, 1045, 1642, 1045, 1642, 1642, 1045, 1642, 1642, 1045, 1642, 1642, 1642, 1045, 1045, 1045, 1045, 1045, 1049, 1642, 1049, 1642, 1642, 1049, 1642, 1642, 1049, 1642, 1642, 1642, 1049, 1049, 1049, 1049, 1049, 1057, 1642, 1057, 1642, 1642, 1057, 1642, 1642, 1057, 1057, 1642, 1642, 1057, 1057, 1057, 1057, 1057, 1067, 1642, 1067, 1642, 1642, 1067, 1067, 1642, 1067, 1067, 1642, 1067, 1067, 1067, 1067, 1067, 1067, 1284, 1642, 1284, 1642, 1642, 1284, 1284, 1642, 1284, 1284, 1642, 1284, 1284, 1284, 1284, 1284, 1284, 1292, 1642, 1292, 1642, 1642, 1292, 1292, 1642, 1292, 1292, 1642, 1292, 1292, 1292, 1292, 1292, 1292, 778, 1642, 778, 1642, 1642, 778, 1642, 1642, 778, 778, 1642, 1642, 778, 778, 778, 778, 778, 1076, 1642, 1076, 1642, 1642, 1076, 1076, 1642, 1076, 1076, 1642, 1076, 1076, 1076, 1076, 1076, 1076, 1299, 1642, 1299, 1642, 1642, 1299, 1299, 1642, 1299, 1299, 1642, 1299, 1299, 1299, 1299, 1299, 1299, 1307, 1642, 1307, 1642, 1642, 1307, 1307, 1642, 1307, 1307, 1642, 1307, 1307, 1307, 1307, 1307, 1307, 1083, 1642, 1083, 1642, 1642, 1083, 1083, 1642, 1083, 1083, 1642, 1083, 1083, 1083, 1083, 1083, 1083, 1315, 1642, 1315, 1642, 1642, 1315, 1642, 1642, 1315, 1315, 1642, 1642, 1315, 1315, 1315, 1315, 1315, 1321, 1642, 1321, 1642, 1642, 1321, 1642, 1642, 1321, 1642, 1642, 1642, 1321, 1321, 1321, 1321, 1321, 882, 1642, 882, 1642, 1642, 882, 882, 882, 882, 882, 1642, 882, 882, 882, 882, 882, 882, 1105, 1642, 1105, 1642, 1642, 1105, 1105, 1105, 1105, 1105, 1642, 1105, 1105, 1105, 1105, 1105, 1105, 1117, 1642, 1117, 1642, 1642, 1117, 1642, 1117, 1117, 1642, 1642, 1642, 1117, 1117, 1117, 1117, 1117, 1129, 1642, 1129, 1642, 1642, 1129, 1642, 1129, 1129, 1642, 1642, 1642, 1129, 1129, 1129, 1129, 1129, 1135, 1642, 1135, 1642, 1642, 1135, 1642, 1135, 1135, 1642, 1642, 1642, 1135, 1135, 1135, 1135, 1135, 1139, 1642, 1139, 1642, 1642, 1139, 1642, 1139, 1139, 1642, 1642, 1642, 1139, 1139, 1139, 1139, 1139, 1147, 1642, 1147, 1642, 1642, 1147, 1642, 1147, 1147, 1147, 1642, 1642, 1147, 1147, 1147, 1147, 1147, 1157, 1642, 1157, 1642, 1642, 1157, 1157, 1157, 1157, 1157, 1642, 1157, 1157, 1157, 1157, 1157, 1157, 1351, 1642, 1351, 1642, 1642, 1351, 1351, 1351, 1351, 1351, 1642, 1351, 1351, 1351, 1351, 1351, 1351, 1359, 1642, 1359, 1642, 1642, 1359, 1359, 1359, 1359, 1359, 1642, 1359, 1359, 1359, 1359, 1359, 1359, 876, 1642, 876, 1642, 1642, 876, 1642, 876, 876, 876, 1642, 1642, 876, 876, 876, 876, 876, 1166, 1642, 1166, 1642, 1642, 1166, 1166, 1166, 1166, 1166, 1642, 1166, 1166, 1166, 1166, 1166, 1166, 1366, 1642, 1366, 1642, 1642, 1366, 1366, 1366, 1366, 1366, 1642, 1366, 1366, 1366, 1366, 1366, 1366, 1374, 1642, 1374, 1642, 1642, 1374, 1374, 1374, 1374, 1374, 1642, 1374, 1374, 1374, 1374, 1374, 1374, 1173, 1642, 1173, 1642, 1642, 1173, 1173, 1173, 1173, 1173, 1642, 1173, 1173, 1173, 1173, 1173, 1173, 1382, 1642, 1382, 1642, 1642, 1382, 1642, 1382, 1382, 1382, 1642, 1642, 1382, 1382, 1382, 1382, 1382, 1388, 1642, 1388, 1642, 1642, 1388, 1642, 1388, 1388, 1642, 1642, 1642, 1388, 1388, 1388, 1388, 1388, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 1223, 1223, 1223, 1223, 1223, 1642, 1223, 1223, 1223, 1223, 1642, 1223, 1642, 1642, 1223, 1223, 1223, 1642, 1223, 1223, 1642, 1223, 1231, 1231, 1231, 1231, 1231, 1642, 1231, 1231, 1231, 1231, 1642, 1231, 1642, 1642, 1231, 1231, 1231, 1642, 1231, 1642, 1642, 1231, 1243, 1243, 1243, 1243, 1243, 1642, 1243, 1243, 1243, 1243, 1642, 1243, 1642, 1642, 1243, 1243, 1243, 1642, 1243, 1642, 1642, 1243, 1256, 1256, 1256, 1256, 1256, 1642, 1256, 1256, 1256, 1256, 1642, 1256, 1642, 1642, 1256, 1256, 1256, 1642, 1256, 1642, 1642, 1256, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 1457, 1642, 1457, 1642, 1642, 1457, 1457, 1642, 1457, 1457, 1642, 1457, 1457, 1457, 1457, 1457, 1457, 1284, 1642, 1284, 1642, 1642, 1284, 1284, 1642, 1284, 1284, 1642, 1284, 1284, 1284, 1284, 1284, 1284, 1466, 1642, 1466, 1642, 1642, 1466, 1466, 1642, 1466, 1466, 1642, 1466, 1466, 1466, 1466, 1466, 1466, 1292, 1642, 1292, 1642, 1642, 1292, 1292, 1642, 1292, 1292, 1642, 1292, 1292, 1292, 1292, 1292, 1292, 778, 1642, 778, 1642, 1642, 778, 1642, 1642, 778, 778, 1642, 1642, 778, 778, 778, 778, 778, 1474, 1642, 1474, 1642, 1642, 1474, 1474, 1642, 1474, 1474, 1642, 1474, 1474, 1474, 1474, 1474, 1474, 1299, 1642, 1299, 1642, 1642, 1299, 1299, 1642, 1299, 1299, 1642, 1299, 1299, 1299, 1299, 1299, 1299, 1307, 1642, 1307, 1642, 1642, 1307, 1307, 1642, 1307, 1307, 1642, 1307, 1307, 1307, 1307, 1307, 1307, 1315, 1642, 1315, 1642, 1642, 1315, 1642, 1642, 1315, 1315, 1642, 1642, 1315, 1315, 1315, 1315, 1315, 1486, 1642, 1486, 1642, 1642, 1486, 1642, 1642, 1486, 1642, 1642, 1642, 1486, 1486, 1486, 1486, 1486, 1321, 1642, 1321, 1642, 1642, 1321, 1642, 1642, 1321, 1642, 1642, 1642, 1321, 1321, 1321, 1321, 1321, 1501, 1642, 1501, 1642, 1642, 1501, 1501, 1501, 1501, 1501, 1642, 1501, 1501, 1501, 1501, 1501, 1501, 1351, 1642, 1351, 1642, 1642, 1351, 1351, 1351, 1351, 1351, 1642, 1351, 1351, 1351, 1351, 1351, 1351, 1510, 1642, 1510, 1642, 1642, 1510, 1510, 1510, 1510, 1510, 1642, 1510, 1510, 1510, 1510, 1510, 1510, 1359, 1642, 1359, 1642, 1642, 1359, 1359, 1359, 1359, 1359, 1642, 1359, 1359, 1359, 1359, 1359, 1359, 876, 1642, 876, 1642, 1642, 876, 1642, 876, 876, 876, 1642, 1642, 876, 876, 876, 876, 876, 1518, 1642, 1518, 1642, 1642, 1518, 1518, 1518, 1518, 1518, 1642, 1518, 1518, 1518, 1518, 1518, 1518, 1366, 1642, 1366, 1642, 1642, 1366, 1366, 1366, 1366, 1366, 1642, 1366, 1366, 1366, 1366, 1366, 1366, 1374, 1642, 1374, 1642, 1642, 1374, 1374, 1374, 1374, 1374, 1642, 1374, 1374, 1374, 1374, 1374, 1374, 1382, 1642, 1382, 1642, 1642, 1382, 1642, 1382, 1382, 1382, 1642, 1642, 1382, 1382, 1382, 1382, 1382, 1530, 1642, 1530, 1642, 1642, 1530, 1642, 1530, 1530, 1642, 1642, 1642, 1530, 1530, 1530, 1530, 1530, 1388, 1642, 1388, 1642, 1642, 1388, 1642, 1388, 1388, 1642, 1642, 1642, 1388, 1388, 1388, 1388, 1388, 1416, 1416, 1416, 1416, 1416, 1642, 1416, 1416, 1416, 1416, 1642, 1416, 1642, 1642, 1416, 1416, 1416, 1642, 1416, 1642, 1642, 1416, 1424, 1424, 1424, 1424, 1424, 1642, 1424, 1424, 1424, 1424, 1642, 1424, 1642, 1642, 1424, 1424, 1424, 1642, 1424, 1642, 1642, 1424, 1445, 1445, 1445, 1445, 1445, 1642, 1445, 1445, 1445, 1445, 1642, 1445, 1642, 1642, 1445, 1445, 1445, 1642, 1445, 1642, 1642, 1445, 1457, 1642, 1457, 1642, 1642, 1457, 1457, 1642, 1457, 1457, 1642, 1457, 1457, 1457, 1457, 1457, 1457, 1466, 1642, 1466, 1642, 1642, 1466, 1466, 1642, 1466, 1466, 1642, 1466, 1466, 1466, 1466, 1466, 1466, 1474, 1642, 1474, 1642, 1642, 1474, 1474, 1642, 1474, 1474, 1642, 1474, 1474, 1474, 1474, 1474, 1474, 1549, 1549, 1549, 1549, 1549, 1642, 1549, 1549, 1549, 1549, 1642, 1549, 1642, 1642, 1549, 1549, 1549, 1642, 1549, 1642, 1642, 1549, 1556, 1556, 1556, 1556, 1556, 1642, 1556, 1556, 1556, 1556, 1642, 1556, 1642, 1642, 1556, 1556, 1556, 1642, 1556, 1642, 1642, 1556, 1563, 1563, 1563, 1563, 1563, 1642, 1563, 1563, 1563, 1563, 1642, 1563, 1642, 1642, 1563, 1563, 1563, 1642, 1563, 1642, 1642, 1563, 1570, 1570, 1570, 1570, 1570, 1642, 1570, 1570, 1570, 1570, 1642, 1570, 1642, 1642, 1570, 1570, 1570, 1642, 1570, 1642, 1642, 1570, 1576, 1576, 1576, 1576, 1576, 1642, 1576, 1576, 1576, 1576, 1642, 1576, 1642, 1642, 1576, 1576, 1576, 1642, 1576, 1642, 1642, 1576, 1616, 1616, 1616, 1616, 1616, 1642, 1616, 1616, 1616, 1616, 1642, 1616, 1642, 1642, 1616, 1616, 1616, 1642, 1616, 1642, 1642, 1616, 1624, 1624, 1624, 1624, 1624, 1642, 1624, 1624, 1624, 1624, 1642, 1624, 1642, 1642, 1624, 1624, 1624, 1642, 1624, 1642, 1642, 1624, 31, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642 } ; static const flex_int16_t yy_chk[11318] = { 0, 0, 0, 1, 1, 1, 2, 2, 2, 11, 11, 12, 12, 36, 40, 92, 36, 40, 92, 36, 40, 135, 135, 71, 36, 40, 42, 1, 0, 42, 2, 70, 70, 70, 70, 36, 40, 71, 42, 50, 42, 42, 50, 42, 42, 42, 42, 49, 0, 49, 49, 49, 49, 0, 92, 71, 50, 50, 50, 50, 118, 118, 118, 50, 131, 131, 131, 131, 140, 140, 181, 181, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 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, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, 9, 32, 32, 32, 9, 424, 9, 9, 9, 9, 424, 9, 9, 9, 37, 1268, 37, 37, 37, 413, 38, 9, 38, 38, 38, 39, 413, 39, 39, 39, 142, 148, 413, 142, 148, 9, 9, 9, 132, 129, 220, 132, 129, 220, 13, 13, 13, 13, 1269, 13, 14, 14, 14, 14, 129, 14, 21, 21, 21, 21, 1270, 21, 132, 9, 84, 9, 9, 9, 9, 9, 10, 10, 10, 10, 74, 74, 1271, 10, 84, 10, 10, 10, 10, 13, 10, 10, 10, 1272, 74, 14, 74, 74, 74, 74, 10, 21, 84, 52, 1273, 52, 52, 52, 52, 152, 152, 152, 152, 1274, 10, 10, 10, 52, 13, 13, 13, 13, 13, 1275, 14, 14, 14, 14, 14, 678, 21, 21, 21, 21, 21, 52, 133, 678, 133, 133, 133, 133, 10, 1276, 10, 10, 10, 10, 10, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 17, 17, 17, 17, 139, 139, 168, 168, 168, 22, 22, 22, 22, 1277, 22, 29, 29, 87, 87, 29, 30, 30, 1278, 155, 30, 17, 64, 1279, 139, 64, 194, 87, 194, 87, 87, 87, 87, 155, 64, 17, 64, 64, 17, 64, 64, 64, 64, 79, 22, 230, 79, 1280, 230, 29, 105, 155, 1281, 105, 30, 79, 325, 79, 79, 325, 79, 79, 79, 79, 17, 17, 17, 17, 17, 18, 18, 18, 18, 22, 22, 22, 22, 22, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 188, 105, 154, 154, 154, 154, 18, 46, 177, 177, 177, 1282, 65, 46, 231, 231, 136, 231, 46, 136, 18, 65, 321, 18, 72, 321, 169, 65, 169, 169, 169, 65, 170, 72, 170, 170, 170, 188, 362, 72, 362, 46, 336, 72, 46, 336, 46, 65, 1283, 18, 18, 18, 18, 18, 19, 136, 1287, 19, 46, 72, 19, 321, 19, 19, 1288, 46, 19, 19, 19, 19, 19, 19, 19, 19, 19, 1289, 65, 65, 65, 19, 171, 336, 171, 171, 171, 268, 268, 268, 72, 72, 72, 322, 322, 19, 73, 19, 23, 23, 23, 23, 73, 1290, 73, 337, 337, 73, 73, 73, 73, 73, 80, 340, 174, 83, 340, 174, 83, 370, 174, 80, 370, 23, 411, 174, 411, 80, 388, 85, 83, 80, 83, 83, 83, 83, 174, 23, 85, 83, 23, 368, 368, 86, 85, 1291, 388, 80, 85, 86, 359, 86, 1295, 359, 86, 86, 86, 86, 86, 1296, 73, 73, 73, 1297, 85, 359, 23, 23, 23, 23, 23, 24, 24, 24, 24, 1302, 80, 80, 80, 178, 130, 178, 178, 178, 378, 179, 130, 179, 179, 179, 627, 130, 627, 85, 85, 85, 24, 156, 378, 156, 156, 156, 156, 217, 217, 217, 217, 86, 86, 86, 24, 156, 180, 24, 130, 180, 378, 130, 180, 130, 233, 233, 233, 180, 1303, 233, 163, 280, 280, 156, 280, 130, 1304, 372, 180, 196, 372, 163, 130, 24, 24, 24, 24, 24, 25, 25, 25, 25, 306, 306, 306, 183, 25, 183, 183, 183, 183, 350, 350, 350, 163, 25, 25, 25, 25, 163, 391, 391, 1305, 163, 25, 25, 25, 25, 198, 375, 163, 1306, 375, 163, 184, 163, 163, 184, 196, 196, 196, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 184, 184, 184, 184, 26, 326, 326, 184, 326, 198, 1310, 198, 1311, 26, 26, 26, 26, 182, 341, 341, 182, 341, 26, 26, 26, 26, 198, 198, 198, 182, 394, 182, 182, 394, 182, 182, 182, 182, 1312, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 353, 27, 27, 1313, 201, 27, 27, 393, 393, 27, 27, 1314, 353, 27, 27, 27, 27, 27, 185, 353, 185, 185, 185, 185, 218, 218, 218, 218, 360, 192, 201, 360, 185, 192, 27, 192, 27, 204, 192, 192, 193, 1318, 193, 199, 27, 193, 193, 193, 422, 203, 185, 422, 360, 201, 201, 201, 27, 367, 1319, 204, 367, 27, 1320, 27, 28, 28, 28, 28, 200, 28, 28, 208, 312, 28, 28, 199, 202, 28, 28, 203, 1322, 28, 28, 28, 28, 28, 204, 204, 204, 1323, 200, 206, 199, 199, 199, 312, 367, 200, 203, 203, 203, 1324, 28, 200, 28, 1325, 208, 312, 202, 202, 202, 1326, 28, 206, 312, 401, 401, 200, 200, 200, 208, 208, 208, 213, 28, 202, 202, 202, 1327, 28, 1328, 28, 47, 402, 402, 47, 47, 665, 665, 47, 206, 206, 206, 47, 47, 1329, 47, 1330, 47, 47, 47, 47, 47, 47, 1331, 47, 47, 213, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 1332, 47, 213, 213, 213, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 228, 228, 228, 228, 1333, 47, 47, 47, 57, 57, 57, 1334, 371, 371, 219, 371, 219, 219, 219, 219, 403, 403, 403, 207, 57, 57, 57, 1335, 219, 205, 226, 466, 226, 226, 466, 226, 226, 226, 226, 329, 329, 329, 210, 1336, 329, 207, 219, 343, 343, 343, 57, 57, 343, 1337, 57, 57, 205, 390, 207, 390, 390, 390, 57, 420, 1338, 57, 209, 57, 210, 57, 57, 66, 207, 207, 207, 212, 420, 66, 205, 205, 205, 1339, 66, 66, 66, 66, 66, 66, 66, 674, 674, 210, 210, 210, 404, 404, 404, 66, 66, 66, 66, 66, 66, 209, 633, 66, 209, 633, 66, 1340, 66, 639, 212, 1341, 639, 209, 209, 209, 211, 415, 415, 415, 66, 1342, 212, 212, 212, 1343, 652, 66, 68, 652, 221, 1344, 221, 221, 221, 221, 1345, 68, 1346, 68, 68, 68, 68, 68, 221, 681, 211, 68, 681, 1347, 224, 211, 224, 224, 224, 224, 238, 632, 632, 238, 632, 1348, 221, 68, 224, 211, 211, 211, 238, 1349, 238, 238, 246, 238, 238, 238, 238, 244, 244, 244, 244, 239, 224, 239, 239, 239, 239, 246, 260, 260, 260, 260, 68, 68, 68, 82, 240, 240, 240, 240, 467, 467, 467, 240, 82, 467, 82, 82, 82, 82, 82, 931, 931, 241, 82, 241, 241, 241, 241, 243, 1350, 243, 243, 243, 243, 638, 638, 241, 638, 247, 82, 247, 247, 247, 247, 251, 246, 246, 246, 281, 1354, 281, 281, 281, 281, 241, 251, 251, 251, 251, 1355, 285, 251, 285, 285, 285, 285, 932, 932, 82, 82, 82, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 109, 109, 109, 1356, 109, 242, 1357, 109, 290, 290, 290, 290, 1358, 245, 242, 1362, 109, 109, 109, 292, 242, 1363, 245, 1364, 242, 490, 490, 490, 245, 1369, 1370, 407, 245, 1371, 292, 1372, 1373, 438, 109, 1377, 242, 109, 109, 109, 1378, 1379, 109, 109, 245, 298, 298, 298, 298, 1380, 109, 651, 651, 109, 651, 109, 1381, 109, 109, 119, 119, 119, 119, 1385, 1386, 242, 242, 242, 119, 119, 119, 119, 438, 245, 245, 245, 407, 407, 407, 292, 292, 292, 438, 438, 438, 119, 119, 119, 119, 119, 119, 126, 1387, 126, 126, 1389, 1390, 126, 126, 126, 252, 1391, 126, 126, 126, 126, 511, 511, 511, 252, 126, 355, 355, 355, 355, 252, 520, 520, 520, 252, 1392, 1393, 265, 126, 265, 265, 126, 265, 265, 265, 265, 356, 356, 356, 356, 252, 530, 530, 530, 265, 287, 1394, 287, 287, 287, 287, 364, 364, 364, 364, 126, 127, 127, 127, 287, 127, 1395, 265, 127, 284, 688, 1396, 284, 688, 252, 252, 252, 127, 127, 127, 688, 284, 287, 284, 284, 127, 284, 284, 284, 284, 361, 720, 361, 1399, 720, 361, 361, 361, 1403, 127, 1404, 720, 127, 127, 127, 1405, 1407, 127, 127, 363, 1409, 363, 363, 363, 363, 127, 1411, 1412, 127, 1413, 127, 1414, 127, 127, 197, 197, 197, 197, 197, 197, 197, 1419, 197, 1420, 197, 197, 197, 197, 1421, 197, 197, 197, 197, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 1427, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 261, 365, 1428, 365, 365, 365, 365, 266, 1429, 261, 1448, 261, 261, 261, 261, 261, 266, 946, 1449, 261, 946, 1450, 266, 261, 1451, 1452, 266, 946, 267, 380, 380, 380, 380, 1453, 428, 261, 1454, 267, 377, 269, 1455, 261, 266, 267, 535, 535, 535, 267, 269, 377, 377, 377, 377, 1456, 269, 377, 1460, 1461, 269, 428, 570, 570, 570, 267, 261, 261, 261, 263, 589, 589, 589, 266, 266, 266, 269, 1462, 263, 427, 263, 263, 263, 263, 263, 428, 428, 428, 263, 598, 598, 598, 263, 1463, 267, 267, 267, 286, 1464, 379, 286, 379, 379, 379, 379, 269, 269, 269, 1465, 1469, 263, 427, 286, 379, 286, 286, 286, 286, 381, 1470, 381, 286, 1471, 381, 381, 381, 381, 1472, 427, 427, 427, 379, 1473, 263, 263, 263, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 1477, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 273, 396, 396, 396, 396, 288, 432, 1478, 289, 273, 1479, 430, 1480, 396, 288, 273, 625, 289, 625, 273, 288, 625, 625, 289, 288, 1481, 1482, 289, 608, 608, 608, 396, 1483, 291, 1484, 273, 1485, 1487, 432, 397, 288, 397, 291, 289, 397, 397, 397, 397, 291, 430, 430, 1488, 291, 1489, 429, 432, 432, 432, 1490, 1491, 430, 430, 430, 1492, 273, 273, 273, 275, 291, 288, 288, 288, 289, 289, 289, 293, 275, 1493, 275, 275, 275, 275, 275, 1494, 293, 947, 275, 431, 947, 429, 293, 1495, 297, 1496, 293, 947, 1497, 291, 291, 291, 441, 297, 275, 429, 429, 429, 957, 297, 1498, 957, 293, 297, 303, 1499, 303, 303, 957, 303, 303, 303, 303, 382, 431, 382, 382, 382, 382, 297, 1500, 303, 1504, 275, 275, 275, 1505, 382, 431, 431, 431, 293, 293, 293, 433, 441, 1506, 304, 1507, 303, 1508, 441, 441, 441, 1509, 382, 304, 1513, 297, 297, 297, 299, 304, 613, 613, 613, 304, 434, 305, 1514, 299, 433, 299, 299, 299, 299, 299, 305, 969, 1515, 299, 969, 304, 305, 299, 1516, 1517, 305, 969, 307, 645, 645, 645, 433, 433, 433, 299, 434, 307, 1521, 311, 1522, 299, 305, 307, 434, 1523, 440, 307, 311, 435, 304, 304, 304, 1524, 311, 434, 434, 434, 311, 646, 646, 646, 436, 307, 299, 299, 299, 301, 445, 1525, 1526, 305, 305, 305, 311, 1527, 301, 442, 301, 301, 301, 301, 301, 1528, 440, 435, 301, 436, 1529, 1531, 301, 1532, 307, 307, 307, 440, 440, 440, 435, 435, 435, 1533, 442, 311, 311, 311, 1534, 445, 301, 1535, 1536, 436, 436, 436, 661, 661, 661, 445, 445, 445, 453, 453, 453, 453, 1537, 1538, 442, 442, 442, 1539, 1541, 301, 301, 301, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 1543, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 313, 1545, 437, 634, 634, 634, 443, 318, 634, 313, 446, 313, 313, 313, 313, 313, 318, 444, 507, 313, 444, 1552, 318, 640, 640, 640, 318, 444, 640, 447, 463, 463, 463, 463, 971, 313, 437, 971, 444, 437, 443, 1553, 318, 450, 971, 1554, 446, 1559, 448, 1560, 1561, 437, 437, 437, 1566, 443, 443, 443, 1567, 446, 446, 446, 1568, 447, 313, 313, 313, 507, 507, 507, 449, 318, 318, 318, 351, 351, 351, 351, 447, 447, 447, 448, 450, 351, 351, 351, 351, 444, 444, 444, 1573, 1574, 450, 450, 450, 1575, 1579, 448, 448, 448, 351, 351, 351, 351, 351, 351, 406, 406, 406, 406, 512, 1580, 1581, 449, 1584, 406, 406, 406, 406, 449, 449, 449, 458, 1585, 458, 512, 1586, 458, 458, 458, 458, 1587, 406, 406, 406, 406, 406, 406, 439, 439, 439, 439, 439, 1588, 439, 439, 1589, 439, 439, 439, 1590, 1591, 439, 456, 439, 456, 456, 456, 456, 973, 439, 439, 973, 1592, 439, 1593, 1594, 456, 460, 973, 460, 460, 460, 460, 512, 512, 512, 439, 1595, 439, 439, 439, 460, 1596, 462, 456, 462, 1597, 1598, 462, 462, 462, 462, 464, 1599, 464, 464, 464, 464, 1600, 460, 667, 667, 667, 439, 439, 439, 439, 439, 439, 439, 439, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 1601, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 465, 465, 465, 465, 471, 471, 471, 471, 472, 473, 1602, 473, 1603, 1604, 473, 473, 473, 473, 1605, 472, 472, 472, 472, 472, 474, 1606, 1607, 472, 1608, 475, 1609, 472, 476, 474, 481, 481, 481, 481, 475, 474, 1610, 476, 1611, 474, 475, 1612, 477, 476, 475, 472, 1619, 476, 758, 758, 758, 477, 762, 762, 762, 474, 1620, 477, 1621, 1612, 475, 477, 1627, 476, 482, 779, 779, 779, 472, 472, 472, 984, 1628, 482, 984, 517, 1629, 477, 1630, 482, 1631, 984, 488, 482, 474, 474, 474, 1632, 1633, 475, 475, 475, 476, 476, 476, 1634, 483, 488, 1635, 482, 1636, 484, 1637, 1670, 498, 483, 477, 477, 477, 1670, 484, 483, 1267, 498, 1266, 483, 484, 488, 499, 498, 484, 1265, 1264, 498, 517, 517, 517, 499, 482, 482, 482, 483, 1263, 499, 1261, 1009, 484, 499, 1009, 498, 500, 551, 551, 551, 551, 1009, 488, 488, 488, 500, 1260, 1259, 585, 499, 1248, 500, 783, 783, 783, 500, 483, 483, 483, 1247, 1246, 484, 484, 484, 498, 498, 498, 509, 1236, 1235, 521, 500, 561, 561, 561, 561, 1234, 1690, 499, 499, 499, 1691, 509, 1690, 1229, 521, 509, 1691, 506, 1228, 506, 506, 1227, 506, 506, 506, 506, 585, 585, 585, 500, 500, 500, 504, 1218, 506, 526, 1216, 526, 526, 526, 526, 504, 595, 504, 504, 504, 504, 504, 1698, 526, 1215, 504, 506, 1214, 1698, 504, 644, 644, 644, 644, 509, 509, 509, 521, 521, 521, 1704, 526, 1212, 513, 1211, 513, 1704, 504, 513, 513, 513, 513, 513, 522, 590, 522, 1209, 1750, 522, 522, 522, 522, 522, 1750, 1208, 595, 595, 595, 599, 590, 504, 504, 504, 505, 650, 650, 650, 650, 1207, 1206, 528, 1203, 505, 599, 505, 505, 505, 505, 505, 528, 1205, 1753, 505, 1205, 1202, 528, 505, 1753, 1201, 528, 1205, 513, 513, 513, 787, 787, 787, 529, 505, 1200, 1199, 522, 522, 522, 505, 528, 529, 1198, 590, 590, 590, 1754, 529, 553, 1193, 553, 529, 1754, 553, 553, 553, 553, 599, 599, 599, 568, 1192, 505, 505, 505, 510, 1191, 529, 1190, 528, 528, 528, 531, 1189, 510, 568, 510, 510, 510, 510, 510, 531, 695, 1803, 510, 695, 1188, 531, 510, 1803, 1187, 531, 695, 541, 1186, 568, 529, 529, 529, 778, 510, 1185, 541, 695, 542, 1184, 510, 531, 541, 626, 1183, 626, 541, 542, 626, 626, 626, 1182, 1180, 542, 792, 792, 792, 542, 568, 568, 568, 1178, 541, 510, 510, 510, 519, 816, 816, 816, 531, 531, 531, 542, 1177, 519, 1176, 519, 519, 519, 519, 519, 778, 778, 778, 519, 695, 695, 695, 519, 543, 541, 541, 541, 856, 856, 856, 587, 1172, 543, 784, 519, 542, 542, 542, 543, 1171, 519, 554, 543, 1170, 1163, 587, 1162, 1161, 785, 587, 554, 656, 656, 656, 656, 1707, 554, 1707, 543, 1155, 554, 1707, 1153, 519, 519, 519, 527, 657, 657, 657, 657, 730, 730, 730, 730, 527, 554, 527, 527, 527, 527, 527, 784, 784, 784, 527, 1152, 543, 543, 543, 860, 860, 860, 555, 587, 587, 587, 785, 785, 785, 556, 527, 555, 1151, 1150, 554, 554, 554, 555, 556, 1213, 1224, 555, 1213, 1224, 556, 877, 877, 877, 556, 1213, 1224, 604, 1806, 604, 604, 604, 604, 555, 1806, 527, 527, 527, 547, 1149, 556, 604, 655, 655, 655, 655, 557, 547, 1146, 547, 547, 547, 547, 547, 655, 557, 1145, 547, 1144, 604, 1143, 557, 555, 555, 555, 557, 881, 881, 881, 556, 556, 556, 655, 547, 562, 732, 732, 732, 732, 563, 1142, 557, 735, 562, 735, 735, 735, 735, 563, 562, 885, 885, 885, 562, 563, 890, 890, 890, 563, 914, 914, 914, 547, 547, 547, 552, 933, 933, 933, 562, 557, 557, 557, 1141, 563, 756, 552, 552, 552, 552, 552, 1140, 564, 1807, 552, 934, 934, 934, 552, 1807, 756, 564, 1138, 576, 939, 939, 939, 564, 562, 562, 562, 564, 576, 563, 563, 563, 552, 577, 576, 1137, 756, 1136, 576, 1027, 1027, 1027, 577, 564, 578, 1039, 1039, 1039, 577, 1134, 1133, 876, 577, 578, 576, 552, 552, 552, 1132, 578, 1131, 696, 1130, 578, 696, 756, 756, 756, 577, 1128, 1127, 696, 564, 564, 564, 731, 731, 731, 731, 578, 1126, 1125, 696, 576, 576, 576, 584, 731, 584, 584, 1847, 584, 584, 584, 584, 1124, 1847, 577, 577, 577, 876, 876, 876, 584, 1123, 731, 1122, 1121, 578, 578, 578, 582, 738, 738, 738, 738, 733, 733, 733, 733, 582, 584, 582, 582, 582, 582, 582, 1120, 733, 1848, 582, 696, 696, 696, 582, 1848, 591, 1232, 591, 1119, 1232, 591, 591, 591, 591, 591, 733, 1232, 600, 1118, 600, 606, 582, 600, 600, 600, 600, 600, 1116, 1115, 606, 1045, 1045, 1045, 607, 1666, 606, 1114, 1666, 757, 606, 1113, 1112, 607, 1666, 582, 582, 582, 583, 607, 1049, 1049, 1049, 607, 757, 1111, 606, 583, 1110, 583, 583, 583, 583, 583, 591, 591, 591, 583, 1109, 607, 1108, 583, 1103, 1102, 757, 609, 600, 600, 600, 1091, 1091, 1091, 619, 583, 609, 606, 606, 606, 1101, 583, 609, 619, 1226, 1100, 609, 1226, 1099, 619, 607, 607, 607, 619, 1226, 757, 757, 757, 801, 801, 801, 801, 609, 1098, 583, 583, 583, 588, 1097, 619, 801, 804, 804, 804, 804, 1096, 588, 1095, 588, 588, 588, 588, 588, 1117, 1117, 1117, 588, 1094, 801, 1226, 588, 609, 609, 609, 620, 1129, 1129, 1129, 619, 619, 619, 621, 588, 620, 836, 836, 836, 836, 588, 620, 621, 1093, 1092, 620, 1090, 1088, 621, 663, 697, 663, 621, 697, 663, 663, 663, 663, 1087, 1237, 697, 620, 1237, 588, 588, 588, 597, 1889, 621, 1237, 1086, 697, 812, 1889, 1082, 597, 882, 597, 597, 597, 597, 597, 1747, 699, 1747, 597, 699, 812, 1747, 597, 620, 620, 620, 699, 1081, 697, 1890, 621, 621, 621, 883, 597, 1890, 664, 699, 664, 664, 597, 664, 664, 664, 664, 1080, 698, 1073, 1072, 698, 1135, 1135, 1135, 697, 697, 697, 698, 1071, 882, 882, 882, 699, 1065, 597, 597, 597, 605, 698, 1063, 812, 812, 812, 1139, 1139, 1139, 605, 975, 605, 605, 605, 605, 605, 883, 883, 883, 605, 699, 699, 699, 902, 902, 902, 902, 698, 700, 1239, 1062, 700, 1239, 1061, 701, 605, 1060, 701, 700, 1239, 729, 975, 729, 729, 701, 729, 729, 729, 729, 700, 698, 698, 698, 703, 1059, 701, 703, 729, 1056, 975, 975, 975, 796, 703, 605, 605, 605, 628, 1012, 1055, 1012, 1012, 1012, 1012, 703, 729, 628, 796, 628, 628, 628, 628, 628, 734, 700, 734, 628, 701, 734, 734, 734, 734, 1066, 1066, 1066, 1066, 1054, 796, 700, 700, 700, 703, 628, 1053, 701, 701, 701, 1052, 1051, 806, 806, 806, 806, 1050, 1048, 854, 1181, 1181, 1181, 702, 1047, 806, 702, 703, 703, 703, 796, 796, 796, 702, 854, 628, 628, 628, 648, 648, 648, 648, 704, 806, 702, 704, 1046, 648, 648, 648, 648, 737, 704, 737, 854, 1044, 737, 737, 737, 737, 737, 1043, 1042, 704, 648, 648, 648, 648, 648, 648, 668, 668, 668, 668, 702, 1156, 1156, 1156, 1156, 668, 668, 668, 668, 854, 854, 854, 1041, 855, 1040, 704, 1317, 1317, 1317, 702, 702, 702, 668, 668, 668, 668, 668, 668, 855, 1038, 1037, 705, 1036, 1035, 705, 737, 737, 737, 704, 704, 704, 705, 1034, 706, 1033, 1032, 706, 707, 855, 976, 707, 708, 705, 706, 708, 709, 1031, 707, 709, 711, 1241, 708, 711, 1241, 706, 709, 1030, 1029, 707, 711, 1241, 1028, 708, 1321, 1321, 1321, 709, 855, 855, 855, 711, 899, 899, 899, 899, 1244, 716, 976, 1244, 716, 707, 705, 1026, 899, 1222, 1244, 716, 1222, 976, 976, 976, 705, 705, 705, 1222, 709, 1230, 716, 1025, 1230, 708, 899, 1024, 706, 706, 706, 1230, 707, 707, 707, 1023, 708, 708, 708, 1022, 709, 709, 709, 1021, 711, 711, 711, 712, 712, 712, 712, 712, 712, 712, 1020, 712, 1222, 712, 712, 712, 712, 716, 712, 712, 712, 712, 717, 1019, 1230, 717, 1018, 716, 716, 716, 1006, 1005, 717, 800, 800, 800, 800, 800, 1384, 1384, 1384, 1249, 719, 717, 1249, 719, 1004, 904, 904, 904, 904, 1249, 719, 997, 724, 996, 995, 724, 722, 904, 970, 722, 1242, 719, 724, 1242, 717, 910, 722, 968, 726, 1251, 1242, 726, 1251, 724, 967, 904, 966, 722, 726, 1251, 910, 1388, 1388, 1388, 800, 800, 800, 719, 965, 726, 717, 717, 717, 718, 718, 718, 718, 718, 964, 718, 718, 724, 718, 718, 718, 983, 963, 718, 962, 718, 719, 719, 719, 722, 961, 718, 718, 960, 1242, 718, 959, 958, 724, 724, 724, 956, 722, 722, 722, 910, 910, 910, 718, 955, 718, 718, 718, 978, 726, 726, 726, 954, 805, 805, 805, 805, 805, 718, 983, 992, 1486, 1486, 1486, 953, 983, 983, 983, 952, 951, 718, 718, 718, 718, 718, 718, 718, 718, 723, 723, 723, 723, 723, 950, 723, 723, 978, 723, 723, 723, 949, 948, 723, 725, 723, 945, 725, 978, 978, 978, 723, 723, 727, 725, 723, 727, 805, 805, 805, 992, 992, 992, 727, 941, 725, 938, 739, 723, 930, 723, 723, 723, 929, 727, 740, 739, 723, 739, 739, 739, 739, 739, 928, 740, 927, 739, 1530, 1530, 1530, 740, 725, 926, 922, 740, 723, 723, 723, 723, 723, 723, 723, 723, 741, 727, 921, 920, 1748, 919, 1748, 740, 742, 741, 1748, 725, 725, 725, 918, 741, 917, 742, 916, 741, 727, 727, 727, 742, 915, 748, 913, 742, 739, 739, 739, 986, 749, 912, 748, 741, 740, 740, 740, 1253, 748, 749, 1253, 742, 748, 1694, 911, 749, 1694, 1253, 788, 749, 788, 901, 1694, 788, 788, 788, 788, 788, 748, 900, 897, 986, 741, 741, 741, 749, 750, 896, 895, 893, 742, 742, 742, 1746, 1250, 750, 1746, 1250, 986, 986, 986, 750, 1746, 769, 1250, 750, 892, 748, 748, 748, 770, 891, 769, 889, 749, 749, 749, 1253, 769, 770, 894, 750, 769, 888, 771, 770, 788, 788, 788, 770, 887, 1255, 880, 771, 1255, 894, 879, 878, 769, 771, 874, 1255, 873, 771, 872, 770, 871, 807, 870, 866, 750, 750, 750, 1250, 865, 894, 807, 864, 977, 771, 863, 862, 807, 861, 808, 859, 807, 769, 769, 769, 1001, 858, 857, 808, 770, 770, 770, 853, 1255, 808, 852, 851, 807, 808, 894, 894, 894, 977, 771, 771, 771, 777, 898, 898, 898, 898, 898, 850, 849, 808, 777, 987, 777, 777, 777, 777, 777, 977, 977, 977, 777, 807, 807, 807, 777, 1240, 845, 844, 1240, 1001, 1001, 1001, 809, 843, 842, 1240, 777, 841, 808, 808, 808, 809, 777, 809, 809, 809, 809, 809, 834, 1257, 987, 809, 1257, 832, 811, 898, 898, 898, 831, 1257, 987, 987, 987, 811, 994, 777, 777, 777, 786, 811, 830, 829, 980, 811, 828, 825, 824, 786, 1240, 786, 786, 786, 786, 786, 825, 1254, 994, 786, 1254, 811, 825, 786, 826, 823, 825, 1254, 809, 809, 809, 822, 821, 826, 1401, 786, 820, 1401, 980, 826, 819, 786, 825, 826, 1401, 994, 994, 994, 818, 817, 811, 811, 811, 980, 980, 980, 815, 814, 1013, 826, 1013, 1013, 1013, 1013, 786, 786, 786, 810, 813, 803, 802, 825, 825, 825, 799, 798, 810, 1254, 810, 810, 810, 810, 810, 797, 827, 795, 810, 794, 826, 826, 826, 838, 1007, 827, 1406, 1408, 988, 1406, 1408, 827, 838, 793, 810, 827, 1406, 1408, 838, 791, 790, 835, 838, 835, 789, 782, 835, 835, 835, 835, 835, 827, 781, 780, 988, 776, 1007, 837, 838, 775, 774, 773, 1003, 810, 810, 810, 837, 772, 837, 837, 837, 837, 837, 1007, 1007, 1007, 837, 988, 988, 988, 827, 827, 827, 833, 1003, 768, 767, 838, 838, 838, 766, 765, 833, 764, 833, 833, 833, 833, 833, 835, 835, 835, 833, 763, 761, 839, 760, 759, 755, 990, 840, 1003, 1003, 1003, 839, 999, 754, 846, 833, 840, 839, 837, 837, 837, 839, 840, 846, 1410, 1417, 840, 1410, 1417, 846, 753, 752, 990, 846, 1410, 1417, 751, 839, 747, 847, 746, 745, 840, 744, 833, 833, 833, 743, 847, 846, 848, 736, 999, 728, 847, 990, 990, 990, 847, 848, 715, 999, 999, 999, 714, 848, 839, 839, 839, 848, 713, 840, 840, 840, 847, 867, 694, 693, 846, 846, 846, 692, 868, 691, 867, 848, 690, 869, 689, 1422, 867, 868, 1422, 1011, 867, 687, 869, 868, 686, 1422, 685, 868, 869, 847, 847, 847, 869, 684, 1425, 1433, 867, 1425, 1433, 682, 848, 848, 848, 868, 1425, 1433, 680, 886, 869, 886, 679, 1011, 886, 886, 886, 886, 886, 903, 903, 903, 903, 903, 677, 676, 675, 867, 867, 867, 1011, 1011, 1011, 673, 868, 868, 868, 672, 671, 869, 869, 869, 875, 670, 669, 1075, 1075, 1075, 1075, 1075, 659, 875, 658, 875, 875, 875, 875, 875, 643, 642, 637, 875, 636, 631, 630, 875, 629, 886, 886, 886, 905, 624, 903, 903, 903, 906, 623, 875, 1431, 905, 622, 1431, 909, 875, 906, 905, 618, 617, 1431, 905, 906, 909, 1436, 1439, 906, 1436, 1439, 909, 1075, 1075, 1075, 909, 1436, 1439, 616, 905, 875, 875, 875, 884, 906, 615, 614, 612, 611, 610, 1444, 909, 884, 1444, 884, 884, 884, 884, 884, 603, 1444, 602, 884, 601, 1057, 596, 884, 594, 905, 905, 905, 593, 1431, 906, 906, 906, 907, 592, 884, 1057, 909, 909, 909, 923, 884, 907, 586, 907, 907, 907, 907, 907, 923, 1446, 581, 907, 1446, 580, 923, 1057, 579, 924, 923, 1446, 925, 575, 574, 884, 884, 884, 924, 982, 1435, 925, 982, 1435, 924, 573, 923, 925, 924, 982, 1435, 925, 998, 572, 571, 998, 1057, 1057, 1057, 569, 982, 567, 998, 566, 924, 565, 1058, 925, 907, 907, 907, 908, 560, 998, 559, 923, 923, 923, 558, 550, 908, 1058, 908, 908, 908, 908, 908, 549, 548, 546, 908, 545, 544, 924, 924, 924, 925, 925, 925, 1015, 540, 1058, 1548, 539, 1435, 1548, 908, 538, 1015, 982, 982, 982, 1548, 537, 1015, 536, 1441, 1550, 1015, 1441, 1550, 534, 998, 998, 998, 1089, 1441, 1550, 533, 532, 1058, 1058, 1058, 525, 1015, 908, 908, 908, 937, 524, 1089, 523, 518, 516, 515, 1557, 514, 937, 1557, 937, 937, 937, 937, 937, 508, 1557, 503, 937, 502, 1016, 1089, 501, 1017, 1015, 1015, 1015, 495, 494, 1016, 1562, 493, 1017, 1562, 937, 1016, 492, 1441, 1017, 1016, 1562, 491, 1017, 1564, 1571, 489, 1564, 1571, 487, 486, 1089, 1089, 1089, 1564, 1571, 1016, 485, 480, 1017, 479, 478, 470, 469, 937, 937, 937, 940, 940, 940, 940, 1165, 1165, 1165, 1165, 1165, 940, 940, 940, 940, 1298, 1298, 1298, 1298, 1298, 1016, 1016, 1016, 1017, 1017, 1017, 452, 1067, 940, 940, 940, 940, 940, 940, 942, 942, 1067, 942, 1577, 942, 451, 1577, 1067, 942, 942, 426, 1067, 942, 1577, 425, 423, 421, 419, 1582, 1614, 942, 1582, 1614, 418, 1165, 1165, 1165, 1067, 1582, 1614, 1147, 417, 416, 1298, 1298, 1298, 414, 942, 412, 942, 410, 1617, 409, 408, 1617, 1147, 1365, 1365, 1365, 1365, 1365, 1617, 1622, 384, 383, 1622, 1067, 1067, 1067, 366, 347, 346, 1622, 334, 942, 1147, 942, 979, 979, 979, 979, 979, 1625, 979, 979, 1625, 979, 979, 979, 333, 320, 979, 1625, 979, 1638, 1638, 1638, 319, 317, 979, 979, 316, 315, 979, 1147, 1147, 1147, 310, 309, 1365, 1365, 1365, 1638, 1638, 1638, 1638, 979, 308, 979, 979, 979, 1068, 296, 295, 294, 979, 283, 282, 279, 278, 1068, 277, 274, 272, 271, 270, 1068, 250, 249, 248, 1068, 237, 236, 979, 979, 979, 979, 979, 979, 979, 979, 981, 981, 981, 981, 981, 1068, 981, 981, 225, 981, 981, 981, 216, 215, 981, 214, 981, 173, 167, 166, 165, 161, 981, 981, 158, 157, 981, 150, 144, 1069, 138, 134, 125, 123, 1068, 1068, 1068, 122, 1069, 981, 121, 981, 981, 981, 1069, 116, 113, 112, 1069, 111, 107, 103, 101, 100, 99, 94, 90, 89, 88, 81, 78, 77, 76, 69, 1069, 63, 981, 981, 981, 981, 981, 981, 981, 981, 989, 989, 989, 989, 989, 62, 989, 989, 61, 989, 989, 989, 55, 48, 989, 44, 989, 35, 34, 1069, 1069, 1069, 989, 989, 31, 0, 989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 989, 0, 989, 989, 989, 0, 0, 1070, 0, 0, 0, 0, 0, 0, 0, 0, 1070, 0, 0, 0, 0, 0, 1070, 0, 0, 0, 1070, 989, 989, 989, 989, 989, 989, 989, 989, 993, 993, 993, 993, 993, 993, 993, 1070, 993, 0, 993, 993, 993, 993, 0, 993, 993, 993, 993, 1008, 1008, 1008, 1008, 1008, 0, 1008, 1008, 0, 1008, 1008, 1008, 1074, 0, 1008, 1076, 1008, 1070, 1070, 1070, 0, 1074, 1008, 1008, 1076, 0, 1008, 1074, 0, 0, 1076, 1074, 0, 0, 1076, 0, 0, 0, 0, 1008, 1077, 1008, 1008, 1008, 0, 0, 0, 1074, 0, 1077, 1076, 0, 0, 0, 0, 1077, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1014, 1077, 1074, 1074, 1074, 1076, 1076, 1076, 1079, 1014, 0, 1014, 1014, 1014, 1014, 1014, 0, 1079, 0, 1014, 0, 0, 0, 1079, 0, 1083, 0, 1079, 0, 0, 1077, 1077, 1077, 1084, 1083, 1014, 0, 0, 0, 0, 1083, 0, 1084, 1079, 1083, 0, 0, 0, 1084, 0, 0, 0, 1084, 0, 0, 0, 0, 0, 0, 0, 1083, 0, 0, 0, 1014, 1014, 1014, 1064, 1084, 0, 0, 0, 1079, 1079, 1079, 0, 1064, 0, 1064, 1064, 1064, 1064, 1064, 0, 0, 0, 1064, 0, 0, 1083, 1083, 1083, 1085, 0, 0, 1105, 0, 1084, 1084, 1084, 1106, 1085, 1064, 0, 1105, 0, 0, 1085, 0, 1106, 1105, 1085, 0, 0, 1105, 1106, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 1105, 1064, 1064, 1064, 1078, 1106, 0, 0, 0, 1148, 0, 0, 0, 1078, 0, 1078, 1078, 1078, 1078, 1078, 0, 0, 0, 1078, 1148, 0, 1085, 1085, 1085, 1105, 1105, 1105, 1107, 0, 1106, 1106, 1106, 1157, 0, 1078, 0, 1107, 0, 1179, 1148, 0, 1157, 1107, 0, 0, 0, 1107, 1157, 0, 0, 0, 1157, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 1107, 1078, 1078, 1078, 1104, 1157, 1148, 1148, 1148, 1315, 0, 1179, 0, 1104, 0, 1104, 1104, 1104, 1104, 1104, 0, 0, 0, 1104, 1315, 0, 0, 0, 1158, 1107, 1107, 1107, 0, 0, 1157, 1157, 1157, 1158, 0, 1104, 1179, 1179, 1179, 1158, 1315, 0, 1159, 1158, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 0, 1159, 0, 1158, 0, 1159, 0, 0, 1104, 1104, 1104, 1154, 0, 1315, 1315, 1315, 0, 0, 0, 0, 1154, 1159, 1154, 1154, 1154, 1154, 1154, 0, 1160, 0, 1154, 0, 1158, 1158, 1158, 0, 0, 1160, 0, 1164, 0, 0, 0, 1160, 0, 0, 1154, 1160, 1164, 0, 1159, 1159, 1159, 1166, 1164, 0, 0, 0, 1164, 0, 0, 0, 1166, 1160, 1167, 0, 0, 0, 1166, 0, 0, 1169, 1166, 1167, 1164, 1154, 1154, 1154, 0, 1167, 1169, 0, 0, 1167, 0, 0, 1169, 0, 1166, 0, 1169, 0, 1160, 1160, 1160, 0, 0, 0, 0, 1167, 0, 0, 0, 1164, 1164, 1164, 1169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1166, 1166, 1166, 0, 0, 0, 0, 0, 0, 0, 0, 1167, 1167, 1167, 1168, 0, 0, 0, 1169, 1169, 1169, 1173, 0, 1168, 0, 1168, 1168, 1168, 1168, 1168, 1173, 0, 1174, 1168, 0, 1175, 1173, 0, 0, 0, 1173, 1174, 0, 0, 1175, 0, 0, 1174, 0, 1168, 1175, 1174, 0, 1284, 1175, 0, 1173, 0, 0, 0, 0, 0, 1284, 0, 0, 0, 0, 1174, 1284, 0, 1175, 0, 1284, 0, 0, 0, 0, 0, 1168, 1168, 1168, 0, 0, 0, 0, 1173, 1173, 1173, 1284, 0, 0, 1316, 0, 0, 0, 1285, 1174, 1174, 1174, 1175, 1175, 1175, 1194, 1194, 1285, 1194, 1316, 1194, 0, 0, 1285, 1194, 1194, 0, 1285, 1194, 0, 1284, 1284, 1284, 0, 0, 0, 1194, 0, 0, 1316, 0, 0, 0, 1285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 0, 1194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1316, 1316, 1316, 0, 1285, 1285, 1285, 0, 1382, 0, 0, 0, 1194, 0, 1194, 1219, 1219, 1219, 1219, 1219, 0, 1219, 1219, 1382, 1219, 1219, 1219, 0, 0, 1219, 0, 1219, 0, 0, 0, 0, 0, 1219, 1219, 0, 0, 1219, 0, 1382, 1286, 0, 0, 0, 0, 0, 0, 0, 0, 1286, 1219, 0, 1219, 1219, 1219, 1286, 0, 1292, 0, 1286, 0, 0, 0, 0, 0, 0, 1292, 0, 1382, 1382, 1382, 0, 1292, 0, 0, 1286, 1292, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 0, 1220, 1292, 0, 1220, 1220, 1220, 0, 0, 1220, 0, 1220, 0, 0, 1286, 1286, 1286, 1220, 1220, 0, 0, 1220, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 1292, 1292, 1292, 1220, 0, 1220, 1383, 1220, 1293, 0, 0, 0, 0, 0, 0, 0, 0, 1293, 0, 0, 0, 0, 0, 1293, 0, 0, 1383, 1293, 0, 0, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1293, 1221, 1221, 0, 1221, 1221, 1221, 0, 0, 1221, 0, 1221, 1383, 1383, 1383, 0, 0, 1221, 1221, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 0, 1293, 1293, 1293, 0, 0, 1221, 0, 1221, 1221, 1221, 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 1294, 0, 0, 0, 0, 0, 1294, 0, 0, 0, 1294, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1294, 1225, 0, 1225, 1225, 1225, 1225, 0, 1225, 1225, 1225, 1225, 1262, 1262, 1262, 1262, 1262, 0, 1262, 1262, 0, 1262, 1262, 1262, 1299, 0, 1262, 1300, 1262, 1294, 1294, 1294, 0, 1299, 1262, 1262, 1300, 0, 1262, 1299, 0, 1301, 1300, 1299, 0, 0, 1300, 0, 0, 0, 1301, 1262, 1307, 1262, 1262, 1262, 1301, 0, 0, 1299, 1301, 1307, 1300, 0, 0, 0, 0, 1307, 0, 0, 0, 1307, 0, 0, 0, 0, 1301, 0, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 0, 1307, 1299, 1299, 1299, 1300, 1300, 1300, 1308, 0, 0, 0, 0, 0, 0, 0, 0, 1308, 0, 1301, 1301, 1301, 0, 1308, 0, 1309, 0, 1308, 0, 0, 1307, 1307, 1307, 1351, 1309, 0, 1352, 0, 0, 0, 1309, 0, 1351, 1308, 1309, 1352, 0, 1353, 1351, 0, 1359, 1352, 1351, 0, 0, 1352, 1353, 0, 0, 1359, 1309, 1360, 1353, 0, 0, 1359, 1353, 0, 1351, 1359, 1360, 1352, 1308, 1308, 1308, 0, 1360, 0, 0, 0, 1360, 0, 1353, 0, 0, 1359, 0, 0, 0, 1309, 1309, 1309, 0, 0, 0, 0, 1360, 1351, 1351, 1351, 1352, 1352, 1352, 0, 0, 0, 0, 0, 0, 1361, 0, 1353, 1353, 1353, 1359, 1359, 1359, 0, 1361, 0, 1366, 0, 0, 1367, 1361, 1360, 1360, 1360, 1361, 1366, 0, 1368, 1367, 0, 1374, 1366, 0, 0, 1367, 1366, 1368, 0, 1367, 1374, 1361, 1375, 1368, 0, 1376, 1374, 1368, 0, 0, 1374, 1375, 1366, 0, 1376, 1367, 0, 1375, 0, 0, 1376, 1375, 0, 1368, 1376, 0, 1374, 0, 0, 0, 1361, 1361, 1361, 0, 0, 0, 0, 1375, 0, 0, 1376, 1366, 1366, 1366, 1367, 1367, 1367, 0, 0, 0, 0, 0, 1368, 1368, 1368, 1374, 1374, 1374, 0, 0, 0, 0, 0, 0, 0, 0, 1375, 1375, 1375, 1376, 1376, 1376, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 0, 1418, 0, 1418, 1418, 1418, 1418, 0, 1418, 1418, 1418, 1418, 1430, 1430, 1430, 1430, 1430, 0, 1430, 1430, 0, 1430, 1430, 1430, 0, 0, 1430, 0, 1430, 0, 0, 0, 0, 0, 1430, 1430, 0, 0, 1430, 0, 0, 1457, 0, 0, 0, 0, 0, 0, 0, 0, 1457, 1430, 0, 1430, 1430, 1430, 1457, 0, 0, 0, 1457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1457, 0, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1432, 1432, 1432, 1432, 1432, 0, 1432, 1432, 0, 1432, 1432, 1432, 0, 0, 1432, 0, 1432, 0, 0, 1457, 1457, 1457, 1432, 1432, 0, 0, 1432, 0, 0, 1458, 0, 0, 0, 0, 0, 0, 0, 0, 1458, 1432, 0, 1432, 1432, 1432, 1458, 0, 0, 0, 1458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1458, 0, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1438, 1438, 1438, 1438, 1438, 0, 1438, 1438, 0, 1438, 1438, 1438, 0, 0, 1438, 0, 1438, 0, 0, 1458, 1458, 1458, 1438, 1438, 0, 0, 1438, 0, 0, 1459, 0, 0, 0, 0, 0, 0, 0, 0, 1459, 1438, 0, 1438, 1438, 1438, 1459, 0, 0, 0, 1459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1459, 0, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1442, 1442, 1442, 1442, 1442, 0, 1442, 1442, 0, 1442, 1442, 1442, 0, 0, 1442, 0, 1442, 0, 0, 1459, 1459, 1459, 1442, 1442, 0, 0, 1442, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 0, 0, 1466, 1442, 0, 1442, 1442, 1442, 1466, 0, 0, 0, 1466, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1466, 0, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1443, 1443, 1443, 1443, 1443, 0, 1443, 1443, 0, 1443, 1443, 1443, 0, 0, 1443, 1467, 1443, 0, 1468, 1466, 1466, 1466, 1443, 1443, 1467, 0, 1443, 1468, 0, 1474, 1467, 0, 0, 1468, 1467, 0, 0, 1468, 1474, 1443, 1475, 1443, 1443, 1443, 1474, 0, 0, 0, 1474, 1475, 1467, 0, 0, 1468, 0, 1475, 0, 0, 0, 1475, 0, 0, 0, 0, 1474, 0, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 0, 1475, 0, 1476, 0, 1467, 1467, 1467, 1468, 1468, 1468, 0, 1476, 0, 1501, 0, 0, 0, 1476, 1474, 1474, 1474, 1476, 1501, 0, 1502, 0, 0, 1503, 1501, 1475, 1475, 1475, 1501, 1502, 0, 1510, 1503, 1476, 1511, 1502, 0, 0, 1503, 1502, 1510, 0, 1503, 1511, 1501, 0, 1510, 0, 0, 1511, 1510, 0, 0, 1511, 0, 1502, 0, 0, 1503, 0, 0, 0, 1476, 1476, 1476, 0, 1510, 0, 0, 1511, 0, 0, 0, 1501, 1501, 1501, 0, 0, 0, 0, 0, 0, 0, 0, 1502, 1502, 1502, 1503, 1503, 1503, 0, 0, 1512, 0, 0, 1510, 1510, 1510, 1511, 1511, 1511, 1512, 0, 1518, 0, 0, 1519, 1512, 0, 0, 0, 1512, 1518, 0, 1520, 1519, 0, 0, 1518, 0, 0, 1519, 1518, 1520, 0, 1519, 0, 1512, 0, 1520, 0, 0, 0, 1520, 0, 0, 0, 0, 1518, 0, 0, 1519, 0, 0, 0, 0, 0, 0, 0, 1520, 0, 0, 0, 0, 0, 0, 1512, 1512, 1512, 0, 0, 0, 0, 0, 0, 0, 0, 1518, 1518, 1518, 1519, 1519, 1519, 0, 0, 0, 0, 0, 1520, 1520, 1520, 1555, 1555, 1555, 1555, 1555, 0, 1555, 1555, 0, 1555, 1555, 1555, 0, 0, 1555, 0, 1555, 0, 0, 0, 0, 0, 1555, 1555, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 1555, 1555, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1569, 1569, 1569, 1569, 1569, 0, 1569, 1569, 0, 1569, 1569, 1569, 0, 0, 1569, 0, 1569, 0, 0, 0, 0, 0, 1569, 1569, 0, 0, 1569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1569, 0, 1569, 1569, 1569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1569, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1648, 1649, 1649, 0, 0, 0, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 0, 1649, 1649, 1649, 1649, 1649, 1650, 0, 1650, 0, 0, 0, 1650, 0, 1650, 1650, 1651, 1651, 0, 0, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1651, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1653, 0, 1653, 0, 0, 1653, 1653, 0, 1653, 1653, 0, 1653, 1653, 1653, 1653, 1653, 1653, 1654, 0, 1654, 0, 0, 1654, 1654, 0, 1654, 1654, 0, 1654, 1654, 1654, 1654, 1654, 1654, 1655, 0, 1655, 0, 0, 1655, 0, 0, 1655, 1655, 0, 0, 1655, 0, 1655, 1655, 1655, 1656, 0, 1656, 0, 0, 1656, 1656, 1656, 1656, 1656, 0, 1656, 1656, 1656, 1656, 1656, 1656, 1657, 0, 1657, 0, 0, 1657, 1657, 1657, 1657, 1657, 0, 1657, 1657, 1657, 1657, 1657, 1657, 1658, 0, 1658, 0, 0, 1658, 0, 1658, 1658, 1658, 0, 0, 1658, 0, 1658, 1658, 1658, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1660, 0, 0, 0, 1660, 0, 1660, 1660, 1661, 1661, 1661, 1661, 0, 0, 1661, 0, 0, 1661, 1661, 1661, 1661, 1661, 1662, 0, 0, 1662, 0, 1662, 0, 1662, 1662, 0, 1662, 1662, 1662, 1662, 0, 1662, 1662, 1662, 1662, 1662, 1662, 1662, 1663, 1663, 0, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1663, 1664, 1664, 0, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1667, 0, 1667, 0, 0, 1667, 0, 1667, 1667, 1667, 0, 0, 1667, 1667, 1667, 1667, 1667, 1668, 0, 1668, 0, 0, 0, 1668, 0, 1668, 1668, 1669, 1669, 0, 0, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1669, 1671, 0, 1671, 0, 0, 1671, 1671, 0, 1671, 1671, 0, 1671, 1671, 1671, 1671, 1671, 1671, 1672, 0, 1672, 0, 0, 1672, 1672, 0, 1672, 1672, 0, 1672, 1672, 1672, 1672, 1672, 1672, 1673, 0, 1673, 0, 0, 1673, 0, 0, 1673, 1673, 0, 0, 1673, 0, 1673, 1673, 1673, 1674, 0, 1674, 0, 0, 1674, 1674, 0, 1674, 1674, 0, 1674, 1674, 1674, 1674, 1674, 1674, 1675, 0, 1675, 0, 0, 1675, 1675, 0, 1675, 1675, 0, 1675, 1675, 0, 1675, 1675, 1675, 1676, 0, 1676, 0, 0, 1676, 1676, 0, 1676, 1676, 0, 1676, 1676, 1676, 1676, 1676, 1676, 1677, 0, 1677, 0, 0, 1677, 1677, 0, 1677, 1677, 0, 1677, 1677, 1677, 1677, 1677, 1677, 1678, 0, 1678, 0, 0, 1678, 0, 0, 1678, 0, 0, 0, 1678, 1678, 1678, 1678, 1678, 1679, 0, 1679, 0, 0, 1679, 1679, 0, 1679, 1679, 0, 1679, 1679, 1679, 1679, 1679, 1679, 1680, 0, 1680, 0, 0, 1680, 1680, 1680, 1680, 1680, 0, 1680, 1680, 1680, 1680, 1680, 1680, 1681, 0, 1681, 0, 0, 1681, 1681, 1681, 1681, 1681, 0, 1681, 1681, 1681, 1681, 1681, 1681, 1682, 0, 1682, 0, 0, 1682, 1682, 1682, 1682, 1682, 0, 1682, 1682, 1682, 1682, 1682, 1682, 1683, 0, 1683, 0, 0, 1683, 0, 1683, 1683, 1683, 0, 0, 1683, 0, 1683, 1683, 1683, 1684, 0, 1684, 0, 0, 1684, 1684, 1684, 1684, 1684, 0, 1684, 1684, 1684, 1684, 1684, 1684, 1685, 0, 1685, 0, 0, 1685, 1685, 1685, 1685, 1685, 0, 1685, 1685, 0, 1685, 1685, 1685, 1686, 0, 1686, 0, 0, 1686, 1686, 1686, 1686, 1686, 0, 1686, 1686, 1686, 1686, 1686, 1686, 1687, 0, 1687, 0, 0, 1687, 1687, 1687, 1687, 1687, 0, 1687, 1687, 1687, 1687, 1687, 1687, 1688, 0, 1688, 0, 0, 1688, 0, 1688, 1688, 0, 0, 0, 1688, 1688, 1688, 1688, 1688, 1689, 0, 1689, 0, 0, 1689, 1689, 1689, 1689, 1689, 0, 1689, 1689, 1689, 1689, 1689, 1689, 1692, 0, 0, 0, 1692, 0, 1692, 1692, 1693, 0, 0, 0, 1693, 0, 1693, 1693, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 0, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1696, 0, 1696, 0, 0, 0, 1696, 0, 1696, 1696, 1697, 0, 0, 1697, 0, 1697, 0, 1697, 1697, 0, 1697, 1697, 1697, 1697, 0, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1699, 1699, 0, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1700, 1700, 0, 0, 0, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 0, 1700, 1700, 1700, 1700, 1700, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1702, 0, 0, 0, 1702, 0, 1702, 1702, 1703, 0, 0, 0, 1703, 0, 1703, 1703, 1705, 0, 1705, 0, 0, 1705, 0, 1705, 1705, 1705, 0, 0, 1705, 1705, 1705, 1705, 1705, 1706, 0, 1706, 0, 0, 0, 1706, 0, 1706, 1706, 1708, 0, 1708, 0, 0, 1708, 0, 0, 1708, 1708, 0, 1708, 1708, 0, 1708, 1708, 1708, 1709, 0, 1709, 0, 0, 1709, 1709, 0, 1709, 1709, 0, 1709, 1709, 1709, 1709, 1709, 1709, 1710, 0, 1710, 0, 0, 1710, 1710, 0, 1710, 1710, 0, 1710, 1710, 1710, 1710, 1710, 1710, 1711, 0, 1711, 0, 0, 1711, 1711, 0, 1711, 1711, 0, 1711, 1711, 1711, 1711, 1711, 1711, 1712, 0, 1712, 0, 0, 1712, 1712, 0, 1712, 1712, 0, 1712, 1712, 1712, 1712, 1712, 1712, 1713, 0, 1713, 0, 0, 1713, 0, 0, 1713, 1713, 0, 0, 1713, 1713, 1713, 1713, 1713, 1714, 0, 1714, 0, 0, 1714, 0, 0, 1714, 0, 0, 0, 1714, 1714, 1714, 1714, 1714, 1715, 0, 1715, 0, 0, 1715, 1715, 0, 1715, 1715, 0, 1715, 1715, 1715, 1715, 1715, 1715, 1716, 0, 1716, 0, 0, 1716, 1716, 0, 1716, 1716, 0, 1716, 1716, 1716, 1716, 1716, 1716, 1717, 0, 1717, 0, 0, 1717, 0, 0, 1717, 1717, 0, 0, 1717, 1717, 1717, 1717, 1717, 1718, 0, 1718, 0, 0, 1718, 1718, 0, 1718, 1718, 0, 1718, 1718, 1718, 1718, 1718, 1718, 1719, 0, 1719, 0, 0, 1719, 0, 0, 1719, 0, 0, 0, 1719, 1719, 1719, 1719, 1719, 1720, 0, 1720, 0, 0, 1720, 0, 0, 1720, 1720, 0, 0, 1720, 0, 1720, 1720, 1720, 1721, 0, 1721, 0, 0, 1721, 1721, 0, 1721, 1721, 0, 1721, 1721, 1721, 1721, 1721, 1721, 1722, 0, 1722, 0, 0, 1722, 1722, 0, 1722, 1722, 0, 1722, 1722, 1722, 1722, 1722, 1722, 1723, 0, 1723, 0, 0, 1723, 0, 0, 1723, 0, 0, 0, 1723, 1723, 1723, 1723, 1723, 1724, 0, 1724, 0, 0, 1724, 0, 0, 1724, 0, 0, 0, 1724, 1724, 1724, 1724, 1724, 1725, 0, 1725, 0, 0, 1725, 1725, 0, 1725, 1725, 0, 1725, 1725, 1725, 1725, 1725, 1725, 1726, 0, 1726, 0, 0, 1726, 1726, 0, 1726, 1726, 0, 1726, 1726, 1726, 1726, 1726, 1726, 1727, 0, 1727, 0, 0, 1727, 0, 1727, 1727, 1727, 0, 1727, 1727, 0, 1727, 1727, 1727, 1728, 0, 1728, 0, 0, 1728, 1728, 1728, 1728, 1728, 0, 1728, 1728, 1728, 1728, 1728, 1728, 1729, 0, 1729, 0, 0, 1729, 1729, 1729, 1729, 1729, 0, 1729, 1729, 1729, 1729, 1729, 1729, 1730, 0, 1730, 0, 0, 1730, 1730, 1730, 1730, 1730, 0, 1730, 1730, 1730, 1730, 1730, 1730, 1731, 0, 1731, 0, 0, 1731, 1731, 1731, 1731, 1731, 0, 1731, 1731, 1731, 1731, 1731, 1731, 1732, 0, 1732, 0, 0, 1732, 0, 1732, 1732, 1732, 0, 0, 1732, 1732, 1732, 1732, 1732, 1733, 0, 1733, 0, 0, 1733, 0, 1733, 1733, 0, 0, 0, 1733, 1733, 1733, 1733, 1733, 1734, 0, 1734, 0, 0, 1734, 1734, 1734, 1734, 1734, 0, 1734, 1734, 1734, 1734, 1734, 1734, 1735, 0, 1735, 0, 0, 1735, 1735, 1735, 1735, 1735, 0, 1735, 1735, 1735, 1735, 1735, 1735, 1736, 0, 1736, 0, 0, 1736, 0, 1736, 1736, 1736, 0, 0, 1736, 1736, 1736, 1736, 1736, 1737, 0, 1737, 0, 0, 1737, 1737, 1737, 1737, 1737, 0, 1737, 1737, 1737, 1737, 1737, 1737, 1738, 0, 1738, 0, 0, 1738, 0, 1738, 1738, 0, 0, 0, 1738, 1738, 1738, 1738, 1738, 1739, 0, 1739, 0, 0, 1739, 0, 1739, 1739, 1739, 0, 0, 1739, 0, 1739, 1739, 1739, 1740, 0, 1740, 0, 0, 1740, 1740, 1740, 1740, 1740, 0, 1740, 1740, 1740, 1740, 1740, 1740, 1741, 0, 1741, 0, 0, 1741, 1741, 1741, 1741, 1741, 0, 1741, 1741, 1741, 1741, 1741, 1741, 1742, 0, 1742, 0, 0, 1742, 0, 1742, 1742, 0, 0, 0, 1742, 1742, 1742, 1742, 1742, 1743, 0, 1743, 0, 0, 1743, 0, 1743, 1743, 0, 0, 0, 1743, 1743, 1743, 1743, 1743, 1744, 0, 1744, 0, 0, 1744, 1744, 1744, 1744, 1744, 0, 1744, 1744, 1744, 1744, 1744, 1744, 1745, 0, 1745, 0, 0, 1745, 1745, 1745, 1745, 1745, 0, 1745, 1745, 1745, 1745, 1745, 1745, 1749, 0, 0, 0, 1749, 0, 1749, 1749, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 0, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1751, 1752, 0, 0, 1752, 0, 1752, 0, 1752, 1752, 0, 1752, 1752, 1752, 1752, 0, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1755, 0, 0, 1755, 0, 0, 0, 1755, 0, 1755, 1755, 1756, 1756, 1756, 1756, 1756, 0, 1756, 1756, 1756, 1756, 0, 1756, 0, 0, 1756, 1756, 1756, 0, 1756, 0, 0, 1756, 1757, 0, 0, 1757, 1757, 0, 1757, 0, 0, 1757, 0, 1757, 1757, 1757, 0, 0, 1757, 1757, 1757, 1757, 1757, 1758, 0, 1758, 0, 0, 0, 1758, 0, 1758, 1758, 1759, 0, 1759, 0, 0, 1759, 0, 0, 1759, 1759, 0, 0, 1759, 1759, 1759, 1759, 1759, 1760, 0, 1760, 0, 0, 1760, 1760, 0, 1760, 1760, 0, 1760, 1760, 0, 1760, 1760, 1760, 1761, 0, 1761, 0, 0, 1761, 1761, 0, 1761, 1761, 0, 1761, 1761, 1761, 1761, 1761, 1761, 1762, 0, 1762, 0, 0, 1762, 1762, 0, 1762, 1762, 0, 1762, 1762, 1762, 1762, 1762, 1762, 1763, 0, 1763, 0, 0, 1763, 1763, 0, 1763, 1763, 0, 1763, 1763, 1763, 1763, 1763, 1763, 1764, 0, 1764, 0, 0, 1764, 0, 0, 1764, 1764, 0, 0, 1764, 1764, 1764, 1764, 1764, 1765, 0, 1765, 0, 0, 1765, 0, 0, 1765, 0, 0, 0, 1765, 1765, 1765, 1765, 1765, 1766, 0, 1766, 0, 0, 1766, 0, 0, 1766, 0, 0, 0, 1766, 1766, 1766, 1766, 1766, 1767, 0, 1767, 0, 0, 1767, 1767, 0, 1767, 1767, 0, 1767, 1767, 1767, 1767, 1767, 1767, 1768, 0, 1768, 0, 0, 1768, 1768, 0, 1768, 1768, 0, 1768, 1768, 1768, 1768, 1768, 1768, 1769, 0, 1769, 0, 0, 1769, 0, 0, 1769, 0, 0, 0, 1769, 1769, 1769, 1769, 1769, 1770, 0, 1770, 0, 0, 1770, 0, 0, 1770, 0, 0, 0, 1770, 1770, 1770, 1770, 1770, 1771, 0, 1771, 0, 0, 1771, 0, 0, 1771, 0, 0, 0, 1771, 1771, 1771, 1771, 1771, 1772, 0, 1772, 0, 0, 1772, 0, 0, 1772, 0, 0, 0, 1772, 1772, 1772, 1772, 1772, 1773, 0, 1773, 0, 0, 1773, 0, 0, 1773, 1773, 0, 0, 1773, 1773, 1773, 1773, 1773, 1774, 0, 1774, 0, 0, 1774, 1774, 0, 1774, 1774, 0, 1774, 1774, 1774, 1774, 1774, 1774, 1775, 0, 1775, 0, 0, 1775, 1775, 0, 1775, 1775, 0, 1775, 1775, 1775, 1775, 1775, 1775, 1776, 0, 1776, 0, 0, 1776, 1776, 0, 1776, 1776, 0, 1776, 1776, 1776, 1776, 1776, 1776, 1777, 0, 1777, 0, 0, 1777, 1777, 0, 1777, 1777, 0, 1777, 1777, 1777, 1777, 1777, 1777, 1778, 0, 1778, 0, 0, 1778, 0, 0, 1778, 1778, 0, 0, 1778, 0, 1778, 1778, 1778, 1779, 0, 1779, 0, 0, 1779, 0, 0, 1779, 0, 0, 0, 1779, 1779, 1779, 1779, 1779, 1780, 0, 1780, 0, 0, 1780, 1780, 0, 1780, 1780, 0, 1780, 1780, 1780, 1780, 1780, 1780, 1781, 0, 1781, 0, 0, 1781, 0, 1781, 1781, 1781, 0, 0, 1781, 1781, 1781, 1781, 1781, 1782, 0, 1782, 0, 0, 1782, 1782, 1782, 1782, 1782, 0, 1782, 1782, 0, 1782, 1782, 1782, 1783, 0, 1783, 0, 0, 1783, 1783, 1783, 1783, 1783, 0, 1783, 1783, 1783, 1783, 1783, 1783, 1784, 0, 1784, 0, 0, 1784, 1784, 1784, 1784, 1784, 0, 1784, 1784, 1784, 1784, 1784, 1784, 1785, 0, 1785, 0, 0, 1785, 1785, 1785, 1785, 1785, 0, 1785, 1785, 1785, 1785, 1785, 1785, 1786, 0, 1786, 0, 0, 1786, 0, 1786, 1786, 1786, 0, 0, 1786, 1786, 1786, 1786, 1786, 1787, 0, 1787, 0, 0, 1787, 0, 1787, 1787, 0, 0, 0, 1787, 1787, 1787, 1787, 1787, 1788, 0, 1788, 0, 0, 1788, 0, 1788, 1788, 0, 0, 0, 1788, 1788, 1788, 1788, 1788, 1789, 0, 1789, 0, 0, 1789, 1789, 1789, 1789, 1789, 0, 1789, 1789, 1789, 1789, 1789, 1789, 1790, 0, 1790, 0, 0, 1790, 1790, 1790, 1790, 1790, 0, 1790, 1790, 1790, 1790, 1790, 1790, 1791, 0, 1791, 0, 0, 1791, 0, 1791, 1791, 0, 0, 0, 1791, 1791, 1791, 1791, 1791, 1792, 0, 1792, 0, 0, 1792, 0, 1792, 1792, 0, 0, 0, 1792, 1792, 1792, 1792, 1792, 1793, 0, 1793, 0, 0, 1793, 0, 1793, 1793, 0, 0, 0, 1793, 1793, 1793, 1793, 1793, 1794, 0, 1794, 0, 0, 1794, 0, 1794, 1794, 0, 0, 0, 1794, 1794, 1794, 1794, 1794, 1795, 0, 1795, 0, 0, 1795, 0, 1795, 1795, 1795, 0, 0, 1795, 1795, 1795, 1795, 1795, 1796, 0, 1796, 0, 0, 1796, 1796, 1796, 1796, 1796, 0, 1796, 1796, 1796, 1796, 1796, 1796, 1797, 0, 1797, 0, 0, 1797, 1797, 1797, 1797, 1797, 0, 1797, 1797, 1797, 1797, 1797, 1797, 1798, 0, 1798, 0, 0, 1798, 1798, 1798, 1798, 1798, 0, 1798, 1798, 1798, 1798, 1798, 1798, 1799, 0, 1799, 0, 0, 1799, 1799, 1799, 1799, 1799, 0, 1799, 1799, 1799, 1799, 1799, 1799, 1800, 0, 1800, 0, 0, 1800, 0, 1800, 1800, 1800, 0, 0, 1800, 0, 1800, 1800, 1800, 1801, 0, 1801, 0, 0, 1801, 0, 1801, 1801, 0, 0, 0, 1801, 1801, 1801, 1801, 1801, 1802, 0, 1802, 0, 0, 1802, 1802, 1802, 1802, 1802, 0, 1802, 1802, 1802, 1802, 1802, 1802, 1804, 0, 0, 0, 1804, 0, 1804, 1804, 1805, 0, 0, 1805, 0, 1805, 0, 1805, 1805, 0, 1805, 1805, 1805, 1805, 0, 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1808, 1808, 1808, 1808, 1808, 0, 1808, 1808, 1808, 1808, 0, 1808, 0, 0, 1808, 1808, 1808, 0, 1808, 0, 1808, 1808, 1809, 1809, 1809, 1809, 1809, 0, 1809, 1809, 1809, 1809, 0, 1809, 0, 0, 1809, 1809, 1809, 0, 1809, 1809, 0, 1809, 1810, 0, 1810, 0, 0, 1810, 0, 1810, 1810, 1810, 0, 0, 1810, 1810, 1810, 1810, 1810, 1811, 0, 1811, 0, 0, 0, 1811, 0, 1811, 1811, 1812, 0, 1812, 0, 0, 1812, 1812, 0, 1812, 1812, 0, 1812, 1812, 1812, 1812, 1812, 1812, 1813, 0, 1813, 0, 0, 1813, 1813, 0, 1813, 1813, 0, 1813, 1813, 1813, 1813, 1813, 1813, 1814, 0, 1814, 0, 0, 1814, 0, 0, 1814, 0, 0, 0, 1814, 1814, 1814, 1814, 1814, 1815, 0, 1815, 0, 0, 1815, 0, 0, 1815, 0, 0, 0, 1815, 1815, 1815, 1815, 1815, 1816, 0, 1816, 0, 0, 1816, 0, 0, 1816, 0, 0, 0, 1816, 1816, 1816, 1816, 1816, 1817, 0, 1817, 0, 0, 1817, 0, 0, 1817, 0, 0, 0, 1817, 1817, 1817, 1817, 1817, 1818, 0, 1818, 0, 0, 1818, 0, 0, 1818, 1818, 0, 0, 1818, 1818, 1818, 1818, 1818, 1819, 0, 1819, 0, 0, 1819, 1819, 0, 1819, 1819, 0, 1819, 1819, 1819, 1819, 1819, 1819, 1820, 0, 1820, 0, 0, 1820, 1820, 0, 1820, 1820, 0, 1820, 1820, 1820, 1820, 1820, 1820, 1821, 0, 1821, 0, 0, 1821, 1821, 0, 1821, 1821, 0, 1821, 1821, 1821, 1821, 1821, 1821, 1822, 0, 1822, 0, 0, 1822, 0, 0, 1822, 1822, 0, 0, 1822, 1822, 1822, 1822, 1822, 1823, 0, 1823, 0, 0, 1823, 1823, 0, 1823, 1823, 0, 1823, 1823, 1823, 1823, 1823, 1823, 1824, 0, 1824, 0, 0, 1824, 1824, 0, 1824, 1824, 0, 1824, 1824, 1824, 1824, 1824, 1824, 1825, 0, 1825, 0, 0, 1825, 1825, 0, 1825, 1825, 0, 1825, 1825, 1825, 1825, 1825, 1825, 1826, 0, 1826, 0, 0, 1826, 1826, 0, 1826, 1826, 0, 1826, 1826, 1826, 1826, 1826, 1826, 1827, 0, 1827, 0, 0, 1827, 0, 0, 1827, 1827, 0, 0, 1827, 1827, 1827, 1827, 1827, 1828, 0, 1828, 0, 0, 1828, 0, 0, 1828, 0, 0, 0, 1828, 1828, 1828, 1828, 1828, 1829, 0, 1829, 0, 0, 1829, 1829, 1829, 1829, 1829, 0, 1829, 1829, 1829, 1829, 1829, 1829, 1830, 0, 1830, 0, 0, 1830, 1830, 1830, 1830, 1830, 0, 1830, 1830, 1830, 1830, 1830, 1830, 1831, 0, 1831, 0, 0, 1831, 0, 1831, 1831, 0, 0, 0, 1831, 1831, 1831, 1831, 1831, 1832, 0, 1832, 0, 0, 1832, 0, 1832, 1832, 0, 0, 0, 1832, 1832, 1832, 1832, 1832, 1833, 0, 1833, 0, 0, 1833, 0, 1833, 1833, 0, 0, 0, 1833, 1833, 1833, 1833, 1833, 1834, 0, 1834, 0, 0, 1834, 0, 1834, 1834, 0, 0, 0, 1834, 1834, 1834, 1834, 1834, 1835, 0, 1835, 0, 0, 1835, 0, 1835, 1835, 1835, 0, 0, 1835, 1835, 1835, 1835, 1835, 1836, 0, 1836, 0, 0, 1836, 1836, 1836, 1836, 1836, 0, 1836, 1836, 1836, 1836, 1836, 1836, 1837, 0, 1837, 0, 0, 1837, 1837, 1837, 1837, 1837, 0, 1837, 1837, 1837, 1837, 1837, 1837, 1838, 0, 1838, 0, 0, 1838, 1838, 1838, 1838, 1838, 0, 1838, 1838, 1838, 1838, 1838, 1838, 1839, 0, 1839, 0, 0, 1839, 0, 1839, 1839, 1839, 0, 0, 1839, 1839, 1839, 1839, 1839, 1840, 0, 1840, 0, 0, 1840, 1840, 1840, 1840, 1840, 0, 1840, 1840, 1840, 1840, 1840, 1840, 1841, 0, 1841, 0, 0, 1841, 1841, 1841, 1841, 1841, 0, 1841, 1841, 1841, 1841, 1841, 1841, 1842, 0, 1842, 0, 0, 1842, 1842, 1842, 1842, 1842, 0, 1842, 1842, 1842, 1842, 1842, 1842, 1843, 0, 1843, 0, 0, 1843, 1843, 1843, 1843, 1843, 0, 1843, 1843, 1843, 1843, 1843, 1843, 1844, 0, 1844, 0, 0, 1844, 0, 1844, 1844, 1844, 0, 0, 1844, 1844, 1844, 1844, 1844, 1845, 0, 1845, 0, 0, 1845, 0, 1845, 1845, 0, 0, 0, 1845, 1845, 1845, 1845, 1845, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1849, 1849, 1849, 1849, 1849, 0, 1849, 1849, 1849, 1849, 0, 1849, 0, 0, 1849, 1849, 1849, 0, 1849, 1849, 0, 1849, 1850, 1850, 1850, 1850, 1850, 0, 1850, 1850, 1850, 1850, 0, 1850, 0, 0, 1850, 1850, 1850, 0, 1850, 0, 0, 1850, 1851, 1851, 1851, 1851, 1851, 0, 1851, 1851, 1851, 1851, 0, 1851, 0, 0, 1851, 1851, 1851, 0, 1851, 0, 0, 1851, 1852, 1852, 1852, 1852, 1852, 0, 1852, 1852, 1852, 1852, 0, 1852, 0, 0, 1852, 1852, 1852, 0, 1852, 0, 0, 1852, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1853, 1854, 0, 1854, 0, 0, 1854, 1854, 0, 1854, 1854, 0, 1854, 1854, 1854, 1854, 1854, 1854, 1855, 0, 1855, 0, 0, 1855, 1855, 0, 1855, 1855, 0, 1855, 1855, 1855, 1855, 1855, 1855, 1856, 0, 1856, 0, 0, 1856, 1856, 0, 1856, 1856, 0, 1856, 1856, 1856, 1856, 1856, 1856, 1857, 0, 1857, 0, 0, 1857, 1857, 0, 1857, 1857, 0, 1857, 1857, 1857, 1857, 1857, 1857, 1858, 0, 1858, 0, 0, 1858, 0, 0, 1858, 1858, 0, 0, 1858, 1858, 1858, 1858, 1858, 1859, 0, 1859, 0, 0, 1859, 1859, 0, 1859, 1859, 0, 1859, 1859, 1859, 1859, 1859, 1859, 1860, 0, 1860, 0, 0, 1860, 1860, 0, 1860, 1860, 0, 1860, 1860, 1860, 1860, 1860, 1860, 1861, 0, 1861, 0, 0, 1861, 1861, 0, 1861, 1861, 0, 1861, 1861, 1861, 1861, 1861, 1861, 1862, 0, 1862, 0, 0, 1862, 0, 0, 1862, 1862, 0, 0, 1862, 1862, 1862, 1862, 1862, 1863, 0, 1863, 0, 0, 1863, 0, 0, 1863, 0, 0, 0, 1863, 1863, 1863, 1863, 1863, 1864, 0, 1864, 0, 0, 1864, 0, 0, 1864, 0, 0, 0, 1864, 1864, 1864, 1864, 1864, 1865, 0, 1865, 0, 0, 1865, 1865, 1865, 1865, 1865, 0, 1865, 1865, 1865, 1865, 1865, 1865, 1866, 0, 1866, 0, 0, 1866, 1866, 1866, 1866, 1866, 0, 1866, 1866, 1866, 1866, 1866, 1866, 1867, 0, 1867, 0, 0, 1867, 1867, 1867, 1867, 1867, 0, 1867, 1867, 1867, 1867, 1867, 1867, 1868, 0, 1868, 0, 0, 1868, 1868, 1868, 1868, 1868, 0, 1868, 1868, 1868, 1868, 1868, 1868, 1869, 0, 1869, 0, 0, 1869, 0, 1869, 1869, 1869, 0, 0, 1869, 1869, 1869, 1869, 1869, 1870, 0, 1870, 0, 0, 1870, 1870, 1870, 1870, 1870, 0, 1870, 1870, 1870, 1870, 1870, 1870, 1871, 0, 1871, 0, 0, 1871, 1871, 1871, 1871, 1871, 0, 1871, 1871, 1871, 1871, 1871, 1871, 1872, 0, 1872, 0, 0, 1872, 1872, 1872, 1872, 1872, 0, 1872, 1872, 1872, 1872, 1872, 1872, 1873, 0, 1873, 0, 0, 1873, 0, 1873, 1873, 1873, 0, 0, 1873, 1873, 1873, 1873, 1873, 1874, 0, 1874, 0, 0, 1874, 0, 1874, 1874, 0, 0, 0, 1874, 1874, 1874, 1874, 1874, 1875, 0, 1875, 0, 0, 1875, 0, 1875, 1875, 0, 0, 0, 1875, 1875, 1875, 1875, 1875, 1876, 1876, 1876, 1876, 1876, 0, 1876, 1876, 1876, 1876, 0, 1876, 0, 0, 1876, 1876, 1876, 0, 1876, 0, 0, 1876, 1877, 1877, 1877, 1877, 1877, 0, 1877, 1877, 1877, 1877, 0, 1877, 0, 0, 1877, 1877, 1877, 0, 1877, 0, 0, 1877, 1878, 1878, 1878, 1878, 1878, 0, 1878, 1878, 1878, 1878, 0, 1878, 0, 0, 1878, 1878, 1878, 0, 1878, 0, 0, 1878, 1879, 0, 1879, 0, 0, 1879, 1879, 0, 1879, 1879, 0, 1879, 1879, 1879, 1879, 1879, 1879, 1880, 0, 1880, 0, 0, 1880, 1880, 0, 1880, 1880, 0, 1880, 1880, 1880, 1880, 1880, 1880, 1881, 0, 1881, 0, 0, 1881, 1881, 0, 1881, 1881, 0, 1881, 1881, 1881, 1881, 1881, 1881, 1882, 1882, 1882, 1882, 1882, 0, 1882, 1882, 1882, 1882, 0, 1882, 0, 0, 1882, 1882, 1882, 0, 1882, 0, 0, 1882, 1883, 1883, 1883, 1883, 1883, 0, 1883, 1883, 1883, 1883, 0, 1883, 0, 0, 1883, 1883, 1883, 0, 1883, 0, 0, 1883, 1884, 1884, 1884, 1884, 1884, 0, 1884, 1884, 1884, 1884, 0, 1884, 0, 0, 1884, 1884, 1884, 0, 1884, 0, 0, 1884, 1885, 1885, 1885, 1885, 1885, 0, 1885, 1885, 1885, 1885, 0, 1885, 0, 0, 1885, 1885, 1885, 0, 1885, 0, 0, 1885, 1886, 1886, 1886, 1886, 1886, 0, 1886, 1886, 1886, 1886, 0, 1886, 0, 0, 1886, 1886, 1886, 0, 1886, 0, 0, 1886, 1887, 1887, 1887, 1887, 1887, 0, 1887, 1887, 1887, 1887, 0, 1887, 0, 0, 1887, 1887, 1887, 0, 1887, 0, 0, 1887, 1888, 1888, 1888, 1888, 1888, 0, 1888, 1888, 1888, 1888, 0, 1888, 0, 0, 1888, 1888, 1888, 0, 1888, 0, 0, 1888, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642 } ; #define YY_TRAILING_MASK 0x2000 #define YY_TRAILING_HEAD_MASK 0x4000 #define REJECT \ { \ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ \ yy_cp = yyg->yy_full_match; /* restore poss. backed-over text */ \ yyg->yy_lp = yyg->yy_full_lp; /* restore orig. accepting pos. */ \ yyg->yy_state_ptr = yyg->yy_full_state; /* restore orig. state */ \ yy_current_state = *yyg->yy_state_ptr; /* restore curr. state */ \ ++yyg->yy_lp; \ goto find_rule; \ } #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "parser.l" /* Copyright 2009-2021 * Kaz Kylheku * Vancouver, Canada * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #line 29 "parser.l" #include #include #include #include #include #include #include #include "config.h" #include "lib.h" #include "gc.h" #include "stream.h" #include "utf8.h" #include "signal.h" #include "unwind.h" #include "hash.h" #include "y.tab.h" #include "parser.h" #include "txr.h" #define YY_INPUT(buf, result, max_size) \ do { \ val self = lit("parser"); \ val n = get_bytes(self, yyextra->stream, \ coerce(mem_t *, buf), max_size); \ result = c_num(n, self); \ } while (0) #define YY_DECL \ static int yylex_impl(YYSTYPE *yylval_param, yyscan_t yyscanner) int opt_loglevel = 1; /* 0 - quiet; 1 - normal; 2 - verbose */ val form_to_ln_hash; static int directive_tok(scanner_t *yyg, int tok, int state); #define FLEX_NUM_VERSION 10000*YY_FLEX_MAJOR_VERSION + \ 100*YY_FLEX_MINOR_VERSION + \ YY_FLEX_SUBMINOR_VERSION #if FLEX_NUM_VERSION < 20509 int yylex_destroy(void) { return 0; } #endif /* Missing prototypes not generated by flex. */ int yyget_column(yyscan_t); void yyset_column (int column_no, yyscan_t yyscanner); /* The following function is all that libflex provides. By providing it here, we eliminate the need to link libflex. */ #define YY_SKIP_YYWRAP INLINE int yywrap(yyscan_t scanner) { (void) scanner; return 1; } void yyerror(scanner_t *scanner, parser_t *parser, const char *s) { yyerrorf(scanner, lit("~a"), string_utf8(s), nao); if (parser->prepared_msg) { yyerrorf(scanner, lit("~a"), parser->prepared_msg, nao); parser->prepared_msg = nil; } } void yyerrorf(scanner_t *scanner, val fmt, ...) { parser_t *parser = yyget_extra(scanner); if (opt_loglevel >= 1) { va_list vl; va_start (vl, fmt); if (opt_compat && opt_compat <= 114) format(std_error, lit("~a: (~a:~d): "), prog_string, parser->name, num(parser->lineno), nao); else format(std_error, lit("~a:~d: "), parser->name, num(parser->lineno), nao); vformat(std_error, fmt, vl); put_char(chr('\n'), std_error); va_end (vl); } parser->errors++; } static void yyerrprepf(scanner_t *scanner, val fmt, ...) { parser_t *parser = yyget_extra(scanner); if (opt_loglevel >= 1) { va_list vl; va_start (vl, fmt); set(mkloc(parser->prepared_msg, parser->parser), vformat_to_string(fmt, vl)); va_end (vl); } } static void out_of_range_float(scanner_t *scanner, val tok) { yyerrorf(scanner, lit("out-of-range floating-point literal: ~a"), tok, nao); } static wchar_t char_esc(int letter) { switch (letter) { case ' ': return L' '; case 'a': return L'\a'; case 'b': return L'\b'; case 't': return L'\t'; case 'n': return L'\n'; case 'v': return L'\v'; case 'f': return L'\f'; case 'r': return L'\r'; case 'e': return 27; case '"': return L'"'; case '\'': return L'\''; case '`': return L'`'; case '/': return L'/'; case '@': return L'@'; case '\\': return L'\\'; } internal_error("unhandled escape character"); } static wchar_t num_esc(scanner_t *scn, char *num) { long val = 0; if (num[0] == 'x' || num[0] == 'u') { if (strlen(num) > 7) yyerror(scn, yyget_extra(scn), "too many digits in hex character escape"); else val = strtol(num + 1, 0, 16); } else { if (num[0] == 'o') num++; if (strlen(num) > 8) yyerror(scn, yyget_extra(scn), "too many digits in octal character escape"); else val = strtol(num, 0, 8); } if (val < 0 || val > 0x10FFFF || convert(wchar_t, val) != val) { yyerror(scn, yyget_extra(scn), "numeric character escape out of range"); val = 0; } return val; } static wchar_t *unicode_ident(scanner_t *scn, const char *lex) { wchar_t *wlex = utf8_dup_from(lex), *ptr = wlex, wch; while ((wch = *ptr++)) { if (wch < 0x1680 || (wch >= 0x3000 && wch < 0xdc00)) continue; if ((wch >= 0xdc00 && wch <= 0xdcff) || (wch >= 0xd800 && wch <= 0xdbff) || #if FULL_UNICODE (wch >= 0xf0000 && wch <= 0xffffd) || (wch >= 0x100000 && wch <= 0x10fffd) || #endif (wch >= 0xe000 && wch <= 0xf8ff) || (wch == 0xfffe) || (wch == 0xffff)) { yyerror(scn, yyget_extra(scn), "disallowed Unicode character in identifier"); break; } switch (wch) { case 0x1680: case 0x180e: case 0x2000: case 0x2001: case 0x2002: case 0x2003: case 0x2004: case 0x2005: case 0x2006: case 0x2007: case 0x2008: case 0x2009: case 0x200a: case 0x2028: case 0x2029: case 0x205f: case 0x3000: yyerror(scn, yyget_extra(scn), "Unicode space occurs in identifier"); break; default: continue; } break; } return wlex; } #line 3933 "lex.yy.c" #define YY_NO_INPUT 1 #line 3936 "lex.yy.c" #define INITIAL 0 #define SPECIAL 1 #define BRACED 2 #define NESTED 3 #define REGEX 4 #define SREGEX 5 #define STRLIT 6 #define CHRLIT 7 #define QSILIT 8 #define QSPECIAL 9 #define WLIT 10 #define QWLIT 11 #define BUFLIT 12 #define JSON 13 #define JLIT 14 #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 #endif #define YY_EXTRA_TYPE parser_t * /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char* yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; yy_state_type *yy_state_buf; yy_state_type *yy_state_ptr; char *yy_full_match; int yy_lp; /* These are only needed for trailing context rules, * but there's no conditional variable for that yet. */ int yy_looking_for_trail_begin; int yy_full_lp; int *yy_full_state; char *yytext_r; int yy_more_flag; int yy_more_len; YYSTYPE * yylval_r; }; /* end struct yyguts_t */ static int yy_init_globals ( yyscan_t yyscanner ); /* This must go here because YYSTYPE and YYLTYPE are included * from bison output in section 1.*/ # define yylval yyg->yylval_r int yylex_init (yyscan_t* scanner); int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( yyscan_t yyscanner ); int yyget_debug ( yyscan_t yyscanner ); void yyset_debug ( int debug_flag , yyscan_t yyscanner ); YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); FILE *yyget_in ( yyscan_t yyscanner ); void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); FILE *yyget_out ( yyscan_t yyscanner ); void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); int yyget_leng ( yyscan_t yyscanner ); char *yyget_text ( yyscan_t yyscanner ); int yyget_lineno ( yyscan_t yyscanner ); void yyset_lineno ( int _line_number , yyscan_t yyscanner ); int yyget_column ( yyscan_t yyscanner ); void yyset_column ( int _column_no , yyscan_t yyscanner ); YYSTYPE * yyget_lval ( yyscan_t yyscanner ); void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( yyscan_t yyscanner ); #else extern int yywrap ( yyscan_t yyscanner ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr , yyscan_t yyscanner); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( yyscan_t yyscanner ); #else static int input ( yyscan_t yyscanner ); #endif #endif static void yy_push_state ( int _new_state , yyscan_t yyscanner); static void yy_pop_state ( yyscan_t yyscanner ); static int yy_top_state ( yyscan_t yyscanner ); /* 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, (size_t) 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 = '*'; \ int 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 = (int) fread(buf, 1, (yy_size_t) 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 , yyscanner) #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 \ (YYSTYPE * yylval_param , yyscan_t yyscanner); #define YY_DECL int yylex \ (YYSTYPE * yylval_param , yyscan_t yyscanner) #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 /*LINTED*/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 { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yylval = yylval_param; if ( !yyg->yy_init ) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif /* Create the reject buffer large enough to save one state per allowed character. */ if ( ! yyg->yy_state_buf ) yyg->yy_state_buf = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE , yyscanner); if ( ! yyg->yy_state_buf ) YY_FATAL_ERROR( "out of dynamic memory in yylex()" ); if ( ! yyg->yy_start ) yyg->yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_load_buffer_state( yyscanner ); } { #line 290 "parser.l" #line 4251 "lex.yy.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->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 = yyg->yy_start; yy_current_state += YY_AT_BOL(); yyg->yy_state_ptr = yyg->yy_state_buf; *yyg->yy_state_ptr++ = yy_current_state; yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*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 >= 1643 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; *yyg->yy_state_ptr++ = yy_current_state; ++yy_cp; } while ( yy_current_state != 1642 ); yy_find_action: yy_current_state = *--yyg->yy_state_ptr; yyg->yy_lp = yy_accept[yy_current_state]; find_rule: /* we branch to this label when backing up */ for ( ; ; ) /* until we find what rule we matched */ { if ( yyg->yy_lp && yyg->yy_lp < yy_accept[yy_current_state + 1] ) { yy_act = yy_acclist[yyg->yy_lp]; if ( yy_act & YY_TRAILING_HEAD_MASK || yyg->yy_looking_for_trail_begin ) { if ( yy_act == yyg->yy_looking_for_trail_begin ) { yyg->yy_looking_for_trail_begin = 0; yy_act &= ~YY_TRAILING_HEAD_MASK; break; } } else if ( yy_act & YY_TRAILING_MASK ) { yyg->yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; yyg->yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; } else { yyg->yy_full_match = yy_cp; yyg->yy_full_state = yyg->yy_state_ptr; yyg->yy_full_lp = yyg->yy_lp; break; } ++yyg->yy_lp; goto find_rule; } --yy_cp; yy_current_state = *--yyg->yy_state_ptr; yyg->yy_lp = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 1: YY_RULE_SETUP #line 292 "parser.l" { val str = string_own(utf8_dup_from(yytext)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num(10)); return NUMBER; } YY_BREAK case 2: YY_RULE_SETUP #line 304 "parser.l" { val str = string_own(utf8_dup_from(yytext + 2)); int base; switch (yytext[1]) { case 'x': base = 16; break; case 'o': base = 8; break; case 'b': default: base = 2; break; } if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num_fast(base)); return NUMBER; } YY_BREAK case 3: YY_RULE_SETUP #line 323 "parser.l" { int base = 0; val str = string_own(utf8_dup_from(yytext + 2)); switch (yytext[1]) { case 'x': base = 16; break; case 'o': base = 8; break; case 'b': default: base = 2; break; } yyerrorf(yyg, lit("trailing junk in numeric literal: ~a~a~a"), chr(yytext[0]), chr(yytext[1]), str, nao); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num_fast(base)); return NUMBER; } YY_BREAK case 4: YY_RULE_SETUP #line 345 "parser.l" { val str = string_own(utf8_dup_from(yytext)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); if ((yylval->val = flo_str(str)) == nil) out_of_range_float(yyg, str); return NUMBER; } YY_BREAK case 5: #line 360 "parser.l" case 6: #line 361 "parser.l" case 7: YY_RULE_SETUP #line 361 "parser.l" { val str = string_utf8(yytext); yyerrorf(yyg, lit("trailing junk in floating-point literal: ~a"), str, nao); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); if ((yylval->val = flo_str(str)) == nil) out_of_range_float(yyg, str); return NUMBER; } YY_BREAK case 8: /* rule 8 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 377 "parser.l" { val str = string_own(utf8_dup_from(yytext)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); if ((yylval->val = flo_str(str)) == nil) out_of_range_float(yyg, str); return NUMBER; } YY_BREAK case 9: #line 392 "parser.l" case 10: YY_RULE_SETUP #line 392 "parser.l" { val str = string_own(utf8_dup_from(yytext + 1)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num(10)); return METANUM; } YY_BREAK case 11: #line 404 "parser.l" case 12: YY_RULE_SETUP #line 404 "parser.l" { val str = string_own(utf8_dup_from(yytext + 3)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num(16)); return METANUM; } YY_BREAK case 13: #line 416 "parser.l" case 14: YY_RULE_SETUP #line 416 "parser.l" { val str = string_own(utf8_dup_from(yytext + 3)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num(8)); return METANUM; } YY_BREAK case 15: YY_RULE_SETUP #line 427 "parser.l" { val str = string_own(utf8_dup_from(yytext + 3)); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->val = int_str(str, num(2)); return METANUM; } YY_BREAK case 16: #line 439 "parser.l" case 17: #line 440 "parser.l" case 18: YY_RULE_SETUP #line 440 "parser.l" { yyerrorf(yyg, lit("cramped floating-point literal: " "space needed between ~a and dot."), string_own(utf8_dup_from(yytext)), nao); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->lexeme = unicode_ident(yyg, yytext); return SYMTOK; } YY_BREAK case 19: #line 457 "parser.l" case 20: #line 458 "parser.l" case 21: YY_RULE_SETUP #line 458 "parser.l" { if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yylval->lexeme = unicode_ident(yyg, yytext); return SYMTOK; } YY_BREAK case 22: #line 469 "parser.l" case 23: YY_RULE_SETUP #line 469 "parser.l" { if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); yyerrorf(yyg, lit("bad token: ~a"), string_own(utf8_dup_from(yytext)), nao); yylval->lexeme = unicode_ident(yyg, yytext); return SYMTOK; } YY_BREAK case 24: YY_RULE_SETUP #line 482 "parser.l" { return directive_tok(yyg, ALL, 0); } YY_BREAK case 25: /* rule 25 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 486 "parser.l" { return directive_tok(yyg, SOME, NESTED); } YY_BREAK case 26: YY_RULE_SETUP #line 490 "parser.l" { return directive_tok(yyg, NONE, 0); } YY_BREAK case 27: YY_RULE_SETUP #line 494 "parser.l" { return directive_tok(yyg, MAYBE, 0); } YY_BREAK case 28: YY_RULE_SETUP #line 498 "parser.l" { return directive_tok(yyg, CASES, 0); } YY_BREAK case 29: /* rule 29 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 502 "parser.l" { return directive_tok(yyg, BLOCK, NESTED); } YY_BREAK case 30: /* rule 30 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 506 "parser.l" { return directive_tok(yyg, CHOOSE, NESTED); } YY_BREAK case 31: /* rule 31 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 510 "parser.l" { return directive_tok(yyg, GATHER, NESTED); } YY_BREAK case 32: YY_RULE_SETUP #line 514 "parser.l" { return directive_tok(yyg, AND, 0); } YY_BREAK case 33: YY_RULE_SETUP #line 518 "parser.l" { return directive_tok(yyg, OR, 0); } YY_BREAK case 34: YY_RULE_SETUP #line 522 "parser.l" { return directive_tok(yyg, END, 0); } YY_BREAK case 35: /* rule 35 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 526 "parser.l" { return directive_tok(yyg, COLLECT, NESTED); } YY_BREAK case 36: /* rule 36 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 530 "parser.l" { return directive_tok(yyg, COLL, NESTED); } YY_BREAK case 37: /* rule 37 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 534 "parser.l" { return directive_tok(yyg, UNTIL, NESTED); } YY_BREAK case 38: /* rule 38 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 538 "parser.l" { return directive_tok(yyg, OUTPUT, NESTED); } YY_BREAK case 39: /* rule 39 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 542 "parser.l" { return directive_tok(yyg, REPEAT, NESTED); } YY_BREAK case 40: /* rule 40 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 546 "parser.l" { return directive_tok(yyg, REP, NESTED); } YY_BREAK case 41: YY_RULE_SETUP #line 550 "parser.l" { return directive_tok(yyg, SINGLE, 0); } YY_BREAK case 42: YY_RULE_SETUP #line 554 "parser.l" { return directive_tok(yyg, FIRST, 0); } YY_BREAK case 43: /* rule 43 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 558 "parser.l" { return directive_tok(yyg, LAST, NESTED); } YY_BREAK case 44: YY_RULE_SETUP #line 562 "parser.l" { return directive_tok(yyg, EMPTY, 0); } YY_BREAK case 45: /* rule 45 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 566 "parser.l" { return directive_tok(yyg, MOD, NESTED); } YY_BREAK case 46: /* rule 46 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 570 "parser.l" { return directive_tok(yyg, MODLAST, NESTED); } YY_BREAK case 47: /* rule 47 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 574 "parser.l" { return directive_tok(yyg, DEFINE, NESTED); } YY_BREAK case 48: YY_RULE_SETUP #line 578 "parser.l" { return directive_tok(yyg, TRY, 0); } YY_BREAK case 49: /* rule 49 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 582 "parser.l" { return directive_tok(yyg, CATCH, NESTED); } YY_BREAK case 50: YY_RULE_SETUP #line 586 "parser.l" { return directive_tok(yyg, FINALLY, 0); } YY_BREAK case 51: /* rule 51 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 590 "parser.l" { return directive_tok(yyg, IF, NESTED); } YY_BREAK case 52: /* rule 52 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_cp - 1); yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 594 "parser.l" { return directive_tok(yyg, ELIF, NESTED); } YY_BREAK case 53: YY_RULE_SETUP #line 598 "parser.l" { return directive_tok(yyg, ELSE, 0); } YY_BREAK case 54: YY_RULE_SETUP #line 602 "parser.l" { yy_push_state(BRACED, yyscanner); yylval->lineno = yyextra->lineno; return yytext[0]; } YY_BREAK case 55: YY_RULE_SETUP #line 608 "parser.l" { yy_push_state(NESTED, yyscanner); yylval->lineno = yyextra->lineno; return yytext[0]; } YY_BREAK case 56: YY_RULE_SETUP #line 614 "parser.l" { yylval->lineno = yyextra->lineno; return (opt_compat && opt_compat <= 248) ? OLD_AT : '@'; } YY_BREAK case 57: YY_RULE_SETUP #line 619 "parser.l" { yylval->chr = '*'; return SPLICE; } YY_BREAK case 58: YY_RULE_SETUP #line 624 "parser.l" { yylval->chr = yytext[0]; return yytext[0]; } YY_BREAK case 59: YY_RULE_SETUP #line 629 "parser.l" { yy_pop_state(yyscanner); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 60: *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 638 "parser.l" { yyerrorf(yyg, lit("cramped floating-point literal: " "space or 0 needed between ~a and dot."), string_own(utf8_dup_from(yytext)), nao); yy_pop_state(yyscanner); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 61: YY_RULE_SETUP #line 653 "parser.l" { yy_pop_state(yyscanner); if (yy_top_state(yyscanner) == INITIAL || yy_top_state(yyscanner) == QSILIT || yy_top_state(yyscanner) == QWLIT) yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 62: YY_RULE_SETUP #line 662 "parser.l" { /* Eat whitespace in directive */ } YY_BREAK case 63: YY_RULE_SETUP #line 666 "parser.l" { yy_push_state(STRLIT, yyscanner); return '"'; } YY_BREAK case 64: YY_RULE_SETUP #line 671 "parser.l" { yy_push_state(CHRLIT, yyscanner); yylval->lineno = yyextra->lineno; return HASH_BACKSLASH; } YY_BREAK case 65: YY_RULE_SETUP #line 677 "parser.l" { yy_push_state(BUFLIT, yyscanner); yylval->lineno = yyextra->lineno; return HASH_B_QUOTE; } YY_BREAK case 66: YY_RULE_SETUP #line 683 "parser.l" { yy_push_state(REGEX, yyscanner); yylval->lineno = yyextra->lineno; return HASH_SLASH; } YY_BREAK case 67: YY_RULE_SETUP #line 689 "parser.l" { yy_push_state(QSILIT, yyscanner); return '`'; } YY_BREAK case 68: YY_RULE_SETUP #line 694 "parser.l" { yy_push_state(WLIT, yyscanner); yylval->lineno = yyextra->lineno; return WORDS; } YY_BREAK case 69: YY_RULE_SETUP #line 700 "parser.l" { yy_push_state(WLIT, yyscanner); yylval->lineno = yyextra->lineno; return WSPLICE; } YY_BREAK case 70: YY_RULE_SETUP #line 706 "parser.l" { yy_push_state(QWLIT, yyscanner); yylval->lineno = yyextra->lineno; return QWORDS; } YY_BREAK case 71: YY_RULE_SETUP #line 712 "parser.l" { yy_push_state(QWLIT, yyscanner); yylval->lineno = yyextra->lineno; return QWSPLICE; } YY_BREAK case 72: YY_RULE_SETUP #line 718 "parser.l" { return '#'; } YY_BREAK case 73: YY_RULE_SETUP #line 722 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_H; } YY_BREAK case 74: YY_RULE_SETUP #line 727 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_S; } YY_BREAK case 75: YY_RULE_SETUP #line 732 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_R; } YY_BREAK case 76: YY_RULE_SETUP #line 737 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_N; } YY_BREAK case 77: YY_RULE_SETUP #line 742 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_T; } YY_BREAK case 78: YY_RULE_SETUP #line 747 "parser.l" { yylval->lineno = yyextra->lineno; yy_push_state(JSON, yyscanner); return HASH_J; } YY_BREAK case 79: YY_RULE_SETUP #line 753 "parser.l" { yylval->lineno = yyextra->lineno; return HASH_SEMI; } YY_BREAK case 80: YY_RULE_SETUP #line 758 "parser.l" { val str = string_own(utf8_dup_from(yytext + 1)); yylval->val = int_str(str, num(10)); return HASH_N_EQUALS; } YY_BREAK case 81: YY_RULE_SETUP #line 764 "parser.l" { val str = string_own(utf8_dup_from(yytext + 1)); yylval->val = int_str(str, num(10)); return HASH_N_HASH; } YY_BREAK case 82: YY_RULE_SETUP #line 770 "parser.l" { yylval->lineno = yyextra->lineno; return (opt_compat && opt_compat <= 185) ? OLD_DOTDOT : DOTDOT; } YY_BREAK case 83: YY_RULE_SETUP #line 775 "parser.l" { yy_pop_state(yyscanner); yylval->lexeme = chk_strdup(L"@"); return TEXT; } YY_BREAK case 84: /* rule 84 can match eol */ YY_RULE_SETUP #line 781 "parser.l" { yyextra->lineno++; } YY_BREAK case 85: YY_RULE_SETUP #line 785 "parser.l" { yy_push_state(REGEX, yyscanner); return '/'; } YY_BREAK case 86: YY_RULE_SETUP #line 790 "parser.l" { yylval->chr = '.'; return CONSDOT; } YY_BREAK case 87: YY_RULE_SETUP #line 795 "parser.l" { yylval->chr = '.'; return LAMBDOT; } YY_BREAK case 88: YY_RULE_SETUP #line 800 "parser.l" { yylval->chr = '.'; return UREFDOT; } YY_BREAK case 89: YY_RULE_SETUP #line 805 "parser.l" { yylval->chr = '.'; return '.'; } YY_BREAK case 90: YY_RULE_SETUP #line 810 "parser.l" { yylval->chr = '.'; return OREFDOT; } YY_BREAK case 91: YY_RULE_SETUP #line 815 "parser.l" { yylval->chr = '.'; return UOREFDOT; } YY_BREAK case 92: /* rule 92 can match eol */ YY_RULE_SETUP #line 820 "parser.l" { if (YYSTATE == SPECIAL) yy_pop_state(yyscanner); /* @\ continuation */ yyextra->lineno++; } YY_BREAK case 93: YY_RULE_SETUP #line 826 "parser.l" { wchar_t lexeme[2]; lexeme[0] = char_esc(yytext[1]); lexeme[1] = 0; yylval->lexeme = chk_strdup(lexeme); yy_pop_state(yyscanner); return TEXT; } YY_BREAK case 94: YY_RULE_SETUP #line 835 "parser.l" { wchar_t lexeme[2]; lexeme[0] = num_esc(yyg, yytext + 1); lexeme[1] = 0; yylval->lexeme = chk_strdup(lexeme); { char lastchar = yytext[yyleng-1]; if (lastchar == ';' && opt_compat && opt_compat <= 109) unput(lastchar); } yy_pop_state(yyscanner); return TEXT; } YY_BREAK case 95: YY_RULE_SETUP #line 851 "parser.l" { yyerrorf(yyg, lit("\\x escape without digits"), nao); } YY_BREAK case 96: YY_RULE_SETUP #line 855 "parser.l" { yyerrorf(yyg, lit("unrecognized escape \\~a"), chr(yytext[1]), nao); } YY_BREAK case 97: YY_RULE_SETUP #line 859 "parser.l" { /* comment */ } YY_BREAK case 98: YY_RULE_SETUP #line 863 "parser.l" { val ch = chr_str(string_utf8(yytext), zero); if (chr_isspace(ch)) yyerrprepf(yyg, lit("unexpected whitespace character #\\x~,02x"), ch, nao); else if (chr_isunisp(ch)) yyerrprepf(yyg, lit("unexpected Unicode space character #\\x~,02x"), ch, nao); else if (chr_iscntrl(ch)) yyerrprepf(yyg, lit("unexpected control character #\\x~,02x"), ch, nao); else yyerrprepf(yyg, lit("unexpected character #\\~a"), ch, nao); return ERRTOK; } YY_BREAK case 99: YY_RULE_SETUP #line 880 "parser.l" { yyerrprepf(yyg, lit("non-UTF-8 byte #x~02x in directive"), num(convert(unsigned char, yytext[0])), nao); return ERRTOK; } YY_BREAK case 100: YY_RULE_SETUP #line 886 "parser.l" { yylval->chr = '/'; return (YYSTATE == SREGEX) ? REGCHAR : '/'; } YY_BREAK case 101: YY_RULE_SETUP #line 891 "parser.l" { yylval->chr = char_esc(yytext[1]); return REGCHAR; } YY_BREAK case 102: YY_RULE_SETUP #line 896 "parser.l" { yylval->chr = num_esc(yyg, yytext + 1); return REGCHAR; } YY_BREAK case 103: YY_RULE_SETUP #line 901 "parser.l" { yylval->chr = yytext[1]; return REGTOKEN; } YY_BREAK case 104: /* rule 104 can match eol */ YY_RULE_SETUP #line 906 "parser.l" { yyextra->lineno++; } YY_BREAK case 105: /* rule 105 can match eol */ YY_RULE_SETUP #line 910 "parser.l" { yyextra->lineno++; yyerrprepf(yyg, lit("newline in regex"), nao); return ERRTOK; } YY_BREAK case 106: /* rule 106 can match eol */ YY_RULE_SETUP #line 916 "parser.l" { yyextra->lineno++; yylval->chr = yytext[0]; return REGCHAR; } YY_BREAK case 107: YY_RULE_SETUP #line 922 "parser.l" { yylval->chr = yytext[0]; return yytext[0]; } YY_BREAK case 108: YY_RULE_SETUP #line 927 "parser.l" { yylval->chr = yytext[1]; return REGCHAR; } YY_BREAK case 109: YY_RULE_SETUP #line 932 "parser.l" { if (opt_compat && opt_compat <= 105) { yylval->chr = yytext[1]; return REGCHAR; } if (yytext[1] == 'x') yyerrprepf(yyg, lit("\\x escape without digits in regex"), nao); else yyerrprepf(yyg, lit("unrecognized escape in regex"), nao); return ERRTOK; } YY_BREAK case 110: YY_RULE_SETUP #line 945 "parser.l" { yyerrprepf(yyg, lit("dangling backslash in regex"), nao); return ERRTOK; } YY_BREAK case 111: YY_RULE_SETUP #line 950 "parser.l" { wchar_t wchr[8]; if (utf8_from_buf(wchr, coerce(unsigned char *, yytext), yyleng) != 2) { yylval->lexeme = chk_strdup(wchr); return TEXT; } yylval->chr = wchr[0]; return REGCHAR; } YY_BREAK case 112: YY_RULE_SETUP #line 960 "parser.l" { yylval->chr = convert(unsigned char, yytext[0]) + 0xDC00; return REGCHAR; } YY_BREAK case 113: YY_RULE_SETUP #line 965 "parser.l" { yylval->lexeme = utf8_dup_from(yytext); return SPACE; } YY_BREAK case 114: YY_RULE_SETUP #line 970 "parser.l" { yylval->lexeme = utf8_dup_from(yytext); return TEXT; } YY_BREAK case 115: /* rule 115 can match eol */ YY_RULE_SETUP #line 975 "parser.l" { yyextra->lineno++; return '\n'; } YY_BREAK case 116: YY_RULE_SETUP #line 980 "parser.l" { yy_push_state(SPECIAL, yyscanner); return '*'; } YY_BREAK case 117: YY_RULE_SETUP #line 985 "parser.l" { yy_push_state(SPECIAL, yyscanner); } YY_BREAK case 118: /* rule 118 can match eol */ YY_RULE_SETUP #line 989 "parser.l" { /* eat whole line comment */ yyextra->lineno++; } YY_BREAK case 119: YY_RULE_SETUP #line 994 "parser.l" { /* comment to end of line */ } YY_BREAK case 120: YY_RULE_SETUP #line 998 "parser.l" { yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 121: YY_RULE_SETUP #line 1003 "parser.l" { yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 122: YY_RULE_SETUP #line 1008 "parser.l" { yylval->chr = char_esc(yytext[1]); return LITCHAR; } YY_BREAK case 123: YY_RULE_SETUP #line 1013 "parser.l" { yylval->chr = char_esc(yytext[1]); return LITCHAR; } YY_BREAK case 124: /* rule 124 can match eol */ YY_RULE_SETUP #line 1018 "parser.l" { yyextra->lineno++; } YY_BREAK case 125: /* rule 125 can match eol */ YY_RULE_SETUP #line 1022 "parser.l" { yyextra->lineno++; if (!opt_compat || opt_compat > 109) return ' '; } YY_BREAK case 126: YY_RULE_SETUP #line 1030 "parser.l" { yylval->chr = num_esc(yyg, yytext+1); return LITCHAR; } YY_BREAK case 127: YY_RULE_SETUP #line 1035 "parser.l" { yyerrorf(yyg, lit("\\x escape without digits"), nao); } YY_BREAK case 128: YY_RULE_SETUP #line 1039 "parser.l" { yyerrorf(yyg, lit("unrecognized escape: \\~a"), chr(yytext[1]), nao); } YY_BREAK case 129: YY_RULE_SETUP #line 1043 "parser.l" { yylval->chr = num_esc(yyg, yytext); return LITCHAR; } YY_BREAK case 130: YY_RULE_SETUP #line 1048 "parser.l" { yylval->lexeme = utf8_dup_from(yytext); return SYMTOK; } YY_BREAK case 131: YY_RULE_SETUP #line 1053 "parser.l" { yylval->lexeme = utf8_dup_from(yytext); return SYMTOK; /* hack */ } YY_BREAK case 132: /* rule 132 can match eol */ YY_RULE_SETUP #line 1058 "parser.l" { yyerrprepf(yyg, lit("newline in string literal"), nao); yyextra->lineno++; yylval->chr = yytext[0]; return ERRTOK; } YY_BREAK case 133: /* rule 133 can match eol */ YY_RULE_SETUP #line 1065 "parser.l" { yyerrprepf(yyg, lit("newline in character literal"), nao); yyextra->lineno++; yylval->chr = yytext[0]; return ERRTOK; } YY_BREAK case 134: /* rule 134 can match eol */ YY_RULE_SETUP #line 1072 "parser.l" { yyerrprepf(yyg, lit("newline in string quasiliteral"), nao); yyextra->lineno++; yylval->chr = yytext[0]; return ERRTOK; } YY_BREAK case 135: /* rule 135 can match eol */ YY_RULE_SETUP #line 1079 "parser.l" { yyextra->lineno++; if (opt_compat && opt_compat <= 109) return ' '; yyerrprepf(yyg, lit("newline in word list literal"), nao); yylval->chr = yytext[0]; return ERRTOK; } YY_BREAK case 136: *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ yyg->yy_c_buf_p = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 1090 "parser.l" { yy_push_state(QSPECIAL, yyscanner); return yytext[0]; } YY_BREAK case 137: YY_RULE_SETUP #line 1095 "parser.l" { yyerrprepf(yyg, lit("malformed @ expression in quasiliteral"), nao); return ERRTOK; } YY_BREAK case 138: YY_RULE_SETUP #line 1100 "parser.l" { return ' '; } YY_BREAK case 139: YY_RULE_SETUP #line 1104 "parser.l" { yy_pop_state(yyscanner); return yytext[0]; } YY_BREAK case 140: YY_RULE_SETUP #line 1109 "parser.l" { yylval->chr = char_esc(yytext[1]); return LITCHAR; } YY_BREAK case 141: YY_RULE_SETUP #line 1114 "parser.l" { wchar_t ch0, ch1; yytext[6] = 0; ch0 = num_esc(yyg, yytext + 1); ch1 = num_esc(yyg, yytext + 7); yylval->chr = ((ch0 - 0xD800) << 10 | (ch1 - 0xDC00)) + 0x10000; return LITCHAR; } YY_BREAK case 142: YY_RULE_SETUP #line 1123 "parser.l" { yylval->chr = num_esc(yyg, yytext + 1); return LITCHAR; } YY_BREAK case 143: YY_RULE_SETUP #line 1128 "parser.l" { yyerrorf(yyg, lit("JSON \\u escape needs four digits"), nao); } YY_BREAK case 144: YY_RULE_SETUP #line 1132 "parser.l" { yyerrorf(yyg, lit("unrecognized JSON escape: \\~a"), chr(yytext[1]), nao); } YY_BREAK case 145: /* rule 145 can match eol */ YY_RULE_SETUP #line 1136 "parser.l" { yyerrprepf(yyg, lit("newline in JSON string"), nao); yyextra->lineno++; yylval->chr = yytext[0]; return ERRTOK; } YY_BREAK case 146: YY_RULE_SETUP #line 1143 "parser.l" { wchar_t wchr[8]; if (utf8_from_buf(wchr, coerce(unsigned char *, yytext), yyleng) != 2) { yylval->lexeme = chk_strdup(wchr); return TEXT; } yylval->chr = wchr[0]; return LITCHAR; } YY_BREAK case 147: YY_RULE_SETUP #line 1153 "parser.l" { yylval->chr = strtol(yytext, 0, 16); return LITCHAR; } YY_BREAK case 148: YY_RULE_SETUP #line 1158 "parser.l" { return '\''; } YY_BREAK case 149: YY_RULE_SETUP #line 1162 "parser.l" { } YY_BREAK case 150: /* rule 150 can match eol */ YY_RULE_SETUP #line 1165 "parser.l" { yyextra->lineno++; } YY_BREAK case 151: YY_RULE_SETUP #line 1169 "parser.l" { yyerrorf(yyg, lit("bad character ~s in buffer literal"), chr(yytext[0]), nao); } YY_BREAK case 152: YY_RULE_SETUP #line 1174 "parser.l" { yylval->chr = convert(unsigned char, yytext[0]) + 0xDC00; return LITCHAR; } YY_BREAK case 153: YY_RULE_SETUP #line 1179 "parser.l" { val str = string_own(utf8_dup_from(yytext)); if ((yylval->val = flo_str(str)) == nil) out_of_range_float(yyg, str); return NUMBER; } YY_BREAK case 154: /* rule 154 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_bp + 4); yyg->yy_c_buf_p = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 1186 "parser.l" { yylval->val = t; return JSKW; } YY_BREAK case 155: /* rule 155 can match eol */ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_bp + 5); yyg->yy_c_buf_p = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 1191 "parser.l" { yylval->val = nil; return JSKW; } YY_BREAK case 156: YY_RULE_SETUP #line 1196 "parser.l" { if (strcmp("true", yytext) == 0) { yylval->val = t; return JSKW; } if (strcmp("false", yytext) == 0) { yylval->val = nil; return JSKW; } { val str = string_own(utf8_dup_from(yytext)); yyerrorf(yyg, lit("unrecognized JSON syntax: ~a"), str, nao); } } YY_BREAK case 157: YY_RULE_SETUP #line 1213 "parser.l" { yy_push_state(JLIT, yyscanner); return yytext[0]; } YY_BREAK case 158: YY_RULE_SETUP #line 1218 "parser.l" { return yytext[0]; } YY_BREAK case 159: /* rule 159 can match eol */ YY_RULE_SETUP #line 1222 "parser.l" { yyextra->lineno++; } YY_BREAK case 160: YY_RULE_SETUP #line 1226 "parser.l" { } YY_BREAK case 161: YY_RULE_SETUP #line 1229 "parser.l" { yyerrorf(yyg, lit("bad character ~s in JSON literal"), chr(yytext[0]), nao); } YY_BREAK case 162: YY_RULE_SETUP #line 1234 "parser.l" { yy_push_state(JLIT, yyscanner); return yytext[0]; } YY_BREAK case 163: YY_RULE_SETUP #line 1239 "parser.l" ECHO; YY_BREAK #line 5869 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(SPECIAL): case YY_STATE_EOF(BRACED): case YY_STATE_EOF(NESTED): case YY_STATE_EOF(REGEX): case YY_STATE_EOF(SREGEX): case YY_STATE_EOF(STRLIT): case YY_STATE_EOF(CHRLIT): case YY_STATE_EOF(QSILIT): case YY_STATE_EOF(QSPECIAL): case YY_STATE_EOF(WLIT): case YY_STATE_EOF(QWLIT): case YY_STATE_EOF(BUFLIT): case YY_STATE_EOF(JSON): case YY_STATE_EOF(JLIT): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->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. */ yyg->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 ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); /* 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 , yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer( yyscanner ) ) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if ( yywrap( yyscanner ) ) { /* 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. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->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 user's declarations */ } /* 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 (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = yyg->yytext_ptr; int number_to_move, i; int ret_val; if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->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 ( yyg->yy_c_buf_p - yyg->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) (yyg->yy_c_buf_p - yyg->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 = yyg->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. */ YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); } 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]), yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if ( yyg->yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin , yyscanner); } 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 ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->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 (yyscan_t yyscanner) { yy_state_type yy_current_state; char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_current_state = yyg->yy_start; yy_current_state += YY_AT_BOL(); yyg->yy_state_ptr = yyg->yy_state_buf; *yyg->yy_state_ptr++ = yy_current_state; for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 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 >= 1643 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; *yyg->yy_state_ptr++ = yy_current_state; } 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 , yyscan_t yyscanner) { int yy_is_jam; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ YY_CHAR yy_c = 1; 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 >= 1643 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 1642); if ( ! yy_is_jam ) *yyg->yy_state_ptr++ = yy_current_state; (void)yyg; return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp , yyscan_t yyscanner) { char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_cp = yyg->yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yyg->yy_hold_char; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = yyg->yy_n_chars + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; yyg->yytext_ptr = yy_bp; yyg->yy_hold_char = *yy_cp; yyg->yy_c_buf_p = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if ( *yyg->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 ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) { 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 , yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( yyscanner ) ) return 0; if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(yyscanner); #else return input(yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner); yy_load_buffer_state( yyscanner ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (yyscanner); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( yyscanner ); /* 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. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void yy_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->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. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); 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( (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); 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 , yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @param yyscanner The scanner object. */ void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 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 , yyscanner ); yyfree( (void *) b , yyscanner ); } /* 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 , yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_flush_buffer( b , yyscanner); 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 = 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. * @param yyscanner The scanner object. */ void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 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( yyscanner ); } /** 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. * @param yyscanner The scanner object. */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (new_buffer == NULL) return; yyensure_buffer_stack(yyscanner); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void yypop_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { yy_load_buffer_state( yyscanner ); yyg->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 (yyscan_t yyscanner) { yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->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; /* After all that talk, this was set to 1 anyways... */ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); yyg->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 * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) { 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 NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (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 = NULL; 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 , yyscanner ); 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 * @param yyscanner The scanner object. * @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 (const char * yystr , yyscan_t yyscanner) { return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner); } /** 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. * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n , yyscanner ); 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 , yyscanner); 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; } static void yy_push_state (int _new_state , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth ) { yy_size_t new_size; yyg->yy_start_stack_depth += YY_START_STACK_INCR; new_size = (yy_size_t) yyg->yy_start_stack_depth * sizeof( int ); if ( ! yyg->yy_start_stack ) yyg->yy_start_stack = (int *) yyalloc( new_size , yyscanner ); else yyg->yy_start_stack = (int *) yyrealloc( (void *) yyg->yy_start_stack, new_size , yyscanner ); if ( ! yyg->yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START; BEGIN(_new_state); } static void yy_pop_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( --yyg->yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]); } static int yy_top_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1]; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; 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] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyextra; } /** Get the current line number. * @param yyscanner The scanner object. */ int yyget_lineno (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (! YY_CURRENT_BUFFER) return 0; return yylineno; } /** Get the current column number. * @param yyscanner The scanner object. */ int yyget_column (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (! YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the input stream. * @param yyscanner The scanner object. */ FILE *yyget_in (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyin; } /** Get the output stream. * @param yyscanner The scanner object. */ FILE *yyget_out (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyout; } /** Get the length of the current token. * @param yyscanner The scanner object. */ int yyget_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; } /** Get the current token. * @param yyscanner The scanner object. */ char *yyget_text (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yytext; } /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyextra = user_defined ; } /** Set the current line number. * @param _line_number line number * @param yyscanner The scanner object. */ void yyset_lineno (int _line_number , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* lineno is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) YY_FATAL_ERROR( "yyset_lineno called with no buffer" ); yylineno = _line_number; } /** Set the current column. * @param _column_no column number * @param yyscanner The scanner object. */ void yyset_column (int _column_no , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) YY_FATAL_ERROR( "yyset_column called with no buffer" ); yycolumn = _column_no; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * @param yyscanner The scanner object. * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyin = _in_str ; } void yyset_out (FILE * _out_str , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyout = _out_str ; } int yyget_debug (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yy_flex_debug; } void yyset_debug (int _bdebug , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_flex_debug = _bdebug ; } /* Accessor methods for yylval and yylloc */ YYSTYPE * yyget_lval (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yylval; } void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yylval = yylval_param; } /* User-visible API */ /* yylex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int yylex_init(yyscan_t* ptr_yy_globals) { if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); return yy_init_globals ( *ptr_yy_globals ); } /* yylex_init_extra has the same functionality as yylex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to yyalloc in * the yyextra field. */ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) { struct yyguts_t dummy_yyguts; yyset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); yyset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals ( *ptr_yy_globals ); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = NULL; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = NULL; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; yyg->yy_state_buf = 0; yyg->yy_state_ptr = 0; yyg->yy_full_match = 0; yyg->yy_lp = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #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 (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(yyscanner); } /* Destroy the stack itself. */ yyfree(yyg->yy_buffer_stack , yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ yyfree( yyg->yy_start_stack , yyscanner ); yyg->yy_start_stack = NULL; yyfree ( yyg->yy_state_buf , yyscanner); yyg->yy_state_buf = 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( yyscanner); /* Destroy the main struct (reentrant only). */ yyfree ( yyscanner , yyscanner ); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s , yyscan_t yyscanner) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; /* 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 realloc(ptr, size); } void yyfree (void * ptr , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 1239 "parser.l" static int directive_tok(scanner_t *yyscanner, int tok, int state) { struct yyguts_t *yyg = convert(struct yyguts_t *, yyscanner); char *pstart = yytext + 1 + strspn(yytext + 1, " \t"); char *pcolon = strchr(pstart, ':'); char *pend = pstart + strspn(pstart, ":-abcdefghijklmnopqrstuvwxyz"); *pend = 0; if (pcolon != 0) { val pkgname = string_utf8((*pcolon = 0, pstart)); val package = if3(pstart[0], find_package(pkgname), keyword_package); if (!package) { yyerrprepf(yyg, lit("package ~a not found"), pkgname, nao); tok = ERRTOK; } if (package != user_package && package != keyword_package) { val sym = string_utf8(pcolon + 1); yyerrprepf(yyg, lit("~a:~a: original usr package expected, not ~a"), pkgname, sym, pkgname, nao); tok = ERRTOK; } } else { val symname = string_utf8(pstart); val sym = intern_fallback(symname, cur_package); val package = symbol_package(sym); if (package != user_package && package != keyword_package) { yyerrprepf(yyg, lit("~a: this is ~a:~a, not usr:~a"), symname, package_name(package), symname, symname, nao); tok = ERRTOK; } } if (state != 0) yy_push_state(state, yyscanner); else yy_pop_state(yyscanner); yylval->lineno = yyextra->lineno; return tok; } void end_of_regex(scanner_t *yyg) { if (YYSTATE != REGEX && YYSTATE != SREGEX) internal_error("end_of_regex called in wrong scanner state"); yy_pop_state(yyg); if (YYSTATE != INITIAL) { if (yy_top_state(yyg) == INITIAL || yy_top_state(yyg) == QSILIT || yy_top_state(yyg) == QWLIT) yy_pop_state(yyg); } } void end_of_char(scanner_t *yyg) { if (YYSTATE != CHRLIT) internal_error("end_of_char called in wrong scanner state"); yy_pop_state(yyg); } void end_of_buflit(scanner_t *yyg) { if (YYSTATE != BUFLIT) internal_error("end_of_buflit called in wrong scanner state"); yy_pop_state(yyg); } void end_of_json(scanner_t *yyg) { if (YYSTATE == JLIT) yy_pop_state(yyg); if (YYSTATE != JSON) internal_error("end_of_json called in wrong scanner state"); yy_pop_state(yyg); } val source_loc(val form) { return gethash(form_to_ln_hash, form); } val source_loc_str(val form, val alt) { cons_bind (line, file, gethash(form_to_ln_hash, form)); if (missingp(alt)) alt = lit("source location n/a"); return if3(line, format(nil, lit("~a:~d"), file, line, nao), alt); } int yylex(YYSTYPE *yylval_param, yyscan_t yyscanner) { struct yyguts_t * yyg = convert(struct yyguts_t *, yyscanner); int yy_char; if (yyextra->tok_idx > 0) { struct yy_token *tok = &yyextra->tok_pushback[--yyextra->tok_idx]; yyextra->recent_tok = *tok; *yylval_param = tok->yy_lval; if (tok->yy_lex_state && tok->yy_lex_state != YYSTATE) yy_push_state(tok->yy_lex_state, yyg); return tok->yy_char; } yy_char = yyextra->recent_tok.yy_char = yylex_impl(yylval_param, yyscanner); yyextra->recent_tok.yy_lval = *yylval_param; yyextra->recent_tok.yy_lex_state = YYSTATE; return yy_char; } void prime_scanner(scanner_t *yyg, enum prime_parser prim) { while (YYSTATE != INITIAL) yy_pop_state(yyg); switch (prim) { case prime_lisp: case prime_interactive: yy_push_state(SPECIAL, yyg); yy_push_state(NESTED, yyg); yy_push_state(NESTED, yyg); break; case prime_regex: yy_push_state(SREGEX, yyg); break; } } void scrub_scanner(scanner_t *yyg, int yy_char, wchar_t *lexeme) { struct yy_token *rtok = &yyextra->recent_tok; if (rtok->yy_char == yy_char && rtok->yy_lval.lexeme == lexeme) { rtok->yy_char = 0; rtok->yy_lval.lexeme = 0; } } void parser_l_init(void) { prot1(&form_to_ln_hash); form_to_ln_hash = make_eq_hash(t, nil); }