#line 3 "" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer codeYY_create_buffer #define yy_delete_buffer codeYY_delete_buffer #define yy_flex_debug codeYY_flex_debug #define yy_init_buffer codeYY_init_buffer #define yy_flush_buffer codeYY_flush_buffer #define yy_load_buffer_state codeYY_load_buffer_state #define yy_switch_to_buffer codeYY_switch_to_buffer #define yyin codeYYin #define yyleng codeYYleng #define yylex codeYYlex #define yylineno codeYYlineno #define yyout codeYYout #define yyrestart codeYYrestart #define yytext codeYYtext #define yywrap codeYYwrap #define yyalloc codeYYalloc #define yyrealloc codeYYrealloc #define yyfree codeYYfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #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; typedef uint64_t flex_uint64_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; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE codeYYrestart(codeYYin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 262144 #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 extern yy_size_t codeYYleng; extern FILE *codeYYin, *codeYYout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up codeYYtext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ yy_size_t 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 codeYYrestart()), so that the user can continue scanning by * just pointing codeYYin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when codeYYtext is formed. */ static char yy_hold_char; static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ yy_size_t codeYYleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow codeYYwrap()'s to do buffer switches * instead of setting up a fresh codeYYin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void codeYYrestart (FILE *input_file ); void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE codeYY_create_buffer (FILE *file,int size ); void codeYY_delete_buffer (YY_BUFFER_STATE b ); void codeYY_flush_buffer (YY_BUFFER_STATE b ); void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer ); void codeYYpop_buffer_state (void ); static void codeYYensure_buffer_stack (void ); static void codeYY_load_buffer_state (void ); static void codeYY_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER codeYY_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE codeYY_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE codeYY_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE codeYY_scan_bytes (yyconst char *bytes,yy_size_t len ); void *codeYYalloc (yy_size_t ); void *codeYYrealloc (void *,yy_size_t ); void codeYYfree (void * ); #define yy_new_buffer codeYY_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ codeYYensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ codeYYensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define codeYYwrap(n) 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *codeYYin = (FILE *) 0, *codeYYout = (FILE *) 0; typedef int yy_state_type; extern int codeYYlineno; int codeYYlineno = 1; extern char *codeYYtext; #define yytext_ptr codeYYtext static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up codeYYtext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ codeYYleng = (yy_size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 201 #define YY_END_OF_BUFFER 202 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_acclist[6524] = { 0, 93, 93, 94, 94,16427, 82, 82, 145, 145, 121, 121, 202, 200, 201, 199, 201, 1, 200, 201, 197, 200, 201, 198, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 93, 200, 201, 96, 200, 201, 93, 197, 200, 201, 93, 198, 200, 201, 93, 200, 201, 93, 200, 201, 200, 201, 93, 200, 201, 93, 200, 201, 94, 200, 201, 97, 200, 201, 94, 197, 200, 201, 94, 198, 200, 201, 94, 200, 201, 94, 200, 201, 94, 200, 201, 94, 200, 201, 103, 106, 200, 201, 107, 199, 201, 1, 103, 106, 200, 201, 105, 106, 200, 201, 103, 106, 197, 200, 201, 103, 106, 198, 200, 201, 103, 106, 200, 201, 103, 106, 200, 201, 103, 106, 200, 201, 103, 106, 200, 201, 23, 24, 200, 201, 199, 201, 1, 23, 24, 200, 201, 23, 24, 197, 200, 201, 23, 24, 198, 200, 201, 23, 200, 201, 23, 24, 200, 201, 23, 200, 201, 23, 24, 200, 201, 23, 200, 201, 166, 200, 201, 166, 200, 201, 1, 166, 200, 201, 166, 197, 200, 201, 166, 198, 200, 201, 200, 201, 200, 201, 166, 200, 201, 166, 200, 201, 200, 201, 169, 172, 200, 201, 171, 199, 201, 1, 170, 172, 200, 201, 169, 172, 197, 200, 201, 169, 172, 198, 200, 201, 169, 172, 200, 201, 169, 172, 200, 201, 169, 172, 200, 201, 169, 172, 200, 201, 169, 172, 200, 201, 176, 179, 200, 201, 178, 199, 201, 1, 176, 179, 200, 201, 176, 179, 197, 200, 201, 176, 179, 198, 200, 201, 179, 200, 201, 176, 179, 200, 201, 176, 179, 200, 201, 176, 179, 200, 201, 176, 179, 200, 201, 72, 200, 201, 91, 200, 201, 200, 201, 92, 200, 201, 197, 200, 201, 72, 198, 200, 201, 200, 201, 9, 72, 200, 201, 115, 200, 201, 9, 72, 200, 201, 112, 200, 201, 72, 200, 201, 134, 200, 201, 108, 200, 201, 109, 200, 201, 110, 200, 201, 200, 201, 8279, 200, 201,16470,16471,16473, 8279, 200, 201, 16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471, 16473, 115, 197, 200, 201, 72, 200, 201, 133, 198, 200, 201, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470, 16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470, 16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470, 16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470,16471,16473, 8279, 200, 201,16470, 16471,16473, 27, 200, 201, 28, 200, 201, 72, 200, 201, 200, 201, 22, 200, 201, 72, 200, 201, 143, 200, 201, 200, 201, 143, 200, 201, 143, 200, 201, 142, 197, 200, 201, 144, 198, 200, 201, 143, 200, 201, 143, 200, 201, 141, 200, 201, 143, 200, 201, 143, 200, 201, 140, 200, 201, 143, 200, 201, 143, 200, 201, 143, 200, 201, 200, 201, 139, 200, 201, 16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 143, 200, 201, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 139, 200, 201,16543, 143, 200, 201, 143, 200, 201, 143, 200, 201, 180, 200, 201, 1, 180, 200, 201, 91, 180, 200, 201, 180, 200, 201, 92, 180, 200, 201, 144, 180, 198, 200, 201, 180, 200, 201, 180, 200, 201, 180, 200, 201, 180, 200, 201, 8306, 200, 201,16497,16498, 8306, 200, 201,16497,16498, 8306, 200, 201,16497,16498, 180, 197, 200, 201, 180, 200, 201, 180, 198, 200, 201, 8306, 200, 201,16497, 16498, 28, 180, 200, 201, 180, 200, 201, 8306, 180, 200, 201,16497,16498, 180, 200, 201, 180, 200, 201, 200, 201, 143, 200, 201, 163, 200, 201, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 139, 200, 201,16545,16546, 200, 201, 92, 200, 201, 155, 200, 201, 157, 200, 201, 157, 200, 201, 157, 200, 201, 157, 200, 201, 156, 200, 201, 200, 201, 200, 201, 31, 200, 201, 41, 200, 201, 30, 200, 201, 33, 34, 200, 201, 33, 34, 200, 201, 44, 200, 201, 200, 201, 200, 201, 200, 201, 42, 200, 201, 36, 200, 201, 200, 201, 8, 199, 201, 200, 201, 9, 200, 201, 37, 200, 201, 200, 201, 40, 200, 201, 40, 200, 201, 40, 200, 201, 40, 200, 201, 40, 200, 201, 200, 201, 200, 201, 51, 197, 200, 201, 54, 200, 201, 200, 201, 47, 200, 201, 48, 200, 201, 200, 201, 46, 200, 201, 200, 201, 46, 200, 201, 46, 200, 201, 200, 201,16427, 22, 200, 201, 200, 201, 52, 197, 200, 201, 53, 198, 200, 201, 49, 200, 201, 50, 200, 201, 200, 201,16405, 1, 200, 201,16405, 197, 200, 201,16405, 198, 200, 201,16405, 200, 201,16405, 200, 201,16405, 200, 201,16405, 200, 201,16405, 77, 200, 201, 78, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 200, 201, 82, 200, 201, 200, 201, 79, 200, 201, 80, 200, 201, 80, 200, 201, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 80, 200, 201, 200, 201, 154, 200, 201, 145, 154, 200, 201, 145, 199, 201, 1, 154, 200, 201, 153, 154, 200, 201, 154, 200, 201, 154, 197, 200, 201, 154, 198, 200, 201, 154, 200, 201, 146, 154, 200, 201, 154, 200, 201, 150, 154, 200, 201, 150, 154, 200, 201, 150, 154, 200, 201, 150, 154, 200, 201, 150, 154, 200, 201, 150, 154, 200, 201, 148, 154, 200, 201, 145, 154, 200, 201, 154, 200, 201, 19, 200, 201, 20, 199, 201, 1, 19, 200, 201, 19, 200, 201, 19, 197, 200, 201, 19, 198, 200, 201, 19, 200, 201, 10, 19, 200, 201, 12, 19, 200, 201, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 18, 19, 200, 201, 19, 200, 201, 19, 200, 201, 19, 200, 201, 11, 19, 197, 200, 201, 17, 18, 19, 200, 201, 19, 200, 201, 16, 19, 198, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 15, 18, 19, 200, 201, 131, 200, 201, 132, 199, 201, 1, 131, 200, 201, 125, 131, 200, 201, 126, 131, 200, 201, 131, 200, 201, 127, 131, 197, 200, 201, 128, 131, 198, 200, 201, 131, 200, 201, 131, 200, 201, 118, 130, 131, 200, 201, 116, 131, 197, 200, 201, 117, 131, 198, 200, 201, 131, 200, 201, 131, 200, 201, 126, 131, 200, 201, 130, 131, 200, 201,16503,16504, 121, 131, 200, 201, 1, 121, 131, 200, 201, 123, 131, 200, 201, 126, 131, 200, 201, 121, 131, 197, 200, 201, 121, 131, 198, 200, 201, 121, 131, 200, 201, 121, 131, 200, 201, 121, 130, 131, 200, 201, 131, 200, 201, 121, 131, 200, 201, 121, 131, 200, 201, 200, 201, 199, 201, 1, 200, 201, 153, 200, 201, 200, 201, 152, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 151, 200, 201, 148, 200, 201, 200, 201, 62, 200, 201, 61, 199, 201, 1, 62, 200, 201, 62, 200, 201, 62, 197, 200, 201, 62, 198, 200, 201, 62, 200, 201, 62, 200, 201, 60, 62, 200, 201, 62, 200, 201, 62, 200, 201, 100, 101, 200, 201, 100, 102, 199, 201, 1, 100, 101, 200, 201, 100, 101, 197, 200, 201, 101, 198, 200, 201, 100, 101, 200, 201, 100, 101, 200, 201, 100, 101, 198, 200, 201, 100, 101, 200, 201, 100, 101, 200, 201, 194, 196, 195, 194, 196, 93, 93, 95, 194, 93, 95, 196, 96, 195, 98, 93, 93, 93, 95, 194, 93, 95, 196, 94, 94, 95, 194, 94, 95, 196, 94, 195, 94, 94, 94, 95, 194, 94, 95, 196, 103, 104, 103, 194, 103, 196, 103, 103, 103, 194, 103, 196, 24, 182, 26, 196, 24, 195, 25, 24, 26, 196, 166, 166, 167, 165, 194, 165, 196, 166, 195, 166, 165, 194, 165, 196, 169, 169, 169, 194, 169, 196, 169, 195, 168, 169, 169, 169, 194, 169, 196, 176, 175, 177, 194, 176, 177, 196, 176, 195, 176, 176, 177, 194, 176, 177, 196, 8279,16470,16471,16473, 8279,16470,16471,16473, 71, 112, 134, 8279, 8281, 8278, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8262, 8279, 16452,16454,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8265, 8279,16457,16470,16471,16473, 8262, 8279,16452, 16454,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 22, 143, 139,16543, 139,16543, 143, 144, 143, 143, 143, 158, 8351, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 67, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 8306,16497,16498, 8306, 8305, 8306,16497,16498, 8306,16497,16498, 8306,16497,16498, 8306,16497,16498, 139, 16545,16546, 163, 8353, 8354, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 157, 157, 157, 157, 41, 44, 33, 34, 31, 41, 33, 34, 33, 34, 44, 42, 36, 36, 40, 40, 40, 40, 40, 40, 46, 46, 46, 46, 46,16427, 22, 8235, 8235,16405, 8213, 194,16405, 196,16405, 8213, 195,16405, 16405, 194,16405, 196,16405, 8265,16457, 80, 82, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 145, 148, 145, 150, 150, 150, 150, 150, 150, 150, 145, 18, 18, 18, 18, 18, 18, 18, 18, 8265,16457, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 18, 17, 18, 13, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 14, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 118, 130, 125, 195, 118, 130, 130,16503,16504, 130, 16503,16504, 8312, 8311, 121, 130, 121, 194, 121, 196, 129, 195, 121, 130, 122, 121, 121, 121, 194, 121, 196, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 60, 60, 100, 100, 100, 99, 100, 194, 100, 196, 100, 195, 100, 100, 100, 194, 100, 196, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 174, 176, 176, 176, 176, 8279, 16470,16471,16473, 111, 111, 8280,16472, 135, 8277,16469, 8279,16470,16471,16473, 8279,16470,16471,16473, 90, 8279, 8279,16470,16471,16473,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449, 16450,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 69, 69, 8262, 8279, 69, 8260, 69, 8281, 69, 8278, 69, 69, 69, 8279,16470,16471, 16473, 69, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8262, 8279,16452,16454,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8265, 8279, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8265, 8279,16457,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279, 8279,16470, 16471,16473, 139,16543,16544, 139, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 138, 138, 138, 158, 138, 138, 8351, 138, 138, 139,16543, 138, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 137, 137, 137, 158, 137, 137, 8351, 137, 137, 137, 139,16543, 139,16543, 67, 67, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543,16497, 8306, 8306,16497,16498, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 138, 138, 138, 8353, 138, 138, 8354, 139,16545, 16546, 138, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 137, 137, 137, 8353, 137, 137, 8354, 137, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 34, 33, 34, 36, 40, 40, 40, 40, 46, 46, 46, 46, 8235, 8235, 8235,16405,16405,16405,16405,16405,16405,16405, 16405,16405,16405,16405, 8265, 8277,16469, 80, 80, 80, 80, 80, 137, 137, 137, 137, 137, 80, 137, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 150, 150, 150, 149, 150, 150, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 124, 130, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 151, 151, 151, 151, 151, 137, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 100, 100, 99, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 192, 193, 188, 191, 192, 186, 187, 188, 93, 192, 93, 93, 193, 93, 93, 93, 93, 93, 191, 192, 93, 186, 93, 93, 94, 192, 94, 94, 193, 94, 94, 94, 94, 94, 191, 192, 94, 186, 94, 94, 103, 192, 103, 103, 193, 103, 103, 103, 103, 103, 191, 192, 103, 186, 103, 103, 164, 193, 169, 192, 169, 169, 192, 169, 193, 169, 169, 169, 169, 169, 169, 191, 192, 169, 191, 192, 169, 186, 169, 169, 169, 174, 176, 176, 176, 176, 8279,16470,16471,16473, 8280, 29, 8257,16449,16450, 8262,16452,16454, 8277, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8277,16469,16473,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 64, 64, 8257, 8279, 64, 64, 8258, 8281, 64, 8278, 64, 64, 64, 64, 8279,16470,16471,16473, 8265, 8279,16457,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8262, 8279, 8260, 8281, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 69, 8262, 8279, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8257, 8279,16449,16450,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 139,16543,16544, 8352, 139, 139,16543, 139, 16543, 139,16543, 136, 136, 136, 158, 136, 136, 8351, 136, 136, 136, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 138, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543,16497,16497, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 136, 136, 136, 8353, 136, 136, 8354, 136, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 138, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 35, 33, 34, 33, 34, 36, 29, 40, 40, 40, 40, 46, 46, 46, 46, 8235, 8235, 8235, 192,16405, 8213, 192,16405, 193,16405, 16405,16405, 8213,16405,16405, 191, 192,16405, 8213, 191, 192, 186,16405,16405, 8213,16405, 8265,16457, 80, 8277, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 150, 150, 150, 150, 18, 8265,16457, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 124, 121, 192, 121, 121, 193, 121, 121, 121, 121, 121, 191, 192, 121, 186, 121, 121, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 60, 100, 100, 100, 100, 99, 100, 192, 100, 100, 193, 100, 100, 100, 188, 100, 100, 100, 191, 192, 100, 186, 100, 100, 187, 188, 100, 190, 184, 181, 191, 187, 185, 93, 93, 191, 93, 93, 94, 94, 191, 94, 94, 103, 103, 191, 103, 103, 190, 182, 190, 184, 181, 182, 169, 168, 188, 169, 191, 169, 191, 169, 169, 168, 187, 188, 169, 169, 176, 176, 8279,16470,16471,16473, 64, 8257, 64, 64, 8258, 69, 8262, 69, 8260, 69,16473, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8277, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8257, 8279, 8258, 8281, 8279,16470,16471, 16473, 8257, 8279,16449,16450,16470,16471,16473, 8257, 8279, 16449,16450,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 64, 8257, 8279, 8197, 8279, 16389,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 64, 63, 64, 8262, 8279, 16452,16454,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8257, 8279,16449,16450,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 139,16543, 139, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 136, 63, 136, 8351, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543,16497, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 33, 33, 34, 40, 40, 40, 40, 46, 46, 46, 46, 8235, 8235, 8235,16405, 191,16405, 8213, 191,16405, 8213,16405, 8213, 76, 80, 80, 80, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 150,16531, 150, 150, 150, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 15, 18, 121, 121, 191, 121, 121, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 60, 100, 190, 100, 184, 100, 100, 181, 100, 99, 100, 100, 191, 100, 100, 187, 100, 100, 185, 183, 93, 94, 103, 182, 183, 169, 168, 187, 168, 185, 63, 8257,16449,16450, 8257, 8258, 8262, 8260, 8277,16469,16473, 8277,16469,16473,16473, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 6, 64, 8257, 8279, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8257, 8279, 8197, 8279, 8197, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449, 16450,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 64, 8257, 8279, 64, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 63, 8351, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 33, 34, 40, 40, 40, 40, 16423, 46, 46, 45, 46, 46, 8235, 8235, 8235,16405, 8277,16469, 80, 81, 80, 80, 80, 80, 8339, 150, 150, 150, 150, 150, 150, 150, 18, 18, 18, 18, 15, 18, 15, 18, 15, 18, 15, 18, 121, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 100, 100, 100, 100, 183, 99, 100, 93, 94, 103, 169, 173, 63, 8277, 8277,16469,16473, 8277,16469,16473,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8277,16469, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 6, 8257, 8279, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8257, 8279,16449,16450,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8257, 8265, 8279,16449,16450,16457,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 64, 8257, 8279, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8257, 8279, 8279,16470,16471,16473, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16543, 139,16543, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139, 16545,16546, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 139,16545,16546, 33, 34, 40, 38, 40, 40, 8231, 45, 46, 8235, 8235, 8235, 45,16405, 8277,16469, 80, 80, 150, 150, 150, 150, 150, 150, 150, 18, 15, 18, 121, 151, 151, 151, 151, 100, 99, 100, 93, 93, 94, 94, 103, 103, 169, 169, 169, 174,16468, 8277,16469,16473,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8277, 8277,16469,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 58, 64, 58, 64, 8257, 8279, 58, 64, 58, 64, 8258, 8281, 58, 64, 8278, 58, 64, 58, 64, 58, 64, 58, 8279,16470,16471,16473, 58, 64, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 64, 8257, 8265, 8279, 8257, 8279, 16449,16450,16470,16471,16473, 7, 8279, 7, 8279, 8279, 16470,16471,16473, 8257, 8279, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8257, 8279,16449, 16450,16470,16471,16473, 8279,16470,16471,16473, 2, 139, 16543, 139,16543, 139,16543, 136, 137, 136, 137, 136, 137, 158, 136, 137, 136, 137, 8351, 136, 137, 136, 137, 136, 137, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16543, 139,16545,16546, 136, 137, 136, 137, 136, 137, 8353, 136, 137, 136, 137, 8354, 136, 137, 139,16545,16546, 139,16545,16546, 139,16545, 16546, 139,16545,16546, 33, 34, 40, 46, 8235,16405, 8213,16405, 58, 150, 150, 150, 150, 150, 121, 121, 99, 100, 100, 93, 94, 103, 169, 8276,16468,16468, 8257,16449,16450, 8277,16469,16473,16473, 8279,16470,16471, 16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8257, 8279, 74, 8277,16469, 8279,16470, 16471,16473, 8257, 8265, 8279, 64, 64, 8257, 8279, 64, 56, 64, 8258, 8281, 64, 8278, 64, 64, 64, 64, 8279,16470,16471,16473, 4, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 58, 64, 8257, 8279, 58, 64, 139,16543, 139,16543, 139,16543, 139, 16543, 139,16543, 139,16545,16546, 33, 34, 40, 8235, 16405, 150, 150, 150, 150, 150, 121, 99, 100, 189, 93, 189, 94, 189, 103, 189, 169, 189,16468, 3, 64, 8257, 3, 64, 8277,16469,16473,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471,16473, 74, 8277,16469, 74, 8277, 6, 8279, 57, 8257, 8279, 57, 8258, 8281, 8278, 57, 8258, 8281, 57, 8277,16469, 8279,16470,16471,16473, 8279, 57, 8281, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8257, 8279, 75, 8277,16469, 139,16543, 139,16543, 139,16543, 139,16543, 139,16543, 139,16545,16546, 33, 34, 189,16405, 150, 150, 150, 150, 150, 121, 189, 99, 100, 189, 189, 93, 189, 94, 189, 103, 189, 169, 189, 3, 8257, 3, 8277,16469,16473,16473, 8279, 56, 8281, 8279,16470, 16471,16473, 83, 8279,16470,16471,16473, 74, 8277, 8277, 16469, 55, 8277,16473, 8279,16470,16471,16473, 8279,16470, 16471,16473, 8279,16470,16471,16473, 75, 8277,16469, 75, 8277, 83, 139,16543, 139,16543, 139,16543, 139,16545, 16546, 189,16405,16531, 150, 150, 121, 189, 99, 100, 189, 8277,16469,16473,16473, 57, 8281, 8279,16470,16471, 16473, 8277,16473,16473,16473, 8279, 8279,16470,16471,16473, 8279,16470,16471,16473, 75, 8277, 139,16543, 150, 150, 99, 8277,16469,16473,16473, 8279,16470,16471,16473, 8277, 16469,16473,16473, 8279,16470,16471,16473, 139,16543, 32, 35, 99, 8277, 8277,16469,16473, 8279,16470,16471,16473, 8277,16469, 8277, 6, 8279,16470,16471,16473, 139,16543, 32, 99, 8279,16470,16471,16473, 8277,16469, 8279,16470, 16471,16473, 139,16543, 99, 8279,16470,16471,16473, 59, 99, 8279,16470,16471,16473, 99, 8279,16470,16471,16473, 99, 8279,16470,16471,16473, 8279,16470,16471,16473, 8279, 16470,16471,16473, 8279,16470,16471,16473, 8279,16470,16471, 16473, 6, 8279 } ; static yyconst flex_int16_t yy_accept[3493] = { 0, 1, 1, 1, 2, 3, 4, 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, 6, 6, 6, 6, 6, 6, 6, 7, 8, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 12, 12, 12, 12, 12, 12, 13, 15, 17, 20, 23, 26, 28, 30, 32, 34, 37, 40, 44, 48, 51, 54, 56, 59, 62, 65, 68, 72, 76, 79, 82, 85, 88, 92, 95, 100, 104, 109, 114, 118, 122, 126, 130, 134, 136, 141, 146, 151, 154, 158, 161, 165, 168, 171, 174, 178, 182, 186, 188, 190, 193, 196, 198, 202, 205, 210, 215, 220, 224, 228, 232, 236, 240, 244, 247, 252, 257, 262, 265, 269, 273, 277, 281, 284, 287, 289, 292, 295, 299, 301, 305, 308, 312, 315, 318, 321, 324, 327, 330, 332, 338, 344, 350, 356, 362, 366, 369, 373, 379, 385, 391, 397, 403, 409, 415, 421, 427, 433, 439, 445, 451, 457, 463, 469, 475, 481, 487, 493, 496, 499, 502, 504, 507, 510, 513, 515, 518, 521, 525, 529, 532, 535, 538, 541, 544, 547, 550, 553, 556, 558, 562, 566, 570, 574, 577, 581, 585, 589, 593, 597, 601, 605, 609, 613, 617, 621, 625, 629, 633, 637, 641, 645, 649, 653, 657, 660, 663, 666, 669, 673, 677, 680, 684, 689, 692, 695, 698, 701, 706, 711, 716, 720, 723, 727, 732, 736, 739, 745, 748, 751, 753, 756, 759, 764, 769, 774, 779, 784, 789, 794, 799, 804, 809, 814, 819, 824, 829, 834, 839, 844, 849, 854, 859, 864, 869, 874, 879, 881, 884, 887, 890, 893, 896, 899, 902, 904, 906, 909, 912, 915, 919, 923, 926, 928, 930, 932, 935, 938, 940, 943, 945, 948, 951, 953, 956, 959, 962, 965, 968, 970, 972, 976, 979, 981, 984, 987, 989, 992, 994, 997, 1000, 1003, 1006, 1008, 1012, 1016, 1019, 1022, 1025, 1029, 1033, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1090, 1092, 1095, 1098, 1101, 1103, 1106, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, 1133, 1136, 1139, 1141, 1144, 1148, 1151, 1155, 1159, 1162, 1166, 1170, 1173, 1177, 1180, 1184, 1188, 1192, 1196, 1200, 1204, 1208, 1212, 1215, 1218, 1221, 1225, 1228, 1232, 1236, 1239, 1243, 1247, 1250, 1254, 1258, 1262, 1266, 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306, 1309, 1312, 1315, 1320, 1325, 1328, 1333, 1338, 1343, 1348, 1353, 1358, 1363, 1368, 1373, 1378, 1383, 1388, 1393, 1398, 1403, 1406, 1409, 1413, 1417, 1421, 1424, 1429, 1434, 1437, 1440, 1445, 1450, 1455, 1458, 1461, 1465, 1471, 1475, 1480, 1484, 1488, 1493, 1498, 1502, 1506, 1511, 1514, 1518, 1522, 1524, 1526, 1529, 1532, 1534, 1537, 1540, 1543, 1546, 1549, 1552, 1555, 1558, 1561, 1564, 1567, 1570, 1573, 1576, 1579, 1582, 1584, 1587, 1590, 1594, 1597, 1601, 1605, 1608, 1611, 1615, 1618, 1621, 1625, 1629, 1634, 1639, 1643, 1647, 1651, 1656, 1660, 1664, 1664, 1664, 1665, 1666, 1667, 1667, 1667, 1668, 1669, 1670, 1673, 1676, 1678, 1679, 1680, 1681, 1684, 1687, 1688, 1691, 1694, 1696, 1697, 1698, 1701, 1704, 1705, 1706, 1708, 1710, 1711, 1712, 1714, 1716, 1717, 1717, 1717, 1718, 1718, 1720, 1722, 1723, 1723, 1724, 1726, 1727, 1728, 1728, 1729, 1731, 1733, 1735, 1736, 1738, 1740, 1741, 1742, 1744, 1746, 1748, 1749, 1749, 1750, 1751, 1753, 1755, 1756, 1757, 1759, 1762, 1764, 1765, 1766, 1768, 1771, 1775, 1779, 1779, 1779, 1779, 1779, 1779, 1780, 1781, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1783, 1783, 1784, 1785, 1789, 1789, 1789, 1789, 1793, 1797, 1797, 1801, 1801, 1801, 1801, 1805, 1805, 1805, 1809, 1813, 1817, 1821, 1825, 1829, 1833, 1837, 1841, 1845, 1849, 1856, 1860, 1864, 1868, 1872, 1876, 1880, 1884, 1888, 1892, 1896, 1900, 1904, 1908, 1912, 1918, 1925, 1929, 1933, 1937, 1941, 1945, 1949, 1953, 1957, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, 1993, 1997, 2001, 2005, 2009, 2013, 2017, 2021, 2025, 2029, 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2061, 2061, 2061, 2065, 2065, 2066, 2066, 2066, 2067, 2069, 2071, 2072, 2072, 2072, 2072, 2073, 2074, 2075, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2077, 2077, 2078, 2080, 2080, 2080, 2082, 2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098, 2100, 2102, 2104, 2106, 2108, 2110, 2112, 2114, 2116, 2118, 2120, 2122, 2124, 2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173, 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189, 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2206, 2206, 2207, 2207, 2208, 2211, 2211, 2211, 2211, 2214, 2214, 2214, 2214, 2214, 2214, 2217, 2217, 2217, 2220, 2223, 2224, 2224, 2224, 2225, 2225, 2226, 2229, 2232, 2235, 2238, 2241, 2244, 2247, 2250, 2253, 2256, 2259, 2262, 2265, 2268, 2271, 2274, 2277, 2280, 2283, 2286, 2289, 2292, 2295, 2298, 2301, 2304, 2307, 2310, 2313, 2316, 2319, 2322, 2325, 2328, 2331, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, 2394, 2397, 2400, 2403, 2406, 2409, 2410, 2411, 2412, 2413, 2413, 2414, 2415, 2417, 2418, 2419, 2419, 2419, 2421, 2421, 2421, 2423, 2424, 2424, 2424, 2425, 2426, 2426, 2427, 2427, 2428, 2428, 2429, 2430, 2431, 2432, 2433, 2433, 2434, 2434, 2434, 2435, 2435, 2435, 2435, 2436, 2437, 2438, 2439, 2440, 2440, 2440, 2441, 2442, 2443, 2444, 2446, 2448, 2450, 2451, 2452, 2454, 2456, 2456, 2456, 2456, 2456, 2456, 2456, 2456, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2458, 2459, 2460, 2460, 2460, 2460, 2461, 2461, 2461, 2461, 2462, 2462, 2462, 2462, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2478, 2478, 2478, 2479, 2479, 2479, 2479, 2479, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2511, 2511, 2513, 2514, 2516, 2518, 2520, 2522, 2524, 2526, 2528, 2531, 2533, 2535, 2537, 2539, 2541, 2543, 2545, 2547, 2549, 2551, 2553, 2553, 2553, 2555, 2557, 2560, 2560, 2563, 2564, 2565, 2566, 2567, 2569, 2571, 2573, 2575, 2576, 2577, 2578, 2580, 2582, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2603, 2604, 2605, 2605, 2606, 2607, 2608, 2608, 2609, 2611, 2613, 2615, 2616, 2617, 2619, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2654, 2654, 2654, 2654, 2654, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2665, 2666, 2667, 2668, 2669, 2670, 2674, 2675, 2676, 2676, 2676, 2676, 2678, 2678, 2678, 2678, 2678, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2679, 2681, 2681, 2681, 2685, 2689, 2689, 2690, 2691, 2691, 2695, 2695, 2695, 2695, 2695, 2695, 2696, 2696, 2700, 2704, 2708, 2715, 2719, 2723, 2727, 2731, 2735, 2739, 2743, 2747, 2751, 2755, 2756, 2759, 2760, 2763, 2765, 2766, 2767, 2768, 2772, 2777, 2781, 2785, 2789, 2793, 2797, 2801, 2805, 2809, 2813, 2820, 2824, 2828, 2832, 2836, 2840, 2844, 2846, 2850, 2854, 2860, 2864, 2868, 2872, 2876, 2880, 2884, 2888, 2892, 2896, 2900, 2904, 2908, 2912, 2916, 2920, 2924, 2928, 2932, 2936, 2940, 2944, 2948, 2952, 2956, 2960, 2964, 2968, 2972, 2976, 2980, 2984, 2988, 2992, 2996, 3000, 3004, 3008, 3012, 3016, 3020, 3024, 3028, 3029, 3029, 3033, 3033, 3033, 3035, 3035, 3035, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3036, 3037, 3039, 3041, 3043, 3045, 3047, 3049, 3051, 3053, 3055, 3057, 3059, 3061, 3063, 3065, 3066, 3067, 3069, 3070, 3072, 3073, 3074, 3076, 3079, 3081, 3083, 3085, 3087, 3089, 3091, 3093, 3095, 3097, 3099, 3101, 3103, 3105, 3107, 3109, 3110, 3111, 3113, 3114, 3116, 3117, 3118, 3121, 3123, 3124, 3125, 3127, 3129, 3131, 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147, 3149, 3151, 3153, 3155, 3157, 3159, 3161, 3163, 3165, 3167, 3169, 3171, 3173, 3175, 3177, 3179, 3181, 3183, 3185, 3187, 3189, 3191, 3193, 3195, 3197, 3199, 3201, 3203, 3205, 3205, 3205, 3205, 3205, 3205, 3206, 3206, 3207, 3207, 3210, 3213, 3216, 3219, 3222, 3225, 3228, 3231, 3234, 3237, 3240, 3243, 3246, 3249, 3252, 3253, 3254, 3256, 3257, 3259, 3262, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, 3293, 3296, 3299, 3302, 3305, 3308, 3309, 3310, 3312, 3313, 3315, 3319, 3322, 3325, 3328, 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364, 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, 3439, 3439, 3439, 3439, 3439, 3440, 3442, 3442, 3443, 3443, 3444, 3445, 3446, 3447, 3447, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3468, 3468, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3492, 3493, 3494, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3513, 3515, 3517, 3519, 3521, 3523, 3525, 3527, 3529, 3531, 3533, 3535, 3537, 3539, 3539, 3540, 3540, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3572, 3573, 3574, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3586, 3586, 3586, 3586, 3587, 3587, 3588, 3588, 3588, 3589, 3589, 3589, 3591, 3592, 3592, 3594, 3594, 3596, 3597, 3599, 3600, 3601, 3602, 3603, 3606, 3608, 3609, 3610, 3612, 3613, 3615, 3616, 3617, 3618, 3619, 3622, 3624, 3625, 3626, 3628, 3629, 3631, 3632, 3633, 3634, 3635, 3638, 3640, 3641, 3642, 3642, 3642, 3642, 3642, 3642, 3644, 3646, 3647, 3649, 3651, 3652, 3653, 3654, 3655, 3656, 3659, 3662, 3664, 3665, 3666, 3667, 3667, 3668, 3668, 3669, 3670, 3671, 3672, 3676, 3676, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3684, 3684, 3685, 3685, 3685, 3685, 3689, 3693, 3693, 3693, 3693, 3695, 3695, 3695, 3696, 3696, 3696, 3696, 3697, 3701, 3705, 3709, 3710, 3713, 3714, 3717, 3719, 3720, 3721, 3722, 3727, 3733, 3737, 3741, 3745, 3749, 3753, 3757, 3761, 3763, 3763, 3765, 3769, 3773, 3780, 3784, 3788, 3792, 3796, 3800, 3804, 3807, 3811, 3815, 3819, 3823, 3827, 3831, 3835, 3839, 3843, 3847, 3851, 3855, 3859, 3863, 3867, 3871, 3875, 3879, 3883, 3887, 3891, 3895, 3899, 3900, 3904, 3908, 3912, 3916, 3920, 3924, 3928, 3932, 3936, 3940, 3944, 3948, 3952, 3959, 3963, 3967, 3971, 3975, 3979, 3983, 3987, 3991, 3995, 3999, 4003, 4003, 4003, 4005, 4006, 4006, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4008, 4010, 4012, 4014, 4015, 4016, 4018, 4019, 4021, 4022, 4023, 4026, 4028, 4030, 4032, 4034, 4036, 4038, 4040, 4042, 4044, 4046, 4048, 4050, 4052, 4054, 4056, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095, 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, 4133, 4135, 4137, 4139, 4141, 4143, 4145, 4145, 4145, 4146, 4146, 4146, 4147, 4150, 4153, 4156, 4157, 4158, 4160, 4161, 4163, 4167, 4170, 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, 4197, 4200, 4203, 4206, 4209, 4210, 4213, 4216, 4219, 4222, 4225, 4228, 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264, 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300, 4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336, 4337, 4337, 4337, 4338, 4339, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4347, 4347, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4356, 4358, 4359, 4361, 4362, 4363, 4364, 4365, 4366, 4369, 4372, 4374, 4375, 4376, 4377, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4380, 4381, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4394, 4394, 4394, 4394, 4395, 4396, 4397, 4398, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4414, 4416, 4418, 4420, 4422, 4424, 4426, 4428, 4430, 4432, 4434, 4434, 4435, 4435, 4437, 4438, 4440, 4441, 4442, 4443, 4444, 4447, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4466, 4467, 4468, 4469, 4470, 4471, 4471, 4472, 4474, 4475, 4477, 4478, 4479, 4481, 4482, 4483, 4486, 4488, 4489, 4492, 4493, 4494, 4495, 4495, 4496, 4496, 4496, 4497, 4497, 4498, 4498, 4499, 4500, 4502, 4503, 4504, 4505, 4507, 4508, 4509, 4510, 4512, 4513, 4514, 4515, 4517, 4518, 4518, 4520, 4520, 4521, 4523, 4523, 4525, 4527, 4528, 4529, 4532, 4532, 4533, 4534, 4534, 4534, 4535, 4536, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4542, 4543, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4545, 4547, 4548, 4550, 4550, 4550, 4550, 4550, 4551, 4552, 4556, 4560, 4560, 4560, 4561, 4561, 4561, 4561, 4562, 4566, 4570, 4574, 4576, 4576, 4578, 4582, 4589, 4596, 4600, 4604, 4608, 4612, 4616, 4619, 4625, 4629, 4633, 4640, 4640, 4644, 4648, 4652, 4656, 4660, 4664, 4668, 4672, 4676, 4680, 4684, 4688, 4692, 4696, 4700, 4704, 4708, 4712, 4716, 4720, 4724, 4724, 4724, 4728, 4732, 4736, 4740, 4744, 4748, 4752, 4756, 4760, 4764, 4768, 4772, 4776, 4777, 4779, 4786, 4790, 4794, 4798, 4802, 4806, 4813, 4817, 4821, 4825, 4825, 4825, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4828, 4830, 4832, 4834, 4836, 4838, 4840, 4842, 4844, 4846, 4848, 4850, 4852, 4854, 4854, 4856, 4858, 4860, 4862, 4864, 4866, 4868, 4870, 4872, 4874, 4876, 4878, 4880, 4882, 4884, 4886, 4888, 4890, 4892, 4894, 4896, 4898, 4900, 4902, 4904, 4906, 4908, 4910, 4912, 4914, 4916, 4917, 4920, 4922, 4924, 4926, 4928, 4930, 4932, 4934, 4936, 4938, 4939, 4942, 4945, 4948, 4951, 4954, 4957, 4960, 4963, 4966, 4969, 4972, 4975, 4978, 4981, 4984, 4987, 4990, 4993, 4996, 4999, 5002, 5005, 5008, 5011, 5014, 5017, 5020, 5023, 5026, 5029, 5032, 5035, 5038, 5041, 5044, 5047, 5050, 5053, 5056, 5059, 5062, 5065, 5068, 5071, 5074, 5077, 5080, 5083, 5086, 5089, 5090, 5092, 5093, 5094, 5095, 5096, 5096, 5096, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5106, 5108, 5109, 5110, 5111, 5112, 5112, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5114, 5114, 5115, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5126, 5126, 5126, 5126, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5142, 5144, 5146, 5148, 5150, 5152, 5154, 5156, 5158, 5158, 5158, 5159, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5179, 5181, 5182, 5184, 5185, 5185, 5186, 5187, 5189, 5190, 5192, 5193, 5195, 5195, 5195, 5195, 5196, 5196, 5197, 5198, 5199, 5199, 5201, 5202, 5204, 5204, 5206, 5206, 5206, 5206, 5206, 5206, 5207, 5207, 5210, 5211, 5211, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5212, 5213, 5213, 5214, 5214, 5217, 5220, 5220, 5221, 5221, 5222, 5226, 5230, 5230, 5230, 5234, 5238, 5242, 5246, 5250, 5254, 5258, 5262, 5266, 5268, 5270, 5271, 5275, 5279, 5279, 5283, 5287, 5291, 5295, 5299, 5303, 5307, 5311, 5315, 5319, 5323, 5327, 5331, 5335, 5339, 5343, 5350, 5350, 5350, 5354, 5358, 5365, 5369, 5373, 5377, 5381, 5385, 5389, 5392, 5393, 5397, 5401, 5405, 5405, 5405, 5405, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5409, 5411, 5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, 5427, 5429, 5431, 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, 5465, 5467, 5469, 5471, 5473, 5475, 5478, 5481, 5484, 5487, 5490, 5493, 5496, 5499, 5502, 5505, 5508, 5511, 5514, 5517, 5520, 5523, 5526, 5529, 5532, 5535, 5538, 5541, 5544, 5547, 5550, 5553, 5556, 5559, 5562, 5565, 5567, 5568, 5569, 5570, 5572, 5572, 5572, 5572, 5573, 5574, 5576, 5577, 5578, 5579, 5580, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5589, 5589, 5589, 5589, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5603, 5605, 5607, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5625, 5625, 5626, 5627, 5627, 5627, 5628, 5629, 5630, 5631, 5632, 5632, 5632, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5634, 5637, 5640, 5641, 5645, 5649, 5649, 5649, 5652, 5656, 5660, 5663, 5667, 5671, 5675, 5679, 5679, 5683, 5690, 5694, 5698, 5702, 5711, 5715, 5719, 5723, 5727, 5731, 5735, 5738, 5738, 5738, 5742, 5746, 5750, 5754, 5758, 5762, 5766, 5770, 5772, 5772, 5772, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5778, 5780, 5782, 5784, 5786, 5788, 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, 5820, 5823, 5826, 5829, 5832, 5835, 5838, 5841, 5844, 5847, 5850, 5853, 5856, 5859, 5862, 5865, 5868, 5871, 5874, 5876, 5877, 5879, 5880, 5880, 5881, 5881, 5881, 5882, 5883, 5884, 5885, 5887, 5888, 5888, 5888, 5888, 5888, 5890, 5891, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5902, 5903, 5904, 5905, 5906, 5907, 5908, 5908, 5909, 5910, 5910, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5917, 5918, 5919, 5919, 5919, 5920, 5920, 5920, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5924, 5925, 5929, 5933, 5933, 5934, 5937, 5941, 5945, 5947, 5951, 5953, 5957, 5960, 5962, 5964, 5966, 5971, 5977, 5981, 5985, 5989, 5996, 5998, 5999, 6000, 6004, 6006, 6006, 6006, 6006, 6006, 6006, 6006, 6010, 6014, 6018, 6025, 6029, 6029, 6029, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6032, 6034, 6036, 6038, 6040, 6043, 6045, 6048, 6050, 6052, 6056, 6058, 6060, 6062, 6064, 6066, 6069, 6071, 6073, 6076, 6078, 6081, 6086, 6089, 6092, 6095, 6097, 6098, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6111, 6112, 6113, 6114, 6114, 6115, 6116, 6117, 6117, 6118, 6118, 6118, 6118, 6119, 6120, 6120, 6120, 6120, 6120, 6120, 6121, 6121, 6121, 6121, 6124, 6124, 6127, 6128, 6132, 6136, 6136, 6140, 6144, 6146, 6146, 6146, 6146, 6149, 6153, 6156, 6157, 6160, 6161, 6165, 6167, 6168, 6169, 6170, 6175, 6175, 6175, 6175, 6175, 6175, 6176, 6176, 6180, 6184, 6188, 6192, 6194, 6194, 6194, 6194, 6194, 6194, 6196, 6198, 6200, 6202, 6204, 6207, 6209, 6210, 6210, 6211, 6212, 6212, 6212, 6212, 6212, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6218, 6219, 6220, 6221, 6223, 6225, 6227, 6229, 6229, 6229, 6229, 6230, 6230, 6233, 6235, 6235, 6238, 6239, 6243, 6247, 6247, 6251, 6255, 6258, 6260, 6262, 6262, 6263, 6265, 6265, 6268, 6269, 6269, 6269, 6269, 6272, 6272, 6272, 6273, 6273, 6273, 6275, 6275, 6275, 6275, 6275, 6275, 6279, 6280, 6280, 6282, 6282, 6286, 6286, 6286, 6286, 6286, 6286, 6290, 6294, 6298, 6300, 6300, 6300, 6300, 6303, 6303, 6303, 6303, 6305, 6307, 6309, 6311, 6313, 6316, 6318, 6320, 6320, 6320, 6320, 6320, 6320, 6321, 6322, 6323, 6324, 6325, 6327, 6327, 6328, 6330, 6331, 6333, 6335, 6337, 6339, 6339, 6341, 6342, 6345, 6346, 6347, 6349, 6353, 6353, 6354, 6358, 6360, 6362, 6362, 6363, 6363, 6364, 6364, 6364, 6364, 6364, 6364, 6364, 6365, 6365, 6365, 6369, 6369, 6369, 6369, 6369, 6373, 6377, 6380, 6382, 6382, 6382, 6383, 6385, 6387, 6389, 6392, 6392, 6392, 6394, 6395, 6395, 6395, 6395, 6395, 6396, 6396, 6397, 6399, 6399, 6400, 6402, 6402, 6405, 6406, 6408, 6412, 6412, 6413, 6413, 6413, 6413, 6413, 6413, 6414, 6414, 6414, 6415, 6415, 6415, 6416, 6417, 6417, 6421, 6421, 6421, 6425, 6427, 6427, 6427, 6429, 6429, 6429, 6429, 6429, 6429, 6430, 6431, 6431, 6432, 6432, 6435, 6435, 6435, 6435, 6436, 6440, 6440, 6440, 6440, 6443, 6443, 6444, 6444, 6444, 6444, 6444, 6448, 6448, 6448, 6450, 6450, 6450, 6450, 6452, 6452, 6452, 6452, 6452, 6453, 6453, 6454, 6457, 6461, 6461, 6461, 6463, 6464, 6464, 6465, 6465, 6469, 6469, 6469, 6471, 6472, 6472, 6472, 6473, 6477, 6477, 6479, 6479, 6483, 6483, 6485, 6485, 6486, 6490, 6490, 6491, 6491, 6492, 6496, 6496, 6496, 6497, 6501, 6501, 6502, 6506, 6510, 6514, 6518, 6522, 6524, 6524 } ; static yyconst flex_int32_t 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, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22, 22, 23, 24, 25, 26, 27, 28, 29, 1, 30, 31, 32, 33, 34, 35, 32, 36, 36, 37, 36, 38, 39, 36, 36, 40, 41, 36, 42, 43, 44, 45, 36, 46, 47, 48, 36, 49, 50, 51, 52, 53, 1, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 1, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 } ; static yyconst flex_int32_t yy_meta[85] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 7, 1, 1, 8, 9, 10, 11, 1, 12, 13, 14, 15, 16, 16, 16, 16, 17, 18, 19, 20, 1, 1, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 24, 25, 1, 26, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 27, 1, 28, 29, 30 } ; static yyconst flex_int32_t yy_base[4071] = { 0, 0, 3, 8, 58, 63, 113, 91, 145, 131, 165, 187, 207, 215, 229, 237, 269, 287, 291, 342, 24, 426, 22, 510, 35, 594, 48, 678, 77, 762, 79, 846, 117, 930, 118, 1013, 1017, 1097, 304, 1021, 1180, 1183, 1213, 1262, 126, 1338, 134, 1422, 151, 1506, 203, 1590, 242, 1674, 308, 1758, 317, 1842, 321, 1926, 1034, 2010, 1047, 2094, 1051, 1237, 2177,11817,35984, 1053,35984, 35984,35984, 16,11808, 1055, 19, 0,35984, 0, 0, 26,11806, 0, 1072, 28, 0,35984, 0, 0, 49, 11800, 1074, 65, 0, 1076, 0,11799, 0, 0, 71, 11798, 1186, 72, 0, 1199, 0, 0, 0, 81,11796, 6, 1203, 109, 0, 171, 0, 0, 0,11782, 140, 11792, 1233, 157,11747, 1219,35984,11745,11740, 210, 40, 265, 1250, 277, 0, 1254, 0, 0, 0,11769, 168, 11781, 1258, 178,35984,35984,11714,11735, 182,35984, 1081, 35984,35984,11755,35984, 184, 2162,11756,35984,35984, 2182, 2197, 2254, 68, 38,11742,35984, 2227,35984, 21, 1010, 1154, 1193, 1236, 2160, 2228, 219, 1242, 106, 189, 1249, 2231, 2241, 281, 2256, 2214, 2274, 1244, 220,35984,35984, 2317, 2213, 1027, 233,11744,11698,11742, 7, 1278,35984, 1267, 286,35984, 185, 1282,35984, 302,11741, 303, 2280, 2342, 2352, 2371, 2386,11739, 2390, 2405, 2420, 2439, 2457, 2467, 2543, 2443, 2462, 2366, 2484, 2489, 2510, 2512, 2533, 2548, 2569, 2597, 2584, 2616, 1164,35984, 1300,35984,35984, 35984, 0,11716,35984, 2191, 283,11740,11756, 2689, 2693, 2706,35984, 2719,35984, 2745,35984, 2378, 2749, 2214, 1008, 0, 1062,35984, 2778, 2804, 2808, 2834, 2838, 2865, 2883, 2904, 2388, 2717, 2850, 2880, 2896, 2152, 2332, 2413, 2905, 2914, 2535, 2929, 2935, 2969, 2441, 2673, 0,35984,35984, 0,11719,11752, 47,35984, 2548, 0, 2193, 1083,35984, 2799, 2996, 1193, 2680, 2268, 0,35984,11734, 2338, 2241, 0,35984,35984, 99, 0,11697,11674,11679,11685, 2322, 0,35984,35984,11716,35984,35984, 239, 1019,11728, 2544, 2263, 2869,35984, 2420,35984,35984,35984,35984, 232, 1207, 1239, 2235, 2330, 2255, 2735, 2511,35984,35984,11700,11665, 998,11663,11663,11664, 1259,11653,11643,11660, 2301, 148, 11644,11639,11647, 0, 1281,11673,35984, 3013, 3023, 3050, 3040, 3066, 3072, 3076, 3080, 3140, 3146, 3150, 3154, 3159, 3208, 3219, 2671,35984, 3226, 3235, 3246,35984, 0,35984, 35984, 1229,35984,11682, 0,11619,11610,11617,11603,11600, 35984, 3257, 1270,35984, 2463,35984, 0,35984,35984, 2172, 35984,35984,11660, 0,11630,11593,11596,11587,11585, 2131, 11581,11574,11590, 2571,11577,11575,11585, 2640, 2245, 0, 35984, 2306, 0,35984, 0,11604,11564,11569,11561,11562, 2266,11558,11551,11568, 2642,11554,11551,11558,35984, 2681, 35984,35984, 0,11563,35984,35984, 2254,11605, 0,35984, 35984, 2788, 2263, 0, 3084, 0, 0,35984, 0, 0, 0, 2315,11604, 3337, 0, 2814, 2399, 3331, 3356, 3366, 35984, 0,35984, 0,11574,11540, 1169,11539,11540, 2299, 11533,11517, 2361, 2814,11523,11521,11527,35984, 3376,35984, 2840,35984, 0,35984,35984, 2435,11568,11549, 2853, 2522, 0, 2877, 0, 0,11560, 2556,11557, 0, 2893, 2621, 2923, 2633, 2730, 1267,35984, 2979, 2641, 2980, 2490, 0, 2751, 2406,35984,35984, 3090, 2692, 3168, 2492, 0, 2771, 2726, 0, 3109, 2710, 3176, 2808, 0,35984, 2783, 2753, 3116, 2810, 3237, 2910, 0,11555, 3167,35984, 2932, 2755, 0,35984,11553, 3118, 2926, 0, 2370,11533,35984, 3045, 2842, 0, 3187, 3241, 3002,11501, 2877, 3230, 2844,11497, 35984,11542, 3126, 3046, 3259, 3267, 0, 3110, 3251, 2894, 0, 3183, 2999, 3367, 3027, 3450, 3500,11518, 2286, 2446, 3400, 2652,35984,35984, 3438, 0, 3469, 2534,11454,11457, 1265,11449, 3123,11453, 2481, 2402, 3507, 3542,35984,35984, 11444,11478, 3478, 3560, 2564, 2506,11487, 2628, 3569, 3577, 11474, 3586, 3613, 3389, 2872, 2627, 3058, 1138, 2910, 3220, 3181, 2970, 3071, 979, 3039, 3696, 2568, 3045, 2589, 3227, 3223, 2702, 2995, 3173, 2521, 3157, 3099, 3362, 3232, 2793, 3314,11424, 264, 3374, 3132, 2832, 3202, 209, 2727, 39, 3262, 3266, 3329, 3134, 3381, 3209, 3250, 3420, 3457, 3316, 3347, 3445, 3269, 3261, 3379, 3427, 3475, 2943, 2393, 3396, 3404, 2974, 2906, 3476,11436, 3408, 3621, 3630, 3642, 3646, 3425, 3596, 3473,35984, 3659, 3725,35984, 3582, 3665, 3399, 35984,35984,11466,11465, 3218,11424,11427, 3476,11418, 3457, 11419, 3517, 3107, 3604,35984,11446,35984, 3715,11448,11442, 3756, 3780, 3790, 3808, 3818, 3836, 3846, 3864, 3874, 3898, 3902, 3926, 3930, 3995, 3959, 3963, 4014, 4035, 4068, 4078, 4096, 4111, 4129, 4144, 4148, 4174, 4195, 4268,11395, 4221, 4240, 4297, 4328, 4352, 4356, 4371, 4386, 4390, 4420, 4438, 4448, 4466, 4481, 4499, 4509, 4527, 4537, 4558, 4573, 4588, 4606, 4621, 4625, 4640, 4655, 4683, 4702, 4712, 4731, 4741, 4760, 4673, 4181, 4115, 4767,35984, 4786,11439,11434, 4564, 4801, 4816, 4828,11437, 4840, 3685, 4854, 3751, 3762, 3892, 4858,35984, 4889, 4053,35984,11432,35984, 4907, 4926, 4944, 4962, 4983, 5001, 5019, 5038, 5056, 5075, 5102, 5106, 5132, 5136, 5201, 5162, 5166, 5220, 5241, 5285, 5289, 5315, 5319, 5345, 5364, 5382, 5400, 5473,11381, 5427, 5445, 5502, 5533, 5559, 5563, 5589, 5608, 5638, 5642, 5670, 5674, 5700, 5704, 5738, 5756, 5774, 5800, 5821, 5849, 5853, 5880, 5899, 5920, 5938, 5964, 5983, 6009, 6013, 6039, 6060, 6078, 0, 0, 11431,11395, 3734, 3602, 3603, 4087, 3801, 3648, 3660,11427, 4130,11410,11424, 4205, 3680, 4231, 3792,35984,11408,11416, 11402, 3820, 0,11353, 0,11346,11343,11338,11351, 3870, 3498,11395, 3621, 3571,11373,11387,11385, 3856, 3707, 3779, 4422,35984,11376,11375, 0, 3713, 3547,35984, 4036, 3934, 35984, 4307, 3827, 4573, 4452,11344,11314,11306,11305,11284, 11285,11284, 3786,11276,11280,11280,11279,11273, 3597,11266, 11269,11263,11259,11267,11264, 4200, 3087, 4772, 4335, 5045, 5371,11297,11291, 4988, 5412, 5094, 5253, 5745, 4884, 5925, 6045, 6104, 6108, 6112, 6182, 6201, 6211, 6217, 6243, 6250, 6254, 6282, 6286, 6292, 6120, 4933, 5082, 3883, 5529, 5828, 11248,11239,11253,11237,35984, 6318, 0, 0,11237,11242, 11244,11212,11222, 6324, 0, 0,11247,11213,11225,11204, 11206, 3855,11197,11201,11198,11198,11192, 3658,11182,11178, 11175,11173, 3865, 3969, 4059,35984, 0, 0,11194,11160, 11173,11151,11155, 0,11148,11143,11144,11144,11137, 3689, 11132,11130,11135,11134, 0,11181, 3619,35984, 0, 4870, 4974, 5274,35984,35984, 0, 0, 4053, 3892,35984, 6404, 35984, 3965, 3475, 4329, 3953, 6423, 0, 0,11153,11123, 11134,11120,11111,11114, 6503,11108,11112,11113,11111,11114, 11107,11092, 3779,11083,11079, 3868,11089, 6468,11119,11116, 11114, 0, 4029, 3781,11130,11122, 4145, 3960, 0, 4105, 3893, 4357, 4138, 4166, 4168,11112, 3922,11051,11120, 4222, 4301,11105, 3972, 50,11114, 3264, 4820, 5616,11034, 4473, 4401, 4336, 5866, 6123, 3292, 4485, 3601, 5975, 6331,11033, 4606, 4404, 4440, 6344, 6357, 3649, 4797, 3720, 4209, 4500, 11010, 3563, 4414, 4489, 4634, 4898, 3748, 3668, 3854, 4900, 4527,11067, 4037,11064, 4079, 4691, 5491, 2869, 4364, 4944, 4832, 5614, 6295, 4582, 4494, 4611, 4258, 4323, 3380, 4564, 3871, 3878, 6586,35984,11061, 5249, 6386, 6443, 4230,11044, 6647, 6542, 5351, 0,10994,11010,11006,10992,10988,10981, 10980, 3515,10992,10973,10976,10972,10959,10950, 4734,10997, 10996, 5545, 5885, 6556, 6729, 4021,11007,35984, 6591, 6641, 6660,10994, 5771, 6679, 6691, 6703, 6722, 5730, 4185, 4037, 3906, 6798, 3704, 4057, 4235, 3352, 3961, 3967, 4231, 4548, 4237, 3960,35984, 6817, 6849,35984,35984,10993, 6147, 6836, 4072,10947, 4254, 4005, 4263, 4313, 4152, 4101, 4325, 4372, 4400, 6919, 4120, 4083, 4180, 3721, 4276, 4469, 6938, 4480, 3580, 4682, 2657, 4527, 4354, 4601, 4647, 4331, 4366, 4489, 4649, 3666, 3545, 4655, 4669, 4418, 4938, 3857, 4395, 4536, 4738, 3682, 4600, 4715, 4728, 4688, 4886, 4725, 4657,10946, 4663, 4621, 4779, 4781, 4811, 4829, 3900, 4850, 4741, 4795, 4456, 4582, 4887, 4889, 6970, 7002, 7009,10945,10954, 6696, 5108, 5451, 4993, 6361,10935,10953,10945,10933,10926,10914, 10912, 4904,10928,10912,10916,10911,10906,10897, 5181,10945, 5037, 6763, 6150, 6883, 7060, 7025, 7029, 7079, 7100, 7132, 7147, 7151, 7166, 7181, 7185,35984, 5171,35984,10942,35984, 10942,10933, 7209, 6596, 7227, 7242, 7257, 7261, 7285, 7289, 7315, 7319, 7373, 7392, 7402, 7446, 7345, 7461, 7465,35984, 5363,35984,10932,35984,10931,10923, 7480, 7495, 6435, 5439, 7510, 7572, 7534, 7591, 7601, 7644, 7659, 7663, 7678, 7693, 7697, 7723, 7738, 7742, 7757, 7772, 7793, 7803, 7822, 7832, 7851, 7861, 7880, 7895, 7910, 7925, 7929, 7953, 7972, 7957, 7987, 7991, 8017, 8041, 8045, 8069, 8073, 8097, 8116, 8131, 10920, 6572, 6867, 8102, 8157, 8170, 5805, 6146, 6461, 6566, 8174, 8200, 8226, 8299, 8230, 8257, 8318, 8339, 8371, 8389, 8407, 8426, 8453, 8483, 8487, 7349,35984,10913,35984, 8513, 8517, 8544, 8548, 8574, 8578, 8604, 8608, 8638, 8692, 8656, 8721, 8765, 8783, 8801, 8819, 8837, 7538,35984,10912,35984, 8855, 8873, 8891, 8953, 8917, 8921, 8982, 9025, 9043, 9061, 9079, 9100, 9118, 9136, 9154, 9172, 9193, 9211, 9229, 9247, 9265, 9283, 9302, 9320, 9338, 9356, 9377, 9396, 9417, 9435, 9453, 9472, 9491, 9509, 9535, 9539, 9565, 9569, 9596, 9600, 9626, 0,10926,10918, 0,10876, 5979, 0,10906,10866, 10849,10863,10853,10849, 4947,10857, 5004, 4980, 5051, 5093, 0, 4955,10853, 5560, 5701, 5053, 5129, 5738, 5404, 5929, 6220, 5298, 5171, 5312,10842,10835,10831,10838,10838,10833, 4922,10828,10820,10825,10807,10810,10818,10811,10800,10805, 10797,10801,10800,10826, 6909, 5512, 6957, 6734, 7246, 8989, 8755, 9630, 9638, 9644, 6628,10825,10815, 6976, 9656, 9670, 9674, 9700, 9706, 9711, 9738, 9742, 9749, 9768, 9778, 9804, 5569, 5610,10776,10784,10785,10773,10765,10761,10764, 0, 10771,10754,10742,10755,10753,10745,10737,10739,10724,10726, 10734,10729,10725,10728,10728,10716,10703,10714,10713,10702, 10691,10692,10677,10679,10687,10682,10679,10681,10681,10722, 35984,10720, 5220, 0, 7206, 7286,10657, 5185, 5393, 5122, 7425, 7624, 4888, 5419, 4902,10662,10651,10648,10663,10663, 0,10656,10649,10654,10638,10639,10632,10635,10641,10635, 10627,10628,10630,10629,10671, 5513, 5309,10669,10661, 5249, 5525,10589, 5234, 5644, 5329, 5585, 5638, 4951, 5283, 4986, 0, 5064,10652, 5090,35984,10634,35984,10599,10647,35984, 0,10637,35984,35984,10635,35984,10629, 0,10605, 0, 10570, 5509, 7315, 5678, 0, 0, 5813, 5969, 0,10603, 0,10564, 6086, 6477, 6337, 0, 0, 6560, 6853, 0, 10585, 0,10550, 5306, 6036, 5390, 0, 0, 5454, 5464, 5695, 5691,10597, 5761,10578,35984,10544, 4692, 5841,10540, 5476, 5910, 5996, 7005, 6017,10538, 6050,10533, 6175, 6321, 6399, 6072, 6439, 4814, 4584, 4958, 5221, 5308, 9857, 7414, 5644, 8186, 7728, 9928,10557,10010, 7112, 7522, 6473, 7126, 9828,10522,10505, 7439,10522,10505,10511,10501,10487, 5510, 10493,10482,10490,10471,10475, 7638, 8444, 8459, 9017,10517, 9818,10092, 2154,10527, 6876,10509, 9382, 9885, 9842, 9893, 10506, 7562, 7784, 8024, 4137, 5293, 4942,35984, 9956, 9972, 35984,35984,10507, 7531, 9991,10473, 5789, 5216, 5653, 5273, 5124, 5566, 3794, 5724,10025,10041,35984, 4328, 3006,10150, 5764, 5580, 5082,10468, 4363, 5777,10233, 5626, 3237, 5791, 2465, 4473, 5272, 5620, 4234, 5757, 5851, 5348, 5439, 5209, 5632, 5863, 5666, 5799, 5529, 5861,10467,10465, 5897,10454, 10290, 5590, 5951, 4960, 5959, 6003,10450, 6088, 6024, 4969, 5380, 5486, 6106, 4987, 6360, 3156, 5654, 6562, 5401, 5572, 5610,10448, 4826, 6061, 6086,10444,10433,10434, 8267, 6773, 10467,35984, 6278, 8623, 9900,10439,10421, 0,10433,10420, 10426,10421,10404, 6059,10408,10397,10409,10388,10388, 0, 6267, 6303, 6746,10059,10102,10120,35984, 6758,35984,10423, 35984,10424,10412,10179,10362,10238,10262,10324,10320,10397, 10435,10445,10463,10473,10492,10502,10528,10532,10547, 8179, 10562,10566,10590,10594,10609,10624,10639,10654,10669,10673, 10688,10706,10724,10734,10752,10771,10781,10799,10809,10828, 10843,10847,10862,10877,10892,10911,10926,10941,10945,10971, 10986,11004,11019,11084,11043,11053,11113,11144,11171,11181, 11103,11199,11217,11227, 9942,10085,10307, 7887, 8029, 8135, 11246,11264,11290,11294, 9716,35984,10410,35984,11321,11361, 11390,11421,11325,11447,11465,11483,11504,11523,11541,11560, 11579,11597,11615,11633,11651,11677,11681,11707,11711,11737, 11755,11773,11791,11809,11828,11847,11865,11883,11901,11920, 11938,11956,11975,11993,12014,12040,12058,12076,12094,12115, 12142,12160,12187,12205,12223,12244,12262,12280,12298,12316, 12343,12361,12379,12397,12415,12433,35984,10424, 0,10411, 10381, 8417,10411,35984,10358,10358,10363,10359,10334,10328, 10296, 6512, 5955, 6305, 6044,10283,10279,10285, 4021,35984, 6210, 4467, 6573, 6631,10345, 6737, 6673, 5083,35984, 5731, 6826,10333, 6829, 6952,10259,10265,10255,10247,10245,10252, 10233,10247,10248,10233,10225,10221,10222,10207, 0,10191, 6371,10247,12491,10401,10294,10430,11426,10930,12019,11454, 12121,12574,12194,12578,12582,10194,10191,10190,10194,10171, 10168,10171,10150, 6988, 6993, 6791, 7027, 6445, 7134, 7175, 6449, 6792, 6717, 6536,10162,10154,10142,10140,10151,10130, 10124,10121,10106,10112,10075,10112,35984, 6478, 0,10088, 0,10031, 7117, 7845, 7306, 0, 0, 7346, 7608,12653, 10000, 9984, 9975, 9978, 9981, 9938, 9947, 9911, 9922, 113, 994, 1027, 1252, 2230, 0, 2303, 7182, 5672, 5928, 5698, 2361, 2394, 0, 2470, 0, 2536, 5934, 0, 7205, 6139, 0, 0, 6257, 0, 6336,35984,35984, 2676, 7263, 2762, 2758,35984, 2841,35984, 2900,35984, 2960, 0, 7096, 7663, 3120, 0, 6903, 7151, 3280, 0, 6234, 6532, 3434,35984, 3481, 3505, 7467, 3532, 5311,35984, 3688, 3756, 6714, 7227, 7356,35984, 3821, 7492, 7498, 6519, 3802, 5862, 6020,12736, 3853, 8212, 8358, 7343,10203,12786, 3841, 3866, 8675, 8725, 35984, 3926, 4024, 4106, 4198, 4401, 4493, 5535, 4566, 4601, 4625, 4658, 4691, 8749, 9479,35984, 4770,12134,12328,11397, 12587,12743,12868, 6017, 4841,10078,11530,12005, 4897, 9811, 9923, 6696, 6245, 5018,12800,12816,35984, 5900,12939, 7407, 6511, 5230, 6425, 6632, 6031,13022, 7633, 6281, 6608, 7444, 4898, 6390, 6569, 6775, 5715, 6822, 5765, 6802, 6974, 5741, 5826, 5891, 6101, 6586, 6905, 6827, 7037, 6716, 6966, 5002, 7051, 7067, 5065, 5089, 6978, 7024, 7090, 6915, 6642, 7102, 6576, 7076, 7121, 7226, 7268, 5178, 7170, 5271,35984,13094, 7368, 7214, 6820, 7362, 7186, 8261, 7423, 7459, 7030, 5308, 5330,12454, 5448, 5501, 5557, 5688, 5691, 5728, 5805, 5939, 7273, 5941, 5971, 6004, 6007, 6044, 7899,12830,12878,12907, 12958,13178,12979,12897,13032,13058,13137,13062,13207, 6844, 6164,13238,13262,13266,13290,13305,13320,13324,13339,13360, 13370,13389,13399,13417,13427,13446,13456,13474,13489,13493, 13519,13523,13538,13557,13567,13585,13604,13614,13632,13650, 13660,13679, 6214,35984,13733,13694,13752,13762,13793,13819, 13823,13838,13853, 9952,13857,13885,13911,13915,13943,13961, 13979,13998,14016,14042,14109,14046,14073,14138,14183,14201, 14219,14240,14259,14277,14298,14316,14334,14352,14373,14391, 14409,14427,14448,14466,14484,14503,14522,14541,14559,14578, 14597,14618,14636,14657,14675,14729,14758,14693,14789,14816, 14820,14846,14850,14876, 6225, 8864, 6219, 6244, 6236, 6274, 6314, 6331, 6335, 7600, 7689, 7702, 7456, 6359, 6377, 6405, 7509, 7298,35984, 7605, 6491, 7672, 6539, 6496,35984, 6515, 6566, 6616, 6647, 6688, 6677, 6709, 6741, 6829, 6849, 6938, 12592, 6985,12774,12873,13219,13006,14144,14880,14888,13309, 12991,14623,14548, 6944, 6947, 6966, 6984, 8761, 9107, 9200, 9309, 7108, 7124, 7116, 7132, 7159, 7144, 7177, 7175, 7205, 7224, 7234, 7252, 7293, 7314, 7322, 7348, 7347, 7365, 7435, 7450, 7408, 0, 7822, 7958, 7422,11591, 7431, 7430, 7438, 7455, 7461, 7475, 7461, 7486, 7487, 7493, 7505, 7537, 0, 0, 7686, 7627, 7705, 7561, 7563, 7535, 0, 7723, 0, 7765, 0, 7853, 7587, 7645,35984, 7635, 7660, 7662, 7667, 7690,35984, 7704,35984, 7691,35984, 7704, 0, 7641, 7684, 7706,35984, 8472,10066,10266,10381,35984, 7673, 7705, 7714, 7713, 7708, 7712, 7736, 7738, 7744, 7730, 7729, 7746,10896, 11047,35984, 0,14906,14919,13123,14923, 7778,14949,15006, 15059, 7796,14955, 7776, 7804, 7812, 7849,14989, 7828, 7837, 7833, 7853,15109,15041,15102, 7781, 7868, 7757, 7783, 7883, 7876, 7887, 7891, 7902, 7934, 7915, 7905, 7906, 7945, 7899, 7968, 7953, 7979, 7983,15181, 7769, 7755, 8007, 7986, 8075, 7987, 7989, 8035, 8014, 8017, 8050,15264,15153, 8055, 8061, 8080, 7759, 7776, 7807,35984, 7829, 7928, 7936, 7934, 7934, 7944, 7997, 8005, 8011, 8005, 8006, 8023,14999,15023,15119, 15216,15269,15293,15303,15321,15331,15355, 8034,15370,15385, 15389,15416,15437,15447,15466,15481,15485,15500,15521,15539, 15549,15567,15638,15591,15601,15667,15710,15725,15729,15753, 15757,15781,15802,15821,15839,15857,15875,15894,15912,15933, 15951,15970,15988,16014,16018,16044,16048,16075,16102,16120, 16139,16158,16176,16197,16223,16227,16253,16257,16284,16288, 16314,16332, 9426, 8041, 8029, 8051, 9091, 8040, 8061, 8063, 8107, 8121, 8130, 8173, 8050, 8069, 8075, 8138, 8080, 8098, 8093, 8095, 8103, 8120, 8113, 0, 8256,15075,15093,15222, 15359,15674,15528, 8285, 8146, 8152, 8148,16326,35984, 8144, 8147, 8166, 8165, 8162, 8177, 8176, 8175, 8176, 8192, 8179, 8187, 8185, 8209, 8195, 8246, 8206, 8209, 8203, 8221, 8215, 8220, 8236, 8238, 8232, 8257, 8333, 8312, 8356, 0, 8326, 8327, 8315, 8348, 8295, 8682, 8373, 8348, 8367,35984, 8332, 8398, 8445, 8278, 8311, 8321, 8324, 8328, 8314, 8315, 8325, 8337, 8336, 8333,15235,15586,16358,16362,16432,16504, 8393, 0,16415, 8380, 8362,16449, 8383, 8399, 8358, 8430, 8352, 8415,16557, 8387, 8458, 8468,16641, 8472, 8476, 8613, 8662, 8474, 8501,16724, 8349, 8376, 8503, 8444, 8492, 8505, 8507, 8511, 8531, 8434,16798,16476, 8405, 8532, 8593, 8407, 8415, 8446, 8463, 8479, 8479, 8466, 8497, 8514, 8528, 8520, 8522, 16520,16442,16609,16660,16681,16599, 8543,16740,16766,16803, 16865,16827,16884,16894,16837,16938,16948,16966,16976,16995, 17010,17025,17040,17058,17076,17094,17112,17138,17142,17168, 17224,17195,17243,17275,17307,17325,17343,17361,17380,17406, 17424, 9500, 8535, 0, 8545,10109,35984, 8561, 8551,35984, 8711, 8572, 8561, 0, 8631, 0, 8584, 8590, 8592, 8648, 16933,17014, 8595, 8589, 8587, 8593, 8612, 8610, 8604, 8617, 8627, 8633, 8619, 8626, 8655, 8658, 8668, 8674, 8802, 8670, 8679, 8688, 8689, 8773, 8742, 8748, 8851, 8705, 8756, 8877, 8766, 8899, 8776, 8792, 8779, 8821, 8948, 8780, 8777, 8810, 8843, 0, 8773,17442, 8903, 9782, 8733, 8751, 8751, 8740, 8773, 8770, 8790, 8778, 8799,17470,17474,17540,17607, 8854, 15423,17500, 8866, 8857,35984,17505,17534,35984,35984, 8845, 9040,16087, 8846, 8850, 8955, 8957,17575,17658,17602,17677, 17741, 8864,17796, 8818, 8821, 8837, 8847, 8843, 8861, 8941, 8943, 8956,17871, 8984, 8859, 9024,35984, 8864, 8876, 8868, 8859, 8885, 8880, 8890, 8925, 8944,17687,17751,17556,35984, 9292,35984, 8979,35984, 8985, 8994,12608,17769,17823,17838, 17900,17931,17958,17962,11140,35984, 8995,35984,17988,17992, 18018,18037,10464, 8952, 8974, 9050, 8983, 9048, 8996, 9058, 35984, 8991, 9013, 9005, 9018, 9024, 9012, 9020, 9017, 9020, 9043, 9046, 9061, 9133, 9102, 9117, 9119, 9186, 9113, 9109, 9110, 9114, 9124, 9143, 9128, 9160, 9132,18049,35984,18056, 9126,11072,11211, 9999,10351,11535, 9079, 9100, 9103,11511, 9085,18084,18089,18161,18231, 9153, 9135, 9147,18118, 9139, 9335, 9141,12106, 9205,18168, 9169,18196, 9365, 9172, 9179, 9202,18282,18366,18450, 9152, 9147, 9149, 9164, 9160,35984, 9160, 9200, 9199, 9194,18203, 9450, 9181, 9170, 9187, 9194, 9174,18123,18099,18469,18479,18510,18536,10753, 9187, 9204, 9205, 9262, 9191, 9193, 9210, 9208, 9223, 9208, 9216, 9231, 9217, 9222, 9278, 9292, 9293, 9289, 9326, 9350, 9371, 9386, 9411, 9362,11253,11950,12755, 9262,12461,12762, 9260,18540, 18555, 9392, 9283, 9313, 9303, 9331, 9422,13296,18622, 9319, 35984,18570, 9685, 9320, 9329, 9393,18694,18778,35984, 9444, 18862,18946, 0,19030,15701, 0,16388, 9475,19114,19198, 0,12925,13127,35984, 0, 0, 9292, 9296, 9308, 9406, 9336, 9400, 9446, 9385,18605, 9396,10802, 9405,14173, 9373, 9396, 9394,18250,19281,19285,19300,18632,18965,10511, 9834, 9386, 9396, 9412, 9410, 9422,11982,10643,11744,13155,11352, 9519, 9494, 9499, 9521, 9541, 9554, 9571, 9584, 9602, 9434, 13234,13712,19318,19334,13788, 9494, 9498, 9502,19405, 9488, 9606,19352, 9755,35984,14664,14765,15250, 9792,19489,19573, 16707,19657,19741,19825,11031,19909, 9445, 9462,10060, 9477, 9510, 9524, 9874,15254, 9476, 9474, 9526,19369,19457,19992, 19996, 9864, 9615, 9910,11854, 9513, 9522,13889, 9518, 9528, 13947, 9526, 9662, 9586, 9588, 9684, 9538,20023,20094, 9596, 9627, 9599, 9591, 9985,10015,20178, 0,17781, 9986, 0, 11567,20262,17410,20346, 0,14080, 9721, 0, 9550, 9571, 9666, 9691, 9582, 9575,20027, 9757,10016, 9796, 9599, 9597, 9612, 9624, 9677, 9693, 9649,20430,18022,10135,20514,10208, 9691, 9724,20598,20682,10209,14604, 0, 0,14247, 9833, 9695, 9748, 9699, 9696,20061,10121,10240,10247,35984,10271, 9717, 9721, 9783, 9793, 9745, 9870,10322, 9832, 9806, 9817, 20766,10395,14510, 9898, 9778, 9899, 9782, 9781,20057,35984, 10393, 9849, 9850, 9900, 9851, 0, 9807, 9840,10097,20129, 9873, 9884, 9907, 9880,10183, 9897, 9909, 9922, 9906, 9955, 9957, 9995, 9959,35984,10012,10142, 9938,10022,10272,20449, 35984,20850,20880,20910,20940,20970,21000,21030,21060,21090, 21120,21150,21180,21210,21240,21270,21300,21330,21360,21390, 10397,21420,21449,21478,21507,10580,21536,10609,21565,21594, 10639,21623,10742,21638,10971,21667,11126,21684,11217,21699, 11254,21714,21739,21769,11280,21798,21827,21856,11651,21871, 11671,21886,11697,21915,11799,21930,12026,21960,21975,12230, 22004,22034,12328,22064,22094,12454,22109,12608,22124,22154, 22184,22214,22244,22274,22304,22334,22364,22394,22424,22453, 22483,22512,10120,22541,22571,22600,22630,22659,22688,22717, 22746,22775,22804,22834,22863,22892,22922,22951,22980,23009, 23038,23053,23082,23106,23130,23147,23171,23186,23201,23225, 23249,23264,23294,23323,23352,23382,23411,23440,23469,23484, 23499,23528,23543,23558,23588,23618,23647,23677,23692,23722, 23737,23752,23782,23812,23842,23872,23902,23932,23962,23992, 24022,24052,24082,24112,24142,24172,24202,24232,24262,24292, 24322,24352,24382,24412,24442,24472,24502,24532,24562,24592, 24622,24652,24681,24710,24739,24768,10128,24798,24828,24858, 24887,24917,24946,24976,25005,25034,25063,25092,25121,25150, 25179,25208,25237,25267,25297,25326,25355,25384,25413,25442, 25471,12618,25492,25516,12832,25531,25560,12838,25577,25592, 25607,25622,25652,25682,25712,25742,25772,25801,25830,25859, 25888,25918,25947,25962,25977,25992,26022,26037,26067,26097, 26127,26157,26187,26202,26226,26256,26286,26316,26346,26376, 26406,26436,26466,26496,26526,26556,26586,26616,26646,26676, 26706,26736,26766,26796,26826,26856,26886,26916,26946,26976, 27006,27036,27066,27096,27126,27156,27186,27216,27246,27276, 27306,27336,27366,27396,27426,27456,27486,27516,27546,27575, 27604,27633,27662,27691,27721,27751,27780,27810,27840,27870, 27899,27928,27957,27986,28016,28045,28074,28103,28133,28163, 28192,28221,28251,28280,28309,28338,28367,28388,12952,28403, 28418,28447,28464,28479,28494,28509,28539,28569,28599,28629, 28659,28689,28719,28749,13040,28778,28807,28822,28851,28866, 28896,28926,28956,28986,29016,29046,29076,29091,13189,29106, 29136,29166,29196,29226,29256,29286,29316,29346,29376,29406, 29436,29466,29496,29526,29556,29586,29616,29646,29676,29706, 29736,29766,29796,29826,29856,29886,29916,29946,29976,30006, 30036,30066,30095,30124,30153,30182,30211,30240,30269,30299, 30328,30357,30386,30415,30444,30459,30488,30503,30518,30533, 30563,30593,30623,30653,30683,30712,30736,30765,30794,30809, 30824,30854,30884,30914,30929,30944,30974,31004,31034,31064, 31094,31124,31154,31184,31214,31244,31274,31304,31334,31364, 31394,31423,31453,13456,31482,31511,31541,31570,31600,31629, 31658,31687,31716,31731,31746,31761,31791,13483,31820,31849, 31864,31879,31894,31924,31939,31969,31999,32029,32059,32089, 32119,32149,32179,32203,32232,32261,32290,32320,13501,32349, 32378,32407,32436,32451,32466,32481,32511,32541,32570,32599, 32614,32629,32644,32674,32689,32719,32749,32779,32809,32839, 32869,32899,32929,32959,32989,33019,33049,13567,33078,33107, 33136,33165,33194,33224,33253,33283,33312,33341,33371,33400, 33429,33444,33459,33474,33504,33534,33564,33579,33609,33639, 33669,33699,33729,33759,33789,33819,33849,33878,33907,33936, 33965,33995,34024,34053,34082,34112,34142,34172,34202,34232, 34261,34290,34319,34334,34349,34379,34394,34424,34454,34484, 34514,34544,34574,34604,34633,34662,34691,34720,34750,34780, 34810,34840,34869,34898,34927,34957,34986,35016,35046,35076, 35106,35136,35166,35196,35225,35254,35284,35314,35343,35372, 35401,35431,35446,35476,35506,35536,35566,35595,35624,35654, 35684,35713,35743,35773,35803,35833,35863,35893,35923,35953 } ; static yyconst flex_int16_t yy_def[4071] = { 0, 3492, 3492, 3493, 3493, 3494, 3494, 3495, 3495, 3496, 3496, 3497, 3497, 3498, 3498, 3499, 3499, 3492, 3492, 3491, 19, 3491, 21, 3491, 23, 3491, 25, 3491, 27, 3491, 29, 3491, 31, 3491, 33, 3492, 3492, 3491, 37, 3492, 3492, 3500, 3500, 3492, 43, 3491, 45, 3491, 47, 3491, 49, 3491, 51, 3491, 53, 3491, 55, 3491, 57, 3491, 59, 3491, 61, 3491, 63, 3501, 3501, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3502, 3491, 3502, 3502, 3502, 3502, 3503, 3502, 3502, 3504, 3491, 3504, 3504, 3504, 3504, 3504, 3504, 3505, 3491, 3505, 3491, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3507, 3506, 3506, 3506, 3491, 3506, 3491, 3506, 3491, 3508, 3508, 3508, 3508, 3508, 3491, 3491, 3508, 3508, 3491, 3509, 3491, 3491, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3491, 3510, 3510, 3510, 3491, 3510, 3510, 3510, 3510, 3491, 3491, 3511, 3512, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3513, 3513, 162, 162, 162, 3491, 3514, 3491, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 3491, 3491, 3515, 3491, 3491, 3491, 3491, 3516, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3517, 3517, 3517, 3517, 3491, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 3491, 3491, 3491, 3491, 3491, 3491, 3518, 3512, 3491, 3491, 3491, 3491, 3491, 3519, 3519, 3519, 3491, 3518, 3491, 3519, 3491, 3520, 3519, 3491, 3491, 3521, 3491, 3491, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 3523, 3491, 3491, 3524, 3524, 3524, 3524, 3491, 3491, 3525, 3491, 3491, 3491, 3526, 3526, 3491, 3491, 3491, 3527, 3491, 3528, 3491, 3491, 3529, 3491, 3491, 3491, 3530, 3530, 3530, 3530, 3530, 3491, 3531, 3491, 3491, 3491, 3491, 3491, 3491, 3532, 3531, 3532, 3532, 3491, 3491, 3533, 3491, 3491, 3491, 3491, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3535, 3491, 3491, 3491, 3536, 3536, 3537, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3536, 3538, 3491, 3491, 3491, 3491, 3491, 3539, 3491, 3491, 3491, 3491, 3491, 3540, 3540, 3540, 3540, 3540, 3540, 3491, 3491, 3491, 3491, 3491, 3491, 3541, 3491, 3491, 3491, 3491, 3491, 3491, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3491, 3491, 3543, 3491, 3544, 3545, 3491, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3491, 3491, 3491, 3491, 3547, 3548, 3491, 3491, 3491, 3491, 3549, 3491, 3491, 3491, 3491, 3550, 3551, 3552, 3552, 3491, 3553, 3552, 3552, 3552, 3552, 3554, 3555, 3552, 3552, 3491, 3491, 3491, 3491, 3556, 3491, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3491, 3491, 3491, 3491, 3491, 3558, 3491, 3491, 3491, 3491, 3559, 3491, 3491, 3560, 3560, 3560, 3560, 3561, 3560, 3560, 3560, 3560, 3560, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3562, 3562, 3562, 3491, 3491, 3562, 3562, 3562, 3562, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3564, 3491, 3564, 3564, 3564, 3564, 3564, 3564, 3565, 3566, 3566, 3491, 3566, 3491, 3565, 3491, 3491, 3565, 3491, 3567, 3567, 3491, 3491, 3491, 3491, 3567, 3567, 3491, 3491, 3568, 3568, 3568, 3568, 3568, 3491, 3491, 3568, 3568, 3568, 3568, 3569, 3491, 3491, 3569, 3569, 3569, 3569, 3491, 3569, 3570, 3570, 3491, 3571, 3491, 3572, 3491, 3491, 3491, 3491, 3573, 3574, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 597, 3491, 3575, 3576, 597, 597, 3577, 597, 3574, 3574, 3491, 3578, 3579, 3580, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 3570, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 646, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 3580, 3580, 3581, 3491, 3491, 3491, 3491, 3491, 3582, 3582, 3491, 3491, 3583, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3582, 3491, 3584, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 744, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3585, 3586, 3491, 3491, 3491, 3585, 3491, 3587, 3586, 3585, 3586, 3586, 3491, 3588, 3589, 3585, 3589, 3589, 3590, 3591, 3491, 3491, 3491, 3491, 3491, 3491, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 832, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3592, 3592, 3592, 3592, 3491, 3491, 3491, 3593, 3491, 3491, 3491, 3594, 3593, 3491, 3595, 3593, 3491, 3491, 3491, 3491, 3596, 3597, 3596, 3491, 3598, 3491, 3598, 3598, 3598, 3598, 3598, 3491, 3599, 3600, 3491, 3599, 3491, 3600, 3600, 3599, 3599, 3599, 3491, 3491, 3601, 3601, 3602, 3602, 3603, 3491, 3603, 3603, 3491, 3603, 3603, 3603, 3603, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3604, 3491, 3605, 3491, 3491, 3604, 3491, 3606, 3605, 3604, 3605, 3605, 3607, 3608, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3608, 3608, 3609, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3491, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3611, 3612, 3491, 3612, 3491, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3613, 3614, 3615, 3616, 3491, 3614, 3617, 3491, 3617, 3491, 3491, 3618, 3619, 3618, 3618, 3491, 3620, 3491, 3618, 3618, 3618, 3618, 3491, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3491, 3622, 3622, 3491, 3623, 3623, 3623, 3624, 3624, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3491, 3491, 3625, 3625, 3491, 3626, 3491, 3491, 3627, 3627, 3491, 3628, 3491, 3629, 3629, 3630, 3631, 3630, 3630, 3632, 3632, 3630, 3633, 3630, 3634, 3634, 3635, 3636, 3635, 3635, 3637, 3637, 3635, 3638, 3635, 3639, 3639, 3640, 3641, 3640, 3640, 3642, 3642, 3640, 3643, 3640, 3644, 3644, 3625, 3625, 3627, 3627, 3645, 3645, 3646, 3647, 3646, 3646, 3648, 3648, 3646, 3649, 3646, 3491, 3491, 3650, 3651, 3652, 3651, 3653, 3491, 3491, 3491, 3654, 3654, 3491, 3491, 3655, 3654, 3656, 3657, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3658, 3659, 3660, 3491, 3661, 3661, 3653, 1205, 3662, 3491, 3491, 3491, 3663, 3491, 3664, 3665, 3666, 3666, 3667, 3668, 1205, 1205, 1205, 3653, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 3491, 3491, 3491, 3491, 3491, 3491, 3658, 3661, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 3653, 1205, 1205, 1205, 1205, 1205, 1205, 3491, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 3491, 3491, 3669, 3491, 3491, 3670, 3671, 3671, 3491, 3672, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3673, 3674, 3491, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3491, 3491, 3491, 3491, 3491, 3491, 3674, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3491, 3491, 3491, 3491, 3491, 3491, 3674, 3670, 3670, 3491, 3491, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3675, 3491, 3676, 3677, 3677, 3678, 3679, 3491, 3491, 3680, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3491, 3491, 3491, 3491, 3491, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3491, 3491, 3491, 3491, 3491, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3491, 3690, 3690, 3690, 3690, 3491, 3491, 3691, 3691, 3691, 3691, 3692, 3692, 3692, 3693, 3693, 3694, 3695, 3694, 3694, 3696, 3696, 3694, 3697, 3694, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3698, 3491, 3699, 3700, 3701, 3701, 3701, 3701, 3701, 3491, 3491, 3491, 3702, 3699, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3491, 3703, 3491, 3491, 3491, 3491, 3704, 3704, 3704, 3704, 3704, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3707, 3491, 3491, 3491, 3708, 3709, 3709, 3710, 3711, 3710, 3710, 3712, 3712, 3710, 3713, 3710, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3715, 3716, 3716, 3717, 3717, 3718, 3718, 3716, 3719, 3716, 3716, 3720, 3720, 3716, 3721, 3716, 3722, 3491, 3723, 3491, 3491, 3491, 3491, 3491, 3724, 3491, 3725, 3726, 3491, 3491, 3727, 3491, 3728, 3729, 3729, 3729, 3729, 3730, 3731, 3732, 3729, 3729, 3733, 3734, 3735, 3735, 3735, 3735, 3736, 3737, 3738, 3735, 3735, 3739, 3740, 3741, 3741, 3741, 3741, 3742, 3743, 3744, 3741, 3741, 3745, 3746, 3747, 3748, 3749, 3748, 3491, 3491, 3750, 3750, 3750, 3750, 3750, 3751, 3751, 3752, 3753, 3750, 3750, 3750, 3754, 3754, 3755, 3491, 3491, 3491, 3756, 3757, 3758, 3759, 3760, 3491, 3491, 3491, 3491, 3761, 3491, 3761, 3762, 3762, 3763, 3763, 3764, 3491, 3491, 3765, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3766, 3491, 3491, 3491, 3491, 3767, 3760, 1792, 3768, 3769, 3770, 3491, 3771, 3491, 3772, 3770, 3773, 3773, 3774, 1792, 1792, 1792, 3491, 3491, 3491, 3491, 3491, 3491, 3775, 3776, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 3491, 3491, 3491, 1792, 1792, 3760, 1792, 1792, 1792, 1792, 1792, 1792, 3491, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 3491, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1830, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 3491, 3491, 3777, 3491, 3491, 3491, 3491, 3778, 3778, 3491, 3491, 3779, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3780, 3781, 3781, 3782, 3777, 3777, 3777, 3491, 3491, 3491, 3491, 3491, 3491, 3783, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3491, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3491, 3491, 3784, 3785, 3785, 3786, 3787, 3787, 3787, 3491, 3491, 3491, 3491, 3491, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3491, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3491, 3788, 3789, 3790, 3791, 3792, 3793, 3491, 3794, 3794, 3794, 3794, 3491, 3491, 3491, 3795, 3795, 3795, 3795, 3796, 3796, 3796, 3797, 3491, 3797, 3797, 3797, 3798, 3799, 3800, 3801, 3797, 3491, 3797, 3802, 3803, 3804, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3805, 3806, 3491, 3491, 3491, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3807, 3491, 3491, 3491, 3491, 3808, 3808, 3808, 3808, 3809, 3809, 3809, 3809, 3809, 3809, 3809, 3809, 3809, 3809, 3809, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3811, 3491, 3491, 3812, 3812, 3812, 3812, 3813, 3814, 3815, 3812, 3812, 3816, 3817, 3491, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3819, 3820, 3821, 3822, 3823, 3822, 3824, 3824, 3822, 3822, 3822, 3822, 3825, 3822, 3826, 3827, 3822, 3822, 3828, 3822, 3829, 3491, 3491, 3830, 3491, 3831, 3491, 3491, 3832, 3491, 3833, 3491, 3834, 3834, 3835, 3836, 3837, 3837, 3838, 3839, 3840, 3840, 3841, 3842, 3843, 3491, 3843, 3844, 3491, 3845, 3846, 3491, 3847, 3846, 3846, 3848, 3848, 3491, 3849, 3850, 3850, 3491, 3491, 3851, 3852, 3853, 3491, 3854, 3854, 3491, 3855, 3856, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3857, 3858, 3858, 3859, 3859, 3853, 2283, 3860, 3491, 3491, 3491, 3491, 3491, 3861, 2283, 2283, 2283, 3491, 3491, 3491, 2283, 3853, 2299, 2283, 2283, 2283, 2283, 2283, 3491, 2283, 2283, 2283, 2299, 3491, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 3491, 3491, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 2283, 3491, 3491, 2299, 2283, 2283, 2283, 2283, 2283, 2299, 2283, 2283, 2283, 3491, 3491, 3862, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3863, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 2382, 3491, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3491, 3491, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3864, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 3866, 3867, 3868, 3868, 3868, 3868, 3491, 3491, 3491, 3869, 3869, 3869, 3869, 3870, 3870, 3870, 3871, 3871, 3491, 3872, 3873, 3874, 3875, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3876, 3877, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3491, 3491, 3491, 3491, 3879, 3879, 3879, 3879, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3881, 3881, 3881, 3881, 3881, 3881, 3881, 3881, 3881, 3491, 3491, 3882, 3882, 3883, 3884, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3886, 3887, 3887, 3888, 3887, 3889, 3890, 3890, 3887, 3887, 3891, 3887, 3892, 3887, 3491, 3491, 3893, 3491, 3491, 3894, 3895, 3896, 3897, 3491, 3898, 3491, 3899, 3491, 3900, 3901, 3491, 3491, 3491, 3491, 3902, 3903, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3904, 3905, 3905, 3491, 3906, 3907, 3906, 3908, 3908, 3909, 3910, 2641, 2641, 2641, 2641, 3491, 2641, 2641, 2641, 2641, 3491, 3491, 3491, 2641, 2641, 3491, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 2641, 3908, 3491, 3491, 2641, 2641, 2675, 2641, 2641, 2641, 2641, 2641, 2641, 3491, 3491, 2641, 2641, 2641, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3491, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3913, 3914, 3914, 3914, 3914, 3491, 3491, 3491, 3915, 3915, 3915, 3915, 3916, 3916, 3916, 3917, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3918, 3919, 3920, 3491, 3920, 3920, 3920, 3920, 3491, 3491, 3491, 3491, 3491, 3491, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3922, 3922, 3922, 3922, 3923, 3923, 3923, 3923, 3924, 3925, 3925, 3925, 3925, 3925, 3925, 3925, 3925, 3925, 3925, 3926, 3926, 3927, 3926, 3928, 3928, 3926, 3491, 3929, 3930, 3931, 3932, 3933, 3491, 3491, 3491, 3934, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3935, 3935, 3936, 3937, 3937, 3938, 3939, 3940, 2869, 2869, 3491, 2869, 2869, 2869, 2869, 3491, 2869, 2869, 2869, 2869, 2869, 3937, 2869, 2869, 2869, 2869, 2869, 2869, 3491, 3491, 3491, 2869, 2869, 2869, 2869, 2869, 2869, 2869, 2869, 3491, 3491, 3491, 2869, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3941, 3941, 3941, 3941, 3941, 3941, 3491, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3943, 3944, 3944, 3944, 3491, 3491, 3491, 3491, 3491, 3945, 3946, 3946, 3946, 3947, 3948, 3491, 3491, 3491, 3949, 3950, 3950, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3952, 3953, 3954, 3955, 3955, 3955, 3955, 3956, 3957, 3957, 3958, 3959, 3491, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3966, 3967, 3491, 3491, 3491, 3968, 3491, 3969, 3968, 3970, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3971, 3972, 3973, 3973, 3974, 3491, 3975, 3039, 3039, 3491, 3491, 3491, 3491, 3491, 3491, 3976, 3977, 3039, 3039, 3039, 3039, 3491, 3973, 3491, 3491, 3491, 3039, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3039, 3039, 3039, 3973, 3039, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3978, 3978, 3978, 3491, 3491, 3491, 3491, 3491, 3491, 3979, 3978, 3978, 3978, 3978, 3978, 3978, 3980, 3491, 3491, 3491, 3491, 3491, 3980, 3980, 3980, 3980, 3981, 3982, 3491, 3983, 3984, 3985, 3986, 3987, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3988, 3988, 3988, 3988, 3988, 3989, 3990, 3991, 3991, 3992, 3993, 3491, 3994, 3995, 3996, 3986, 3997, 3491, 3491, 3491, 3491, 3998, 3491, 3999, 3999, 4000, 4000, 4001, 3491, 3491, 3491, 4002, 3491, 4003, 4004, 4005, 4005, 4006, 3165, 3165, 3491, 4007, 4008, 4007, 3491, 3165, 3491, 4009, 4009, 3177, 3491, 4009, 4009, 3491, 3491, 3165, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3165, 3165, 3165, 3491, 4010, 3491, 3491, 3491, 3491, 3491, 4011, 4011, 4011, 4011, 4011, 4012, 4013, 4014, 3491, 4015, 4016, 3491, 3491, 3491, 3491, 3491, 4017, 4017, 4017, 4017, 4017, 4018, 4019, 4019, 4020, 3491, 4021, 4022, 4023, 4024, 3491, 4025, 3491, 4026, 3491, 3491, 3491, 3491, 4027, 4028, 3184, 3165, 4029, 3165, 3165, 3491, 3491, 3491, 4030, 3491, 4030, 3252, 3491, 4030, 4030, 3491, 3491, 3491, 3491, 3491, 3257, 3257, 3491, 4030, 3258, 3258, 4030, 3491, 3491, 3184, 3252, 3252, 3491, 3261, 3184, 3491, 3491, 3491, 3491, 3491, 3165, 3165, 3165, 3491, 4031, 4032, 4031, 3491, 3491, 3491, 3491, 4033, 4033, 4033, 4033, 4033, 4034, 4035, 4036, 3491, 3491, 3491, 3491, 3491, 4037, 4037, 4037, 4037, 4037, 4038, 4039, 4039, 4040, 3491, 4041, 4042, 4043, 4044, 3491, 3491, 3491, 4045, 4046, 3252, 3491, 3165, 4047, 3261, 3165, 3491, 3252, 3491, 3491, 3332, 3332, 3332, 3332, 3491, 3491, 3340, 3491, 3491, 3491, 3344, 3491, 3491, 3491, 3491, 3491, 3165, 3165, 3491, 3491, 3491, 3491, 4048, 4049, 4049, 4049, 4050, 3491, 4051, 4052, 3491, 3491, 3491, 3491, 3491, 4053, 3491, 4053, 4054, 4055, 4055, 4056, 3491, 4045, 4046, 3491, 3165, 4057, 3332, 3332, 3332, 3491, 3339, 3339, 3379, 3342, 3342, 3491, 3332, 3491, 3343, 3332, 3396, 3346, 3491, 3491, 3165, 3491, 3491, 3491, 4049, 4058, 4051, 4059, 3491, 3491, 4053, 4053, 4060, 4060, 3491, 4045, 3332, 3417, 3491, 3379, 3165, 4061, 3491, 3491, 3416, 3332, 3392, 3394, 3393, 3491, 3491, 3165, 3491, 3491, 4049, 4058, 4062, 3491, 3491, 4059, 3491, 3491, 4063, 4063, 3491, 3417, 3416, 3165, 4064, 3423, 3491, 3417, 3393, 3491, 3491, 3165, 3491, 3491, 4049, 3491, 4062, 4065, 4065, 3165, 4066, 3451, 3491, 3165, 3491, 4049, 4067, 4067, 3165, 4068, 3491, 4069, 4069, 3165, 4070, 3491, 3491, 3165, 3491, 3491, 3165, 3165, 3165, 3165, 3165, 3491, 0, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491 } ; static yyconst flex_int16_t yy_nxt[36069] = { 0, 3491, 3491, 69, 70, 75, 69, 70, 75, 562, 563, 69, 70, 71, 72, 78, 71, 72, 704, 3491, 73, 79, 80, 76, 75, 3491, 192, 75, 81, 192, 74, 523, 193, 74, 528, 707, 524, 259, 82, 529, 259, 531, 238, 537, 194, 627, 532, 580, 538, 71, 75, 72, 71, 75, 72, 260, 621, 79, 83, 80, 84, 69, 70, 84, 540, 78, 69, 70, 238, 541, 882, 79, 80, 621, 635, 87, 88, 89, 85, 75, 545, 304, 75, 90, 304, 546, 549, 553, 82, 881, 577, 550, 554, 91, 95, 96, 523, 76, 97, 76, 621, 560, 1267, 621, 98, 99, 525, 79, 83, 80, 626, 100, 88, 83, 89, 92, 69, 70, 92, 309, 304, 101, 309, 304, 528, 87, 88, 89, 75, 565, 1694, 75, 1694, 93, 105, 106, 75, 76, 76, 75, 98, 621, 99, 91, 107, 108, 76, 102, 95, 96, 102, 109, 97, 402, 76, 570, 402, 904, 98, 99, 571, 110, 88, 83, 89, 103, 2574, 112, 105, 106, 112, 403, 574, 567, 665, 101, 567, 575, 107, 108, 107, 111, 108, 589, 600, 113, 568, 600, 590, 115, 69, 116, 115, 594, 98, 110, 99, 601, 595, 523, 117, 118, 119, 712, 524, 428, 951, 120, 428, 122, 69, 116, 122, 707, 107, 111, 108, 121, 125, 126, 117, 118, 119, 429, 621, 578, 952, 123, 127, 128, 579, 132, 125, 126, 132, 129, 117, 121, 118, 928, 135, 136, 127, 128, 428, 130, 525, 428, 528, 133, 137, 138, 139, 529, 621, 621, 117, 140, 118, 130, 577, 928, 429, 666, 127, 131, 128, 141, 581, 582, 621, 142, 135, 136, 142, 658, 695, 659, 127, 131, 128, 696, 137, 138, 139, 1222, 137, 660, 138, 143, 69, 70, 585, 75, 69, 70, 75, 586, 523, 141, 71, 72, 712, 524, 71, 72, 332, 73, 913, 332, 428, 76, 333, 428, 707, 577, 621, 74, 137, 462, 138, 74, 462, 462, 76, 621, 462, 577, 429, 713, 704, 704, 714, 1260, 334, 677, 71, 463, 72, 678, 71, 463, 72, 68, 68, 69, 70, 68, 144, 145, 68, 146, 144, 68, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 156, 156, 156, 157, 152, 158, 152, 159, 160, 161, 161, 161, 161, 161, 161, 161, 162, 163, 161, 161, 164, 165, 161, 163, 161, 161, 161, 166, 167, 168, 68, 169, 170, 171, 172, 173, 174, 175, 176, 161, 177, 161, 161, 178, 179, 180, 181, 182, 161, 183, 184, 185, 186, 187, 188, 161, 161, 161, 189, 144, 190, 191, 161, 68, 68, 69, 70, 68, 195, 145, 68, 196, 197, 198, 147, 199, 200, 201, 202, 203, 204, 68, 205, 68, 68, 68, 68, 68, 206, 207, 208, 209, 210, 211, 211, 211, 211, 211, 211, 211, 211, 212, 211, 211, 213, 214, 211, 212, 211, 211, 211, 71, 68, 72, 215, 216, 217, 218, 219, 220, 221, 222, 223, 211, 224, 211, 211, 225, 226, 227, 228, 229, 211, 230, 231, 232, 233, 234, 235, 211, 211, 211, 189, 236, 68, 237, 211, 239, 239, 69, 240, 239, 239, 241, 239, 242, 239, 239, 243, 71, 244, 245, 239, 239, 239, 239, 246, 68, 68, 68, 68, 247, 239, 239, 239, 239, 248, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 249, 251, 249, 249, 250, 249, 249, 249, 252, 253, 254, 239, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 255, 249, 249, 249, 249, 249, 239, 239, 256, 257, 258, 68, 68, 69, 70, 68, 195, 145, 68, 261, 197, 198, 147, 199, 200, 201, 202, 203, 262, 263, 205, 68, 68, 68, 68, 68, 68, 207, 208, 209, 210, 264, 264, 264, 264, 264, 264, 264, 264, 265, 264, 264, 266, 267, 264, 265, 264, 264, 264, 71, 68, 72, 215, 268, 269, 270, 271, 272, 273, 274, 275, 264, 276, 264, 264, 277, 278, 279, 280, 281, 264, 282, 283, 284, 285, 286, 287, 264, 264, 264, 68, 236, 190, 237, 264, 68, 68, 69, 70, 68, 68, 145, 68, 288, 68, 68, 289, 71, 72, 68, 68, 68, 68, 68, 73, 68, 68, 68, 68, 68, 290, 68, 68, 68, 74, 291, 291, 291, 291, 291, 291, 291, 291, 292, 291, 291, 293, 291, 291, 292, 291, 291, 291, 71, 68, 72, 68, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 294, 291, 291, 291, 291, 291, 295, 68, 68, 68, 291, 68, 296, 69, 70, 296, 68, 68, 68, 297, 298, 298, 68, 71, 72, 298, 68, 68, 68, 68, 73, 68, 68, 68, 68, 299, 300, 68, 68, 68, 74, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 71, 68, 72, 298, 302, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 303, 68, 68, 68, 301, 68, 305, 69, 70, 305, 68, 68, 68, 306, 68, 68, 68, 71, 72, 68, 68, 68, 68, 68, 73, 68, 68, 68, 68, 68, 307, 68, 68, 68, 74, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 71, 68, 72, 68, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 68, 68, 68, 68, 308, 68, 296, 310, 70, 296, 68, 68, 68, 311, 298, 298, 68, 71, 72, 298, 312, 68, 312, 68, 73, 68, 68, 68, 68, 299, 300, 68, 313, 68, 314, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 71, 68, 72, 298, 315, 316, 315, 315, 315, 317, 315, 315, 315, 318, 315, 315, 315, 315, 315, 315, 315, 315, 315, 319, 315, 315, 315, 315, 315, 315, 315, 303, 68, 68, 68, 315, 296, 69, 70, 296, 304, 69, 70, 304, 528, 69, 70, 71, 72, 529, 702, 71, 72, 702, 73, 335, 336, 476, 76, 299, 476, 621, 73, 299, 74, 915, 621, 1230, 74, 337, 499, 338, 74, 499, 509, 477, 521, 509, 526, 521, 938, 526, 2575, 71, 939, 72, 636, 71, 76, 72, 916, 71, 510, 72, 522, 535, 527, 543, 535, 521, 543, 712, 521, 637, 602, 638, 888, 602, 2576, 888, 703, 707, 812, 536, 303, 544, 603, 522, 303, 68, 320, 69, 70, 320, 68, 68, 68, 321, 68, 68, 68, 322, 72, 68, 312, 323, 312, 68, 73, 68, 68, 68, 68, 324, 68, 325, 68, 326, 327, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 71, 329, 72, 68, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 330, 328, 328, 328, 328, 328, 331, 328, 328, 328, 328, 303, 68, 68, 68, 328, 75, 69, 70, 75, 69, 340, 551, 621, 68, 551, 707, 335, 336, 895, 341, 342, 895, 621, 76, 557, 558, 343, 557, 564, 552, 337, 564, 338, 74, 1223, 68, 344, 928, 345, 69, 340, 345, 559, 68, 521, 639, 527, 521, 640, 341, 342, 621, 71, 1071, 72, 341, 346, 342, 573, 928, 1072, 573, 522, 512, 513, 68, 344, 523, 704, 928, 641, 568, 524, 514, 515, 583, 527, 642, 583, 521, 516, 643, 521, 592, 644, 341, 592, 342, 69, 70, 517, 928, 710, 584, 621, 710, 1109, 522, 71, 72, 621, 593, 621, 708, 711, 73, 708, 621, 528, 514, 1109, 518, 347, 529, 348, 74, 709, 645, 707, 957, 523, 692, 661, 577, 662, 524, 667, 646, 349, 693, 668, 663, 664, 707, 71, 694, 72, 647, 528, 943, 350, 351, 352, 529, 353, 354, 669, 355, 2577, 944, 356, 707, 357, 358, 1189, 1190, 957, 359, 360, 361, 362, 363, 68, 68, 69, 70, 68, 68, 68, 68, 364, 68, 68, 68, 71, 72, 365, 68, 68, 68, 68, 73, 68, 68, 68, 68, 366, 68, 68, 68, 367, 74, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369, 368, 368, 368, 368, 368, 71, 370, 72, 365, 368, 368, 371, 372, 373, 368, 374, 368, 368, 375, 368, 368, 376, 368, 377, 378, 368, 368, 368, 379, 368, 380, 381, 382, 368, 368, 368, 68, 68, 68, 383, 368, 384, 385, 386, 387, 385, 384, 384, 388, 389, 384, 384, 384, 390, 391, 384, 384, 384, 384, 384, 392, 384, 384, 384, 384, 393, 393, 384, 384, 384, 394, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 390, 384, 391, 384, 395, 395, 395, 396, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 397, 395, 395, 395, 398, 399, 395, 400, 395, 395, 395, 395, 401, 384, 384, 384, 395, 404, 404, 405, 406, 404, 404, 404, 404, 407, 404, 404, 404, 408, 409, 404, 404, 404, 404, 404, 410, 404, 404, 404, 404, 411, 412, 404, 404, 404, 413, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, 415, 414, 414, 414, 414, 414, 408, 404, 409, 404, 414, 414, 416, 417, 418, 414, 419, 414, 414, 420, 414, 414, 421, 414, 422, 423, 414, 414, 414, 424, 414, 425, 426, 427, 414, 414, 414, 412, 404, 404, 404, 414, 404, 404, 405, 406, 404, 404, 404, 404, 430, 404, 404, 404, 431, 409, 404, 404, 404, 404, 404, 410, 404, 404, 404, 404, 404, 412, 404, 404, 404, 413, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 408, 404, 409, 404, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 412, 404, 404, 404, 432, 404, 404, 405, 406, 404, 404, 404, 404, 433, 404, 404, 404, 408, 434, 404, 404, 404, 404, 404, 410, 404, 404, 404, 404, 404, 404, 404, 404, 404, 413, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 436, 435, 435, 435, 435, 435, 408, 404, 409, 404, 435, 435, 437, 438, 439, 435, 440, 435, 435, 441, 435, 435, 442, 435, 443, 444, 435, 435, 435, 445, 435, 446, 447, 448, 435, 435, 435, 404, 404, 404, 404, 435, 449, 449, 450, 451, 449, 449, 452, 449, 453, 449, 449, 454, 455, 456, 449, 449, 449, 449, 449, 457, 449, 449, 449, 449, 449, 449, 449, 449, 449, 458, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 460, 449, 461, 449, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 449, 449, 449, 449, 459, 449, 449, 450, 451, 449, 449, 452, 449, 464, 449, 449, 454, 455, 456, 449, 449, 449, 449, 449, 457, 449, 449, 449, 449, 449, 449, 449, 449, 449, 458, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 460, 449, 461, 449, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 449, 449, 449, 449, 465, 466, 466, 450, 467, 466, 466, 468, 466, 469, 466, 466, 466, 470, 471, 466, 466, 466, 466, 466, 472, 466, 466, 466, 466, 466, 466, 466, 466, 466, 473, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 470, 475, 471, 466, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 466, 466, 466, 466, 474, 68, 478, 479, 480, 478, 68, 68, 481, 482, 68, 68, 68, 71, 72, 68, 68, 483, 68, 68, 73, 68, 68, 68, 68, 68, 483, 68, 68, 68, 74, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 484, 485, 484, 484, 484, 484, 484, 71, 68, 72, 68, 484, 484, 486, 487, 488, 484, 489, 484, 484, 490, 484, 484, 491, 484, 492, 493, 484, 484, 484, 494, 484, 495, 496, 497, 484, 484, 484, 498, 68, 68, 68, 484, 500, 500, 501, 502, 500, 500, 500, 500, 503, 500, 500, 500, 504, 505, 500, 500, 500, 500, 500, 506, 500, 500, 500, 500, 500, 500, 500, 500, 500, 507, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 504, 500, 505, 500, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 500, 500, 500, 500, 508, 519, 512, 513, 519, 605, 605, 605, 605, 523, 1012, 525, 514, 515, 524, 710, 2284, 621, 710, 520, 1013, 617, 618, 618, 617, 887, 887, 711, 818, 517, 887, 606, 619, 620, 621, 818, 620, 700, 526, 818, 700, 526, 849, 701, 622, 620, 623, 648, 514, 649, 518, 629, 629, 629, 629, 527, 527, 650, 630, 651, 608, 606, 609, 610, 928, 521, 611, 887, 521, 624, 620, 621, 612, 613, 631, 614, 615, 616, 617, 618, 618, 617, 528, 522, 931, 621, 928, 529, 621, 619, 620, 523, 897, 620, 685, 897, 524, 686, 621, 633, 528, 622, 620, 623, 652, 529, 928, 687, 670, 525, 915, 625, 653, 621, 688, 654, 898, 673, 655, 689, 1175, 656, 671, 2578, 657, 674, 624, 620, 672, 1176, 1024, 621, 634, 1024, 675, 916, 679, 676, 626, 680, 681, 697, 697, 697, 697, 1034, 910, 920, 698, 910, 1091, 682, 1057, 1026, 683, 1035, 684, 1058, 715, 928, 716, 717, 902, 690, 718, 902, 724, 929, 691, 724, 719, 720, 930, 721, 722, 723, 724, 725, 1075, 724, 527, 928, 726, 727, 948, 949, 898, 725, 1076, 729, 2586, 730, 726, 727, 567, 724, 950, 567, 724, 729, 627, 730, 808, 808, 808, 808, 725, 568, 818, 809, 724, 726, 727, 724, 724, 818, 731, 724, 729, 818, 730, 725, 818, 2586, 885, 725, 726, 727, 850, 724, 726, 727, 724, 729, 1120, 730, 1064, 729, 1079, 730, 725, 1065, 728, 732, 724, 726, 727, 724, 1120, 525, 728, 924, 729, 728, 730, 725, 762, 626, 1080, 728, 726, 727, 728, 724, 818, 733, 724, 729, 831, 730, 600, 818, 523, 600, 725, 818, 621, 524, 832, 726, 727, 724, 734, 601, 724, 1197, 729, 521, 730, 851, 521, 724, 725, 852, 724, 1198, 818, 726, 727, 735, 818, 736, 725, 818, 729, 522, 730, 726, 727, 853, 737, 926, 2195, 738, 729, 739, 730, 818, 1115, 728, 1126, 755, 740, 756, 818, 875, 741, 728, 818, 742, 728, 876, 1115, 757, 1126, 627, 728, 743, 728, 728, 928, 758, 1116, 759, 1127, 621, 728, 744, 934, 728, 760, 761, 728, 935, 746, 728, 747, 745, 728, 528, 728, 1195, 928, 1222, 529, 764, 748, 724, 728, 765, 724, 728, 883, 728, 728, 883, 728, 728, 725, 728, 763, 1196, 728, 726, 727, 766, 728, 767, 728, 621, 729, 915, 730, 1097, 728, 884, 770, 728, 1098, 728, 728, 768, 728, 728, 621, 771, 728, 769, 772, 773, 1185, 860, 2587, 774, 1252, 861, 916, 728, 818, 749, 728, 1186, 818, 728, 728, 818, 728, 750, 775, 728, 751, 776, 777, 752, 1206, 728, 753, 918, 728, 754, 919, 728, 785, 778, 728, 728, 779, 621, 780, 781, 885, 621, 782, 728, 1017, 1018, 728, 1243, 1102, 728, 728, 731, 783, 1103, 526, 728, 1019, 526, 788, 784, 1104, 728, 621, 728, 789, 1105, 602, 728, 1110, 602, 728, 728, 527, 1111, 728, 1245, 786, 728, 603, 661, 728, 787, 728, 728, 790, 986, 986, 986, 986, 791, 728, 2209, 987, 728, 896, 521, 728, 896, 521, 728, 621, 621, 728, 794, 795, 795, 794, 794, 795, 795, 794, 1221, 527, 522, 796, 1039, 1040, 884, 796, 1121, 794, 795, 795, 794, 1122, 627, 798, 1041, 799, 661, 798, 796, 799, 802, 802, 802, 802, 1132, 621, 818, 803, 877, 1133, 798, 1131, 799, 878, 801, 1106, 932, 818, 800, 932, 818, 928, 800, 804, 1107, 1131, 794, 795, 795, 794, 794, 795, 795, 794, 933, 800, 1117, 796, 1142, 885, 1109, 796, 621, 928, 2596, 1118, 1249, 807, 805, 798, 818, 799, 1142, 798, 1109, 799, 1128, 818, 1108, 813, 814, 833, 813, 834, 818, 1129, 801, 621, 1139, 526, 815, 1266, 526, 835, 800, 816, 817, 1140, 800, 1119, 889, 806, 729, 889, 730, 813, 814, 527, 813, 813, 814, 890, 813, 1137, 627, 1062, 815, 2597, 1062, 1130, 815, 816, 817, 892, 1143, 816, 817, 1137, 729, 1144, 730, 1141, 729, 1063, 730, 813, 814, 1138, 813, 813, 814, 521, 813, 2214, 521, 819, 815, 1109, 893, 1159, 815, 816, 817, 621, 526, 816, 817, 526, 729, 522, 730, 1109, 729, 1159, 730, 1258, 813, 814, 820, 813, 921, 1081, 527, 921, 1082, 1083, 922, 815, 1093, 581, 582, 1093, 816, 817, 813, 814, 1084, 813, 527, 729, 821, 730, 621, 577, 1100, 815, 1094, 1100, 923, 1169, 816, 817, 2216, 836, 1264, 813, 814, 729, 813, 730, 818, 837, 1101, 1169, 838, 1148, 815, 839, 577, 822, 840, 816, 817, 841, 521, 1219, 577, 521, 729, 1148, 730, 1115, 621, 818, 558, 842, 823, 843, 824, 1149, 818, 1741, 522, 1220, 818, 1115, 1150, 844, 885, 818, 825, 1151, 845, 826, 846, 1116, 818, 827, 818, 854, 818, 847, 848, 818, 828, 818, 621, 818, 829, 818, 621, 830, 818, 855, 818, 857, 1300, 1224, 818, 856, 526, 818, 818, 526, 858, 1112, 862, 859, 818, 863, 864, 872, 868, 818, 1113, 869, 818, 889, 527, 818, 889, 865, 818, 621, 866, 870, 867, 1115, 890, 1114, 819, 1295, 871, 1110, 959, 960, 960, 959, 1170, 2598, 892, 1115, 818, 1228, 959, 960, 960, 959, 1108, 818, 621, 1116, 1171, 818, 621, 873, 818, 962, 1299, 963, 874, 959, 960, 960, 959, 893, 1171, 962, 894, 963, 1152, 966, 966, 966, 966, 621, 1172, 965, 967, 1153, 1160, 1250, 964, 621, 962, 1161, 963, 959, 960, 960, 959, 2305, 964, 959, 960, 960, 959, 959, 960, 960, 959, 959, 960, 960, 959, 1051, 1051, 1051, 1051, 964, 962, 535, 963, 1108, 535, 577, 962, 1231, 963, 621, 962, 957, 963, 1232, 962, 621, 963, 970, 1053, 536, 543, 1167, 1168, 543, 1167, 964, 1244, 551, 621, 564, 551, 964, 564, 1222, 1229, 964, 971, 583, 544, 964, 583, 621, 969, 972, 1054, 552, 975, 527, 957, 973, 974, 959, 960, 960, 959, 584, 976, 959, 960, 960, 959, 959, 960, 960, 959, 959, 960, 960, 959, 621, 959, 960, 960, 959, 962, 1254, 963, 1327, 557, 558, 962, 557, 963, 1123, 962, 577, 963, 1328, 962, 2599, 963, 1134, 1124, 962, 592, 963, 559, 592, 573, 964, 1135, 573, 621, 1192, 621, 964, 1193, 1125, 1263, 964, 1272, 568, 593, 964, 979, 1136, 527, 977, 964, 959, 960, 960, 959, 621, 980, 981, 1119, 621, 1253, 978, 959, 960, 960, 959, 1130, 983, 982, 989, 989, 990, 989, 2350, 962, 621, 963, 1156, 996, 989, 990, 996, 1251, 621, 1145, 962, 1157, 963, 1154, 990, 990, 990, 990, 1146, 1226, 1227, 522, 1155, 1106, 964, 1004, 989, 990, 1004, 621, 1275, 1162, 1107, 1147, 1265, 964, 621, 1114, 1315, 1165, 1163, 985, 984, 527, 1225, 1158, 577, 621, 991, 1316, 621, 1246, 1141, 1165, 621, 1164, 1108, 991, 1247, 621, 992, 621, 1248, 1166, 993, 1257, 1108, 994, 991, 992, 2313, 1222, 995, 993, 1158, 577, 994, 621, 1276, 991, 992, 995, 1259, 577, 993, 1259, 1268, 994, 621, 621, 1269, 992, 995, 621, 1289, 993, 621, 1288, 994, 990, 990, 990, 990, 995, 1055, 1055, 2600, 1055, 1055, 1055, 1697, 1055, 1697, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1066, 990, 990, 1066, 1055, 1055, 1055, 1055, 1055, 1055, 990, 990, 990, 990, 1706, 1112, 1706, 621, 522, 621, 1088, 990, 990, 1088, 1113, 1690, 1283, 1270, 1055, 991, 1055, 1055, 621, 697, 697, 697, 697, 1689, 527, 1114, 698, 992, 1271, 710, 1177, 993, 710, 1177, 994, 1284, 621, 1178, 662, 995, 991, 711, 1179, 601, 1108, 1055, 1055, 1055, 1055, 621, 991, 621, 992, 1180, 1285, 702, 993, 1255, 702, 994, 991, 1256, 992, 621, 995, 558, 993, 1261, 621, 994, 621, 1273, 992, 1290, 995, 1262, 993, 1274, 1182, 994, 617, 618, 618, 617, 995, 621, 1296, 605, 605, 605, 605, 619, 620, 621, 1298, 620, 1297, 621, 1304, 629, 629, 629, 629, 622, 620, 623, 630, 1277, 1278, 621, 1279, 1183, 558, 606, 1280, 703, 621, 1291, 1639, 1200, 1200, 1281, 631, 1640, 1201, 1201, 1292, 1286, 624, 620, 617, 618, 618, 617, 621, 1202, 2233, 617, 618, 618, 617, 619, 620, 606, 1287, 620, 621, 633, 619, 620, 1282, 915, 620, 622, 620, 623, 1322, 1293, 1222, 1323, 622, 620, 963, 2602, 621, 621, 1301, 1308, 1309, 1302, 1319, 1320, 618, 618, 618, 618, 916, 1294, 624, 620, 634, 662, 928, 619, 620, 624, 620, 620, 1200, 1173, 1203, 1203, 1203, 1203, 1690, 622, 620, 1204, 1689, 629, 629, 629, 629, 1325, 928, 1779, 630, 3491, 3491, 3491, 3491, 1780, 708, 631, 3491, 708, 1209, 1210, 1210, 1209, 624, 620, 631, 1326, 915, 709, 702, 619, 620, 702, 3491, 620, 888, 895, 724, 888, 895, 724, 633, 1212, 620, 1213, 621, 1215, 1215, 1215, 1215, 633, 1856, 916, 1216, 697, 697, 697, 697, 3491, 1205, 729, 698, 730, 3491, 3491, 3491, 3491, 1214, 620, 631, 3491, 1633, 1633, 1845, 634, 1305, 1306, 1306, 1305, 700, 621, 888, 700, 634, 888, 701, 619, 620, 1556, 703, 620, 3491, 724, 889, 633, 724, 889, 527, 1311, 620, 963, 1311, 1696, 725, 890, 1312, 1695, 1557, 726, 727, 1313, 709, 1708, 895, 1708, 729, 895, 730, 808, 808, 808, 808, 2236, 1525, 620, 809, 1526, 1218, 1233, 1234, 1235, 1235, 1234, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1236, 1237, 1233, 1233, 1237, 1233, 1233, 1233, 724, 1610, 1855, 724, 1238, 1237, 1239, 1233, 1233, 1233, 724, 725, 1717, 724, 1717, 915, 726, 727, 621, 883, 1611, 725, 883, 729, 1222, 730, 726, 727, 1233, 1240, 1237, 1233, 1624, 729, 621, 730, 808, 808, 808, 808, 916, 724, 884, 809, 724, 1529, 627, 3491, 3491, 3491, 3491, 1625, 725, 1241, 3491, 1222, 621, 726, 727, 1233, 1233, 1233, 1233, 1242, 729, 724, 730, 1532, 724, 1310, 1533, 1551, 1842, 621, 1551, 724, 725, 897, 724, 1666, 897, 726, 727, 1719, 1667, 1719, 725, 915, 729, 577, 730, 726, 727, 724, 887, 887, 724, 885, 729, 887, 730, 898, 758, 724, 725, 902, 724, 2242, 902, 726, 727, 1728, 916, 1728, 725, 2610, 729, 928, 730, 726, 727, 724, 1658, 527, 724, 1538, 729, 1332, 730, 898, 1539, 724, 725, 1530, 724, 621, 887, 726, 727, 928, 1551, 1659, 725, 1551, 729, 1333, 730, 726, 727, 724, 1024, 2302, 724, 1024, 729, 910, 730, 1696, 910, 724, 725, 2252, 724, 1334, 915, 726, 727, 1335, 1591, 1695, 725, 1591, 729, 1026, 730, 726, 727, 1428, 1429, 1429, 1428, 1638, 729, 724, 730, 1786, 724, 724, 796, 916, 724, 1674, 1336, 963, 725, 1638, 1675, 1337, 725, 726, 727, 1527, 1862, 726, 727, 1338, 729, 1528, 730, 621, 729, 724, 730, 1662, 724, 724, 1663, 1730, 724, 1730, 3491, 2614, 725, 1537, 928, 1687, 725, 726, 727, 1339, 1340, 726, 727, 885, 729, 1341, 730, 1537, 729, 1342, 730, 1758, 1644, 1758, 724, 1880, 928, 724, 724, 1673, 1062, 724, 621, 1062, 1024, 725, 1644, 1024, 621, 725, 726, 727, 1807, 1673, 726, 727, 1645, 729, 1063, 730, 3491, 729, 1344, 730, 2618, 1687, 1343, 1026, 1345, 1346, 1347, 1346, 1346, 1347, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1346, 1349, 1350, 1346, 724, 1819, 1824, 724, 1351, 1346, 1352, 1346, 1346, 1346, 1355, 725, 928, 621, 621, 1093, 726, 727, 1093, 1356, 621, 724, 661, 729, 724, 730, 1534, 928, 1346, 1346, 1346, 1346, 725, 1094, 928, 1535, 3491, 726, 727, 814, 814, 1736, 814, 1635, 729, 1024, 730, 662, 1024, 928, 815, 1793, 1636, 1353, 724, 816, 817, 724, 621, 1346, 1346, 1346, 1346, 1354, 724, 725, 2619, 724, 1026, 1536, 726, 727, 1357, 889, 621, 725, 889, 729, 3491, 730, 726, 727, 724, 1736, 890, 724, 1637, 729, 1358, 730, 621, 1100, 1359, 725, 1100, 1806, 892, 724, 726, 727, 724, 794, 795, 795, 794, 729, 1817, 730, 725, 1101, 621, 1828, 796, 726, 727, 724, 889, 1360, 724, 889, 729, 893, 730, 1840, 798, 621, 725, 890, 1679, 1361, 724, 726, 727, 724, 724, 1670, 621, 724, 729, 892, 730, 725, 1679, 1833, 1671, 725, 726, 727, 1362, 800, 726, 727, 1680, 729, 621, 730, 1681, 729, 1683, 730, 724, 2620, 1839, 724, 893, 1681, 1363, 802, 802, 802, 802, 725, 1683, 621, 803, 1364, 726, 727, 1672, 621, 1682, 724, 1684, 729, 724, 730, 959, 960, 960, 959, 804, 889, 725, 2292, 889, 1365, 1685, 726, 727, 1366, 1685, 1832, 890, 1367, 729, 621, 730, 724, 1721, 962, 724, 963, 1691, 547, 892, 805, 1761, 896, 725, 1761, 896, 1691, 1841, 726, 727, 1368, 1379, 1380, 1380, 1379, 729, 1335, 730, 621, 964, 527, 1114, 725, 621, 893, 884, 1805, 726, 727, 1167, 1168, 1517, 1167, 806, 729, 2621, 730, 1369, 1370, 1371, 1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1372, 1370, 1370, 1370, 1370, 1373, 1374, 1370, 1818, 1378, 1823, 621, 1375, 1370, 1376, 1370, 1370, 1370, 724, 621, 2318, 724, 1820, 621, 1381, 621, 1692, 1829, 932, 725, 885, 932, 1382, 928, 726, 727, 1370, 1370, 1370, 1370, 1692, 729, 621, 730, 1752, 1753, 933, 1752, 1830, 724, 1116, 621, 724, 1843, 1641, 928, 959, 960, 960, 959, 725, 1704, 1754, 1642, 621, 726, 727, 1370, 1370, 1370, 1370, 1377, 729, 724, 730, 1704, 724, 724, 1643, 1564, 724, 963, 1676, 1383, 725, 1127, 1690, 1689, 725, 726, 727, 1677, 724, 726, 727, 724, 729, 1637, 730, 1831, 729, 621, 730, 725, 964, 621, 1678, 724, 726, 727, 724, 724, 2304, 621, 724, 729, 1834, 730, 725, 621, 1384, 1851, 725, 726, 727, 1672, 1703, 726, 727, 1714, 729, 1848, 730, 1743, 729, 1703, 730, 1385, 1714, 1725, 621, 724, 621, 921, 724, 1835, 921, 2310, 1725, 922, 1125, 1335, 725, 1136, 621, 1386, 1852, 726, 727, 724, 621, 527, 724, 1147, 729, 1715, 730, 1388, 1387, 724, 725, 923, 724, 1836, 2622, 726, 727, 1543, 928, 1715, 725, 1863, 729, 621, 730, 726, 727, 724, 621, 1138, 724, 1543, 729, 928, 730, 1690, 1689, 1389, 725, 1689, 928, 1544, 724, 726, 727, 724, 621, 1696, 1695, 1860, 729, 1695, 730, 725, 1726, 928, 1696, 1695, 726, 727, 724, 885, 1685, 724, 1390, 729, 1685, 730, 1726, 1391, 724, 725, 661, 724, 547, 1392, 726, 727, 1149, 1722, 1393, 725, 1689, 729, 621, 730, 726, 727, 724, 558, 621, 724, 1733, 729, 1695, 730, 662, 621, 724, 725, 2315, 724, 1394, 1750, 726, 727, 1733, 1844, 621, 725, 2623, 729, 1853, 730, 726, 727, 1734, 621, 1395, 724, 1396, 729, 724, 730, 1397, 1423, 1423, 1423, 1423, 1756, 725, 1398, 803, 1399, 724, 726, 727, 724, 1540, 928, 1847, 1335, 729, 1756, 730, 725, 1690, 1541, 804, 724, 726, 727, 724, 1172, 1400, 621, 1401, 729, 1689, 730, 725, 928, 1542, 1864, 621, 726, 727, 724, 1690, 1689, 724, 1403, 729, 805, 730, 1402, 621, 1689, 725, 1821, 1822, 1536, 724, 726, 727, 724, 724, 2626, 1404, 724, 729, 577, 730, 725, 1405, 1884, 1693, 725, 726, 727, 1693, 724, 726, 727, 724, 729, 806, 730, 1721, 729, 621, 730, 725, 547, 1406, 1689, 724, 726, 727, 724, 577, 1748, 2627, 1748, 729, 1849, 730, 725, 621, 621, 1866, 1407, 726, 727, 794, 795, 795, 794, 1410, 729, 2628, 730, 1408, 1259, 724, 796, 1259, 724, 1876, 621, 1751, 1409, 1751, 1685, 1685, 725, 731, 798, 1411, 799, 726, 727, 759, 724, 1850, 1738, 724, 729, 1412, 730, 576, 1740, 1873, 724, 725, 621, 724, 621, 2629, 726, 727, 1854, 800, 1857, 725, 621, 729, 1858, 730, 726, 727, 621, 724, 1859, 1875, 724, 729, 621, 730, 1846, 1739, 577, 724, 725, 1413, 724, 1200, 1200, 726, 727, 621, 1201, 1201, 725, 1414, 729, 621, 730, 726, 727, 1869, 724, 1202, 1415, 724, 729, 2614, 730, 795, 795, 795, 795, 725, 966, 966, 966, 966, 726, 727, 796, 967, 1867, 1416, 621, 729, 1868, 730, 794, 795, 795, 794, 798, 1417, 621, 1791, 1418, 621, 1872, 796, 1696, 1695, 1419, 794, 795, 795, 794, 621, 627, 1695, 621, 798, 1865, 799, 796, 1882, 1200, 800, 802, 802, 802, 802, 1420, 1685, 1685, 803, 798, 1685, 799, 2246, 3491, 3491, 3491, 3491, 2247, 1699, 800, 3491, 1745, 1222, 530, 804, 1424, 1424, 1424, 1424, 1877, 1695, 621, 1425, 621, 800, 1745, 3491, 1208, 969, 794, 795, 795, 794, 813, 814, 1166, 813, 621, 804, 805, 796, 1883, 1878, 1685, 815, 1051, 1051, 1051, 1051, 816, 817, 3491, 798, 621, 799, 577, 729, 621, 730, 986, 986, 986, 986, 805, 813, 814, 987, 813, 1053, 801, 1879, 621, 806, 2357, 1693, 815, 558, 800, 1693, 1731, 816, 817, 813, 814, 3491, 813, 547, 729, 1731, 730, 1881, 1722, 621, 815, 1054, 2643, 1427, 1551, 816, 817, 1551, 813, 814, 1732, 813, 729, 627, 730, 986, 986, 986, 986, 815, 1861, 1885, 987, 1861, 816, 817, 813, 814, 1870, 813, 1744, 729, 2658, 730, 1886, 621, 621, 815, 621, 1744, 1871, 2214, 816, 817, 813, 814, 1903, 813, 2167, 729, 2167, 730, 1904, 2213, 1164, 815, 1051, 1051, 1051, 1051, 816, 817, 2169, 845, 2169, 813, 814, 729, 813, 730, 1567, 1567, 1567, 1567, 577, 1890, 815, 967, 1890, 1053, 621, 816, 817, 813, 814, 915, 813, 621, 729, 2069, 730, 1891, 1892, 2294, 815, 2070, 1431, 2076, 621, 816, 817, 813, 814, 2077, 813, 1054, 729, 621, 730, 915, 916, 2202, 815, 2202, 1432, 2337, 2343, 816, 817, 724, 813, 814, 724, 813, 729, 621, 730, 960, 960, 960, 960, 815, 2347, 2073, 916, 1433, 816, 817, 813, 814, 928, 813, 729, 729, 730, 730, 2205, 1434, 2205, 815, 1564, 969, 2646, 2673, 816, 817, 915, 813, 814, 2072, 813, 729, 928, 730, 3491, 3491, 3491, 3491, 815, 621, 928, 3491, 1435, 816, 817, 964, 966, 966, 966, 966, 729, 916, 730, 967, 813, 814, 1436, 813, 813, 814, 1311, 813, 928, 1311, 1437, 815, 2074, 1312, 915, 815, 816, 817, 1313, 709, 816, 817, 2083, 729, 2165, 730, 2676, 729, 1690, 730, 813, 814, 2085, 813, 813, 814, 621, 813, 2165, 916, 2207, 815, 2207, 1438, 1439, 815, 816, 817, 1645, 2309, 816, 817, 1440, 729, 2085, 730, 1441, 729, 2677, 730, 813, 814, 2075, 813, 813, 814, 2210, 813, 2210, 724, 1696, 815, 724, 969, 2092, 815, 816, 817, 621, 1911, 816, 817, 1911, 729, 1690, 730, 1912, 729, 1689, 730, 1689, 1443, 729, 2300, 730, 1442, 2092, 1444, 1346, 1445, 1446, 1346, 1445, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1447, 1346, 1346, 1346, 1346, 1448, 1449, 1346, 813, 814, 1696, 813, 1351, 1346, 1352, 1346, 1346, 1346, 2157, 815, 1452, 1689, 1695, 2198, 816, 817, 1453, 2158, 2158, 813, 814, 729, 813, 730, 1689, 2681, 1346, 1346, 1346, 1346, 815, 3491, 3491, 3491, 3491, 816, 817, 1174, 3491, 1685, 2194, 2323, 729, 621, 730, 1092, 1760, 1760, 1760, 1760, 621, 1450, 1051, 1051, 1051, 1051, 662, 1346, 1346, 1346, 1346, 1451, 2204, 813, 814, 1454, 813, 813, 814, 1455, 813, 2651, 1760, 1695, 815, 1053, 2612, 621, 815, 816, 817, 928, 1456, 816, 817, 1690, 729, 2216, 730, 1689, 729, 2189, 730, 813, 814, 928, 813, 813, 814, 2215, 813, 1054, 1760, 928, 815, 2189, 621, 621, 815, 816, 817, 2200, 3491, 816, 817, 2190, 729, 928, 730, 2316, 729, 2299, 730, 813, 814, 2200, 813, 621, 1457, 1769, 1769, 1769, 1769, 1458, 815, 1680, 1770, 577, 2293, 816, 817, 724, 813, 814, 724, 813, 729, 2603, 730, 959, 960, 960, 959, 815, 2090, 2692, 2090, 1460, 816, 817, 813, 814, 1459, 813, 729, 729, 730, 730, 2093, 2214, 2093, 815, 962, 2213, 963, 2164, 816, 817, 813, 814, 2693, 813, 621, 729, 2164, 730, 2087, 928, 1461, 815, 959, 960, 960, 959, 816, 817, 2321, 964, 1696, 1643, 2087, 729, 1695, 730, 1695, 813, 814, 1462, 813, 928, 1544, 1463, 2344, 962, 621, 963, 815, 1380, 1380, 1380, 1380, 816, 817, 813, 814, 1464, 813, 975, 729, 3491, 730, 1434, 3491, 1696, 815, 621, 3491, 1695, 964, 816, 817, 3491, 3491, 2216, 2299, 1695, 729, 2215, 730, 1465, 1370, 1466, 1467, 1370, 1466, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370, 1469, 1470, 1370, 1685, 1685, 1472, 621, 1375, 1370, 1376, 1370, 1370, 1370, 813, 814, 576, 813, 2322, 1910, 1473, 1740, 1690, 1689, 2111, 815, 1689, 2111, 1474, 2187, 816, 817, 1370, 1370, 1370, 1370, 577, 729, 2187, 730, 2235, 989, 989, 990, 989, 813, 814, 2112, 813, 1685, 1092, 1739, 2345, 2188, 621, 2195, 815, 1788, 1789, 1789, 1788, 816, 817, 1370, 1370, 1370, 1370, 1471, 729, 1689, 730, 813, 814, 1685, 813, 813, 814, 2080, 813, 1475, 1790, 1591, 815, 1898, 1591, 2081, 815, 816, 817, 2267, 927, 816, 817, 2268, 729, 991, 730, 621, 729, 2080, 730, 813, 814, 2624, 813, 1791, 963, 992, 2328, 1693, 2194, 993, 815, 2625, 994, 1092, 1476, 816, 817, 995, 813, 814, 1591, 813, 729, 1591, 730, 1693, 1693, 1685, 1685, 815, 2696, 1685, 621, 1477, 816, 817, 2301, 1738, 621, 530, 2355, 729, 576, 730, 1700, 963, 621, 1434, 813, 814, 2308, 813, 813, 814, 1761, 813, 621, 1761, 2199, 815, 1693, 1092, 1478, 815, 816, 817, 2195, 2199, 816, 817, 2335, 729, 1747, 730, 1685, 729, 621, 730, 2356, 1479, 813, 814, 1678, 813, 813, 814, 621, 813, 2312, 2214, 2213, 815, 621, 2213, 2324, 815, 816, 817, 621, 2317, 816, 817, 558, 729, 1480, 730, 2230, 729, 1481, 730, 813, 814, 1685, 813, 813, 814, 2080, 813, 556, 621, 621, 815, 662, 556, 927, 815, 816, 817, 2326, 2082, 816, 817, 621, 729, 2351, 730, 2213, 729, 2080, 730, 1802, 1802, 1802, 1802, 1483, 1482, 928, 1803, 813, 814, 1484, 813, 2086, 928, 2697, 959, 960, 960, 959, 815, 2581, 2086, 2581, 1485, 816, 817, 813, 814, 928, 813, 2698, 729, 558, 730, 1486, 928, 1542, 815, 1564, 2231, 963, 2231, 816, 817, 813, 814, 2584, 813, 2584, 729, 621, 730, 1200, 1200, 621, 815, 1222, 1796, 1796, 1259, 816, 817, 1259, 964, 2699, 2303, 1487, 729, 1797, 730, 813, 814, 1488, 813, 2664, 1988, 1988, 1988, 1988, 1489, 621, 815, 1989, 621, 1696, 1695, 816, 817, 1695, 1490, 621, 813, 814, 729, 813, 730, 2319, 1434, 990, 990, 990, 990, 815, 621, 621, 2307, 1222, 816, 817, 2234, 1491, 2234, 581, 582, 729, 2298, 730, 621, 661, 813, 814, 1200, 813, 813, 814, 621, 813, 2700, 1492, 2327, 815, 1695, 2314, 2214, 815, 816, 817, 1693, 1693, 816, 817, 1693, 729, 1494, 730, 2213, 729, 1493, 730, 1699, 813, 814, 991, 813, 530, 1203, 1203, 1203, 1203, 577, 1495, 815, 1204, 2665, 992, 621, 816, 817, 993, 813, 814, 994, 813, 729, 2320, 730, 995, 621, 631, 1496, 815, 1690, 1689, 2329, 1693, 816, 817, 621, 1497, 621, 813, 814, 729, 813, 730, 959, 960, 960, 959, 2583, 1693, 815, 2325, 633, 2089, 2198, 816, 817, 813, 814, 2208, 813, 2081, 729, 1498, 730, 1689, 927, 962, 815, 963, 1205, 2647, 621, 816, 817, 2089, 2332, 1743, 1499, 621, 729, 2666, 730, 813, 814, 634, 813, 1500, 621, 2216, 2215, 1501, 964, 2215, 815, 1685, 1685, 915, 889, 816, 817, 889, 813, 814, 1685, 813, 729, 1710, 730, 890, 1569, 1502, 539, 815, 2701, 846, 2236, 2237, 816, 817, 2704, 892, 916, 819, 1503, 729, 621, 730, 813, 814, 2495, 813, 813, 814, 621, 813, 2215, 2214, 2213, 815, 2216, 2336, 1685, 815, 816, 817, 893, 2338, 816, 817, 2705, 729, 2215, 730, 2062, 729, 2212, 730, 813, 814, 2212, 813, 1504, 1743, 959, 960, 960, 959, 547, 815, 581, 582, 1505, 547, 816, 817, 2641, 2706, 621, 813, 814, 729, 813, 730, 2241, 2707, 915, 962, 1506, 963, 815, 1752, 1753, 661, 1752, 816, 817, 813, 814, 621, 813, 1507, 729, 2342, 730, 621, 1690, 1689, 815, 1754, 2652, 916, 964, 816, 817, 1689, 1570, 577, 1508, 621, 729, 1509, 730, 959, 960, 960, 959, 959, 960, 960, 959, 959, 960, 960, 959, 2497, 621, 1898, 1510, 959, 960, 960, 959, 1693, 1693, 2370, 962, 1693, 963, 2371, 962, 2358, 963, 1689, 962, 530, 963, 1511, 2340, 2590, 1700, 621, 962, 621, 963, 1428, 1429, 1429, 1428, 724, 2213, 964, 724, 2341, 2359, 964, 796, 1200, 1200, 964, 725, 621, 1201, 1201, 2346, 726, 727, 964, 1571, 621, 1693, 661, 729, 1202, 730, 1696, 1695, 1573, 1590, 1572, 1370, 1574, 1575, 1575, 1574, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 959, 960, 960, 959, 1576, 1370, 1577, 1370, 1370, 1370, 959, 960, 960, 959, 928, 2718, 959, 960, 960, 959, 1693, 1915, 1750, 962, 2089, 963, 1200, 2082, 1370, 1578, 1370, 1370, 927, 962, 2214, 963, 928, 2082, 2213, 962, 2695, 963, 959, 960, 960, 959, 2089, 892, 964, 959, 960, 960, 959, 959, 960, 960, 959, 2204, 964, 1370, 1370, 1370, 1370, 1579, 964, 962, 1911, 963, 1695, 1911, 2774, 975, 962, 1912, 963, 1580, 962, 1893, 963, 1581, 1893, 959, 960, 960, 959, 959, 960, 960, 959, 1313, 964, 959, 960, 960, 959, 1693, 1693, 964, 2775, 2776, 2645, 964, 3491, 1582, 962, 3491, 963, 576, 962, 3491, 963, 1584, 1740, 621, 962, 1583, 963, 996, 989, 990, 996, 2242, 2243, 1004, 989, 990, 1004, 915, 2777, 964, 1585, 1685, 1685, 964, 2656, 522, 2592, 2214, 2213, 964, 1685, 527, 1747, 539, 1693, 1693, 2213, 2215, 1711, 621, 1586, 1588, 916, 1693, 1589, 1587, 1710, 1693, 1693, 1809, 1893, 539, 1809, 1893, 2496, 2778, 1693, 1312, 1750, 539, 2111, 991, 1313, 2111, 1711, 2348, 2349, 991, 1685, 1894, 1894, 1894, 1894, 992, 2213, 1177, 2779, 993, 1177, 992, 994, 1693, 1178, 993, 2780, 995, 994, 1179, 601, 2216, 2215, 995, 1055, 1055, 1693, 1055, 1055, 1055, 1180, 1055, 2785, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1066, 990, 990, 1066, 1055, 1055, 1055, 1055, 1055, 1055, 2786, 1182, 1379, 1380, 1380, 1379, 1752, 1753, 522, 1752, 3491, 2659, 3491, 3491, 2245, 3491, 3491, 3491, 1055, 3491, 1055, 1055, 3491, 3491, 1754, 729, 621, 730, 1429, 1429, 1429, 1429, 2787, 3491, 1183, 1088, 990, 990, 1088, 796, 1769, 1769, 1769, 1769, 991, 2212, 2212, 1770, 1222, 1055, 1055, 1055, 1055, 527, 2212, 1631, 992, 539, 3491, 2214, 993, 621, 539, 994, 2561, 2561, 2545, 2547, 995, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 991, 2608, 3491, 2212, 1370, 1370, 1370, 1370, 1370, 1370, 2608, 2216, 992, 915, 3491, 2215, 993, 3491, 2216, 994, 1768, 1768, 1768, 1768, 995, 2609, 2789, 1178, 1370, 1370, 1370, 1370, 3491, 3491, 3491, 3491, 3491, 3491, 916, 1696, 1695, 3491, 2494, 3491, 1428, 1429, 1429, 1428, 1695, 943, 1985, 1985, 1985, 1985, 2650, 796, 928, 3491, 621, 1370, 1370, 1370, 1370, 1651, 617, 618, 618, 617, 3491, 1209, 1210, 1210, 1209, 804, 724, 619, 620, 724, 928, 620, 619, 620, 3491, 2550, 620, 725, 1695, 622, 620, 623, 726, 727, 1212, 620, 963, 2352, 621, 729, 805, 730, 2353, 1183, 1222, 2501, 2790, 2354, 960, 960, 960, 960, 1690, 1222, 624, 620, 2085, 3491, 621, 1214, 620, 1210, 1210, 1210, 1210, 621, 1759, 1762, 1763, 1763, 1762, 1564, 619, 620, 1178, 621, 620, 2667, 2085, 1179, 1209, 1210, 1210, 1209, 1212, 620, 1764, 1764, 1764, 1764, 1765, 619, 620, 1222, 2214, 620, 964, 621, 2505, 1798, 1798, 1798, 1798, 1212, 620, 1213, 630, 2791, 661, 1214, 620, 1215, 1215, 1215, 1215, 1767, 724, 661, 1216, 724, 2505, 621, 631, 3491, 3491, 3491, 3491, 725, 1214, 620, 3491, 621, 726, 727, 631, 581, 582, 3491, 943, 729, 3491, 730, 1799, 1799, 1799, 1799, 3491, 633, 1183, 617, 618, 618, 617, 619, 959, 960, 960, 959, 2212, 633, 619, 620, 2503, 943, 620, 631, 724, 1801, 943, 724, 927, 3491, 622, 620, 623, 927, 1889, 1564, 724, 963, 634, 724, 577, 724, 2503, 621, 724, 943, 2644, 729, 633, 730, 1218, 1890, 725, 2549, 1890, 624, 620, 726, 727, 729, 964, 730, 3491, 621, 729, 2671, 730, 1891, 1892, 3491, 3491, 2792, 3491, 3491, 1792, 1808, 1809, 1810, 1810, 1809, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 1825, 1826, 1826, 1825, 1813, 1812, 1814, 1808, 1808, 1808, 1696, 1827, 620, 2216, 2092, 620, 1914, 2507, 2660, 1203, 1203, 1203, 1203, 622, 620, 963, 1204, 621, 1808, 1815, 1812, 1808, 1826, 1826, 1826, 1826, 2092, 2216, 2215, 2507, 2548, 1222, 631, 1827, 620, 1012, 2215, 620, 624, 620, 1423, 1423, 1423, 1423, 621, 622, 620, 803, 1222, 1808, 1808, 1808, 1808, 1816, 2793, 2661, 724, 633, 2669, 724, 1200, 1200, 621, 804, 621, 1796, 1796, 725, 728, 621, 624, 620, 726, 727, 2215, 1205, 1797, 2214, 2213, 729, 2717, 730, 1567, 1567, 1567, 1567, 2213, 2794, 805, 2109, 634, 1233, 1234, 1235, 1235, 1837, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1236, 1237, 1233, 1233, 1237, 1233, 1233, 1233, 1259, 618, 618, 1259, 1238, 1237, 1239, 1233, 1233, 1233, 806, 619, 620, 2213, 1551, 620, 1916, 1551, 1200, 1567, 1567, 1567, 1567, 622, 620, 963, 967, 2668, 1233, 1240, 1237, 1233, 1305, 1306, 1306, 1305, 621, 1838, 1567, 1567, 1567, 1567, 662, 619, 620, 967, 621, 620, 624, 620, 1551, 2795, 969, 1551, 2796, 3491, 620, 963, 3491, 1233, 1233, 1233, 1233, 1242, 1306, 1306, 1306, 1306, 2212, 2212, 2508, 1305, 1306, 1306, 1305, 619, 620, 2804, 2805, 620, 576, 620, 619, 620, 2806, 576, 620, 724, 620, 3491, 724, 724, 3491, 2662, 724, 620, 963, 621, 725, 2672, 969, 2663, 725, 726, 727, 621, 2542, 726, 727, 621, 729, 2678, 730, 620, 729, 2239, 730, 2807, 2543, 969, 620, 1917, 1918, 1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917, 724, 2679, 2691, 724, 1922, 1917, 1923, 1917, 1917, 1917, 2670, 725, 1335, 1925, 621, 2544, 726, 727, 2214, 2213, 621, 724, 2213, 729, 724, 730, 2674, 621, 1917, 1917, 1917, 1917, 725, 2253, 2253, 2253, 2253, 726, 727, 1690, 1178, 621, 2675, 1689, 729, 1689, 730, 3491, 3491, 3491, 3491, 2680, 1926, 724, 3491, 3491, 724, 621, 3491, 1917, 1917, 1917, 1917, 1924, 725, 2213, 621, 1222, 724, 726, 727, 724, 724, 2216, 2215, 724, 729, 759, 730, 725, 621, 2817, 2215, 725, 726, 727, 1689, 724, 726, 727, 724, 729, 621, 730, 661, 729, 3491, 730, 725, 3491, 661, 1012, 724, 726, 727, 724, 724, 1927, 2818, 724, 729, 621, 730, 725, 1183, 2206, 1092, 725, 726, 727, 2215, 1092, 726, 727, 1012, 729, 1012, 730, 1685, 729, 724, 730, 1685, 724, 1685, 1012, 1012, 758, 2212, 1092, 2160, 725, 1928, 2682, 1092, 1055, 726, 727, 724, 2214, 2213, 724, 2546, 729, 1931, 730, 1012, 1929, 1930, 725, 621, 2819, 1932, 724, 726, 727, 724, 959, 960, 960, 959, 729, 2686, 730, 725, 1685, 621, 2820, 724, 726, 727, 724, 724, 1933, 2593, 724, 729, 2593, 730, 725, 962, 2684, 963, 725, 726, 727, 2241, 2821, 726, 727, 1934, 729, 2594, 730, 621, 729, 724, 730, 1685, 724, 724, 1034, 1685, 724, 1685, 964, 621, 725, 2299, 759, 1055, 725, 726, 727, 928, 2161, 726, 727, 2214, 729, 2113, 730, 2213, 729, 2213, 730, 724, 2212, 2212, 724, 724, 2212, 1335, 724, 2822, 1935, 928, 725, 662, 530, 2702, 725, 726, 727, 530, 1685, 726, 727, 621, 729, 2703, 730, 1936, 729, 2254, 730, 724, 2254, 1696, 724, 814, 814, 1695, 814, 1695, 2213, 1179, 725, 2604, 2605, 1937, 815, 726, 727, 2212, 1034, 816, 817, 1938, 729, 1034, 730, 1939, 1346, 1347, 1346, 1346, 1940, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1346, 1349, 1350, 1346, 724, 1034, 1695, 724, 1351, 1346, 1352, 1346, 1346, 1346, 724, 725, 2241, 724, 1034, 1809, 726, 727, 1809, 1945, 2823, 725, 2685, 729, 2824, 730, 726, 727, 1346, 1346, 1346, 1346, 1174, 729, 1693, 730, 2683, 1941, 1693, 621, 1693, 1760, 1760, 1760, 1760, 621, 2160, 2259, 2260, 2260, 2259, 1055, 1809, 1631, 724, 1809, 1942, 724, 2261, 1346, 1346, 1346, 1346, 1354, 1943, 725, 2649, 1760, 1631, 724, 726, 727, 724, 724, 2825, 2593, 724, 729, 2593, 730, 725, 1693, 2826, 2689, 725, 726, 727, 915, 724, 726, 727, 724, 729, 2594, 730, 1075, 729, 1760, 730, 725, 621, 2216, 2215, 724, 726, 727, 724, 2606, 2607, 2831, 1944, 729, 916, 730, 725, 2657, 2784, 1075, 724, 726, 727, 724, 928, 2832, 2567, 1946, 729, 2690, 730, 725, 1768, 1768, 1768, 1768, 726, 727, 621, 1178, 1075, 759, 1075, 729, 724, 730, 928, 724, 814, 814, 2245, 814, 1200, 1200, 1075, 725, 2245, 1201, 1201, 815, 726, 727, 2833, 2834, 816, 817, 2835, 729, 1202, 730, 1091, 1947, 1802, 1802, 1802, 1802, 2841, 2788, 2841, 1803, 1948, 1370, 1371, 1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1372, 1370, 1370, 1370, 1370, 1373, 1374, 1370, 724, 758, 2842, 724, 1375, 1370, 1376, 1370, 1370, 1370, 724, 725, 1183, 724, 2843, 2214, 726, 727, 2216, 2505, 1200, 725, 2215, 729, 2215, 730, 726, 727, 1370, 1370, 1370, 1370, 915, 729, 1693, 730, 2836, 1949, 1693, 2836, 1693, 2505, 2654, 2655, 2655, 2654, 1055, 2274, 2275, 2275, 2274, 2161, 1950, 724, 2837, 2596, 724, 916, 2276, 1370, 1370, 1370, 1370, 1377, 725, 2215, 1951, 2844, 724, 726, 727, 724, 724, 2216, 2215, 724, 729, 2215, 730, 725, 2781, 1693, 2216, 725, 726, 727, 2507, 724, 726, 727, 724, 729, 2845, 730, 2846, 729, 2583, 730, 725, 2847, 2602, 2604, 724, 726, 727, 724, 724, 2208, 2507, 724, 729, 621, 730, 725, 2606, 2839, 1952, 725, 726, 727, 2215, 915, 726, 727, 1953, 729, 2595, 730, 2850, 729, 2850, 730, 724, 2590, 915, 724, 2848, 1763, 1763, 1763, 1763, 1954, 2852, 725, 2213, 2853, 916, 724, 726, 727, 724, 724, 2782, 1956, 724, 729, 1955, 730, 725, 916, 2251, 577, 725, 726, 727, 2783, 724, 726, 727, 724, 729, 2851, 730, 2851, 729, 2592, 730, 725, 2854, 1957, 2855, 724, 726, 727, 724, 2252, 2215, 2856, 2857, 729, 2858, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 2859, 3491, 2860, 724, 1958, 729, 724, 730, 2614, 2861, 2862, 1959, 2863, 724, 725, 1787, 724, 1208, 621, 726, 727, 2880, 1960, 621, 725, 621, 729, 1961, 730, 726, 727, 2894, 724, 2214, 2895, 724, 729, 2213, 730, 2213, 2908, 2909, 724, 725, 2695, 724, 621, 1962, 726, 727, 2873, 2879, 662, 725, 621, 729, 2212, 730, 726, 727, 2212, 724, 2212, 2593, 724, 729, 2593, 730, 1055, 1963, 621, 724, 725, 1055, 724, 621, 2874, 726, 727, 621, 2213, 2594, 725, 1222, 729, 1964, 730, 726, 727, 1335, 724, 621, 2876, 724, 729, 621, 730, 1988, 1988, 1988, 1988, 725, 2910, 2212, 1989, 724, 726, 727, 724, 724, 621, 1965, 724, 729, 662, 730, 725, 2878, 621, 2877, 724, 726, 727, 724, 661, 621, 1966, 1967, 729, 621, 730, 725, 729, 621, 730, 724, 726, 727, 724, 724, 2882, 621, 724, 729, 621, 730, 725, 621, 621, 2883, 725, 726, 727, 2884, 662, 726, 727, 621, 729, 2881, 730, 1968, 729, 724, 730, 1969, 724, 724, 1222, 2216, 724, 2888, 2890, 2215, 725, 2215, 621, 1970, 725, 726, 727, 2887, 724, 726, 727, 724, 729, 621, 730, 1972, 729, 1971, 730, 725, 2886, 621, 2885, 724, 726, 727, 724, 724, 2911, 2912, 724, 729, 1973, 730, 725, 2913, 621, 2889, 725, 726, 727, 2914, 2215, 726, 727, 2675, 729, 621, 730, 2915, 729, 621, 730, 724, 621, 621, 724, 621, 1976, 1974, 2290, 2290, 2290, 2290, 725, 3491, 3491, 3491, 3491, 726, 727, 619, 3491, 1222, 1975, 621, 729, 724, 730, 1335, 724, 724, 621, 1977, 724, 621, 2891, 2916, 725, 2899, 2892, 2897, 725, 726, 727, 2917, 2900, 726, 727, 2896, 729, 1898, 730, 621, 729, 724, 730, 1222, 724, 724, 2918, 1809, 724, 2919, 1809, 2920, 725, 2902, 621, 1978, 725, 726, 727, 621, 2927, 726, 727, 2901, 729, 621, 730, 2963, 729, 724, 730, 2964, 724, 1979, 1424, 1424, 1424, 1424, 2903, 2965, 725, 1425, 1980, 2968, 621, 726, 727, 2969, 724, 2970, 1222, 724, 729, 2972, 730, 2973, 2907, 804, 2898, 725, 758, 2974, 915, 724, 726, 727, 724, 1429, 1429, 1429, 1429, 729, 1981, 730, 725, 928, 915, 943, 796, 726, 727, 1982, 805, 661, 2976, 915, 729, 916, 730, 3491, 3491, 3491, 3491, 2975, 943, 2783, 3491, 928, 2977, 2978, 1983, 916, 1986, 1986, 1986, 1986, 813, 814, 2979, 813, 916, 724, 3491, 796, 724, 1427, 943, 815, 1762, 1763, 1763, 1762, 816, 817, 2971, 804, 1984, 799, 915, 729, 1179, 730, 813, 814, 729, 813, 730, 3491, 2983, 2804, 2984, 2251, 2990, 815, 2613, 2613, 2613, 2613, 816, 817, 805, 1178, 2991, 916, 2992, 729, 2993, 730, 813, 814, 2994, 813, 813, 814, 2995, 813, 2252, 2391, 2783, 815, 3491, 2996, 1012, 815, 816, 817, 1991, 1012, 816, 817, 2997, 729, 1012, 730, 1034, 729, 1034, 730, 2111, 813, 814, 2111, 813, 2687, 2688, 2688, 2687, 2998, 1034, 724, 815, 2999, 724, 1075, 1992, 816, 817, 1072, 1080, 1081, 725, 2112, 729, 3000, 730, 726, 727, 990, 990, 990, 990, 1075, 729, 3001, 730, 1183, 3002, 3003, 1434, 1993, 1917, 1994, 1995, 1917, 1994, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1996, 1917, 1917, 1917, 1917, 1997, 1998, 1917, 813, 814, 2000, 813, 1922, 1917, 1923, 1917, 1917, 1917, 1075, 815, 3004, 3006, 3006, 2836, 816, 817, 2836, 2362, 3007, 813, 814, 729, 813, 730, 3009, 3019, 1917, 1917, 1917, 1917, 815, 2837, 1683, 3008, 1786, 816, 817, 2839, 2253, 2253, 2253, 2253, 729, 995, 730, 1178, 1683, 3027, 2595, 3008, 2001, 813, 814, 3028, 813, 3008, 3029, 1917, 1917, 1917, 1917, 1999, 815, 3008, 2614, 3030, 3031, 816, 817, 813, 814, 3032, 813, 3033, 729, 846, 730, 3015, 3020, 3021, 815, 3020, 3034, 3035, 1208, 816, 817, 813, 814, 3044, 813, 1786, 729, 621, 730, 3017, 3018, 889, 815, 3068, 889, 3008, 3013, 816, 817, 2002, 813, 814, 890, 813, 729, 621, 730, 1222, 621, 3043, 1222, 815, 621, 1183, 892, 3055, 816, 817, 1789, 1789, 1789, 1789, 3069, 729, 621, 730, 3022, 813, 814, 662, 813, 3075, 845, 1788, 1789, 1789, 1788, 2908, 815, 893, 621, 2277, 3023, 816, 817, 2486, 2613, 2613, 2613, 2613, 729, 2003, 730, 1178, 1222, 621, 2277, 813, 814, 621, 813, 813, 814, 661, 813, 1910, 1791, 3025, 815, 621, 2004, 2005, 815, 816, 817, 1222, 3078, 816, 817, 2006, 729, 1791, 730, 621, 729, 3070, 730, 813, 814, 3079, 813, 813, 814, 621, 813, 1222, 3056, 621, 815, 621, 3026, 621, 815, 816, 817, 3080, 1222, 816, 817, 1898, 729, 3081, 730, 2007, 729, 3058, 730, 621, 813, 814, 3071, 813, 813, 814, 2307, 813, 621, 1183, 621, 815, 621, 3062, 621, 815, 816, 817, 621, 3073, 816, 817, 2008, 729, 3082, 730, 3072, 729, 1222, 730, 813, 814, 3074, 813, 813, 814, 3083, 813, 621, 621, 3084, 815, 3085, 1222, 1222, 815, 816, 817, 3086, 3076, 816, 817, 3076, 729, 3077, 730, 846, 729, 1910, 730, 813, 814, 2777, 813, 813, 814, 3114, 813, 1434, 3059, 3060, 815, 3059, 2970, 3077, 815, 816, 817, 3115, 1893, 816, 817, 1893, 729, 2974, 730, 1312, 729, 3117, 730, 2010, 1313, 3119, 2009, 813, 814, 2976, 813, 1894, 1894, 1894, 1894, 2509, 943, 2111, 815, 3122, 2111, 3123, 3124, 816, 817, 813, 814, 3119, 813, 2012, 729, 3061, 730, 621, 3061, 3125, 815, 3126, 3127, 3128, 2112, 816, 817, 2011, 2615, 2616, 2616, 2615, 729, 3120, 730, 3129, 3130, 3008, 3131, 2617, 3008, 3132, 3133, 2013, 1346, 1445, 1446, 1346, 2014, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1447, 1346, 1346, 1346, 1346, 1448, 1449, 1346, 2538, 2016, 621, 2538, 1351, 1346, 1352, 1346, 1346, 1346, 813, 814, 1012, 813, 2616, 2616, 2616, 2616, 1034, 3008, 3011, 815, 1663, 915, 2567, 2617, 816, 817, 1346, 1346, 1346, 1346, 1075, 729, 2567, 730, 3137, 2015, 2630, 2631, 2631, 2630, 3137, 3009, 959, 960, 960, 959, 916, 2632, 2808, 2808, 2808, 2808, 813, 814, 3116, 813, 3140, 1346, 1346, 1346, 1346, 1451, 2017, 815, 2189, 962, 3141, 963, 816, 817, 813, 814, 2809, 813, 2809, 729, 3142, 730, 2189, 3143, 3145, 815, 2851, 3025, 3008, 3157, 816, 817, 813, 814, 964, 813, 3158, 729, 3008, 730, 3008, 3020, 3021, 815, 3020, 2614, 2810, 2614, 816, 817, 813, 814, 2018, 813, 3008, 729, 2114, 730, 2811, 577, 3159, 815, 2812, 2813, 3160, 2814, 816, 817, 813, 814, 995, 813, 3015, 729, 3146, 730, 2614, 3146, 2614, 815, 2019, 3008, 3135, 1092, 816, 817, 813, 814, 2020, 813, 3161, 729, 3147, 730, 3008, 889, 1208, 815, 889, 624, 3017, 3018, 816, 817, 813, 814, 890, 813, 621, 729, 3008, 730, 621, 3008, 3186, 815, 846, 3187, 892, 621, 816, 817, 813, 814, 3188, 813, 621, 729, 621, 730, 3189, 3139, 3008, 815, 3153, 3153, 3153, 3153, 816, 817, 3008, 3022, 3168, 893, 3190, 729, 3191, 730, 813, 814, 1222, 813, 813, 814, 3197, 813, 3008, 3011, 2773, 815, 3198, 3199, 1898, 815, 816, 817, 1898, 3167, 816, 817, 2021, 729, 3200, 730, 1898, 729, 1898, 730, 3008, 3013, 581, 3144, 2022, 1370, 1466, 1467, 1370, 1466, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370, 1469, 1470, 1370, 621, 2024, 621, 845, 1375, 1370, 1376, 1370, 1370, 1370, 813, 814, 3026, 813, 621, 621, 621, 959, 960, 960, 959, 815, 1898, 3193, 3017, 3018, 816, 817, 1370, 1370, 1370, 1370, 3201, 729, 727, 730, 1329, 2023, 3192, 3174, 962, 2299, 963, 621, 3194, 1789, 1789, 1789, 1789, 1331, 817, 3209, 3076, 813, 814, 3076, 813, 3077, 3210, 1370, 1370, 1370, 1370, 1471, 815, 964, 2025, 3211, 2277, 816, 817, 813, 814, 3009, 813, 2804, 729, 3077, 730, 3172, 3172, 3119, 815, 1222, 1201, 1201, 975, 816, 817, 813, 814, 928, 813, 1791, 729, 3173, 730, 2804, 3213, 3212, 815, 915, 3214, 3119, 3215, 816, 817, 813, 814, 3216, 813, 3217, 729, 928, 730, 3218, 2026, 3219, 815, 2966, 2966, 2966, 2966, 816, 817, 3120, 916, 2027, 813, 814, 729, 813, 730, 2783, 3220, 3491, 3491, 3491, 3491, 815, 3221, 3222, 2967, 3223, 816, 817, 813, 814, 3172, 813, 3225, 729, 3225, 730, 3226, 3227, 3228, 815, 2028, 3491, 3229, 3491, 816, 817, 813, 814, 3008, 813, 3008, 729, 3230, 730, 581, 3232, 3231, 815, 2029, 3152, 3236, 2030, 816, 817, 813, 814, 3160, 813, 2614, 729, 3146, 730, 3239, 3146, 1208, 815, 3247, 2815, 3247, 2967, 816, 817, 813, 814, 621, 813, 577, 729, 3147, 730, 3251, 3008, 3135, 815, 3260, 3491, 621, 1092, 816, 817, 3251, 2031, 3009, 813, 814, 729, 813, 730, 3008, 3246, 3491, 3491, 3491, 3491, 815, 3249, 3245, 2032, 3249, 816, 817, 813, 814, 3251, 813, 3277, 729, 2033, 730, 3278, 3279, 3280, 815, 3281, 3491, 3258, 3491, 816, 817, 813, 814, 3190, 813, 621, 729, 3139, 730, 3290, 621, 621, 815, 3291, 2034, 1898, 621, 816, 817, 813, 814, 1898, 813, 3292, 729, 2035, 730, 2538, 3282, 2964, 815, 2970, 2974, 3301, 3302, 816, 817, 813, 814, 928, 813, 3283, 729, 3284, 730, 3303, 3304, 3305, 815, 2036, 3491, 3306, 3300, 816, 817, 813, 814, 3307, 813, 3308, 729, 928, 730, 3309, 724, 3310, 815, 724, 3311, 3313, 3313, 816, 817, 2037, 813, 814, 1434, 813, 729, 3314, 730, 3491, 3491, 3491, 3491, 815, 3320, 729, 2614, 730, 816, 817, 813, 814, 3327, 813, 1208, 729, 3315, 730, 3329, 3315, 3251, 815, 3260, 3491, 2038, 3491, 816, 817, 813, 814, 3251, 813, 621, 729, 3347, 730, 3172, 3172, 2039, 815, 3316, 1201, 1201, 3316, 816, 817, 813, 814, 2040, 813, 3280, 729, 3173, 730, 3348, 3253, 2608, 815, 3253, 2816, 621, 3317, 816, 817, 3317, 2608, 3259, 813, 814, 729, 813, 730, 2287, 2288, 2288, 2287, 3318, 3491, 815, 3318, 3250, 2041, 3325, 816, 817, 3325, 813, 814, 2042, 813, 729, 3330, 730, 3326, 3251, 2289, 3349, 815, 3350, 3349, 2043, 3319, 816, 817, 3319, 3172, 3258, 813, 814, 729, 813, 730, 3331, 3353, 621, 3331, 889, 2044, 815, 889, 633, 2045, 3353, 816, 817, 813, 814, 890, 813, 621, 729, 3352, 730, 3355, 3333, 2112, 815, 3333, 3356, 892, 1898, 816, 817, 813, 814, 3334, 813, 3365, 729, 577, 730, 3288, 3288, 2046, 815, 3366, 1201, 1201, 3367, 816, 817, 3351, 813, 814, 893, 813, 729, 3289, 730, 2631, 2631, 2631, 2631, 815, 3368, 621, 3251, 1434, 816, 817, 2632, 813, 814, 3369, 813, 729, 2962, 730, 3269, 3375, 889, 2047, 815, 889, 3375, 3377, 3260, 816, 817, 813, 814, 890, 813, 1208, 729, 3399, 730, 3245, 2048, 3373, 815, 3376, 3373, 892, 3376, 816, 817, 621, 1434, 3381, 3288, 3400, 729, 3280, 730, 813, 814, 621, 813, 813, 814, 3315, 813, 3403, 3315, 3404, 815, 2049, 893, 621, 815, 816, 817, 1331, 3316, 816, 817, 3316, 729, 3245, 730, 3401, 729, 621, 730, 813, 814, 3113, 813, 813, 814, 3317, 813, 3409, 3317, 2050, 815, 3365, 3410, 1222, 815, 816, 817, 3411, 3318, 816, 817, 3318, 729, 3412, 730, 3414, 729, 3414, 730, 2051, 813, 814, 3415, 813, 813, 814, 3319, 813, 2052, 3319, 3331, 815, 3260, 3331, 1208, 815, 816, 817, 3250, 3406, 816, 817, 3406, 729, 3430, 730, 3407, 729, 845, 730, 813, 814, 3431, 813, 959, 960, 960, 959, 3433, 3434, 2053, 815, 959, 960, 960, 959, 816, 817, 959, 960, 960, 959, 2054, 729, 577, 730, 2055, 962, 3441, 963, 959, 960, 960, 959, 3442, 962, 3373, 963, 3421, 3373, 621, 1564, 3306, 963, 959, 960, 960, 959, 959, 960, 960, 959, 964, 962, 3306, 963, 3444, 2115, 3376, 3253, 964, 3376, 3253, 2056, 2116, 3402, 964, 962, 3402, 963, 3259, 962, 3444, 963, 959, 960, 960, 959, 964, 621, 959, 960, 960, 959, 3250, 959, 960, 960, 959, 3445, 814, 814, 964, 814, 3432, 3397, 964, 962, 3397, 963, 3448, 815, 975, 962, 621, 963, 816, 817, 962, 1208, 963, 2117, 959, 960, 960, 959, 959, 960, 960, 959, 3250, 3455, 964, 959, 960, 960, 959, 3457, 964, 3333, 2118, 3406, 3333, 964, 3406, 962, 3458, 963, 3436, 962, 3334, 963, 959, 960, 960, 959, 962, 3365, 963, 2119, 2120, 3365, 959, 960, 960, 959, 3154, 3154, 3154, 3154, 964, 621, 3463, 3155, 964, 962, 3250, 963, 2121, 3250, 3438, 964, 3463, 3438, 3456, 962, 2122, 963, 959, 960, 960, 959, 3439, 2123, 3160, 2290, 2290, 2290, 2290, 3386, 964, 1208, 2279, 2279, 2279, 2279, 619, 975, 3250, 2280, 964, 962, 2254, 963, 2124, 2254, 3467, 3454, 3364, 1178, 3454, 3364, 3469, 928, 1179, 631, 1799, 1799, 1799, 1799, 1898, 2255, 2255, 2255, 2255, 1180, 964, 619, 3472, 3472, 2125, 617, 618, 618, 617, 928, 1208, 3280, 3362, 631, 633, 3362, 619, 620, 3446, 621, 620, 3446, 3402, 3363, 1182, 3402, 3477, 621, 622, 620, 623, 3464, 2282, 1798, 1798, 1798, 1798, 3477, 633, 1208, 630, 1799, 1799, 1799, 1799, 2112, 3454, 1218, 1893, 3454, 3481, 1893, 619, 624, 620, 1312, 631, 1183, 3364, 3245, 1313, 3364, 3481, 928, 631, 1208, 1801, 1894, 1894, 1894, 1894, 2290, 2290, 2290, 2290, 2250, 1762, 1763, 1763, 1762, 3473, 633, 619, 1178, 3478, 928, 621, 621, 1179, 633, 1985, 1985, 1985, 1985, 621, 1764, 1764, 1764, 1764, 1765, 1429, 1429, 1429, 1429, 2295, 2296, 2296, 2295, 3484, 621, 3484, 796, 3482, 804, 634, 2297, 620, 3468, 1208, 620, 2296, 2296, 2296, 2296, 1767, 3488, 2573, 622, 620, 963, 1075, 2297, 620, 3250, 3418, 620, 3250, 3418, 805, 1203, 1203, 1203, 1203, 622, 620, 3274, 1204, 3154, 3154, 3154, 3154, 2572, 624, 620, 3155, 2571, 3423, 1183, 1762, 1763, 1763, 1762, 631, 3250, 3491, 1178, 3250, 3491, 624, 620, 1179, 3491, 3485, 1825, 1826, 1826, 1825, 1764, 1764, 1764, 1764, 1765, 621, 2570, 1827, 620, 3339, 633, 620, 1826, 1826, 1826, 1826, 2569, 1075, 2568, 622, 620, 963, 621, 1827, 620, 3486, 3489, 620, 1205, 1767, 724, 3349, 621, 724, 3349, 622, 620, 2259, 2260, 2260, 2259, 725, 2567, 634, 624, 620, 726, 727, 2261, 2288, 2288, 2288, 2288, 729, 2562, 730, 1986, 1986, 1986, 1986, 624, 620, 1183, 617, 618, 618, 617, 796, 3475, 3475, 3475, 3475, 631, 724, 619, 620, 724, 2161, 620, 804, 2966, 2966, 2966, 2966, 725, 2333, 622, 620, 623, 726, 727, 724, 3491, 1631, 724, 3491, 729, 633, 730, 3491, 2378, 2334, 725, 2967, 805, 1184, 3418, 726, 727, 3418, 1184, 624, 620, 1184, 729, 2559, 730, 3274, 1184, 2283, 1808, 2306, 1810, 1810, 2306, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 2379, 2558, 2557, 2556, 1813, 1812, 1814, 1808, 1808, 1808, 724, 2555, 621, 724, 3475, 3475, 3475, 3475, 2967, 3487, 2380, 725, 959, 960, 960, 959, 726, 727, 1808, 1815, 1812, 1808, 1034, 729, 2254, 730, 2554, 2254, 2553, 3418, 3452, 1178, 3418, 3452, 1034, 962, 1179, 963, 2552, 2551, 3274, 3274, 2541, 2255, 2255, 2255, 2255, 1180, 2540, 1808, 1808, 1808, 1808, 1816, 1825, 1826, 1826, 1825, 2539, 724, 964, 3438, 724, 2538, 3438, 1827, 620, 2537, 3438, 620, 725, 3438, 1182, 3460, 2536, 726, 727, 622, 620, 963, 3460, 2535, 729, 724, 730, 2534, 724, 2615, 2616, 2616, 2615, 2522, 3438, 3490, 725, 3438, 3490, 2520, 2617, 726, 727, 2519, 624, 620, 3439, 1183, 729, 2518, 730, 2517, 2311, 1861, 618, 618, 1861, 959, 960, 960, 959, 2516, 2515, 759, 619, 620, 2514, 943, 620, 2513, 1986, 1986, 1986, 1986, 621, 2512, 622, 620, 963, 2511, 962, 796, 963, 724, 759, 3452, 724, 724, 3452, 943, 724, 2510, 2509, 804, 725, 799, 3274, 1696, 725, 726, 727, 624, 620, 726, 727, 964, 729, 2333, 730, 1690, 729, 2500, 730, 2499, 3491, 3491, 3491, 3491, 805, 2498, 2525, 3491, 2493, 2334, 1370, 1371, 1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1372, 1370, 1370, 1370, 1370, 1373, 1374, 1370, 2616, 2616, 2616, 2616, 1375, 1370, 1376, 1370, 1370, 1370, 2382, 2617, 3438, 1335, 3452, 3438, 724, 3452, 2492, 724, 959, 960, 960, 959, 3460, 3274, 2491, 725, 1370, 1370, 1370, 1370, 726, 727, 2490, 596, 596, 2381, 2489, 729, 596, 730, 2488, 962, 596, 963, 2487, 900, 893, 959, 960, 960, 959, 892, 724, 2057, 817, 724, 1331, 1370, 1370, 1370, 1370, 1377, 724, 725, 1329, 724, 964, 727, 726, 727, 962, 2376, 963, 725, 2383, 729, 2375, 730, 726, 727, 724, 889, 2374, 724, 889, 729, 2373, 730, 2372, 2524, 724, 725, 890, 724, 2369, 964, 726, 727, 2368, 2367, 2366, 725, 2365, 729, 892, 730, 726, 727, 2364, 724, 2363, 1892, 724, 729, 2361, 730, 2360, 662, 975, 724, 725, 1277, 724, 2339, 2384, 726, 727, 1222, 3362, 893, 725, 3362, 729, 2385, 730, 726, 727, 3208, 2331, 3363, 2330, 1222, 729, 2386, 730, 724, 621, 624, 724, 724, 2286, 892, 724, 2286, 2387, 1208, 725, 2278, 2273, 2272, 725, 726, 727, 2271, 724, 726, 727, 724, 729, 2388, 730, 2270, 729, 2269, 730, 725, 893, 2266, 2265, 724, 726, 727, 724, 724, 2264, 2263, 724, 729, 2389, 730, 725, 2262, 2258, 2257, 725, 726, 727, 1767, 577, 726, 727, 1335, 729, 577, 730, 577, 729, 724, 730, 577, 724, 724, 2390, 1736, 724, 2233, 705, 705, 725, 2225, 1722, 705, 725, 726, 727, 705, 724, 726, 727, 724, 729, 2392, 730, 2221, 729, 758, 730, 725, 1711, 2217, 1700, 724, 726, 727, 724, 792, 792, 2216, 2393, 729, 792, 730, 725, 1696, 792, 2214, 724, 726, 727, 724, 3491, 3491, 3491, 3491, 729, 1690, 730, 725, 2211, 1687, 2209, 724, 726, 727, 724, 811, 811, 2196, 2394, 729, 811, 730, 725, 2192, 811, 1335, 724, 726, 727, 724, 724, 2192, 2395, 724, 729, 2185, 730, 725, 2184, 2183, 1075, 725, 726, 727, 2182, 724, 726, 727, 724, 729, 2396, 730, 2181, 729, 2180, 730, 725, 2179, 2178, 2177, 3370, 726, 727, 724, 2176, 2397, 724, 2175, 729, 2174, 730, 1075, 2173, 2172, 725, 2171, 2398, 1075, 3491, 726, 727, 724, 2170, 2400, 724, 2162, 729, 1631, 730, 1631, 2155, 724, 725, 1034, 724, 2399, 2154, 726, 727, 2153, 2152, 2151, 725, 2150, 729, 2149, 730, 726, 727, 724, 889, 2148, 724, 889, 729, 2401, 730, 1034, 879, 879, 725, 890, 2147, 879, 2146, 726, 727, 879, 724, 1034, 2402, 724, 729, 892, 730, 2403, 2145, 2144, 724, 725, 1012, 724, 2143, 2404, 726, 727, 2142, 2141, 2140, 725, 2139, 729, 2138, 730, 726, 727, 724, 2137, 893, 724, 1012, 729, 2136, 730, 3299, 2135, 724, 725, 1012, 724, 3288, 3288, 726, 727, 2134, 1201, 1201, 725, 2405, 729, 2133, 730, 726, 727, 2132, 724, 3289, 2131, 724, 729, 2407, 730, 2130, 2129, 2128, 2406, 725, 2127, 2126, 1566, 724, 726, 727, 724, 724, 1565, 964, 724, 729, 2108, 730, 725, 2408, 943, 2107, 725, 726, 727, 2106, 724, 726, 727, 724, 729, 2105, 730, 2409, 729, 2104, 730, 725, 2103, 2102, 2101, 724, 726, 727, 724, 2100, 3288, 2099, 1335, 729, 943, 730, 725, 2098, 2097, 2096, 724, 726, 727, 724, 2630, 2631, 2631, 2630, 729, 2095, 730, 725, 943, 2094, 2078, 2632, 726, 727, 2071, 724, 2068, 2410, 724, 729, 2067, 730, 2411, 2066, 2065, 2064, 725, 900, 893, 2059, 724, 726, 727, 724, 959, 960, 960, 959, 729, 2412, 730, 725, 2057, 817, 817, 724, 726, 727, 724, 724, 2413, 1422, 724, 729, 1331, 730, 725, 962, 1329, 963, 725, 726, 727, 727, 1331, 726, 727, 758, 729, 1329, 730, 2414, 729, 727, 730, 724, 1331, 1910, 724, 1909, 1908, 2415, 964, 1907, 1906, 1905, 725, 1902, 2527, 1901, 724, 726, 727, 724, 886, 886, 2416, 1900, 729, 886, 730, 725, 1899, 886, 1898, 2417, 726, 727, 724, 1897, 1896, 724, 1888, 729, 2418, 730, 1887, 1874, 621, 725, 624, 1214, 1208, 724, 726, 727, 724, 1787, 1566, 2419, 1786, 729, 1785, 730, 725, 3250, 3491, 3250, 3250, 726, 727, 1784, 3250, 1783, 2420, 1782, 729, 724, 730, 1781, 724, 2631, 2631, 2631, 2631, 1778, 1777, 724, 725, 1776, 724, 1775, 2632, 726, 727, 1774, 1773, 2421, 725, 1772, 729, 1182, 730, 726, 727, 1174, 3233, 3233, 3233, 3233, 729, 1735, 730, 3022, 1735, 1723, 2422, 1917, 1918, 1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1919, 1917, 1917, 1917, 1917, 2423, 2424, 1917, 724, 1712, 1701, 724, 1922, 1917, 1923, 1917, 1917, 1917, 724, 725, 1696, 724, 2425, 1686, 726, 727, 1690, 1688, 2426, 725, 1686, 729, 1669, 730, 726, 727, 1917, 1917, 1917, 1917, 1669, 729, 1665, 730, 1091, 814, 814, 1091, 814, 724, 899, 899, 724, 1664, 1661, 899, 815, 1660, 3026, 899, 725, 816, 817, 1657, 1656, 726, 727, 1917, 1917, 1917, 1917, 1924, 729, 2427, 730, 1655, 724, 1654, 2428, 724, 2431, 1653, 1652, 2429, 1075, 1650, 724, 725, 1649, 724, 1648, 1647, 726, 727, 1646, 1075, 1631, 725, 1629, 729, 1628, 730, 726, 727, 724, 1627, 1626, 724, 1623, 729, 1622, 730, 1621, 1620, 1335, 725, 3153, 3153, 3153, 3153, 726, 727, 724, 3022, 1034, 724, 1619, 729, 1618, 730, 1617, 1616, 724, 725, 2430, 724, 1034, 1615, 726, 727, 1614, 903, 903, 725, 1335, 729, 903, 730, 726, 727, 903, 813, 814, 1613, 813, 729, 1612, 730, 3233, 3233, 3233, 3233, 815, 1609, 1608, 3022, 1607, 816, 817, 813, 814, 1606, 813, 1012, 729, 2432, 730, 1605, 911, 911, 815, 1604, 1603, 911, 1602, 816, 817, 911, 759, 1012, 1601, 2433, 729, 1600, 730, 813, 814, 3026, 813, 813, 814, 1599, 813, 1598, 956, 956, 815, 1597, 1596, 956, 815, 816, 817, 956, 1595, 816, 817, 1594, 729, 1593, 730, 2435, 729, 1566, 730, 1565, 813, 814, 1563, 813, 813, 814, 1562, 813, 1561, 1560, 2436, 815, 1559, 3026, 1558, 815, 816, 817, 1555, 1554, 816, 817, 1553, 729, 1552, 730, 943, 729, 1550, 730, 1549, 3491, 3491, 3491, 3491, 1548, 1547, 1546, 2437, 1370, 1466, 1467, 1370, 1466, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1468, 1370, 1370, 1370, 1370, 1469, 1470, 1370, 1545, 943, 3491, 924, 1375, 1370, 1376, 1370, 1370, 1370, 813, 814, 3491, 813, 917, 1434, 916, 3491, 3491, 3491, 3491, 815, 917, 1524, 3491, 1523, 816, 817, 1370, 1370, 1370, 1370, 3372, 729, 1522, 730, 1521, 2438, 1520, 900, 3491, 813, 814, 1518, 813, 900, 959, 960, 960, 959, 3491, 1515, 815, 1514, 1512, 881, 627, 816, 817, 1370, 1370, 1370, 1370, 1471, 729, 3491, 730, 813, 814, 962, 813, 963, 846, 818, 959, 960, 960, 959, 815, 817, 805, 1422, 800, 816, 817, 813, 814, 728, 813, 1331, 729, 1329, 730, 727, 964, 1324, 815, 962, 3491, 963, 846, 816, 817, 813, 814, 1321, 813, 1318, 729, 1317, 730, 707, 707, 2526, 815, 1303, 621, 633, 1208, 816, 817, 624, 964, 621, 813, 814, 729, 813, 730, 1194, 2528, 3237, 3238, 2260, 3237, 815, 1191, 1188, 1434, 1187, 816, 817, 2261, 813, 814, 2439, 813, 729, 1174, 730, 2287, 2288, 2288, 2287, 815, 3234, 3234, 3234, 3234, 816, 817, 813, 814, 581, 813, 577, 729, 3149, 730, 577, 3149, 569, 815, 631, 562, 2440, 558, 816, 817, 3149, 813, 814, 1099, 813, 729, 1096, 730, 3250, 3491, 3250, 3250, 815, 1091, 525, 3250, 2441, 816, 817, 633, 813, 814, 1087, 813, 729, 3149, 730, 2442, 1086, 1085, 1078, 815, 990, 990, 990, 990, 816, 817, 813, 814, 1077, 813, 2443, 729, 1074, 730, 1073, 1070, 1069, 815, 1059, 1048, 1047, 1044, 816, 817, 813, 814, 1043, 813, 1042, 729, 1038, 730, 1037, 1036, 1033, 815, 1032, 1031, 2444, 1030, 816, 817, 813, 814, 1434, 813, 1029, 729, 1022, 730, 1021, 1020, 1016, 815, 2827, 1015, 1014, 1011, 816, 817, 813, 814, 1010, 813, 1009, 729, 2828, 730, 1008, 2445, 2829, 815, 1007, 2830, 525, 1003, 816, 817, 995, 997, 997, 1002, 1001, 729, 997, 730, 813, 814, 997, 813, 813, 814, 1000, 813, 999, 845, 525, 815, 2391, 1005, 1005, 815, 816, 817, 1005, 958, 816, 817, 1005, 729, 955, 730, 2446, 729, 954, 730, 813, 814, 953, 813, 813, 814, 947, 813, 946, 1023, 1023, 815, 945, 942, 1023, 815, 816, 817, 1023, 941, 816, 817, 940, 729, 937, 730, 936, 729, 917, 730, 813, 814, 912, 813, 909, 2447, 908, 3491, 3491, 3491, 3491, 815, 907, 906, 900, 2448, 816, 817, 813, 814, 627, 813, 881, 729, 525, 730, 793, 599, 707, 815, 704, 707, 706, 704, 816, 817, 813, 814, 628, 813, 2449, 729, 607, 730, 1434, 604, 599, 815, 597, 591, 588, 577, 816, 817, 813, 814, 577, 813, 577, 729, 572, 730, 3306, 569, 561, 815, 525, 548, 542, 2450, 816, 817, 813, 814, 533, 813, 525, 729, 3491, 730, 3491, 1027, 1027, 815, 3491, 3491, 1027, 2451, 816, 817, 1027, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 2452, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 813, 814, 3491, 813, 729, 3491, 730, 2808, 2808, 2808, 2808, 815, 3491, 2453, 3491, 2454, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 2809, 3491, 2809, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 2455, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 2456, 3491, 3491, 816, 817, 2457, 813, 814, 3491, 813, 729, 2988, 730, 3491, 3491, 3491, 3491, 815, 995, 3491, 3491, 2458, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3234, 3234, 3234, 3234, 816, 817, 813, 814, 3491, 813, 3491, 729, 3149, 730, 3491, 3149, 3491, 815, 3491, 3491, 2459, 3491, 816, 817, 3149, 813, 814, 3491, 813, 729, 3491, 730, 990, 990, 990, 990, 815, 2460, 3491, 3491, 2461, 816, 817, 813, 814, 3491, 813, 3491, 729, 3149, 730, 3491, 3491, 3491, 815, 2288, 2288, 2288, 2288, 816, 817, 3491, 2462, 3491, 813, 814, 729, 813, 730, 959, 960, 960, 959, 3491, 3491, 815, 3491, 3491, 631, 3491, 816, 817, 3491, 3491, 3491, 2463, 2810, 729, 3491, 730, 813, 814, 962, 813, 963, 1045, 1045, 3491, 2811, 1434, 1045, 815, 2812, 633, 1045, 2814, 816, 817, 813, 814, 995, 813, 3491, 729, 3491, 730, 3491, 964, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 2464, 3491, 3491, 815, 3491, 3491, 975, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3248, 1789, 1789, 3248, 816, 817, 3491, 2465, 3491, 813, 814, 729, 813, 730, 3491, 959, 960, 960, 959, 3491, 815, 2466, 3491, 1790, 3491, 816, 817, 3491, 2279, 2279, 2279, 2279, 729, 3491, 730, 2633, 813, 814, 962, 813, 963, 845, 3491, 3491, 2467, 3491, 3491, 815, 1791, 3491, 3491, 631, 816, 817, 813, 814, 3491, 813, 3491, 729, 2468, 730, 3491, 964, 3491, 815, 2529, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 2469, 633, 729, 3491, 730, 3491, 813, 814, 3491, 813, 3491, 3491, 3491, 959, 960, 960, 959, 815, 3491, 2635, 3491, 2470, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 1218, 815, 962, 3491, 963, 3491, 816, 817, 813, 814, 2471, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 2472, 964, 3491, 813, 814, 729, 813, 730, 1050, 1050, 3491, 2531, 3491, 1050, 815, 3491, 3491, 1050, 2473, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 2474, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 2475, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 2279, 2279, 2279, 2279, 816, 817, 3491, 2280, 2476, 3491, 3491, 729, 3491, 730, 3491, 813, 814, 3491, 813, 1056, 1056, 3491, 2477, 631, 1056, 2478, 815, 3491, 1056, 3491, 2479, 816, 817, 813, 814, 2480, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 633, 816, 817, 813, 814, 1434, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 2282, 816, 817, 813, 814, 3491, 813, 2481, 729, 3491, 730, 3491, 3491, 3491, 815, 1218, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 1434, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 2482, 3491, 3491, 724, 3491, 729, 724, 730, 3491, 3491, 3321, 3322, 2616, 3321, 725, 3491, 3491, 2483, 3491, 2694, 2695, 2617, 1067, 1067, 3491, 3491, 729, 1067, 730, 3491, 3491, 1067, 3491, 2484, 3491, 3491, 3491, 3491, 846, 1370, 1574, 1575, 1575, 1574, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 961, 961, 961, 961, 1576, 1370, 1577, 1370, 1370, 1370, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 1370, 1578, 1370, 1370, 961, 961, 961, 961, 961, 2523, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 1370, 1370, 1370, 1370, 1579, 959, 960, 960, 959, 959, 960, 960, 959, 959, 960, 960, 959, 3491, 2636, 2636, 2636, 2636, 3491, 959, 960, 960, 959, 3491, 962, 619, 963, 3491, 962, 3491, 963, 3491, 962, 3491, 963, 724, 3491, 2277, 724, 2638, 3491, 3491, 962, 3491, 963, 3491, 725, 3491, 3491, 964, 3491, 726, 727, 964, 1089, 1089, 3491, 964, 729, 1089, 730, 3491, 1791, 1089, 1513, 1513, 2530, 964, 3491, 1513, 3491, 3491, 3491, 1513, 3491, 3491, 2532, 3491, 2533, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1068, 1068, 1068, 1068, 1370, 1370, 1370, 1370, 1370, 1370, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1370, 1370, 1370, 1370, 1068, 1068, 1068, 1068, 1068, 2566, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1370, 1370, 1370, 1370, 1651, 617, 618, 618, 617, 3491, 3491, 3491, 2636, 2636, 2636, 2636, 619, 620, 3491, 3491, 620, 2611, 2612, 619, 3234, 3234, 3234, 3234, 622, 620, 623, 3322, 3322, 2616, 3322, 2277, 3149, 2638, 3491, 3149, 3491, 3491, 2617, 959, 960, 960, 959, 3491, 3149, 3491, 3491, 3491, 3491, 624, 620, 1762, 1763, 1763, 1762, 3491, 1791, 3491, 1178, 3491, 3491, 3491, 962, 1179, 963, 2295, 2296, 2296, 2295, 3149, 1764, 1764, 1764, 1764, 1765, 2639, 2297, 620, 3491, 3491, 620, 2296, 2296, 2296, 2296, 3491, 3491, 964, 622, 620, 963, 2798, 2297, 620, 3491, 724, 620, 3491, 724, 1767, 3491, 3491, 3491, 3491, 622, 620, 725, 3491, 3491, 3491, 3491, 726, 727, 624, 620, 3491, 1516, 1516, 729, 3491, 730, 1516, 1519, 1519, 3491, 1516, 3491, 1519, 3491, 624, 620, 1519, 1183, 617, 618, 618, 617, 3491, 2799, 960, 960, 2799, 3491, 724, 619, 620, 724, 3491, 620, 3491, 3491, 3491, 3491, 3491, 725, 3491, 622, 620, 623, 726, 727, 962, 724, 963, 3491, 724, 729, 2708, 730, 3491, 3491, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 624, 620, 725, 3491, 729, 964, 730, 726, 727, 3272, 618, 3273, 3272, 3491, 729, 3491, 730, 3491, 2709, 3491, 3274, 2640, 1808, 2648, 1810, 1810, 2648, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 724, 2710, 2714, 724, 1813, 1812, 1814, 1808, 1808, 1808, 3491, 725, 3491, 2060, 2060, 3491, 726, 727, 2060, 3491, 3491, 724, 2060, 729, 724, 730, 3491, 3491, 1808, 1815, 1812, 1808, 725, 959, 960, 960, 959, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 959, 960, 960, 959, 2711, 3491, 3491, 3491, 962, 3491, 963, 1808, 1808, 1808, 1808, 1816, 2653, 2296, 2296, 2653, 3491, 3491, 3491, 962, 3491, 963, 724, 2297, 620, 724, 3491, 620, 3491, 964, 3491, 3491, 3491, 725, 2713, 622, 620, 963, 726, 727, 3491, 3491, 3491, 3491, 964, 729, 2801, 730, 724, 2110, 2110, 724, 724, 3491, 2110, 724, 3491, 3491, 2110, 725, 624, 620, 3491, 725, 726, 727, 2333, 2800, 726, 727, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 1335, 3491, 3491, 3491, 2334, 1233, 1234, 1235, 1235, 1234, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1236, 1237, 1233, 1233, 1237, 1233, 1233, 1233, 3491, 758, 3491, 2716, 1238, 1237, 1239, 1233, 1233, 1233, 2636, 2636, 2636, 2636, 3273, 618, 3273, 3273, 3491, 3491, 3491, 619, 3491, 3491, 724, 3274, 3491, 724, 1233, 1240, 1237, 1233, 3491, 2277, 3491, 725, 3491, 3491, 3491, 3250, 726, 727, 3371, 3371, 3371, 3371, 3491, 729, 3491, 730, 3491, 662, 3491, 2809, 3491, 3491, 3491, 3491, 1791, 1233, 1233, 1233, 1233, 1242, 1917, 1918, 1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917, 2715, 3491, 3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917, 724, 2186, 2186, 724, 3491, 3491, 2186, 3491, 3491, 3491, 2186, 725, 959, 960, 960, 959, 726, 727, 1917, 1917, 1917, 1917, 2712, 729, 3491, 730, 3491, 3321, 3322, 2616, 3321, 724, 3491, 3491, 724, 962, 3491, 963, 2617, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 1917, 1917, 1917, 1917, 1924, 729, 724, 730, 3491, 724, 724, 964, 3491, 724, 3491, 3491, 1335, 725, 3491, 975, 3491, 725, 726, 727, 3491, 3491, 726, 727, 3491, 729, 3491, 730, 3491, 729, 724, 730, 2719, 724, 3491, 3491, 3248, 1789, 1789, 3248, 3491, 725, 3491, 3491, 3491, 724, 726, 727, 724, 959, 960, 960, 959, 729, 3491, 730, 725, 1335, 3491, 2277, 724, 726, 727, 724, 724, 3491, 2720, 724, 729, 3491, 730, 725, 962, 3491, 963, 725, 726, 727, 3491, 724, 726, 727, 724, 729, 1791, 730, 3491, 729, 3491, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 964, 3491, 3491, 724, 1335, 729, 724, 730, 2721, 3491, 975, 3491, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 1335, 725, 3491, 729, 3491, 730, 726, 727, 3491, 724, 3491, 1335, 724, 729, 3491, 730, 3491, 3491, 3491, 724, 725, 3491, 724, 3491, 2722, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 724, 3491, 3491, 724, 3491, 729, 2723, 730, 3491, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 2724, 725, 3491, 729, 3491, 730, 726, 727, 3491, 724, 3491, 3491, 724, 729, 3491, 730, 3491, 3491, 3491, 724, 725, 3491, 724, 2725, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 758, 730, 726, 727, 724, 2634, 2634, 724, 3491, 729, 2634, 730, 3491, 3491, 2634, 725, 3491, 2727, 2726, 724, 726, 727, 724, 724, 3491, 3491, 724, 729, 3491, 730, 725, 3491, 2797, 2797, 725, 726, 727, 2797, 3491, 726, 727, 2797, 729, 3491, 730, 3491, 729, 2728, 730, 724, 2872, 2872, 724, 724, 3491, 2872, 724, 2729, 2730, 2872, 725, 3491, 3491, 3491, 725, 726, 727, 3491, 724, 726, 727, 724, 729, 1335, 730, 3491, 729, 3491, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 724, 3491, 3491, 724, 729, 3491, 730, 2731, 3491, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 2732, 3491, 3491, 725, 1335, 729, 3491, 730, 726, 727, 724, 3024, 3024, 724, 3491, 729, 3024, 730, 3491, 3491, 3024, 725, 3491, 3491, 3491, 3491, 726, 727, 759, 724, 3491, 3491, 724, 729, 3491, 730, 3491, 758, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 724, 3491, 3491, 724, 3491, 729, 758, 730, 3491, 3491, 1335, 725, 3491, 3491, 3491, 3491, 726, 727, 724, 3491, 3491, 724, 3491, 729, 3491, 730, 2733, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 758, 729, 3491, 730, 726, 727, 3491, 724, 3491, 3491, 724, 729, 3491, 730, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 724, 726, 727, 724, 3491, 3491, 3491, 3491, 729, 1335, 730, 725, 3491, 3491, 3491, 759, 726, 727, 3322, 3322, 2616, 3322, 3491, 729, 3491, 730, 3491, 3491, 3491, 2617, 3491, 3491, 3491, 3491, 3491, 2734, 3491, 2735, 1346, 1347, 1346, 1346, 1347, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1346, 1349, 1350, 1346, 724, 3491, 2736, 724, 1351, 1346, 1352, 1346, 1346, 1346, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 1346, 1346, 1346, 1346, 3491, 729, 3491, 730, 3325, 618, 3273, 3325, 3491, 724, 3491, 3491, 724, 3491, 3491, 3380, 3491, 3491, 3491, 759, 725, 3491, 3491, 3491, 2737, 726, 727, 1346, 1346, 1346, 1346, 1354, 729, 1335, 730, 724, 3491, 3491, 724, 724, 3491, 3491, 724, 3491, 3491, 3491, 725, 3491, 3491, 3491, 725, 726, 727, 3491, 724, 726, 727, 724, 729, 3491, 730, 2738, 729, 3491, 730, 725, 3491, 3491, 3491, 724, 726, 727, 724, 813, 814, 3491, 813, 729, 3491, 730, 725, 3491, 3491, 3491, 815, 726, 727, 3491, 3491, 816, 817, 2740, 729, 3491, 730, 3491, 729, 3491, 730, 3491, 2739, 813, 814, 3491, 813, 3371, 3371, 3371, 3371, 3491, 3491, 3491, 815, 3491, 2741, 3491, 2809, 816, 817, 3491, 2742, 3491, 3491, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 2743, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 2744, 3491, 813, 814, 3491, 813, 3371, 3371, 3371, 3371, 3491, 3491, 3491, 815, 3491, 3491, 3491, 2809, 816, 817, 813, 814, 2745, 813, 3491, 729, 2746, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 2747, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 2748, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 1434, 3491, 3491, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 845, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 2749, 730, 3491, 813, 814, 3491, 813, 3491, 3491, 3491, 3396, 1306, 3397, 3396, 815, 3491, 3491, 3491, 3491, 816, 817, 3274, 3255, 3491, 3491, 3255, 729, 3491, 730, 3491, 2751, 3491, 3491, 3250, 3255, 3257, 3491, 1434, 1917, 1994, 1995, 1917, 1994, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1996, 1917, 1917, 1917, 1917, 1997, 1998, 1917, 1434, 3255, 3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917, 813, 814, 3491, 813, 3491, 3491, 959, 960, 960, 959, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 1917, 1917, 1917, 1917, 3491, 729, 3491, 730, 3491, 3491, 3491, 962, 3491, 963, 3491, 3491, 2750, 3354, 1789, 1789, 3354, 3491, 3491, 3491, 3491, 3491, 3491, 813, 814, 3491, 813, 1917, 1917, 1917, 1917, 1999, 964, 3491, 815, 3491, 1790, 3491, 2752, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 975, 3491, 816, 817, 813, 814, 1791, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3453, 2288, 3453, 3453, 815, 3491, 3491, 1434, 3491, 816, 817, 3251, 813, 814, 2753, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 1434, 3491, 3491, 816, 817, 3491, 1434, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 2754, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 2755, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 2756, 3491, 3491, 816, 817, 3491, 3491, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 2757, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 845, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 2758, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 2759, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 2760, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 2761, 2762, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 1434, 813, 814, 3491, 813, 729, 3491, 730, 3453, 2288, 3453, 3453, 815, 3491, 3491, 3491, 3491, 816, 817, 3251, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 2763, 816, 817, 1434, 813, 814, 3491, 813, 729, 3491, 730, 959, 960, 960, 959, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 846, 3491, 815, 962, 3491, 963, 3491, 816, 817, 845, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 964, 813, 814, 2803, 813, 729, 3491, 730, 3426, 2290, 3426, 3426, 815, 3491, 3491, 3491, 845, 816, 817, 3274, 1434, 3491, 813, 814, 729, 813, 730, 959, 960, 960, 959, 3250, 3491, 815, 3491, 3491, 1434, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 962, 815, 963, 3491, 3491, 3491, 816, 817, 3491, 845, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3337, 1789, 3337, 3337, 815, 3491, 3491, 964, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 2802, 3491, 3491, 815, 3385, 3491, 1434, 3491, 816, 817, 813, 814, 846, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3339, 3491, 3491, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2764, 2765, 1346, 1445, 1446, 1346, 1445, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1447, 1346, 1346, 1346, 1346, 1448, 1449, 1346, 3491, 2767, 3491, 3491, 1351, 1346, 1352, 1346, 1346, 1346, 813, 814, 3491, 813, 3491, 3491, 3491, 3336, 1789, 3337, 3336, 815, 3491, 3491, 3491, 3491, 816, 817, 1346, 1346, 1346, 1346, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3385, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 3491, 3491, 846, 815, 3491, 3491, 3491, 3491, 816, 817, 1346, 1346, 1346, 1346, 1451, 729, 3339, 730, 3491, 813, 814, 2766, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 1434, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 2768, 729, 3491, 730, 3491, 729, 3491, 730, 813, 814, 3491, 813, 959, 960, 960, 959, 3491, 2769, 3491, 815, 959, 960, 960, 959, 816, 817, 3491, 3491, 3491, 3491, 2770, 729, 3491, 730, 3491, 962, 3491, 963, 2864, 2636, 2636, 2864, 2771, 962, 3491, 963, 3491, 3491, 3491, 619, 3491, 2864, 2636, 2636, 2864, 2636, 2636, 2636, 2636, 2772, 964, 1790, 619, 2638, 3491, 3491, 619, 975, 964, 3491, 3491, 3491, 3491, 3491, 1790, 3491, 2638, 3491, 2277, 3491, 2638, 2636, 2636, 2636, 2636, 3491, 1791, 1215, 1215, 1215, 1215, 975, 619, 3491, 2871, 3491, 3491, 3491, 3491, 1791, 3491, 3491, 3491, 1791, 2277, 3491, 2638, 3491, 3491, 3491, 631, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2866, 3491, 3491, 2875, 2296, 2296, 2875, 3491, 3491, 3491, 3491, 1791, 3491, 724, 2297, 620, 724, 633, 620, 2867, 617, 618, 618, 617, 725, 3491, 622, 620, 963, 726, 727, 619, 620, 3491, 3491, 620, 729, 724, 730, 3491, 724, 3491, 3491, 622, 620, 623, 3491, 3491, 725, 3491, 1218, 624, 620, 726, 727, 2654, 2655, 2655, 2654, 3491, 729, 3491, 730, 3491, 3491, 3491, 619, 620, 624, 620, 620, 3491, 2868, 617, 618, 618, 617, 2921, 622, 620, 963, 3491, 3491, 3491, 619, 620, 3491, 3491, 620, 959, 960, 960, 959, 3491, 3491, 3491, 622, 620, 623, 3491, 3491, 3491, 3491, 624, 620, 2869, 1335, 2799, 960, 960, 2799, 3491, 962, 3491, 963, 3491, 2655, 2655, 2655, 2655, 3491, 624, 620, 2653, 2296, 2296, 2653, 619, 620, 3491, 1564, 620, 963, 724, 2297, 620, 724, 964, 620, 622, 620, 3491, 3491, 3491, 725, 3491, 622, 620, 963, 726, 727, 3491, 3491, 3491, 975, 964, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 2905, 2905, 2905, 2905, 624, 620, 3491, 3491, 3491, 3491, 2333, 2297, 620, 3491, 3491, 620, 3491, 3491, 3491, 3491, 2922, 3491, 3491, 622, 620, 3491, 2334, 1808, 2893, 1810, 1810, 2893, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 3491, 624, 620, 3491, 1813, 1812, 1814, 1808, 1808, 1808, 3491, 3491, 3491, 3491, 3491, 3491, 724, 3491, 2906, 724, 3491, 3491, 959, 960, 960, 959, 3491, 725, 1808, 1815, 1812, 1808, 726, 727, 3491, 2864, 2636, 2636, 2864, 729, 3491, 730, 3491, 3491, 3491, 962, 619, 963, 3491, 3491, 3337, 1789, 3337, 3337, 3354, 1789, 1789, 3354, 2277, 1808, 1808, 1808, 1808, 1816, 2904, 2905, 2905, 2904, 3491, 724, 964, 3491, 724, 3385, 3491, 2297, 620, 2277, 3491, 620, 725, 758, 3491, 1791, 3491, 726, 727, 622, 620, 963, 3491, 975, 729, 724, 730, 3491, 724, 3491, 3339, 3491, 3491, 3491, 1791, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 624, 620, 725, 3491, 729, 3491, 730, 726, 727, 724, 3491, 2923, 724, 3491, 729, 3491, 730, 2906, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 724, 730, 3491, 724, 959, 960, 960, 959, 3491, 3491, 2924, 725, 3491, 3491, 3491, 724, 726, 727, 724, 759, 2925, 3491, 3491, 729, 3491, 730, 725, 962, 3491, 963, 724, 726, 727, 724, 724, 3491, 2926, 724, 729, 3491, 730, 725, 3491, 3491, 3491, 725, 726, 727, 3491, 3491, 726, 727, 964, 729, 3491, 730, 3491, 729, 3491, 730, 2981, 724, 3491, 3491, 724, 3491, 3491, 3491, 3041, 1799, 1799, 3041, 725, 3491, 759, 3491, 759, 726, 727, 619, 3491, 3491, 724, 3491, 729, 724, 730, 3491, 1335, 3491, 3491, 631, 724, 725, 3491, 724, 2928, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 3491, 724, 3491, 2929, 724, 729, 633, 730, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 724, 726, 727, 724, 724, 3491, 3491, 724, 729, 3491, 730, 725, 1335, 3491, 3491, 725, 726, 727, 2930, 724, 726, 727, 724, 729, 3491, 730, 3491, 729, 3491, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 724, 3491, 729, 724, 730, 3491, 3491, 959, 960, 960, 959, 725, 3491, 3491, 2931, 3491, 726, 727, 724, 2933, 3491, 724, 3491, 729, 3491, 730, 2932, 3491, 724, 725, 962, 724, 963, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 724, 3491, 1335, 724, 3491, 729, 3491, 730, 3491, 964, 1335, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 2864, 2636, 2636, 2864, 729, 724, 730, 3491, 724, 3491, 3491, 619, 3491, 975, 3491, 724, 725, 3491, 724, 2935, 3491, 726, 727, 1790, 2934, 2638, 725, 3491, 729, 3491, 730, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1791, 3491, 2936, 1917, 1918, 1917, 1917, 1918, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1919, 1917, 1917, 1917, 1917, 1920, 1921, 1917, 2938, 3491, 3491, 3491, 1922, 1917, 1923, 1917, 1917, 1917, 724, 3491, 3491, 724, 3491, 2939, 3491, 959, 960, 960, 959, 725, 3491, 3491, 3491, 3491, 726, 727, 1917, 1917, 1917, 1917, 2937, 729, 3491, 730, 3491, 3491, 3491, 3491, 962, 3491, 963, 3491, 3336, 1789, 3337, 3336, 3491, 3491, 3491, 3491, 3491, 724, 3491, 3251, 724, 3491, 3491, 1917, 1917, 1917, 1917, 1924, 725, 964, 2940, 3338, 724, 726, 727, 724, 724, 3491, 3491, 724, 729, 3491, 730, 725, 2982, 3491, 3491, 725, 726, 727, 3491, 3491, 726, 727, 3491, 729, 3339, 730, 3491, 729, 724, 730, 3491, 724, 724, 3491, 3491, 724, 3491, 3491, 3491, 725, 3491, 3491, 1335, 725, 726, 727, 3491, 3491, 726, 727, 3491, 729, 3491, 730, 3491, 729, 724, 730, 3491, 724, 2942, 3491, 3491, 3491, 2941, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 1335, 3491, 816, 817, 2943, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 758, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 2944, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 1434, 816, 817, 2945, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 845, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 2946, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 846, 3491, 816, 817, 3491, 813, 814, 2947, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 846, 846, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 2948, 729, 3491, 730, 3491, 729, 1434, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 2949, 729, 3491, 730, 3491, 729, 3491, 730, 1434, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 815, 1203, 1203, 1203, 1203, 816, 817, 3491, 1204, 3491, 2950, 3491, 729, 3491, 730, 3491, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 631, 3491, 3491, 815, 3491, 3491, 3491, 2951, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 633, 816, 817, 3491, 813, 814, 2952, 813, 729, 3491, 730, 3491, 3491, 3491, 3491, 815, 3491, 3491, 1205, 3491, 816, 817, 2953, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 634, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 1434, 3491, 3491, 816, 817, 3491, 1434, 3491, 813, 814, 729, 813, 730, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 2954, 813, 3491, 2955, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 2956, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 2958, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 2957, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 1434, 729, 3491, 730, 813, 814, 3491, 813, 3491, 3491, 3491, 2959, 3491, 3491, 3491, 815, 2808, 2808, 2808, 2808, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 2960, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 2809, 1434, 2809, 3491, 3491, 729, 3491, 730, 2864, 2636, 2636, 2864, 2636, 2636, 2636, 2636, 3491, 3491, 3491, 619, 3491, 3491, 3491, 619, 3491, 3491, 3491, 2961, 3491, 3491, 2985, 1790, 3491, 2638, 3491, 2277, 3491, 2638, 3250, 3491, 3250, 3250, 2986, 3491, 3491, 3250, 2987, 2988, 3491, 2989, 3491, 3491, 3491, 845, 995, 3491, 1791, 3491, 3491, 3491, 1791, 3250, 3491, 3491, 3036, 3041, 1799, 1799, 3041, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 619, 3491, 3491, 3491, 3491, 3037, 617, 618, 618, 617, 3250, 3491, 2289, 3491, 1801, 3491, 724, 619, 620, 724, 3491, 620, 3491, 2875, 2296, 2296, 2875, 725, 596, 622, 620, 623, 726, 727, 2297, 620, 3491, 633, 620, 729, 3491, 730, 3491, 3250, 3491, 3491, 622, 620, 963, 3491, 2905, 2905, 2905, 2905, 624, 620, 3491, 3491, 3491, 3491, 3491, 2297, 620, 3491, 3491, 620, 3491, 3491, 3491, 3491, 3491, 624, 620, 622, 620, 3491, 3491, 3038, 617, 618, 618, 617, 3491, 3491, 3491, 3491, 3491, 1335, 3491, 619, 620, 3491, 3491, 620, 724, 3491, 3491, 724, 624, 620, 3491, 622, 620, 623, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 2906, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 3039, 3045, 3046, 3047, 3047, 3046, 3045, 3045, 3045, 3045, 3045, 3045, 3045, 3048, 3049, 3045, 3045, 3049, 3045, 3045, 3045, 1335, 3491, 3491, 3491, 3050, 3049, 3051, 3045, 3045, 3045, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 724, 3491, 3491, 724, 3491, 3045, 3052, 3049, 3045, 3053, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 3491, 729, 3491, 730, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3045, 3045, 3045, 3045, 3054, 1808, 3057, 1810, 1810, 3057, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1811, 1812, 1808, 1808, 1812, 1808, 1808, 1808, 724, 3087, 3491, 724, 1813, 1812, 1814, 1808, 1808, 1808, 1335, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 724, 3491, 729, 724, 730, 3491, 3491, 1808, 1815, 1812, 1808, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3250, 3491, 3250, 3250, 3491, 3491, 3491, 3250, 3491, 759, 3491, 3491, 1808, 1808, 1808, 1808, 1816, 3063, 2296, 2296, 3063, 3491, 3491, 3250, 3491, 3088, 3491, 3491, 2297, 620, 3491, 3491, 620, 724, 3491, 3491, 724, 3491, 3491, 3491, 622, 620, 963, 3491, 725, 3491, 3491, 3491, 3250, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 724, 3491, 3491, 724, 3491, 3491, 624, 620, 3491, 3491, 3491, 725, 3491, 3491, 3064, 3491, 726, 727, 3065, 3491, 3491, 3491, 3250, 729, 3491, 730, 3491, 3066, 3491, 3491, 3491, 3067, 2904, 2905, 2905, 2904, 3491, 724, 3491, 1335, 724, 3491, 3491, 2297, 620, 3491, 3491, 620, 725, 3491, 3491, 3491, 3491, 726, 727, 622, 620, 963, 3491, 3491, 729, 724, 730, 1335, 724, 3491, 3491, 3491, 3491, 3491, 3491, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 624, 620, 725, 3491, 729, 3491, 730, 726, 727, 3491, 3491, 3089, 3491, 3491, 729, 3491, 730, 2906, 3090, 3091, 3090, 3090, 3091, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3092, 3090, 3090, 3090, 3090, 3093, 3094, 3090, 724, 3491, 3491, 724, 3095, 3090, 3096, 3090, 3090, 3090, 724, 725, 1335, 724, 3491, 3491, 726, 727, 3491, 3491, 3491, 725, 1335, 729, 3491, 730, 726, 727, 3090, 3090, 3090, 3090, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 959, 960, 960, 959, 3491, 724, 3491, 1335, 724, 3491, 3090, 3090, 3090, 3090, 3097, 724, 725, 3098, 724, 3491, 3491, 726, 727, 962, 3491, 963, 725, 3491, 729, 3491, 730, 726, 727, 724, 3491, 3491, 724, 3491, 729, 3491, 730, 3491, 3491, 724, 725, 3491, 724, 3491, 964, 726, 727, 3491, 3491, 3491, 725, 975, 729, 3491, 730, 726, 727, 3491, 724, 3491, 3491, 724, 729, 3491, 730, 3100, 3491, 3491, 3099, 725, 3491, 3491, 3491, 724, 726, 727, 724, 959, 960, 960, 959, 729, 3491, 730, 725, 3491, 3491, 3491, 724, 726, 727, 724, 3491, 3491, 3101, 1335, 729, 3491, 730, 725, 962, 3491, 963, 724, 726, 727, 724, 3491, 3491, 3491, 3491, 729, 3491, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 813, 814, 3102, 813, 964, 729, 3491, 730, 1335, 3491, 3491, 815, 2524, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 758, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 1335, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 1434, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 1434, 3491, 815, 846, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 1434, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 1434, 3491, 1434, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 3103, 3090, 3104, 3105, 3090, 3104, 3090, 3090, 3090, 3090, 3090, 3090, 3090, 3106, 3090, 3090, 3090, 3090, 3107, 3108, 3090, 813, 814, 3491, 813, 3095, 3090, 3096, 3090, 3090, 3090, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 1434, 3491, 729, 3491, 730, 3491, 3491, 3090, 3090, 3090, 3090, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 1434, 730, 3491, 3090, 3090, 3090, 3090, 3109, 813, 814, 3491, 813, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3110, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 813, 814, 3491, 813, 3491, 729, 3491, 730, 3491, 3491, 3491, 815, 3491, 3491, 3491, 1434, 816, 817, 3491, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3491, 3491, 3111, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 1434, 3491, 3491, 3491, 729, 3491, 730, 813, 814, 3491, 813, 3393, 1799, 3393, 3393, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3274, 816, 817, 813, 814, 3112, 813, 3491, 729, 3491, 730, 3491, 3268, 3491, 815, 1434, 3491, 3491, 3491, 816, 817, 3148, 3148, 3148, 3148, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3149, 3491, 3491, 3149, 3269, 3491, 3491, 845, 3491, 3491, 3491, 3151, 3149, 3491, 3491, 3491, 2864, 2636, 2636, 2864, 2636, 2636, 2636, 2636, 3491, 3491, 1434, 619, 3491, 3491, 3491, 619, 3491, 3491, 3491, 3491, 3152, 3149, 3491, 1790, 3491, 2638, 3491, 2277, 3491, 2638, 3041, 1799, 1799, 3041, 3491, 3169, 2296, 2296, 3169, 3491, 3491, 619, 3491, 3491, 3491, 3491, 2297, 620, 1791, 3491, 620, 3491, 1791, 2289, 3491, 1801, 3163, 3491, 622, 620, 3170, 3491, 3491, 3491, 2296, 2296, 2296, 2296, 3491, 3162, 617, 618, 618, 617, 3491, 2297, 620, 3491, 633, 620, 3491, 619, 620, 624, 620, 620, 724, 622, 620, 724, 3491, 3491, 3491, 622, 620, 623, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3175, 2296, 2296, 3175, 729, 3491, 730, 624, 620, 3491, 3491, 2297, 620, 624, 620, 620, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 622, 620, 963, 3491, 3059, 3060, 618, 3059, 3164, 617, 618, 618, 617, 3491, 1335, 619, 620, 3491, 3491, 620, 619, 620, 3491, 3491, 620, 624, 620, 622, 620, 963, 3491, 3491, 622, 620, 623, 3491, 3491, 3491, 3491, 3491, 3165, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 3491, 3491, 624, 620, 3176, 3177, 1810, 3178, 3177, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3179, 3180, 3176, 3176, 3180, 3176, 3176, 3176, 3060, 3060, 618, 3060, 3181, 3180, 3182, 3176, 3176, 3176, 724, 619, 620, 724, 3491, 620, 3491, 3491, 3491, 3491, 3491, 725, 3491, 622, 620, 3491, 726, 727, 3176, 3183, 3180, 3176, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3176, 3176, 3176, 3176, 3184, 3061, 618, 618, 3061, 3491, 3491, 3491, 3491, 3491, 3491, 724, 619, 620, 724, 3491, 620, 3202, 3491, 3491, 3491, 3491, 725, 3491, 622, 620, 963, 726, 727, 724, 3491, 3491, 724, 3491, 729, 3491, 730, 3491, 3491, 3491, 725, 3250, 3491, 3250, 3250, 726, 727, 3491, 3250, 624, 620, 3491, 729, 3491, 730, 3185, 3063, 2296, 2296, 3063, 3491, 3491, 3491, 3491, 3250, 3203, 3491, 2297, 620, 3491, 3491, 620, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 622, 620, 963, 3491, 724, 1335, 3491, 724, 3491, 3491, 3250, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 724, 726, 727, 724, 3491, 3491, 624, 620, 729, 2281, 730, 725, 3491, 3491, 3064, 3491, 726, 727, 3065, 3491, 3491, 3491, 3491, 729, 3250, 730, 3491, 3066, 3491, 3491, 3491, 3067, 3045, 3195, 3047, 3047, 3195, 3045, 3045, 3045, 3045, 3045, 3045, 3045, 3048, 3049, 3045, 3045, 3049, 3045, 3045, 3045, 3205, 3491, 3204, 3491, 3050, 3049, 3196, 3045, 3045, 3045, 724, 3491, 3491, 724, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3045, 3052, 3049, 3045, 3053, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 724, 3491, 3491, 724, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3045, 3045, 3045, 3045, 3054, 729, 3491, 730, 3491, 813, 814, 3206, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 3491, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 813, 814, 3491, 813, 813, 814, 3491, 813, 3491, 3491, 3491, 815, 3491, 3491, 1335, 815, 816, 817, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 1434, 729, 3491, 730, 813, 814, 3491, 813, 3417, 2636, 3418, 3417, 3491, 3491, 3491, 815, 3491, 3491, 3491, 3380, 816, 817, 3491, 813, 814, 3491, 813, 729, 3491, 730, 3491, 3385, 3491, 1434, 815, 3148, 3148, 3148, 3148, 816, 817, 3491, 3148, 3148, 3148, 3148, 729, 3149, 730, 3491, 3149, 3491, 3491, 3491, 3149, 3491, 3339, 3149, 3151, 3149, 3491, 3491, 3491, 3491, 3207, 3151, 3149, 3491, 3491, 3491, 2864, 2636, 2636, 2864, 3491, 2636, 2636, 2636, 2636, 3491, 3491, 619, 3491, 3152, 3149, 724, 619, 3491, 724, 3491, 3152, 3149, 3491, 1790, 1434, 2638, 725, 3491, 2277, 3491, 2638, 726, 727, 3491, 3169, 2296, 2296, 3169, 729, 724, 730, 3491, 724, 3491, 3491, 2297, 620, 3491, 1791, 620, 725, 3491, 3240, 1791, 3491, 726, 727, 622, 620, 3170, 3491, 3491, 729, 3491, 730, 3491, 3491, 3294, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3241, 617, 618, 618, 617, 3491, 624, 620, 3175, 2296, 2296, 3175, 619, 620, 3491, 3491, 620, 3491, 3491, 2297, 620, 3491, 3491, 620, 622, 620, 623, 3491, 3491, 3491, 3491, 622, 620, 963, 3293, 3491, 3252, 2296, 3253, 3252, 3491, 3491, 3491, 3285, 2296, 2296, 3285, 3254, 3255, 624, 620, 3255, 3491, 3491, 2297, 620, 624, 620, 620, 3256, 3255, 3257, 3491, 3491, 3491, 3491, 622, 620, 3286, 3491, 3242, 617, 618, 618, 617, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 619, 620, 3258, 3255, 620, 3491, 3491, 3491, 724, 624, 620, 724, 622, 620, 623, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3243, 3491, 3491, 729, 3491, 3357, 3491, 3491, 3491, 624, 620, 3261, 3261, 3491, 3261, 3261, 3261, 3250, 3261, 3261, 3261, 3261, 3261, 3262, 3263, 3261, 3261, 3261, 3264, 3264, 3250, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261, 3265, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3250, 3261, 3263, 3261, 3261, 3250, 3266, 1203, 3266, 3266, 3250, 3250, 3250, 3267, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 3250, 3269, 3250, 3250, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 1205, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 3250, 3250, 3250, 3270, 3271, 3250, 3272, 3491, 3273, 3272, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3274, 3255, 3250, 3250, 3255, 3250, 3250, 3250, 724, 3491, 3491, 724, 3256, 3255, 3275, 3250, 3250, 3250, 724, 725, 3491, 724, 3491, 3491, 726, 727, 3491, 3491, 621, 725, 3491, 729, 3491, 730, 726, 727, 3250, 3258, 3255, 3250, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 724, 3491, 3491, 724, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3295, 726, 727, 3250, 3250, 3250, 3250, 3276, 729, 3491, 730, 813, 814, 3491, 813, 2864, 2636, 2636, 2864, 3491, 3491, 3491, 815, 3491, 3296, 3491, 619, 816, 817, 3491, 2636, 2636, 2636, 2636, 729, 3491, 730, 3491, 1790, 3491, 2638, 619, 3491, 3491, 3491, 3252, 2296, 3253, 3252, 3491, 3491, 3491, 3491, 2277, 3491, 2638, 3254, 3255, 3491, 3491, 3255, 3491, 3297, 1791, 3491, 3491, 3491, 3491, 3256, 3255, 3257, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1791, 3491, 3285, 2296, 2296, 3285, 3491, 3491, 3323, 3491, 3298, 3491, 3491, 2297, 620, 3258, 3255, 620, 3324, 3249, 618, 618, 3249, 3491, 3491, 622, 620, 3286, 3491, 724, 619, 620, 724, 3491, 620, 3491, 3491, 3491, 3491, 3491, 725, 3491, 622, 620, 963, 726, 727, 3491, 3491, 3491, 624, 620, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 3491, 3491, 3491, 2333, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3360, 3491, 3491, 3491, 2334, 3263, 3263, 3491, 3263, 3263, 3263, 3250, 3263, 3263, 3263, 3263, 3263, 3262, 3263, 3263, 3263, 3263, 3250, 3250, 3250, 1200, 1200, 1200, 1200, 3263, 3263, 3263, 3263, 3332, 3263, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3263, 3263, 3263, 3263, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3250, 3263, 3263, 3263, 3263, 3250, 3266, 1203, 3266, 3266, 3250, 3250, 3250, 3267, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 3250, 3269, 3250, 3250, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 1205, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 3250, 3250, 3250, 3270, 3271, 3261, 3261, 3491, 3261, 3261, 3261, 3250, 3261, 3261, 3261, 3261, 3261, 3262, 3263, 3261, 3261, 3261, 3264, 3264, 3250, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261, 3265, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3261, 3261, 3261, 3261, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3250, 3261, 3263, 3261, 3261, 1200, 1200, 3491, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 3491, 3491, 813, 814, 3491, 813, 1200, 1200, 1200, 1200, 1566, 1200, 3491, 815, 3491, 3491, 3491, 3491, 816, 817, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 3491, 1200, 1200, 1200, 1200, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3361, 3491, 3491, 3491, 1200, 1200, 1200, 1200, 3264, 3264, 3491, 3264, 3264, 3264, 3250, 3264, 3264, 3264, 3264, 3264, 3251, 3250, 3264, 3264, 3264, 3264, 3264, 3250, 1201, 1201, 1201, 1201, 3264, 3264, 3264, 3264, 3335, 3264, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3264, 3264, 3264, 3264, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3250, 3264, 3250, 3264, 3264, 3250, 3340, 1215, 3340, 3340, 3250, 3250, 3250, 3341, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 3250, 3269, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 3250, 3250, 3250, 3342, 3343, 3250, 3344, 697, 3344, 3344, 3250, 3250, 3250, 3345, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 3250, 3250, 3250, 3250, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 3250, 3250, 3250, 3250, 3346, 724, 3491, 3491, 724, 724, 3491, 3491, 724, 3491, 3491, 3491, 725, 3491, 3491, 3491, 725, 726, 727, 3491, 724, 726, 727, 724, 729, 3491, 730, 3491, 729, 3491, 730, 725, 3491, 3491, 3491, 3491, 726, 727, 2864, 2636, 2636, 2864, 3491, 729, 3491, 730, 3491, 3491, 3491, 619, 3491, 3491, 3491, 3491, 2636, 2636, 2636, 2636, 3491, 3491, 3491, 1790, 3491, 2638, 3491, 619, 3491, 3491, 3491, 3491, 3491, 3358, 3383, 3491, 3250, 3383, 3359, 2277, 3491, 2638, 3491, 3491, 3491, 3251, 3250, 3491, 1791, 3250, 3491, 724, 3491, 3293, 724, 3491, 3491, 3384, 3250, 3250, 3491, 3491, 725, 3491, 1791, 3491, 3378, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3250, 3250, 3491, 3379, 1199, 1199, 3491, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1199, 1199, 1199, 1201, 1201, 3491, 3491, 3491, 3491, 3491, 1199, 1199, 1199, 1199, 1202, 1199, 3491, 3491, 3491, 3491, 3491, 3491, 3293, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1199, 1199, 1199, 1199, 3491, 724, 3491, 3491, 724, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 1199, 1200, 1199, 1199, 3250, 3387, 2279, 3387, 3387, 3250, 3250, 3250, 3388, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3405, 3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 3250, 3269, 3250, 3250, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2282, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 2281, 3250, 3250, 3250, 3342, 3389, 3250, 3340, 1215, 3340, 3340, 3250, 3250, 3250, 3341, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3268, 3250, 3250, 3250, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 3250, 3269, 3250, 3250, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 3250, 3250, 3250, 3342, 3343, 3250, 3390, 1802, 3390, 3390, 3250, 3250, 3250, 3391, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 3250, 3250, 3250, 3250, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804, 3250, 3250, 3250, 3250, 3392, 3250, 3393, 1799, 3393, 3393, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3274, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 1800, 1800, 1800, 1800, 3268, 3250, 3394, 3250, 3250, 3250, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 3250, 3269, 3250, 3250, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800, 3250, 3250, 3250, 3250, 3395, 3250, 3344, 697, 3344, 3344, 3250, 3250, 3250, 3345, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 3250, 3250, 3250, 3250, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 699, 3250, 3250, 3250, 3250, 3346, 3250, 3396, 1306, 3397, 3396, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3274, 3255, 3250, 3250, 3255, 3250, 3250, 3250, 1307, 1307, 1307, 1307, 3250, 3255, 3257, 3250, 3250, 3250, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 3250, 3250, 3255, 3250, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 3250, 3250, 3250, 3250, 3398, 724, 3491, 3491, 724, 813, 814, 3491, 813, 3491, 3491, 3491, 725, 3491, 3491, 3491, 815, 726, 727, 3491, 3491, 816, 817, 3491, 729, 3491, 730, 3491, 729, 3491, 730, 3491, 2864, 2636, 2636, 2864, 724, 3491, 3491, 724, 3491, 3491, 3491, 619, 3491, 3491, 3491, 725, 3491, 3491, 3491, 3491, 726, 727, 3491, 1790, 1335, 2638, 3491, 729, 1434, 730, 3491, 3491, 3491, 3491, 724, 3491, 3491, 724, 724, 3491, 3491, 724, 3491, 3491, 3491, 725, 3491, 3491, 1791, 725, 726, 727, 3491, 3491, 726, 727, 3491, 729, 3435, 730, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3416, 3250, 3417, 2636, 3418, 3417, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3326, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3459, 3491, 3491, 3491, 3385, 3250, 3419, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3470, 3491, 724, 3491, 3491, 724, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 725, 3250, 3339, 3250, 3250, 726, 727, 3491, 3491, 3491, 3491, 3491, 729, 3491, 730, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3420, 3250, 3387, 2279, 3387, 3387, 3250, 3250, 3250, 3424, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3293, 3268, 3250, 3250, 3250, 3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 3250, 3269, 3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2635, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 3250, 3250, 3250, 3342, 3425, 3250, 3426, 2290, 3426, 3426, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3274, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 2291, 2291, 2291, 2291, 3250, 3250, 3250, 3250, 3250, 3250, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 3250, 3250, 3250, 3250, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 2291, 3250, 3250, 3250, 3250, 3427, 3428, 3428, 3491, 3428, 3428, 3428, 3250, 3428, 3428, 3428, 3428, 3428, 3251, 3250, 3428, 3428, 3428, 3428, 3428, 3250, 1796, 1796, 1796, 1796, 3428, 3428, 3428, 3428, 3429, 3428, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 3428, 3428, 3428, 3428, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 3250, 3428, 3250, 3428, 3428, 3250, 3446, 2636, 3418, 3446, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3326, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3490, 618, 618, 3490, 3338, 3250, 3419, 3250, 3250, 3250, 3491, 619, 620, 3491, 3491, 620, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 622, 620, 963, 3491, 3491, 3250, 3339, 3250, 3250, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 624, 620, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3447, 3264, 3264, 3491, 3264, 3264, 3264, 3250, 3264, 3264, 3264, 3264, 3264, 3251, 3250, 3264, 3264, 3264, 3264, 3264, 3250, 1201, 1201, 1201, 1201, 3264, 3264, 3264, 3264, 3335, 3264, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3264, 3264, 3264, 3264, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3250, 3264, 3250, 3264, 3264, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250, 3450, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 3250, 3250, 3250, 3250, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 3250, 3250, 3250, 3250, 3451, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3491, 3491, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 3250, 3250, 3250, 3250, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 2634, 3250, 3250, 3250, 3250, 3425, 3250, 3383, 3491, 3250, 3383, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 2980, 2980, 2980, 2980, 3384, 3250, 3250, 3250, 3250, 3250, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 3250, 3250, 3250, 3250, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 3250, 3250, 3250, 3250, 3466, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 534, 534, 3491, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 566, 566, 3491, 566, 566, 566, 566, 566, 566, 566, 3491, 566, 566, 566, 3491, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 598, 598, 3491, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 632, 632, 632, 632, 3491, 632, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 632, 3491, 3491, 3491, 632, 632, 3491, 632, 3491, 632, 3491, 3491, 632, 632, 699, 699, 699, 699, 3491, 699, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 699, 699, 3491, 3491, 3491, 699, 3491, 3491, 3491, 699, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 797, 797, 797, 797, 3491, 3491, 3491, 797, 3491, 3491, 3491, 3491, 3491, 3491, 797, 797, 3491, 797, 3491, 797, 797, 3491, 797, 3491, 797, 3491, 3491, 3491, 797, 810, 810, 810, 810, 3491, 810, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 810, 810, 3491, 3491, 3491, 810, 3491, 3491, 3491, 810, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 880, 3491, 3491, 3491, 3491, 880, 880, 3491, 3491, 3491, 880, 3491, 3491, 3491, 880, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 901, 3491, 901, 3491, 3491, 3491, 3491, 901, 901, 3491, 3491, 3491, 901, 3491, 3491, 3491, 901, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 925, 925, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 925, 925, 3491, 3491, 3491, 925, 3491, 3491, 3491, 925, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 968, 968, 968, 968, 3491, 968, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 968, 968, 3491, 3491, 3491, 968, 3491, 3491, 968, 968, 988, 988, 988, 988, 3491, 988, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 988, 988, 3491, 3491, 3491, 988, 3491, 3491, 3491, 988, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1025, 3491, 3491, 1025, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491, 1025, 3491, 3491, 3491, 1025, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 1046, 1046, 3491, 1046, 3491, 1046, 1046, 3491, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1049, 3491, 3491, 3491, 3491, 1049, 1049, 3491, 3491, 3491, 1049, 3491, 3491, 3491, 1049, 1052, 1052, 1052, 1052, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1052, 1052, 3491, 3491, 3491, 1052, 1052, 3491, 3491, 1052, 1052, 3491, 3491, 3491, 1052, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1060, 1060, 3491, 1060, 1060, 3491, 3491, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 3491, 1060, 1060, 1060, 1060, 1060, 1060, 1061, 1061, 3491, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1090, 1090, 3491, 3491, 3491, 1090, 1090, 3491, 3491, 3491, 1090, 3491, 3491, 3491, 1090, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1095, 3491, 1095, 1095, 3491, 1095, 1095, 1095, 3491, 3491, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 3491, 1095, 1095, 1095, 1095, 1095, 1095, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 555, 555, 3491, 555, 555, 555, 555, 555, 555, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 566, 566, 3491, 566, 566, 566, 566, 566, 566, 566, 3491, 566, 566, 566, 3491, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 598, 598, 3491, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 1181, 3491, 3491, 1181, 3491, 1181, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 3491, 3491, 1181, 3491, 3491, 3491, 1181, 1181, 3491, 1181, 3491, 1181, 3491, 3491, 1181, 1181, 632, 632, 632, 632, 3491, 632, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 632, 3491, 3491, 3491, 632, 632, 3491, 632, 3491, 632, 3491, 3491, 632, 632, 1199, 1199, 3491, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 596, 596, 596, 596, 3491, 596, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 596, 3491, 3491, 3491, 596, 596, 3491, 596, 3491, 596, 3491, 3491, 596, 596, 1207, 3491, 1207, 1207, 3491, 1207, 1207, 1207, 1207, 3491, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 3491, 1207, 1207, 1207, 1207, 1207, 1207, 1211, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1211, 3491, 1211, 3491, 3491, 3491, 1211, 1211, 1211, 1211, 3491, 1211, 1211, 3491, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1217, 1217, 1217, 1217, 3491, 1217, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1217, 3491, 3491, 3491, 1217, 1217, 3491, 1217, 3491, 1217, 3491, 3491, 1217, 1217, 699, 699, 699, 699, 3491, 699, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 699, 699, 3491, 3491, 3491, 699, 3491, 3491, 3491, 699, 1307, 1307, 1307, 1307, 3491, 3491, 3491, 1307, 1307, 3491, 1307, 3491, 3491, 3491, 1307, 3491, 1307, 1307, 3491, 1307, 1307, 3491, 3491, 1307, 1307, 3491, 3491, 3491, 1307, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 1314, 3491, 3491, 1314, 3491, 1314, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 1314, 3491, 3491, 3491, 1314, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330, 1330, 797, 797, 797, 797, 3491, 3491, 3491, 797, 3491, 3491, 3491, 3491, 3491, 3491, 797, 797, 3491, 797, 3491, 797, 797, 3491, 797, 3491, 797, 3491, 3491, 3491, 797, 792, 792, 792, 792, 3491, 792, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 792, 3491, 3491, 3491, 792, 792, 3491, 792, 3491, 792, 3491, 3491, 792, 792, 1421, 1421, 3491, 1421, 1421, 3491, 1421, 1421, 3491, 3491, 1421, 1421, 1421, 1421, 3491, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 3491, 3491, 1421, 1421, 1426, 1426, 1426, 1426, 3491, 1426, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1426, 3491, 3491, 3491, 1426, 1426, 3491, 1426, 3491, 1426, 3491, 3491, 1426, 1426, 810, 810, 810, 810, 3491, 810, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 810, 810, 3491, 3491, 3491, 810, 3491, 3491, 3491, 810, 1430, 1430, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 3491, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 1430, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 880, 3491, 3491, 3491, 3491, 880, 880, 3491, 3491, 3491, 880, 3491, 3491, 3491, 880, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 1513, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1513, 1513, 3491, 3491, 3491, 1513, 3491, 3491, 3491, 1513, 1516, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1516, 1516, 3491, 3491, 3491, 1516, 3491, 3491, 3491, 1516, 901, 3491, 901, 3491, 3491, 3491, 3491, 901, 901, 3491, 3491, 3491, 901, 3491, 3491, 3491, 901, 1519, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1519, 1519, 3491, 3491, 3491, 1519, 3491, 3491, 3491, 1519, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 911, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 911, 911, 3491, 3491, 3491, 911, 3491, 3491, 3491, 911, 925, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 925, 925, 3491, 3491, 3491, 925, 3491, 3491, 3491, 925, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 968, 968, 968, 968, 3491, 968, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 968, 968, 3491, 3491, 3491, 968, 3491, 3491, 968, 968, 1200, 1200, 3491, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 3491, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1568, 1568, 1568, 1568, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1568, 1568, 3491, 1568, 3491, 1568, 1568, 3491, 1568, 3491, 1568, 3491, 3491, 3491, 1568, 988, 988, 988, 988, 3491, 988, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 988, 988, 3491, 3491, 3491, 988, 3491, 3491, 3491, 988, 1592, 3491, 3491, 1592, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1592, 3491, 3491, 1592, 3491, 1592, 1592, 3491, 3491, 3491, 1592, 3491, 3491, 3491, 1592, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1025, 3491, 3491, 1025, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491, 1025, 1025, 3491, 3491, 3491, 1025, 3491, 3491, 3491, 1025, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 1049, 3491, 3491, 3491, 3491, 1049, 1049, 3491, 3491, 3491, 1049, 3491, 3491, 3491, 1049, 1630, 1630, 3491, 1630, 3491, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 3491, 1630, 1630, 1630, 1630, 1630, 1630, 1632, 1632, 3491, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1052, 1052, 1052, 1052, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1052, 1052, 3491, 3491, 3491, 1052, 1052, 3491, 3491, 1052, 1052, 3491, 3491, 3491, 1052, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1634, 3491, 3491, 3491, 3491, 1634, 1634, 3491, 3491, 3491, 1634, 3491, 3491, 3491, 1634, 1060, 1060, 3491, 1060, 1060, 3491, 3491, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 3491, 1060, 1060, 1060, 1060, 1060, 1060, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1090, 1090, 3491, 3491, 3491, 1090, 1090, 3491, 3491, 3491, 1090, 3491, 3491, 3491, 1090, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1668, 3491, 1668, 1668, 3491, 1668, 1668, 1668, 3491, 3491, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 3491, 1668, 1668, 1668, 1668, 1668, 1668, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 3491, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 3491, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1693, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 1709, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 1737, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 3491, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 1181, 3491, 3491, 1181, 3491, 1181, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 3491, 3491, 1181, 3491, 3491, 3491, 1181, 1181, 3491, 1181, 3491, 1181, 3491, 3491, 1181, 1181, 1766, 1766, 1766, 1766, 3491, 1766, 3491, 3491, 1766, 3491, 3491, 3491, 3491, 3491, 1766, 1766, 3491, 3491, 3491, 1766, 1766, 3491, 1766, 3491, 1766, 3491, 3491, 1766, 1766, 1771, 1771, 1771, 1771, 3491, 1771, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1771, 1771, 3491, 3491, 3491, 1771, 3491, 3491, 3491, 1771, 1199, 1199, 3491, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1200, 1200, 3491, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 3491, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1201, 1201, 3491, 1201, 1201, 3491, 1201, 1201, 3491, 3491, 1201, 1201, 1201, 1201, 3491, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3491, 3491, 1201, 1201, 596, 596, 596, 596, 3491, 596, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 596, 3491, 3491, 3491, 596, 596, 3491, 596, 3491, 596, 3491, 3491, 596, 596, 1794, 3491, 1794, 1794, 3491, 1794, 1794, 1794, 1794, 3491, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 3491, 1794, 1794, 1794, 1794, 1794, 1794, 1211, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1211, 3491, 1211, 3491, 3491, 3491, 1211, 1211, 1211, 1211, 3491, 1211, 1211, 3491, 1211, 1211, 1211, 3491, 3491, 3491, 1211, 1795, 1795, 3491, 1795, 1795, 3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795, 632, 632, 632, 632, 3491, 632, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 632, 3491, 3491, 3491, 632, 632, 3491, 632, 3491, 632, 3491, 3491, 632, 632, 1217, 1217, 1217, 1217, 3491, 1217, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1217, 3491, 3491, 3491, 1217, 1217, 3491, 1217, 3491, 1217, 3491, 3491, 1217, 1217, 1800, 1800, 1800, 1800, 3491, 3491, 3491, 1800, 3491, 3491, 3491, 3491, 3491, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 3491, 3491, 3491, 1800, 1804, 1804, 1804, 1804, 3491, 1804, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1804, 1804, 3491, 3491, 3491, 1804, 3491, 3491, 3491, 1804, 1307, 1307, 1307, 1307, 3491, 3491, 3491, 1307, 1307, 3491, 1307, 3491, 3491, 3491, 1307, 3491, 1307, 1307, 3491, 1307, 1307, 3491, 3491, 1307, 1307, 3491, 3491, 3491, 1307, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 1314, 3491, 3491, 1314, 3491, 1314, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1314, 1314, 3491, 3491, 3491, 1314, 3491, 3491, 3491, 1314, 1895, 3491, 3491, 1895, 3491, 1895, 3491, 3491, 1895, 3491, 3491, 3491, 3491, 3491, 1895, 3491, 3491, 3491, 3491, 1895, 1895, 3491, 3491, 3491, 1895, 3491, 3491, 3491, 1895, 1913, 3491, 3491, 1913, 3491, 1913, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1913, 1913, 3491, 3491, 3491, 1913, 3491, 3491, 3491, 1913, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330, 1330, 1421, 1421, 3491, 1421, 1421, 3491, 1421, 1421, 3491, 3491, 1421, 1421, 1421, 1421, 3491, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 3491, 3491, 1421, 1421, 792, 792, 792, 792, 3491, 792, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 792, 3491, 3491, 3491, 792, 792, 3491, 792, 3491, 792, 3491, 3491, 792, 792, 1426, 1426, 1426, 1426, 3491, 1426, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1426, 3491, 3491, 3491, 1426, 1426, 3491, 1426, 3491, 1426, 3491, 3491, 1426, 1426, 1987, 1987, 1987, 1987, 3491, 3491, 3491, 1987, 3491, 3491, 3491, 3491, 3491, 3491, 1987, 1987, 3491, 1987, 3491, 1987, 1987, 3491, 1987, 3491, 1987, 3491, 3491, 3491, 1987, 1990, 1990, 1990, 1990, 3491, 1990, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1990, 1990, 3491, 3491, 3491, 1990, 3491, 3491, 3491, 1990, 1430, 1430, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 3491, 1430, 1430, 3491, 3491, 3491, 1430, 3491, 3491, 3491, 1430, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 2058, 3491, 3491, 3491, 3491, 3491, 2058, 3491, 3491, 3491, 3491, 2058, 2058, 3491, 3491, 3491, 2058, 3491, 3491, 3491, 2058, 2060, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2060, 2060, 3491, 3491, 3491, 2060, 3491, 3491, 3491, 2060, 2061, 3491, 3491, 3491, 3491, 2061, 2061, 3491, 2061, 3491, 2061, 3491, 3491, 3491, 2061, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 2063, 3491, 2063, 3491, 3491, 3491, 3491, 2063, 2063, 3491, 3491, 3491, 2063, 3491, 3491, 3491, 2063, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 2079, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2110, 2110, 2110, 2110, 3491, 2110, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2110, 2110, 3491, 3491, 3491, 2110, 3491, 3491, 2110, 2110, 968, 968, 968, 968, 3491, 968, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 968, 968, 3491, 3491, 3491, 968, 3491, 3491, 968, 968, 1568, 1568, 1568, 1568, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1568, 1568, 3491, 1568, 3491, 1568, 1568, 3491, 1568, 3491, 1568, 3491, 3491, 3491, 1568, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 1200, 1200, 3491, 1200, 1200, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 3491, 3491, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 3491, 1200, 1200, 1200, 1592, 3491, 3491, 1592, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1592, 3491, 3491, 1592, 3491, 1592, 1592, 3491, 3491, 3491, 1592, 3491, 3491, 3491, 1592, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 2156, 2156, 3491, 2156, 3491, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 3491, 2156, 2156, 2156, 2156, 2156, 2156, 1634, 3491, 3491, 3491, 3491, 1634, 1634, 3491, 3491, 3491, 1634, 3491, 3491, 3491, 1634, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 2159, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 2186, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2186, 2186, 3491, 3491, 3491, 2186, 3491, 3491, 3491, 2186, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 2191, 3491, 2191, 2191, 3491, 2191, 2191, 2191, 3491, 3491, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 2191, 3491, 2191, 2191, 2191, 2191, 2191, 2191, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 3491, 2206, 2206, 2206, 3491, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 3491, 2212, 2212, 2212, 3491, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2212, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 1702, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2218, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 1718, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 1724, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 1729, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 2229, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 1749, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 1766, 1766, 1766, 1766, 3491, 1766, 3491, 3491, 1766, 3491, 3491, 3491, 3491, 3491, 1766, 1766, 3491, 3491, 3491, 1766, 1766, 3491, 1766, 3491, 1766, 3491, 3491, 1766, 1766, 1181, 1181, 1181, 1181, 3491, 1181, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181, 3491, 3491, 1181, 1181, 1771, 1771, 1771, 1771, 3491, 1771, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1771, 1771, 3491, 3491, 3491, 1771, 3491, 3491, 3491, 1771, 2256, 3491, 3491, 2256, 3491, 2256, 3491, 3491, 2256, 3491, 3491, 3491, 3491, 3491, 2256, 2256, 3491, 3491, 3491, 2256, 2256, 3491, 2256, 3491, 2256, 3491, 3491, 2256, 2256, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 3491, 3491, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 3491, 1233, 1233, 1233, 1233, 3491, 3491, 1233, 1233, 1233, 3491, 1233, 1233, 1233, 1233, 2281, 2281, 2281, 2281, 3491, 2281, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2281, 3491, 3491, 3491, 2281, 2281, 3491, 2281, 3491, 2281, 3491, 3491, 2281, 2281, 2285, 3491, 2285, 2285, 3491, 2285, 2285, 2285, 2285, 3491, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 3491, 2285, 2285, 2285, 2285, 2285, 2285, 1795, 1795, 3491, 1795, 1795, 3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 3491, 1795, 1795, 1795, 1796, 1796, 3491, 1796, 1796, 3491, 1796, 1796, 3491, 3491, 1796, 1796, 1796, 1796, 3491, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 3491, 3491, 1796, 1796, 632, 632, 632, 632, 3491, 632, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 632, 3491, 3491, 3491, 632, 632, 3491, 632, 3491, 632, 3491, 3491, 632, 632, 1800, 1800, 1800, 1800, 3491, 3491, 3491, 1800, 3491, 3491, 3491, 3491, 3491, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 1800, 3491, 1800, 3491, 1800, 3491, 3491, 3491, 1800, 1804, 1804, 1804, 1804, 3491, 1804, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1804, 1804, 3491, 3491, 3491, 1804, 3491, 3491, 3491, 1804, 2291, 2291, 2291, 2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 2291, 2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 2291, 1199, 1199, 3491, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 3491, 1199, 1199, 1199, 596, 596, 596, 596, 3491, 596, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 596, 3491, 3491, 3491, 596, 596, 3491, 596, 3491, 596, 3491, 3491, 596, 596, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 1895, 3491, 3491, 1895, 3491, 1895, 3491, 3491, 1895, 3491, 3491, 3491, 3491, 3491, 1895, 3491, 3491, 3491, 3491, 1895, 1895, 3491, 3491, 3491, 1895, 3491, 3491, 3491, 1895, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 3491, 1917, 1917, 1917, 1917, 3491, 3491, 1917, 1917, 1917, 3491, 1917, 1917, 1917, 1917, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 3491, 1346, 1346, 1346, 1346, 3491, 3491, 1346, 1346, 1346, 3491, 1346, 1346, 1346, 1346, 1913, 3491, 3491, 1913, 3491, 1913, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1913, 1913, 3491, 3491, 3491, 1913, 3491, 3491, 3491, 1913, 2377, 3491, 3491, 2377, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2377, 2377, 3491, 2377, 3491, 2377, 2377, 3491, 3491, 3491, 2377, 3491, 3491, 3491, 2377, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330, 1330, 1987, 1987, 1987, 1987, 3491, 3491, 3491, 1987, 3491, 3491, 3491, 3491, 3491, 3491, 1987, 1987, 3491, 1987, 3491, 1987, 1987, 3491, 1987, 3491, 1987, 3491, 3491, 3491, 1987, 1990, 1990, 1990, 1990, 3491, 1990, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1990, 1990, 3491, 3491, 3491, 1990, 3491, 3491, 3491, 1990, 2434, 2434, 2434, 2434, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 2434, 2434, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 2434, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 2058, 3491, 3491, 3491, 3491, 3491, 2058, 3491, 3491, 3491, 3491, 2058, 2058, 3491, 3491, 3491, 2058, 3491, 3491, 3491, 2058, 2485, 2485, 3491, 3491, 3491, 2485, 2485, 3491, 3491, 3491, 2485, 3491, 3491, 3491, 2485, 2061, 3491, 3491, 3491, 3491, 2061, 2061, 3491, 2061, 3491, 2061, 3491, 3491, 3491, 2061, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 2063, 3491, 2063, 3491, 3491, 3491, 3491, 2063, 2063, 3491, 3491, 3491, 2063, 3491, 3491, 3491, 2063, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2521, 2521, 2521, 2521, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 3491, 3491, 3491, 2521, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 1006, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 2560, 2560, 3491, 2560, 3491, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 2560, 3491, 2560, 2560, 2560, 2560, 2560, 2560, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2563, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 2579, 2579, 3491, 3491, 3491, 2579, 2579, 3491, 3491, 3491, 2579, 3491, 3491, 3491, 2579, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 2580, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2585, 3491, 2585, 2585, 3491, 2585, 2585, 2585, 3491, 3491, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 3491, 2585, 2585, 2585, 2585, 2585, 2585, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2588, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 2220, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 1695, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 621, 621, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 1181, 1181, 1181, 1181, 3491, 1181, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181, 3491, 3491, 1181, 1181, 2256, 3491, 3491, 2256, 3491, 2256, 3491, 3491, 2256, 3491, 3491, 3491, 3491, 3491, 2256, 2256, 3491, 3491, 3491, 2256, 2256, 3491, 2256, 3491, 2256, 3491, 3491, 2256, 2256, 1766, 1766, 1766, 1766, 3491, 1766, 3491, 3491, 1766, 3491, 3491, 3491, 3491, 3491, 1766, 1766, 3491, 3491, 3491, 1766, 1766, 3491, 1766, 3491, 1766, 3491, 3491, 1766, 1766, 2634, 2634, 2634, 2634, 3491, 2634, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2634, 3491, 3491, 3491, 2634, 2634, 3491, 2634, 3491, 2634, 3491, 3491, 2634, 2634, 2281, 2281, 2281, 2281, 3491, 2281, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2281, 3491, 3491, 3491, 2281, 2281, 3491, 2281, 3491, 2281, 3491, 3491, 2281, 2281, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 2642, 3491, 2642, 2642, 3491, 2642, 2642, 2642, 2642, 3491, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 2642, 3491, 2642, 2642, 2642, 2642, 2642, 2642, 2291, 2291, 2291, 2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 3491, 2291, 2291, 3491, 3491, 3491, 2291, 3491, 3491, 3491, 2291, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 2377, 3491, 3491, 2377, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2377, 2377, 3491, 2377, 3491, 2377, 2377, 3491, 3491, 3491, 2377, 3491, 3491, 3491, 2377, 2434, 2434, 2434, 2434, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 3491, 2434, 2434, 3491, 3491, 3491, 2434, 3491, 3491, 3491, 2434, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 2485, 2485, 3491, 3491, 3491, 2485, 2485, 3491, 3491, 3491, 2485, 3491, 3491, 3491, 2485, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2504, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2506, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2521, 2521, 2521, 2521, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 2521, 3491, 2521, 3491, 2521, 3491, 3491, 3491, 2521, 2797, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2797, 2797, 3491, 3491, 3491, 2797, 3491, 3491, 3491, 2797, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 998, 998, 998, 998, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 998, 3491, 998, 3491, 998, 998, 998, 3491, 3491, 3491, 998, 998, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 2579, 2579, 3491, 3491, 3491, 2579, 2579, 3491, 3491, 3491, 2579, 3491, 3491, 3491, 2579, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2840, 3491, 2840, 2840, 3491, 2840, 2840, 2840, 3491, 3491, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 3491, 2840, 2840, 2840, 2840, 2840, 2840, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2589, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2591, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 2601, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2213, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2215, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 3491, 2849, 2849, 2849, 3491, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 1181, 1181, 1181, 1181, 3491, 1181, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 1181, 1181, 3491, 3491, 3491, 1181, 3491, 3491, 1181, 1181, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 3491, 3491, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 1201, 1201, 3491, 1201, 1201, 3491, 1201, 1201, 3491, 3491, 1201, 1201, 1201, 1201, 3491, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3491, 3491, 1201, 1201, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 2870, 3491, 2870, 2870, 3491, 2870, 2870, 2870, 2870, 3491, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 3491, 2870, 2870, 2870, 2870, 2870, 2870, 2872, 2872, 2872, 2872, 3491, 2872, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2872, 3491, 3491, 3491, 2872, 2872, 3491, 2872, 3491, 2872, 3491, 3491, 2872, 2872, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 2980, 3491, 3491, 2980, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491, 2980, 3491, 3491, 3491, 2980, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 3005, 3491, 3005, 3005, 3491, 3005, 3005, 3005, 3491, 3491, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3491, 3005, 3005, 3005, 3005, 3005, 3005, 3008, 3008, 3491, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3010, 3010, 3491, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3012, 3012, 3491, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3014, 3014, 3491, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3016, 3016, 3491, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3024, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3024, 3491, 3491, 3491, 3024, 3024, 3491, 3024, 3491, 3024, 3491, 3491, 3024, 3024, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 3040, 3491, 3040, 3040, 3491, 3040, 3040, 3040, 3040, 3491, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3491, 3040, 3040, 3040, 3040, 3040, 3040, 3042, 3042, 3042, 3042, 3491, 3491, 3491, 3042, 3491, 3491, 3491, 3491, 3491, 3491, 3042, 3042, 3491, 3042, 3491, 3042, 3042, 3491, 3042, 3491, 3042, 3491, 3491, 3491, 3042, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 3118, 3118, 3491, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3491, 3121, 3121, 3121, 3121, 3491, 3491, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 2980, 3491, 3491, 2980, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491, 2980, 2980, 3491, 3491, 3491, 2980, 3491, 3491, 3491, 2980, 961, 961, 961, 961, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 961, 961, 3491, 961, 3491, 961, 961, 3491, 961, 3491, 961, 3491, 3491, 3491, 961, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1006, 3491, 3491, 3491, 3491, 1006, 1006, 3491, 3491, 3491, 1006, 3491, 3491, 3491, 1006, 1028, 3491, 3491, 3491, 3491, 1028, 1028, 3491, 3491, 3491, 1028, 3491, 3491, 3491, 1028, 3134, 3134, 3491, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 1068, 3491, 3491, 3491, 3491, 1068, 1068, 3491, 3491, 3491, 1068, 3491, 3491, 3491, 1068, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3136, 3491, 3136, 3136, 3491, 3136, 3136, 3136, 3491, 3491, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3491, 3136, 3136, 3136, 3136, 3136, 3136, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3008, 3008, 3491, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3010, 3010, 3491, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 3012, 3012, 3491, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 3014, 3014, 3491, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 3014, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 3016, 3016, 3491, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 3150, 3150, 3150, 3150, 3491, 3491, 3491, 3491, 3150, 3491, 3150, 3491, 3491, 3491, 3150, 3150, 3150, 3491, 3491, 3150, 3150, 3491, 3150, 3150, 3150, 3491, 3491, 3491, 3150, 3156, 3156, 3156, 3156, 3491, 3156, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3156, 3156, 3491, 3491, 3491, 3156, 3491, 3491, 3491, 3156, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 3166, 3491, 3166, 3166, 3491, 3166, 3166, 3166, 3166, 3491, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3166, 3491, 3166, 3166, 3166, 3166, 3166, 3166, 3042, 3042, 3042, 3042, 3491, 3491, 3491, 3042, 3491, 3491, 3491, 3491, 3491, 3491, 3042, 3042, 3491, 3042, 3491, 3042, 3042, 3491, 3042, 3491, 3042, 3491, 3491, 3491, 3042, 3171, 3171, 3491, 3171, 3171, 3491, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171, 3171, 596, 596, 596, 596, 3491, 596, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 596, 3491, 3491, 3491, 596, 596, 3491, 596, 3491, 596, 3491, 3491, 596, 596, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330, 1330, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 914, 914, 3491, 3491, 3491, 914, 914, 3491, 914, 3491, 914, 3491, 3491, 3491, 914, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 3118, 3118, 3491, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3008, 3008, 3491, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 3134, 3134, 3491, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 3134, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 3224, 3491, 3224, 3224, 3491, 3224, 3224, 3224, 3491, 3491, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3224, 3491, 3224, 3224, 3224, 3224, 3224, 3224, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 3150, 3150, 3150, 3150, 3491, 3491, 3491, 3491, 3150, 3491, 3150, 3491, 3491, 3491, 3150, 3150, 3150, 3491, 3491, 3150, 3150, 3491, 3150, 3150, 3150, 3491, 3491, 3491, 3150, 3024, 3024, 3024, 3024, 3491, 3024, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3024, 3024, 3491, 3491, 3491, 3024, 3491, 3491, 3024, 3024, 3156, 3156, 3156, 3156, 3491, 3156, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3156, 3156, 3491, 3491, 3491, 3156, 3491, 3491, 3491, 3156, 3235, 3235, 3235, 3235, 3491, 3491, 3491, 3491, 3235, 3491, 3235, 3491, 3491, 3491, 3235, 3491, 3235, 3491, 3491, 3235, 3235, 3491, 3491, 3235, 3235, 3491, 3491, 3491, 3235, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 3491, 3491, 1808, 1808, 1808, 3491, 1808, 1808, 1808, 1808, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 621, 621, 621, 621, 3491, 3491, 3491, 621, 621, 3491, 621, 3491, 3491, 3491, 621, 621, 621, 621, 3491, 621, 621, 3491, 621, 621, 621, 3491, 3491, 3491, 621, 3244, 3491, 3244, 3244, 3491, 3244, 3244, 3244, 3244, 3491, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3244, 3491, 3244, 3244, 3244, 3244, 3244, 3244, 3172, 3172, 3491, 3172, 3172, 3491, 3172, 3172, 3172, 3172, 3172, 3172, 3491, 3491, 3491, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3172, 3491, 3172, 3172, 3172, 3171, 3171, 3491, 3171, 3171, 3491, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3491, 3171, 3171, 3171, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3491, 3491, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3287, 3287, 3491, 3287, 3287, 3491, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 905, 3491, 3491, 3491, 3491, 905, 905, 3491, 3491, 3491, 905, 3491, 3491, 3491, 905, 1531, 3491, 3491, 3491, 3491, 1531, 1531, 3491, 3491, 3491, 1531, 3491, 3491, 3491, 1531, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 3312, 3491, 3312, 3312, 3491, 3312, 3312, 3312, 3491, 3491, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3491, 3312, 3312, 3312, 3312, 3312, 3312, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 3024, 3024, 3024, 3024, 3491, 3024, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3024, 3024, 3491, 3491, 3491, 3024, 3491, 3491, 3024, 3024, 3235, 3235, 3235, 3235, 3491, 3491, 3491, 3491, 3235, 3491, 3235, 3491, 3491, 3491, 3235, 3491, 3235, 3491, 3491, 3235, 3235, 3491, 3491, 3235, 3235, 3491, 3491, 3491, 3235, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 3328, 3491, 3328, 3328, 3491, 3328, 3328, 3328, 3328, 3491, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3491, 3328, 3328, 3328, 3328, 3328, 3328, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3491, 3491, 3250, 3250, 3250, 3491, 3250, 3250, 3250, 3250, 3288, 3288, 3491, 3288, 3288, 3491, 3288, 3288, 3288, 3288, 3288, 3288, 3491, 3491, 3491, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3491, 3288, 3288, 3288, 3287, 3287, 3491, 3287, 3287, 3491, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3491, 3287, 3287, 3287, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 891, 3491, 3491, 891, 3491, 3491, 3491, 891, 3491, 3491, 3491, 3491, 3491, 3491, 891, 891, 3491, 3491, 3491, 891, 891, 3491, 891, 3491, 891, 3491, 3491, 3491, 891, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 998, 998, 998, 998, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 998, 3491, 3491, 998, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 3374, 3491, 3374, 3374, 3491, 3374, 3374, 3374, 3491, 3491, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3491, 3374, 3374, 3374, 3374, 3374, 3374, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 530, 530, 3491, 3491, 530, 3491, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 3491, 530, 530, 530, 530, 530, 530, 539, 539, 3491, 3491, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 3491, 539, 539, 539, 539, 539, 539, 547, 547, 3491, 547, 547, 3491, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 547, 576, 576, 3491, 3491, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 2865, 2865, 2865, 2865, 3491, 3491, 3491, 2865, 3491, 3491, 3491, 3491, 3491, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 2865, 3491, 2865, 3491, 2865, 3491, 3491, 3491, 2865, 2637, 2637, 2637, 2637, 3491, 3491, 3491, 2637, 3491, 3491, 3491, 3491, 3491, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 2637, 3491, 2637, 3491, 2637, 3491, 3491, 3491, 2637, 3382, 3491, 3382, 3382, 3491, 3382, 3382, 3382, 3382, 3491, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3491, 3382, 3382, 3382, 3382, 3382, 3382, 1330, 1330, 3491, 1330, 1330, 1330, 1330, 1330, 3491, 3491, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 1330, 3491, 1330, 1330, 1330, 3491, 1330, 3491, 1330, 3491, 3491, 1330, 1330, 728, 3491, 3491, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 728, 3491, 728, 728, 3491, 728, 3491, 728, 728, 3491, 3491, 3491, 728, 3491, 3491, 3491, 728, 818, 818, 3491, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 818, 3491, 818, 818, 3491, 818, 3491, 818, 818, 3491, 3491, 3491, 818, 3491, 3491, 3491, 818, 3408, 3491, 3491, 3408, 3491, 3408, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3408, 3408, 3491, 3491, 3491, 3408, 3491, 3491, 3491, 3408, 927, 927, 3491, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 998, 3491, 3491, 3491, 3491, 998, 998, 3491, 3491, 3491, 998, 3491, 3491, 3491, 998, 1055, 1055, 3491, 1055, 1055, 3491, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 3491, 1055, 1055, 1055, 1055, 1055, 1055, 3413, 3491, 3413, 3413, 3491, 3413, 3413, 3413, 3491, 3491, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3491, 3413, 3413, 3413, 3413, 3413, 3413, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3491, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 3422, 3491, 3422, 3422, 3491, 3422, 3422, 3422, 3422, 3491, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3491, 3422, 3422, 3422, 3422, 3422, 3422, 3437, 3491, 3491, 3437, 3491, 3437, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3437, 3437, 3491, 3491, 3491, 3437, 3491, 3491, 3491, 3437, 3440, 3491, 3491, 3440, 3491, 3491, 3491, 3491, 3440, 3491, 3491, 3491, 3491, 3491, 3440, 3491, 3491, 3491, 3491, 3440, 3440, 3491, 3491, 3491, 3440, 3491, 3491, 3491, 3440, 3443, 3491, 3443, 3443, 3491, 3443, 3443, 3443, 3491, 3491, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3491, 3443, 3443, 3443, 3443, 3443, 3443, 3449, 3491, 3449, 3449, 3491, 3449, 3449, 3449, 3449, 3491, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3491, 3449, 3449, 3449, 3449, 3449, 3449, 3461, 3491, 3491, 3461, 3491, 3491, 3491, 3491, 3461, 3491, 3491, 3491, 3491, 3491, 3461, 3491, 3491, 3491, 3491, 3461, 3461, 3491, 3491, 3491, 3461, 3491, 3491, 3491, 3461, 3462, 3491, 3462, 3462, 3491, 3462, 3462, 3462, 3491, 3491, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3462, 3491, 3462, 3462, 3462, 3462, 3462, 3462, 3465, 3491, 3465, 3465, 3491, 3465, 3465, 3465, 3465, 3491, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3491, 3465, 3465, 3465, 3465, 3465, 3465, 3471, 3491, 3471, 3471, 3491, 3471, 3471, 3471, 3491, 3491, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3491, 3471, 3471, 3471, 3471, 3471, 3471, 3474, 3491, 3474, 3474, 3491, 3474, 3474, 3474, 3474, 3491, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3491, 3474, 3474, 3474, 3474, 3474, 3474, 3476, 3491, 3476, 3476, 3491, 3476, 3476, 3476, 3491, 3491, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3491, 3476, 3476, 3476, 3476, 3476, 3476, 3479, 3491, 3479, 3479, 3491, 3479, 3479, 3479, 3479, 3491, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3479, 3491, 3479, 3479, 3479, 3479, 3479, 3479, 3480, 3491, 3480, 3480, 3491, 3480, 3480, 3480, 3491, 3491, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3480, 3491, 3480, 3480, 3480, 3480, 3480, 3480, 3483, 3491, 3483, 3483, 3491, 3483, 3483, 3483, 3483, 3491, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3491, 3483, 3483, 3483, 3483, 3483, 3483, 67, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491 } ; static yyconst flex_int16_t yy_chk[36069] = { 0, 0, 0, 1, 1, 2, 2, 2, 2, 111, 111, 3, 3, 1, 1, 3, 2, 2, 198, 0, 1, 3, 3, 2, 22, 0, 20, 22, 3, 20, 1, 73, 20, 2, 76, 198, 73, 24, 3, 76, 24, 81, 22, 85, 20, 164, 81, 130, 85, 1, 26, 1, 2, 26, 2, 24, 169, 3, 3, 3, 4, 4, 4, 4, 90, 4, 5, 5, 26, 90, 294, 4, 4, 164, 169, 5, 5, 5, 4, 28, 93, 30, 28, 5, 30, 93, 100, 103, 4, 294, 130, 100, 103, 5, 7, 7, 109, 28, 7, 30, 670, 109, 670, 163, 7, 7, 314, 4, 4, 4, 163, 7, 5, 5, 5, 6, 6, 6, 6, 32, 34, 7, 32, 34, 113, 6, 6, 6, 44, 113, 1114, 44, 1114, 6, 9, 9, 46, 32, 34, 46, 7, 178, 7, 6, 9, 9, 44, 8, 8, 8, 8, 9, 8, 48, 46, 120, 48, 314, 8, 8, 120, 9, 6, 6, 6, 8, 2180, 10, 10, 10, 10, 48, 123, 115, 178, 8, 115, 123, 10, 10, 9, 9, 9, 140, 148, 10, 115, 148, 140, 11, 11, 11, 11, 143, 8, 10, 8, 148, 143, 155, 11, 11, 11, 204, 155, 50, 360, 11, 50, 12, 12, 12, 12, 204, 10, 10, 10, 11, 13, 13, 12, 12, 12, 50, 179, 129, 360, 12, 13, 13, 129, 14, 14, 14, 14, 13, 11, 12, 11, 339, 15, 15, 14, 14, 52, 13, 327, 52, 194, 14, 15, 15, 15, 194, 176, 188, 12, 15, 12, 14, 129, 339, 52, 179, 13, 13, 13, 15, 131, 131, 668, 16, 16, 16, 16, 176, 188, 176, 14, 14, 14, 188, 16, 16, 16, 668, 15, 176, 15, 16, 17, 17, 133, 18, 18, 18, 18, 133, 246, 16, 17, 17, 202, 246, 18, 18, 38, 17, 327, 38, 54, 18, 38, 54, 202, 131, 183, 17, 16, 56, 16, 18, 56, 58, 38, 663, 58, 133, 54, 207, 207, 209, 209, 663, 38, 183, 17, 56, 17, 183, 18, 58, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 35, 35, 35, 36, 36, 36, 36, 260, 39, 39, 35, 35, 260, 193, 36, 36, 193, 35, 39, 39, 60, 36, 35, 60, 644, 39, 36, 35, 328, 170, 644, 36, 39, 62, 39, 39, 62, 64, 60, 69, 64, 75, 69, 351, 75, 2181, 35, 351, 35, 170, 36, 62, 36, 328, 39, 64, 39, 69, 84, 75, 92, 84, 95, 92, 262, 95, 170, 150, 170, 299, 150, 2182, 299, 193, 262, 262, 84, 35, 92, 150, 95, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 40, 40, 40, 40, 41, 41, 102, 171, 41, 102, 236, 40, 40, 303, 41, 41, 303, 638, 40, 105, 105, 41, 105, 112, 102, 40, 112, 40, 40, 638, 41, 41, 340, 42, 42, 42, 42, 105, 42, 125, 171, 112, 125, 171, 42, 42, 172, 40, 487, 40, 41, 42, 41, 122, 340, 487, 122, 125, 65, 65, 42, 42, 392, 236, 341, 172, 122, 392, 65, 65, 132, 122, 172, 132, 135, 65, 172, 135, 142, 172, 42, 142, 42, 43, 43, 65, 341, 201, 132, 173, 201, 524, 135, 43, 43, 177, 142, 187, 199, 201, 43, 199, 180, 403, 65, 524, 65, 43, 403, 43, 43, 199, 173, 201, 365, 205, 187, 177, 132, 177, 205, 180, 173, 43, 187, 180, 177, 177, 205, 43, 187, 43, 173, 238, 355, 43, 43, 43, 238, 43, 43, 180, 43, 2183, 355, 43, 238, 43, 43, 611, 611, 365, 43, 43, 43, 43, 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 66, 66, 66, 66, 156, 156, 156, 156, 410, 420, 160, 66, 66, 410, 245, 1793, 174, 245, 66, 420, 161, 161, 161, 161, 298, 298, 245, 277, 66, 298, 156, 161, 161, 1793, 277, 161, 192, 259, 277, 192, 259, 277, 192, 161, 161, 161, 174, 66, 174, 66, 167, 167, 167, 167, 192, 259, 174, 167, 174, 160, 156, 160, 160, 342, 310, 160, 298, 310, 161, 161, 185, 160, 160, 167, 160, 160, 160, 162, 162, 162, 162, 429, 310, 344, 175, 342, 429, 181, 162, 162, 457, 305, 162, 185, 305, 457, 185, 182, 167, 463, 162, 162, 162, 175, 463, 344, 185, 181, 210, 331, 162, 175, 184, 185, 175, 305, 182, 175, 186, 599, 175, 181, 2184, 175, 182, 162, 162, 181, 599, 432, 186, 167, 432, 182, 331, 184, 182, 186, 184, 184, 191, 191, 191, 191, 441, 320, 331, 191, 320, 2186, 184, 472, 432, 184, 441, 184, 472, 210, 343, 210, 210, 309, 186, 210, 309, 211, 343, 186, 211, 210, 210, 343, 210, 210, 210, 212, 211, 490, 212, 309, 343, 211, 211, 359, 359, 309, 212, 490, 211, 2191, 211, 212, 212, 567, 213, 359, 567, 213, 212, 213, 212, 257, 257, 257, 257, 213, 567, 278, 257, 214, 213, 213, 214, 216, 278, 212, 216, 213, 278, 213, 214, 278, 2192, 320, 216, 214, 214, 278, 217, 216, 216, 217, 214, 532, 214, 477, 216, 493, 216, 217, 477, 225, 214, 218, 217, 217, 218, 532, 334, 225, 334, 217, 225, 217, 218, 225, 689, 493, 225, 218, 218, 225, 219, 272, 216, 219, 218, 272, 218, 600, 272, 506, 600, 219, 272, 689, 506, 272, 219, 219, 220, 217, 600, 220, 616, 219, 405, 219, 279, 405, 221, 220, 279, 221, 616, 279, 220, 220, 217, 279, 217, 221, 279, 220, 405, 220, 221, 221, 279, 218, 334, 2194, 218, 221, 219, 221, 286, 529, 223, 538, 223, 219, 223, 286, 286, 219, 223, 286, 219, 223, 286, 529, 223, 538, 626, 223, 220, 224, 223, 346, 224, 529, 224, 538, 1841, 224, 220, 346, 224, 224, 224, 224, 346, 221, 224, 221, 220, 224, 510, 226, 615, 346, 1841, 510, 227, 221, 222, 226, 227, 222, 226, 296, 227, 226, 296, 227, 226, 222, 227, 226, 615, 227, 222, 222, 227, 228, 228, 229, 626, 222, 330, 222, 516, 228, 296, 229, 228, 516, 229, 228, 228, 229, 228, 655, 229, 228, 228, 229, 230, 608, 282, 2196, 230, 655, 282, 330, 230, 282, 222, 230, 608, 282, 230, 231, 282, 230, 222, 231, 230, 222, 231, 231, 222, 625, 231, 222, 330, 231, 222, 330, 231, 233, 231, 231, 232, 231, 625, 231, 232, 296, 647, 232, 232, 424, 424, 232, 647, 520, 232, 234, 233, 232, 520, 428, 232, 424, 428, 234, 232, 522, 234, 649, 233, 234, 522, 602, 234, 527, 602, 234, 233, 428, 527, 233, 649, 233, 233, 602, 628, 233, 233, 235, 233, 235, 383, 383, 383, 383, 235, 235, 2208, 383, 235, 304, 450, 235, 304, 450, 235, 636, 628, 235, 249, 249, 249, 249, 250, 250, 250, 250, 636, 304, 450, 249, 445, 445, 304, 250, 536, 251, 251, 251, 251, 536, 251, 249, 445, 249, 1263, 250, 251, 250, 253, 253, 253, 253, 544, 1263, 287, 253, 287, 544, 251, 541, 251, 287, 250, 523, 345, 287, 249, 345, 287, 345, 250, 253, 523, 541, 255, 255, 255, 255, 258, 258, 258, 258, 345, 251, 531, 255, 550, 304, 560, 258, 652, 345, 2210, 531, 652, 255, 253, 255, 273, 255, 550, 258, 560, 258, 540, 273, 523, 264, 264, 273, 264, 273, 273, 540, 255, 669, 549, 462, 264, 669, 462, 273, 255, 264, 264, 549, 258, 531, 301, 253, 264, 301, 264, 265, 265, 462, 265, 266, 266, 301, 266, 546, 266, 476, 265, 2211, 476, 540, 266, 265, 265, 301, 552, 266, 266, 546, 265, 552, 265, 549, 266, 476, 266, 267, 267, 546, 267, 268, 268, 501, 268, 2213, 501, 265, 267, 571, 301, 579, 268, 267, 267, 660, 509, 268, 268, 509, 267, 501, 267, 571, 268, 579, 268, 660, 269, 269, 267, 269, 332, 494, 509, 332, 494, 494, 332, 269, 512, 577, 577, 512, 269, 269, 270, 270, 494, 270, 332, 269, 268, 269, 666, 579, 519, 270, 512, 519, 332, 590, 270, 270, 2215, 274, 666, 271, 271, 270, 271, 270, 274, 274, 519, 590, 274, 554, 271, 274, 1158, 269, 274, 271, 271, 274, 521, 635, 577, 521, 271, 554, 271, 565, 635, 275, 559, 275, 269, 275, 269, 554, 275, 1158, 521, 635, 275, 565, 559, 275, 332, 276, 270, 559, 276, 270, 276, 565, 276, 271, 280, 280, 276, 276, 276, 276, 271, 280, 693, 281, 271, 280, 639, 271, 280, 280, 281, 281, 693, 639, 281, 280, 526, 281, 283, 526, 281, 528, 283, 281, 284, 283, 283, 285, 284, 283, 528, 284, 283, 302, 526, 284, 302, 283, 284, 688, 283, 284, 283, 575, 302, 528, 285, 688, 284, 593, 368, 368, 368, 368, 593, 2217, 302, 575, 285, 642, 369, 369, 369, 369, 528, 285, 642, 575, 595, 285, 692, 285, 285, 368, 692, 368, 285, 371, 371, 371, 371, 302, 595, 369, 302, 369, 570, 370, 370, 370, 370, 653, 595, 369, 370, 570, 584, 653, 368, 1829, 371, 584, 371, 372, 372, 372, 372, 1829, 369, 373, 373, 373, 373, 374, 374, 374, 374, 375, 375, 375, 375, 465, 465, 465, 465, 371, 372, 535, 372, 570, 535, 584, 373, 645, 373, 645, 374, 957, 374, 645, 375, 648, 375, 371, 465, 535, 543, 588, 588, 543, 588, 372, 648, 551, 637, 564, 551, 373, 564, 637, 643, 374, 372, 583, 543, 375, 583, 643, 370, 372, 465, 551, 375, 564, 957, 373, 374, 376, 376, 376, 376, 583, 375, 377, 377, 377, 377, 378, 378, 378, 378, 379, 379, 379, 379, 657, 380, 380, 380, 380, 376, 657, 376, 723, 557, 557, 377, 557, 377, 537, 378, 583, 378, 723, 379, 2221, 379, 545, 537, 380, 592, 380, 557, 592, 573, 376, 545, 573, 665, 613, 674, 377, 613, 537, 665, 378, 674, 573, 592, 379, 378, 545, 573, 376, 380, 381, 381, 381, 381, 1876, 379, 379, 537, 656, 656, 377, 382, 382, 382, 382, 545, 380, 379, 385, 385, 385, 385, 1876, 381, 654, 381, 578, 386, 386, 386, 386, 654, 641, 553, 382, 578, 382, 574, 387, 387, 387, 387, 553, 641, 641, 386, 574, 589, 381, 402, 402, 402, 402, 667, 676, 585, 589, 553, 667, 382, 676, 574, 715, 586, 585, 382, 381, 402, 640, 578, 578, 640, 385, 715, 651, 650, 553, 586, 650, 585, 574, 386, 651, 659, 385, 1839, 651, 586, 385, 659, 589, 385, 387, 386, 1839, 659, 385, 386, 585, 585, 386, 677, 677, 402, 387, 386, 661, 586, 387, 661, 671, 387, 684, 671, 672, 402, 387, 672, 684, 402, 683, 683, 402, 478, 478, 478, 478, 402, 474, 474, 2225, 474, 474, 474, 1116, 474, 1116, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 479, 479, 479, 479, 474, 474, 474, 474, 474, 474, 480, 480, 480, 480, 1125, 594, 1125, 661, 479, 680, 499, 499, 499, 499, 594, 1169, 680, 673, 474, 478, 474, 474, 673, 634, 634, 634, 634, 1169, 499, 594, 634, 478, 673, 710, 601, 478, 710, 601, 478, 681, 681, 601, 1226, 478, 479, 710, 601, 601, 594, 474, 474, 474, 474, 1226, 480, 658, 479, 601, 681, 701, 479, 658, 701, 479, 499, 658, 480, 664, 479, 2229, 480, 664, 685, 480, 675, 675, 499, 685, 480, 664, 499, 675, 601, 499, 596, 596, 596, 596, 499, 690, 690, 605, 605, 605, 605, 596, 596, 691, 691, 596, 690, 696, 696, 607, 607, 607, 607, 596, 596, 596, 607, 678, 678, 678, 678, 601, 2231, 605, 678, 701, 686, 686, 1063, 623, 623, 678, 607, 1063, 623, 623, 686, 682, 596, 596, 597, 597, 597, 597, 682, 623, 2232, 617, 617, 617, 617, 597, 597, 605, 682, 597, 679, 607, 617, 617, 679, 911, 617, 597, 597, 597, 720, 687, 679, 720, 617, 617, 617, 2234, 687, 694, 694, 703, 703, 694, 718, 718, 618, 618, 618, 618, 911, 687, 597, 597, 607, 687, 927, 618, 618, 617, 617, 618, 623, 597, 624, 624, 624, 624, 1142, 618, 618, 624, 1142, 629, 629, 629, 629, 722, 927, 1192, 629, 630, 630, 630, 630, 1192, 708, 624, 630, 708, 632, 632, 632, 632, 618, 618, 629, 722, 914, 708, 702, 632, 632, 702, 630, 632, 884, 885, 724, 884, 885, 724, 624, 632, 632, 632, 1273, 633, 633, 633, 633, 629, 1273, 914, 633, 697, 697, 697, 697, 630, 624, 724, 697, 724, 698, 698, 698, 698, 632, 632, 633, 698, 1047, 1047, 1261, 624, 699, 699, 699, 699, 700, 1261, 888, 700, 629, 888, 700, 699, 699, 949, 702, 699, 630, 705, 889, 633, 705, 889, 700, 709, 699, 699, 709, 1148, 705, 889, 709, 1148, 949, 705, 705, 709, 709, 1127, 895, 1127, 705, 895, 705, 806, 806, 806, 806, 2237, 913, 699, 806, 913, 633, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 728, 1018, 1272, 728, 646, 646, 646, 646, 646, 646, 706, 728, 1136, 706, 1136, 919, 728, 728, 1272, 883, 1018, 706, 883, 728, 1282, 728, 706, 706, 646, 646, 646, 646, 1040, 706, 1282, 706, 808, 808, 808, 808, 919, 731, 883, 808, 731, 919, 731, 809, 809, 809, 809, 1040, 731, 646, 809, 1223, 1223, 731, 731, 646, 646, 646, 646, 646, 731, 732, 731, 926, 732, 706, 926, 943, 1256, 1256, 943, 733, 732, 897, 733, 1094, 897, 732, 732, 1138, 1094, 1138, 733, 920, 732, 2238, 732, 733, 733, 734, 887, 887, 734, 883, 733, 887, 733, 897, 732, 735, 734, 902, 735, 2243, 902, 734, 734, 1147, 920, 1147, 735, 2247, 734, 933, 734, 735, 735, 736, 1083, 902, 736, 933, 735, 733, 735, 902, 933, 737, 736, 920, 737, 1823, 887, 736, 736, 933, 1012, 1083, 737, 1012, 736, 733, 736, 737, 737, 738, 1023, 1823, 738, 1023, 737, 910, 737, 1171, 910, 739, 738, 2251, 739, 734, 918, 738, 738, 735, 988, 1171, 739, 988, 738, 1023, 738, 739, 739, 810, 810, 810, 810, 1058, 739, 740, 739, 2257, 740, 741, 810, 918, 741, 1101, 736, 988, 740, 1058, 1101, 737, 741, 740, 740, 918, 1278, 741, 741, 738, 740, 918, 740, 1278, 741, 742, 741, 1086, 742, 743, 1086, 1149, 743, 1149, 1107, 2258, 742, 930, 930, 1107, 743, 742, 742, 739, 739, 743, 743, 910, 742, 740, 742, 930, 743, 741, 743, 1172, 1065, 1172, 745, 1297, 930, 745, 746, 1098, 1062, 746, 1297, 1062, 1024, 745, 1065, 1024, 1221, 746, 745, 745, 1221, 1098, 746, 746, 1065, 745, 1062, 745, 1113, 746, 743, 746, 2262, 1113, 742, 1024, 743, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 747, 1227, 1232, 747, 744, 744, 744, 744, 744, 744, 745, 747, 2079, 1232, 1227, 1093, 747, 747, 1093, 746, 1228, 748, 1228, 747, 748, 747, 929, 929, 744, 744, 744, 744, 748, 1093, 2079, 929, 1153, 748, 748, 814, 814, 1153, 814, 1057, 748, 1025, 748, 1244, 1025, 929, 814, 1206, 1057, 744, 749, 814, 814, 749, 1244, 744, 744, 744, 744, 744, 750, 749, 2263, 750, 1025, 929, 749, 749, 747, 886, 1206, 750, 886, 749, 1155, 749, 750, 750, 751, 1155, 886, 751, 1057, 750, 748, 750, 1220, 1100, 748, 751, 1100, 1220, 886, 752, 751, 751, 752, 794, 794, 794, 794, 751, 1224, 751, 752, 1100, 1224, 1241, 794, 752, 752, 753, 891, 749, 753, 891, 752, 886, 752, 1254, 794, 1241, 753, 891, 1103, 750, 754, 753, 753, 754, 755, 1097, 1254, 755, 753, 891, 753, 754, 1103, 1248, 1097, 755, 754, 754, 751, 794, 755, 755, 1103, 754, 1248, 754, 1104, 755, 1105, 755, 756, 2264, 1253, 756, 891, 1104, 752, 793, 793, 793, 793, 756, 1105, 1253, 793, 753, 756, 756, 1097, 1805, 1104, 757, 1105, 756, 757, 756, 956, 956, 956, 956, 793, 894, 757, 1805, 894, 754, 1139, 757, 757, 755, 1139, 1247, 894, 755, 757, 1247, 757, 760, 1139, 956, 760, 956, 1110, 1139, 894, 793, 1179, 896, 760, 1179, 896, 1110, 1255, 760, 760, 756, 761, 761, 761, 761, 760, 756, 760, 1255, 956, 896, 1110, 761, 1219, 894, 896, 1219, 761, 761, 1167, 1167, 894, 1167, 793, 761, 2265, 761, 757, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 1225, 760, 1231, 1845, 758, 758, 758, 758, 758, 758, 762, 1229, 1845, 762, 1229, 1225, 761, 1231, 1111, 1243, 932, 762, 896, 932, 761, 932, 762, 762, 758, 758, 758, 758, 1111, 762, 1243, 762, 1168, 1168, 932, 1168, 1245, 763, 1111, 1245, 763, 1257, 1064, 932, 959, 959, 959, 959, 763, 1122, 1168, 1064, 1257, 763, 763, 758, 758, 758, 758, 758, 763, 764, 763, 1122, 764, 765, 1064, 959, 765, 959, 1102, 762, 764, 1122, 1159, 1159, 765, 764, 764, 1102, 766, 765, 765, 766, 764, 1064, 764, 1246, 765, 1246, 765, 766, 959, 1828, 1102, 767, 766, 766, 767, 768, 1828, 1249, 768, 766, 1249, 766, 767, 1268, 763, 1268, 768, 767, 767, 1102, 1121, 768, 768, 1132, 767, 1265, 767, 1159, 768, 1121, 768, 764, 1132, 1143, 1835, 769, 1265, 921, 769, 1250, 921, 1835, 1143, 921, 1121, 765, 769, 1132, 1269, 766, 1269, 769, 769, 770, 1250, 921, 770, 1143, 769, 1133, 769, 768, 767, 771, 770, 921, 771, 1251, 2266, 770, 770, 935, 935, 1133, 771, 1279, 770, 1279, 770, 771, 771, 772, 1251, 1133, 772, 935, 771, 2082, 771, 1120, 1120, 769, 772, 1120, 935, 935, 773, 772, 772, 773, 1276, 1126, 1126, 1276, 772, 1126, 772, 773, 1144, 2082, 1165, 1165, 773, 773, 774, 921, 1140, 774, 770, 773, 1140, 773, 1144, 771, 775, 774, 1301, 775, 1140, 771, 774, 774, 1144, 1140, 772, 775, 1120, 774, 1301, 774, 775, 775, 776, 1151, 1842, 776, 1151, 775, 1126, 775, 1258, 1258, 777, 776, 1842, 777, 773, 1165, 776, 776, 1151, 1260, 1260, 777, 2267, 776, 1270, 776, 777, 777, 1151, 1270, 774, 778, 774, 777, 778, 777, 774, 800, 800, 800, 800, 1170, 778, 774, 800, 775, 779, 778, 778, 779, 934, 934, 1264, 775, 778, 1170, 778, 779, 1755, 934, 800, 780, 779, 779, 780, 1170, 776, 1264, 777, 779, 1755, 779, 780, 934, 934, 1280, 1280, 780, 780, 781, 1131, 1131, 781, 778, 780, 800, 780, 777, 1230, 1131, 781, 1230, 1230, 934, 782, 781, 781, 782, 783, 2269, 778, 783, 781, 1164, 781, 782, 779, 1302, 1145, 783, 782, 782, 1145, 784, 783, 783, 784, 782, 800, 782, 1145, 783, 1302, 783, 784, 1145, 780, 1131, 785, 784, 784, 785, 1166, 1164, 2270, 1164, 784, 1266, 784, 785, 1283, 1266, 1283, 781, 785, 785, 792, 792, 792, 792, 783, 785, 2271, 785, 782, 1262, 786, 792, 1262, 786, 1292, 1292, 1166, 782, 1166, 1156, 1156, 786, 785, 792, 783, 792, 786, 786, 783, 787, 1267, 1156, 787, 786, 784, 786, 1156, 1738, 1289, 788, 787, 1267, 788, 1271, 2272, 787, 787, 1271, 792, 1274, 788, 1289, 787, 1274, 787, 788, 788, 1291, 789, 1275, 1291, 789, 788, 1275, 788, 1262, 1156, 1738, 790, 789, 786, 790, 1199, 1199, 789, 789, 1262, 1199, 1199, 790, 786, 789, 1286, 789, 790, 790, 1286, 791, 1199, 787, 791, 790, 2273, 790, 795, 795, 795, 795, 791, 958, 958, 958, 958, 791, 791, 795, 958, 1284, 788, 1284, 791, 1285, 791, 797, 797, 797, 797, 795, 789, 1288, 2277, 789, 1285, 1288, 797, 1137, 1137, 790, 801, 801, 801, 801, 1281, 801, 1137, 1299, 797, 1281, 797, 801, 1299, 1199, 795, 802, 802, 802, 802, 791, 1117, 1117, 802, 801, 1117, 801, 1754, 803, 803, 803, 803, 1754, 1117, 797, 803, 1161, 1294, 1117, 802, 805, 805, 805, 805, 1293, 1137, 1293, 805, 1294, 801, 1161, 803, 2285, 958, 807, 807, 807, 807, 811, 811, 1161, 811, 1300, 805, 802, 807, 1300, 1295, 1117, 811, 1050, 1050, 1050, 1050, 811, 811, 803, 807, 1295, 807, 1161, 811, 1883, 811, 969, 969, 969, 969, 805, 813, 813, 969, 813, 1050, 807, 1296, 1296, 802, 1883, 1146, 813, 1150, 807, 1146, 1150, 813, 813, 818, 818, 803, 818, 1146, 813, 1150, 813, 1298, 1146, 1298, 818, 1050, 2289, 805, 1551, 818, 818, 1551, 819, 819, 1150, 819, 818, 819, 818, 986, 986, 986, 986, 819, 1277, 1303, 986, 1277, 819, 819, 820, 820, 1287, 820, 1160, 819, 2311, 819, 1304, 1287, 1303, 820, 1304, 1160, 1287, 1756, 820, 820, 821, 821, 1322, 821, 1643, 820, 1643, 820, 1322, 1756, 1160, 821, 1051, 1051, 1051, 1051, 821, 821, 1645, 820, 1645, 822, 822, 821, 822, 821, 964, 964, 964, 964, 1160, 1313, 822, 964, 1313, 1051, 1807, 822, 822, 823, 823, 1528, 823, 1277, 822, 1525, 822, 1313, 1313, 1807, 823, 1525, 821, 1532, 1864, 823, 823, 824, 824, 1532, 824, 1051, 823, 1870, 823, 1527, 1528, 1678, 824, 1678, 821, 1864, 1870, 824, 824, 1331, 825, 825, 1331, 825, 824, 1874, 824, 960, 960, 960, 960, 825, 1874, 1528, 1527, 822, 825, 825, 826, 826, 1536, 826, 1331, 825, 1331, 825, 1680, 823, 1680, 826, 960, 964, 2294, 2330, 826, 826, 1529, 827, 827, 1527, 827, 826, 1536, 826, 987, 987, 987, 987, 827, 2294, 2088, 987, 824, 827, 827, 960, 966, 966, 966, 966, 827, 1529, 827, 966, 828, 828, 825, 828, 829, 829, 1311, 829, 2088, 1311, 826, 828, 1529, 1311, 1530, 829, 828, 828, 1311, 1311, 829, 829, 1536, 828, 1640, 828, 2333, 829, 1537, 829, 830, 830, 1537, 830, 831, 831, 1833, 831, 1640, 1530, 1682, 830, 1682, 827, 827, 831, 830, 830, 1640, 1833, 831, 831, 828, 830, 1537, 830, 829, 831, 2334, 831, 833, 833, 1530, 833, 834, 834, 1684, 834, 1684, 1347, 1543, 833, 1347, 966, 1543, 834, 833, 833, 1821, 1329, 834, 834, 1329, 833, 1638, 833, 1329, 834, 1638, 834, 1638, 831, 1347, 1821, 1347, 830, 1543, 831, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 832, 835, 835, 1757, 835, 832, 832, 832, 832, 832, 832, 1633, 835, 833, 1638, 1757, 1673, 835, 835, 834, 1633, 1633, 836, 836, 835, 836, 835, 1673, 2346, 832, 832, 832, 832, 836, 967, 967, 967, 967, 836, 836, 1176, 967, 1670, 1670, 1850, 836, 1850, 836, 1670, 1176, 1176, 1176, 1176, 1818, 832, 1052, 1052, 1052, 1052, 1818, 832, 832, 832, 832, 832, 1679, 837, 837, 835, 837, 838, 838, 835, 838, 2302, 1176, 1679, 837, 1052, 2348, 2302, 838, 837, 837, 1542, 836, 838, 838, 1724, 837, 1758, 837, 1724, 838, 1667, 838, 839, 839, 1544, 839, 840, 840, 1758, 840, 1052, 1176, 1542, 839, 1667, 1843, 1820, 840, 839, 839, 1675, 967, 840, 840, 1667, 839, 1544, 839, 1843, 840, 1820, 840, 841, 841, 1675, 841, 1806, 837, 1183, 1183, 1183, 1183, 838, 841, 1675, 1183, 2235, 1806, 841, 841, 1371, 842, 842, 1371, 842, 841, 2235, 841, 961, 961, 961, 961, 842, 1542, 2360, 1542, 840, 842, 842, 843, 843, 839, 843, 1371, 842, 1371, 842, 1544, 1726, 1544, 843, 961, 1726, 961, 1639, 843, 843, 844, 844, 2361, 844, 1848, 843, 1639, 843, 1539, 1539, 841, 844, 965, 965, 965, 965, 844, 844, 1848, 961, 1644, 1639, 1539, 844, 1644, 844, 1644, 847, 847, 842, 847, 1539, 1539, 842, 1871, 965, 1871, 965, 847, 1380, 1380, 1380, 1380, 847, 847, 848, 848, 843, 848, 965, 847, 1312, 847, 843, 1312, 1729, 848, 1879, 1312, 1729, 965, 848, 848, 1312, 1312, 1730, 1879, 1644, 848, 1730, 848, 844, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 1157, 1157, 847, 1849, 845, 845, 845, 845, 845, 845, 849, 849, 1157, 849, 1849, 2363, 848, 1157, 1702, 1702, 1566, 849, 1702, 1566, 848, 1666, 849, 849, 845, 845, 845, 845, 1741, 849, 1666, 849, 1741, 989, 989, 989, 989, 850, 850, 1566, 850, 1671, 1671, 1157, 1872, 1666, 1872, 1671, 850, 1202, 1202, 1202, 1202, 850, 850, 845, 845, 845, 845, 845, 850, 1702, 850, 851, 851, 1534, 851, 852, 852, 1534, 852, 849, 1202, 1591, 851, 2364, 1591, 1534, 852, 851, 851, 1780, 1534, 852, 852, 1780, 851, 989, 851, 1855, 852, 1534, 852, 853, 853, 2268, 853, 1202, 1591, 989, 1855, 1676, 1676, 989, 853, 2268, 989, 1676, 850, 853, 853, 989, 854, 854, 1592, 854, 853, 1592, 853, 1162, 1162, 1118, 1118, 854, 2365, 1118, 1822, 851, 854, 854, 1822, 1162, 1880, 1118, 1880, 854, 1162, 854, 1118, 1592, 1832, 852, 855, 855, 1832, 855, 856, 856, 1761, 856, 1862, 1761, 1674, 855, 1677, 1677, 853, 856, 855, 855, 1677, 1674, 856, 856, 1862, 855, 1162, 855, 1118, 856, 1881, 856, 1881, 854, 857, 857, 1674, 857, 858, 858, 1844, 858, 1838, 1704, 1704, 857, 1838, 1704, 1851, 858, 857, 857, 1851, 1844, 858, 858, 1732, 857, 855, 857, 1731, 858, 856, 858, 859, 859, 1535, 859, 860, 860, 1535, 860, 1731, 1819, 1877, 859, 1819, 1731, 1535, 860, 859, 859, 1853, 1535, 860, 860, 1853, 859, 1877, 859, 1704, 860, 1535, 860, 1218, 1218, 1218, 1218, 858, 857, 2090, 1218, 861, 861, 858, 861, 1538, 1538, 2366, 968, 968, 968, 968, 861, 2188, 1538, 2188, 859, 861, 861, 862, 862, 2090, 862, 2367, 861, 1734, 861, 860, 1538, 1538, 862, 968, 1732, 968, 1732, 862, 862, 863, 863, 2190, 863, 2190, 862, 1824, 862, 1213, 1213, 2315, 863, 2315, 1213, 1213, 1817, 863, 863, 1817, 968, 2368, 1824, 861, 863, 1213, 863, 864, 864, 861, 864, 2320, 1427, 1427, 1427, 1427, 861, 2320, 864, 1427, 1846, 1707, 1707, 864, 864, 1707, 862, 1831, 865, 865, 864, 865, 864, 1846, 862, 990, 990, 990, 990, 865, 1836, 2317, 1831, 2317, 865, 865, 1734, 863, 1734, 1739, 1739, 865, 1817, 865, 1840, 1836, 866, 866, 1213, 866, 867, 867, 1854, 867, 2369, 864, 1854, 866, 1707, 1840, 2248, 867, 866, 866, 1123, 1123, 867, 867, 1123, 866, 865, 866, 2248, 867, 864, 867, 1123, 868, 868, 990, 868, 1123, 1203, 1203, 1203, 1203, 1739, 865, 868, 1203, 2321, 990, 2321, 868, 868, 990, 869, 869, 990, 869, 868, 1847, 868, 990, 1847, 1203, 866, 869, 1742, 1742, 1856, 1123, 869, 869, 1856, 867, 1852, 870, 870, 869, 870, 869, 970, 970, 970, 970, 2189, 1540, 870, 1852, 1203, 1540, 2197, 870, 870, 871, 871, 2189, 871, 1540, 870, 868, 870, 2197, 1540, 970, 871, 970, 1203, 2298, 1859, 871, 871, 1540, 1859, 1742, 869, 2322, 871, 2322, 871, 872, 872, 1203, 872, 869, 2298, 1708, 1708, 870, 970, 1708, 872, 1128, 1128, 2073, 1517, 872, 872, 1517, 873, 873, 1128, 873, 872, 1128, 872, 1517, 970, 870, 1128, 873, 2370, 870, 1743, 1743, 873, 873, 2372, 1517, 2073, 872, 871, 873, 1863, 873, 874, 874, 2073, 874, 875, 875, 1865, 875, 1708, 1745, 1745, 874, 2249, 1863, 1128, 875, 874, 874, 1517, 1865, 875, 875, 2373, 874, 2249, 874, 1517, 875, 1725, 875, 876, 876, 1725, 876, 873, 1743, 971, 971, 971, 971, 1725, 876, 1747, 1747, 873, 1725, 876, 876, 2284, 2374, 1866, 877, 877, 876, 877, 876, 1745, 2375, 2075, 971, 874, 971, 877, 1752, 1752, 1866, 1752, 877, 877, 878, 878, 1869, 878, 875, 877, 1869, 877, 2284, 1713, 1713, 878, 1752, 2305, 2075, 971, 878, 878, 1713, 971, 1747, 876, 2305, 878, 876, 878, 972, 972, 972, 972, 973, 973, 973, 973, 974, 974, 974, 974, 2075, 1884, 2376, 877, 985, 985, 985, 985, 1124, 1124, 1904, 972, 1124, 972, 1904, 973, 1884, 973, 1713, 974, 1124, 974, 878, 1868, 2200, 1124, 1885, 985, 1868, 985, 1428, 1428, 1428, 1428, 1333, 2200, 972, 1333, 1868, 1885, 973, 1428, 1239, 1239, 974, 1333, 1873, 1239, 1239, 1873, 1333, 1333, 985, 972, 2323, 1124, 2323, 1333, 1239, 1333, 1749, 1749, 974, 985, 973, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 976, 976, 976, 976, 975, 975, 975, 975, 975, 975, 977, 977, 977, 977, 2081, 2391, 978, 978, 978, 978, 1541, 1333, 1749, 976, 1541, 976, 1239, 2081, 975, 975, 975, 975, 1541, 977, 2227, 977, 2081, 1541, 2227, 978, 2423, 978, 979, 979, 979, 979, 1541, 2485, 976, 980, 980, 980, 980, 981, 981, 981, 981, 2203, 977, 975, 975, 975, 975, 975, 978, 979, 1911, 979, 2203, 1911, 2487, 976, 980, 1911, 980, 977, 981, 1893, 981, 978, 1893, 982, 982, 982, 982, 983, 983, 983, 983, 1893, 979, 984, 984, 984, 984, 1163, 1163, 980, 2488, 2489, 2293, 981, 1912, 979, 982, 1912, 982, 1163, 983, 1912, 983, 981, 1163, 2293, 984, 980, 984, 996, 996, 996, 996, 1750, 1750, 1004, 1004, 1004, 1004, 2074, 2490, 982, 981, 1129, 1129, 983, 2308, 996, 2205, 1715, 1715, 984, 1129, 1004, 1163, 1129, 1134, 1134, 1715, 2205, 1129, 2308, 982, 984, 2074, 1134, 984, 983, 1134, 1135, 1135, 1875, 1314, 1134, 1875, 1314, 2074, 2491, 1135, 1314, 1750, 1135, 2111, 996, 1314, 2111, 1135, 1875, 1875, 1004, 1129, 1314, 1314, 1314, 1314, 996, 1715, 1177, 2492, 996, 1177, 1004, 996, 1134, 1177, 1004, 2493, 996, 1004, 1177, 1177, 1751, 1751, 1004, 1060, 1060, 1135, 1060, 1060, 1060, 1177, 1060, 2498, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1066, 1066, 1066, 1066, 1060, 1060, 1060, 1060, 1060, 1060, 2499, 1177, 1379, 1379, 1379, 1379, 1753, 1753, 1066, 1753, 1178, 2312, 2138, 1178, 1751, 2138, 2141, 1178, 1060, 2141, 1060, 1060, 1178, 1178, 1753, 1379, 2312, 1379, 1429, 1429, 1429, 1429, 2500, 1178, 1177, 1088, 1088, 1088, 1088, 1429, 1769, 1769, 1769, 1769, 1066, 1714, 1714, 1769, 2303, 1060, 1060, 1060, 1060, 1088, 1714, 2158, 1066, 1714, 1178, 2505, 1066, 2303, 1714, 1066, 2158, 2158, 2138, 2141, 1066, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1088, 2246, 1178, 1714, 1075, 1075, 1075, 1075, 1075, 1075, 2246, 2228, 1088, 2072, 2144, 2228, 1088, 2144, 2507, 1088, 1182, 1182, 1182, 1182, 1088, 2246, 2508, 1182, 1075, 1075, 1075, 1075, 1182, 1182, 1204, 1204, 1204, 1204, 2072, 1718, 1718, 1204, 2072, 1182, 1430, 1430, 1430, 1430, 1718, 2510, 1422, 1422, 1422, 1422, 2301, 1430, 2083, 1204, 2301, 1075, 1075, 1075, 1075, 1075, 1173, 1173, 1173, 1173, 1182, 1209, 1209, 1209, 1209, 1422, 1354, 1173, 1173, 1354, 2083, 1173, 1209, 1209, 1204, 2144, 1209, 1354, 1718, 1173, 1173, 1173, 1354, 1354, 1209, 1209, 1209, 1878, 1878, 1354, 1422, 1354, 1878, 1182, 2313, 2083, 2511, 1878, 1575, 1575, 1575, 1575, 2084, 2341, 1173, 1173, 2084, 1204, 2313, 1209, 1209, 1210, 1210, 1210, 1210, 2341, 1173, 1181, 1181, 1181, 1181, 1575, 1210, 1210, 1181, 2324, 1210, 2324, 2084, 1181, 1211, 1211, 1211, 1211, 1210, 1210, 1181, 1181, 1181, 1181, 1181, 1211, 1211, 2309, 2087, 1211, 1575, 2309, 2087, 1214, 1214, 1214, 1214, 1211, 1211, 1211, 1214, 2512, 2304, 1210, 1210, 1215, 1215, 1215, 1215, 1181, 1310, 2339, 1215, 1310, 2087, 2304, 1214, 1216, 1216, 1216, 1216, 1310, 1211, 1211, 1216, 2339, 1310, 1310, 1215, 2239, 2239, 2143, 2513, 1310, 2143, 1310, 1217, 1217, 1217, 1217, 1216, 1214, 1181, 1205, 1205, 1205, 1205, 1217, 1568, 1568, 1568, 1568, 2086, 1215, 1205, 1205, 2086, 2514, 1205, 1217, 1913, 1217, 2515, 1913, 2086, 1216, 1205, 1205, 1205, 2086, 1310, 1568, 1918, 1568, 1214, 1918, 2239, 1332, 2086, 2292, 1332, 2516, 2292, 1913, 1217, 1913, 1215, 1890, 1332, 2143, 1890, 1205, 1205, 1332, 1332, 1918, 1568, 1918, 1216, 2328, 1332, 2328, 1332, 1890, 1890, 2136, 2142, 2517, 2136, 2142, 1205, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1234, 1234, 1234, 1234, 1222, 1222, 1222, 1222, 1222, 1222, 2091, 1234, 1234, 2093, 2091, 1234, 1332, 2093, 2314, 1240, 1240, 1240, 1240, 1234, 1234, 1234, 1240, 2314, 1222, 1222, 1222, 1222, 1235, 1235, 1235, 1235, 2091, 1719, 1719, 2093, 2142, 2318, 1240, 1235, 1235, 2136, 1719, 1235, 1234, 1234, 1423, 1423, 1423, 1423, 2318, 1235, 1235, 1423, 2353, 1222, 1222, 1222, 1222, 1222, 2518, 2316, 1334, 1240, 2326, 1334, 1795, 1795, 2353, 1423, 2316, 1795, 1795, 1334, 2390, 2326, 1235, 1235, 1334, 1334, 1719, 1240, 1795, 2223, 2223, 1334, 2390, 1334, 1565, 1565, 1565, 1565, 2223, 2519, 1423, 1565, 1240, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1259, 1259, 1259, 1259, 1252, 1252, 1252, 1252, 1252, 1252, 1423, 1259, 1259, 2223, 2094, 1259, 1334, 2094, 1795, 1567, 1567, 1567, 1567, 1259, 1259, 1259, 1567, 2325, 1252, 1252, 1252, 1252, 1305, 1305, 1305, 1305, 2325, 1252, 1578, 1578, 1578, 1578, 2338, 1305, 1305, 1578, 2338, 1305, 1259, 1259, 2134, 2520, 1565, 2134, 2522, 2135, 1305, 1305, 2135, 1252, 1252, 1252, 1252, 1252, 1306, 1306, 1306, 1306, 1744, 1744, 2094, 1307, 1307, 1307, 1307, 1306, 1306, 2534, 2535, 1306, 1744, 1305, 1307, 1307, 2536, 1744, 1307, 1336, 1306, 2137, 1336, 1337, 2137, 2319, 1337, 1307, 1307, 2329, 1336, 2329, 1567, 2319, 1337, 1336, 1336, 2319, 2134, 1337, 1337, 2335, 1336, 2335, 1336, 1306, 1337, 1744, 1337, 2537, 2135, 1578, 1307, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1335, 1338, 2336, 2359, 1338, 1335, 1335, 1335, 1335, 1335, 1335, 2327, 1338, 1336, 1337, 2336, 2137, 1338, 1338, 2219, 2219, 2359, 1339, 2219, 1338, 1339, 1338, 2331, 2327, 1335, 1335, 1335, 1335, 1339, 1767, 1767, 1767, 1767, 1339, 1339, 2163, 1767, 2331, 2332, 2163, 1339, 2163, 1339, 1770, 1770, 1770, 1770, 2342, 1338, 1340, 1770, 2139, 1340, 2332, 2139, 1335, 1335, 1335, 1335, 1335, 1340, 2219, 2342, 2337, 1341, 1340, 1340, 1341, 1342, 2224, 2224, 1342, 1340, 1339, 1340, 1341, 2337, 2542, 2224, 1342, 1341, 1341, 2163, 1343, 1342, 1342, 1343, 1341, 2340, 1341, 2340, 1342, 2140, 1342, 1343, 2140, 2343, 2543, 1344, 1343, 1343, 1344, 1345, 1340, 2544, 1345, 1343, 2343, 1343, 1344, 1767, 2187, 2187, 1345, 1344, 1344, 2224, 2187, 1345, 1345, 2545, 1344, 2139, 1344, 1635, 1345, 1353, 1345, 1635, 1353, 1635, 2546, 2547, 1341, 2199, 2199, 1635, 1353, 1342, 2347, 2199, 1635, 1353, 1353, 1355, 2240, 2240, 1355, 2140, 1353, 1344, 1353, 2548, 1343, 1343, 1355, 2347, 2549, 1345, 1356, 1355, 1355, 1356, 1569, 1569, 1569, 1569, 1355, 2355, 1355, 1356, 1635, 2355, 2550, 1357, 1356, 1356, 1357, 1358, 1353, 2209, 1358, 1356, 2209, 1356, 1357, 1569, 2352, 1569, 1358, 1357, 1357, 2240, 2551, 1358, 1358, 1355, 1357, 2209, 1357, 2352, 1358, 1359, 1358, 1636, 1359, 1360, 2552, 1636, 1360, 1636, 1569, 2344, 1359, 2344, 1356, 1636, 1360, 1359, 1359, 2502, 1636, 1360, 1360, 2165, 1359, 1569, 1359, 2165, 1360, 2165, 1360, 1361, 1703, 1703, 1361, 1362, 1703, 1357, 1362, 2553, 1358, 2502, 1361, 2345, 1703, 2371, 1362, 1361, 1361, 1703, 1636, 1362, 1362, 2345, 1361, 2371, 1361, 1359, 1362, 2254, 1362, 1367, 2254, 2168, 1367, 1446, 1446, 2168, 1446, 2168, 2165, 2254, 1367, 2241, 2241, 1360, 1446, 1367, 1367, 1703, 2554, 1446, 1446, 1361, 1367, 2555, 1367, 1362, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1364, 2556, 2168, 1364, 1363, 1363, 1363, 1363, 1363, 1363, 1365, 1364, 2241, 1365, 2557, 2300, 1364, 1364, 2300, 1367, 2558, 1365, 2354, 1364, 2559, 1364, 1365, 1365, 1363, 1363, 1363, 1363, 1760, 1365, 1641, 1365, 2351, 1363, 1641, 2354, 1641, 1760, 1760, 1760, 1760, 2351, 1641, 1774, 1774, 1774, 1774, 1641, 2310, 2560, 1366, 2310, 1364, 1366, 1774, 1363, 1363, 1363, 1363, 1363, 1365, 1366, 2300, 1760, 2561, 1368, 1366, 1366, 1368, 1369, 2562, 2233, 1369, 1366, 2233, 1366, 1368, 1641, 2566, 2357, 1369, 1368, 1368, 2497, 1377, 1369, 1369, 1377, 1368, 2233, 1368, 2568, 1369, 1760, 1369, 1377, 2357, 2244, 2244, 1378, 1377, 1377, 1378, 2245, 2245, 2569, 1366, 1377, 2497, 1377, 1378, 2310, 2497, 2570, 1381, 1378, 1378, 1381, 2501, 2571, 2572, 1368, 1378, 2358, 1378, 1381, 1768, 1768, 1768, 1768, 1381, 1381, 2358, 1768, 2573, 1369, 2574, 1381, 1383, 1381, 2501, 1383, 1467, 1467, 2244, 1467, 1814, 1814, 2575, 1383, 2245, 1814, 1814, 1467, 1383, 1383, 2576, 2577, 1467, 1467, 2578, 1383, 1814, 1383, 2579, 1378, 1802, 1802, 1802, 1802, 2585, 2501, 2586, 1802, 1381, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1384, 1383, 2587, 1384, 1382, 1382, 1382, 1382, 1382, 1382, 1385, 1384, 1768, 1385, 2594, 2504, 1384, 1384, 2169, 2504, 1814, 1385, 2169, 1384, 2169, 1384, 1385, 1385, 1382, 1382, 1382, 1382, 2494, 1385, 1642, 1385, 2583, 1382, 1642, 2583, 1642, 2504, 2307, 2307, 2307, 2307, 1642, 1786, 1786, 1786, 1786, 1642, 1384, 1386, 2583, 2595, 1386, 2494, 1786, 1382, 1382, 1382, 1382, 1382, 1386, 2169, 1385, 2597, 1387, 1386, 1386, 1387, 1388, 2220, 2220, 1388, 1386, 2220, 1386, 1387, 2494, 1642, 2506, 1388, 1387, 1387, 2506, 1389, 1388, 1388, 1389, 1387, 2598, 1387, 2599, 1388, 2582, 1388, 1389, 2600, 2601, 2605, 1390, 1389, 1389, 1390, 1391, 2582, 2506, 1391, 1389, 2307, 1389, 1390, 2607, 2584, 1386, 1391, 1390, 1390, 2220, 2495, 1391, 1391, 1387, 1390, 2584, 1390, 2609, 1391, 2609, 1391, 1392, 2589, 2496, 1392, 2603, 1763, 1763, 1763, 1763, 1388, 2611, 1392, 2589, 2618, 2495, 1393, 1392, 1392, 1393, 1394, 2495, 1390, 1394, 1392, 1389, 1392, 1393, 2496, 1763, 2603, 1394, 1393, 1393, 2496, 1395, 1394, 1394, 1395, 1393, 2610, 1393, 2610, 1394, 2591, 1394, 1395, 2619, 1391, 2620, 1396, 1395, 1395, 1396, 1763, 2591, 2621, 2622, 1395, 2623, 1395, 1396, 1803, 1803, 1803, 1803, 1396, 1396, 2624, 1803, 2625, 1397, 1392, 1396, 1397, 1396, 2626, 2627, 2628, 1393, 2629, 1398, 1397, 2638, 1398, 2642, 2644, 1397, 1397, 2658, 1394, 2656, 1398, 2659, 1397, 1395, 1397, 1398, 1398, 2676, 1399, 2564, 2677, 1399, 1398, 2564, 1398, 2564, 2692, 2693, 1400, 1399, 2694, 1400, 2645, 1396, 1399, 1399, 2644, 2656, 2659, 1400, 2646, 1399, 2164, 1399, 1400, 1400, 2164, 1401, 2164, 2593, 1401, 1400, 2593, 1400, 2164, 1397, 2649, 1402, 1401, 2164, 1402, 2651, 2646, 1401, 1401, 2650, 2564, 2593, 1402, 2645, 1401, 1398, 1401, 1402, 1402, 1399, 1403, 2647, 2649, 1403, 1402, 2652, 1402, 1988, 1988, 1988, 1988, 1403, 2696, 2164, 1988, 1404, 1403, 1403, 1404, 2377, 2657, 1400, 2377, 1403, 2651, 1403, 1404, 2652, 2661, 2650, 1405, 1404, 1404, 1405, 2647, 2660, 1401, 1402, 1404, 2662, 1404, 1405, 2377, 2663, 2377, 1406, 1405, 1405, 1406, 1407, 2661, 2670, 1407, 1405, 2664, 1405, 1406, 2667, 2668, 2662, 1407, 1406, 1406, 2663, 2657, 1407, 1407, 2666, 1406, 2660, 1406, 1403, 1407, 1408, 1407, 1404, 1408, 1410, 2664, 2565, 1410, 2668, 2670, 2565, 1408, 2565, 2665, 1404, 1410, 1408, 1408, 2667, 1409, 1410, 1410, 1409, 1408, 2669, 1408, 1406, 1410, 1405, 1410, 1409, 2666, 2672, 2665, 1411, 1409, 1409, 1411, 1412, 2697, 2698, 1412, 1409, 1407, 1409, 1411, 2699, 2671, 2669, 1412, 1411, 1411, 2700, 2565, 1412, 1412, 2672, 1411, 2673, 1411, 2701, 1412, 2674, 1412, 1413, 2679, 2681, 1413, 2682, 1410, 1408, 1804, 1804, 1804, 1804, 1413, 1989, 1989, 1989, 1989, 1413, 1413, 1804, 1989, 2671, 1409, 2678, 1413, 1414, 1413, 1411, 1414, 1415, 2684, 1412, 1415, 2685, 2673, 2702, 1414, 2681, 2674, 2679, 1415, 1414, 1414, 2703, 2682, 1415, 1415, 2678, 1414, 2704, 1414, 2683, 1415, 1416, 1415, 2684, 1416, 1417, 2705, 2680, 1417, 2706, 2680, 2707, 1416, 2685, 2686, 1413, 1417, 1416, 1416, 2689, 2718, 1417, 1417, 2683, 1416, 2690, 1416, 2774, 1417, 1418, 1417, 2775, 1418, 1414, 1424, 1424, 1424, 1424, 2686, 2776, 1418, 1424, 1415, 2778, 2691, 1418, 1418, 2779, 1419, 2780, 2689, 1419, 1418, 2785, 1418, 2786, 2690, 1424, 2680, 1419, 1417, 2787, 2781, 1420, 1419, 1419, 1420, 1990, 1990, 1990, 1990, 1419, 1416, 1419, 1420, 2788, 2782, 2789, 1990, 1420, 1420, 1418, 1424, 2691, 2790, 2783, 1420, 2781, 1420, 1425, 1425, 1425, 1425, 2788, 2791, 2781, 1425, 2788, 2792, 2793, 1419, 2782, 1426, 1426, 1426, 1426, 1431, 1431, 2794, 1431, 2783, 1940, 1425, 1426, 1940, 1424, 2795, 1431, 1762, 1762, 1762, 1762, 1431, 1431, 2782, 1426, 1420, 1426, 2784, 1431, 1762, 1431, 1432, 1432, 1940, 1432, 1940, 1425, 2805, 2806, 2807, 1762, 2810, 1432, 2252, 2252, 2252, 2252, 1432, 1432, 1426, 2252, 2811, 2784, 2812, 1432, 2813, 1432, 1433, 1433, 2814, 1433, 1435, 1435, 2815, 1435, 1762, 1940, 2784, 1433, 1425, 2816, 2817, 1435, 1433, 1433, 1431, 2818, 1435, 1435, 2819, 1433, 2820, 1433, 2821, 1435, 2822, 1435, 2797, 1436, 1436, 2797, 1436, 2356, 2356, 2356, 2356, 2823, 2824, 1889, 1436, 2825, 1889, 2826, 1432, 1436, 1436, 2827, 2828, 2829, 1889, 2797, 1436, 2830, 1436, 1889, 1889, 2804, 2804, 2804, 2804, 2831, 1889, 2832, 1889, 2252, 2833, 2834, 1435, 1433, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1437, 1437, 1436, 1437, 1434, 1434, 1434, 1434, 1434, 1434, 2835, 1437, 2837, 2840, 2841, 2836, 1437, 1437, 2836, 1889, 2842, 1438, 1438, 1437, 1438, 1437, 2844, 2850, 1434, 1434, 1434, 1434, 1438, 2836, 2843, 2847, 2853, 1438, 1438, 2838, 2253, 2253, 2253, 2253, 1438, 2804, 1438, 2253, 2843, 2854, 2838, 2848, 1437, 1439, 1439, 2855, 1439, 2846, 2856, 1434, 1434, 1434, 1434, 1434, 1439, 2846, 2857, 2858, 2859, 1439, 1439, 1440, 1440, 2860, 1440, 2861, 1439, 1438, 1439, 2847, 2851, 2851, 1440, 2851, 2862, 2863, 2870, 1440, 1440, 1441, 1441, 2878, 1441, 2880, 1440, 2874, 1440, 2848, 2848, 2062, 1441, 2894, 2062, 2846, 2846, 1441, 1441, 1439, 1442, 1442, 2062, 1442, 1441, 2873, 1441, 2874, 2876, 2876, 2873, 1442, 2883, 2253, 2062, 2883, 1442, 1442, 1787, 1787, 1787, 1787, 2895, 1442, 2877, 1442, 2852, 1443, 1443, 2877, 1443, 2906, 1440, 1788, 1788, 1788, 1788, 2909, 1443, 2062, 2881, 1787, 2852, 1443, 1443, 2062, 2613, 2613, 2613, 2613, 1443, 1441, 1443, 2613, 2881, 2879, 1788, 1444, 1444, 2903, 1444, 1445, 1445, 2903, 1445, 2910, 1787, 2852, 1444, 2897, 1442, 1442, 1445, 1444, 1444, 2879, 2911, 1445, 1445, 1443, 1444, 1788, 1444, 2884, 1445, 2897, 1445, 1450, 1450, 2912, 1450, 1451, 1451, 2885, 1451, 2884, 2885, 2887, 1450, 2891, 2852, 2888, 1451, 1450, 1450, 2913, 2888, 1451, 1451, 2914, 1450, 2915, 1450, 1444, 1451, 2887, 1451, 2898, 1452, 1452, 2898, 1452, 1453, 1453, 2891, 1453, 2892, 2613, 2896, 1452, 2899, 2892, 2900, 1453, 1452, 1452, 2901, 2900, 1453, 1453, 1450, 1452, 2916, 1452, 2899, 1453, 2896, 1453, 1454, 1454, 2901, 1454, 1455, 1455, 2917, 1455, 2902, 2907, 2918, 1454, 2919, 2902, 2907, 1455, 1454, 1454, 2920, 2908, 1455, 1455, 2908, 1454, 2908, 1454, 1452, 1455, 2927, 1455, 1456, 1456, 2963, 1456, 1457, 1457, 2965, 1457, 1453, 2889, 2889, 1456, 2889, 2968, 2908, 1457, 1456, 1456, 2969, 1894, 1457, 1457, 1894, 1456, 2972, 1456, 1894, 1457, 2973, 1457, 1455, 1894, 2975, 1454, 1458, 1458, 2977, 1458, 1894, 1894, 1894, 1894, 2978, 2979, 2980, 1458, 2983, 2980, 2984, 2985, 1458, 1458, 1460, 1460, 2975, 1460, 1457, 1458, 2890, 1458, 2889, 2890, 2986, 1460, 2987, 2988, 2989, 2980, 1460, 1460, 1456, 2259, 2259, 2259, 2259, 1460, 2975, 1460, 2990, 2991, 2845, 2992, 2259, 2845, 2993, 2994, 1458, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 2995, 1460, 2890, 2996, 1459, 1459, 1459, 1459, 1459, 1459, 1461, 1461, 2997, 1461, 2260, 2260, 2260, 2260, 2998, 2845, 2845, 1461, 3000, 2971, 3001, 2260, 1461, 1461, 1459, 1459, 1459, 1459, 3002, 1461, 3003, 1461, 3005, 1459, 2274, 2274, 2274, 2274, 3006, 3008, 1571, 1571, 1571, 1571, 2971, 2274, 2538, 2538, 2538, 2538, 1462, 1462, 2971, 1462, 3009, 1459, 1459, 1459, 1459, 1459, 1461, 1462, 3004, 1571, 3011, 1571, 1462, 1462, 1463, 1463, 2538, 1463, 2538, 1462, 3013, 1462, 3004, 3015, 3018, 1463, 3019, 3023, 3014, 3027, 1463, 1463, 1464, 1464, 1571, 1464, 3028, 1463, 2999, 1463, 2999, 3020, 3020, 1464, 3020, 3029, 2538, 3030, 1464, 1464, 1465, 1465, 1462, 1465, 3016, 1464, 1571, 1464, 2538, 3018, 3031, 1465, 2538, 2538, 3032, 2538, 1465, 1465, 1466, 1466, 2538, 1466, 3014, 1465, 3021, 1465, 3033, 3021, 3034, 1466, 1463, 2999, 2999, 3007, 1466, 1466, 1471, 1471, 1464, 1471, 3035, 1466, 3021, 1466, 3007, 2486, 3040, 1471, 2486, 3050, 3016, 3016, 1471, 1471, 1472, 1472, 2486, 1472, 3053, 1471, 3010, 1471, 3054, 3010, 3064, 1472, 1465, 3065, 2486, 3044, 1472, 1472, 1473, 1473, 3066, 1473, 3062, 1472, 3043, 1472, 3067, 3007, 3012, 1473, 3025, 3025, 3025, 3025, 1473, 1473, 3012, 3025, 3044, 2486, 3068, 1473, 3069, 1473, 1475, 1475, 3062, 1475, 1476, 1476, 3075, 1476, 3010, 3010, 2486, 1475, 3078, 3079, 3080, 1476, 1475, 1475, 3081, 3043, 1476, 1476, 1472, 1475, 3082, 1475, 3083, 1476, 3084, 1476, 3012, 3012, 3017, 3017, 1473, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 3070, 1476, 3071, 1475, 1474, 1474, 1474, 1474, 1474, 1474, 1477, 1477, 3025, 1477, 3055, 3072, 3056, 1570, 1570, 1570, 1570, 1477, 3085, 3071, 3017, 3017, 1477, 1477, 1474, 1474, 1474, 1474, 3086, 1477, 3093, 1477, 3095, 1474, 3070, 3055, 1570, 3056, 1570, 3074, 3072, 1789, 1789, 1789, 1789, 3096, 3107, 3114, 3076, 1478, 1478, 3076, 1478, 3076, 3115, 1474, 1474, 1474, 1474, 1474, 1478, 1570, 1477, 3117, 1789, 1478, 1478, 1479, 1479, 3119, 1479, 3122, 1478, 3076, 1478, 3051, 3051, 3118, 1479, 3074, 3051, 3051, 1570, 1479, 1479, 1480, 1480, 3120, 1480, 1789, 1479, 3051, 1479, 3123, 3124, 3120, 1480, 3116, 3125, 3118, 3126, 1480, 1480, 1481, 1481, 3127, 1481, 3128, 1480, 3120, 1480, 3129, 1478, 3130, 1481, 2777, 2777, 2777, 2777, 1481, 1481, 3118, 3116, 1479, 1482, 1482, 1481, 1482, 1481, 3116, 3131, 2539, 2539, 2539, 2539, 1482, 3132, 3133, 2777, 3135, 1482, 1482, 1483, 1483, 3051, 1483, 3136, 1482, 3137, 1482, 3139, 3140, 3141, 1483, 1480, 2539, 3142, 2539, 1483, 1483, 1484, 1484, 3134, 1484, 3134, 1483, 3143, 1483, 3144, 3147, 3145, 1484, 1481, 3151, 3157, 1482, 1484, 1484, 1485, 1485, 3158, 1485, 3159, 1484, 3146, 1484, 3161, 3146, 3166, 1485, 3170, 2539, 3172, 2777, 1485, 1485, 1486, 1486, 3167, 1486, 3145, 1485, 3146, 1485, 3176, 3134, 3134, 1486, 3179, 2539, 3168, 3138, 1486, 1486, 3180, 1483, 3144, 1487, 1487, 1486, 1487, 1486, 3138, 3168, 2540, 2540, 2540, 2540, 1487, 3174, 3167, 1484, 3174, 1487, 1487, 1488, 1488, 3181, 1488, 3185, 1487, 1485, 1487, 3186, 3187, 3188, 1488, 3189, 2540, 3181, 2540, 1488, 1488, 1489, 1489, 3191, 1489, 3194, 1488, 3138, 1488, 3197, 3193, 3192, 1489, 3198, 1486, 3199, 3174, 1489, 1489, 1490, 1490, 3200, 1490, 3201, 1489, 1487, 1489, 2540, 3192, 3209, 1490, 3210, 3211, 3213, 3214, 1490, 1490, 1491, 1491, 3212, 1491, 3193, 1490, 3194, 1490, 3215, 3216, 3217, 1491, 1488, 2540, 3218, 3212, 1491, 1491, 1492, 1492, 3219, 1492, 3220, 1491, 3212, 1491, 3221, 3091, 3222, 1492, 3091, 3223, 3224, 3225, 1492, 1492, 1489, 1493, 1493, 1490, 1493, 1492, 3226, 1492, 2541, 2541, 2541, 2541, 1493, 3236, 3091, 3239, 3091, 1493, 1493, 1494, 1494, 3243, 1494, 3244, 1493, 3227, 1493, 3245, 3227, 3250, 1494, 3254, 2541, 1491, 2541, 1494, 1494, 1495, 1495, 3255, 1495, 3245, 1494, 3277, 1494, 3171, 3171, 1492, 1495, 3228, 3171, 3171, 3228, 1495, 1495, 1496, 1496, 1493, 1496, 3278, 1495, 3171, 1495, 3279, 3178, 3232, 1496, 3178, 2541, 3246, 3229, 1496, 1496, 3229, 3232, 3178, 1497, 1497, 1496, 1497, 1496, 1797, 1797, 1797, 1797, 3230, 2541, 1497, 3230, 3178, 1494, 3242, 1497, 1497, 3242, 1498, 1498, 1495, 1498, 1497, 3246, 1497, 3242, 3256, 1797, 3280, 1498, 3281, 3280, 1495, 3231, 1498, 1498, 3231, 3171, 3256, 1499, 1499, 1498, 1499, 1498, 3247, 3286, 3284, 3247, 2773, 1496, 1499, 2773, 1797, 1497, 3288, 1499, 1499, 1500, 1500, 2773, 1500, 3282, 1499, 3284, 1499, 3290, 3260, 3247, 1500, 3260, 3291, 2773, 3292, 1500, 1500, 1501, 1501, 3260, 1501, 3301, 1500, 3231, 1500, 3196, 3196, 1498, 1501, 3302, 3196, 3196, 3303, 1501, 1501, 3282, 1502, 1502, 2773, 1502, 1501, 3196, 1501, 2275, 2275, 2275, 2275, 1502, 3304, 3283, 3268, 1499, 1502, 1502, 2275, 1503, 1503, 3305, 1503, 1502, 2773, 1502, 3268, 3312, 2962, 1500, 1503, 2962, 3313, 3320, 3326, 1503, 1503, 1504, 1504, 2962, 1504, 3328, 1503, 3347, 1503, 3283, 1501, 3311, 1504, 3314, 3311, 2962, 3314, 1504, 1504, 3330, 1502, 3327, 3196, 3348, 1504, 3350, 1504, 1505, 1505, 3327, 1505, 1506, 1506, 3315, 1506, 3355, 3315, 3356, 1505, 1503, 2962, 3351, 1506, 1505, 1505, 3357, 3316, 1506, 1506, 3316, 1505, 3330, 1505, 3351, 1506, 3352, 1506, 1507, 1507, 2962, 1507, 1508, 1508, 3317, 1508, 3366, 3317, 1504, 1507, 3367, 3369, 3352, 1508, 1507, 1507, 3370, 3318, 1508, 1508, 3318, 1507, 3372, 1507, 3374, 1508, 3375, 1508, 1505, 1509, 1509, 3377, 1509, 1510, 1510, 3319, 1510, 1506, 3319, 3331, 1509, 3380, 3331, 3382, 1510, 1509, 1509, 3383, 3363, 1510, 1510, 3363, 1509, 3399, 1509, 3363, 1510, 1508, 1510, 1511, 1511, 3400, 1511, 1572, 1572, 1572, 1572, 3403, 3404, 1507, 1511, 1573, 1573, 1573, 1573, 1511, 1511, 1574, 1574, 1574, 1574, 1509, 1511, 3319, 1511, 1510, 1572, 3409, 1572, 1579, 1579, 1579, 1579, 3410, 1573, 3373, 1573, 3381, 3373, 3381, 1574, 3411, 1574, 1580, 1580, 1580, 1580, 1581, 1581, 1581, 1581, 1572, 1579, 3412, 1579, 3413, 1572, 3376, 3253, 1573, 3376, 3253, 1511, 1573, 3402, 1574, 1580, 3402, 1580, 3253, 1581, 3414, 1581, 1582, 1582, 1582, 1582, 1579, 3401, 1583, 1583, 1583, 1583, 3253, 1584, 1584, 1584, 1584, 3415, 1995, 1995, 1580, 1995, 3401, 3397, 1581, 1582, 3397, 1582, 3421, 1995, 1580, 1583, 3421, 1583, 1995, 1995, 1584, 3422, 1584, 1581, 1585, 1585, 1585, 1585, 1586, 1586, 1586, 1586, 3397, 3431, 1582, 1587, 1587, 1587, 1587, 3433, 1583, 3333, 1582, 3406, 3333, 1584, 3406, 1585, 3434, 1585, 3406, 1586, 3333, 1586, 1588, 1588, 1588, 1588, 1587, 3441, 1587, 1583, 1584, 3442, 1589, 1589, 1589, 1589, 3026, 3026, 3026, 3026, 1585, 3432, 3443, 3026, 1586, 1588, 3338, 1588, 1585, 3338, 3408, 1587, 3444, 3408, 3432, 1589, 1586, 1589, 1590, 1590, 1590, 1590, 3408, 1587, 3445, 2290, 2290, 2290, 2290, 3338, 1588, 3449, 1791, 1791, 1791, 1791, 2290, 1588, 3450, 1791, 1589, 1590, 1771, 1590, 1589, 1771, 3455, 3430, 3300, 1771, 3430, 3300, 3457, 3300, 1771, 1791, 1799, 1799, 1799, 1799, 3458, 1771, 1771, 1771, 1771, 1771, 1590, 1799, 3462, 3463, 1590, 1759, 1759, 1759, 1759, 3300, 3465, 3467, 3362, 1799, 1791, 3362, 1759, 1759, 3446, 3448, 1759, 3446, 3353, 3362, 1771, 3353, 3471, 3468, 1759, 1759, 1759, 3448, 1791, 1798, 1798, 1798, 1798, 3472, 1799, 3474, 1798, 1800, 1800, 1800, 1800, 3353, 3454, 1791, 1895, 3454, 3476, 1895, 1800, 1759, 1759, 1895, 1798, 1771, 3364, 3468, 1895, 3364, 3477, 3364, 1800, 3479, 1800, 1895, 1895, 1895, 1895, 2291, 2291, 2291, 2291, 1759, 1764, 1764, 1764, 1764, 3464, 1798, 2291, 1764, 3473, 3364, 3456, 3464, 1764, 1800, 1985, 1985, 1985, 1985, 3473, 1764, 1764, 1764, 1764, 1764, 2434, 2434, 2434, 2434, 1809, 1809, 1809, 1809, 3480, 3478, 3481, 2434, 3478, 1985, 1798, 1809, 1809, 3456, 3483, 1809, 1810, 1810, 1810, 1810, 1764, 3487, 2179, 1809, 1809, 1809, 2178, 1810, 1810, 3384, 3389, 1810, 3384, 3389, 1985, 1815, 1815, 1815, 1815, 1810, 1810, 3389, 1815, 3154, 3154, 3154, 3154, 2177, 1809, 1809, 3154, 2176, 3384, 1764, 1766, 1766, 1766, 1766, 1815, 3385, 3407, 1766, 3385, 3407, 1810, 1810, 1766, 3407, 3482, 1825, 1825, 1825, 1825, 1766, 1766, 1766, 1766, 1766, 3482, 2175, 1825, 1825, 3385, 1815, 1825, 1826, 1826, 1826, 1826, 2174, 2173, 2172, 1825, 1825, 1825, 3485, 1826, 1826, 3485, 3488, 1826, 1815, 1766, 1914, 3349, 3488, 1914, 3349, 1826, 1826, 2614, 2614, 2614, 2614, 1914, 2171, 1815, 1825, 1825, 1914, 1914, 2614, 2286, 2286, 2286, 2286, 1914, 2162, 1914, 1986, 1986, 1986, 1986, 1826, 1826, 1766, 1792, 1792, 1792, 1792, 1986, 3469, 3469, 3469, 3469, 2286, 1915, 1792, 1792, 1915, 2160, 1792, 1986, 2966, 2966, 2966, 2966, 1915, 3349, 1792, 1792, 1792, 1915, 1915, 1916, 3436, 2156, 1916, 3436, 1915, 2286, 1915, 3436, 1914, 3349, 1916, 2966, 1986, 3573, 3418, 1916, 1916, 3418, 3573, 1792, 1792, 3657, 1916, 2155, 1916, 3418, 3657, 1792, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1915, 2154, 2153, 2152, 1830, 1830, 1830, 1830, 1830, 1830, 1924, 2151, 3486, 1924, 3475, 3475, 3475, 3475, 2966, 3486, 1916, 1924, 2110, 2110, 2110, 2110, 1924, 1924, 1830, 1830, 1830, 1830, 2150, 1924, 2255, 1924, 2149, 2255, 2148, 3420, 3425, 2255, 3420, 3425, 2147, 2110, 2255, 2110, 2146, 2145, 3420, 3425, 2133, 2255, 2255, 2255, 2255, 2255, 2132, 1830, 1830, 1830, 1830, 1830, 1837, 1837, 1837, 1837, 2131, 1926, 2110, 3437, 1926, 2130, 3437, 1837, 1837, 2129, 3438, 1837, 1926, 3438, 2255, 3437, 2128, 1926, 1926, 1837, 1837, 1837, 3438, 2127, 1926, 1927, 1926, 2126, 1927, 2615, 2615, 2615, 2615, 2112, 3440, 3489, 1927, 3440, 3489, 2108, 2615, 1927, 1927, 2107, 1837, 1837, 3440, 2255, 1927, 2106, 1927, 2105, 1837, 1861, 1861, 1861, 1861, 2115, 2115, 2115, 2115, 2104, 2103, 1926, 1861, 1861, 2102, 2101, 1861, 2100, 1987, 1987, 1987, 1987, 3489, 2099, 1861, 1861, 1861, 2098, 2115, 1987, 2115, 1929, 1927, 3447, 1929, 1928, 3447, 2097, 1928, 2096, 2095, 1987, 1929, 1987, 3447, 2092, 1928, 1929, 1929, 1861, 1861, 1928, 1928, 2115, 1929, 1861, 1929, 2085, 1928, 2078, 1928, 2077, 3155, 3155, 3155, 3155, 1987, 2076, 2115, 3155, 2071, 1861, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 2616, 2616, 2616, 2616, 1925, 1925, 1925, 1925, 1925, 1925, 1929, 2616, 3461, 1928, 3452, 3461, 1930, 3452, 2070, 1930, 2114, 2114, 2114, 2114, 3461, 3452, 2069, 1930, 1925, 1925, 1925, 1925, 1930, 1930, 2068, 3511, 3511, 1925, 2067, 1930, 3511, 1930, 2066, 2114, 3511, 2114, 2065, 2063, 2061, 2116, 2116, 2116, 2116, 2060, 1931, 2058, 1997, 1931, 1923, 1925, 1925, 1925, 1925, 1925, 1932, 1931, 1922, 1932, 2114, 1920, 1931, 1931, 2116, 1909, 2116, 1932, 1930, 1931, 1908, 1931, 1932, 1932, 1933, 3113, 1907, 1933, 3113, 1932, 1906, 1932, 1905, 2114, 1934, 1933, 3113, 1934, 1903, 2116, 1933, 1933, 1902, 1901, 1900, 1934, 1899, 1933, 3113, 1933, 1934, 1934, 1897, 1935, 1896, 1891, 1935, 1934, 1888, 1934, 1887, 1886, 2116, 1936, 1935, 1882, 1936, 1867, 1931, 1935, 1935, 1860, 3299, 3113, 1936, 3299, 1935, 1932, 1935, 1936, 1936, 3113, 1858, 3299, 1857, 1834, 1936, 1933, 1936, 1937, 1816, 1813, 1937, 1938, 1801, 3299, 1938, 1796, 1934, 1794, 1937, 1790, 1785, 1784, 1938, 1937, 1937, 1783, 1939, 1938, 1938, 1939, 1937, 1935, 1937, 1782, 1938, 1781, 1938, 1939, 3299, 1779, 1778, 1941, 1939, 1939, 1941, 1942, 1777, 1776, 1942, 1939, 1936, 1939, 1941, 1775, 1773, 1772, 1942, 1941, 1941, 1765, 1748, 1942, 1942, 1937, 1941, 1746, 1941, 1740, 1942, 1943, 1942, 1737, 1943, 1944, 1938, 1735, 1944, 1733, 3516, 3516, 1943, 1723, 1721, 3516, 1944, 1943, 1943, 3516, 1945, 1944, 1944, 1945, 1943, 1941, 1943, 1712, 1944, 1939, 1944, 1945, 1710, 1701, 1699, 1946, 1945, 1945, 1946, 3518, 3518, 1697, 1942, 1945, 3518, 1945, 1946, 1695, 3518, 1692, 1947, 1946, 1946, 1947, 3307, 3307, 3307, 3307, 1946, 1689, 1946, 1947, 1688, 1686, 1683, 1948, 1947, 1947, 1948, 3521, 3521, 1672, 1943, 1947, 3521, 1947, 1948, 1669, 3521, 1944, 1949, 1948, 1948, 1949, 1950, 1668, 1945, 1950, 1948, 1665, 1948, 1949, 1664, 1663, 1662, 1950, 1949, 1949, 1661, 1951, 1950, 1950, 1951, 1949, 1946, 1949, 1660, 1950, 1659, 1950, 1951, 1658, 1657, 1656, 3307, 1951, 1951, 1952, 1655, 1947, 1952, 1654, 1951, 1653, 1951, 1652, 1650, 1649, 1952, 1648, 1948, 1647, 3307, 1952, 1952, 1953, 1646, 1950, 1953, 1637, 1952, 1632, 1952, 1630, 1629, 1954, 1953, 1628, 1954, 1949, 1627, 1953, 1953, 1626, 1625, 1624, 1954, 1623, 1953, 1622, 1953, 1954, 1954, 1955, 3208, 1621, 1955, 3208, 1954, 1951, 1954, 1620, 3523, 3523, 1955, 3208, 1619, 3523, 1618, 1955, 1955, 3523, 1956, 1617, 1952, 1956, 1955, 3208, 1955, 1953, 1616, 1615, 1957, 1956, 1614, 1957, 1613, 1954, 1956, 1956, 1612, 1611, 1610, 1957, 1609, 1956, 1608, 1956, 1957, 1957, 1958, 1607, 3208, 1958, 1606, 1957, 1605, 1957, 3208, 1604, 1959, 1958, 1603, 1959, 3287, 3287, 1958, 1958, 1602, 3287, 3287, 1959, 1955, 1958, 1601, 1958, 1959, 1959, 1599, 1960, 3287, 1598, 1960, 1959, 1957, 1959, 1597, 1596, 1595, 1956, 1960, 1594, 1593, 1577, 1961, 1960, 1960, 1961, 1962, 1576, 1564, 1962, 1960, 1563, 1960, 1961, 1958, 1562, 1561, 1962, 1961, 1961, 1560, 1963, 1962, 1962, 1963, 1961, 1559, 1961, 1959, 1962, 1558, 1962, 1963, 1557, 1556, 1555, 1964, 1963, 1963, 1964, 1554, 3287, 1553, 1960, 1963, 1552, 1963, 1964, 1550, 1549, 1548, 1965, 1964, 1964, 1965, 2630, 2630, 2630, 2630, 1964, 1547, 1964, 1965, 1546, 1545, 1533, 2630, 1965, 1965, 1526, 1966, 1524, 1961, 1966, 1965, 1523, 1965, 1962, 1522, 1521, 1520, 1966, 1519, 1516, 1514, 1967, 1966, 1966, 1967, 2118, 2118, 2118, 2118, 1966, 1963, 1966, 1967, 1513, 1469, 1448, 1968, 1967, 1967, 1968, 1969, 1964, 1421, 1969, 1967, 1376, 1967, 1968, 2118, 1375, 2118, 1969, 1968, 1968, 1373, 1352, 1969, 1969, 1965, 1968, 1351, 1968, 1966, 1969, 1349, 1969, 1970, 1330, 1328, 1970, 1327, 1326, 1967, 2118, 1325, 1324, 1323, 1970, 1321, 2118, 1320, 1971, 1970, 1970, 1971, 3525, 3525, 1967, 1319, 1970, 3525, 1970, 1971, 1318, 3525, 1317, 1968, 1971, 1971, 1972, 1316, 1315, 1972, 1309, 1971, 1969, 1971, 1308, 1290, 1242, 1972, 1238, 1212, 1207, 1973, 1972, 1972, 1973, 1201, 1200, 1970, 1198, 1972, 1197, 1972, 1973, 3345, 3345, 3345, 3345, 1973, 1973, 1196, 3345, 1195, 1971, 1194, 1973, 1975, 1973, 1193, 1975, 2631, 2631, 2631, 2631, 1191, 1190, 1976, 1975, 1189, 1976, 1188, 2631, 1975, 1975, 1187, 1186, 1972, 1976, 1185, 1975, 1180, 1975, 1976, 1976, 1175, 3152, 3152, 3152, 3152, 1976, 1154, 1976, 3152, 1152, 1141, 1973, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1981, 1130, 1119, 1981, 1974, 1974, 1974, 1974, 1974, 1974, 1977, 1981, 1115, 1977, 1975, 1112, 1981, 1981, 1109, 1108, 1976, 1977, 1106, 1981, 1096, 1981, 1977, 1977, 1974, 1974, 1974, 1974, 1095, 1977, 1091, 1977, 1090, 3105, 3105, 1089, 3105, 1978, 3527, 3527, 1978, 1087, 1085, 3527, 3105, 1084, 3152, 3527, 1978, 3105, 3105, 1082, 1081, 1978, 1978, 1974, 1974, 1974, 1974, 1974, 1978, 1977, 1978, 1080, 1979, 1079, 1977, 1979, 1981, 1078, 1077, 1977, 1076, 1074, 1980, 1979, 1073, 1980, 1072, 1071, 1979, 1979, 1070, 1069, 1046, 1980, 1044, 1979, 1043, 1979, 1980, 1980, 1982, 1042, 1041, 1982, 1039, 1980, 1038, 1980, 1037, 1036, 1978, 1982, 3153, 3153, 3153, 3153, 1982, 1982, 1983, 3153, 1035, 1983, 1033, 1982, 1032, 1982, 1031, 1030, 1984, 1983, 1979, 1984, 1029, 1022, 1983, 1983, 1021, 3529, 3529, 1984, 1980, 1983, 3529, 1983, 1984, 1984, 3529, 1991, 1991, 1020, 1991, 1984, 1019, 1984, 3233, 3233, 3233, 3233, 1991, 1017, 1016, 3233, 1015, 1991, 1991, 1992, 1992, 1014, 1992, 1013, 1991, 1982, 1991, 1011, 3531, 3531, 1992, 1010, 1009, 3531, 1008, 1992, 1992, 3531, 1984, 1007, 1003, 1983, 1992, 1002, 1992, 1993, 1993, 3153, 1993, 1994, 1994, 1001, 1994, 1000, 3535, 3535, 1993, 999, 994, 3535, 1994, 1993, 1993, 3535, 993, 1994, 1994, 992, 1993, 991, 1993, 1991, 1994, 963, 1994, 962, 1999, 1999, 955, 1999, 2003, 2003, 954, 2003, 953, 952, 1992, 1999, 951, 3233, 950, 2003, 1999, 1999, 948, 947, 2003, 2003, 946, 1999, 945, 1999, 944, 2003, 942, 2003, 941, 3310, 3310, 3310, 3310, 940, 939, 938, 1993, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 937, 936, 924, 923, 2000, 2000, 2000, 2000, 2000, 2000, 2001, 2001, 917, 2001, 916, 2003, 915, 2280, 2280, 2280, 2280, 2001, 912, 909, 2280, 908, 2001, 2001, 2000, 2000, 2000, 2000, 3310, 2001, 907, 2001, 906, 2000, 904, 901, 2280, 2002, 2002, 900, 2002, 899, 2117, 2117, 2117, 2117, 3310, 893, 2002, 892, 890, 882, 881, 2002, 2002, 2000, 2000, 2000, 2000, 2000, 2002, 2280, 2002, 2004, 2004, 2117, 2004, 2117, 2001, 846, 2120, 2120, 2120, 2120, 2004, 816, 804, 799, 798, 2004, 2004, 2005, 2005, 759, 2005, 730, 2004, 729, 2004, 726, 2117, 721, 2005, 2120, 2280, 2120, 2002, 2005, 2005, 2006, 2006, 719, 2006, 717, 2005, 716, 2005, 714, 713, 2117, 2006, 695, 662, 631, 627, 2006, 2006, 622, 2120, 621, 2007, 2007, 2006, 2007, 2006, 614, 2120, 3160, 3160, 3160, 3160, 2007, 612, 610, 2004, 609, 2007, 2007, 3160, 2008, 2008, 2005, 2008, 2007, 598, 2007, 2287, 2287, 2287, 2287, 2008, 3156, 3156, 3156, 3156, 2008, 2008, 2009, 2009, 582, 2009, 580, 2008, 3156, 2008, 576, 3156, 568, 2009, 2287, 563, 2006, 556, 2009, 2009, 3156, 2010, 2010, 517, 2010, 2009, 515, 2009, 3391, 3391, 3391, 3391, 2010, 508, 507, 3391, 2007, 2010, 2010, 2287, 2011, 2011, 497, 2011, 2010, 3156, 2010, 2008, 496, 495, 492, 2011, 2567, 2567, 2567, 2567, 2011, 2011, 2012, 2012, 491, 2012, 2009, 2011, 489, 2011, 488, 486, 485, 2012, 473, 458, 454, 448, 2012, 2012, 2013, 2013, 447, 2013, 446, 2012, 444, 2012, 443, 442, 440, 2013, 439, 438, 2010, 437, 2013, 2013, 2014, 2014, 2011, 2014, 436, 2013, 427, 2013, 426, 425, 423, 2014, 2567, 422, 421, 419, 2014, 2014, 2015, 2015, 418, 2015, 417, 2014, 2567, 2014, 416, 2012, 2567, 2015, 415, 2567, 413, 400, 2015, 2015, 2567, 3539, 3539, 399, 398, 2015, 3539, 2015, 2016, 2016, 3539, 2016, 2017, 2017, 397, 2017, 396, 2013, 394, 2016, 2014, 3541, 3541, 2017, 2016, 2016, 3541, 366, 2017, 2017, 3541, 2016, 363, 2016, 2015, 2017, 362, 2017, 2018, 2018, 361, 2018, 2019, 2019, 358, 2019, 357, 3543, 3543, 2018, 356, 354, 3543, 2019, 2018, 2018, 3543, 353, 2019, 2019, 352, 2018, 350, 2018, 349, 2019, 329, 2019, 2020, 2020, 324, 2020, 319, 2016, 318, 3308, 3308, 3308, 3308, 2020, 317, 316, 308, 2017, 2020, 2020, 2021, 2021, 293, 2021, 292, 2020, 248, 2020, 247, 243, 215, 2021, 208, 197, 196, 195, 2021, 2021, 2022, 2022, 165, 2022, 2019, 2021, 157, 2021, 2018, 153, 147, 2022, 146, 141, 139, 128, 2022, 2022, 2023, 2023, 127, 2023, 124, 2022, 121, 2022, 3308, 119, 110, 2023, 101, 97, 91, 2020, 2023, 2023, 2024, 2024, 82, 2024, 74, 2023, 67, 2023, 0, 3545, 3545, 2024, 0, 3308, 3545, 2021, 2024, 2024, 3545, 2025, 2025, 0, 2025, 2024, 0, 2024, 0, 0, 0, 2022, 2025, 0, 0, 0, 0, 2025, 2025, 0, 2026, 2026, 0, 2026, 2025, 0, 2025, 3365, 3365, 3365, 3365, 2026, 0, 2023, 0, 2024, 2026, 2026, 2027, 2027, 0, 2027, 0, 2026, 0, 2026, 0, 0, 0, 2027, 0, 3365, 0, 3365, 2027, 2027, 2028, 2028, 0, 2028, 0, 2027, 0, 2027, 0, 0, 0, 2028, 0, 0, 0, 2025, 2028, 2028, 2029, 2029, 0, 2029, 0, 2028, 0, 2028, 0, 0, 0, 2029, 0, 2026, 0, 0, 2029, 2029, 2027, 2030, 2030, 0, 2030, 2029, 3365, 2029, 0, 0, 0, 0, 2030, 3365, 0, 0, 2028, 2030, 2030, 2031, 2031, 0, 2031, 0, 2030, 0, 2030, 0, 0, 0, 2031, 3234, 3234, 3234, 3234, 2031, 2031, 2032, 2032, 0, 2032, 0, 2031, 3234, 2031, 0, 3234, 0, 2032, 0, 0, 2029, 0, 2032, 2032, 3234, 2033, 2033, 0, 2033, 2032, 0, 2032, 3306, 3306, 3306, 3306, 2033, 2030, 0, 0, 2031, 2033, 2033, 2034, 2034, 0, 2034, 0, 2033, 3234, 2033, 0, 0, 0, 2034, 2288, 2288, 2288, 2288, 2034, 2034, 0, 2032, 0, 2035, 2035, 2034, 2035, 2034, 2119, 2119, 2119, 2119, 0, 0, 2035, 0, 0, 2288, 0, 2035, 2035, 0, 0, 0, 2033, 3306, 2035, 0, 2035, 2036, 2036, 2119, 2036, 2119, 3547, 3547, 0, 3306, 2034, 3547, 2036, 3306, 2288, 3547, 3306, 2036, 2036, 2037, 2037, 3306, 2037, 0, 2036, 0, 2036, 0, 2119, 0, 2037, 0, 0, 0, 0, 2037, 2037, 2038, 2038, 0, 2038, 0, 2037, 0, 2037, 2035, 0, 0, 2038, 0, 0, 2119, 0, 2038, 2038, 2039, 2039, 0, 2039, 0, 2038, 0, 2038, 0, 0, 0, 2039, 3173, 3173, 3173, 3173, 2039, 2039, 0, 2036, 0, 2040, 2040, 2039, 2040, 2039, 0, 2121, 2121, 2121, 2121, 0, 2040, 2037, 0, 3173, 0, 2040, 2040, 0, 2278, 2278, 2278, 2278, 2040, 0, 2040, 2278, 2041, 2041, 2121, 2041, 2121, 2038, 0, 0, 2039, 0, 0, 2041, 3173, 0, 0, 2278, 2041, 2041, 2042, 2042, 0, 2042, 0, 2041, 2040, 2041, 0, 2121, 0, 2042, 2121, 0, 0, 0, 2042, 2042, 0, 0, 0, 2040, 2278, 2042, 0, 2042, 0, 2043, 2043, 0, 2043, 0, 0, 0, 2123, 2123, 2123, 2123, 2043, 0, 2278, 0, 2041, 2043, 2043, 2044, 2044, 0, 2044, 0, 2043, 0, 2043, 0, 0, 2278, 2044, 2123, 0, 2123, 0, 2044, 2044, 2045, 2045, 2042, 2045, 0, 2044, 0, 2044, 0, 0, 0, 2045, 0, 0, 0, 0, 2045, 2045, 2043, 2123, 0, 2046, 2046, 2045, 2046, 2045, 3550, 3550, 0, 2123, 0, 3550, 2046, 0, 0, 3550, 2044, 2046, 2046, 2047, 2047, 0, 2047, 0, 2046, 0, 2046, 0, 0, 0, 2047, 0, 0, 0, 0, 2047, 2047, 2048, 2048, 2045, 2048, 0, 2047, 0, 2047, 0, 0, 0, 2048, 0, 0, 0, 0, 2048, 2048, 2049, 2049, 0, 2049, 0, 2048, 0, 2048, 0, 2046, 0, 2049, 0, 0, 0, 0, 2049, 2049, 2050, 2050, 0, 2050, 0, 2049, 0, 2049, 0, 0, 0, 2050, 2279, 2279, 2279, 2279, 2050, 2050, 0, 2279, 2047, 0, 0, 2050, 0, 2050, 0, 2051, 2051, 0, 2051, 3553, 3553, 0, 2048, 2279, 3553, 2049, 2051, 0, 3553, 0, 2049, 2051, 2051, 2052, 2052, 2049, 2052, 0, 2051, 0, 2051, 0, 0, 0, 2052, 0, 0, 0, 2279, 2052, 2052, 2053, 2053, 2050, 2053, 0, 2052, 0, 2052, 0, 0, 0, 2053, 0, 0, 0, 2279, 2053, 2053, 2054, 2054, 0, 2054, 2051, 2053, 0, 2053, 0, 0, 0, 2054, 2279, 0, 0, 0, 2054, 2054, 2055, 2055, 0, 2055, 2052, 2054, 0, 2054, 0, 0, 0, 2055, 0, 0, 0, 0, 2055, 2055, 2056, 2056, 0, 2056, 0, 2055, 0, 2055, 0, 0, 0, 2056, 0, 0, 0, 0, 2056, 2056, 2053, 0, 0, 2362, 0, 2056, 2362, 2056, 0, 0, 3237, 3237, 3237, 3237, 2362, 0, 0, 2054, 0, 2362, 2362, 3237, 3556, 3556, 0, 0, 2362, 3556, 2362, 0, 0, 3556, 0, 2055, 0, 0, 0, 0, 2056, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2122, 2122, 2122, 2122, 2124, 2124, 2124, 2124, 2125, 2125, 2125, 2125, 0, 2281, 2281, 2281, 2281, 0, 2521, 2521, 2521, 2521, 0, 2122, 2281, 2122, 0, 2124, 0, 2124, 0, 2125, 0, 2125, 3097, 0, 2281, 3097, 2281, 0, 0, 2521, 0, 2521, 0, 3097, 0, 0, 2122, 0, 3097, 3097, 2124, 3558, 3558, 0, 2125, 3097, 3558, 3097, 0, 2281, 3558, 3682, 3682, 2122, 2521, 0, 3682, 0, 0, 0, 3682, 0, 0, 2124, 0, 2125, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2250, 2250, 2250, 2250, 0, 0, 0, 2282, 2282, 2282, 2282, 2250, 2250, 0, 0, 2250, 2250, 2250, 2282, 3235, 3235, 3235, 3235, 2250, 2250, 2250, 3238, 3238, 3238, 3238, 2282, 3235, 2282, 0, 3235, 0, 0, 3238, 2523, 2523, 2523, 2523, 0, 3235, 0, 0, 0, 0, 2250, 2250, 2256, 2256, 2256, 2256, 0, 2282, 0, 2256, 0, 0, 0, 2523, 2256, 2523, 2295, 2295, 2295, 2295, 3235, 2256, 2256, 2256, 2256, 2256, 2282, 2295, 2295, 0, 0, 2295, 2296, 2296, 2296, 2296, 0, 0, 2523, 2295, 2295, 2295, 2523, 2296, 2296, 0, 2378, 2296, 0, 2378, 2256, 0, 0, 0, 0, 2296, 2296, 2378, 0, 0, 0, 0, 2378, 2378, 2295, 2295, 0, 3685, 3685, 2378, 0, 2378, 3685, 3688, 3688, 0, 3685, 0, 3688, 0, 2296, 2296, 3688, 2256, 2283, 2283, 2283, 2283, 0, 2524, 2524, 2524, 2524, 0, 2379, 2283, 2283, 2379, 0, 2283, 2283, 2283, 0, 0, 0, 2379, 0, 2283, 2283, 2283, 2379, 2379, 2524, 2384, 2524, 0, 2384, 2379, 2378, 2379, 0, 0, 0, 2380, 2384, 0, 2380, 0, 0, 2384, 2384, 0, 2283, 2283, 2380, 0, 2384, 2524, 2384, 2380, 2380, 3272, 3272, 3272, 3272, 0, 2380, 0, 2380, 0, 2379, 0, 3272, 2283, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2299, 2381, 2380, 2384, 2381, 2299, 2299, 2299, 2299, 2299, 2299, 0, 2381, 0, 3789, 3789, 0, 2381, 2381, 3789, 0, 0, 2383, 3789, 2381, 2383, 2381, 0, 0, 2299, 2299, 2299, 2299, 2383, 2531, 2531, 2531, 2531, 2383, 2383, 0, 0, 0, 0, 0, 2383, 0, 2383, 0, 2526, 2526, 2526, 2526, 2381, 0, 0, 0, 2531, 0, 2531, 2299, 2299, 2299, 2299, 2299, 2306, 2306, 2306, 2306, 0, 0, 0, 2526, 0, 2526, 2385, 2306, 2306, 2385, 0, 2306, 0, 2531, 0, 0, 0, 2385, 2383, 2306, 2306, 2306, 2385, 2385, 0, 0, 0, 0, 2526, 2385, 2531, 2385, 2386, 3805, 3805, 2386, 2388, 0, 3805, 2388, 0, 0, 3805, 2386, 2306, 2306, 0, 2388, 2386, 2386, 2306, 2526, 2388, 2388, 0, 2386, 0, 2386, 0, 2388, 0, 2388, 2385, 0, 0, 0, 2306, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 2350, 0, 2386, 0, 2388, 2350, 2350, 2350, 2350, 2350, 2350, 2636, 2636, 2636, 2636, 3273, 3273, 3273, 3273, 0, 0, 0, 2636, 0, 0, 2387, 3273, 0, 2387, 2350, 2350, 2350, 2350, 0, 2636, 0, 2387, 0, 0, 0, 3273, 2387, 2387, 3309, 3309, 3309, 3309, 0, 2387, 0, 2387, 0, 2350, 0, 3309, 0, 0, 0, 0, 2636, 2350, 2350, 2350, 2350, 2350, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2382, 2387, 0, 0, 0, 2382, 2382, 2382, 2382, 2382, 2382, 2389, 3819, 3819, 2389, 0, 0, 3819, 0, 0, 0, 3819, 2389, 2525, 2525, 2525, 2525, 2389, 2389, 2382, 2382, 2382, 2382, 2382, 2389, 0, 2389, 3309, 3321, 3321, 3321, 3321, 2392, 0, 0, 2392, 2525, 0, 2525, 3321, 0, 0, 0, 2392, 0, 0, 0, 0, 2392, 2392, 2382, 2382, 2382, 2382, 2382, 2392, 2393, 2392, 0, 2393, 2394, 2525, 0, 2394, 0, 0, 2389, 2393, 0, 2525, 0, 2394, 2393, 2393, 0, 0, 2394, 2394, 0, 2393, 0, 2393, 0, 2394, 2395, 2394, 2392, 2395, 0, 0, 3248, 3248, 3248, 3248, 0, 2395, 0, 0, 0, 2396, 2395, 2395, 2396, 2530, 2530, 2530, 2530, 2395, 0, 2395, 2396, 2393, 0, 3248, 2397, 2396, 2396, 2397, 2398, 0, 2394, 2398, 2396, 0, 2396, 2397, 2530, 0, 2530, 2398, 2397, 2397, 0, 2399, 2398, 2398, 2399, 2397, 3248, 2397, 0, 2398, 0, 2398, 2399, 0, 0, 0, 0, 2399, 2399, 2530, 0, 0, 2400, 2395, 2399, 2400, 2399, 2396, 0, 2530, 0, 0, 2401, 2400, 0, 2401, 0, 0, 2400, 2400, 0, 0, 2398, 2401, 0, 2400, 0, 2400, 2401, 2401, 0, 2402, 0, 2397, 2402, 2401, 0, 2401, 0, 0, 0, 2403, 2402, 0, 2403, 0, 2399, 2402, 2402, 0, 0, 0, 2403, 0, 2402, 0, 2402, 2403, 2403, 2404, 0, 0, 2404, 0, 2403, 2400, 2403, 0, 0, 2405, 2404, 0, 2405, 0, 0, 2404, 2404, 0, 0, 2401, 2405, 0, 2404, 0, 2404, 2405, 2405, 0, 2406, 0, 0, 2406, 2405, 0, 2405, 0, 0, 0, 2407, 2406, 0, 2407, 2402, 0, 2406, 2406, 0, 0, 0, 2407, 0, 2406, 2403, 2406, 2407, 2407, 2408, 3904, 3904, 2408, 0, 2407, 3904, 2407, 0, 0, 3904, 2408, 0, 2405, 2404, 2409, 2408, 2408, 2409, 2410, 0, 0, 2410, 2408, 0, 2408, 2409, 0, 3918, 3918, 2410, 2409, 2409, 3918, 0, 2410, 2410, 3918, 2409, 0, 2409, 0, 2410, 2406, 2410, 2411, 3939, 3939, 2411, 2412, 0, 3939, 2412, 2407, 2408, 3939, 2411, 0, 0, 0, 2412, 2411, 2411, 0, 2413, 2412, 2412, 2413, 2411, 2409, 2411, 0, 2412, 0, 2412, 2413, 0, 0, 0, 0, 2413, 2413, 0, 2414, 0, 0, 2414, 2413, 0, 2413, 2410, 0, 0, 2415, 2414, 0, 2415, 0, 0, 2414, 2414, 2411, 0, 0, 2415, 2412, 2414, 0, 2414, 2415, 2415, 2416, 3968, 3968, 2416, 0, 2415, 3968, 2415, 0, 0, 3968, 2416, 0, 0, 0, 0, 2416, 2416, 2413, 2417, 0, 0, 2417, 2416, 0, 2416, 0, 2414, 0, 2418, 2417, 0, 2418, 0, 0, 2417, 2417, 0, 0, 0, 2418, 0, 2417, 0, 2417, 2418, 2418, 2419, 0, 0, 2419, 0, 2418, 2415, 2418, 0, 0, 2416, 2419, 0, 0, 0, 0, 2419, 2419, 2420, 0, 0, 2420, 0, 2419, 0, 2419, 2417, 0, 2421, 2420, 0, 2421, 0, 0, 2420, 2420, 0, 0, 0, 2421, 2418, 2420, 0, 2420, 2421, 2421, 0, 2422, 0, 0, 2422, 2421, 0, 2421, 0, 0, 0, 0, 2422, 0, 0, 0, 2426, 2422, 2422, 2426, 0, 0, 0, 0, 2422, 2419, 2422, 2426, 0, 0, 0, 2420, 2426, 2426, 3322, 3322, 3322, 3322, 0, 2426, 0, 2426, 0, 0, 0, 3322, 0, 0, 0, 0, 0, 2421, 0, 2422, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2427, 0, 2426, 2427, 2425, 2425, 2425, 2425, 2425, 2425, 2428, 2427, 0, 2428, 0, 0, 2427, 2427, 0, 0, 0, 2428, 0, 2427, 0, 2427, 2428, 2428, 2425, 2425, 2425, 2425, 0, 2428, 0, 2428, 3325, 3325, 3325, 3325, 0, 2429, 0, 0, 2429, 0, 0, 3325, 0, 0, 0, 2425, 2429, 0, 0, 0, 2427, 2429, 2429, 2425, 2425, 2425, 2425, 2425, 2429, 2428, 2429, 2430, 0, 0, 2430, 2431, 0, 0, 2431, 0, 0, 0, 2430, 0, 0, 0, 2431, 2430, 2430, 0, 2432, 2431, 2431, 2432, 2430, 0, 2430, 2429, 2431, 0, 2431, 2432, 0, 0, 0, 2433, 2432, 2432, 2433, 2435, 2435, 0, 2435, 2432, 0, 2432, 2433, 0, 0, 0, 2435, 2433, 2433, 0, 0, 2435, 2435, 2431, 2433, 0, 2433, 0, 2435, 0, 2435, 0, 2430, 2436, 2436, 0, 2436, 3368, 3368, 3368, 3368, 0, 0, 0, 2436, 0, 2432, 0, 3368, 2436, 2436, 0, 2433, 0, 0, 0, 2436, 0, 2436, 2437, 2437, 0, 2437, 2438, 2438, 0, 2438, 0, 0, 0, 2437, 0, 0, 0, 2438, 2437, 2437, 2435, 0, 2438, 2438, 0, 2437, 0, 2437, 0, 2438, 0, 2438, 2436, 0, 2439, 2439, 0, 2439, 3371, 3371, 3371, 3371, 0, 0, 0, 2439, 0, 0, 0, 3371, 2439, 2439, 2440, 2440, 2437, 2440, 0, 2439, 2438, 2439, 0, 0, 0, 2440, 0, 0, 0, 0, 2440, 2440, 2441, 2441, 0, 2441, 0, 2440, 0, 2440, 0, 0, 0, 2441, 0, 0, 0, 0, 2441, 2441, 0, 2442, 2442, 0, 2442, 2441, 0, 2441, 0, 0, 0, 2439, 2442, 0, 0, 0, 0, 2442, 2442, 2443, 2443, 0, 2443, 0, 2442, 0, 2442, 2440, 0, 0, 2443, 0, 0, 0, 0, 2443, 2443, 0, 2441, 0, 0, 0, 2443, 0, 2443, 2444, 2444, 0, 2444, 2446, 2446, 0, 2446, 0, 0, 0, 2444, 2442, 0, 0, 2446, 2444, 2444, 0, 0, 2446, 2446, 0, 2444, 0, 2444, 0, 2446, 2443, 2446, 0, 2447, 2447, 0, 2447, 0, 0, 0, 3396, 3396, 3396, 3396, 2447, 0, 0, 0, 0, 2447, 2447, 3396, 3396, 0, 0, 3396, 2447, 0, 2447, 0, 2446, 0, 0, 3396, 3396, 3396, 0, 2444, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2447, 3396, 0, 0, 2445, 2445, 2445, 2445, 2445, 2445, 2448, 2448, 0, 2448, 0, 0, 2527, 2527, 2527, 2527, 0, 2448, 0, 0, 0, 0, 2448, 2448, 2445, 2445, 2445, 2445, 0, 2448, 0, 2448, 0, 0, 0, 2527, 0, 2527, 0, 0, 2445, 3289, 3289, 3289, 3289, 0, 0, 0, 0, 0, 0, 2449, 2449, 0, 2449, 2445, 2445, 2445, 2445, 2445, 2527, 0, 2449, 0, 3289, 0, 2448, 2449, 2449, 2450, 2450, 0, 2450, 0, 2449, 0, 2449, 0, 0, 0, 2450, 0, 0, 2527, 0, 2450, 2450, 2451, 2451, 3289, 2451, 0, 2450, 0, 2450, 0, 0, 0, 2451, 0, 0, 0, 0, 2451, 2451, 0, 0, 0, 2452, 2452, 2451, 2452, 2451, 0, 0, 3429, 3429, 3429, 3429, 2452, 0, 0, 2449, 0, 2452, 2452, 3429, 2453, 2453, 2450, 2453, 2452, 0, 2452, 0, 0, 0, 0, 2453, 0, 0, 0, 0, 2453, 2453, 2454, 2454, 0, 2454, 0, 2453, 0, 2453, 0, 0, 0, 2454, 0, 2451, 0, 0, 2454, 2454, 0, 2452, 0, 2455, 2455, 2454, 2455, 2454, 0, 0, 0, 0, 0, 0, 2455, 0, 0, 0, 0, 2455, 2455, 2456, 2456, 0, 2456, 0, 2455, 0, 2455, 2453, 0, 0, 2456, 0, 0, 0, 0, 2456, 2456, 2457, 2457, 0, 2457, 0, 2456, 2454, 2456, 0, 0, 0, 2457, 0, 0, 0, 0, 2457, 2457, 2458, 2458, 0, 2458, 0, 2457, 0, 2457, 0, 0, 0, 2458, 0, 2455, 0, 0, 2458, 2458, 0, 0, 0, 2459, 2459, 2458, 2459, 2458, 0, 0, 0, 0, 0, 0, 2459, 0, 0, 2456, 0, 2459, 2459, 2460, 2460, 0, 2460, 0, 2459, 0, 2459, 0, 0, 0, 2460, 0, 0, 2457, 0, 2460, 2460, 2461, 2461, 0, 2461, 0, 2460, 0, 2460, 0, 0, 0, 2461, 0, 0, 2458, 0, 2461, 2461, 2462, 2462, 0, 2462, 0, 2461, 2459, 2461, 0, 0, 0, 2462, 0, 0, 0, 0, 2462, 2462, 0, 0, 0, 2463, 2463, 2462, 2463, 2462, 0, 0, 0, 0, 0, 0, 2463, 0, 0, 2460, 0, 2463, 2463, 2464, 2464, 0, 2464, 0, 2463, 0, 2463, 0, 0, 0, 2464, 0, 0, 2461, 2462, 2464, 2464, 2465, 2465, 0, 2465, 0, 2464, 0, 2464, 0, 0, 0, 2465, 0, 0, 0, 0, 2465, 2465, 2463, 2466, 2466, 0, 2466, 2465, 0, 2465, 3453, 3453, 3453, 3453, 2466, 0, 0, 0, 0, 2466, 2466, 3453, 2467, 2467, 0, 2467, 2466, 0, 2466, 0, 0, 0, 0, 2467, 0, 0, 0, 2464, 2467, 2467, 2465, 2468, 2468, 0, 2468, 2467, 0, 2467, 2533, 2533, 2533, 2533, 2468, 0, 0, 0, 0, 2468, 2468, 2469, 2469, 0, 2469, 0, 2468, 0, 2468, 0, 2466, 0, 2469, 2533, 0, 2533, 0, 2469, 2469, 2467, 2470, 2470, 0, 2470, 2469, 0, 2469, 0, 0, 0, 0, 2470, 0, 0, 0, 0, 2470, 2470, 2533, 2471, 2471, 2533, 2471, 2470, 0, 2470, 3426, 3426, 3426, 3426, 2471, 0, 0, 0, 2468, 2471, 2471, 3426, 2469, 0, 2472, 2472, 2471, 2472, 2471, 2532, 2532, 2532, 2532, 3426, 0, 2472, 0, 0, 2470, 0, 2472, 2472, 2473, 2473, 0, 2473, 0, 2472, 0, 2472, 0, 0, 2532, 2473, 2532, 0, 0, 0, 2473, 2473, 0, 2471, 0, 2474, 2474, 2473, 2474, 2473, 0, 0, 3335, 3335, 3335, 3335, 2474, 0, 0, 2532, 0, 2474, 2474, 2475, 2475, 0, 2475, 0, 2474, 0, 2474, 2532, 0, 0, 2475, 3335, 0, 2472, 0, 2475, 2475, 2478, 2478, 2473, 2478, 0, 2475, 0, 2475, 0, 0, 0, 2478, 0, 0, 0, 0, 2478, 2478, 0, 3335, 0, 0, 0, 2478, 0, 2478, 0, 0, 0, 0, 0, 0, 0, 2474, 2475, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 2476, 0, 2478, 0, 0, 2476, 2476, 2476, 2476, 2476, 2476, 2477, 2477, 0, 2477, 0, 0, 0, 3336, 3336, 3336, 3336, 2477, 0, 0, 0, 0, 2477, 2477, 2476, 2476, 2476, 2476, 0, 2477, 0, 2477, 0, 0, 0, 0, 3336, 2479, 2479, 0, 2479, 0, 0, 0, 0, 0, 0, 2476, 2479, 0, 0, 0, 0, 2479, 2479, 2476, 2476, 2476, 2476, 2476, 2479, 3336, 2479, 0, 2480, 2480, 2477, 2480, 2481, 2481, 0, 2481, 0, 0, 0, 2480, 0, 0, 0, 2481, 2480, 2480, 0, 0, 2481, 2481, 0, 2480, 0, 2480, 0, 2481, 2479, 2481, 2482, 2482, 0, 2482, 2483, 2483, 0, 2483, 0, 0, 0, 2482, 0, 0, 0, 2483, 2482, 2482, 0, 0, 2483, 2483, 2480, 2482, 0, 2482, 0, 2483, 0, 2483, 2484, 2484, 0, 2484, 2528, 2528, 2528, 2528, 0, 2481, 0, 2484, 2529, 2529, 2529, 2529, 2484, 2484, 0, 0, 0, 0, 2482, 2484, 0, 2484, 0, 2528, 0, 2528, 2634, 2634, 2634, 2634, 2483, 2529, 0, 2529, 0, 0, 0, 2634, 0, 2635, 2635, 2635, 2635, 2637, 2637, 2637, 2637, 2484, 2528, 2634, 2635, 2634, 0, 0, 2637, 2528, 2529, 0, 0, 0, 0, 0, 2635, 0, 2635, 0, 2637, 0, 2637, 2639, 2639, 2639, 2639, 0, 2634, 2643, 2643, 2643, 2643, 2529, 2639, 0, 2643, 0, 0, 0, 0, 2635, 0, 0, 0, 2637, 2639, 0, 2639, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 0, 0, 2635, 0, 0, 2648, 2648, 2648, 2648, 0, 0, 0, 0, 2639, 0, 2708, 2648, 2648, 2708, 2643, 2648, 2639, 2640, 2640, 2640, 2640, 2708, 0, 2648, 2648, 2648, 2708, 2708, 2640, 2640, 0, 0, 2640, 2708, 2709, 2708, 0, 2709, 0, 0, 2640, 2640, 2640, 0, 0, 2709, 0, 2643, 2648, 2648, 2709, 2709, 2654, 2654, 2654, 2654, 0, 2709, 0, 2709, 0, 0, 0, 2654, 2654, 2640, 2640, 2654, 0, 2640, 2641, 2641, 2641, 2641, 2708, 2654, 2654, 2654, 0, 0, 0, 2641, 2641, 0, 0, 2641, 2798, 2798, 2798, 2798, 0, 0, 0, 2641, 2641, 2641, 0, 0, 0, 0, 2654, 2654, 2641, 2709, 2799, 2799, 2799, 2799, 0, 2798, 0, 2798, 0, 2655, 2655, 2655, 2655, 0, 2641, 2641, 2653, 2653, 2653, 2653, 2655, 2655, 0, 2799, 2655, 2799, 2710, 2653, 2653, 2710, 2798, 2653, 2655, 2655, 0, 0, 0, 2710, 0, 2653, 2653, 2653, 2710, 2710, 0, 0, 0, 2798, 2799, 2710, 0, 2710, 0, 0, 0, 0, 0, 2655, 2655, 0, 2688, 2688, 2688, 2688, 2653, 2653, 0, 0, 0, 0, 2653, 2688, 2688, 0, 0, 2688, 0, 0, 0, 0, 2710, 0, 0, 2688, 2688, 0, 2653, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 0, 2688, 2688, 0, 2675, 2675, 2675, 2675, 2675, 2675, 0, 0, 0, 0, 0, 0, 2711, 0, 2688, 2711, 0, 0, 2800, 2800, 2800, 2800, 0, 2711, 2675, 2675, 2675, 2675, 2711, 2711, 0, 2864, 2864, 2864, 2864, 2711, 0, 2711, 0, 0, 0, 2800, 2864, 2800, 0, 0, 3337, 3337, 3337, 3337, 3354, 3354, 3354, 3354, 2864, 2675, 2675, 2675, 2675, 2675, 2687, 2687, 2687, 2687, 0, 2712, 2800, 0, 2712, 3337, 0, 2687, 2687, 3354, 0, 2687, 2712, 2711, 0, 2864, 0, 2712, 2712, 2687, 2687, 2687, 0, 2800, 2712, 2713, 2712, 0, 2713, 0, 3337, 0, 0, 0, 3354, 2714, 2713, 0, 2714, 0, 0, 2713, 2713, 0, 2687, 2687, 2714, 0, 2713, 0, 2713, 2714, 2714, 2715, 0, 2712, 2715, 0, 2714, 0, 2714, 2687, 0, 2716, 2715, 0, 2716, 0, 0, 2715, 2715, 0, 0, 0, 2716, 0, 2715, 0, 2715, 2716, 2716, 0, 0, 0, 0, 0, 2716, 2717, 2716, 0, 2717, 2801, 2801, 2801, 2801, 0, 0, 2713, 2717, 0, 0, 0, 2719, 2717, 2717, 2719, 2714, 2715, 0, 0, 2717, 0, 2717, 2719, 2801, 0, 2801, 2720, 2719, 2719, 2720, 2721, 0, 2716, 2721, 2719, 0, 2719, 2720, 0, 0, 0, 2721, 2720, 2720, 0, 0, 2721, 2721, 2801, 2720, 0, 2720, 0, 2721, 0, 2721, 2801, 2722, 0, 0, 2722, 0, 0, 0, 3041, 3041, 3041, 3041, 2722, 0, 2719, 0, 2717, 2722, 2722, 3041, 0, 0, 2723, 0, 2722, 2723, 2722, 0, 2721, 0, 0, 3041, 2724, 2723, 0, 2724, 2720, 0, 2723, 2723, 0, 0, 0, 2724, 0, 2723, 0, 2723, 2724, 2724, 0, 2725, 0, 2722, 2725, 2724, 3041, 2724, 0, 0, 0, 0, 2725, 0, 0, 0, 2726, 2725, 2725, 2726, 2727, 0, 0, 2727, 2725, 0, 2725, 2726, 2723, 0, 0, 2727, 2726, 2726, 2724, 2728, 2727, 2727, 2728, 2726, 0, 2726, 0, 2727, 0, 2727, 2728, 0, 0, 0, 0, 2728, 2728, 0, 0, 0, 2729, 0, 2728, 2729, 2728, 0, 0, 2803, 2803, 2803, 2803, 2729, 0, 0, 2725, 0, 2729, 2729, 2730, 2727, 0, 2730, 0, 2729, 0, 2729, 2726, 0, 2731, 2730, 2803, 2731, 2803, 0, 2730, 2730, 0, 0, 0, 2731, 0, 2730, 0, 2730, 2731, 2731, 2732, 0, 2728, 2732, 0, 2731, 0, 2731, 0, 2803, 2729, 2732, 0, 0, 0, 0, 2732, 2732, 0, 2865, 2865, 2865, 2865, 2732, 2734, 2732, 0, 2734, 0, 0, 2865, 0, 2803, 0, 2735, 2734, 0, 2735, 2731, 0, 2734, 2734, 2865, 2730, 2865, 2735, 0, 2734, 0, 2734, 2735, 2735, 0, 0, 0, 0, 0, 2735, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 2865, 0, 2732, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2734, 0, 0, 0, 2733, 2733, 2733, 2733, 2733, 2733, 2736, 0, 0, 2736, 0, 2735, 0, 2802, 2802, 2802, 2802, 2736, 0, 0, 0, 0, 2736, 2736, 2733, 2733, 2733, 2733, 2733, 2736, 0, 2736, 0, 0, 0, 0, 2802, 0, 2802, 0, 3265, 3265, 3265, 3265, 0, 0, 0, 0, 0, 2737, 0, 3265, 2737, 0, 0, 2733, 2733, 2733, 2733, 2733, 2737, 2802, 2736, 3265, 2738, 2737, 2737, 2738, 2739, 0, 0, 2739, 2737, 0, 2737, 2738, 2802, 0, 0, 2739, 2738, 2738, 0, 0, 2739, 2739, 0, 2738, 3265, 2738, 0, 2739, 2740, 2739, 0, 2740, 2741, 0, 0, 2741, 0, 0, 0, 2740, 0, 0, 2737, 2741, 2740, 2740, 0, 0, 2741, 2741, 0, 2740, 0, 2740, 0, 2741, 2742, 2741, 0, 2742, 2739, 0, 0, 0, 2738, 0, 0, 2742, 0, 0, 0, 0, 2742, 2742, 0, 0, 0, 2743, 2743, 2742, 2743, 2742, 0, 0, 0, 0, 0, 0, 2743, 0, 0, 2740, 0, 2743, 2743, 2741, 2744, 2744, 0, 2744, 2743, 0, 2743, 0, 0, 0, 0, 2744, 0, 0, 0, 0, 2744, 2744, 2745, 2745, 0, 2745, 0, 2744, 0, 2744, 0, 0, 0, 2745, 0, 2742, 0, 0, 2745, 2745, 2746, 2746, 0, 2746, 0, 2745, 0, 2745, 0, 2743, 0, 2746, 0, 0, 0, 0, 2746, 2746, 2747, 2747, 0, 2747, 0, 2746, 0, 2746, 0, 0, 0, 2747, 0, 0, 0, 2744, 2747, 2747, 2745, 2748, 2748, 0, 2748, 2747, 0, 2747, 0, 0, 0, 0, 2748, 0, 0, 0, 0, 2748, 2748, 2749, 2749, 0, 2749, 0, 2748, 0, 2748, 0, 0, 2746, 2749, 0, 0, 0, 0, 2749, 2749, 0, 0, 0, 2750, 2750, 2749, 2750, 2749, 0, 0, 0, 0, 0, 0, 2750, 0, 0, 2747, 0, 2750, 2750, 2751, 2751, 0, 2751, 0, 2750, 0, 2750, 0, 0, 0, 2751, 0, 0, 2748, 0, 2751, 2751, 0, 2752, 2752, 2749, 2752, 2751, 0, 2751, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 2752, 2752, 2753, 2753, 0, 2753, 0, 2752, 0, 2752, 0, 0, 0, 2753, 0, 0, 0, 0, 2753, 2753, 0, 0, 0, 2750, 2751, 2753, 0, 2753, 2754, 2754, 0, 2754, 2755, 2755, 0, 2755, 0, 0, 0, 2754, 0, 0, 0, 2755, 2754, 2754, 0, 0, 2755, 2755, 2752, 2754, 0, 2754, 0, 2755, 2753, 2755, 2756, 2756, 0, 2756, 2757, 2757, 0, 2757, 0, 0, 0, 2756, 0, 0, 0, 2757, 2756, 2756, 0, 0, 2757, 2757, 2754, 2756, 0, 2756, 0, 2757, 0, 2757, 2755, 2758, 2758, 0, 2758, 0, 0, 0, 0, 0, 0, 0, 2758, 3052, 3052, 3052, 3052, 2758, 2758, 0, 3052, 0, 2756, 0, 2758, 0, 2758, 0, 2759, 2759, 0, 2759, 0, 0, 0, 0, 3052, 0, 0, 2759, 0, 0, 0, 2757, 2759, 2759, 2760, 2760, 0, 2760, 0, 2759, 0, 2759, 0, 0, 0, 2760, 0, 0, 0, 3052, 2760, 2760, 0, 2761, 2761, 2758, 2761, 2760, 0, 2760, 0, 0, 0, 0, 2761, 0, 0, 3052, 0, 2761, 2761, 2759, 2762, 2762, 0, 2762, 2761, 0, 2761, 0, 0, 0, 3052, 2762, 0, 0, 0, 0, 2762, 2762, 2763, 2763, 0, 2763, 0, 2762, 0, 2762, 0, 0, 0, 2763, 0, 2760, 0, 0, 2763, 2763, 0, 2761, 0, 2764, 2764, 2763, 2764, 2763, 0, 0, 0, 0, 0, 0, 2764, 0, 0, 0, 0, 2764, 2764, 0, 0, 0, 0, 0, 2764, 0, 2764, 2765, 2765, 0, 2765, 2766, 2766, 2762, 2766, 0, 2763, 0, 2765, 0, 0, 0, 2766, 2765, 2765, 0, 0, 2766, 2766, 0, 2765, 0, 2765, 0, 2766, 0, 2766, 2767, 2767, 0, 2767, 2768, 2768, 0, 2768, 0, 0, 2764, 2767, 0, 0, 0, 2768, 2767, 2767, 0, 0, 2768, 2768, 0, 2767, 0, 2767, 0, 2768, 0, 2768, 2766, 2769, 2769, 0, 2769, 2770, 2770, 0, 2770, 0, 0, 2765, 2769, 0, 0, 0, 2770, 2769, 2769, 0, 0, 2770, 2770, 0, 2769, 0, 2769, 2767, 2770, 0, 2770, 2771, 2771, 0, 2771, 0, 0, 0, 2768, 0, 0, 0, 2771, 2808, 2808, 2808, 2808, 2771, 2771, 2772, 2772, 0, 2772, 0, 2771, 0, 2771, 2769, 0, 0, 2772, 0, 0, 0, 0, 2772, 2772, 2808, 2770, 2808, 0, 0, 2772, 0, 2772, 2866, 2866, 2866, 2866, 2867, 2867, 2867, 2867, 0, 0, 0, 2866, 0, 0, 0, 2867, 0, 0, 0, 2771, 0, 0, 2808, 2866, 0, 2866, 0, 2867, 0, 2867, 3267, 3267, 3267, 3267, 2808, 0, 0, 3267, 2808, 2808, 0, 2808, 0, 0, 0, 2772, 2808, 0, 2866, 0, 0, 0, 2867, 3267, 0, 0, 2866, 2872, 2872, 2872, 2872, 0, 0, 0, 0, 0, 0, 0, 2872, 0, 0, 0, 0, 2867, 2868, 2868, 2868, 2868, 3267, 0, 2872, 0, 2872, 0, 2922, 2868, 2868, 2922, 0, 2868, 0, 2875, 2875, 2875, 2875, 2922, 3267, 2868, 2868, 2868, 2922, 2922, 2875, 2875, 0, 2872, 2875, 2922, 0, 2922, 0, 3267, 0, 0, 2875, 2875, 2875, 0, 2905, 2905, 2905, 2905, 2868, 2868, 0, 0, 0, 0, 0, 2905, 2905, 0, 0, 2905, 0, 0, 0, 0, 0, 2875, 2875, 2905, 2905, 0, 0, 2868, 2869, 2869, 2869, 2869, 0, 0, 0, 0, 0, 2922, 0, 2869, 2869, 0, 0, 2869, 2921, 0, 0, 2921, 2905, 2905, 0, 2869, 2869, 2869, 0, 2921, 0, 0, 0, 0, 2921, 2921, 0, 0, 0, 2905, 0, 2921, 0, 2921, 0, 0, 0, 0, 0, 0, 2869, 2869, 0, 2869, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2882, 2921, 0, 0, 0, 2882, 2882, 2882, 2882, 2882, 2882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2926, 0, 0, 2926, 0, 2882, 2882, 2882, 2882, 2882, 2923, 2926, 0, 2923, 0, 0, 2926, 2926, 0, 0, 0, 2923, 0, 2926, 0, 2926, 2923, 2923, 0, 0, 0, 0, 0, 2923, 0, 2923, 2882, 2882, 2882, 2882, 2882, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2924, 2923, 0, 2924, 2886, 2886, 2886, 2886, 2886, 2886, 2926, 2924, 0, 0, 0, 0, 2924, 2924, 0, 0, 0, 2925, 0, 2924, 2925, 2924, 0, 0, 2886, 2886, 2886, 2886, 2925, 0, 0, 0, 0, 2925, 2925, 0, 0, 0, 0, 0, 2925, 0, 2925, 3341, 3341, 3341, 3341, 0, 0, 0, 3341, 0, 2924, 0, 0, 2886, 2886, 2886, 2886, 2886, 2893, 2893, 2893, 2893, 0, 0, 3341, 0, 2925, 0, 0, 2893, 2893, 0, 0, 2893, 2928, 0, 0, 2928, 0, 0, 0, 2893, 2893, 2893, 0, 2928, 0, 0, 0, 3341, 2928, 2928, 0, 0, 0, 0, 0, 2928, 0, 2928, 2929, 0, 0, 2929, 0, 0, 2893, 2893, 0, 0, 0, 2929, 0, 0, 2893, 0, 2929, 2929, 2893, 0, 0, 0, 3341, 2929, 0, 2929, 0, 2893, 0, 0, 0, 2893, 2904, 2904, 2904, 2904, 0, 2930, 0, 2928, 2930, 0, 0, 2904, 2904, 0, 0, 2904, 2930, 0, 0, 0, 0, 2930, 2930, 2904, 2904, 2904, 0, 0, 2930, 2932, 2930, 2929, 2932, 0, 0, 0, 0, 0, 0, 2935, 2932, 0, 2935, 0, 0, 2932, 2932, 0, 2904, 2904, 2935, 0, 2932, 0, 2932, 2935, 2935, 0, 0, 2930, 0, 0, 2935, 0, 2935, 2904, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2931, 2933, 0, 0, 2933, 2931, 2931, 2931, 2931, 2931, 2931, 2934, 2933, 2932, 2934, 0, 0, 2933, 2933, 0, 0, 0, 2934, 2935, 2933, 0, 2933, 2934, 2934, 2931, 2931, 2931, 2931, 0, 2934, 0, 2934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2981, 2981, 2981, 2981, 0, 2936, 0, 2933, 2936, 0, 2931, 2931, 2931, 2931, 2931, 2937, 2936, 2934, 2937, 0, 0, 2936, 2936, 2981, 0, 2981, 2937, 0, 2936, 0, 2936, 2937, 2937, 2938, 0, 0, 2938, 0, 2937, 0, 2937, 0, 0, 2939, 2938, 0, 2939, 0, 2981, 2938, 2938, 0, 0, 0, 2939, 2981, 2938, 0, 2938, 2939, 2939, 0, 2940, 0, 0, 2940, 2939, 0, 2939, 2937, 0, 0, 2936, 2940, 0, 0, 0, 2941, 2940, 2940, 2941, 2982, 2982, 2982, 2982, 2940, 0, 2940, 2941, 0, 0, 0, 2942, 2941, 2941, 2942, 0, 0, 2938, 2939, 2941, 0, 2941, 2942, 2982, 0, 2982, 2943, 2942, 2942, 2943, 0, 0, 0, 0, 2942, 0, 2942, 2943, 0, 0, 0, 0, 2943, 2943, 2944, 2944, 2940, 2944, 2982, 2943, 0, 2943, 2941, 0, 0, 2944, 2982, 0, 0, 0, 2944, 2944, 2945, 2945, 0, 2945, 2942, 2944, 0, 2944, 0, 0, 0, 2945, 0, 0, 0, 0, 2945, 2945, 2946, 2946, 2943, 2946, 0, 2945, 0, 2945, 0, 0, 0, 2946, 0, 0, 0, 0, 2946, 2946, 2947, 2947, 2944, 2947, 0, 2946, 0, 2946, 0, 0, 0, 2947, 0, 0, 0, 0, 2947, 2947, 0, 0, 0, 0, 0, 2947, 0, 2947, 2948, 2948, 0, 2948, 2949, 2949, 0, 2949, 0, 2945, 0, 2948, 2946, 0, 0, 2949, 2948, 2948, 0, 0, 2949, 2949, 0, 2948, 0, 2948, 0, 2949, 0, 2949, 2950, 2950, 0, 2950, 0, 0, 0, 0, 0, 0, 0, 2950, 0, 0, 0, 2947, 2950, 2950, 0, 0, 0, 0, 0, 2950, 0, 2950, 0, 2952, 2952, 0, 2952, 0, 0, 0, 0, 2948, 0, 2949, 2952, 0, 0, 0, 0, 2952, 2952, 0, 0, 0, 0, 0, 2952, 0, 2952, 0, 2950, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2953, 2953, 0, 2953, 2951, 2951, 2951, 2951, 2951, 2951, 0, 2953, 0, 0, 0, 0, 2953, 2953, 0, 0, 0, 2952, 0, 2953, 0, 2953, 0, 0, 2951, 2951, 2951, 2951, 2954, 2954, 0, 2954, 0, 0, 0, 0, 0, 0, 0, 2954, 0, 0, 0, 0, 2954, 2954, 0, 0, 0, 0, 0, 2954, 2953, 2954, 0, 2951, 2951, 2951, 2951, 2951, 2955, 2955, 0, 2955, 0, 0, 0, 0, 0, 0, 0, 2955, 0, 0, 0, 0, 2955, 2955, 2956, 2956, 0, 2956, 0, 2955, 2954, 2955, 0, 0, 0, 2956, 0, 0, 0, 0, 2956, 2956, 2957, 2957, 0, 2957, 0, 2956, 0, 2956, 0, 0, 0, 2957, 0, 0, 0, 0, 2957, 2957, 2958, 2958, 0, 2958, 0, 2957, 0, 2957, 0, 0, 0, 2958, 0, 0, 0, 2955, 2958, 2958, 0, 2959, 2959, 0, 2959, 2958, 0, 2958, 0, 0, 0, 2956, 2959, 0, 0, 0, 0, 2959, 2959, 0, 2957, 0, 0, 0, 2959, 0, 2959, 2960, 2960, 0, 2960, 3393, 3393, 3393, 3393, 0, 0, 0, 2960, 0, 0, 0, 3393, 2960, 2960, 2961, 2961, 2958, 2961, 0, 2960, 0, 2960, 0, 3393, 0, 2961, 2959, 0, 0, 0, 2961, 2961, 3024, 3024, 3024, 3024, 0, 2961, 0, 2961, 0, 0, 0, 0, 3024, 0, 0, 3024, 3393, 0, 0, 2960, 0, 0, 0, 3024, 3024, 0, 0, 0, 3036, 3036, 3036, 3036, 3037, 3037, 3037, 3037, 0, 0, 2961, 3036, 0, 0, 0, 3037, 0, 0, 0, 0, 3024, 3024, 0, 3036, 0, 3036, 0, 3037, 0, 3037, 3042, 3042, 3042, 3042, 0, 3046, 3046, 3046, 3046, 0, 0, 3042, 0, 0, 0, 0, 3046, 3046, 3036, 0, 3046, 0, 3037, 3042, 0, 3042, 3037, 0, 3046, 3046, 3046, 0, 0, 0, 3047, 3047, 3047, 3047, 0, 3036, 3038, 3038, 3038, 3038, 0, 3047, 3047, 0, 3042, 3047, 0, 3038, 3038, 3046, 3046, 3038, 3089, 3047, 3047, 3089, 0, 0, 0, 3038, 3038, 3038, 0, 3089, 0, 0, 0, 0, 3089, 3089, 0, 3057, 3057, 3057, 3057, 3089, 0, 3089, 3047, 3047, 0, 0, 3057, 3057, 3038, 3038, 3057, 0, 0, 0, 0, 0, 0, 0, 3057, 3057, 3057, 0, 3059, 3059, 3059, 3059, 3038, 3039, 3039, 3039, 3039, 0, 3089, 3059, 3059, 0, 0, 3059, 3039, 3039, 0, 0, 3039, 3057, 3057, 3059, 3059, 3059, 0, 0, 3039, 3039, 3039, 0, 0, 0, 0, 0, 3039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3059, 3059, 0, 0, 0, 3039, 3039, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3060, 3060, 3060, 3060, 3058, 3058, 3058, 3058, 3058, 3058, 3087, 3060, 3060, 3087, 0, 3060, 0, 0, 0, 0, 0, 3087, 0, 3060, 3060, 0, 3087, 3087, 3058, 3058, 3058, 3058, 0, 3087, 0, 3087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3060, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3058, 3058, 3058, 3058, 3058, 3061, 3061, 3061, 3061, 0, 0, 0, 0, 0, 0, 3088, 3061, 3061, 3088, 0, 3061, 3087, 0, 0, 0, 0, 3088, 0, 3061, 3061, 3061, 3088, 3088, 3098, 0, 0, 3098, 0, 3088, 0, 3088, 0, 0, 0, 3098, 3388, 3388, 3388, 3388, 3098, 3098, 0, 3388, 3061, 3061, 0, 3098, 0, 3098, 3061, 3063, 3063, 3063, 3063, 0, 0, 0, 0, 3388, 3088, 0, 3063, 3063, 0, 0, 3063, 0, 0, 0, 0, 0, 0, 0, 3063, 3063, 3063, 0, 3099, 3098, 0, 3099, 0, 0, 3388, 0, 0, 0, 0, 3099, 0, 0, 0, 3100, 3099, 3099, 3100, 0, 0, 3063, 3063, 3099, 3388, 3099, 3100, 0, 0, 3063, 0, 3100, 3100, 3063, 0, 0, 0, 0, 3100, 3388, 3100, 0, 3063, 0, 0, 0, 3063, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3100, 0, 3099, 0, 3073, 3073, 3073, 3073, 3073, 3073, 3101, 0, 0, 3101, 0, 0, 0, 0, 0, 0, 0, 3101, 0, 0, 0, 0, 3101, 3101, 3073, 3073, 3073, 3073, 3073, 3101, 0, 3101, 0, 0, 0, 0, 0, 3102, 0, 0, 3102, 0, 0, 0, 0, 0, 0, 0, 3102, 0, 0, 0, 0, 3102, 3102, 3073, 3073, 3073, 3073, 3073, 3102, 0, 3102, 0, 3103, 3103, 3101, 3103, 3104, 3104, 0, 3104, 0, 0, 0, 3103, 0, 0, 0, 3104, 3103, 3103, 0, 0, 3104, 3104, 0, 3103, 0, 3103, 0, 3104, 0, 3104, 3109, 3109, 0, 3109, 3110, 3110, 0, 3110, 0, 0, 0, 3109, 0, 0, 3102, 3110, 3109, 3109, 0, 0, 3110, 3110, 0, 3109, 0, 3109, 3103, 3110, 0, 3110, 3111, 3111, 0, 3111, 3417, 3417, 3417, 3417, 0, 0, 0, 3111, 0, 0, 0, 3417, 3111, 3111, 0, 3112, 3112, 0, 3112, 3111, 0, 3111, 0, 3417, 0, 3110, 3112, 3148, 3148, 3148, 3148, 3112, 3112, 0, 3150, 3150, 3150, 3150, 3112, 3148, 3112, 0, 3148, 0, 0, 0, 3150, 0, 3417, 3150, 3148, 3148, 0, 0, 0, 0, 3111, 3150, 3150, 0, 0, 0, 3162, 3162, 3162, 3162, 0, 3163, 3163, 3163, 3163, 0, 0, 3162, 0, 3148, 3148, 3203, 3163, 0, 3203, 0, 3150, 3150, 0, 3162, 3112, 3162, 3203, 0, 3163, 0, 3163, 3203, 3203, 0, 3169, 3169, 3169, 3169, 3203, 3202, 3203, 0, 3202, 0, 0, 3169, 3169, 0, 3162, 3169, 3202, 0, 3162, 3163, 0, 3202, 3202, 3169, 3169, 3169, 0, 0, 3202, 0, 3202, 0, 0, 3203, 0, 0, 0, 0, 0, 0, 0, 0, 3163, 3164, 3164, 3164, 3164, 0, 3169, 3169, 3175, 3175, 3175, 3175, 3164, 3164, 0, 0, 3164, 0, 0, 3175, 3175, 0, 0, 3175, 3164, 3164, 3164, 0, 0, 0, 0, 3175, 3175, 3175, 3202, 0, 3177, 3177, 3177, 3177, 0, 0, 0, 3195, 3195, 3195, 3195, 3177, 3177, 3164, 3164, 3177, 0, 0, 3195, 3195, 3175, 3175, 3195, 3177, 3177, 3177, 0, 0, 0, 0, 3195, 3195, 3195, 0, 3164, 3165, 3165, 3165, 3165, 0, 0, 0, 0, 0, 0, 0, 3165, 3165, 3177, 3177, 3165, 0, 0, 0, 3293, 3195, 3195, 3293, 3165, 3165, 3165, 0, 0, 0, 0, 3293, 0, 0, 0, 0, 3293, 3293, 0, 0, 3165, 0, 0, 3293, 0, 3293, 0, 0, 0, 3165, 3165, 3182, 3182, 0, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 0, 0, 0, 0, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3183, 3184, 3184, 0, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3184, 3204, 0, 0, 3204, 3184, 3184, 3184, 3184, 3184, 3184, 3205, 3204, 0, 3205, 0, 0, 3204, 3204, 0, 0, 3184, 3205, 0, 3204, 0, 3204, 3205, 3205, 3184, 3184, 3184, 3184, 0, 3205, 0, 3205, 0, 0, 0, 0, 0, 3206, 0, 0, 3206, 0, 0, 0, 0, 0, 0, 0, 3206, 0, 0, 0, 3204, 3206, 3206, 3184, 3184, 3184, 3184, 3184, 3206, 0, 3206, 3207, 3207, 0, 3207, 3240, 3240, 3240, 3240, 0, 0, 0, 3207, 0, 3205, 0, 3240, 3207, 3207, 0, 3241, 3241, 3241, 3241, 3207, 0, 3207, 0, 3240, 0, 3240, 3241, 0, 0, 0, 3252, 3252, 3252, 3252, 0, 0, 0, 0, 3241, 0, 3241, 3252, 3252, 0, 0, 3252, 0, 3206, 3240, 0, 0, 0, 0, 3252, 3252, 3252, 0, 0, 0, 0, 0, 0, 0, 3241, 0, 3285, 3285, 3285, 3285, 0, 0, 3240, 0, 3207, 0, 0, 3285, 3285, 3252, 3252, 3285, 3241, 3249, 3249, 3249, 3249, 0, 0, 3285, 3285, 3285, 0, 3297, 3249, 3249, 3297, 0, 3249, 0, 0, 0, 0, 0, 3297, 0, 3249, 3249, 3249, 3297, 3297, 0, 0, 0, 3285, 3285, 3297, 0, 3297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3249, 3249, 0, 0, 0, 0, 3249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3297, 0, 0, 0, 3249, 3257, 3257, 0, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 0, 0, 0, 0, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3261, 3261, 0, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262, 0, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3298, 3298, 0, 3298, 3262, 3262, 3262, 3262, 3262, 3262, 0, 3298, 0, 0, 0, 0, 3298, 3298, 0, 0, 0, 0, 0, 3298, 0, 3298, 0, 0, 3262, 3262, 3262, 3262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3298, 0, 0, 3262, 3262, 3262, 3262, 3262, 3264, 3264, 0, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 0, 0, 0, 0, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 0, 0, 0, 0, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3294, 0, 0, 3294, 3295, 0, 0, 3295, 0, 0, 0, 3294, 0, 0, 0, 3295, 3294, 3294, 0, 3296, 3295, 3295, 3296, 3294, 0, 3294, 0, 3295, 0, 3295, 3296, 0, 0, 0, 0, 3296, 3296, 3323, 3323, 3323, 3323, 0, 3296, 0, 3296, 0, 0, 0, 3323, 0, 0, 0, 0, 3324, 3324, 3324, 3324, 0, 0, 0, 3323, 0, 3323, 0, 3324, 0, 0, 0, 0, 0, 3294, 3332, 3332, 3332, 3332, 3295, 3324, 0, 3324, 0, 0, 0, 3332, 3332, 0, 3323, 3332, 0, 3358, 0, 3296, 3358, 0, 0, 3332, 3332, 3332, 0, 0, 3358, 0, 3324, 0, 3323, 3358, 3358, 0, 0, 0, 0, 0, 3358, 0, 3358, 0, 0, 0, 0, 0, 3332, 3332, 0, 3324, 3329, 3329, 0, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 0, 0, 0, 0, 3329, 3329, 3329, 3329, 3329, 3329, 0, 0, 0, 0, 0, 0, 3358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3329, 3329, 3329, 3329, 0, 3359, 0, 0, 3359, 0, 0, 0, 0, 0, 0, 0, 3359, 0, 0, 0, 0, 3359, 3359, 0, 0, 0, 0, 0, 3359, 0, 3359, 3329, 3329, 3329, 3329, 3329, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3359, 0, 0, 0, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 0, 0, 0, 0, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 0, 0, 0, 0, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3342, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 0, 0, 0, 0, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3360, 0, 0, 3360, 3361, 3361, 0, 3361, 0, 0, 0, 3360, 0, 0, 0, 3361, 3360, 3360, 0, 0, 3361, 3361, 0, 3360, 0, 3360, 0, 3361, 0, 3361, 0, 3378, 3378, 3378, 3378, 3405, 0, 0, 3405, 0, 0, 0, 3378, 0, 0, 0, 3405, 0, 0, 0, 0, 3405, 3405, 0, 3378, 3360, 3378, 0, 3405, 3361, 3405, 0, 0, 0, 0, 3459, 0, 0, 3459, 3435, 0, 0, 3435, 0, 0, 0, 3459, 0, 0, 3378, 3435, 3459, 3459, 0, 0, 3435, 3435, 0, 3459, 3405, 3459, 0, 3435, 0, 3435, 0, 0, 0, 0, 0, 3378, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3435, 0, 0, 0, 3379, 3379, 3379, 3379, 3379, 3379, 0, 0, 0, 0, 3459, 0, 3470, 0, 0, 3470, 0, 0, 0, 0, 0, 0, 0, 3470, 3379, 3379, 3379, 3379, 3470, 3470, 0, 0, 0, 0, 0, 3470, 0, 3470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3379, 3379, 3379, 3379, 3379, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 0, 0, 0, 3470, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3386, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3394, 3394, 0, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3490, 3490, 3490, 3490, 3416, 3416, 3416, 3416, 3416, 3416, 0, 3490, 3490, 0, 0, 3490, 0, 0, 0, 0, 0, 0, 0, 3490, 3490, 3490, 0, 0, 3416, 3416, 3416, 3416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3490, 3490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3416, 3416, 3416, 3416, 3416, 3419, 3419, 0, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3423, 3423, 0, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 0, 0, 0, 0, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3424, 3424, 0, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 0, 0, 0, 0, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3451, 3451, 0, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3502, 3502, 0, 0, 3502, 0, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 0, 3502, 3502, 3502, 3502, 3502, 3502, 3503, 3503, 0, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3504, 3504, 0, 0, 3504, 3504, 3504, 0, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 0, 3504, 3504, 3504, 3504, 3504, 3504, 3505, 3505, 0, 3505, 3505, 0, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3506, 0, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 0, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 0, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508, 3508, 0, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 0, 3508, 3508, 3508, 0, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509, 0, 0, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, 0, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 0, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3510, 3512, 3512, 0, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513, 0, 0, 0, 3513, 3513, 0, 3513, 0, 0, 0, 3513, 3513, 3513, 3513, 0, 3513, 3513, 0, 3513, 3513, 3513, 0, 0, 0, 3513, 3514, 3514, 3514, 3514, 0, 3514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3514, 0, 0, 0, 3514, 3514, 0, 3514, 0, 3514, 0, 0, 3514, 3514, 3515, 3515, 3515, 3515, 0, 3515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3515, 3515, 0, 0, 0, 3515, 0, 0, 0, 3515, 3517, 0, 0, 3517, 0, 0, 0, 3517, 0, 0, 0, 3517, 3517, 0, 3517, 3517, 0, 3517, 0, 3517, 3517, 0, 0, 0, 3517, 0, 0, 0, 3517, 3519, 3519, 3519, 3519, 0, 0, 0, 3519, 0, 0, 0, 0, 0, 0, 3519, 3519, 0, 3519, 0, 3519, 3519, 0, 3519, 0, 3519, 0, 0, 0, 3519, 3520, 3520, 3520, 3520, 0, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3520, 3520, 0, 0, 0, 3520, 0, 0, 0, 3520, 3522, 3522, 0, 3522, 0, 0, 0, 3522, 0, 0, 0, 3522, 3522, 0, 3522, 3522, 0, 3522, 0, 3522, 3522, 0, 0, 0, 3522, 0, 0, 0, 3522, 3524, 0, 0, 0, 0, 3524, 3524, 0, 0, 0, 3524, 0, 0, 0, 3524, 3526, 0, 0, 3526, 0, 0, 0, 3526, 0, 0, 0, 0, 0, 0, 3526, 3526, 0, 0, 0, 3526, 3526, 0, 3526, 0, 3526, 0, 0, 0, 3526, 3528, 0, 3528, 0, 0, 0, 0, 3528, 3528, 0, 0, 0, 3528, 0, 0, 0, 3528, 3530, 0, 0, 0, 0, 3530, 3530, 0, 0, 0, 3530, 0, 0, 0, 3530, 3532, 3532, 0, 0, 0, 3532, 3532, 0, 3532, 0, 3532, 0, 0, 0, 3532, 3533, 3533, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3533, 3533, 0, 0, 0, 3533, 0, 0, 0, 3533, 3534, 3534, 0, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3536, 3536, 3536, 3536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3536, 3536, 0, 3536, 0, 3536, 3536, 0, 3536, 0, 3536, 0, 0, 0, 3536, 3537, 3537, 3537, 3537, 0, 3537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3537, 3537, 0, 0, 0, 3537, 0, 0, 3537, 3537, 3538, 3538, 3538, 3538, 0, 3538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3538, 3538, 0, 0, 0, 3538, 0, 0, 0, 3538, 3540, 0, 0, 0, 0, 3540, 3540, 0, 0, 0, 3540, 0, 0, 0, 3540, 3542, 0, 0, 0, 0, 3542, 3542, 0, 0, 0, 3542, 0, 0, 0, 3542, 3544, 0, 0, 3544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3544, 3544, 0, 0, 0, 3544, 3544, 0, 0, 0, 3544, 0, 0, 0, 3544, 3546, 0, 0, 0, 0, 3546, 3546, 0, 0, 0, 3546, 0, 0, 0, 3546, 3548, 3548, 0, 3548, 0, 3548, 3548, 0, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3548, 3549, 0, 0, 0, 0, 3549, 3549, 0, 0, 0, 3549, 0, 0, 0, 3549, 3551, 3551, 3551, 3551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3551, 3551, 0, 0, 0, 3551, 3551, 0, 0, 3551, 3551, 0, 0, 0, 3551, 3552, 3552, 0, 3552, 3552, 0, 0, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 0, 3552, 3552, 3552, 3552, 3552, 3552, 3554, 3554, 0, 3554, 3554, 0, 0, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 0, 3554, 3554, 3554, 3554, 3554, 3554, 3555, 3555, 0, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3557, 0, 0, 0, 0, 3557, 3557, 0, 0, 0, 3557, 0, 0, 0, 3557, 3559, 3559, 0, 0, 0, 3559, 3559, 0, 0, 0, 3559, 0, 0, 0, 3559, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 0, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3561, 0, 3561, 3561, 0, 3561, 3561, 3561, 0, 0, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 0, 3561, 3561, 3561, 3561, 3561, 3561, 3562, 3562, 0, 0, 3562, 0, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 0, 3562, 3562, 3562, 3562, 3562, 3562, 3563, 3563, 0, 0, 3563, 3563, 3563, 0, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 0, 3563, 3563, 3563, 3563, 3563, 3563, 3564, 3564, 0, 3564, 3564, 0, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3565, 3565, 0, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 0, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 0, 3565, 3565, 3565, 3565, 3565, 3565, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3567, 3567, 0, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 0, 3567, 3567, 3567, 0, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3568, 3568, 0, 0, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3569, 3569, 0, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 0, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3570, 3570, 3570, 3570, 0, 0, 0, 3570, 3570, 0, 3570, 0, 0, 0, 3570, 3570, 3570, 3570, 0, 3570, 3570, 0, 3570, 3570, 3570, 0, 0, 0, 3570, 3571, 3571, 0, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3572, 0, 0, 3572, 0, 3572, 0, 0, 3572, 3572, 0, 0, 0, 0, 0, 3572, 0, 0, 0, 3572, 3572, 0, 3572, 0, 3572, 0, 0, 3572, 3572, 3574, 3574, 3574, 3574, 0, 3574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3574, 0, 0, 0, 3574, 3574, 0, 3574, 0, 3574, 0, 0, 3574, 3574, 3575, 3575, 0, 3575, 3575, 0, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 0, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 0, 3575, 3575, 3575, 3576, 3576, 3576, 3576, 0, 3576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3576, 0, 0, 0, 3576, 3576, 0, 3576, 0, 3576, 0, 0, 3576, 3576, 3577, 0, 3577, 3577, 0, 3577, 3577, 3577, 3577, 0, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 0, 3577, 3577, 3577, 3577, 3577, 3577, 3578, 3578, 3578, 3578, 0, 0, 0, 3578, 3578, 0, 3578, 0, 0, 0, 3578, 3578, 3578, 3578, 0, 3578, 3578, 0, 3578, 3578, 3578, 0, 0, 0, 3578, 3579, 3579, 3579, 3579, 0, 3579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3579, 0, 0, 0, 3579, 3579, 0, 3579, 0, 3579, 0, 0, 3579, 3579, 3580, 3580, 3580, 3580, 0, 3580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3580, 3580, 0, 0, 0, 3580, 0, 0, 0, 3580, 3581, 3581, 3581, 3581, 0, 0, 0, 3581, 3581, 0, 3581, 0, 0, 0, 3581, 0, 3581, 3581, 0, 3581, 3581, 0, 0, 3581, 3581, 0, 0, 0, 3581, 3582, 0, 0, 3582, 0, 0, 0, 3582, 0, 0, 0, 3582, 3582, 0, 3582, 3582, 0, 3582, 0, 3582, 3582, 0, 0, 0, 3582, 0, 0, 0, 3582, 3583, 0, 0, 3583, 0, 3583, 0, 0, 3583, 3583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3583, 3583, 0, 0, 0, 3583, 0, 0, 0, 3583, 3584, 3584, 0, 3584, 3584, 3584, 3584, 3584, 0, 0, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 0, 3584, 3584, 3584, 0, 3584, 0, 3584, 0, 0, 3584, 3584, 3585, 3585, 3585, 3585, 0, 0, 0, 3585, 0, 0, 0, 0, 0, 0, 3585, 3585, 0, 3585, 0, 3585, 3585, 0, 3585, 0, 3585, 0, 0, 0, 3585, 3586, 3586, 3586, 3586, 0, 3586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3586, 0, 0, 0, 3586, 3586, 0, 3586, 0, 3586, 0, 0, 3586, 3586, 3587, 3587, 0, 3587, 3587, 0, 3587, 3587, 0, 0, 3587, 3587, 3587, 3587, 0, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 0, 0, 3587, 3587, 3588, 3588, 3588, 3588, 0, 3588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3588, 0, 0, 0, 3588, 3588, 0, 3588, 0, 3588, 0, 0, 3588, 3588, 3589, 3589, 3589, 3589, 0, 3589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3589, 3589, 0, 0, 0, 3589, 0, 0, 0, 3589, 3590, 3590, 3590, 3590, 0, 0, 0, 3590, 0, 0, 0, 0, 0, 0, 3590, 0, 0, 0, 0, 3590, 3590, 0, 0, 0, 3590, 0, 0, 0, 3590, 3591, 3591, 0, 3591, 0, 0, 0, 3591, 0, 0, 0, 3591, 3591, 0, 3591, 3591, 0, 3591, 0, 3591, 3591, 0, 0, 0, 3591, 0, 0, 0, 3591, 3592, 0, 0, 0, 0, 3592, 3592, 0, 0, 0, 3592, 0, 0, 0, 3592, 3593, 0, 0, 3593, 0, 0, 0, 3593, 0, 0, 0, 0, 0, 0, 3593, 3593, 0, 0, 0, 3593, 3593, 0, 3593, 0, 3593, 0, 0, 0, 3593, 3594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3594, 3594, 0, 0, 0, 3594, 0, 0, 0, 3594, 3595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3595, 3595, 0, 0, 0, 3595, 0, 0, 0, 3595, 3596, 0, 3596, 0, 0, 0, 0, 3596, 3596, 0, 0, 0, 3596, 0, 0, 0, 3596, 3597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3597, 3597, 0, 0, 0, 3597, 0, 0, 0, 3597, 3598, 0, 0, 0, 0, 3598, 3598, 0, 0, 0, 3598, 0, 0, 0, 3598, 3599, 3599, 0, 0, 0, 3599, 3599, 0, 3599, 0, 3599, 0, 0, 0, 3599, 3600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 3600, 0, 0, 0, 3600, 0, 0, 0, 3600, 3601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3601, 3601, 0, 0, 0, 3601, 0, 0, 0, 3601, 3602, 0, 0, 0, 0, 3602, 3602, 0, 0, 0, 3602, 0, 0, 0, 3602, 3603, 3603, 0, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3604, 3604, 3604, 3604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3604, 3604, 0, 3604, 0, 3604, 3604, 0, 3604, 0, 3604, 0, 0, 0, 3604, 3605, 3605, 3605, 3605, 0, 3605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3605, 3605, 0, 0, 0, 3605, 0, 0, 3605, 3605, 3606, 3606, 0, 3606, 3606, 0, 3606, 3606, 3606, 3606, 3606, 3606, 0, 0, 0, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 0, 3606, 3606, 3606, 3607, 3607, 3607, 3607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3607, 3607, 0, 3607, 0, 3607, 3607, 0, 3607, 0, 3607, 0, 0, 0, 3607, 3608, 3608, 3608, 3608, 0, 3608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3608, 3608, 0, 0, 0, 3608, 0, 0, 0, 3608, 3609, 0, 0, 3609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3609, 0, 0, 3609, 0, 3609, 3609, 0, 0, 0, 3609, 0, 0, 0, 3609, 3610, 0, 0, 0, 0, 3610, 3610, 0, 0, 0, 3610, 0, 0, 0, 3610, 3611, 0, 0, 0, 0, 3611, 3611, 0, 0, 0, 3611, 0, 0, 0, 3611, 3612, 0, 0, 3612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3612, 3612, 0, 0, 0, 3612, 3612, 0, 0, 0, 3612, 0, 0, 0, 3612, 3613, 0, 0, 0, 0, 3613, 3613, 0, 0, 0, 3613, 0, 0, 0, 3613, 3614, 0, 0, 0, 0, 3614, 3614, 0, 0, 0, 3614, 0, 0, 0, 3614, 3615, 3615, 0, 3615, 0, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 0, 3615, 3615, 3615, 3615, 3615, 3615, 3616, 3616, 0, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3616, 3617, 3617, 3617, 3617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3617, 3617, 0, 0, 0, 3617, 3617, 0, 0, 3617, 3617, 0, 0, 0, 3617, 3618, 3618, 0, 3618, 3618, 0, 0, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 3618, 0, 3618, 3618, 3618, 3618, 3618, 3618, 3619, 0, 0, 0, 0, 3619, 3619, 0, 0, 0, 3619, 0, 0, 0, 3619, 3620, 3620, 0, 3620, 3620, 0, 0, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 0, 3620, 3620, 3620, 3620, 3620, 3620, 3621, 0, 0, 0, 0, 3621, 3621, 0, 0, 0, 3621, 0, 0, 0, 3621, 3622, 3622, 0, 0, 0, 3622, 3622, 0, 0, 0, 3622, 0, 0, 0, 3622, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 0, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3623, 3624, 0, 3624, 3624, 0, 3624, 3624, 3624, 0, 0, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 3624, 0, 3624, 3624, 3624, 3624, 3624, 3624, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 0, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 0, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3630, 3630, 0, 0, 3630, 0, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 0, 3630, 3630, 3630, 3630, 3630, 3630, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3633, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3635, 3635, 0, 0, 3635, 3635, 3635, 0, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 0, 3635, 3635, 3635, 3635, 3635, 3635, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3638, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3639, 3640, 3640, 0, 3640, 3640, 0, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3646, 3646, 0, 0, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3647, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3648, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3651, 3651, 0, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 0, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3653, 3653, 3653, 3653, 0, 0, 0, 3653, 3653, 0, 3653, 0, 0, 0, 3653, 3653, 3653, 3653, 0, 3653, 3653, 0, 3653, 3653, 3653, 0, 0, 0, 3653, 3654, 0, 0, 3654, 0, 3654, 0, 0, 3654, 3654, 0, 0, 0, 0, 0, 3654, 0, 0, 0, 3654, 3654, 0, 3654, 0, 3654, 0, 0, 3654, 3654, 3655, 3655, 3655, 3655, 0, 3655, 0, 0, 3655, 0, 0, 0, 0, 0, 3655, 3655, 0, 0, 0, 3655, 3655, 0, 3655, 0, 3655, 0, 0, 3655, 3655, 3656, 3656, 3656, 3656, 0, 3656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3656, 3656, 0, 0, 0, 3656, 0, 0, 0, 3656, 3658, 3658, 0, 3658, 3658, 0, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 0, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 0, 3658, 3658, 3658, 3659, 3659, 0, 3659, 3659, 0, 3659, 3659, 3659, 3659, 3659, 3659, 0, 0, 0, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 0, 3659, 3659, 3659, 3660, 3660, 0, 3660, 3660, 0, 3660, 3660, 0, 0, 3660, 3660, 3660, 3660, 0, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 0, 0, 3660, 3660, 3661, 3661, 3661, 3661, 0, 3661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3661, 0, 0, 0, 3661, 3661, 0, 3661, 0, 3661, 0, 0, 3661, 3661, 3662, 0, 3662, 3662, 0, 3662, 3662, 3662, 3662, 0, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 0, 3662, 3662, 3662, 3662, 3662, 3662, 3663, 3663, 3663, 3663, 0, 0, 0, 3663, 3663, 0, 3663, 0, 0, 0, 3663, 3663, 3663, 3663, 0, 3663, 3663, 0, 3663, 3663, 3663, 0, 0, 0, 3663, 3664, 3664, 0, 3664, 3664, 0, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 0, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 0, 3664, 3664, 3664, 3665, 3665, 3665, 3665, 0, 3665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3665, 0, 0, 0, 3665, 3665, 0, 3665, 0, 3665, 0, 0, 3665, 3665, 3666, 3666, 3666, 3666, 0, 3666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3666, 0, 0, 0, 3666, 3666, 0, 3666, 0, 3666, 0, 0, 3666, 3666, 3667, 3667, 3667, 3667, 0, 0, 0, 3667, 0, 0, 0, 0, 0, 0, 3667, 3667, 0, 3667, 0, 3667, 3667, 0, 3667, 0, 3667, 0, 0, 0, 3667, 3668, 3668, 3668, 3668, 0, 3668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3668, 3668, 0, 0, 0, 3668, 0, 0, 0, 3668, 3669, 3669, 3669, 3669, 0, 0, 0, 3669, 3669, 0, 3669, 0, 0, 0, 3669, 0, 3669, 3669, 0, 3669, 3669, 0, 0, 3669, 3669, 0, 0, 0, 3669, 3670, 0, 0, 3670, 0, 0, 0, 3670, 0, 0, 0, 3670, 3670, 0, 3670, 3670, 0, 3670, 0, 3670, 3670, 0, 0, 0, 3670, 0, 0, 0, 3670, 3671, 0, 0, 3671, 0, 3671, 0, 0, 3671, 3671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3671, 3671, 0, 0, 0, 3671, 0, 0, 0, 3671, 3672, 0, 0, 3672, 0, 3672, 0, 0, 3672, 0, 0, 0, 0, 0, 3672, 0, 0, 0, 0, 3672, 3672, 0, 0, 0, 3672, 0, 0, 0, 3672, 3673, 0, 0, 3673, 0, 3673, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3673, 3673, 0, 0, 0, 3673, 0, 0, 0, 3673, 3674, 3674, 0, 3674, 3674, 3674, 3674, 3674, 0, 0, 3674, 3674, 3674, 3674, 3674, 3674, 3674, 3674, 0, 3674, 3674, 3674, 0, 3674, 0, 3674, 0, 0, 3674, 3674, 3675, 3675, 0, 3675, 3675, 0, 3675, 3675, 0, 0, 3675, 3675, 3675, 3675, 0, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 0, 0, 3675, 3675, 3676, 3676, 3676, 3676, 0, 3676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3676, 0, 0, 0, 3676, 3676, 0, 3676, 0, 3676, 0, 0, 3676, 3676, 3677, 3677, 3677, 3677, 0, 3677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3677, 0, 0, 0, 3677, 3677, 0, 3677, 0, 3677, 0, 0, 3677, 3677, 3678, 3678, 3678, 3678, 0, 0, 0, 3678, 0, 0, 0, 0, 0, 0, 3678, 3678, 0, 3678, 0, 3678, 3678, 0, 3678, 0, 3678, 0, 0, 0, 3678, 3679, 3679, 3679, 3679, 0, 3679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3679, 3679, 0, 0, 0, 3679, 0, 0, 0, 3679, 3680, 3680, 3680, 3680, 0, 0, 0, 3680, 0, 0, 0, 0, 0, 0, 3680, 0, 0, 0, 0, 3680, 3680, 0, 0, 0, 3680, 0, 0, 0, 3680, 3681, 3681, 0, 3681, 0, 0, 0, 3681, 0, 0, 0, 3681, 3681, 0, 3681, 3681, 0, 3681, 0, 3681, 3681, 0, 0, 0, 3681, 0, 0, 0, 3681, 3683, 0, 0, 0, 0, 0, 3683, 0, 0, 0, 0, 3683, 3683, 0, 0, 0, 3683, 0, 0, 0, 3683, 3684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3684, 3684, 0, 0, 0, 3684, 0, 0, 0, 3684, 3686, 0, 0, 0, 0, 3686, 3686, 0, 3686, 0, 3686, 0, 0, 0, 3686, 3687, 0, 0, 3687, 0, 0, 0, 3687, 0, 0, 0, 0, 0, 0, 3687, 3687, 0, 0, 0, 3687, 3687, 0, 3687, 0, 3687, 0, 0, 0, 3687, 3689, 0, 3689, 0, 0, 0, 0, 3689, 3689, 0, 0, 0, 3689, 0, 0, 0, 3689, 3690, 0, 0, 0, 0, 3690, 3690, 0, 0, 0, 3690, 0, 0, 0, 3690, 3691, 3691, 0, 0, 0, 3691, 3691, 0, 3691, 0, 3691, 0, 0, 0, 3691, 3692, 0, 0, 0, 0, 3692, 3692, 0, 0, 0, 3692, 0, 0, 0, 3692, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3694, 3694, 0, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3697, 3698, 3698, 3698, 3698, 0, 3698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3698, 3698, 0, 0, 0, 3698, 0, 0, 3698, 3698, 3699, 3699, 3699, 3699, 0, 3699, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3699, 3699, 0, 0, 0, 3699, 0, 0, 3699, 3699, 3700, 3700, 3700, 3700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3700, 3700, 0, 3700, 0, 3700, 3700, 0, 3700, 0, 3700, 0, 0, 0, 3700, 3701, 3701, 3701, 3701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3701, 3701, 0, 3701, 0, 3701, 3701, 0, 3701, 0, 3701, 0, 0, 0, 3701, 3702, 3702, 0, 3702, 3702, 0, 3702, 3702, 3702, 3702, 3702, 3702, 0, 0, 0, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 0, 3702, 3702, 3702, 3703, 0, 0, 3703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3703, 0, 0, 3703, 0, 3703, 3703, 0, 0, 0, 3703, 0, 0, 0, 3703, 3704, 0, 0, 0, 0, 3704, 3704, 0, 0, 0, 3704, 0, 0, 0, 3704, 3705, 0, 0, 0, 0, 3705, 3705, 0, 0, 0, 3705, 0, 0, 0, 3705, 3706, 0, 0, 0, 0, 3706, 3706, 0, 0, 0, 3706, 0, 0, 0, 3706, 3707, 3707, 0, 3707, 0, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 0, 3707, 3707, 3707, 3707, 3707, 3707, 3708, 0, 0, 0, 0, 3708, 3708, 0, 0, 0, 3708, 0, 0, 0, 3708, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3710, 3710, 0, 3710, 3710, 0, 0, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 0, 3710, 3710, 3710, 3710, 3710, 3710, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3714, 0, 0, 0, 0, 3714, 3714, 0, 0, 0, 3714, 0, 0, 0, 3714, 3715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3715, 3715, 0, 0, 0, 3715, 0, 0, 0, 3715, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 0, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3717, 0, 3717, 3717, 0, 3717, 3717, 3717, 0, 0, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 3717, 0, 3717, 3717, 3717, 3717, 3717, 3717, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 0, 3722, 3722, 3722, 0, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 0, 3725, 3725, 3725, 0, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3725, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3729, 3729, 0, 0, 3729, 0, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 3729, 0, 3729, 3729, 3729, 3729, 3729, 3729, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3730, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3734, 3735, 3735, 0, 0, 3735, 3735, 3735, 0, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 3735, 0, 3735, 3735, 3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3740, 3741, 3741, 0, 3741, 3741, 0, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3741, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3742, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3750, 3750, 0, 0, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3751, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3755, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3758, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3760, 3760, 3760, 3760, 0, 0, 0, 3760, 3760, 0, 3760, 0, 0, 0, 3760, 3760, 3760, 3760, 0, 3760, 3760, 0, 3760, 3760, 3760, 0, 0, 0, 3760, 3761, 3761, 3761, 3761, 0, 3761, 0, 0, 3761, 0, 0, 0, 0, 0, 3761, 3761, 0, 0, 0, 3761, 3761, 0, 3761, 0, 3761, 0, 0, 3761, 3761, 3762, 3762, 3762, 3762, 0, 3762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3762, 3762, 0, 0, 0, 3762, 0, 0, 3762, 3762, 3763, 3763, 3763, 3763, 0, 3763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3763, 3763, 0, 0, 0, 3763, 0, 0, 0, 3763, 3764, 0, 0, 3764, 0, 3764, 0, 0, 3764, 0, 0, 0, 0, 0, 3764, 3764, 0, 0, 0, 3764, 3764, 0, 3764, 0, 3764, 0, 0, 3764, 3764, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 0, 3765, 3765, 3765, 3765, 0, 0, 3765, 3765, 3765, 0, 3765, 3765, 3765, 3765, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 0, 3766, 3766, 3766, 3766, 0, 0, 3766, 3766, 3766, 0, 3766, 3766, 3766, 3766, 3767, 3767, 3767, 3767, 0, 3767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3767, 0, 0, 0, 3767, 3767, 0, 3767, 0, 3767, 0, 0, 3767, 3767, 3768, 0, 3768, 3768, 0, 3768, 3768, 3768, 3768, 0, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 0, 3768, 3768, 3768, 3768, 3768, 3768, 3769, 3769, 0, 3769, 3769, 0, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 0, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 0, 3769, 3769, 3769, 3770, 3770, 0, 3770, 3770, 0, 3770, 3770, 0, 0, 3770, 3770, 3770, 3770, 0, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 3770, 0, 0, 3770, 3770, 3771, 3771, 3771, 3771, 0, 3771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3771, 0, 0, 0, 3771, 3771, 0, 3771, 0, 3771, 0, 0, 3771, 3771, 3772, 3772, 3772, 3772, 0, 0, 0, 3772, 0, 0, 0, 0, 0, 0, 3772, 3772, 0, 3772, 0, 3772, 3772, 0, 3772, 0, 3772, 0, 0, 0, 3772, 3773, 3773, 3773, 3773, 0, 3773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3773, 3773, 0, 0, 0, 3773, 0, 0, 0, 3773, 3774, 3774, 3774, 3774, 0, 0, 0, 3774, 0, 0, 0, 0, 0, 0, 3774, 0, 0, 0, 0, 3774, 3774, 0, 0, 0, 3774, 0, 0, 0, 3774, 3775, 3775, 0, 3775, 3775, 0, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 0, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 0, 3775, 3775, 3775, 3776, 3776, 3776, 3776, 0, 3776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3776, 0, 0, 0, 3776, 3776, 0, 3776, 0, 3776, 0, 0, 3776, 3776, 3777, 0, 0, 3777, 0, 0, 0, 3777, 0, 0, 0, 3777, 3777, 0, 3777, 3777, 0, 3777, 0, 3777, 3777, 0, 0, 0, 3777, 0, 0, 0, 3777, 3778, 0, 0, 3778, 0, 3778, 0, 0, 3778, 0, 0, 0, 0, 0, 3778, 0, 0, 0, 0, 3778, 3778, 0, 0, 0, 3778, 0, 0, 0, 3778, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 0, 3779, 3779, 3779, 3779, 0, 0, 3779, 3779, 3779, 0, 3779, 3779, 3779, 3779, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 0, 3780, 3780, 3780, 3780, 0, 0, 3780, 3780, 3780, 0, 3780, 3780, 3780, 3780, 3781, 0, 0, 3781, 0, 3781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3781, 3781, 0, 0, 0, 3781, 0, 0, 0, 3781, 3782, 0, 0, 3782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3782, 3782, 0, 3782, 0, 3782, 3782, 0, 0, 0, 3782, 0, 0, 0, 3782, 3783, 3783, 0, 3783, 3783, 3783, 3783, 3783, 0, 0, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 0, 3783, 3783, 3783, 0, 3783, 0, 3783, 0, 0, 3783, 3783, 3784, 3784, 3784, 3784, 0, 0, 0, 3784, 0, 0, 0, 0, 0, 0, 3784, 3784, 0, 3784, 0, 3784, 3784, 0, 3784, 0, 3784, 0, 0, 0, 3784, 3785, 3785, 3785, 3785, 0, 3785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785, 3785, 0, 0, 0, 3785, 0, 0, 0, 3785, 3786, 3786, 3786, 3786, 0, 0, 0, 3786, 0, 0, 0, 0, 0, 0, 3786, 0, 0, 0, 0, 3786, 3786, 0, 0, 0, 3786, 0, 0, 0, 3786, 3787, 3787, 0, 3787, 0, 0, 0, 3787, 0, 0, 0, 3787, 3787, 0, 3787, 3787, 0, 3787, 0, 3787, 3787, 0, 0, 0, 3787, 0, 0, 0, 3787, 3788, 0, 0, 0, 0, 0, 3788, 0, 0, 0, 0, 3788, 3788, 0, 0, 0, 3788, 0, 0, 0, 3788, 3790, 3790, 0, 0, 0, 3790, 3790, 0, 0, 0, 3790, 0, 0, 0, 3790, 3791, 0, 0, 0, 0, 3791, 3791, 0, 3791, 0, 3791, 0, 0, 0, 3791, 3792, 0, 0, 3792, 0, 0, 0, 3792, 0, 0, 0, 0, 0, 0, 3792, 3792, 0, 0, 0, 3792, 3792, 0, 3792, 0, 3792, 0, 0, 0, 3792, 3793, 0, 3793, 0, 0, 0, 0, 3793, 3793, 0, 0, 0, 3793, 0, 0, 0, 3793, 3794, 0, 0, 0, 0, 3794, 3794, 0, 0, 0, 3794, 0, 0, 0, 3794, 3795, 3795, 0, 0, 0, 3795, 3795, 0, 3795, 0, 3795, 0, 0, 0, 3795, 3796, 0, 0, 0, 0, 3796, 3796, 0, 0, 0, 3796, 0, 0, 0, 3796, 3797, 3797, 0, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3806, 3806, 3806, 3806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3806, 3806, 0, 3806, 0, 3806, 3806, 0, 3806, 0, 3806, 0, 0, 0, 3806, 3807, 3807, 3807, 3807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3807, 3807, 0, 3807, 0, 3807, 3807, 0, 3807, 0, 3807, 0, 0, 0, 3807, 3808, 0, 0, 0, 0, 3808, 3808, 0, 0, 0, 3808, 0, 0, 0, 3808, 3809, 0, 0, 3809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3809, 0, 0, 0, 0, 3809, 3809, 0, 0, 0, 3809, 0, 0, 0, 3809, 3810, 0, 0, 0, 0, 3810, 3810, 0, 0, 0, 3810, 0, 0, 0, 3810, 3811, 3811, 0, 3811, 0, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 0, 3811, 3811, 3811, 3811, 3811, 3811, 3812, 3812, 0, 3812, 3812, 0, 0, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 0, 3812, 3812, 3812, 3812, 3812, 3812, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3813, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3818, 0, 0, 0, 0, 3818, 3818, 0, 0, 0, 3818, 0, 0, 0, 3818, 3820, 3820, 0, 0, 0, 3820, 3820, 0, 0, 0, 3820, 0, 0, 0, 3820, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 0, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3824, 0, 3824, 3824, 0, 3824, 3824, 3824, 0, 0, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 0, 3824, 3824, 3824, 3824, 3824, 3824, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3828, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3834, 3834, 0, 0, 3834, 0, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 3834, 0, 3834, 3834, 3834, 3834, 3834, 3834, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3837, 3837, 0, 0, 3837, 3837, 3837, 0, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 0, 3837, 3837, 3837, 3837, 3837, 3837, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3840, 3840, 0, 3840, 3840, 0, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3846, 3846, 0, 0, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3853, 3853, 3853, 3853, 0, 0, 0, 3853, 3853, 0, 3853, 3853, 3853, 0, 3853, 3853, 3853, 3853, 0, 3853, 3853, 0, 3853, 3853, 3853, 0, 0, 0, 3853, 3854, 3854, 3854, 3854, 0, 3854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3854, 3854, 0, 0, 0, 3854, 0, 0, 3854, 3854, 3855, 0, 0, 3855, 0, 3855, 0, 0, 3855, 0, 0, 0, 0, 0, 3855, 3855, 0, 0, 0, 3855, 3855, 0, 3855, 0, 3855, 0, 0, 3855, 3855, 3856, 3856, 3856, 3856, 0, 3856, 0, 0, 3856, 0, 0, 0, 0, 0, 3856, 3856, 0, 0, 0, 3856, 3856, 0, 3856, 0, 3856, 0, 0, 3856, 3856, 3857, 3857, 3857, 3857, 0, 3857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3857, 0, 0, 0, 3857, 3857, 0, 3857, 0, 3857, 0, 0, 3857, 3857, 3858, 3858, 3858, 3858, 0, 3858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3858, 0, 0, 0, 3858, 3858, 0, 3858, 0, 3858, 0, 0, 3858, 3858, 3859, 3859, 3859, 3859, 0, 0, 0, 3859, 0, 0, 0, 0, 0, 0, 3859, 3859, 0, 3859, 0, 3859, 3859, 0, 3859, 0, 3859, 0, 0, 0, 3859, 3860, 0, 3860, 3860, 0, 3860, 3860, 3860, 3860, 0, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 0, 3860, 3860, 3860, 3860, 3860, 3860, 3861, 3861, 3861, 3861, 0, 0, 0, 3861, 0, 0, 0, 0, 0, 0, 3861, 0, 0, 0, 0, 3861, 3861, 0, 0, 0, 3861, 0, 0, 0, 3861, 3862, 0, 0, 3862, 0, 0, 0, 3862, 0, 0, 0, 3862, 3862, 0, 3862, 3862, 0, 3862, 0, 3862, 3862, 0, 0, 0, 3862, 0, 0, 0, 3862, 3863, 0, 0, 3863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3863, 3863, 0, 3863, 0, 3863, 3863, 0, 0, 0, 3863, 0, 0, 0, 3863, 3864, 3864, 3864, 3864, 0, 0, 0, 3864, 0, 0, 0, 0, 0, 0, 3864, 0, 0, 0, 0, 3864, 3864, 0, 0, 0, 3864, 0, 0, 0, 3864, 3865, 3865, 0, 3865, 0, 0, 0, 3865, 0, 0, 0, 3865, 3865, 0, 3865, 3865, 0, 3865, 0, 3865, 3865, 0, 0, 0, 3865, 0, 0, 0, 3865, 3866, 3866, 0, 0, 0, 3866, 3866, 0, 0, 0, 3866, 0, 0, 0, 3866, 3867, 0, 0, 3867, 0, 0, 0, 3867, 0, 0, 0, 0, 0, 0, 3867, 3867, 0, 0, 0, 3867, 3867, 0, 3867, 0, 3867, 0, 0, 0, 3867, 3868, 0, 0, 0, 0, 3868, 3868, 0, 0, 0, 3868, 0, 0, 0, 3868, 3869, 3869, 0, 0, 0, 3869, 3869, 0, 3869, 0, 3869, 0, 0, 0, 3869, 3870, 0, 0, 0, 0, 3870, 3870, 0, 0, 0, 3870, 0, 0, 0, 3870, 3871, 3871, 0, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3873, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3876, 3876, 3876, 3876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3876, 3876, 0, 3876, 0, 3876, 3876, 0, 3876, 0, 3876, 0, 0, 0, 3876, 3877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3877, 3877, 0, 0, 0, 3877, 0, 0, 0, 3877, 3878, 3878, 3878, 3878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3878, 3878, 0, 3878, 0, 3878, 3878, 0, 3878, 0, 3878, 0, 0, 0, 3878, 3879, 3879, 3879, 3879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3879, 0, 3879, 0, 3879, 3879, 3879, 0, 0, 0, 3879, 3879, 0, 0, 3879, 3880, 0, 0, 0, 0, 3880, 3880, 0, 0, 0, 3880, 0, 0, 0, 3880, 3881, 0, 0, 0, 0, 3881, 3881, 0, 0, 0, 3881, 0, 0, 0, 3881, 3882, 3882, 0, 3882, 3882, 0, 0, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 0, 3882, 3882, 3882, 3882, 3882, 3882, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3885, 0, 0, 0, 0, 3885, 3885, 0, 0, 0, 3885, 0, 0, 0, 3885, 3886, 3886, 0, 0, 0, 3886, 3886, 0, 0, 0, 3886, 0, 0, 0, 3886, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 0, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3890, 0, 3890, 3890, 0, 3890, 3890, 3890, 0, 0, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 0, 3890, 3890, 3890, 3890, 3890, 3890, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3891, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3893, 3894, 3894, 0, 0, 3894, 0, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 3894, 0, 3894, 3894, 3894, 3894, 3894, 3894, 3895, 3895, 0, 0, 3895, 3895, 3895, 0, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 3895, 0, 3895, 3895, 3895, 3895, 3895, 3895, 3896, 3896, 0, 3896, 3896, 0, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3897, 3898, 3898, 0, 0, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 0, 3901, 3901, 3901, 0, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3902, 3902, 3902, 3902, 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3902, 3902, 0, 0, 0, 3902, 0, 0, 3902, 3902, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 0, 3903, 3903, 3903, 3903, 0, 0, 3903, 3903, 3903, 0, 3903, 3903, 3903, 3903, 3905, 3905, 3905, 3905, 0, 0, 0, 3905, 0, 0, 0, 0, 0, 0, 3905, 3905, 0, 3905, 0, 3905, 3905, 0, 3905, 0, 3905, 0, 0, 0, 3905, 3906, 3906, 3906, 3906, 0, 0, 0, 3906, 0, 0, 0, 0, 0, 0, 3906, 3906, 0, 3906, 0, 3906, 3906, 0, 3906, 0, 3906, 0, 0, 0, 3906, 3907, 3907, 0, 3907, 3907, 0, 3907, 3907, 0, 0, 3907, 3907, 3907, 3907, 0, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 0, 0, 3907, 3907, 3908, 3908, 3908, 3908, 0, 0, 0, 3908, 3908, 0, 3908, 0, 0, 0, 3908, 3908, 3908, 3908, 0, 3908, 3908, 0, 3908, 3908, 3908, 0, 0, 0, 3908, 3909, 0, 3909, 3909, 0, 3909, 3909, 3909, 3909, 0, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 0, 3909, 3909, 3909, 3909, 3909, 3909, 3910, 3910, 3910, 3910, 0, 3910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3910, 0, 0, 0, 3910, 3910, 0, 3910, 0, 3910, 0, 0, 3910, 3910, 3911, 0, 0, 3911, 0, 0, 0, 3911, 0, 0, 0, 3911, 3911, 0, 3911, 3911, 0, 3911, 0, 3911, 3911, 0, 0, 0, 3911, 0, 0, 0, 3911, 3912, 3912, 0, 3912, 0, 0, 0, 3912, 0, 0, 0, 3912, 3912, 0, 3912, 3912, 0, 3912, 0, 3912, 3912, 0, 0, 0, 3912, 0, 0, 0, 3912, 3913, 0, 0, 3913, 0, 0, 0, 3913, 0, 0, 0, 0, 0, 0, 3913, 3913, 0, 0, 0, 3913, 3913, 0, 3913, 0, 3913, 0, 0, 0, 3913, 3914, 0, 0, 0, 0, 3914, 3914, 0, 0, 0, 3914, 0, 0, 0, 3914, 3915, 3915, 0, 0, 0, 3915, 3915, 0, 3915, 0, 3915, 0, 0, 0, 3915, 3916, 0, 0, 0, 0, 3916, 3916, 0, 0, 0, 3916, 0, 0, 0, 3916, 3917, 3917, 0, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3919, 0, 0, 3919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3919, 3919, 0, 0, 0, 3919, 3919, 0, 0, 0, 3919, 0, 0, 0, 3919, 3920, 3920, 3920, 3920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3920, 3920, 0, 3920, 0, 3920, 3920, 0, 3920, 0, 3920, 0, 0, 0, 3920, 3921, 0, 0, 0, 0, 3921, 3921, 0, 0, 0, 3921, 0, 0, 0, 3921, 3922, 0, 0, 0, 0, 3922, 3922, 0, 0, 0, 3922, 0, 0, 0, 3922, 3923, 0, 0, 0, 0, 3923, 3923, 0, 0, 0, 3923, 0, 0, 0, 3923, 3924, 3924, 0, 3924, 3924, 0, 0, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 0, 3924, 3924, 3924, 3924, 3924, 3924, 3925, 0, 0, 0, 0, 3925, 3925, 0, 0, 0, 3925, 0, 0, 0, 3925, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 0, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3928, 0, 3928, 3928, 0, 3928, 3928, 3928, 0, 0, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 0, 3928, 3928, 3928, 3928, 3928, 3928, 3929, 3929, 0, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3930, 3930, 0, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3931, 3931, 0, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3932, 3932, 0, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3933, 3933, 0, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3933, 3934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3934, 0, 0, 0, 3934, 3934, 0, 3934, 0, 3934, 0, 0, 3934, 3934, 3935, 3935, 3935, 3935, 0, 0, 0, 3935, 0, 0, 0, 0, 0, 0, 3935, 3935, 0, 3935, 0, 3935, 3935, 0, 3935, 0, 3935, 0, 0, 0, 3935, 3936, 3936, 3936, 3936, 0, 0, 0, 3936, 0, 0, 0, 0, 0, 0, 3936, 3936, 0, 3936, 0, 3936, 3936, 0, 3936, 0, 3936, 0, 0, 0, 3936, 3937, 3937, 3937, 3937, 0, 0, 0, 3937, 3937, 0, 3937, 0, 0, 0, 3937, 3937, 3937, 3937, 0, 3937, 3937, 0, 3937, 3937, 3937, 0, 0, 0, 3937, 3938, 0, 3938, 3938, 0, 3938, 3938, 3938, 3938, 0, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 0, 3938, 3938, 3938, 3938, 3938, 3938, 3940, 3940, 3940, 3940, 0, 0, 0, 3940, 0, 0, 0, 0, 0, 0, 3940, 3940, 0, 3940, 0, 3940, 3940, 0, 3940, 0, 3940, 0, 0, 0, 3940, 3941, 0, 0, 3941, 0, 0, 0, 3941, 0, 0, 0, 3941, 3941, 0, 3941, 3941, 0, 3941, 0, 3941, 3941, 0, 0, 0, 3941, 0, 0, 0, 3941, 3942, 3942, 0, 3942, 0, 0, 0, 3942, 0, 0, 0, 3942, 3942, 0, 3942, 3942, 0, 3942, 0, 3942, 3942, 0, 0, 0, 3942, 0, 0, 0, 3942, 3943, 0, 0, 3943, 0, 0, 0, 3943, 0, 0, 0, 0, 0, 0, 3943, 3943, 0, 0, 0, 3943, 3943, 0, 3943, 0, 3943, 0, 0, 0, 3943, 3944, 0, 0, 0, 0, 3944, 3944, 0, 0, 0, 3944, 0, 0, 0, 3944, 3945, 3945, 0, 0, 0, 3945, 3945, 0, 3945, 0, 3945, 0, 0, 0, 3945, 3946, 0, 0, 0, 0, 3946, 3946, 0, 0, 0, 3946, 0, 0, 0, 3946, 3947, 3947, 0, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 0, 3948, 3948, 3948, 3948, 0, 0, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3949, 0, 0, 3949, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3949, 3949, 0, 0, 0, 3949, 3949, 0, 0, 0, 3949, 0, 0, 0, 3949, 3950, 3950, 3950, 3950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3950, 3950, 0, 3950, 0, 3950, 3950, 0, 3950, 0, 3950, 0, 0, 0, 3950, 3951, 0, 0, 0, 0, 3951, 3951, 0, 0, 0, 3951, 0, 0, 0, 3951, 3952, 0, 0, 0, 0, 3952, 3952, 0, 0, 0, 3952, 0, 0, 0, 3952, 3953, 0, 0, 0, 0, 3953, 3953, 0, 0, 0, 3953, 0, 0, 0, 3953, 3954, 3954, 0, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3955, 0, 0, 0, 0, 3955, 3955, 0, 0, 0, 3955, 0, 0, 0, 3955, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 0, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3957, 0, 3957, 3957, 0, 3957, 3957, 3957, 0, 0, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 0, 3957, 3957, 3957, 3957, 3957, 3957, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3958, 3959, 3959, 0, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3960, 3960, 0, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3961, 3961, 0, 0, 3961, 0, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 0, 3961, 3961, 3961, 3961, 3961, 3961, 3962, 3962, 0, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3963, 3963, 0, 0, 3963, 3963, 3963, 0, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 3963, 0, 3963, 3963, 3963, 3963, 3963, 3963, 3964, 3964, 0, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3964, 3965, 3965, 0, 3965, 3965, 0, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3966, 3966, 0, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3967, 3967, 0, 0, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3969, 3969, 3969, 3969, 0, 0, 0, 0, 3969, 0, 3969, 0, 0, 0, 3969, 3969, 3969, 0, 0, 3969, 3969, 0, 3969, 3969, 3969, 0, 0, 0, 3969, 3970, 3970, 3970, 3970, 0, 3970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3970, 3970, 0, 0, 0, 3970, 0, 0, 0, 3970, 3971, 3971, 3971, 3971, 0, 0, 0, 3971, 0, 0, 0, 0, 0, 0, 3971, 3971, 0, 3971, 0, 3971, 3971, 0, 3971, 0, 3971, 0, 0, 0, 3971, 3972, 3972, 3972, 3972, 0, 0, 0, 3972, 0, 0, 0, 0, 0, 0, 3972, 3972, 0, 3972, 0, 3972, 3972, 0, 3972, 0, 3972, 0, 0, 0, 3972, 3973, 3973, 3973, 3973, 0, 0, 0, 3973, 3973, 0, 3973, 0, 0, 0, 3973, 3973, 3973, 3973, 0, 3973, 3973, 0, 3973, 3973, 3973, 0, 0, 0, 3973, 3974, 0, 3974, 3974, 0, 3974, 3974, 3974, 3974, 0, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 0, 3974, 3974, 3974, 3974, 3974, 3974, 3975, 3975, 3975, 3975, 0, 0, 0, 3975, 0, 0, 0, 0, 0, 0, 3975, 3975, 0, 3975, 0, 3975, 3975, 0, 3975, 0, 3975, 0, 0, 0, 3975, 3976, 3976, 0, 3976, 3976, 0, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 0, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 3976, 0, 3976, 3976, 3976, 3977, 3977, 3977, 3977, 0, 3977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3977, 0, 0, 0, 3977, 3977, 0, 3977, 0, 3977, 0, 0, 3977, 3977, 3978, 0, 0, 3978, 0, 0, 0, 3978, 0, 0, 0, 3978, 3978, 0, 3978, 3978, 0, 3978, 0, 3978, 3978, 0, 0, 0, 3978, 0, 0, 0, 3978, 3979, 3979, 0, 3979, 3979, 3979, 3979, 3979, 0, 0, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 0, 3979, 3979, 3979, 0, 3979, 0, 3979, 0, 0, 3979, 3979, 3980, 3980, 0, 3980, 0, 0, 0, 3980, 0, 0, 0, 3980, 3980, 0, 3980, 3980, 0, 3980, 0, 3980, 3980, 0, 0, 0, 3980, 0, 0, 0, 3980, 3981, 0, 0, 3981, 0, 0, 0, 3981, 0, 0, 0, 0, 0, 0, 3981, 3981, 0, 0, 0, 3981, 3981, 0, 3981, 0, 3981, 0, 0, 0, 3981, 3982, 0, 0, 0, 0, 3982, 3982, 0, 0, 0, 3982, 0, 0, 0, 3982, 3983, 3983, 0, 0, 0, 3983, 3983, 0, 3983, 0, 3983, 0, 0, 0, 3983, 3984, 0, 0, 0, 0, 3984, 3984, 0, 0, 0, 3984, 0, 0, 0, 3984, 3985, 3985, 0, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3986, 3986, 0, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3987, 3987, 0, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3988, 0, 0, 0, 0, 3988, 3988, 0, 0, 0, 3988, 0, 0, 0, 3988, 3989, 3989, 0, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3989, 3990, 3990, 0, 3990, 3990, 0, 0, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 3990, 0, 3990, 3990, 3990, 3990, 3990, 3990, 3991, 0, 3991, 3991, 0, 3991, 3991, 3991, 0, 0, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 0, 3991, 3991, 3991, 3991, 3991, 3991, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3992, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 0, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3994, 3994, 0, 0, 3994, 0, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 0, 3994, 3994, 3994, 3994, 3994, 3994, 3995, 3995, 0, 0, 3995, 3995, 3995, 0, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 3995, 0, 3995, 3995, 3995, 3995, 3995, 3995, 3996, 3996, 0, 3996, 3996, 0, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3996, 3997, 3997, 0, 0, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3998, 3998, 3998, 3998, 0, 0, 0, 0, 3998, 0, 3998, 0, 0, 0, 3998, 3998, 3998, 0, 0, 3998, 3998, 0, 3998, 3998, 3998, 0, 0, 0, 3998, 3999, 3999, 3999, 3999, 0, 3999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3999, 3999, 0, 0, 0, 3999, 0, 0, 3999, 3999, 4000, 4000, 4000, 4000, 0, 4000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4000, 4000, 0, 0, 0, 4000, 0, 0, 0, 4000, 4001, 4001, 4001, 4001, 0, 0, 0, 0, 4001, 0, 4001, 0, 0, 0, 4001, 0, 4001, 0, 0, 4001, 4001, 0, 0, 4001, 4001, 0, 0, 0, 4001, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 0, 4002, 4002, 4002, 4002, 0, 0, 4002, 4002, 4002, 0, 4002, 4002, 4002, 4002, 4003, 4003, 4003, 4003, 0, 0, 0, 4003, 0, 0, 0, 0, 0, 0, 4003, 4003, 0, 4003, 0, 4003, 4003, 0, 4003, 0, 4003, 0, 0, 0, 4003, 4004, 4004, 4004, 4004, 0, 0, 0, 4004, 0, 0, 0, 0, 0, 0, 4004, 4004, 0, 4004, 0, 4004, 4004, 0, 4004, 0, 4004, 0, 0, 0, 4004, 4005, 4005, 4005, 4005, 0, 0, 0, 4005, 4005, 0, 4005, 0, 0, 0, 4005, 4005, 4005, 4005, 0, 4005, 4005, 0, 4005, 4005, 4005, 0, 0, 0, 4005, 4006, 0, 4006, 4006, 0, 4006, 4006, 4006, 4006, 0, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 4006, 0, 4006, 4006, 4006, 4006, 4006, 4006, 4007, 4007, 0, 4007, 4007, 0, 4007, 4007, 4007, 4007, 4007, 4007, 0, 0, 0, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 0, 4007, 4007, 4007, 4008, 4008, 0, 4008, 4008, 0, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 0, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 0, 4008, 4008, 4008, 4009, 4009, 0, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 4009, 0, 4009, 4009, 4009, 4009, 0, 0, 4009, 4009, 4009, 0, 4009, 4009, 4009, 4009, 4010, 4010, 0, 4010, 4010, 0, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 0, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 4010, 0, 4010, 4010, 4010, 4011, 0, 0, 4011, 0, 0, 0, 4011, 0, 0, 0, 4011, 4011, 0, 4011, 4011, 0, 4011, 0, 4011, 4011, 0, 0, 0, 4011, 0, 0, 0, 4011, 4012, 4012, 0, 4012, 0, 0, 0, 4012, 0, 0, 0, 4012, 4012, 0, 4012, 4012, 0, 4012, 0, 4012, 4012, 0, 0, 0, 4012, 0, 0, 0, 4012, 4013, 0, 0, 4013, 0, 0, 0, 4013, 0, 0, 0, 0, 0, 0, 4013, 4013, 0, 0, 0, 4013, 4013, 0, 4013, 0, 4013, 0, 0, 0, 4013, 4014, 0, 0, 0, 0, 4014, 4014, 0, 0, 0, 4014, 0, 0, 0, 4014, 4015, 0, 0, 0, 0, 4015, 4015, 0, 0, 0, 4015, 0, 0, 0, 4015, 4016, 4016, 0, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4017, 0, 0, 0, 0, 4017, 4017, 0, 0, 0, 4017, 0, 0, 0, 4017, 4018, 4018, 0, 4018, 4018, 0, 0, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 0, 4018, 4018, 4018, 4018, 4018, 4018, 4019, 0, 4019, 4019, 0, 4019, 4019, 4019, 0, 0, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 0, 4019, 4019, 4019, 4019, 4019, 4019, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 0, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4021, 4021, 0, 0, 4021, 0, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 0, 4021, 4021, 4021, 4021, 4021, 4021, 4022, 4022, 0, 0, 4022, 4022, 4022, 0, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 0, 4022, 4022, 4022, 4022, 4022, 4022, 4023, 4023, 0, 4023, 4023, 0, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4024, 4024, 0, 0, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4025, 0, 4025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4025, 4025, 0, 0, 0, 4025, 0, 0, 4025, 4025, 4026, 4026, 4026, 4026, 0, 0, 0, 0, 4026, 0, 4026, 0, 0, 0, 4026, 0, 4026, 0, 0, 4026, 4026, 0, 0, 4026, 4026, 0, 0, 0, 4026, 4027, 4027, 4027, 4027, 0, 0, 0, 4027, 0, 0, 0, 0, 0, 0, 4027, 4027, 0, 4027, 0, 4027, 4027, 0, 4027, 0, 4027, 0, 0, 0, 4027, 4028, 4028, 4028, 4028, 0, 0, 0, 4028, 0, 0, 0, 0, 0, 0, 4028, 4028, 0, 4028, 0, 4028, 4028, 0, 4028, 0, 4028, 0, 0, 0, 4028, 4029, 0, 4029, 4029, 0, 4029, 4029, 4029, 4029, 0, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 0, 4029, 4029, 4029, 4029, 4029, 4029, 4030, 4030, 0, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 0, 4030, 4030, 4030, 4030, 0, 0, 4030, 4030, 4030, 0, 4030, 4030, 4030, 4030, 4031, 4031, 0, 4031, 4031, 0, 4031, 4031, 4031, 4031, 4031, 4031, 0, 0, 0, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 0, 4031, 4031, 4031, 4032, 4032, 0, 4032, 4032, 0, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 0, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 0, 4032, 4032, 4032, 4033, 0, 0, 4033, 0, 0, 0, 4033, 0, 0, 0, 4033, 4033, 0, 4033, 4033, 0, 4033, 0, 4033, 4033, 0, 0, 0, 4033, 0, 0, 0, 4033, 4034, 4034, 0, 4034, 0, 0, 0, 4034, 0, 0, 0, 4034, 4034, 0, 4034, 4034, 0, 4034, 0, 4034, 4034, 0, 0, 0, 4034, 0, 0, 0, 4034, 4035, 0, 0, 4035, 0, 0, 0, 4035, 0, 0, 0, 0, 0, 0, 4035, 4035, 0, 0, 0, 4035, 4035, 0, 4035, 0, 4035, 0, 0, 0, 4035, 4036, 4036, 0, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4037, 4037, 4037, 4037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4037, 0, 0, 0, 0, 4037, 4037, 0, 0, 0, 4037, 4037, 0, 0, 4037, 4038, 4038, 0, 4038, 4038, 0, 0, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 0, 4038, 4038, 4038, 4038, 4038, 4038, 4039, 0, 4039, 4039, 0, 4039, 4039, 4039, 0, 0, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 0, 4039, 4039, 4039, 4039, 4039, 4039, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 0, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4041, 4041, 0, 0, 4041, 0, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 0, 4041, 4041, 4041, 4041, 4041, 4041, 4042, 4042, 0, 0, 4042, 4042, 4042, 0, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 0, 4042, 4042, 4042, 4042, 4042, 4042, 4043, 4043, 0, 4043, 4043, 0, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4044, 4044, 0, 0, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4044, 4045, 4045, 4045, 4045, 0, 0, 0, 4045, 0, 0, 0, 0, 0, 0, 4045, 4045, 0, 4045, 0, 4045, 4045, 0, 4045, 0, 4045, 0, 0, 0, 4045, 4046, 4046, 4046, 4046, 0, 0, 0, 4046, 0, 0, 0, 0, 0, 0, 4046, 4046, 0, 4046, 0, 4046, 4046, 0, 4046, 0, 4046, 0, 0, 0, 4046, 4047, 0, 4047, 4047, 0, 4047, 4047, 4047, 4047, 0, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 4047, 0, 4047, 4047, 4047, 4047, 4047, 4047, 4048, 4048, 0, 4048, 4048, 4048, 4048, 4048, 0, 0, 4048, 4048, 4048, 4048, 4048, 4048, 4048, 4048, 0, 4048, 4048, 4048, 0, 4048, 0, 4048, 0, 0, 4048, 4048, 4049, 0, 0, 4049, 0, 0, 0, 4049, 0, 0, 0, 4049, 4049, 0, 4049, 4049, 0, 4049, 0, 4049, 4049, 0, 0, 0, 4049, 0, 0, 0, 4049, 4050, 4050, 0, 4050, 0, 0, 0, 4050, 0, 0, 0, 4050, 4050, 0, 4050, 4050, 0, 4050, 0, 4050, 4050, 0, 0, 0, 4050, 0, 0, 0, 4050, 4051, 0, 0, 4051, 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4051, 4051, 0, 0, 0, 4051, 0, 0, 0, 4051, 4052, 4052, 0, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4053, 0, 0, 0, 0, 4053, 4053, 0, 0, 0, 4053, 0, 0, 0, 4053, 4054, 4054, 0, 4054, 4054, 0, 0, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 4054, 0, 4054, 4054, 4054, 4054, 4054, 4054, 4055, 0, 4055, 4055, 0, 4055, 4055, 4055, 0, 0, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 0, 4055, 4055, 4055, 4055, 4055, 4055, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 0, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4057, 0, 4057, 4057, 0, 4057, 4057, 4057, 4057, 0, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 4057, 0, 4057, 4057, 4057, 4057, 4057, 4057, 4058, 0, 0, 4058, 0, 4058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4058, 4058, 0, 0, 0, 4058, 0, 0, 0, 4058, 4059, 0, 0, 4059, 0, 0, 0, 0, 4059, 0, 0, 0, 0, 0, 4059, 0, 0, 0, 0, 4059, 4059, 0, 0, 0, 4059, 0, 0, 0, 4059, 4060, 0, 4060, 4060, 0, 4060, 4060, 4060, 0, 0, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 0, 4060, 4060, 4060, 4060, 4060, 4060, 4061, 0, 4061, 4061, 0, 4061, 4061, 4061, 4061, 0, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 0, 4061, 4061, 4061, 4061, 4061, 4061, 4062, 0, 0, 4062, 0, 0, 0, 0, 4062, 0, 0, 0, 0, 0, 4062, 0, 0, 0, 0, 4062, 4062, 0, 0, 0, 4062, 0, 0, 0, 4062, 4063, 0, 4063, 4063, 0, 4063, 4063, 4063, 0, 0, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 0, 4063, 4063, 4063, 4063, 4063, 4063, 4064, 0, 4064, 4064, 0, 4064, 4064, 4064, 4064, 0, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 4064, 0, 4064, 4064, 4064, 4064, 4064, 4064, 4065, 0, 4065, 4065, 0, 4065, 4065, 4065, 0, 0, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 4065, 0, 4065, 4065, 4065, 4065, 4065, 4065, 4066, 0, 4066, 4066, 0, 4066, 4066, 4066, 4066, 0, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 0, 4066, 4066, 4066, 4066, 4066, 4066, 4067, 0, 4067, 4067, 0, 4067, 4067, 4067, 0, 0, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 4067, 0, 4067, 4067, 4067, 4067, 4067, 4067, 4068, 0, 4068, 4068, 0, 4068, 4068, 4068, 4068, 0, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 0, 4068, 4068, 4068, 4068, 4068, 4068, 4069, 0, 4069, 4069, 0, 4069, 4069, 4069, 0, 0, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 0, 4069, 4069, 4069, 4069, 4069, 4069, 4070, 0, 4070, 4070, 0, 4070, 4070, 4070, 4070, 0, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 0, 4070, 4070, 4070, 4070, 4070, 4070, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491 } ; extern int codeYY_flex_debug; int codeYY_flex_debug = 0; static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; static char *yy_full_match; static int yy_lp; static int yy_looking_for_trail_begin = 0; static int yy_full_lp; static int *yy_full_state; #define YY_TRAILING_MASK 0x2000 #define YY_TRAILING_HEAD_MASK 0x4000 #define REJECT \ { \ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ \ yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \ (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \ yy_current_state = *(yy_state_ptr); /* restore curr. state */ \ ++(yy_lp); \ goto find_rule; \ } #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *codeYYtext; #line 1 "code.l" /****************************************************************************** * * * * Copyright (C) 1997-2012 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * * Documents produced by Doxygen are derivative works derived from the * input used in their production; they are not affected by this license. * */ #line 19 "code.l" /* * includes */ #include #include #include #include #include #include "qtbc.h" #include "entry.h" #include "doxygen.h" #include "message.h" #include "outputlist.h" #include "util.h" #include "membername.h" #include "searchindex.h" #include "arguments.h" #define YY_NEVER_INTERACTIVE 1 // Toggle for some debugging info //#define DBG_CTX(x) fprintf x #define DBG_CTX(x) do { } while(0) #define CLASSBLOCK (int *)4 #define SCOPEBLOCK (int *)8 #define INNERBLOCK (int *)12 /* ----------------------------------------------------------------- * statics */ static CodeOutputInterface * g_code; static ClassSDict *g_codeClassSDict = 0; static QCString g_curClassName; static QStrList g_curClassBases; static QCString g_parmType; static QCString g_parmName; static const char * g_inputString; //!< the code fragment as text static int g_inputPosition; //!< read offset during parsing static int g_inputLines; //!< number of line in the code fragment static int g_yyLineNr; //!< current line number static bool g_needsTermination; static bool g_exampleBlock; static QCString g_exampleName; static QCString g_exampleFile; static bool g_insideTemplate = FALSE; static QCString g_type; static QCString g_name; static QCString g_args; static QCString g_classScope; static QCString g_realScope; static QStack g_scopeStack; //!< 1 if bracket starts a scope, // 2 for internal blocks static int g_anchorCount; static FileDef * g_sourceFileDef; static bool g_lineNumbers; static Definition * g_currentDefinition; static MemberDef * g_currentMemberDef; static bool g_includeCodeFragment; static const char * g_currentFontClass; static bool g_searchingForBody; static bool g_insideBody; static int g_bodyCurlyCount; static QCString g_saveName; static QCString g_saveType; static QCString g_delimiter; static int g_bracketCount = 0; static int g_curlyCount = 0; static int g_sharpCount = 0; static bool g_inFunctionTryBlock = FALSE; static bool g_inForEachExpression = FALSE; static int g_lastTemplCastContext; static int g_lastSpecialCContext; static int g_lastStringContext; static int g_lastSkipCppContext; static int g_lastVerbStringContext; static int g_memCallContext; static int g_lastCContext; static bool g_insideObjC; static bool g_insideProtocolList; static bool g_lexInit = FALSE; static QStack g_classScopeLengthStack; static Definition *g_searchCtx; // context for an Objective-C method call struct ObjCCallCtx { int id; QCString methodName; QCString objectTypeOrName; ClassDef *objectType; MemberDef *objectVar; MemberDef *method; QCString format; int lexState; int braceCount; }; // globals for objective-C method calls static ObjCCallCtx *g_currentCtx=0; static int g_currentCtxId=0; static int g_currentNameId=0; static int g_currentObjId=0; static int g_currentWordId=0; static QStack g_contextStack; static QIntDict g_contextDict; static QIntDict g_nameDict; static QIntDict g_objectDict; static QIntDict g_wordDict; static int g_braceCount=0; static void saveObjCContext(); static void restoreObjCContext(); static QCString g_forceTagReference; //------------------------------------------------------------------- /*! Represents a stack of variable to class mappings as found in the * code. Each scope is enclosed in pushScope() and popScope() calls. * Variables are added by calling addVariables() and one can search * for variable using findVariable(). */ class VariableContext { public: static const ClassDef *dummyContext; class Scope : public SDict { public: Scope() : SDict(17) {} }; VariableContext() { m_scopes.setAutoDelete(TRUE); } virtual ~VariableContext() { } void pushScope() { m_scopes.append(new Scope); DBG_CTX((stderr,"** Push var context %d\n",m_scopes.count())); } void popScope() { if (m_scopes.count()>0) { DBG_CTX((stderr,"** Pop var context %d\n",m_scopes.count())); m_scopes.remove(m_scopes.count()-1); } else { DBG_CTX((stderr,"** ILLEGAL: Pop var context\n")); } } void clear() { m_scopes.clear(); m_globalScope.clear(); } void clearExceptGlobal() { DBG_CTX((stderr,"** Clear var context\n")); m_scopes.clear(); } void addVariable(const QCString &type,const QCString &name); ClassDef *findVariable(const QCString &name); int count() const { return m_scopes.count(); } private: Scope m_globalScope; QList m_scopes; }; void VariableContext::addVariable(const QCString &type,const QCString &name) { //printf("VariableContext::addVariable(%s,%s)\n",type.data(),name.data()); QCString ltype = type.simplifyWhiteSpace(); QCString lname = name.simplifyWhiteSpace(); if (ltype.left(7)=="struct ") { ltype = ltype.right(ltype.length()-7); } else if (ltype.left(6)=="union ") { ltype = ltype.right(ltype.length()-6); } if (ltype.isEmpty() || lname.isEmpty()) return; DBG_CTX((stderr,"** addVariable trying: type='%s' name='%s' g_currentDefinition=%s\n", ltype.data(),lname.data(),g_currentDefinition?g_currentDefinition->name().data():"")); Scope *scope = m_scopes.count()==0 ? &m_globalScope : m_scopes.getLast(); ClassDef *varType; int i=0; if ( (varType=g_codeClassSDict->find(ltype)) || // look for class definitions inside the code block (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,ltype)) // look for global class definitions ) { DBG_CTX((stderr,"** addVariable type='%s' name='%s'\n",ltype.data(),lname.data())); scope->append(lname,varType); // add it to a list } else if ((i=ltype.find('<'))!=-1) { // probably a template class QCString typeName(ltype.left(i)); ClassDef* newDef = 0; QCString templateArgs(ltype.right(ltype.length() - i)); if ( ( // look for class definitions inside the code block (varType=g_codeClassSDict->find(typeName)) || // otherwise look for global class definitions (varType=getResolvedClass(g_currentDefinition,g_sourceFileDef,typeName,0,0,TRUE,TRUE)) ) && // and it must be a template varType->templateArguments()) { newDef = varType->getVariableInstance( templateArgs ); } if (newDef) { DBG_CTX((stderr,"** addVariable type='%s' templ='%s' name='%s'\n",typeName.data(),templateArgs.data(),lname.data())); scope->append(lname, newDef); } else { // Doesn't seem to be a template. Try just the base name. addVariable(typeName,name); } } else { if (m_scopes.count()>0) // for local variables add a dummy entry so the name // is hidden to avoid false links to global variables with the same name // TODO: make this work for namespaces as well! { DBG_CTX((stderr,"** addVariable: dummy context for '%s'\n",lname.data())); scope->append(lname,dummyContext); } else { DBG_CTX((stderr,"** addVariable: not adding variable!\n")); } } } ClassDef *VariableContext::findVariable(const QCString &name) { if (name.isEmpty()) return 0; ClassDef *result = 0; //QListIterator sli(m_scopes); Scope *scope; QCString key = name; // search from inner to outer scope scope = m_scopes.last(); //for (sli.toLast();(scope=sli.current());--sli) while (scope) { result = scope->find(key); if (result) { DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result)); return result; } scope = m_scopes.prev(); } // nothing found -> also try the global scope result=m_globalScope.find(name); DBG_CTX((stderr,"** findVariable(%s)=%p\n",name.data(),result)); return result; } static VariableContext g_theVarContext; const ClassDef *VariableContext::dummyContext = (ClassDef*)0x8; //------------------------------------------------------------------- class CallContext { public: struct Ctx { Ctx() : name(g_name), type(g_type), cd(0) {} QCString name; QCString type; ClassDef *cd; }; CallContext() { m_classList.append(new Ctx); m_classList.setAutoDelete(TRUE); } virtual ~CallContext() {} void setClass(ClassDef *cd) { Ctx *ctx = m_classList.getLast(); if (ctx) { DBG_CTX((stderr,"** Set call context %s (%p)\n",cd==0 ? "" : cd->name().data(),cd)); ctx->cd=cd; } } void pushScope() { m_classList.append(new Ctx); DBG_CTX((stderr,"** Push call context %d\n",m_classList.count())); } void popScope() { if (m_classList.count()>1) { DBG_CTX((stderr,"** Pop call context %d\n",m_classList.count())); Ctx *ctx = m_classList.getLast(); if (ctx) { g_name = ctx->name; g_type = ctx->type; } m_classList.removeLast(); } else { DBG_CTX((stderr,"** ILLEGAL: Pop call context\n")); } } void clear() { DBG_CTX((stderr,"** Clear call context\n")); m_classList.clear(); m_classList.append(new Ctx); } ClassDef *getClass() const { Ctx *ctx = m_classList.getLast(); if (ctx) return ctx->cd; else return 0; } private: QList m_classList; }; static CallContext g_theCallContext; //------------------------------------------------------------------- /*! add class/namespace name s to the scope */ static void pushScope(const char *s) { g_classScopeLengthStack.push(new int(g_classScope.length())); if (g_classScope.isEmpty()) { g_classScope = s; } else { g_classScope += "::"; g_classScope += s; } //printf("pushScope(%s) result: `%s'\n",s,g_classScope.data()); } /*! remove the top class/namespace name from the scope */ static void popScope() { if (!g_classScopeLengthStack.isEmpty()) { int *pLength = g_classScopeLengthStack.pop(); g_classScope.truncate(*pLength); delete pLength; } else { //err("Error: Too many end of scopes found!\n"); } //printf("popScope() result: `%s'\n",g_classScope.data()); } static void setCurrentDoc(const QCString &anchor) { if (Doxygen::searchIndex) { if (g_searchCtx) { Doxygen::searchIndex->setCurrentDoc(g_searchCtx,g_searchCtx->anchor(),FALSE); } else { Doxygen::searchIndex->setCurrentDoc(g_sourceFileDef,anchor,TRUE); } } } static void addToSearchIndex(const char *text) { if (Doxygen::searchIndex) { Doxygen::searchIndex->addWord(text,FALSE); } } static void setClassScope(const QCString &name) { //printf("setClassScope(%s)\n",name.data()); QCString n=name; n=n.simplifyWhiteSpace(); int ts=n.find('<'); // start of template int te=n.findRev('>'); // end of template //printf("ts=%d te=%d\n",ts,te); if (ts!=-1 && te!=-1 && te>ts) { // remove template from scope n=n.left(ts)+n.right(n.length()-te-1); } while (!g_classScopeLengthStack.isEmpty()) { popScope(); } g_classScope.resize(0); int i; while ((i=n.find("::"))!=-1) { pushScope(n.left(i)); n = n.mid(i+2); } pushScope(n); //printf("--->New class scope `%s'\n",g_classScope.data()); } /*! start a new line of code, inserting a line number if g_sourceFileDef * is TRUE. If a definition starts at the current line, then the line * number is linked to the documentation of that definition. */ static void startCodeLine() { //if (g_currentFontClass) { g_code->endFontClass(); } if (g_sourceFileDef && g_lineNumbers) { //QCString lineNumber,lineAnchor; //lineNumber.sprintf("%05d",g_yyLineNr); //lineAnchor.sprintf("l%05d",g_yyLineNr); Definition *d = g_sourceFileDef->getSourceDefinition(g_yyLineNr); //printf("%s:startCodeLine(%d)=%p\n",g_sourceFileDef->name().data(),g_yyLineNr,d); if (!g_includeCodeFragment && d) { g_currentDefinition = d; g_currentMemberDef = g_sourceFileDef->getSourceMember(g_yyLineNr); //printf("->startCodeLine(%s)=%p\n",d->name().data(),g_currentMemberDef); g_insideBody = FALSE; g_searchingForBody = TRUE; g_realScope = d->name(); //g_classScope = ""; g_type.resize(0); g_name.resize(0); g_args.resize(0); g_parmType.resize(0); g_parmName.resize(0); //printf("Real scope: `%s'\n",g_realScope.data()); g_bodyCurlyCount = 0; QCString lineAnchor; lineAnchor.sprintf("l%05d",g_yyLineNr); if (g_currentMemberDef) { g_code->writeLineNumber(g_currentMemberDef->getReference(), g_currentMemberDef->getOutputFileBase(), g_currentMemberDef->anchor(),g_yyLineNr); setCurrentDoc(lineAnchor); } else if (d->isLinkableInProject()) { g_code->writeLineNumber(d->getReference(), d->getOutputFileBase(), 0,g_yyLineNr); setCurrentDoc(lineAnchor); } } else { g_code->writeLineNumber(0,0,0,g_yyLineNr); } } g_code->startCodeLine(g_sourceFileDef && g_lineNumbers); if (g_currentFontClass) { g_code->startFontClass(g_currentFontClass); } } static void endFontClass(); static void startFontClass(const char *s); static void endCodeLine() { endFontClass(); g_code->endCodeLine(); } static void nextCodeLine() { const char * fc = g_currentFontClass; endCodeLine(); if (g_yyLineNrcodify(tmp); free(tmp); nextCodeLine(); } else { g_code->codify(sp); done=TRUE; } } } /*! writes a link to a fragment \a text that may span multiple lines, inserting * line numbers for each line. If \a text contains newlines, the link will be * split into multiple links with the same destination, one for each line. */ static void writeMultiLineCodeLink(CodeOutputInterface &ol, const char *ref,const char *file, const char *anchor,const char *text, const char *tooltip) { bool done=FALSE; char *p=(char *)text; while (!done) { char *sp=p; char c; while ((c=*p++) && c!='\n') { } if (c=='\n') { g_yyLineNr++; *(p-1)='\0'; //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp); ol.writeCodeLink(ref,file,anchor,sp,tooltip); nextCodeLine(); } else { //printf("writeCodeLink(%s,%s,%s,%s)\n",ref,file,anchor,sp); ol.writeCodeLink(ref,file,anchor,sp,tooltip); done=TRUE; } } } static void addType() { if (g_name=="const") { g_name.resize(0); return; } if (!g_type.isEmpty()) g_type += ' ' ; g_type += g_name ; g_name.resize(0) ; if (!g_type.isEmpty()) g_type += ' ' ; g_type += g_args ; g_args.resize(0) ; } static void addParmType() { if (g_parmName=="const") { g_parmName.resize(0); return; } if (!g_parmType.isEmpty()) g_parmType += ' ' ; g_parmType += g_parmName ; g_parmName.resize(0) ; } static void addUsingDirective(const char *name) { if (g_sourceFileDef && name) { NamespaceDef *nd = Doxygen::namespaceSDict->find(name); if (nd) { g_sourceFileDef->addUsingDirective(nd); } } } static void setParameterList(MemberDef *md) { g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : ""; LockingPtr al = md->argumentList(); if (al==0) return; Argument *a = al->first(); while (a) { g_parmName = a->name.copy(); g_parmType = a->type.copy(); int i = g_parmType.find('*'); if (i!=-1) g_parmType = g_parmType.left(i); i = g_parmType.find('&'); if (i!=-1) g_parmType = g_parmType.left(i); g_parmType.stripPrefix("const "); g_parmType=g_parmType.stripWhiteSpace(); g_theVarContext.addVariable(g_parmType,g_parmName); a = al->next(); } } static ClassDef *stripClassName(const char *s,Definition *d=g_currentDefinition) { int pos=0; QCString type = s; QCString className; QCString templSpec; while (extractClassNameFromType(type,pos,className,templSpec)!=-1) { QCString clName=className+templSpec; ClassDef *cd=0; if (!g_classScope.isEmpty()) { cd=getResolvedClass(d,g_sourceFileDef,g_classScope+"::"+clName); } if (cd==0) { cd=getResolvedClass(d,g_sourceFileDef,clName); } //printf("stripClass trying `%s' = %p\n",clName.data(),cd); if (cd) { return cd; } } return 0; } static MemberDef *setCallContextForVar(const QCString &name) { if (name.isEmpty()) return 0; //fprintf(stderr,"setCallContextForVar(%s) g_classScope=%s\n",name.data(),g_classScope.data()); int scopeEnd = name.findRev("::"); if (scopeEnd!=-1) // name with explicit scope { QCString scope = name.left(scopeEnd); QCString locName = name.right(name.length()-scopeEnd-2); //printf("explicit scope: name=%s scope=%s\n",locName.data(),scope.data()); ClassDef *mcd = getClass(scope); if (mcd && !locName.isEmpty()) { MemberDef *md=mcd->getMemberByName(locName); if (md) { //printf("name=%s scope=%s\n",locName.data(),scope.data()); g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); return md; } } else // check namespace as well { NamespaceDef *mnd = getResolvedNamespace(scope); if (mnd && !locName.isEmpty()) { MemberDef *md=mnd->getMemberByName(locName); if (md) { //printf("name=%s scope=%s\n",locName.data(),scope.data()); g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); return md; } } } } MemberName *mn; ClassDef *mcd = g_theVarContext.findVariable(name); if (mcd) // local variable { //fprintf(stderr,"local variable?\n"); if (mcd!=VariableContext::dummyContext) { //fprintf(stderr,"local var `%s' mcd=%s\n",name.data(),mcd->name().data()); g_theCallContext.setClass(mcd); } } else { //fprintf(stderr,"class member? scope=%s\n",g_classScope.data()); // look for a class member mcd = getClass(g_classScope); if (mcd) { //fprintf(stderr,"Inside class %s\n",mcd->name().data()); MemberDef *md=mcd->getMemberByName(name); if (md) { //fprintf(stderr,"Found member %s\n",md->name().data()); if (g_scopeStack.top()!=CLASSBLOCK) { //fprintf(stderr,"class member `%s' mcd=%s\n",name.data(),mcd->name().data()); g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); } return md; } } } // look for a global member if ((mn=Doxygen::functionNameSDict->find(name))) { //printf("global var `%s'\n",name.data()); if (mn->count()==1) // global defined only once { MemberDef *md=mn->getFirst(); if (!md->isStatic() || md->getBodyDef()==g_sourceFileDef) { g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); return md; } return 0; } else if (mn->count()>1) // global defined more than once { MemberDef *md=mn->first(); while (md) { //printf("mn=%p md=%p md->getBodyDef()=%p g_sourceFileDef=%p\n", // mn,md, // md->getBodyDef(),g_sourceFileDef); // in case there are multiple members we could link to, we // only link to members if defined in the same file or // defined as external. if ((!md->isStatic() || md->getBodyDef()==g_sourceFileDef) && (g_forceTagReference.isEmpty() || g_forceTagReference==md->getReference()) ) { g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); //printf("returning member %s in source file %s\n",md->name().data(),g_sourceFileDef->name().data()); return md; } md=mn->next(); } return 0; } } return 0; } static void updateCallContextForSmartPointer() { ClassDef *cd = g_theCallContext.getClass(); //printf("updateCallContextForSmartPointer() cd=%s\n",cd ? cd->name().data() : ""); MemberDef *md; if (cd && (md=cd->isSmartPointer())) { ClassDef *ncd = stripClassName(md->typeString(),md->getOuterScope()); if (ncd) { g_theCallContext.setClass(ncd); //printf("Found smart pointer call %s->%s!\n",cd->name().data(),ncd->name().data()); } } } static void addDocCrossReference(MemberDef *src,MemberDef *dst) { static bool referencedByRelation = Config_getBool("REFERENCED_BY_RELATION"); static bool referencesRelation = Config_getBool("REFERENCES_RELATION"); static bool callerGraph = Config_getBool("CALLER_GRAPH"); static bool callGraph = Config_getBool("CALL_GRAPH"); //printf("--> addDocCrossReference src=%s,dst=%s\n",src->name().data(),dst->name().data()); if (dst->isTypedef() || dst->isEnumerate()) return; // don't add types if ((referencedByRelation || callerGraph || dst->hasCallerGraph()) && (src->isFunction() || src->isSlot()) ) { dst->addSourceReferencedBy(src); MemberDef *mdDef = dst->memberDefinition(); if (mdDef) { mdDef->addSourceReferencedBy(src); } MemberDef *mdDecl = dst->memberDeclaration(); if (mdDecl) { mdDecl->addSourceReferencedBy(src); } } if ((referencesRelation || callGraph || src->hasCallGraph()) && (src->isFunction() || src->isSlot()) ) { src->addSourceReferences(dst); MemberDef *mdDef = src->memberDefinition(); if (mdDef) { mdDef->addSourceReferences(dst); } MemberDef *mdDecl = src->memberDeclaration(); if (mdDecl) { mdDecl->addSourceReferences(dst); } } } static bool getLinkInScope(const QCString &c, // scope const QCString &m, // member const char *memberText, // exact text CodeOutputInterface &ol, const char *text, bool varOnly=FALSE ) { MemberDef *md; ClassDef *cd; FileDef *fd; NamespaceDef *nd; GroupDef *gd; //fprintf(stderr,"getLinkInScope: trying `%s'::`%s' varOnly=%d\n",c.data(),m.data(),varOnly); if (getDefs(c,m,"()",md,cd,fd,nd,gd,FALSE,g_sourceFileDef,FALSE,g_forceTagReference) && md->isLinkable() && (!varOnly || md->isVariable())) { //printf("found it %s!\n",md->qualifiedName().data()); if (g_exampleBlock) { QCString anchor; anchor.sprintf("a%d",g_anchorCount); //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), // g_exampleFile.data()); if (md->addExample(anchor,g_exampleName,g_exampleFile)) { ol.writeCodeAnchor(anchor); g_anchorCount++; } } Definition *d = md->getOuterScope()==Doxygen::globalScope ? md->getBodyDef() : md->getOuterScope(); if (md->getGroupDef()) d = md->getGroupDef(); if (d && d->isLinkable()) { g_theCallContext.setClass(stripClassName(md->typeString(),md->getOuterScope())); //printf("g_currentDefinition=%p g_currentMemberDef=%p g_insideBody=%d\n", // g_currentDefinition,g_currentMemberDef,g_insideBody); if (g_currentDefinition && g_currentMemberDef && md!=g_currentMemberDef && g_insideBody) { addDocCrossReference(g_currentMemberDef,md); } //printf("d->getReference()=`%s' d->getOutputBase()=`%s' name=`%s' member name=`%s'\n",d->getReference().data(),d->getOutputFileBase().data(),d->name().data(),md->name().data()); ol.linkableSymbol(g_yyLineNr,md->name(),md, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(ol,md->getReference(), md->getOutputFileBase(), md->anchor(), text ? text : memberText, md->briefDescriptionAsTooltip()); addToSearchIndex(text ? text : memberText); return TRUE; } } return FALSE; } static bool getLink(const char *className, const char *memberName, CodeOutputInterface &ol, const char *text=0, bool varOnly=FALSE) { //printf("getLink(%s,%s) g_curClassName=%s\n",className,memberName,g_curClassName.data()); QCString m=removeRedundantWhiteSpace(memberName); QCString c=className; if (!getLinkInScope(c,m,memberName,ol,text,varOnly)) { if (!g_curClassName.isEmpty()) { if (!c.isEmpty()) c.prepend("::"); c.prepend(g_curClassName); return getLinkInScope(c,m,memberName,ol,text,varOnly); } return FALSE; } return TRUE; } static void generateClassOrGlobalLink(CodeOutputInterface &ol,const char *clName, bool typeOnly=FALSE,bool varOnly=FALSE) { int i=0; if (*clName=='~') // correct for matching negated values i.s.o. destructors. { g_code->codify("~"); clName++; } QCString className=clName; if (className.isEmpty()) return; if (g_insideProtocolList) // for Obj-C { className+="-p"; } className = substitute(className,"\\","::"); // for PHP namespaces ClassDef *cd=0,*lcd=0; MemberDef *md=0; bool isLocal=FALSE; //printf("generateClassOrGlobalLink(className=%s)\n",className.data()); if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable { Definition *d = g_currentDefinition; //printf("d=%s g_sourceFileDef=%s\n",d?d->name().data():"",g_sourceFileDef?g_sourceFileDef->name().data():""); cd = getResolvedClass(d,g_sourceFileDef,className,&md); //fprintf(stderr,"non-local variable name=%s context=%d cd=%s md=%s!\n", // className.data(),g_theVarContext.count(),cd?cd->name().data():"", // md?md->name().data():""); if (cd==0 && md==0 && (i=className.find('<'))!=-1) { QCString bareName = className.left(i); //stripTemplateSpecifiersFromScope(className); //fprintf(stderr,"bareName=%s\n",bareName.data()); if (bareName!=className) { cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version } } //printf("md=%s\n",md?md->name().data():""); //fprintf(stderr,"is found as a type %s\n",cd?cd->name().data():""); if (cd==0 && md==0) // also see if it is variable or enum or enum value { if (getLink(g_classScope,clName,ol,clName,varOnly)) { return; } } } else { //printf("local variable!\n"); if (lcd!=VariableContext::dummyContext) { //printf("non-dummy context lcd=%s!\n",lcd->name().data()); g_theCallContext.setClass(lcd); // to following is needed for links to a global variable, but is // no good for a link to a local variable that is also a global symbol. //if (getLink(g_classScope,clName,ol,clName)) //{ //return; //} } isLocal=TRUE; //fprintf(stderr,"is a local variable cd=%p!\n",cd); } if (cd && cd->isLinkable()) // is it a linkable class { //fprintf(stderr,"is linkable class %s\n",clName); if (g_exampleBlock) { QCString anchor; anchor.sprintf("_a%d",g_anchorCount); //printf("addExampleClass(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), // g_exampleFile.data()); if (cd->addExample(anchor,g_exampleName,g_exampleFile)) { ol.writeCodeAnchor(anchor); g_anchorCount++; } } ol.linkableSymbol(g_yyLineNr,cd->name(),cd, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),clName,cd->briefDescriptionAsTooltip()); addToSearchIndex(className); g_theCallContext.setClass(cd); if (md) { Definition *d = md->getOuterScope()==Doxygen::globalScope ? md->getBodyDef() : md->getOuterScope(); if (md->getGroupDef()) d = md->getGroupDef(); if (d && d->isLinkable() && md->isLinkable() && g_currentMemberDef) { addDocCrossReference(g_currentMemberDef,md); } } } else // not a class, maybe a global member { //fprintf(stderr,"class %s not linkable! cd=%p md=%p typeOnly=%d\n",clName,cd,md,typeOnly); if (!isLocal && (md!=0 || (cd==0 && !typeOnly))) // not a class, see if it is a global enum/variable/typedef. { if (md==0) // not found as a typedef { md = setCallContextForVar(clName); //printf("setCallContextForVar(%s) md=%p g_currentDefinition=%p\n",clName,md,g_currentDefinition); if (md && g_currentDefinition) { //fprintf(stderr,"%s accessible from %s? %d md->getOuterScope=%s\n", // md->name().data(),g_currentDefinition->name().data(), // isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md), // md->getOuterScope()->name().data()); } if (md && g_currentDefinition && isAccessibleFrom(g_currentDefinition,g_sourceFileDef,md)==-1) { md=0; // variable not accessible } } if (md && (!varOnly || md->isVariable())) { //fprintf(stderr,"is a global md=%p g_currentDefinition=%s linkable=%d\n",md,g_currentDefinition?g_currentDefinition->name().data():"",md->isLinkable()); if (md->isLinkable()) { QCString text; if (!g_forceTagReference.isEmpty()) // explicit reference to symbol in tag file { text=g_forceTagReference; if (text.right(4)==".tag") // strip .tag if present { text=text.left(text.length()-4); } text+=getLanguageSpecificSeparator(md->getLanguage()); text+=clName; md->setName(text); md->setLocalName(text); } else // normal reference { text=clName; } ol.linkableSymbol(g_yyLineNr,md->name(),md, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(ol,md->getReference(),md->getOutputFileBase(),md->anchor(),text,md->briefDescriptionAsTooltip()); addToSearchIndex(clName); if (g_currentMemberDef) { addDocCrossReference(g_currentMemberDef,md); } return; } } } // nothing found, just write out the word //fprintf(stderr,"not found!\n"); ol.linkableSymbol(g_yyLineNr,clName,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); codifyLines(clName); addToSearchIndex(clName); } } static bool generateClassMemberLink(CodeOutputInterface &ol,MemberDef *xmd,const char *memName) { // extract class definition of the return type in order to resolve // a->b()->c() like call chains //printf("type=`%s' args=`%s' class=%s\n", // xmd->typeString(),xmd->argsString(), // xmd->getClassDef()->name().data()); if (g_exampleBlock) { QCString anchor; anchor.sprintf("a%d",g_anchorCount); //printf("addExampleFile(%s,%s,%s)\n",anchor.data(),g_exampleName.data(), // g_exampleFile.data()); if (xmd->addExample(anchor,g_exampleName,g_exampleFile)) { ol.writeCodeAnchor(anchor); g_anchorCount++; } } ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString()),xmd->getOuterScope()); //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass); g_theCallContext.setClass(typeClass); Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ? xmd->getBodyDef() : xmd->getOuterScope(); if (xmd->getGroupDef()) xd = xmd->getGroupDef(); if (xd && xd->isLinkable()) { //printf("g_currentDefiniton=%p g_currentMemberDef=%p xmd=%p g_insideBody=%d\n",g_currentDefinition,g_currentMemberDef,xmd,g_insideBody); if (xmd->templateMaster()) xmd = xmd->templateMaster(); if (xmd->isLinkable()) { // add usage reference if (g_currentDefinition && g_currentMemberDef && /*xmd!=g_currentMemberDef &&*/ g_insideBody) { addDocCrossReference(g_currentMemberDef,xmd); } // write the actual link ol.linkableSymbol(g_yyLineNr,xmd->name(),xmd, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(ol,xmd->getReference(), xmd->getOutputFileBase(),xmd->anchor(),memName,xmd->briefDescriptionAsTooltip()); addToSearchIndex(memName); return TRUE; } } return FALSE; } static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const char *memName) { if (mcd) { MemberDef *xmd = mcd->getMemberByName(memName); //printf("generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd); if (xmd) { return generateClassMemberLink(ol,xmd,memName); } } return FALSE; } static void generateMemberLink(CodeOutputInterface &ol,const QCString &varName, char *memName) { //printf("generateMemberLink(object=%s,mem=%s) classScope=%s\n", // varName.data(),memName,g_classScope.data()); if (varName.isEmpty()) return; // look for the variable in the current context ClassDef *vcd = g_theVarContext.findVariable(varName); if (vcd) { if (vcd!=VariableContext::dummyContext) { //printf("Class found!\n"); if (getLink(vcd->name(),memName,ol)) { //printf("Found result!\n"); return; } if (vcd->baseClasses()) { BaseClassListIterator bcli(*vcd->baseClasses()); for ( ; bcli.current() ; ++bcli) { if (getLink(bcli.current()->classDef->name(),memName,ol)) { //printf("Found result!\n"); return; } } } } } else // variable not in current context, maybe it is in a parent context { vcd = getResolvedClass(g_currentDefinition,g_sourceFileDef,g_classScope); if (vcd && vcd->isLinkable()) { //printf("Found class %s for variable `%s'\n",g_classScope.data(),varName.data()); MemberName *vmn=Doxygen::memberNameSDict->find(varName); if (vmn==0) { int vi; QCString vn=varName; QCString scope; if ((vi=vn.findRev("::"))!=-1 || (vi=vn.findRev('.'))!=-1) // explicit scope A::b(), probably static member { ClassDef *jcd = getClass(vn.left(vi)); vn=vn.right(vn.length()-vi-2); vmn=Doxygen::memberNameSDict->find(vn); //printf("Trying name `%s' scope=%s\n",vn.data(),scope.data()); if (vmn) { MemberNameIterator vmni(*vmn); MemberDef *vmd; for (;(vmd=vmni.current());++vmni) { if (/*(vmd->isVariable() || vmd->isFunction()) && */ vmd->getClassDef()==jcd) { //printf("Found variable type=%s\n",vmd->typeString()); ClassDef *mcd=stripClassName(vmd->typeString(),vmd->getOuterScope()); if (mcd && mcd->isLinkable()) { if (generateClassMemberLink(ol,mcd,memName)) return; } } } } } } if (vmn) { //printf("There is a variable with name `%s'\n",varName); MemberNameIterator vmni(*vmn); MemberDef *vmd; for (;(vmd=vmni.current());++vmni) { if (/*(vmd->isVariable() || vmd->isFunction()) && */ vmd->getClassDef()==vcd) { //printf("Found variable type=%s\n",vmd->typeString()); ClassDef *mcd=stripClassName(vmd->typeString(),vmd->getOuterScope()); if (mcd && mcd->isLinkable()) { if (generateClassMemberLink(ol,mcd,memName)) return; } } } } } } // nothing found -> write result as is ol.linkableSymbol(g_yyLineNr,memName,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); codifyLines(memName); addToSearchIndex(memName); return; } static void generatePHPVariableLink(CodeOutputInterface &ol,const char *varName) { QCString name = varName+7; // strip $this-> name.prepend("$"); //printf("generatePHPVariableLink(%s) name=%s scope=%s\n",varName,name.data(),g_classScope.data()); if (!getLink(g_classScope,name,ol,varName)) { codifyLines(varName); } } static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName) { //CodeClassDef *ccd=0; ClassDef *ccd=0; QCString locScope=g_classScope; QCString locFunc=removeRedundantWhiteSpace(funcName); QCString funcScope; QCString funcWithScope=locFunc; QCString funcWithFullScope=locFunc; QCString fullScope=locScope; //fprintf(stdout,"*** locScope=%s locFunc=%s\n",locScope.data(),locFunc.data()); int len=2; int i=locFunc.findRev("::"); if (g_currentMemberDef && g_currentMemberDef->getClassDef() && funcName==g_currentMemberDef->localName() && g_currentMemberDef->getDefLine()==g_yyLineNr && generateClassMemberLink(ol,g_currentMemberDef,funcName) ) { // special case where funcName is the name of a method that is also // defined on this line. In this case we can directly link to // g_currentMemberDef, which is not only faster, but // in case of overloaded methods, this will make sure that we link to // the correct method, and thereby get the correct reimplemented relations. // See also bug 549022. goto exit; } if (i==-1) i=locFunc.findRev("."),len=1; if (i==-1) i=locFunc.findRev("\\"),len=1; // for PHP if (i>0) { funcScope=locFunc.left(i); locFunc=locFunc.right(locFunc.length()-i-len).stripWhiteSpace(); int ts=locScope.find('<'); // start of template int te=locScope.findRev('>'); // end of template //printf("ts=%d te=%d\n",ts,te); if (ts!=-1 && te!=-1 && te>ts) { // remove template from scope locScope=locScope.left(ts)+locScope.right(locScope.length()-te-1); } ts=funcScope.find('<'); // start of template te=funcScope.findRev('>'); // end of template //printf("ts=%d te=%d\n",ts,te); if (ts!=-1 && te!=-1 && te>ts) { // remove template from scope funcScope=funcScope.left(ts)+funcScope.right(funcScope.length()-te-1); } if (!funcScope.isEmpty()) { funcWithScope = funcScope+"::"+locFunc; if (!locScope.isEmpty()) { fullScope=locScope+"::"+funcScope; } } if (!locScope.isEmpty()) { funcWithFullScope = locScope+"::"+funcWithScope; } } if (!fullScope.isEmpty() && (ccd=g_codeClassSDict->find(fullScope))) { //printf("using classScope %s\n",g_classScope.data()); if (ccd->baseClasses()) { BaseClassListIterator bcli(*ccd->baseClasses()); for ( ; bcli.current() ; ++bcli) { if (getLink(bcli.current()->classDef->name(),locFunc,ol,funcName)) { goto exit; } } } } if (!locScope.isEmpty() && fullScope!=locScope && (ccd=g_codeClassSDict->find(locScope))) { //printf("using classScope %s\n",g_classScope.data()); if (ccd->baseClasses()) { BaseClassListIterator bcli(*ccd->baseClasses()); for ( ; bcli.current() ; ++bcli) { if (getLink(bcli.current()->classDef->name(),funcWithScope,ol,funcName)) { goto exit; } } } } if (!getLink(locScope,funcWithScope,ol,funcName)) { generateClassOrGlobalLink(ol,funcName); } exit: g_forceTagReference.resize(0); return; } /*! counts the number of lines in the input */ static int countLines() { const char *p=g_inputString; char c; int count=1; while ((c=*p)) { p++ ; if (c=='\n') count++; } if (p>g_inputString && *(p-1)!='\n') { // last line does not end with a \n, so we add an extra // line and explicitly terminate the line after parsing. count++, g_needsTermination=TRUE; } return count; } static void endFontClass() { if (g_currentFontClass) { g_code->endFontClass(); g_currentFontClass=0; } } static void startFontClass(const char *s) { endFontClass(); g_code->startFontClass(s); g_currentFontClass=s; } //---------------------------------------------------------------------------- // recursively writes a linkified Objective-C method call static void writeObjCMethodCall(ObjCCallCtx *ctx) { if (ctx==0) return; char c; const char *p = ctx->format.data(); if (!ctx->methodName.isEmpty()) { //printf("writeObjCMethodCall(%s) obj=%s method=%s\n", // ctx->format.data(),ctx->objectTypeOrName.data(),ctx->methodName.data()); if (!ctx->objectTypeOrName.isEmpty() && ctx->objectTypeOrName.at(0)!='$') { //printf("Looking for object=%s method=%s\n",ctx->objectTypeOrName.data(), // ctx->methodName.data()); ClassDef *cd = g_theVarContext.findVariable(ctx->objectTypeOrName); if (cd==0) // not a local variable { if (ctx->objectTypeOrName=="self") { if (g_currentDefinition && g_currentDefinition->definitionType()==Definition::TypeClass) { ctx->objectType = (ClassDef *)g_currentDefinition; } } else { ctx->objectType = getResolvedClass( g_currentDefinition, g_sourceFileDef, ctx->objectTypeOrName, &ctx->method); } //printf(" object is class? %p\n",ctx->objectType); if (ctx->objectType) // found class { ctx->method = ctx->objectType->getMemberByName(ctx->methodName); //printf(" yes->method=%s\n",ctx->method?ctx->method->name().data():""); } else if (ctx->method==0) // search for class variable with the same name { //printf(" no\n"); //printf("g_currentDefinition=%p\n",g_currentDefinition); if (g_currentDefinition && g_currentDefinition->definitionType()==Definition::TypeClass) { ctx->objectVar = ((ClassDef *)g_currentDefinition)->getMemberByName(ctx->objectTypeOrName); //printf(" ctx->objectVar=%p\n",ctx->objectVar); if (ctx->objectVar) { ctx->objectType = stripClassName(ctx->objectVar->typeString()); //printf(" ctx->objectType=%p\n",ctx->objectType); if (ctx->objectType) { ctx->method = ctx->objectType->getMemberByName(ctx->methodName); //printf(" ctx->method=%p\n",ctx->method); } } } } } else // local variable { //printf(" object is local variable\n"); if (cd!=VariableContext::dummyContext) { ctx->method = cd->getMemberByName(ctx->methodName); //printf(" class=%p method=%p\n",cd,ctx->method); } } } } //printf("["); while ((c=*p++)) // for each character in ctx->format { if (c=='$') { char nc=*p++; if (nc=='$') // escaped $ { g_code->codify("$"); } else // name fragment or reference to a nested call { if (nc=='n') // name fragment { nc=*p++; QCString refIdStr; while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } p--; int refId=refIdStr.toInt(); QCString *pName = g_nameDict.find(refId); if (pName) { if (ctx->method && ctx->method->isLinkable()) { g_code->linkableSymbol(g_yyLineNr,ctx->method->name(),ctx->method, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(*g_code, ctx->method->getReference(), ctx->method->getOutputFileBase(), ctx->method->anchor(), pName->data(), ctx->method->briefDescriptionAsTooltip()); if (g_currentMemberDef) { addDocCrossReference(g_currentMemberDef,ctx->method); } } else { g_code->linkableSymbol(g_yyLineNr,pName->data(),0, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); codifyLines(pName->data()); } } else { //printf("Invalid name: id=%d\n",refId); } } else if (nc=='o') // reference to potential object name { nc=*p++; QCString refIdStr; while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } p--; int refId=refIdStr.toInt(); QCString *pObject = g_objectDict.find(refId); if (pObject) { if (*pObject=="self") { if (g_currentDefinition && g_currentDefinition->definitionType()==Definition::TypeClass) { ctx->objectType = (ClassDef *)g_currentDefinition; if (ctx->objectType->categoryOf()) { ctx->objectType = ctx->objectType->categoryOf(); } if (ctx->objectType) { ctx->method = ctx->objectType->getMemberByName(ctx->methodName); } } startFontClass("keyword"); codifyLines(pObject->data()); endFontClass(); } else if (*pObject=="super") { if (g_currentDefinition && g_currentDefinition->definitionType()==Definition::TypeClass) { ClassDef *cd = (ClassDef *)g_currentDefinition; if (cd->categoryOf()) { cd = cd->categoryOf(); } BaseClassList *bcd = cd->baseClasses(); if (bcd) // get direct base class (there should be only one) { BaseClassListIterator bli(*bcd); BaseClassDef *bclass; for (bli.toFirst();(bclass=bli.current());++bli) { if (bclass->classDef->compoundType()!=ClassDef::Protocol) { ctx->objectType = bclass->classDef; if (ctx->objectType) { ctx->method = ctx->objectType->getMemberByName(ctx->methodName); } } } } } startFontClass("keyword"); codifyLines(pObject->data()); endFontClass(); } else if (ctx->objectVar && ctx->objectVar->isLinkable()) // object is class variable { g_code->linkableSymbol(g_yyLineNr,ctx->objectVar->name(),ctx->objectVar, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(*g_code, ctx->objectVar->getReference(), ctx->objectVar->getOutputFileBase(), ctx->objectVar->anchor(), pObject->data(), ctx->objectVar->briefDescriptionAsTooltip()); if (g_currentMemberDef) { addDocCrossReference(g_currentMemberDef,ctx->objectVar); } } else if (ctx->objectType && ctx->objectType!=VariableContext::dummyContext && ctx->objectType->isLinkable() ) // object is class name { ClassDef *cd = ctx->objectType; g_code->linkableSymbol(g_yyLineNr,cd->name(),cd, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(*g_code, cd->getReference(), cd->getOutputFileBase(), cd->anchor(), pObject->data(), cd->briefDescriptionAsTooltip()); } else // object still needs to be resolved { ClassDef *cd = getResolvedClass(g_currentDefinition, g_sourceFileDef, *pObject); if (cd && cd->isLinkable()) { if (ctx->objectType==0) ctx->objectType=cd; g_code->linkableSymbol(g_yyLineNr,cd->name(),cd, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); writeMultiLineCodeLink(*g_code, cd->getReference(), cd->getOutputFileBase(), cd->anchor(), pObject->data(), cd->briefDescriptionAsTooltip()); } else { g_code->linkableSymbol(g_yyLineNr,pObject->data(),0, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); codifyLines(pObject->data()); } } } else { //printf("Invalid object: id=%d\n",refId); } } else if (nc=='c') // reference to nested call { nc=*p++; QCString refIdStr; while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } p--; int refId=refIdStr.toInt(); ObjCCallCtx *ictx = g_contextDict.find(refId); if (ictx) // recurse into nested call { writeObjCMethodCall(ictx); if (ictx->method) // link to nested call successfully { // get the ClassDef representing the method's return type if (QCString(ictx->method->typeString())=="id") { // see if the method name is unique, if so we link to it MemberName *mn=Doxygen::memberNameSDict->find(ctx->methodName); //printf("mn->count=%d ictx->method=%s ctx->methodName=%s\n", // mn==0?-1:(int)mn->count(), // ictx->method->name().data(), // ctx->methodName.data()); if (mn && mn->count()==1) // member name unique { ctx->method = mn->getFirst(); } } else { ctx->objectType = stripClassName(ictx->method->typeString()); if (ctx->objectType) { ctx->method = ctx->objectType->getMemberByName(ctx->methodName); } } //printf(" ***** method=%s -> object=%p\n",ictx->method->name().data(),ctx->objectType); } } else { //printf("Invalid context: id=%d\n",refId); } } else if (nc=='w') // some word { nc=*p++; QCString refIdStr; while (nc!=0 && isdigit(nc)) { refIdStr+=nc; nc=*p++; } p--; int refId=refIdStr.toInt(); QCString *pWord = g_wordDict.find(refId); if (pWord) { g_code->linkableSymbol(g_yyLineNr,pWord->data(),0, g_currentMemberDef ? g_currentMemberDef : g_currentDefinition); codifyLines(pWord->data()); } } else // illegal marker { ASSERT(!"invalid escape sequence"); } } } else // normal non-marker character { char s[2]; s[0]=c;s[1]=0; codifyLines(s); } } //printf("%s %s]\n",ctx->objectTypeOrName.data(),ctx->methodName.data()); //printf("}=(type='%s',name='%s')", // ctx->objectTypeOrName.data(), // ctx->methodName.data()); } // Replaces an Objective-C method name fragment s by a marker of the form // $n12, the number (12) can later be used as a key for obtaining the name // fragment, from g_nameDict static QCString escapeName(const char *s) { QCString result; result.sprintf("$n%d",g_currentNameId); g_nameDict.insert(g_currentNameId,new QCString(s)); g_currentNameId++; return result; } static QCString escapeObject(const char *s) { QCString result; result.sprintf("$o%d",g_currentObjId); g_objectDict.insert(g_currentObjId,new QCString(s)); g_currentObjId++; return result; } static QCString escapeWord(const char *s) { QCString result; result.sprintf("$w%d",g_currentWordId); g_wordDict.insert(g_currentWordId,new QCString(s)); g_currentWordId++; return result; } /* ----------------------------------------------------------------- */ #undef YY_INPUT #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size); static int yyread(char *buf,int max_size) { int c=0; while( c < max_size && g_inputString[g_inputPosition] ) { *buf = g_inputString[g_inputPosition++] ; c++; buf++; } return c; } #line 12259 "" #define INITIAL 0 #define SkipString 1 #define SkipStringS 2 #define SkipVerbString 3 #define SkipCPP 4 #define SkipComment 5 #define SkipCxxComment 6 #define RemoveSpecialCComment 7 #define StripSpecialCComment 8 #define Body 9 #define FuncCall 10 #define MemberCall 11 #define MemberCall2 12 #define SkipInits 13 #define ClassName 14 #define PackageName 15 #define ClassVar 16 #define CppCliTypeModifierFollowup 17 #define Bases 18 #define SkipSharp 19 #define ReadInclude 20 #define TemplDecl 21 #define TemplCast 22 #define CallEnd 23 #define ObjCMethod 24 #define ObjCParams 25 #define ObjCParamType 26 #define ObjCCall 27 #define ObjCMName 28 #define ObjCSkipStr 29 #define OldStyleArgs 30 #define UsingName 31 #define RawString 32 #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 #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int codeYYlex_destroy (void ); int codeYYget_debug (void ); void codeYYset_debug (int debug_flag ); YY_EXTRA_TYPE codeYYget_extra (void ); void codeYYset_extra (YY_EXTRA_TYPE user_defined ); FILE *codeYYget_in (void ); void codeYYset_in (FILE * in_str ); FILE *codeYYget_out (void ); void codeYYset_out (FILE * out_str ); yy_size_t codeYYget_leng (void ); char *codeYYget_text (void ); int codeYYget_lineno (void ); void codeYYset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int codeYYwrap (void ); #else extern int codeYYwrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void ); #else static int input (void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 262144 #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 fwrite( codeYYtext, codeYYleng, 1, codeYYout ) #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 = '*'; \ yy_size_t n; \ for ( n = 0; n < max_size && \ (c = getc( codeYYin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( codeYYin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, codeYYin))==0 && ferror(codeYYin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(codeYYin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int codeYYlex (void); #define YY_DECL int codeYYlex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after codeYYtext and codeYYleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ if ( codeYYleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (codeYYtext[codeYYleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 1866 "code.l" #line 12479 "" if ( !(yy_init) ) { (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 ( ! (yy_state_buf) ) (yy_state_buf) = (yy_state_type *)codeYYalloc(YY_STATE_BUF_SIZE ); if ( ! (yy_state_buf) ) YY_FATAL_ERROR( "out of dynamic memory in codeYYlex()" ); if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! codeYYin ) codeYYin = stdin; if ( ! codeYYout ) codeYYout = stdout; if ( ! YY_CURRENT_BUFFER ) { codeYYensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); } codeYY_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of codeYYtext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); (yy_state_ptr) = (yy_state_buf); *(yy_state_ptr)++ = yy_current_state; yy_match: do { register 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 >= 3492 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } while ( yy_base[yy_current_state] != 35984 ); yy_find_action: yy_current_state = *--(yy_state_ptr); (yy_lp) = yy_accept[yy_current_state]; goto find_rule; /* Shut up GCC warning -Wall */ find_rule: /* we branch to this label when backing up */ for ( ; ; ) /* until we find what rule we matched */ { if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) { yy_act = yy_acclist[(yy_lp)]; if ( yy_act & YY_TRAILING_HEAD_MASK || (yy_looking_for_trail_begin) ) { if ( yy_act == (yy_looking_for_trail_begin) ) { (yy_looking_for_trail_begin) = 0; yy_act &= ~YY_TRAILING_HEAD_MASK; break; } } else if ( yy_act & YY_TRAILING_MASK ) { (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK; (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK; (yy_full_match) = yy_cp; (yy_full_state) = (yy_state_ptr); (yy_full_lp) = (yy_lp); } else { (yy_full_match) = yy_cp; (yy_full_state) = (yy_state_ptr); (yy_full_lp) = (yy_lp); break; } ++(yy_lp); goto find_rule; } --yy_cp; yy_current_state = *--(yy_state_ptr); (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 1868 "code.l" YY_BREAK case 2: YY_RULE_SETUP #line 1869 "code.l" { startFontClass("preprocessor"); g_code->codify(codeYYtext); BEGIN( ReadInclude ); } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP #line 1874 "code.l" { g_insideObjC=TRUE; startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); if (!g_insideTemplate) BEGIN( ClassName ); } YY_BREAK case 4: YY_RULE_SETUP #line 1882 "code.l" { if (g_insideTemplate) REJECT; startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); BEGIN( ClassName ); } YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP #line 1889 "code.l" { if (g_insideTemplate) REJECT; startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 6: YY_RULE_SETUP #line 1895 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); if (!g_insideTemplate) BEGIN( ClassName ); } YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP #line 1902 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); BEGIN( PackageName ); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP #line 1908 "code.l" { if (!g_insideObjC) REJECT; codifyLines(codeYYtext); BEGIN(Body); } YY_BREAK case 9: YY_RULE_SETUP #line 1913 "code.l" { if (!g_insideObjC || g_insideBody) { g_code->codify(codeYYtext); } else // Start of Objective-C method { //printf("Method!\n"); g_code->codify(codeYYtext); BEGIN(ObjCMethod); } } YY_BREAK case 10: YY_RULE_SETUP #line 1925 "code.l" { g_code->codify(codeYYtext); BEGIN(ObjCParams); } YY_BREAK case 11: YY_RULE_SETUP #line 1929 "code.l" { g_code->codify(codeYYtext); BEGIN(ObjCParamType); } YY_BREAK case 12: YY_RULE_SETUP #line 1933 "code.l" { g_code->codify(codeYYtext); if (*codeYYtext=='{') { g_curlyCount++; if (g_searchingForBody) { g_searchingForBody=FALSE; g_insideBody=TRUE; } if (g_insideBody) g_bodyCurlyCount++; if (!g_curClassName.isEmpty()) // valid class name { pushScope(g_curClassName); DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); g_scopeStack.push(SCOPEBLOCK); } } g_type.resize(0); g_name.resize(0); BEGIN(Body); } YY_BREAK case 13: YY_RULE_SETUP #line 1955 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 14: YY_RULE_SETUP #line 1958 "code.l" { startFontClass("keywordtype"); g_code->codify(codeYYtext); endFontClass(); g_parmType=codeYYtext; } YY_BREAK case 15: YY_RULE_SETUP #line 1964 "code.l" { generateClassOrGlobalLink(*g_code,codeYYtext); g_parmType=codeYYtext; } YY_BREAK case 16: YY_RULE_SETUP #line 1968 "code.l" { g_code->codify(codeYYtext); BEGIN(ObjCParams); } YY_BREAK case 17: YY_RULE_SETUP #line 1972 "code.l" { g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); g_code->codify(codeYYtext); g_parmName=codeYYtext; g_theVarContext.addVariable(g_parmType,g_parmName); g_parmType.resize(0);g_parmName.resize(0); } YY_BREAK case 18: YY_RULE_SETUP #line 1980 "code.l" { generateClassOrGlobalLink(*g_code,codeYYtext); } YY_BREAK case 19: YY_RULE_SETUP #line 1983 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP #line 1986 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 21: YY_RULE_SETUP #line 1989 "code.l" { //FileInfo *f; bool ambig; bool found=FALSE; //QCString absPath = codeYYtext; //if (g_sourceFileDef && QDir::isRelativePath(absPath)) //{ // absPath = QDir::cleanDirPath(g_sourceFileDef->getPath()+"/"+absPath); //} FileDef *fd=findFileDef(Doxygen::inputNameDict,codeYYtext,ambig); //printf("looking for include %s -> %s fd=%p\n",codeYYtext,absPath.data(),fd); if (fd && fd->isLinkable()) { if (ambig) // multiple input files match the name { //printf("===== yes %s is ambiguous\n",codeYYtext); QCString name = convertToQCString(QDir::cleanDirPath(codeYYtext)); if (!name.isEmpty() && g_sourceFileDef) { FileName *fn = Doxygen::inputNameDict->find(name); if (fn) { FileNameIterator fni(*fn); // for each include name for (fni.toFirst();!found && (fd=fni.current());++fni) { // see if this source file actually includes the file found = g_sourceFileDef->isIncluded(fd->absFilePath()); //printf(" include file %s found=%d\n",fd->absFilePath().data(),found); } } } } else // not ambiguous { found = TRUE; } } //printf(" include file %s found=%d\n",fd ? fd->absFilePath().data() : "",found); if (found) { g_code->writeCodeLink(fd->getReference(),fd->getOutputFileBase(),0,codeYYtext,fd->briefDescriptionAsTooltip()); } else { g_code->codify(codeYYtext); } char c=yyinput(); QCString text; text+=c; g_code->codify(text); endFontClass(); BEGIN( Body ); } YY_BREAK case 22: YY_RULE_SETUP #line 2044 "code.l" { startFontClass("preprocessor"); g_lastSkipCppContext = YY_START; g_code->codify(codeYYtext); BEGIN( SkipCPP ) ; } YY_BREAK case 23: YY_RULE_SETUP #line 2050 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 24: YY_RULE_SETUP #line 2053 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP #line 2056 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 26: YY_RULE_SETUP #line 2059 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 27: YY_RULE_SETUP #line 2062 "code.l" { g_theVarContext.pushScope(); DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); g_scopeStack.push(INNERBLOCK); if (g_searchingForBody) { g_searchingForBody=FALSE; g_insideBody=TRUE; } g_code->codify(codeYYtext); g_curlyCount++; if (g_insideBody) { g_bodyCurlyCount++; } g_type.resize(0); g_name.resize(0); BEGIN( Body ); } YY_BREAK case 28: YY_RULE_SETUP #line 2083 "code.l" { g_theVarContext.popScope(); g_type.resize(0); g_name.resize(0); int *scope = g_scopeStack.pop(); DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK)); if (scope==SCOPEBLOCK || scope==CLASSBLOCK) { popScope(); } g_code->codify(codeYYtext); //fprintf(stderr,"g_bodyCurlyCount=%d\n",g_bodyCurlyCount); if (--g_bodyCurlyCount<=0) { g_insideBody=FALSE; g_currentMemberDef=0; if (g_currentDefinition) g_currentDefinition=g_currentDefinition->getOuterScope(); } BEGIN(Body); } YY_BREAK case 29: YY_RULE_SETUP #line 2107 "code.l" { //printf("End of objc scope fd=%s\n",g_sourceFileDef->name().data()); if (g_sourceFileDef) { FileDef *fd=g_sourceFileDef; g_insideObjC = fd->name().lower().right(2)==".m" || fd->name().lower().right(3)==".mm"; //printf("insideObjC=%d\n",g_insideObjC); } else { g_insideObjC = FALSE; } if (g_insideBody) { g_theVarContext.popScope(); int *scope = g_scopeStack.pop(); DBG_CTX((stderr,"** scope stack pop SCOPEBLOCK=%d\n",scope==SCOPEBLOCK)); if (scope==SCOPEBLOCK || scope==CLASSBLOCK) { popScope(); } g_insideBody=FALSE; } startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); g_currentMemberDef=0; if (g_currentDefinition) g_currentDefinition=g_currentDefinition->getOuterScope(); BEGIN(Body); } YY_BREAK case 30: YY_RULE_SETUP #line 2142 "code.l" { g_code->codify(codeYYtext); g_searchingForBody=FALSE; BEGIN( Body ); } YY_BREAK case 31: YY_RULE_SETUP #line 2147 "code.l" { g_type=g_curClassName.copy(); g_name.resize(0); g_code->codify(codeYYtext); BEGIN( Body ); // variable of type struct * } YY_BREAK case 32: YY_RULE_SETUP #line 2153 "code.l" { startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 33: YY_RULE_SETUP #line 2158 "code.l" { g_curClassName=codeYYtext; addType(); generateClassOrGlobalLink(*g_code,codeYYtext); BEGIN( ClassVar ); } YY_BREAK case 34: YY_RULE_SETUP #line 2164 "code.l" { // PHP namespace g_curClassName=substitute(codeYYtext,"\\","::"); g_scopeStack.push(CLASSBLOCK); pushScope(g_curClassName); addType(); generateClassOrGlobalLink(*g_code,codeYYtext); BEGIN( ClassVar ); } YY_BREAK case 35: YY_RULE_SETUP #line 2172 "code.l" { // Obj-C category g_curClassName=removeRedundantWhiteSpace(codeYYtext); g_scopeStack.push(CLASSBLOCK); pushScope(g_curClassName); addType(); generateClassOrGlobalLink(*g_code,codeYYtext); BEGIN( ClassVar ); } YY_BREAK case 36: YY_RULE_SETUP #line 2180 "code.l" { g_curClassName=substitute(codeYYtext,".","::"); //printf("found package: %s\n",g_curClassName.data()); addType(); codifyLines(codeYYtext); } YY_BREAK case 37: YY_RULE_SETUP #line 2186 "code.l" { unput(*codeYYtext); BEGIN( Body ); } YY_BREAK case 38: YY_RULE_SETUP #line 2190 "code.l" { // Java startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); g_curClassBases.clear(); BEGIN( Bases ); } YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP #line 2197 "code.l" { //fprintf(stderr,"***** C++/CLI modifier %s on g_curClassName=%s\n",codeYYtext,g_curClassName.data()); startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); BEGIN( CppCliTypeModifierFollowup ); } YY_BREAK case 40: YY_RULE_SETUP #line 2204 "code.l" { g_type = g_curClassName.copy(); g_name = codeYYtext; if (g_insideBody) { g_theVarContext.addVariable(g_type,g_name); } generateClassOrGlobalLink(*g_code,codeYYtext); } YY_BREAK case 41: YY_RULE_SETUP #line 2213 "code.l" { codifyLines(codeYYtext); g_curClassBases.clear(); BEGIN( Bases ); } YY_BREAK case 42: #line 2219 "code.l" case 43: #line 2220 "code.l" case 44: YY_RULE_SETUP #line 2220 "code.l" { g_theVarContext.pushScope(); g_code->codify(codeYYtext); g_curlyCount++; if (YY_START==ClassVar && g_curClassName.isEmpty()) { g_curClassName = g_name.copy(); } if (g_searchingForBody) { g_searchingForBody=FALSE; g_insideBody=TRUE; } if (g_insideBody) g_bodyCurlyCount++; if (!g_curClassName.isEmpty()) // valid class name { DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n")); g_scopeStack.push(CLASSBLOCK); pushScope(g_curClassName); //fprintf(stderr,"***** g_curClassName=%s\n",g_curClassName.data()); if (getResolvedClass(g_currentDefinition,g_sourceFileDef,g_curClassName)==0) { //fprintf(stderr,"Adding new class %s\n",g_curClassName.data()); ClassDef *ncd=new ClassDef("",1, g_curClassName,ClassDef::Class,0,0,FALSE); g_codeClassSDict->append(g_curClassName,ncd); // insert base classes. char *s=g_curClassBases.first(); while (s) { ClassDef *bcd; bcd=g_codeClassSDict->find(s); if (bcd==0) bcd=getResolvedClass(g_currentDefinition,g_sourceFileDef,s); if (bcd && bcd!=ncd) { ncd->insertBaseClass(bcd,s,Public,Normal); } s=g_curClassBases.next(); } } //printf("g_codeClassList.count()=%d\n",g_codeClassList.count()); } else // not a class name -> assume inner block { DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); g_scopeStack.push(INNERBLOCK); } g_curClassName.resize(0); g_curClassBases.clear(); BEGIN( Body ); } YY_BREAK case 45: YY_RULE_SETUP #line 2271 "code.l" { startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 46: YY_RULE_SETUP #line 2276 "code.l" { //fprintf(stderr,"%s:addBase(%s)\n",g_curClassName.data(),codeYYtext); g_curClassBases.inSort(codeYYtext); generateClassOrGlobalLink(*g_code,codeYYtext); } YY_BREAK case 47: YY_RULE_SETUP #line 2281 "code.l" { g_code->codify(codeYYtext); if (!g_insideObjC) { g_sharpCount=1; BEGIN ( SkipSharp ); } else { g_insideProtocolList=TRUE; } } YY_BREAK case 48: YY_RULE_SETUP #line 2293 "code.l" { g_code->codify(codeYYtext); g_insideProtocolList=FALSE; } YY_BREAK case 49: YY_RULE_SETUP #line 2297 "code.l" { g_code->codify(codeYYtext); ++g_sharpCount; } YY_BREAK case 50: YY_RULE_SETUP #line 2301 "code.l" { g_code->codify(codeYYtext); if (--g_sharpCount<=0) BEGIN ( Bases ); } YY_BREAK case 51: YY_RULE_SETUP #line 2306 "code.l" { g_code->codify(codeYYtext); g_sharpCount=1; BEGIN ( SkipSharp ); } YY_BREAK case 52: YY_RULE_SETUP #line 2311 "code.l" { g_code->codify(codeYYtext); ++g_sharpCount; } YY_BREAK case 53: YY_RULE_SETUP #line 2315 "code.l" { g_code->codify(codeYYtext); if (--g_sharpCount<=0) BEGIN ( Bases ); } YY_BREAK case 54: YY_RULE_SETUP #line 2322 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 55: /* rule 55 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2327 "code.l" { addType(); generateFunctionLink(*g_code,codeYYtext); g_bracketCount=0; g_args.resize(0); g_name+=codeYYtext; BEGIN( FuncCall ); } YY_BREAK case 56: /* rule 56 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2335 "code.l" { addType(); generateFunctionLink(*g_code,codeYYtext); g_bracketCount=0; g_args.resize(0); g_name+=codeYYtext; BEGIN( FuncCall ); } YY_BREAK case 57: /* rule 57 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2343 "code.l" { addType(); generateFunctionLink(*g_code,codeYYtext); g_bracketCount=0; g_args.resize(0); g_name+=codeYYtext; BEGIN( FuncCall ); } YY_BREAK case 58: /* rule 58 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2351 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); g_insideTemplate=TRUE; g_sharpCount=0; } YY_BREAK case 59: /* rule 59 can match eol */ YY_RULE_SETUP #line 2358 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); BEGIN(UsingName); } YY_BREAK case 60: YY_RULE_SETUP #line 2364 "code.l" { addUsingDirective(codeYYtext); generateClassOrGlobalLink(*g_code,codeYYtext); DBG_CTX((stderr,"** scope stack push CLASSBLOCK\n")); g_scopeStack.push(CLASSBLOCK); pushScope(codeYYtext); BEGIN(Body); } YY_BREAK case 61: /* rule 61 can match eol */ YY_RULE_SETUP #line 2371 "code.l" { codifyLines(codeYYtext); BEGIN(Body); } YY_BREAK case 62: YY_RULE_SETUP #line 2372 "code.l" { codifyLines(codeYYtext); BEGIN(Body); } YY_BREAK case 63: YY_RULE_SETUP #line 2373 "code.l" { g_code->codify(codeYYtext); // this-> for C++, this. for C# } YY_BREAK case 64: /* rule 64 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2375 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); if (QCString(codeYYtext)=="typedef") { addType(); g_name+=codeYYtext; } endFontClass(); } YY_BREAK case 65: YY_RULE_SETUP #line 2385 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 66: /* rule 66 can match eol */ YY_RULE_SETUP #line 2390 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); g_name.resize(0);g_type.resize(0); } YY_BREAK case 67: /* rule 67 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2396 "code.l" { if (!g_inForEachExpression) REJECT; startFontClass("keywordflow"); codifyLines(codeYYtext); endFontClass(); // insert the variable in the parent scope, see bug 546158 g_theVarContext.popScope(); g_theVarContext.addVariable(g_parmType,g_parmName); g_theVarContext.pushScope(); g_name.resize(0);g_type.resize(0); } YY_BREAK case 68: /* rule 68 can match eol */ YY_RULE_SETUP #line 2407 "code.l" { startFontClass("keywordflow"); codifyLines(codeYYtext); endFontClass(); g_name.resize(0);g_type.resize(0); g_inForEachExpression = (strcmp(codeYYtext,"for each")==0 || strcmp(codeYYtext, "foreach")==0); BEGIN(FuncCall); } YY_BREAK case 69: /* rule 69 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2415 "code.l" { startFontClass("keywordflow"); codifyLines(codeYYtext); endFontClass(); if (g_inFunctionTryBlock && (strcmp(codeYYtext,"catch")==0 || strcmp(codeYYtext,"finally")==0)) { g_inFunctionTryBlock=FALSE; } } YY_BREAK case 70: YY_RULE_SETUP #line 2424 "code.l" { startFontClass("keywordflow"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 71: YY_RULE_SETUP #line 2429 "code.l" { // end of cast? g_code->codify(codeYYtext); g_theCallContext.popScope(); g_bracketCount--; g_parmType = g_name; BEGIN(FuncCall); } YY_BREAK case 72: YY_RULE_SETUP #line 2436 "code.l" { g_code->codify(codeYYtext); g_name.resize(0);g_type.resize(0); if (*codeYYtext==')') { g_theCallContext.popScope(); g_bracketCount--; BEGIN(FuncCall); } } YY_BREAK case 73: YY_RULE_SETUP #line 2446 "code.l" { startFontClass("keywordtype"); g_code->codify(codeYYtext); endFontClass(); addType(); g_name+=codeYYtext; } YY_BREAK case 74: *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2453 "code.l" { startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); g_sharpCount=0; BEGIN(TemplDecl); } YY_BREAK case 75: *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2460 "code.l" { // template<...> startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); g_sharpCount=0; BEGIN(TemplDecl); } YY_BREAK case 76: YY_RULE_SETUP #line 2467 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 77: YY_RULE_SETUP #line 2472 "code.l" { g_code->codify(codeYYtext); g_sharpCount++; } YY_BREAK case 78: YY_RULE_SETUP #line 2476 "code.l" { g_code->codify(codeYYtext); g_sharpCount--; if (g_sharpCount<=0) { BEGIN(Body); } } YY_BREAK case 79: YY_RULE_SETUP #line 2484 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); BEGIN( g_lastTemplCastContext ); } YY_BREAK case 80: YY_RULE_SETUP #line 2490 "code.l" { generateClassOrGlobalLink(*g_code,codeYYtext); } YY_BREAK case 81: YY_RULE_SETUP #line 2493 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 82: YY_RULE_SETUP #line 2498 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 83: YY_RULE_SETUP #line 2501 "code.l" { // static_cast( startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); g_lastTemplCastContext = YY_START; BEGIN(TemplCast); } YY_BREAK case 84: /* rule 84 can match eol */ YY_RULE_SETUP #line 2508 "code.l" { // PHP member variable addType(); generatePHPVariableLink(*g_code,codeYYtext); g_name+=codeYYtext+7; } YY_BREAK case 85: /* rule 85 can match eol */ YY_RULE_SETUP #line 2513 "code.l" { // A *pt; int i=QCString(codeYYtext).find('<'); QCString kw = QCString(codeYYtext).left(i).stripWhiteSpace(); if (kw.right(5)=="_cast" && YY_START==Body) { REJECT; } addType(); generateClassOrGlobalLink(*g_code,codeYYtext); g_name+=codeYYtext; } YY_BREAK case 86: /* rule 86 can match eol */ YY_RULE_SETUP #line 2524 "code.l" { // "int var;" or "var, var2" or "debug(f) macro" addType(); // changed this to generateFunctionLink, see bug 624514 //generateClassOrGlobalLink(*g_code,codeYYtext,FALSE,TRUE); generateFunctionLink(*g_code,codeYYtext); g_name+=codeYYtext; } YY_BREAK case 87: /* rule 87 can match eol */ YY_RULE_SETUP #line 2531 "code.l" { // p->func() addType(); generateClassOrGlobalLink(*g_code,codeYYtext); g_name+=codeYYtext; } YY_BREAK case 88: /* rule 88 can match eol */ YY_RULE_SETUP #line 2536 "code.l" { // (*p)->func() but not "if (p) ..." g_code->codify(codeYYtext); int s=0;while (s<(int)codeYYleng && !isId(codeYYtext[s])) s++; int e=(int)codeYYleng-1;while (e>=0 && !isId(codeYYtext[e])) e--; QCString varname = ((QCString)codeYYtext).mid(s,e-s+1); addType(); g_name=varname; } YY_BREAK case 89: /* rule 89 can match eol */ YY_RULE_SETUP #line 2544 "code.l" { // a() or c::a() or t::a() or A\B\foo() addType(); generateFunctionLink(*g_code,codeYYtext); g_bracketCount=0; g_args.resize(0); g_name+=codeYYtext; BEGIN( FuncCall ); } YY_BREAK case 90: /* rule 90 can match eol */ YY_RULE_SETUP #line 2552 "code.l" { QCString text=codeYYtext; int i=text.find('R'); g_code->codify(text.left(i+1)); startFontClass("stringliteral"); g_code->codify(codeYYtext+i+1); g_lastStringContext=YY_START; g_inForEachExpression = FALSE; g_delimiter = codeYYtext+i+2; g_delimiter=g_delimiter.left(g_delimiter.length()-1); BEGIN( RawString ); } YY_BREAK case 91: YY_RULE_SETUP #line 2564 "code.l" { startFontClass("stringliteral"); g_code->codify(codeYYtext); g_lastStringContext=YY_START; g_inForEachExpression = FALSE; BEGIN( SkipString ); } YY_BREAK case 92: YY_RULE_SETUP #line 2571 "code.l" { startFontClass("stringliteral"); g_code->codify(codeYYtext); g_lastStringContext=YY_START; g_inForEachExpression = FALSE; BEGIN( SkipStringS ); } YY_BREAK case 93: YY_RULE_SETUP #line 2578 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 94: YY_RULE_SETUP #line 2581 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 95: YY_RULE_SETUP #line 2584 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 96: YY_RULE_SETUP #line 2587 "code.l" { g_code->codify(codeYYtext); endFontClass(); BEGIN( g_lastStringContext ); } YY_BREAK case 97: YY_RULE_SETUP #line 2592 "code.l" { g_code->codify(codeYYtext); endFontClass(); BEGIN( g_lastStringContext ); } YY_BREAK case 98: YY_RULE_SETUP #line 2597 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 99: /* rule 99 can match eol */ YY_RULE_SETUP #line 2600 "code.l" { g_code->codify(codeYYtext); QCString delimiter = codeYYtext+1; delimiter=delimiter.left(delimiter.length()-1); if (delimiter==g_delimiter) { BEGIN( g_lastStringContext ); } } YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP #line 2609 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 101: YY_RULE_SETUP #line 2610 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 102: /* rule 102 can match eol */ YY_RULE_SETUP #line 2611 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 103: YY_RULE_SETUP #line 2612 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 104: YY_RULE_SETUP #line 2615 "code.l" { // escaped quote g_code->codify(codeYYtext); } YY_BREAK case 105: YY_RULE_SETUP #line 2618 "code.l" { // end of string g_code->codify(codeYYtext); endFontClass(); BEGIN( g_lastVerbStringContext ); } YY_BREAK case 106: YY_RULE_SETUP #line 2623 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 107: /* rule 107 can match eol */ YY_RULE_SETUP #line 2626 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 108: YY_RULE_SETUP #line 2629 "code.l" { g_code->codify(codeYYtext); g_name.resize(0);g_type.resize(0); } YY_BREAK case 109: YY_RULE_SETUP #line 2633 "code.l" { if (g_insideTemplate) { g_sharpCount++; } g_code->codify(codeYYtext); } YY_BREAK case 110: YY_RULE_SETUP #line 2640 "code.l" { if (g_insideTemplate) { if (--g_sharpCount<=0) { g_insideTemplate=FALSE; } } g_code->codify(codeYYtext); } YY_BREAK case 111: YY_RULE_SETUP #line 2650 "code.l" { startFontClass("charliteral"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 112: YY_RULE_SETUP #line 2655 "code.l" { if (codeYYtext[0]=='-') // -> could be overloaded { updateCallContextForSmartPointer(); } g_code->codify(codeYYtext); g_memCallContext = YY_START; BEGIN( MemberCall ); } YY_BREAK case 113: /* rule 113 can match eol */ YY_RULE_SETUP #line 2664 "code.l" { if (g_theCallContext.getClass()) { if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext)) { g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); g_code->codify(codeYYtext); addToSearchIndex(codeYYtext); } g_name.resize(0); } else { g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); g_code->codify(codeYYtext); addToSearchIndex(codeYYtext); g_name.resize(0); } g_type.resize(0); g_bracketCount=0; if (g_memCallContext==Body) { BEGIN(FuncCall); } else { BEGIN(g_memCallContext); } } YY_BREAK case 114: /* rule 114 can match eol */ YY_RULE_SETUP #line 2695 "code.l" { if (g_theCallContext.getClass()) { //fprintf(stderr,"g_theCallContext.getClass()=%p\n",g_theCallContext.getClass()); if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),codeYYtext)) { g_code->linkableSymbol(g_yyLineNr,codeYYtext,0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); g_code->codify(codeYYtext); addToSearchIndex(codeYYtext); } g_name.resize(0); } else { //fprintf(stderr,"no class context!\n"); g_code->codify(codeYYtext); addToSearchIndex(codeYYtext); g_name.resize(0); } g_type.resize(0); BEGIN(g_memCallContext); } YY_BREAK case 115: YY_RULE_SETUP #line 2718 "code.l" { if (g_insideObjC && *codeYYtext=='[') { //printf("Found start of ObjC call!\n"); // start of a method call g_contextDict.setAutoDelete(TRUE); g_nameDict.setAutoDelete(TRUE); g_objectDict.setAutoDelete(TRUE); g_wordDict.setAutoDelete(TRUE); g_contextDict.clear(); g_nameDict.clear(); g_objectDict.clear(); g_wordDict.clear(); g_currentCtxId = 0; g_currentNameId = 0; g_currentObjId = 0; g_currentCtx = 0; g_braceCount = 0; unput('['); BEGIN(ObjCCall); } else { g_code->codify(codeYYtext); g_saveName = g_name.copy(); g_saveType = g_type.copy(); if (*codeYYtext!='[' && !g_type.isEmpty()) { //printf("g_scopeStack.bottom()=%p\n",g_scopeStack.bottom()); if (g_scopeStack.top()!=CLASSBLOCK) { //printf("AddVariable: '%s' '%s' context=%d\n", // g_type.data(),g_name.data(),g_theVarContext.count()); g_theVarContext.addVariable(g_type,g_name); } g_name.resize(0); } if (*codeYYtext==';' || *codeYYtext=='=') { g_type.resize(0); g_name.resize(0); } else if (*codeYYtext=='[') { g_theCallContext.pushScope(); } g_args.resize(0); g_parmType.resize(0); g_parmName.resize(0); } } YY_BREAK /* {ID} { if (strcmp(codeYYtext,"self")==0 || strcmp(codeYYtext,"super")==0) { // TODO: get proper base class for "super" g_theCallContext.setClass(getClass(g_curClassName)); startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); } else { generateClassOrGlobalLink(*g_code,codeYYtext); } g_name.resize(0); BEGIN(ObjCMemberCall2); } "[" { g_code->codify(codeYYtext); g_theCallContext.pushScope(); } {ID}":"? { g_name+=codeYYtext; if (g_theCallContext.getClass()) { //printf("Calling method %s\n",g_name.data()); if (!generateClassMemberLink(*g_code,g_theCallContext.getClass(),g_name)) { g_code->codify(codeYYtext); addToSearchIndex(g_name); } } else { g_code->codify(codeYYtext); addToSearchIndex(g_name); } g_name.resize(0); BEGIN(ObjCMemberCall3); } "]" { g_theCallContext.popScope(); g_code->codify(codeYYtext); BEGIN(Body); } */ case 116: YY_RULE_SETUP #line 2815 "code.l" { saveObjCContext(); g_currentCtx->format+=*codeYYtext; BEGIN(ObjCCall); //printf("open\n"); } YY_BREAK case 117: YY_RULE_SETUP #line 2821 "code.l" { g_currentCtx->format+=*codeYYtext; restoreObjCContext(); BEGIN(ObjCMName); if (g_currentCtx==0) { // end of call writeObjCMethodCall(g_contextDict.find(0)); BEGIN(Body); } //printf("close\n"); } YY_BREAK case 118: YY_RULE_SETUP #line 2833 "code.l" { g_currentCtx->format+=escapeObject(codeYYtext); if (g_braceCount==0) { g_currentCtx->objectTypeOrName=codeYYtext; //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data()); BEGIN(ObjCMName); } } YY_BREAK case 119: /* rule 119 can match eol */ YY_RULE_SETUP #line 2842 "code.l" { if (g_braceCount==0 && g_currentCtx->methodName.isEmpty()) { g_currentCtx->methodName=codeYYtext; g_currentCtx->format+=escapeName(codeYYtext); } else { g_currentCtx->format+=escapeWord(codeYYtext); } } YY_BREAK case 120: /* rule 120 can match eol */ YY_RULE_SETUP #line 2854 "code.l" { if (g_braceCount==0) { g_currentCtx->methodName+=codeYYtext; g_currentCtx->methodName+=":"; } g_currentCtx->format+=escapeName(codeYYtext); } YY_BREAK case 121: YY_RULE_SETUP #line 2862 "code.l" { g_currentCtx->format+=codeYYtext; } YY_BREAK case 122: YY_RULE_SETUP #line 2863 "code.l" { g_currentCtx->format+=codeYYtext; } YY_BREAK case 123: YY_RULE_SETUP #line 2864 "code.l" { g_currentCtx->format+=codeYYtext; BEGIN(g_lastStringContext); } YY_BREAK case 124: YY_RULE_SETUP #line 2867 "code.l" { g_currentCtx->format+=codeYYtext; } YY_BREAK case 125: YY_RULE_SETUP #line 2868 "code.l" { g_currentCtx->format+=codeYYtext; g_lastStringContext=YY_START; BEGIN(ObjCSkipStr); } YY_BREAK case 126: YY_RULE_SETUP #line 2872 "code.l" { g_currentCtx->format+="$$"; } YY_BREAK case 127: YY_RULE_SETUP #line 2873 "code.l" { g_currentCtx->format+=*codeYYtext; g_braceCount++; } YY_BREAK case 128: YY_RULE_SETUP #line 2874 "code.l" { g_currentCtx->format+=*codeYYtext; g_braceCount--; } YY_BREAK case 129: *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2875 "code.l" { // needed to prevent matching the global rule (for C#) g_currentCtx->format+=codeYYtext; } YY_BREAK case 130: YY_RULE_SETUP #line 2878 "code.l" { g_currentCtx->format+=escapeWord(codeYYtext); } YY_BREAK case 131: YY_RULE_SETUP #line 2879 "code.l" { g_currentCtx->format+=*codeYYtext; } YY_BREAK case 132: /* rule 132 can match eol */ YY_RULE_SETUP #line 2880 "code.l" { g_currentCtx->format+=*codeYYtext; } YY_BREAK case 133: YY_RULE_SETUP #line 2882 "code.l" { g_theCallContext.popScope(); g_code->codify(codeYYtext); // TODO: nested arrays like: a[b[0]->func()]->func() g_name = g_saveName.copy(); g_type = g_saveType.copy(); } YY_BREAK case 134: YY_RULE_SETUP #line 2889 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 135: YY_RULE_SETUP #line 2892 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 136: /* rule 136 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2895 "code.l" { //addParmType(); //g_parmName=codeYYtext; startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 137: /* rule 137 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2902 "code.l" { addParmType(); g_parmName=codeYYtext; startFontClass("keywordtype"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 138: /* rule 138 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 2909 "code.l" { addParmType(); g_parmName=codeYYtext; startFontClass("keywordflow"); g_code->codify(codeYYtext); endFontClass(); } YY_BREAK case 139: YY_RULE_SETUP #line 2916 "code.l" { addParmType(); g_parmName=codeYYtext; generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); } YY_BREAK case 140: YY_RULE_SETUP #line 2921 "code.l" { // probably a cast, not a function call g_code->codify(codeYYtext); g_inForEachExpression = FALSE; BEGIN( Body ); } YY_BREAK case 141: YY_RULE_SETUP #line 2926 "code.l" { g_code->codify(codeYYtext); g_theVarContext.addVariable(g_parmType,g_parmName); g_parmType.resize(0);g_parmName.resize(0); } YY_BREAK case 142: YY_RULE_SETUP #line 2931 "code.l" { g_parmType.resize(0);g_parmName.resize(0); g_code->codify(codeYYtext); g_bracketCount++; g_theCallContext.pushScope(); if (YY_START==FuncCall && !g_insideBody) { g_theVarContext.pushScope(); } } YY_BREAK case 143: YY_RULE_SETUP #line 2941 "code.l" { // operator if (strcmp(codeYYtext,"*") && strcmp(codeYYtext,"&") && strcmp(codeYYtext,"^") && strcmp(codeYYtext,"%")) // typically a pointer or reference { // not a * or &, or C++/CLI's ^ or % g_parmType.resize(0);g_parmName.resize(0); } g_code->codify(codeYYtext); } YY_BREAK case 144: YY_RULE_SETUP #line 2952 "code.l" { if (codeYYtext[0]==')') // no a pointer cast { //printf("addVariable(%s,%s)\n",g_parmType.data(),g_parmName.data()); g_theVarContext.addVariable(g_parmType,g_parmName); } else { g_parmType.resize(0); g_parmName.resize(0); } g_theCallContext.popScope(); g_inForEachExpression = FALSE; //g_theCallContext.setClass(0); // commented out, otherwise a()->b() does not work for b(). g_code->codify(codeYYtext); if (--g_bracketCount<=0) { if (g_name.isEmpty()) { BEGIN( Body ); } else { BEGIN( CallEnd ); } } } YY_BREAK case 145: /* rule 145 can match eol */ YY_RULE_SETUP #line 2979 "code.l" { codifyLines(codeYYtext); } YY_BREAK /* ")"[ \t\n]*[;:] { */ case 146: YY_RULE_SETUP #line 2983 "code.l" { codifyLines(codeYYtext); g_bracketCount=0; if (*codeYYtext==';') g_searchingForBody=FALSE; if (!g_type.isEmpty()) { //fprintf(stderr,"add variable g_type=%s g_name=%s)\n",g_type.data(),g_name.data()); g_theVarContext.addVariable(g_type,g_name); } g_parmType.resize(0);g_parmName.resize(0); g_theCallContext.setClass(0); if (*codeYYtext==';' || g_insideBody) { if (!g_insideBody) { g_theVarContext.popScope(); } g_name.resize(0);g_type.resize(0); BEGIN( Body ); } else { g_bracketCount=0; BEGIN( SkipInits ); } } YY_BREAK case 147: /* rule 147 can match eol */ YY_RULE_SETUP #line 3009 "code.l" { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } YY_BREAK case 148: /* rule 148 can match eol */ YY_RULE_SETUP #line 3014 "code.l" { if (g_insideBody) { g_theVarContext.pushScope(); } g_theVarContext.addVariable(g_parmType,g_parmName); //g_theCallContext.popScope(); g_parmType.resize(0);g_parmName.resize(0); int index = g_name.findRev("::"); //fprintf(stderr,"g_name=%s\n",g_name.data()); if (index!=-1) { QCString scope = g_name.left(index); if (!g_classScope.isEmpty()) scope.prepend(g_classScope+"::"); ClassDef *cd=getResolvedClass(Doxygen::globalScope,g_sourceFileDef,scope); if (cd) { setClassScope(cd->name()); g_scopeStack.push(SCOPEBLOCK); DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); } else { //setClassScope(g_realScope); g_scopeStack.push(INNERBLOCK); DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); } } else { DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); g_scopeStack.push(INNERBLOCK); } codeYYtext[codeYYleng-1]='\0'; QCString cv(codeYYtext); if (!cv.stripWhiteSpace().isEmpty()) { startFontClass("keyword"); codifyLines(codeYYtext); endFontClass(); } else // just whitespace { codifyLines(codeYYtext); } g_code->codify("{"); if (g_searchingForBody) { g_searchingForBody=FALSE; g_insideBody=TRUE; } if (g_insideBody) g_bodyCurlyCount++; g_curlyCount++; g_type.resize(0); g_name.resize(0); BEGIN( Body ); } YY_BREAK case 149: YY_RULE_SETUP #line 3070 "code.l" { // function-try-block startFontClass("keyword"); g_code->codify(codeYYtext); endFontClass(); g_inFunctionTryBlock=TRUE; } YY_BREAK case 150: YY_RULE_SETUP #line 3076 "code.l" { if (g_insideBody || !g_parmType.isEmpty()) { REJECT; } // could be K&R style definition addParmType(); g_parmName=codeYYtext; generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); BEGIN(OldStyleArgs); } YY_BREAK case 151: YY_RULE_SETUP #line 3087 "code.l" { addParmType(); g_parmName=codeYYtext; generateClassOrGlobalLink(*g_code,codeYYtext,!g_insideBody); } YY_BREAK case 152: YY_RULE_SETUP #line 3092 "code.l" { g_code->codify(codeYYtext); g_theVarContext.addVariable(g_parmType,g_parmName); if (*codeYYtext==';') g_parmType.resize(0); g_parmName.resize(0); } YY_BREAK case 153: YY_RULE_SETUP #line 3098 "code.l" { startFontClass("preprocessor"); g_lastSkipCppContext = Body; g_code->codify(codeYYtext); BEGIN( SkipCPP ); } YY_BREAK case 154: YY_RULE_SETUP #line 3104 "code.l" { unput(*codeYYtext); if (!g_insideBody) { g_theVarContext.popScope(); } g_name.resize(0);g_args.resize(0); g_parmType.resize(0);g_parmName.resize(0); BEGIN( Body ); } YY_BREAK case 155: YY_RULE_SETUP #line 3114 "code.l" { g_code->codify(codeYYtext); g_type.resize(0); g_name.resize(0); BEGIN( Body ); } YY_BREAK case 156: YY_RULE_SETUP #line 3119 "code.l" { g_code->codify(codeYYtext); g_curlyCount++; if (g_searchingForBody) { g_searchingForBody=FALSE; g_insideBody=TRUE; } if (g_insideBody) g_bodyCurlyCount++; if (g_name.find("::")!=-1) { DBG_CTX((stderr,"** scope stack push SCOPEBLOCK\n")); g_scopeStack.push(SCOPEBLOCK); setClassScope(g_realScope); } else { DBG_CTX((stderr,"** scope stack push INNERBLOCK\n")); g_scopeStack.push(INNERBLOCK); } g_type.resize(0); g_name.resize(0); BEGIN( Body ); } YY_BREAK case 157: YY_RULE_SETUP #line 3142 "code.l" { generateClassOrGlobalLink(*g_code,codeYYtext); } YY_BREAK case 158: *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3145 "code.l" { generateFunctionLink(*g_code,codeYYtext); } YY_BREAK case 159: YY_RULE_SETUP #line 3148 "code.l" { g_name=codeYYtext; generateClassOrGlobalLink(*g_code,codeYYtext); BEGIN( MemberCall2 ); } YY_BREAK case 160: YY_RULE_SETUP #line 3153 "code.l" { g_code->codify(codeYYtext); int s=0;while (!isId(codeYYtext[s])) s++; int e=(int)codeYYleng-1;while (!isId(codeYYtext[e])) e--; g_name=((QCString)codeYYtext).mid(s,e-s+1); BEGIN( MemberCall2 ); } YY_BREAK case 161: /* rule 161 can match eol */ YY_RULE_SETUP #line 3160 "code.l" { if (!g_args.isEmpty()) generateMemberLink(*g_code,g_args,codeYYtext); else generateClassOrGlobalLink(*g_code,codeYYtext); g_args.resize(0); BEGIN( FuncCall ); } YY_BREAK case 162: /* rule 162 can match eol */ YY_RULE_SETUP #line 3168 "code.l" { //g_code->codify(codeYYtext); g_name=codeYYtext; generateClassOrGlobalLink(*g_code,codeYYtext); BEGIN( MemberCall2 ); } YY_BREAK case 163: YY_RULE_SETUP #line 3174 "code.l" { if (codeYYtext[0]=='-') // -> could be overloaded { updateCallContextForSmartPointer(); } g_code->codify(codeYYtext); g_memCallContext = YY_START; BEGIN( MemberCall ); } YY_BREAK case 164: YY_RULE_SETUP #line 3183 "code.l" { g_code->codify(codeYYtext); endFontClass(); BEGIN( g_lastCContext ) ; } YY_BREAK case 165: YY_RULE_SETUP #line 3188 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 166: YY_RULE_SETUP #line 3191 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 167: YY_RULE_SETUP #line 3194 "code.l" { g_code->codify(codeYYtext); endFontClass(); if (g_lastCContext==SkipCPP) { startFontClass("preprocessor"); } BEGIN( g_lastCContext ) ; } YY_BREAK case 168: /* rule 168 can match eol */ YY_RULE_SETUP #line 3203 "code.l" { // line continuation codifyLines(codeYYtext); } YY_BREAK case 169: YY_RULE_SETUP #line 3206 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 170: YY_RULE_SETUP #line 3209 "code.l" YY_BREAK case 171: /* rule 171 can match eol */ YY_RULE_SETUP #line 3210 "code.l" { unput('\n'); endFontClass(); BEGIN( g_lastCContext ) ; } YY_BREAK case 172: YY_RULE_SETUP #line 3215 "code.l" { g_code->codify(codeYYtext); } YY_BREAK case 173: /* rule 173 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3218 "code.l" { g_yyLineNr+=QCString(codeYYtext).contains('\n'); } YY_BREAK case 174: /* rule 174 can match eol */ YY_RULE_SETUP #line 3221 "code.l" { g_yyLineNr+=QCString(codeYYtext).contains('\n'); nextCodeLine(); if (g_lastSpecialCContext==SkipCxxComment) { // force end of C++ comment here endFontClass(); BEGIN( g_lastCContext ) ; } else { BEGIN(g_lastSpecialCContext); } } YY_BREAK case 175: YY_RULE_SETUP #line 3234 "code.l" { BEGIN(g_lastSpecialCContext); } YY_BREAK case 176: YY_RULE_SETUP #line 3237 "code.l" YY_BREAK case 177: YY_RULE_SETUP #line 3238 "code.l" YY_BREAK case 178: /* rule 178 can match eol */ YY_RULE_SETUP #line 3239 "code.l" { g_yyLineNr++; } YY_BREAK case 179: YY_RULE_SETUP #line 3240 "code.l" YY_BREAK case 180: YY_RULE_SETUP #line 3241 "code.l" { g_code->codify(codeYYtext); g_type.resize(0); g_name.resize(0); BEGIN(g_memCallContext); } YY_BREAK case 181: /* rule 181 can match eol */ YY_RULE_SETUP #line 3247 "code.l" { // remove special one-line comment if (YY_START==SkipCPP) REJECT; if (Config_getBool("STRIP_CODE_COMMENTS")) { g_yyLineNr+=((QCString)codeYYtext).contains('\n'); nextCodeLine(); } else { startFontClass("comment"); codifyLines(codeYYtext); endFontClass(); } if (YY_START==SkipCxxComment) { endFontClass(); BEGIN( g_lastCContext ) ; } } YY_BREAK case 182: /* rule 182 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3266 "code.l" { codifyLines(codeYYtext); endFontClass(); BEGIN( g_lastSkipCppContext ) ; } YY_BREAK case 183: /* rule 183 can match eol */ YY_RULE_SETUP #line 3271 "code.l" { // remove one-line group marker if (Config_getBool("STRIP_CODE_COMMENTS")) { g_yyLineNr+=2; nextCodeLine(); } else { startFontClass("comment"); codifyLines(codeYYtext); endFontClass(); } if (YY_START==SkipCxxComment) { endFontClass(); BEGIN( g_lastCContext ) ; } } YY_BREAK case 184: /* rule 184 can match eol */ YY_RULE_SETUP #line 3289 "code.l" { // remove one-line group marker if (Config_getBool("STRIP_CODE_COMMENTS")) { g_lastSpecialCContext = YY_START; g_yyLineNr++; BEGIN(RemoveSpecialCComment); } else { // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } startFontClass("comment"); codifyLines(codeYYtext); BEGIN(SkipComment); } } YY_BREAK case 185: /* rule 185 can match eol */ YY_RULE_SETUP #line 3308 "code.l" { // remove one-line group marker if (Config_getBool("STRIP_CODE_COMMENTS")) { g_yyLineNr++; nextCodeLine(); } else { startFontClass("comment"); codifyLines(codeYYtext); endFontClass(); } } YY_BREAK case 186: YY_RULE_SETUP #line 3321 "code.l" { // remove multi-line group marker if (Config_getBool("STRIP_CODE_COMMENTS")) { g_lastSpecialCContext = YY_START; BEGIN(RemoveSpecialCComment); } else { // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } startFontClass("comment"); g_code->codify(codeYYtext); BEGIN(SkipComment); } } YY_BREAK case 187: /* rule 187 can match eol */ YY_RULE_SETUP #line 3339 "code.l" { // remove special one-line comment if (Config_getBool("STRIP_CODE_COMMENTS")) { g_yyLineNr++; nextCodeLine(); } else { startFontClass("comment"); codifyLines(codeYYtext); endFontClass(); } } YY_BREAK case 188: /* rule 188 can match eol */ YY_RULE_SETUP #line 3352 "code.l" { // strip special one-line comment if (YY_START==SkipComment || YY_START==SkipString) REJECT; if (Config_getBool("STRIP_CODE_COMMENTS")) { char c[2]; c[0]='\n'; c[1]=0; codifyLines(c); } else { startFontClass("comment"); codifyLines(codeYYtext); endFontClass(); } } YY_BREAK case 189: YY_RULE_SETUP #line 3366 "code.l" { // special pattern /*[tag:filename]*/ to force linking to a tag file g_forceTagReference=codeYYtext; int s=g_forceTagReference.find(':'); int e=g_forceTagReference.findRev(']'); g_forceTagReference = g_forceTagReference.mid(s+1,e-s-1); } YY_BREAK case 190: /* rule 190 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3372 "code.l" { if (Config_getBool("STRIP_CODE_COMMENTS")) { g_lastSpecialCContext = YY_START; g_yyLineNr++; BEGIN(RemoveSpecialCComment); } else { // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } startFontClass("comment"); codifyLines(codeYYtext); BEGIN(SkipComment); } } YY_BREAK case 191: /* rule 191 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3391 "code.l" { // special C comment block at a new line if (Config_getBool("STRIP_CODE_COMMENTS")) { g_lastSpecialCContext = YY_START; BEGIN(RemoveSpecialCComment); } else { // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } startFontClass("comment"); g_code->codify(codeYYtext); BEGIN(SkipComment); } } YY_BREAK case 192: /* rule 192 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up codeYYtext */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up codeYYtext again */ YY_RULE_SETUP #line 3409 "code.l" { // special C comment block half way a line if (YY_START==SkipString) REJECT; if (Config_getBool("STRIP_CODE_COMMENTS")) { g_lastSpecialCContext = YY_START; BEGIN(RemoveSpecialCComment); } else { // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } startFontClass("comment"); g_code->codify(codeYYtext); BEGIN(SkipComment); } } YY_BREAK case 193: YY_RULE_SETUP #line 3428 "code.l" { if (YY_START==SkipString) REJECT; if (!Config_getBool("STRIP_CODE_COMMENTS")) { startFontClass("comment"); g_code->codify(codeYYtext); endFontClass(); } } YY_BREAK case 194: YY_RULE_SETUP #line 3437 "code.l" { startFontClass("comment"); g_code->codify(codeYYtext); // check is to prevent getting stuck in skipping C++ comments if (YY_START != SkipCxxComment) { g_lastCContext = YY_START ; } BEGIN( SkipComment ) ; } YY_BREAK case 195: YY_RULE_SETUP #line 3447 "code.l" { // C# verbatim string startFontClass("stringliteral"); g_code->codify(codeYYtext); g_lastVerbStringContext=YY_START; BEGIN(SkipVerbString); } YY_BREAK case 196: YY_RULE_SETUP #line 3453 "code.l" { startFontClass("comment"); g_code->codify(codeYYtext); g_lastCContext = YY_START ; BEGIN( SkipCxxComment ) ; } YY_BREAK case 197: YY_RULE_SETUP #line 3459 "code.l" { g_code->codify(codeYYtext); g_theCallContext.pushScope(); } YY_BREAK case 198: YY_RULE_SETUP #line 3463 "code.l" { g_code->codify(codeYYtext); g_theCallContext.popScope(); } YY_BREAK case 199: /* rule 199 can match eol */ YY_RULE_SETUP #line 3467 "code.l" { codifyLines(codeYYtext); } YY_BREAK case 200: YY_RULE_SETUP #line 3470 "code.l" { g_code->codify(codeYYtext); } YY_BREAK /* <*>([ \t\n]*"\n"){2,} { // combine multiple blank lines //QCString sepLine=codeYYtext; //g_code->codify("\n\n"); //g_yyLineNr+=sepLine.contains('\n'); //char sepLine[3]="\n\n"; codifyLines(codeYYtext); } */ case 201: YY_RULE_SETUP #line 3483 "code.l" ECHO; YY_BREAK #line 15119 "" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(SkipString): case YY_STATE_EOF(SkipStringS): case YY_STATE_EOF(SkipVerbString): case YY_STATE_EOF(SkipCPP): case YY_STATE_EOF(SkipComment): case YY_STATE_EOF(SkipCxxComment): case YY_STATE_EOF(RemoveSpecialCComment): case YY_STATE_EOF(StripSpecialCComment): case YY_STATE_EOF(Body): case YY_STATE_EOF(FuncCall): case YY_STATE_EOF(MemberCall): case YY_STATE_EOF(MemberCall2): case YY_STATE_EOF(SkipInits): case YY_STATE_EOF(ClassName): case YY_STATE_EOF(PackageName): case YY_STATE_EOF(ClassVar): case YY_STATE_EOF(CppCliTypeModifierFollowup): case YY_STATE_EOF(Bases): case YY_STATE_EOF(SkipSharp): case YY_STATE_EOF(ReadInclude): case YY_STATE_EOF(TemplDecl): case YY_STATE_EOF(TemplCast): case YY_STATE_EOF(CallEnd): case YY_STATE_EOF(ObjCMethod): case YY_STATE_EOF(ObjCParams): case YY_STATE_EOF(ObjCParamType): case YY_STATE_EOF(ObjCCall): case YY_STATE_EOF(ObjCMName): case YY_STATE_EOF(ObjCSkipStr): case YY_STATE_EOF(OldStyleArgs): case YY_STATE_EOF(UsingName): case YY_STATE_EOF(RawString): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed codeYYin at a new source and called * codeYYlex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = codeYYin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( codeYYwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * codeYYtext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of codeYYlex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { yy_size_t 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]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; codeYYrestart(codeYYin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) codeYYrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); (yy_state_ptr) = (yy_state_buf); *(yy_state_ptr)++ = yy_current_state; for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 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 >= 3492 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *(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 ) { register int yy_is_jam; register 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 >= 3492 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 3491); if ( ! yy_is_jam ) *(yy_state_ptr)++ = yy_current_state; return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up codeYYtext */ *yy_cp = (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. */ register yy_size_t number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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 = (yy_n_chars) = 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; (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ codeYYrestart(codeYYin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( codeYYwrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve codeYYtext */ (yy_hold_char) = *++(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. * * @note This function does not reset the start condition to @c INITIAL . */ void codeYYrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ codeYYensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = codeYY_create_buffer(codeYYin,YY_BUF_SIZE ); } codeYY_init_buffer(YY_CURRENT_BUFFER,input_file ); codeYY_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void codeYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * codeYYpop_buffer_state(); * codeYYpush_buffer_state(new_buffer); */ codeYYensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; codeYY_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (codeYYwrap()) processing, but the only time this flag * is looked at is after codeYYwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void codeYY_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; codeYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE codeYY_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in codeYY_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 *) codeYYalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in codeYY_create_buffer()" ); b->yy_is_our_buffer = 1; codeYY_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with codeYY_create_buffer() * */ void codeYY_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) codeYYfree((void *) b->yy_ch_buf ); codeYYfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a codeYYrestart() or at EOF. */ static void codeYY_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; codeYY_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then codeYY_init_buffer was _probably_ * called from codeYYrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void codeYY_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) codeYY_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void codeYYpush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; codeYYensure_buffer_stack(); /* This block is copied from codeYY_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from codeYY_switch_to_buffer. */ codeYY_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void codeYYpop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; codeYY_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { codeYY_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void codeYYensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)codeYYalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in codeYYensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)codeYYrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in codeYYensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE codeYY_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) codeYYalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in codeYY_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; codeYY_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to codeYYlex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * codeYY_scan_bytes() instead. */ YY_BUFFER_STATE codeYY_scan_string (yyconst char * yystr ) { return codeYY_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to codeYYlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE codeYY_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n, i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) codeYYalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in codeYY_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 = codeYY_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in codeYY_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up codeYYtext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ codeYYtext[codeYYleng] = (yy_hold_char); \ (yy_c_buf_p) = codeYYtext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ codeYYleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int codeYYget_lineno (void) { return codeYYlineno; } /** Get the input stream. * */ FILE *codeYYget_in (void) { return codeYYin; } /** Get the output stream. * */ FILE *codeYYget_out (void) { return codeYYout; } /** Get the length of the current token. * */ yy_size_t codeYYget_leng (void) { return codeYYleng; } /** Get the current token. * */ char *codeYYget_text (void) { return codeYYtext; } /** Set the current line number. * @param line_number * */ void codeYYset_lineno (int line_number ) { codeYYlineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see codeYY_switch_to_buffer */ void codeYYset_in (FILE * in_str ) { codeYYin = in_str ; } void codeYYset_out (FILE * out_str ) { codeYYout = out_str ; } int codeYYget_debug (void) { return codeYY_flex_debug; } void codeYYset_debug (int bdebug ) { codeYY_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from codeYYlex_destroy(), so don't allocate here. */ (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; (yy_state_buf) = 0; (yy_state_ptr) = 0; (yy_full_match) = 0; (yy_lp) = 0; /* Defined in main.c */ #ifdef YY_STDINIT codeYYin = stdin; codeYYout = stdout; #else codeYYin = (FILE *) 0; codeYYout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * codeYYlex_init() */ return 0; } /* codeYYlex_destroy is for both reentrant and non-reentrant scanners. */ int codeYYlex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ codeYY_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; codeYYpop_buffer_state(); } /* Destroy the stack itself. */ codeYYfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; codeYYfree ( (yy_state_buf) ); (yy_state_buf) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * codeYYlex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *codeYYalloc (yy_size_t size ) { return (void *) malloc( size ); } void *codeYYrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } void codeYYfree (void * ptr ) { free( (char *) ptr ); /* see codeYYrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 3483 "code.l" /*@ ---------------------------------------------------------------------------- */ static void saveObjCContext() { if (g_currentCtx) { g_currentCtx->format+=QCString().sprintf("$c%d",g_currentCtxId); if (g_braceCount==0 && YY_START==ObjCCall) { g_currentCtx->objectTypeOrName=g_currentCtx->format.mid(1); //printf("new type=%s\n",g_currentCtx->objectTypeOrName.data()); } g_contextStack.push(g_currentCtx); } else { //printf("Trying to save NULL context!\n"); } ObjCCallCtx *newCtx = new ObjCCallCtx; newCtx->id = g_currentCtxId; newCtx->lexState = YY_START; newCtx->braceCount = g_braceCount; newCtx->objectType = 0; newCtx->objectVar = 0; newCtx->method = 0; //printf("save state=%d\n",YY_START); g_contextDict.insert(g_currentCtxId,newCtx); g_currentCtx = newCtx; g_braceCount = 0; g_currentCtxId++; } static void restoreObjCContext() { //printf("restore state=%d->%d\n",YY_START,g_currentCtx->lexState); BEGIN(g_currentCtx->lexState); g_braceCount = g_currentCtx->braceCount; if (!g_contextStack.isEmpty()) { g_currentCtx = g_contextStack.pop(); } else { g_currentCtx = 0; //printf("Trying to pop context while g_contextStack is empty!\n"); } } void resetCCodeParserState() { //printf("***initParseCodeContext()\n"); g_forceTagReference.resize(0); g_theVarContext.clear(); g_classScopeLengthStack.setAutoDelete(TRUE); g_classScopeLengthStack.clear(); delete g_codeClassSDict; g_codeClassSDict = new ClassSDict(17); g_codeClassSDict->setAutoDelete(TRUE); g_codeClassSDict->clear(); g_curClassBases.clear(); g_anchorCount = 0; } void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s, bool exBlock, const char *exName,FileDef *fd, int startLine,int endLine,bool inlineFragment, MemberDef *memberDef,bool showLineNumbers,Definition *searchCtx) { //printf("***parseCode() exBlock=%d exName=%s fd=%p className=%s searchCtx=%s\n", // exBlock,exName,fd,className,searchCtx?searchCtx->name().data():""); if (s.isEmpty()) return; if (g_codeClassSDict==0) { resetCCodeParserState(); } g_code = &od; g_inputString = s; g_inputPosition = 0; g_currentFontClass = 0; g_needsTermination = FALSE; g_searchCtx = searchCtx; g_inFunctionTryBlock = FALSE; if (endLine!=-1) g_inputLines = endLine+1; else g_inputLines = countLines(); if (startLine!=-1) g_yyLineNr = startLine; else g_yyLineNr = 1; g_curlyCount = 0; g_bodyCurlyCount = 0; g_bracketCount = 0; g_sharpCount = 0; g_insideTemplate = FALSE; g_theCallContext.clear(); g_scopeStack.clear(); g_classScope = className; //printf("parseCCode %s\n",className); g_exampleBlock = exBlock; g_exampleName = exName; g_sourceFileDef = fd; g_lineNumbers = fd!=0 && showLineNumbers; bool cleanupSourceDef = FALSE; if (fd==0) { // create a dummy filedef for the example g_sourceFileDef = new FileDef("",(exName?exName:"generated")); cleanupSourceDef = TRUE; } if (g_sourceFileDef) { setCurrentDoc("l00001"); g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" || g_sourceFileDef->name().lower().right(3)==".mm"; } g_currentDefinition = 0; g_currentMemberDef = 0; g_searchingForBody = exBlock; g_insideBody = FALSE; g_bracketCount = 0; if (!g_exampleName.isEmpty()) { g_exampleFile = convertNameToFile(g_exampleName+"-example",FALSE,TRUE); //printf("g_exampleFile=%s\n",g_exampleFile.data()); } g_includeCodeFragment = inlineFragment; //printf("** exBlock=%d exName=%s include=%d\n",exBlock,exName,inlineFragment); startCodeLine(); g_type.resize(0); g_name.resize(0); g_args.resize(0); g_parmName.resize(0); g_parmType.resize(0); if (memberDef) setParameterList(memberDef); codeYYrestart( codeYYin ); BEGIN( Body ); codeYYlex(); g_lexInit=TRUE; if (g_needsTermination) { endFontClass(); g_code->endCodeLine(); } if (cleanupSourceDef) { // delete the temporary file definition used for this example delete g_sourceFileDef; g_sourceFileDef=0; } return; } void codeFreeScanner() { #if defined(YY_FLEX_SUBMINOR_VERSION) if (g_lexInit) { codeYYlex_destroy(); } #endif } #if !defined(YY_FLEX_SUBMINOR_VERSION) extern "C" { // some bogus code to keep the compiler happy void codeYYdummy() { yy_flex_realloc(0,0); } } #elif YY_FLEX_SUBMINOR_VERSION<33 #error "You seem to be using a version of flex newer than 2.5.4 but older than 2.5.33. These versions do NOT work with doxygen! Please use version <=2.5.4 or >=2.5.33 or expect things to be parsed wrongly!" #endif