#line 1 "src/backend/parser/ag_scanner.c" /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ /* * The rules in this scanner implementation are based on the followings. * * - openCypher * - Cypher Query Language Reference (Version 9) * - Grammar Specification (M13) * - ANTLR Grammar (M13) * - JSON (RFC 8259) */ #include "postgres.h" #include "common/string.h" #include "mb/pg_wchar.h" #include "parser/ag_scanner.h" #line 38 "src/backend/parser/ag_scanner.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif #ifdef yy_create_buffer #define ag_yy_create_buffer_ALREADY_DEFINED #else #define yy_create_buffer ag_yy_create_buffer #endif #ifdef yy_delete_buffer #define ag_yy_delete_buffer_ALREADY_DEFINED #else #define yy_delete_buffer ag_yy_delete_buffer #endif #ifdef yy_scan_buffer #define ag_yy_scan_buffer_ALREADY_DEFINED #else #define yy_scan_buffer ag_yy_scan_buffer #endif #ifdef yy_scan_string #define ag_yy_scan_string_ALREADY_DEFINED #else #define yy_scan_string ag_yy_scan_string #endif #ifdef yy_scan_bytes #define ag_yy_scan_bytes_ALREADY_DEFINED #else #define yy_scan_bytes ag_yy_scan_bytes #endif #ifdef yy_init_buffer #define ag_yy_init_buffer_ALREADY_DEFINED #else #define yy_init_buffer ag_yy_init_buffer #endif #ifdef yy_flush_buffer #define ag_yy_flush_buffer_ALREADY_DEFINED #else #define yy_flush_buffer ag_yy_flush_buffer #endif #ifdef yy_load_buffer_state #define ag_yy_load_buffer_state_ALREADY_DEFINED #else #define yy_load_buffer_state ag_yy_load_buffer_state #endif #ifdef yy_switch_to_buffer #define ag_yy_switch_to_buffer_ALREADY_DEFINED #else #define yy_switch_to_buffer ag_yy_switch_to_buffer #endif #ifdef yypush_buffer_state #define ag_yypush_buffer_state_ALREADY_DEFINED #else #define yypush_buffer_state ag_yypush_buffer_state #endif #ifdef yypop_buffer_state #define ag_yypop_buffer_state_ALREADY_DEFINED #else #define yypop_buffer_state ag_yypop_buffer_state #endif #ifdef yyensure_buffer_stack #define ag_yyensure_buffer_stack_ALREADY_DEFINED #else #define yyensure_buffer_stack ag_yyensure_buffer_stack #endif #ifdef yylex #define ag_yylex_ALREADY_DEFINED #else #define yylex ag_yylex #endif #ifdef yyrestart #define ag_yyrestart_ALREADY_DEFINED #else #define yyrestart ag_yyrestart #endif #ifdef yylex_init #define ag_yylex_init_ALREADY_DEFINED #else #define yylex_init ag_yylex_init #endif #ifdef yylex_init_extra #define ag_yylex_init_extra_ALREADY_DEFINED #else #define yylex_init_extra ag_yylex_init_extra #endif #ifdef yylex_destroy #define ag_yylex_destroy_ALREADY_DEFINED #else #define yylex_destroy ag_yylex_destroy #endif #ifdef yyget_debug #define ag_yyget_debug_ALREADY_DEFINED #else #define yyget_debug ag_yyget_debug #endif #ifdef yyset_debug #define ag_yyset_debug_ALREADY_DEFINED #else #define yyset_debug ag_yyset_debug #endif #ifdef yyget_extra #define ag_yyget_extra_ALREADY_DEFINED #else #define yyget_extra ag_yyget_extra #endif #ifdef yyset_extra #define ag_yyset_extra_ALREADY_DEFINED #else #define yyset_extra ag_yyset_extra #endif #ifdef yyget_in #define ag_yyget_in_ALREADY_DEFINED #else #define yyget_in ag_yyget_in #endif #ifdef yyset_in #define ag_yyset_in_ALREADY_DEFINED #else #define yyset_in ag_yyset_in #endif #ifdef yyget_out #define ag_yyget_out_ALREADY_DEFINED #else #define yyget_out ag_yyget_out #endif #ifdef yyset_out #define ag_yyset_out_ALREADY_DEFINED #else #define yyset_out ag_yyset_out #endif #ifdef yyget_leng #define ag_yyget_leng_ALREADY_DEFINED #else #define yyget_leng ag_yyget_leng #endif #ifdef yyget_text #define ag_yyget_text_ALREADY_DEFINED #else #define yyget_text ag_yyget_text #endif #ifdef yyget_lineno #define ag_yyget_lineno_ALREADY_DEFINED #else #define yyget_lineno ag_yyget_lineno #endif #ifdef yyset_lineno #define ag_yyset_lineno_ALREADY_DEFINED #else #define yyset_lineno ag_yyset_lineno #endif #ifdef yyget_column #define ag_yyget_column_ALREADY_DEFINED #else #define yyget_column ag_yyget_column #endif #ifdef yyset_column #define ag_yyset_column_ALREADY_DEFINED #else #define yyset_column ag_yyset_column #endif #ifdef yywrap #define ag_yywrap_ALREADY_DEFINED #else #define yywrap ag_yywrap #endif #ifdef yyalloc #define ag_yyalloc_ALREADY_DEFINED #else #define yyalloc ag_yyalloc #endif #ifdef yyrealloc #define ag_yyrealloc_ALREADY_DEFINED #else #define yyrealloc ag_yyrealloc #endif #ifdef yyfree #define ag_yyfree_ALREADY_DEFINED #else #define yyfree ag_yyfree #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* An opaque pointer. */ #ifndef YY_TYPEDEF_YY_SCANNER_T #define YY_TYPEDEF_YY_SCANNER_T typedef void* yyscan_t; #endif /* For convenience, these vars (plus the bison vars far below) are macros in the reentrant scanner. */ #define yyin yyg->yyin_r #define yyout yyg->yyout_r #define yyextra yyg->yyextra_r #define yyleng yyg->yyleng_r #define yytext yyg->yytext_r #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yy_flex_debug yyg->yy_flex_debug_r /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yyg->yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yyg->yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin , yyscanner ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = yyg->yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] void yyrestart ( FILE *input_file , yyscan_t yyscanner ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); void yypop_buffer_state ( yyscan_t yyscanner ); static void yyensure_buffer_stack ( yyscan_t yyscanner ); static void yy_load_buffer_state ( yyscan_t yyscanner ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); void *yyalloc ( yy_size_t , yyscan_t yyscanner ); void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); void yyfree ( void * , yyscan_t yyscanner ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (yyscanner); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define ag_yywrap(yyscanner) (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP typedef flex_uint8_t YY_CHAR; typedef const struct yy_trans_info *yy_state_type; #define yytext_ptr yytext_r static yy_state_type yy_get_previous_state ( yyscan_t yyscanner ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner); static int yy_get_next_buffer ( yyscan_t yyscanner ); static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; #define YY_NUM_RULES 47 #define YY_END_OF_BUFFER 48 struct yy_trans_info { flex_int16_t yy_verify; flex_int16_t yy_nxt; }; static const struct yy_trans_info yy_transition[9262] = { { 0, 0 }, { 0,9006 }, { 0, 0 }, { 0,9004 }, { 1,3096 }, { 2,3096 }, { 3,3096 }, { 4,3096 }, { 5,3096 }, { 6,3096 }, { 7,3096 }, { 8,3096 }, { 9,3098 }, { 10,3103 }, { 11,3098 }, { 12,3098 }, { 13,3098 }, { 14,3096 }, { 15,3096 }, { 16,3096 }, { 17,3096 }, { 18,3096 }, { 19,3096 }, { 20,3096 }, { 21,3096 }, { 22,3096 }, { 23,3096 }, { 24,3096 }, { 25,3096 }, { 26,3096 }, { 27,3096 }, { 28,3096 }, { 29,3096 }, { 30,3096 }, { 31,3096 }, { 32,3098 }, { 33,3096 }, { 34,3100 }, { 35,3105 }, { 36,3118 }, { 37,3120 }, { 38,3096 }, { 39,3122 }, { 40,3120 }, { 41,3120 }, { 42,3120 }, { 43,3148 }, { 44,3120 }, { 45,3120 }, { 46,3375 }, { 47,3391 }, { 48,3393 }, { 49,3415 }, { 50,3415 }, { 51,3415 }, { 52,3415 }, { 53,3415 }, { 54,3415 }, { 55,3415 }, { 56,3415 }, { 57,3415 }, { 58,3395 }, { 59,3120 }, { 60,3412 }, { 61,3417 }, { 62,3419 }, { 63,3437 }, { 64,3452 }, { 65,3497 }, { 66,3497 }, { 67,3497 }, { 68,3497 }, { 69,3497 }, { 70,3497 }, { 71,3497 }, { 72,3497 }, { 73,3497 }, { 74,3497 }, { 75,3497 }, { 76,3497 }, { 77,3497 }, { 78,3497 }, { 79,3497 }, { 80,3497 }, { 81,3497 }, { 82,3497 }, { 83,3497 }, { 84,3497 }, { 85,3497 }, { 86,3497 }, { 87,3497 }, { 88,3497 }, { 89,3497 }, { 90,3497 }, { 91,3120 }, { 92,3096 }, { 93,3120 }, { 94,3120 }, { 95,3497 }, { 96,3455 }, { 97,3497 }, { 98,3497 }, { 99,3497 }, { 100,3497 }, { 101,3497 }, { 102,3497 }, { 103,3497 }, { 104,3497 }, { 105,3497 }, { 106,3497 }, { 107,3497 }, { 108,3497 }, { 109,3497 }, { 110,3497 }, { 111,3497 }, { 112,3497 }, { 113,3497 }, { 114,3497 }, { 115,3497 }, { 116,3497 }, { 117,3497 }, { 118,3497 }, { 119,3497 }, { 120,3497 }, { 121,3497 }, { 122,3497 }, { 123,3120 }, { 124,3499 }, { 125,3120 }, { 126,3096 }, { 127,3096 }, { 128,3497 }, { 129,3497 }, { 130,3497 }, { 131,3497 }, { 132,3497 }, { 133,3497 }, { 134,3497 }, { 135,3497 }, { 136,3497 }, { 137,3497 }, { 138,3497 }, { 139,3497 }, { 140,3497 }, { 141,3497 }, { 142,3497 }, { 143,3497 }, { 144,3497 }, { 145,3497 }, { 146,3497 }, { 147,3497 }, { 148,3497 }, { 149,3497 }, { 150,3497 }, { 151,3497 }, { 152,3497 }, { 153,3497 }, { 154,3497 }, { 155,3497 }, { 156,3497 }, { 157,3497 }, { 158,3497 }, { 159,3497 }, { 160,3497 }, { 161,3497 }, { 162,3497 }, { 163,3497 }, { 164,3497 }, { 165,3497 }, { 166,3497 }, { 167,3497 }, { 168,3497 }, { 169,3497 }, { 170,3497 }, { 171,3497 }, { 172,3497 }, { 173,3497 }, { 174,3497 }, { 175,3497 }, { 176,3497 }, { 177,3497 }, { 178,3497 }, { 179,3497 }, { 180,3497 }, { 181,3497 }, { 182,3497 }, { 183,3497 }, { 184,3497 }, { 185,3497 }, { 186,3497 }, { 187,3497 }, { 188,3497 }, { 189,3497 }, { 190,3497 }, { 191,3497 }, { 192,3497 }, { 193,3497 }, { 194,3497 }, { 195,3497 }, { 196,3497 }, { 197,3497 }, { 198,3497 }, { 199,3497 }, { 200,3497 }, { 201,3497 }, { 202,3497 }, { 203,3497 }, { 204,3497 }, { 205,3497 }, { 206,3497 }, { 207,3497 }, { 208,3497 }, { 209,3497 }, { 210,3497 }, { 211,3497 }, { 212,3497 }, { 213,3497 }, { 214,3497 }, { 215,3497 }, { 216,3497 }, { 217,3497 }, { 218,3497 }, { 219,3497 }, { 220,3497 }, { 221,3497 }, { 222,3497 }, { 223,3497 }, { 224,3497 }, { 225,3497 }, { 226,3497 }, { 227,3497 }, { 228,3497 }, { 229,3497 }, { 230,3497 }, { 231,3497 }, { 232,3497 }, { 233,3497 }, { 234,3497 }, { 235,3497 }, { 236,3497 }, { 237,3497 }, { 238,3497 }, { 239,3497 }, { 240,3497 }, { 241,3497 }, { 242,3497 }, { 243,3497 }, { 244,3497 }, { 245,3497 }, { 246,3497 }, { 247,3497 }, { 248,3497 }, { 249,3497 }, { 250,3497 }, { 251,3497 }, { 252,3497 }, { 253,3497 }, { 254,3497 }, { 255,3497 }, { 256,3096 }, { 0, 0 }, { 0,8746 }, { 1,2838 }, { 2,2838 }, { 3,2838 }, { 4,2838 }, { 5,2838 }, { 6,2838 }, { 7,2838 }, { 8,2838 }, { 9,2840 }, { 10,2845 }, { 11,2840 }, { 12,2840 }, { 13,2840 }, { 14,2838 }, { 15,2838 }, { 16,2838 }, { 17,2838 }, { 18,2838 }, { 19,2838 }, { 20,2838 }, { 21,2838 }, { 22,2838 }, { 23,2838 }, { 24,2838 }, { 25,2838 }, { 26,2838 }, { 27,2838 }, { 28,2838 }, { 29,2838 }, { 30,2838 }, { 31,2838 }, { 32,2840 }, { 33,2838 }, { 34,2842 }, { 35,2847 }, { 36,2860 }, { 37,2862 }, { 38,2838 }, { 39,2864 }, { 40,2862 }, { 41,2862 }, { 42,2862 }, { 43,2890 }, { 44,2862 }, { 45,2862 }, { 46,3117 }, { 47,3133 }, { 48,3135 }, { 49,3157 }, { 50,3157 }, { 51,3157 }, { 52,3157 }, { 53,3157 }, { 54,3157 }, { 55,3157 }, { 56,3157 }, { 57,3157 }, { 58,3137 }, { 59,2862 }, { 60,3154 }, { 61,3159 }, { 62,3161 }, { 63,3179 }, { 64,3194 }, { 65,3239 }, { 66,3239 }, { 67,3239 }, { 68,3239 }, { 69,3239 }, { 70,3239 }, { 71,3239 }, { 72,3239 }, { 73,3239 }, { 74,3239 }, { 75,3239 }, { 76,3239 }, { 77,3239 }, { 78,3239 }, { 79,3239 }, { 80,3239 }, { 81,3239 }, { 82,3239 }, { 83,3239 }, { 84,3239 }, { 85,3239 }, { 86,3239 }, { 87,3239 }, { 88,3239 }, { 89,3239 }, { 90,3239 }, { 91,2862 }, { 92,2838 }, { 93,2862 }, { 94,2862 }, { 95,3239 }, { 96,3197 }, { 97,3239 }, { 98,3239 }, { 99,3239 }, { 100,3239 }, { 101,3239 }, { 102,3239 }, { 103,3239 }, { 104,3239 }, { 105,3239 }, { 106,3239 }, { 107,3239 }, { 108,3239 }, { 109,3239 }, { 110,3239 }, { 111,3239 }, { 112,3239 }, { 113,3239 }, { 114,3239 }, { 115,3239 }, { 116,3239 }, { 117,3239 }, { 118,3239 }, { 119,3239 }, { 120,3239 }, { 121,3239 }, { 122,3239 }, { 123,2862 }, { 124,3241 }, { 125,2862 }, { 126,2838 }, { 127,2838 }, { 128,3239 }, { 129,3239 }, { 130,3239 }, { 131,3239 }, { 132,3239 }, { 133,3239 }, { 134,3239 }, { 135,3239 }, { 136,3239 }, { 137,3239 }, { 138,3239 }, { 139,3239 }, { 140,3239 }, { 141,3239 }, { 142,3239 }, { 143,3239 }, { 144,3239 }, { 145,3239 }, { 146,3239 }, { 147,3239 }, { 148,3239 }, { 149,3239 }, { 150,3239 }, { 151,3239 }, { 152,3239 }, { 153,3239 }, { 154,3239 }, { 155,3239 }, { 156,3239 }, { 157,3239 }, { 158,3239 }, { 159,3239 }, { 160,3239 }, { 161,3239 }, { 162,3239 }, { 163,3239 }, { 164,3239 }, { 165,3239 }, { 166,3239 }, { 167,3239 }, { 168,3239 }, { 169,3239 }, { 170,3239 }, { 171,3239 }, { 172,3239 }, { 173,3239 }, { 174,3239 }, { 175,3239 }, { 176,3239 }, { 177,3239 }, { 178,3239 }, { 179,3239 }, { 180,3239 }, { 181,3239 }, { 182,3239 }, { 183,3239 }, { 184,3239 }, { 185,3239 }, { 186,3239 }, { 187,3239 }, { 188,3239 }, { 189,3239 }, { 190,3239 }, { 191,3239 }, { 192,3239 }, { 193,3239 }, { 194,3239 }, { 195,3239 }, { 196,3239 }, { 197,3239 }, { 198,3239 }, { 199,3239 }, { 200,3239 }, { 201,3239 }, { 202,3239 }, { 203,3239 }, { 204,3239 }, { 205,3239 }, { 206,3239 }, { 207,3239 }, { 208,3239 }, { 209,3239 }, { 210,3239 }, { 211,3239 }, { 212,3239 }, { 213,3239 }, { 214,3239 }, { 215,3239 }, { 216,3239 }, { 217,3239 }, { 218,3239 }, { 219,3239 }, { 220,3239 }, { 221,3239 }, { 222,3239 }, { 223,3239 }, { 224,3239 }, { 225,3239 }, { 226,3239 }, { 227,3239 }, { 228,3239 }, { 229,3239 }, { 230,3239 }, { 231,3239 }, { 232,3239 }, { 233,3239 }, { 234,3239 }, { 235,3239 }, { 236,3239 }, { 237,3239 }, { 238,3239 }, { 239,3239 }, { 240,3239 }, { 241,3239 }, { 242,3239 }, { 243,3239 }, { 244,3239 }, { 245,3239 }, { 246,3239 }, { 247,3239 }, { 248,3239 }, { 249,3239 }, { 250,3239 }, { 251,3239 }, { 252,3239 }, { 253,3239 }, { 254,3239 }, { 255,3239 }, { 256,2838 }, { 0, 0 }, { 0,8488 }, { 1,3238 }, { 2,3238 }, { 3,3238 }, { 4,3238 }, { 5,3238 }, { 6,3238 }, { 7,3238 }, { 8,3238 }, { 9,3238 }, { 10,3238 }, { 11,3238 }, { 12,3238 }, { 13,3238 }, { 14,3238 }, { 15,3238 }, { 16,3238 }, { 17,3238 }, { 18,3238 }, { 19,3238 }, { 20,3238 }, { 21,3238 }, { 22,3238 }, { 23,3238 }, { 24,3238 }, { 25,3238 }, { 26,3238 }, { 27,3238 }, { 28,3238 }, { 29,3238 }, { 30,3238 }, { 31,3238 }, { 32,3238 }, { 33,3238 }, { 34,3238 }, { 35,3238 }, { 36,3238 }, { 37,3238 }, { 38,3238 }, { 39,3238 }, { 40,3238 }, { 41,3238 }, { 42,3496 }, { 43,3238 }, { 44,3238 }, { 45,3238 }, { 46,3238 }, { 47,3238 }, { 48,3238 }, { 49,3238 }, { 50,3238 }, { 51,3238 }, { 52,3238 }, { 53,3238 }, { 54,3238 }, { 55,3238 }, { 56,3238 }, { 57,3238 }, { 58,3238 }, { 59,3238 }, { 60,3238 }, { 61,3238 }, { 62,3238 }, { 63,3238 }, { 64,3238 }, { 65,3238 }, { 66,3238 }, { 67,3238 }, { 68,3238 }, { 69,3238 }, { 70,3238 }, { 71,3238 }, { 72,3238 }, { 73,3238 }, { 74,3238 }, { 75,3238 }, { 76,3238 }, { 77,3238 }, { 78,3238 }, { 79,3238 }, { 80,3238 }, { 81,3238 }, { 82,3238 }, { 83,3238 }, { 84,3238 }, { 85,3238 }, { 86,3238 }, { 87,3238 }, { 88,3238 }, { 89,3238 }, { 90,3238 }, { 91,3238 }, { 92,3238 }, { 93,3238 }, { 94,3238 }, { 95,3238 }, { 96,3238 }, { 97,3238 }, { 98,3238 }, { 99,3238 }, { 100,3238 }, { 101,3238 }, { 102,3238 }, { 103,3238 }, { 104,3238 }, { 105,3238 }, { 106,3238 }, { 107,3238 }, { 108,3238 }, { 109,3238 }, { 110,3238 }, { 111,3238 }, { 112,3238 }, { 113,3238 }, { 114,3238 }, { 115,3238 }, { 116,3238 }, { 117,3238 }, { 118,3238 }, { 119,3238 }, { 120,3238 }, { 121,3238 }, { 122,3238 }, { 123,3238 }, { 124,3238 }, { 125,3238 }, { 126,3238 }, { 127,3238 }, { 128,3238 }, { 129,3238 }, { 130,3238 }, { 131,3238 }, { 132,3238 }, { 133,3238 }, { 134,3238 }, { 135,3238 }, { 136,3238 }, { 137,3238 }, { 138,3238 }, { 139,3238 }, { 140,3238 }, { 141,3238 }, { 142,3238 }, { 143,3238 }, { 144,3238 }, { 145,3238 }, { 146,3238 }, { 147,3238 }, { 148,3238 }, { 149,3238 }, { 150,3238 }, { 151,3238 }, { 152,3238 }, { 153,3238 }, { 154,3238 }, { 155,3238 }, { 156,3238 }, { 157,3238 }, { 158,3238 }, { 159,3238 }, { 160,3238 }, { 161,3238 }, { 162,3238 }, { 163,3238 }, { 164,3238 }, { 165,3238 }, { 166,3238 }, { 167,3238 }, { 168,3238 }, { 169,3238 }, { 170,3238 }, { 171,3238 }, { 172,3238 }, { 173,3238 }, { 174,3238 }, { 175,3238 }, { 176,3238 }, { 177,3238 }, { 178,3238 }, { 179,3238 }, { 180,3238 }, { 181,3238 }, { 182,3238 }, { 183,3238 }, { 184,3238 }, { 185,3238 }, { 186,3238 }, { 187,3238 }, { 188,3238 }, { 189,3238 }, { 190,3238 }, { 191,3238 }, { 192,3238 }, { 193,3238 }, { 194,3238 }, { 195,3238 }, { 196,3238 }, { 197,3238 }, { 198,3238 }, { 199,3238 }, { 200,3238 }, { 201,3238 }, { 202,3238 }, { 203,3238 }, { 204,3238 }, { 205,3238 }, { 206,3238 }, { 207,3238 }, { 208,3238 }, { 209,3238 }, { 210,3238 }, { 211,3238 }, { 212,3238 }, { 213,3238 }, { 214,3238 }, { 215,3238 }, { 216,3238 }, { 217,3238 }, { 218,3238 }, { 219,3238 }, { 220,3238 }, { 221,3238 }, { 222,3238 }, { 223,3238 }, { 224,3238 }, { 225,3238 }, { 226,3238 }, { 227,3238 }, { 228,3238 }, { 229,3238 }, { 230,3238 }, { 231,3238 }, { 232,3238 }, { 233,3238 }, { 234,3238 }, { 235,3238 }, { 236,3238 }, { 237,3238 }, { 238,3238 }, { 239,3238 }, { 240,3238 }, { 241,3238 }, { 242,3238 }, { 243,3238 }, { 244,3238 }, { 245,3238 }, { 246,3238 }, { 247,3238 }, { 248,3238 }, { 249,3238 }, { 250,3238 }, { 251,3238 }, { 252,3238 }, { 253,3238 }, { 254,3238 }, { 255,3238 }, { 256,3238 }, { 0, 0 }, { 0,8230 }, { 1,2980 }, { 2,2980 }, { 3,2980 }, { 4,2980 }, { 5,2980 }, { 6,2980 }, { 7,2980 }, { 8,2980 }, { 9,2980 }, { 10,2980 }, { 11,2980 }, { 12,2980 }, { 13,2980 }, { 14,2980 }, { 15,2980 }, { 16,2980 }, { 17,2980 }, { 18,2980 }, { 19,2980 }, { 20,2980 }, { 21,2980 }, { 22,2980 }, { 23,2980 }, { 24,2980 }, { 25,2980 }, { 26,2980 }, { 27,2980 }, { 28,2980 }, { 29,2980 }, { 30,2980 }, { 31,2980 }, { 32,2980 }, { 33,2980 }, { 34,2980 }, { 35,2980 }, { 36,2980 }, { 37,2980 }, { 38,2980 }, { 39,2980 }, { 40,2980 }, { 41,2980 }, { 42,3238 }, { 43,2980 }, { 44,2980 }, { 45,2980 }, { 46,2980 }, { 47,2980 }, { 48,2980 }, { 49,2980 }, { 50,2980 }, { 51,2980 }, { 52,2980 }, { 53,2980 }, { 54,2980 }, { 55,2980 }, { 56,2980 }, { 57,2980 }, { 58,2980 }, { 59,2980 }, { 60,2980 }, { 61,2980 }, { 62,2980 }, { 63,2980 }, { 64,2980 }, { 65,2980 }, { 66,2980 }, { 67,2980 }, { 68,2980 }, { 69,2980 }, { 70,2980 }, { 71,2980 }, { 72,2980 }, { 73,2980 }, { 74,2980 }, { 75,2980 }, { 76,2980 }, { 77,2980 }, { 78,2980 }, { 79,2980 }, { 80,2980 }, { 81,2980 }, { 82,2980 }, { 83,2980 }, { 84,2980 }, { 85,2980 }, { 86,2980 }, { 87,2980 }, { 88,2980 }, { 89,2980 }, { 90,2980 }, { 91,2980 }, { 92,2980 }, { 93,2980 }, { 94,2980 }, { 95,2980 }, { 96,2980 }, { 97,2980 }, { 98,2980 }, { 99,2980 }, { 100,2980 }, { 101,2980 }, { 102,2980 }, { 103,2980 }, { 104,2980 }, { 105,2980 }, { 106,2980 }, { 107,2980 }, { 108,2980 }, { 109,2980 }, { 110,2980 }, { 111,2980 }, { 112,2980 }, { 113,2980 }, { 114,2980 }, { 115,2980 }, { 116,2980 }, { 117,2980 }, { 118,2980 }, { 119,2980 }, { 120,2980 }, { 121,2980 }, { 122,2980 }, { 123,2980 }, { 124,2980 }, { 125,2980 }, { 126,2980 }, { 127,2980 }, { 128,2980 }, { 129,2980 }, { 130,2980 }, { 131,2980 }, { 132,2980 }, { 133,2980 }, { 134,2980 }, { 135,2980 }, { 136,2980 }, { 137,2980 }, { 138,2980 }, { 139,2980 }, { 140,2980 }, { 141,2980 }, { 142,2980 }, { 143,2980 }, { 144,2980 }, { 145,2980 }, { 146,2980 }, { 147,2980 }, { 148,2980 }, { 149,2980 }, { 150,2980 }, { 151,2980 }, { 152,2980 }, { 153,2980 }, { 154,2980 }, { 155,2980 }, { 156,2980 }, { 157,2980 }, { 158,2980 }, { 159,2980 }, { 160,2980 }, { 161,2980 }, { 162,2980 }, { 163,2980 }, { 164,2980 }, { 165,2980 }, { 166,2980 }, { 167,2980 }, { 168,2980 }, { 169,2980 }, { 170,2980 }, { 171,2980 }, { 172,2980 }, { 173,2980 }, { 174,2980 }, { 175,2980 }, { 176,2980 }, { 177,2980 }, { 178,2980 }, { 179,2980 }, { 180,2980 }, { 181,2980 }, { 182,2980 }, { 183,2980 }, { 184,2980 }, { 185,2980 }, { 186,2980 }, { 187,2980 }, { 188,2980 }, { 189,2980 }, { 190,2980 }, { 191,2980 }, { 192,2980 }, { 193,2980 }, { 194,2980 }, { 195,2980 }, { 196,2980 }, { 197,2980 }, { 198,2980 }, { 199,2980 }, { 200,2980 }, { 201,2980 }, { 202,2980 }, { 203,2980 }, { 204,2980 }, { 205,2980 }, { 206,2980 }, { 207,2980 }, { 208,2980 }, { 209,2980 }, { 210,2980 }, { 211,2980 }, { 212,2980 }, { 213,2980 }, { 214,2980 }, { 215,2980 }, { 216,2980 }, { 217,2980 }, { 218,2980 }, { 219,2980 }, { 220,2980 }, { 221,2980 }, { 222,2980 }, { 223,2980 }, { 224,2980 }, { 225,2980 }, { 226,2980 }, { 227,2980 }, { 228,2980 }, { 229,2980 }, { 230,2980 }, { 231,2980 }, { 232,2980 }, { 233,2980 }, { 234,2980 }, { 235,2980 }, { 236,2980 }, { 237,2980 }, { 238,2980 }, { 239,2980 }, { 240,2980 }, { 241,2980 }, { 242,2980 }, { 243,2980 }, { 244,2980 }, { 245,2980 }, { 246,2980 }, { 247,2980 }, { 248,2980 }, { 249,2980 }, { 250,2980 }, { 251,2980 }, { 252,2980 }, { 253,2980 }, { 254,2980 }, { 255,2980 }, { 256,2980 }, { 0, 0 }, { 0,7972 }, { 1,3029 }, { 2,3029 }, { 3,3029 }, { 4,3029 }, { 5,3029 }, { 6,3029 }, { 7,3029 }, { 8,3029 }, { 9,3029 }, { 10,3029 }, { 11,3029 }, { 12,3029 }, { 13,3029 }, { 14,3029 }, { 15,3029 }, { 16,3029 }, { 17,3029 }, { 18,3029 }, { 19,3029 }, { 20,3029 }, { 21,3029 }, { 22,3029 }, { 23,3029 }, { 24,3029 }, { 25,3029 }, { 26,3029 }, { 27,3029 }, { 28,3029 }, { 29,3029 }, { 30,3029 }, { 31,3029 }, { 32,3029 }, { 33,3029 }, { 34,2982 }, { 35,3029 }, { 36,3029 }, { 37,3029 }, { 38,3029 }, { 39,3029 }, { 40,3029 }, { 41,3029 }, { 42,3029 }, { 43,3029 }, { 44,3029 }, { 45,3029 }, { 46,3029 }, { 47,3029 }, { 48,3029 }, { 49,3029 }, { 50,3029 }, { 51,3029 }, { 52,3029 }, { 53,3029 }, { 54,3029 }, { 55,3029 }, { 56,3029 }, { 57,3029 }, { 58,3029 }, { 59,3029 }, { 60,3029 }, { 61,3029 }, { 62,3029 }, { 63,3029 }, { 64,3029 }, { 65,3029 }, { 66,3029 }, { 67,3029 }, { 68,3029 }, { 69,3029 }, { 70,3029 }, { 71,3029 }, { 72,3029 }, { 73,3029 }, { 74,3029 }, { 75,3029 }, { 76,3029 }, { 77,3029 }, { 78,3029 }, { 79,3029 }, { 80,3029 }, { 81,3029 }, { 82,3029 }, { 83,3029 }, { 84,3029 }, { 85,3029 }, { 86,3029 }, { 87,3029 }, { 88,3029 }, { 89,3029 }, { 90,3029 }, { 91,3029 }, { 92,3287 }, { 93,3029 }, { 94,3029 }, { 95,3029 }, { 96,3029 }, { 97,3029 }, { 98,3029 }, { 99,3029 }, { 100,3029 }, { 101,3029 }, { 102,3029 }, { 103,3029 }, { 104,3029 }, { 105,3029 }, { 106,3029 }, { 107,3029 }, { 108,3029 }, { 109,3029 }, { 110,3029 }, { 111,3029 }, { 112,3029 }, { 113,3029 }, { 114,3029 }, { 115,3029 }, { 116,3029 }, { 117,3029 }, { 118,3029 }, { 119,3029 }, { 120,3029 }, { 121,3029 }, { 122,3029 }, { 123,3029 }, { 124,3029 }, { 125,3029 }, { 126,3029 }, { 127,3029 }, { 128,3029 }, { 129,3029 }, { 130,3029 }, { 131,3029 }, { 132,3029 }, { 133,3029 }, { 134,3029 }, { 135,3029 }, { 136,3029 }, { 137,3029 }, { 138,3029 }, { 139,3029 }, { 140,3029 }, { 141,3029 }, { 142,3029 }, { 143,3029 }, { 144,3029 }, { 145,3029 }, { 146,3029 }, { 147,3029 }, { 148,3029 }, { 149,3029 }, { 150,3029 }, { 151,3029 }, { 152,3029 }, { 153,3029 }, { 154,3029 }, { 155,3029 }, { 156,3029 }, { 157,3029 }, { 158,3029 }, { 159,3029 }, { 160,3029 }, { 161,3029 }, { 162,3029 }, { 163,3029 }, { 164,3029 }, { 165,3029 }, { 166,3029 }, { 167,3029 }, { 168,3029 }, { 169,3029 }, { 170,3029 }, { 171,3029 }, { 172,3029 }, { 173,3029 }, { 174,3029 }, { 175,3029 }, { 176,3029 }, { 177,3029 }, { 178,3029 }, { 179,3029 }, { 180,3029 }, { 181,3029 }, { 182,3029 }, { 183,3029 }, { 184,3029 }, { 185,3029 }, { 186,3029 }, { 187,3029 }, { 188,3029 }, { 189,3029 }, { 190,3029 }, { 191,3029 }, { 192,3029 }, { 193,3029 }, { 194,3029 }, { 195,3029 }, { 196,3029 }, { 197,3029 }, { 198,3029 }, { 199,3029 }, { 200,3029 }, { 201,3029 }, { 202,3029 }, { 203,3029 }, { 204,3029 }, { 205,3029 }, { 206,3029 }, { 207,3029 }, { 208,3029 }, { 209,3029 }, { 210,3029 }, { 211,3029 }, { 212,3029 }, { 213,3029 }, { 214,3029 }, { 215,3029 }, { 216,3029 }, { 217,3029 }, { 218,3029 }, { 219,3029 }, { 220,3029 }, { 221,3029 }, { 222,3029 }, { 223,3029 }, { 224,3029 }, { 225,3029 }, { 226,3029 }, { 227,3029 }, { 228,3029 }, { 229,3029 }, { 230,3029 }, { 231,3029 }, { 232,3029 }, { 233,3029 }, { 234,3029 }, { 235,3029 }, { 236,3029 }, { 237,3029 }, { 238,3029 }, { 239,3029 }, { 240,3029 }, { 241,3029 }, { 242,3029 }, { 243,3029 }, { 244,3029 }, { 245,3029 }, { 246,3029 }, { 247,3029 }, { 248,3029 }, { 249,3029 }, { 250,3029 }, { 251,3029 }, { 252,3029 }, { 253,3029 }, { 254,3029 }, { 255,3029 }, { 256,3029 }, { 0, 0 }, { 0,7714 }, { 1,2771 }, { 2,2771 }, { 3,2771 }, { 4,2771 }, { 5,2771 }, { 6,2771 }, { 7,2771 }, { 8,2771 }, { 9,2771 }, { 10,2771 }, { 11,2771 }, { 12,2771 }, { 13,2771 }, { 14,2771 }, { 15,2771 }, { 16,2771 }, { 17,2771 }, { 18,2771 }, { 19,2771 }, { 20,2771 }, { 21,2771 }, { 22,2771 }, { 23,2771 }, { 24,2771 }, { 25,2771 }, { 26,2771 }, { 27,2771 }, { 28,2771 }, { 29,2771 }, { 30,2771 }, { 31,2771 }, { 32,2771 }, { 33,2771 }, { 34,2724 }, { 35,2771 }, { 36,2771 }, { 37,2771 }, { 38,2771 }, { 39,2771 }, { 40,2771 }, { 41,2771 }, { 42,2771 }, { 43,2771 }, { 44,2771 }, { 45,2771 }, { 46,2771 }, { 47,2771 }, { 48,2771 }, { 49,2771 }, { 50,2771 }, { 51,2771 }, { 52,2771 }, { 53,2771 }, { 54,2771 }, { 55,2771 }, { 56,2771 }, { 57,2771 }, { 58,2771 }, { 59,2771 }, { 60,2771 }, { 61,2771 }, { 62,2771 }, { 63,2771 }, { 64,2771 }, { 65,2771 }, { 66,2771 }, { 67,2771 }, { 68,2771 }, { 69,2771 }, { 70,2771 }, { 71,2771 }, { 72,2771 }, { 73,2771 }, { 74,2771 }, { 75,2771 }, { 76,2771 }, { 77,2771 }, { 78,2771 }, { 79,2771 }, { 80,2771 }, { 81,2771 }, { 82,2771 }, { 83,2771 }, { 84,2771 }, { 85,2771 }, { 86,2771 }, { 87,2771 }, { 88,2771 }, { 89,2771 }, { 90,2771 }, { 91,2771 }, { 92,3029 }, { 93,2771 }, { 94,2771 }, { 95,2771 }, { 96,2771 }, { 97,2771 }, { 98,2771 }, { 99,2771 }, { 100,2771 }, { 101,2771 }, { 102,2771 }, { 103,2771 }, { 104,2771 }, { 105,2771 }, { 106,2771 }, { 107,2771 }, { 108,2771 }, { 109,2771 }, { 110,2771 }, { 111,2771 }, { 112,2771 }, { 113,2771 }, { 114,2771 }, { 115,2771 }, { 116,2771 }, { 117,2771 }, { 118,2771 }, { 119,2771 }, { 120,2771 }, { 121,2771 }, { 122,2771 }, { 123,2771 }, { 124,2771 }, { 125,2771 }, { 126,2771 }, { 127,2771 }, { 128,2771 }, { 129,2771 }, { 130,2771 }, { 131,2771 }, { 132,2771 }, { 133,2771 }, { 134,2771 }, { 135,2771 }, { 136,2771 }, { 137,2771 }, { 138,2771 }, { 139,2771 }, { 140,2771 }, { 141,2771 }, { 142,2771 }, { 143,2771 }, { 144,2771 }, { 145,2771 }, { 146,2771 }, { 147,2771 }, { 148,2771 }, { 149,2771 }, { 150,2771 }, { 151,2771 }, { 152,2771 }, { 153,2771 }, { 154,2771 }, { 155,2771 }, { 156,2771 }, { 157,2771 }, { 158,2771 }, { 159,2771 }, { 160,2771 }, { 161,2771 }, { 162,2771 }, { 163,2771 }, { 164,2771 }, { 165,2771 }, { 166,2771 }, { 167,2771 }, { 168,2771 }, { 169,2771 }, { 170,2771 }, { 171,2771 }, { 172,2771 }, { 173,2771 }, { 174,2771 }, { 175,2771 }, { 176,2771 }, { 177,2771 }, { 178,2771 }, { 179,2771 }, { 180,2771 }, { 181,2771 }, { 182,2771 }, { 183,2771 }, { 184,2771 }, { 185,2771 }, { 186,2771 }, { 187,2771 }, { 188,2771 }, { 189,2771 }, { 190,2771 }, { 191,2771 }, { 192,2771 }, { 193,2771 }, { 194,2771 }, { 195,2771 }, { 196,2771 }, { 197,2771 }, { 198,2771 }, { 199,2771 }, { 200,2771 }, { 201,2771 }, { 202,2771 }, { 203,2771 }, { 204,2771 }, { 205,2771 }, { 206,2771 }, { 207,2771 }, { 208,2771 }, { 209,2771 }, { 210,2771 }, { 211,2771 }, { 212,2771 }, { 213,2771 }, { 214,2771 }, { 215,2771 }, { 216,2771 }, { 217,2771 }, { 218,2771 }, { 219,2771 }, { 220,2771 }, { 221,2771 }, { 222,2771 }, { 223,2771 }, { 224,2771 }, { 225,2771 }, { 226,2771 }, { 227,2771 }, { 228,2771 }, { 229,2771 }, { 230,2771 }, { 231,2771 }, { 232,2771 }, { 233,2771 }, { 234,2771 }, { 235,2771 }, { 236,2771 }, { 237,2771 }, { 238,2771 }, { 239,2771 }, { 240,2771 }, { 241,2771 }, { 242,2771 }, { 243,2771 }, { 244,2771 }, { 245,2771 }, { 246,2771 }, { 247,2771 }, { 248,2771 }, { 249,2771 }, { 250,2771 }, { 251,2771 }, { 252,2771 }, { 253,2771 }, { 254,2771 }, { 255,2771 }, { 256,2771 }, { 0, 0 }, { 0,7456 }, { 1,3029 }, { 2,3029 }, { 3,3029 }, { 4,3029 }, { 5,3029 }, { 6,3029 }, { 7,3029 }, { 8,3029 }, { 9,3029 }, { 10,3029 }, { 11,3029 }, { 12,3029 }, { 13,3029 }, { 14,3029 }, { 15,3029 }, { 16,3029 }, { 17,3029 }, { 18,3029 }, { 19,3029 }, { 20,3029 }, { 21,3029 }, { 22,3029 }, { 23,3029 }, { 24,3029 }, { 25,3029 }, { 26,3029 }, { 27,3029 }, { 28,3029 }, { 29,3029 }, { 30,3029 }, { 31,3029 }, { 32,3029 }, { 33,3029 }, { 34,3029 }, { 35,3029 }, { 36,3029 }, { 37,3029 }, { 38,3029 }, { 39,2468 }, { 40,3029 }, { 41,3029 }, { 42,3029 }, { 43,3029 }, { 44,3029 }, { 45,3029 }, { 46,3029 }, { 47,3029 }, { 48,3029 }, { 49,3029 }, { 50,3029 }, { 51,3029 }, { 52,3029 }, { 53,3029 }, { 54,3029 }, { 55,3029 }, { 56,3029 }, { 57,3029 }, { 58,3029 }, { 59,3029 }, { 60,3029 }, { 61,3029 }, { 62,3029 }, { 63,3029 }, { 64,3029 }, { 65,3029 }, { 66,3029 }, { 67,3029 }, { 68,3029 }, { 69,3029 }, { 70,3029 }, { 71,3029 }, { 72,3029 }, { 73,3029 }, { 74,3029 }, { 75,3029 }, { 76,3029 }, { 77,3029 }, { 78,3029 }, { 79,3029 }, { 80,3029 }, { 81,3029 }, { 82,3029 }, { 83,3029 }, { 84,3029 }, { 85,3029 }, { 86,3029 }, { 87,3029 }, { 88,3029 }, { 89,3029 }, { 90,3029 }, { 91,3029 }, { 92,2771 }, { 93,3029 }, { 94,3029 }, { 95,3029 }, { 96,3029 }, { 97,3029 }, { 98,3029 }, { 99,3029 }, { 100,3029 }, { 101,3029 }, { 102,3029 }, { 103,3029 }, { 104,3029 }, { 105,3029 }, { 106,3029 }, { 107,3029 }, { 108,3029 }, { 109,3029 }, { 110,3029 }, { 111,3029 }, { 112,3029 }, { 113,3029 }, { 114,3029 }, { 115,3029 }, { 116,3029 }, { 117,3029 }, { 118,3029 }, { 119,3029 }, { 120,3029 }, { 121,3029 }, { 122,3029 }, { 123,3029 }, { 124,3029 }, { 125,3029 }, { 126,3029 }, { 127,3029 }, { 128,3029 }, { 129,3029 }, { 130,3029 }, { 131,3029 }, { 132,3029 }, { 133,3029 }, { 134,3029 }, { 135,3029 }, { 136,3029 }, { 137,3029 }, { 138,3029 }, { 139,3029 }, { 140,3029 }, { 141,3029 }, { 142,3029 }, { 143,3029 }, { 144,3029 }, { 145,3029 }, { 146,3029 }, { 147,3029 }, { 148,3029 }, { 149,3029 }, { 150,3029 }, { 151,3029 }, { 152,3029 }, { 153,3029 }, { 154,3029 }, { 155,3029 }, { 156,3029 }, { 157,3029 }, { 158,3029 }, { 159,3029 }, { 160,3029 }, { 161,3029 }, { 162,3029 }, { 163,3029 }, { 164,3029 }, { 165,3029 }, { 166,3029 }, { 167,3029 }, { 168,3029 }, { 169,3029 }, { 170,3029 }, { 171,3029 }, { 172,3029 }, { 173,3029 }, { 174,3029 }, { 175,3029 }, { 176,3029 }, { 177,3029 }, { 178,3029 }, { 179,3029 }, { 180,3029 }, { 181,3029 }, { 182,3029 }, { 183,3029 }, { 184,3029 }, { 185,3029 }, { 186,3029 }, { 187,3029 }, { 188,3029 }, { 189,3029 }, { 190,3029 }, { 191,3029 }, { 192,3029 }, { 193,3029 }, { 194,3029 }, { 195,3029 }, { 196,3029 }, { 197,3029 }, { 198,3029 }, { 199,3029 }, { 200,3029 }, { 201,3029 }, { 202,3029 }, { 203,3029 }, { 204,3029 }, { 205,3029 }, { 206,3029 }, { 207,3029 }, { 208,3029 }, { 209,3029 }, { 210,3029 }, { 211,3029 }, { 212,3029 }, { 213,3029 }, { 214,3029 }, { 215,3029 }, { 216,3029 }, { 217,3029 }, { 218,3029 }, { 219,3029 }, { 220,3029 }, { 221,3029 }, { 222,3029 }, { 223,3029 }, { 224,3029 }, { 225,3029 }, { 226,3029 }, { 227,3029 }, { 228,3029 }, { 229,3029 }, { 230,3029 }, { 231,3029 }, { 232,3029 }, { 233,3029 }, { 234,3029 }, { 235,3029 }, { 236,3029 }, { 237,3029 }, { 238,3029 }, { 239,3029 }, { 240,3029 }, { 241,3029 }, { 242,3029 }, { 243,3029 }, { 244,3029 }, { 245,3029 }, { 246,3029 }, { 247,3029 }, { 248,3029 }, { 249,3029 }, { 250,3029 }, { 251,3029 }, { 252,3029 }, { 253,3029 }, { 254,3029 }, { 255,3029 }, { 256,3029 }, { 0, 0 }, { 0,7198 }, { 1,2771 }, { 2,2771 }, { 3,2771 }, { 4,2771 }, { 5,2771 }, { 6,2771 }, { 7,2771 }, { 8,2771 }, { 9,2771 }, { 10,2771 }, { 11,2771 }, { 12,2771 }, { 13,2771 }, { 14,2771 }, { 15,2771 }, { 16,2771 }, { 17,2771 }, { 18,2771 }, { 19,2771 }, { 20,2771 }, { 21,2771 }, { 22,2771 }, { 23,2771 }, { 24,2771 }, { 25,2771 }, { 26,2771 }, { 27,2771 }, { 28,2771 }, { 29,2771 }, { 30,2771 }, { 31,2771 }, { 32,2771 }, { 33,2771 }, { 34,2771 }, { 35,2771 }, { 36,2771 }, { 37,2771 }, { 38,2771 }, { 39,2210 }, { 40,2771 }, { 41,2771 }, { 42,2771 }, { 43,2771 }, { 44,2771 }, { 45,2771 }, { 46,2771 }, { 47,2771 }, { 48,2771 }, { 49,2771 }, { 50,2771 }, { 51,2771 }, { 52,2771 }, { 53,2771 }, { 54,2771 }, { 55,2771 }, { 56,2771 }, { 57,2771 }, { 58,2771 }, { 59,2771 }, { 60,2771 }, { 61,2771 }, { 62,2771 }, { 63,2771 }, { 64,2771 }, { 65,2771 }, { 66,2771 }, { 67,2771 }, { 68,2771 }, { 69,2771 }, { 70,2771 }, { 71,2771 }, { 72,2771 }, { 73,2771 }, { 74,2771 }, { 75,2771 }, { 76,2771 }, { 77,2771 }, { 78,2771 }, { 79,2771 }, { 80,2771 }, { 81,2771 }, { 82,2771 }, { 83,2771 }, { 84,2771 }, { 85,2771 }, { 86,2771 }, { 87,2771 }, { 88,2771 }, { 89,2771 }, { 90,2771 }, { 91,2771 }, { 92,2513 }, { 93,2771 }, { 94,2771 }, { 95,2771 }, { 96,2771 }, { 97,2771 }, { 98,2771 }, { 99,2771 }, { 100,2771 }, { 101,2771 }, { 102,2771 }, { 103,2771 }, { 104,2771 }, { 105,2771 }, { 106,2771 }, { 107,2771 }, { 108,2771 }, { 109,2771 }, { 110,2771 }, { 111,2771 }, { 112,2771 }, { 113,2771 }, { 114,2771 }, { 115,2771 }, { 116,2771 }, { 117,2771 }, { 118,2771 }, { 119,2771 }, { 120,2771 }, { 121,2771 }, { 122,2771 }, { 123,2771 }, { 124,2771 }, { 125,2771 }, { 126,2771 }, { 127,2771 }, { 128,2771 }, { 129,2771 }, { 130,2771 }, { 131,2771 }, { 132,2771 }, { 133,2771 }, { 134,2771 }, { 135,2771 }, { 136,2771 }, { 137,2771 }, { 138,2771 }, { 139,2771 }, { 140,2771 }, { 141,2771 }, { 142,2771 }, { 143,2771 }, { 144,2771 }, { 145,2771 }, { 146,2771 }, { 147,2771 }, { 148,2771 }, { 149,2771 }, { 150,2771 }, { 151,2771 }, { 152,2771 }, { 153,2771 }, { 154,2771 }, { 155,2771 }, { 156,2771 }, { 157,2771 }, { 158,2771 }, { 159,2771 }, { 160,2771 }, { 161,2771 }, { 162,2771 }, { 163,2771 }, { 164,2771 }, { 165,2771 }, { 166,2771 }, { 167,2771 }, { 168,2771 }, { 169,2771 }, { 170,2771 }, { 171,2771 }, { 172,2771 }, { 173,2771 }, { 174,2771 }, { 175,2771 }, { 176,2771 }, { 177,2771 }, { 178,2771 }, { 179,2771 }, { 180,2771 }, { 181,2771 }, { 182,2771 }, { 183,2771 }, { 184,2771 }, { 185,2771 }, { 186,2771 }, { 187,2771 }, { 188,2771 }, { 189,2771 }, { 190,2771 }, { 191,2771 }, { 192,2771 }, { 193,2771 }, { 194,2771 }, { 195,2771 }, { 196,2771 }, { 197,2771 }, { 198,2771 }, { 199,2771 }, { 200,2771 }, { 201,2771 }, { 202,2771 }, { 203,2771 }, { 204,2771 }, { 205,2771 }, { 206,2771 }, { 207,2771 }, { 208,2771 }, { 209,2771 }, { 210,2771 }, { 211,2771 }, { 212,2771 }, { 213,2771 }, { 214,2771 }, { 215,2771 }, { 216,2771 }, { 217,2771 }, { 218,2771 }, { 219,2771 }, { 220,2771 }, { 221,2771 }, { 222,2771 }, { 223,2771 }, { 224,2771 }, { 225,2771 }, { 226,2771 }, { 227,2771 }, { 228,2771 }, { 229,2771 }, { 230,2771 }, { 231,2771 }, { 232,2771 }, { 233,2771 }, { 234,2771 }, { 235,2771 }, { 236,2771 }, { 237,2771 }, { 238,2771 }, { 239,2771 }, { 240,2771 }, { 241,2771 }, { 242,2771 }, { 243,2771 }, { 244,2771 }, { 245,2771 }, { 246,2771 }, { 247,2771 }, { 248,2771 }, { 249,2771 }, { 250,2771 }, { 251,2771 }, { 252,2771 }, { 253,2771 }, { 254,2771 }, { 255,2771 }, { 256,2771 }, { 0, 0 }, { 0,6940 }, { 1,1954 }, { 2,1954 }, { 3,1954 }, { 4,1954 }, { 5,1954 }, { 6,1954 }, { 7,1954 }, { 8,1954 }, { 9,1954 }, { 10,1954 }, { 11,1954 }, { 12,1954 }, { 13,1954 }, { 14,1954 }, { 15,1954 }, { 16,1954 }, { 17,1954 }, { 18,1954 }, { 19,1954 }, { 20,1954 }, { 21,1954 }, { 22,1954 }, { 23,1954 }, { 24,1954 }, { 25,1954 }, { 26,1954 }, { 27,1954 }, { 28,1954 }, { 29,1954 }, { 30,1954 }, { 31,1954 }, { 32,1954 }, { 33,1954 }, { 34,1954 }, { 35,1954 }, { 36,1954 }, { 37,1954 }, { 38,1954 }, { 39,1954 }, { 40,1954 }, { 41,1954 }, { 42,1954 }, { 43,1954 }, { 44,1954 }, { 45,1954 }, { 46,1954 }, { 47,1954 }, { 48,1954 }, { 49,1954 }, { 50,1954 }, { 51,1954 }, { 52,1954 }, { 53,1954 }, { 54,1954 }, { 55,1954 }, { 56,1954 }, { 57,1954 }, { 58,1954 }, { 59,1954 }, { 60,1954 }, { 61,1954 }, { 62,1954 }, { 63,1954 }, { 64,1954 }, { 65,1954 }, { 66,1954 }, { 67,1954 }, { 68,1954 }, { 69,1954 }, { 70,1954 }, { 71,1954 }, { 72,1954 }, { 73,1954 }, { 74,1954 }, { 75,1954 }, { 76,1954 }, { 77,1954 }, { 78,1954 }, { 79,1954 }, { 80,1954 }, { 81,1954 }, { 82,1954 }, { 83,1954 }, { 84,1954 }, { 85,1954 }, { 86,1954 }, { 87,1954 }, { 88,1954 }, { 89,1954 }, { 90,1954 }, { 91,1954 }, { 92,2771 }, { 93,1954 }, { 94,1954 }, { 95,1954 }, { 96,1954 }, { 97,1954 }, { 98,1954 }, { 99,1954 }, { 100,1954 }, { 101,1954 }, { 102,1954 }, { 103,1954 }, { 104,1954 }, { 105,1954 }, { 106,1954 }, { 107,1954 }, { 108,1954 }, { 109,1954 }, { 110,1954 }, { 111,1954 }, { 112,1954 }, { 113,1954 }, { 114,1954 }, { 115,1954 }, { 116,1954 }, { 117,1954 }, { 118,1954 }, { 119,1954 }, { 120,1954 }, { 121,1954 }, { 122,1954 }, { 123,1954 }, { 124,1954 }, { 125,1954 }, { 126,1954 }, { 127,1954 }, { 128,1954 }, { 129,1954 }, { 130,1954 }, { 131,1954 }, { 132,1954 }, { 133,1954 }, { 134,1954 }, { 135,1954 }, { 136,1954 }, { 137,1954 }, { 138,1954 }, { 139,1954 }, { 140,1954 }, { 141,1954 }, { 142,1954 }, { 143,1954 }, { 144,1954 }, { 145,1954 }, { 146,1954 }, { 147,1954 }, { 148,1954 }, { 149,1954 }, { 150,1954 }, { 151,1954 }, { 152,1954 }, { 153,1954 }, { 154,1954 }, { 155,1954 }, { 156,1954 }, { 157,1954 }, { 158,1954 }, { 159,1954 }, { 160,1954 }, { 161,1954 }, { 162,1954 }, { 163,1954 }, { 164,1954 }, { 165,1954 }, { 166,1954 }, { 167,1954 }, { 168,1954 }, { 169,1954 }, { 170,1954 }, { 171,1954 }, { 172,1954 }, { 173,1954 }, { 174,1954 }, { 175,1954 }, { 176,1954 }, { 177,1954 }, { 178,1954 }, { 179,1954 }, { 180,1954 }, { 181,1954 }, { 182,1954 }, { 183,1954 }, { 184,1954 }, { 185,1954 }, { 186,1954 }, { 187,1954 }, { 188,1954 }, { 189,1954 }, { 190,1954 }, { 191,1954 }, { 192,1954 }, { 193,1954 }, { 194,1954 }, { 195,1954 }, { 196,1954 }, { 197,1954 }, { 198,1954 }, { 199,1954 }, { 200,1954 }, { 201,1954 }, { 202,1954 }, { 203,1954 }, { 204,1954 }, { 205,1954 }, { 206,1954 }, { 207,1954 }, { 208,1954 }, { 209,1954 }, { 210,1954 }, { 211,1954 }, { 212,1954 }, { 213,1954 }, { 214,1954 }, { 215,1954 }, { 216,1954 }, { 217,1954 }, { 218,1954 }, { 219,1954 }, { 220,1954 }, { 221,1954 }, { 222,1954 }, { 223,1954 }, { 224,1954 }, { 225,1954 }, { 226,1954 }, { 227,1954 }, { 228,1954 }, { 229,1954 }, { 230,1954 }, { 231,1954 }, { 232,1954 }, { 233,1954 }, { 234,1954 }, { 235,1954 }, { 236,1954 }, { 237,1954 }, { 238,1954 }, { 239,1954 }, { 240,1954 }, { 241,1954 }, { 242,1954 }, { 243,1954 }, { 244,1954 }, { 245,1954 }, { 246,1954 }, { 247,1954 }, { 248,1954 }, { 249,1954 }, { 250,1954 }, { 251,1954 }, { 252,1954 }, { 253,1954 }, { 254,1954 }, { 255,1954 }, { 256,1954 }, { 0, 0 }, { 0,6682 }, { 1,1696 }, { 2,1696 }, { 3,1696 }, { 4,1696 }, { 5,1696 }, { 6,1696 }, { 7,1696 }, { 8,1696 }, { 9,1696 }, { 10,1696 }, { 11,1696 }, { 12,1696 }, { 13,1696 }, { 14,1696 }, { 15,1696 }, { 16,1696 }, { 17,1696 }, { 18,1696 }, { 19,1696 }, { 20,1696 }, { 21,1696 }, { 22,1696 }, { 23,1696 }, { 24,1696 }, { 25,1696 }, { 26,1696 }, { 27,1696 }, { 28,1696 }, { 29,1696 }, { 30,1696 }, { 31,1696 }, { 32,1696 }, { 33,1696 }, { 34,1696 }, { 35,1696 }, { 36,1696 }, { 37,1696 }, { 38,1696 }, { 39,1696 }, { 40,1696 }, { 41,1696 }, { 42,1696 }, { 43,1696 }, { 44,1696 }, { 45,1696 }, { 46,1696 }, { 47,1696 }, { 48,1696 }, { 49,1696 }, { 50,1696 }, { 51,1696 }, { 52,1696 }, { 53,1696 }, { 54,1696 }, { 55,1696 }, { 56,1696 }, { 57,1696 }, { 58,1696 }, { 59,1696 }, { 60,1696 }, { 61,1696 }, { 62,1696 }, { 63,1696 }, { 64,1696 }, { 65,1696 }, { 66,1696 }, { 67,1696 }, { 68,1696 }, { 69,1696 }, { 70,1696 }, { 71,1696 }, { 72,1696 }, { 73,1696 }, { 74,1696 }, { 75,1696 }, { 76,1696 }, { 77,1696 }, { 78,1696 }, { 79,1696 }, { 80,1696 }, { 81,1696 }, { 82,1696 }, { 83,1696 }, { 84,1696 }, { 85,1696 }, { 86,1696 }, { 87,1696 }, { 88,1696 }, { 89,1696 }, { 90,1696 }, { 91,1696 }, { 92,2513 }, { 93,1696 }, { 94,1696 }, { 95,1696 }, { 96,1696 }, { 97,1696 }, { 98,1696 }, { 99,1696 }, { 100,1696 }, { 101,1696 }, { 102,1696 }, { 103,1696 }, { 104,1696 }, { 105,1696 }, { 106,1696 }, { 107,1696 }, { 108,1696 }, { 109,1696 }, { 110,1696 }, { 111,1696 }, { 112,1696 }, { 113,1696 }, { 114,1696 }, { 115,1696 }, { 116,1696 }, { 117,1696 }, { 118,1696 }, { 119,1696 }, { 120,1696 }, { 121,1696 }, { 122,1696 }, { 123,1696 }, { 124,1696 }, { 125,1696 }, { 126,1696 }, { 127,1696 }, { 128,1696 }, { 129,1696 }, { 130,1696 }, { 131,1696 }, { 132,1696 }, { 133,1696 }, { 134,1696 }, { 135,1696 }, { 136,1696 }, { 137,1696 }, { 138,1696 }, { 139,1696 }, { 140,1696 }, { 141,1696 }, { 142,1696 }, { 143,1696 }, { 144,1696 }, { 145,1696 }, { 146,1696 }, { 147,1696 }, { 148,1696 }, { 149,1696 }, { 150,1696 }, { 151,1696 }, { 152,1696 }, { 153,1696 }, { 154,1696 }, { 155,1696 }, { 156,1696 }, { 157,1696 }, { 158,1696 }, { 159,1696 }, { 160,1696 }, { 161,1696 }, { 162,1696 }, { 163,1696 }, { 164,1696 }, { 165,1696 }, { 166,1696 }, { 167,1696 }, { 168,1696 }, { 169,1696 }, { 170,1696 }, { 171,1696 }, { 172,1696 }, { 173,1696 }, { 174,1696 }, { 175,1696 }, { 176,1696 }, { 177,1696 }, { 178,1696 }, { 179,1696 }, { 180,1696 }, { 181,1696 }, { 182,1696 }, { 183,1696 }, { 184,1696 }, { 185,1696 }, { 186,1696 }, { 187,1696 }, { 188,1696 }, { 189,1696 }, { 190,1696 }, { 191,1696 }, { 192,1696 }, { 193,1696 }, { 194,1696 }, { 195,1696 }, { 196,1696 }, { 197,1696 }, { 198,1696 }, { 199,1696 }, { 200,1696 }, { 201,1696 }, { 202,1696 }, { 203,1696 }, { 204,1696 }, { 205,1696 }, { 206,1696 }, { 207,1696 }, { 208,1696 }, { 209,1696 }, { 210,1696 }, { 211,1696 }, { 212,1696 }, { 213,1696 }, { 214,1696 }, { 215,1696 }, { 216,1696 }, { 217,1696 }, { 218,1696 }, { 219,1696 }, { 220,1696 }, { 221,1696 }, { 222,1696 }, { 223,1696 }, { 224,1696 }, { 225,1696 }, { 226,1696 }, { 227,1696 }, { 228,1696 }, { 229,1696 }, { 230,1696 }, { 231,1696 }, { 232,1696 }, { 233,1696 }, { 234,1696 }, { 235,1696 }, { 236,1696 }, { 237,1696 }, { 238,1696 }, { 239,1696 }, { 240,1696 }, { 241,1696 }, { 242,1696 }, { 243,1696 }, { 244,1696 }, { 245,1696 }, { 246,1696 }, { 247,1696 }, { 248,1696 }, { 249,1696 }, { 250,1696 }, { 251,1696 }, { 252,1696 }, { 253,1696 }, { 254,1696 }, { 255,1696 }, { 256,1696 }, { 0, 0 }, { 0,6424 }, { 1,2374 }, { 2,2374 }, { 3,2374 }, { 4,2374 }, { 5,2374 }, { 6,2374 }, { 7,2374 }, { 8,2374 }, { 9,2374 }, { 10,2374 }, { 11,2374 }, { 12,2374 }, { 13,2374 }, { 14,2374 }, { 15,2374 }, { 16,2374 }, { 17,2374 }, { 18,2374 }, { 19,2374 }, { 20,2374 }, { 21,2374 }, { 22,2374 }, { 23,2374 }, { 24,2374 }, { 25,2374 }, { 26,2374 }, { 27,2374 }, { 28,2374 }, { 29,2374 }, { 30,2374 }, { 31,2374 }, { 32,2374 }, { 33,2374 }, { 34,2374 }, { 35,2374 }, { 36,2374 }, { 37,2374 }, { 38,2374 }, { 39,2374 }, { 40,2374 }, { 41,2374 }, { 42,2374 }, { 43,2374 }, { 44,2374 }, { 45,2374 }, { 46,2374 }, { 47,2374 }, { 48,2374 }, { 49,2374 }, { 50,2374 }, { 51,2374 }, { 52,2374 }, { 53,2374 }, { 54,2374 }, { 55,2374 }, { 56,2374 }, { 57,2374 }, { 58,2374 }, { 59,2374 }, { 60,2374 }, { 61,2374 }, { 62,2374 }, { 63,2374 }, { 64,2374 }, { 65,2374 }, { 66,2374 }, { 67,2374 }, { 68,2374 }, { 69,2374 }, { 70,2374 }, { 71,2374 }, { 72,2374 }, { 73,2374 }, { 74,2374 }, { 75,2374 }, { 76,2374 }, { 77,2374 }, { 78,2374 }, { 79,2374 }, { 80,2374 }, { 81,2374 }, { 82,2374 }, { 83,2374 }, { 84,2374 }, { 85,2374 }, { 86,2374 }, { 87,2374 }, { 88,2374 }, { 89,2374 }, { 90,2374 }, { 91,2374 }, { 92,2374 }, { 93,2374 }, { 94,2374 }, { 95,2374 }, { 96,2257 }, { 97,2374 }, { 98,2374 }, { 99,2374 }, { 100,2374 }, { 101,2374 }, { 102,2374 }, { 103,2374 }, { 104,2374 }, { 105,2374 }, { 106,2374 }, { 107,2374 }, { 108,2374 }, { 109,2374 }, { 110,2374 }, { 111,2374 }, { 112,2374 }, { 113,2374 }, { 114,2374 }, { 115,2374 }, { 116,2374 }, { 117,2374 }, { 118,2374 }, { 119,2374 }, { 120,2374 }, { 121,2374 }, { 122,2374 }, { 123,2374 }, { 124,2374 }, { 125,2374 }, { 126,2374 }, { 127,2374 }, { 128,2374 }, { 129,2374 }, { 130,2374 }, { 131,2374 }, { 132,2374 }, { 133,2374 }, { 134,2374 }, { 135,2374 }, { 136,2374 }, { 137,2374 }, { 138,2374 }, { 139,2374 }, { 140,2374 }, { 141,2374 }, { 142,2374 }, { 143,2374 }, { 144,2374 }, { 145,2374 }, { 146,2374 }, { 147,2374 }, { 148,2374 }, { 149,2374 }, { 150,2374 }, { 151,2374 }, { 152,2374 }, { 153,2374 }, { 154,2374 }, { 155,2374 }, { 156,2374 }, { 157,2374 }, { 158,2374 }, { 159,2374 }, { 160,2374 }, { 161,2374 }, { 162,2374 }, { 163,2374 }, { 164,2374 }, { 165,2374 }, { 166,2374 }, { 167,2374 }, { 168,2374 }, { 169,2374 }, { 170,2374 }, { 171,2374 }, { 172,2374 }, { 173,2374 }, { 174,2374 }, { 175,2374 }, { 176,2374 }, { 177,2374 }, { 178,2374 }, { 179,2374 }, { 180,2374 }, { 181,2374 }, { 182,2374 }, { 183,2374 }, { 184,2374 }, { 185,2374 }, { 186,2374 }, { 187,2374 }, { 188,2374 }, { 189,2374 }, { 190,2374 }, { 191,2374 }, { 192,2374 }, { 193,2374 }, { 194,2374 }, { 195,2374 }, { 196,2374 }, { 197,2374 }, { 198,2374 }, { 199,2374 }, { 200,2374 }, { 201,2374 }, { 202,2374 }, { 203,2374 }, { 204,2374 }, { 205,2374 }, { 206,2374 }, { 207,2374 }, { 208,2374 }, { 209,2374 }, { 210,2374 }, { 211,2374 }, { 212,2374 }, { 213,2374 }, { 214,2374 }, { 215,2374 }, { 216,2374 }, { 217,2374 }, { 218,2374 }, { 219,2374 }, { 220,2374 }, { 221,2374 }, { 222,2374 }, { 223,2374 }, { 224,2374 }, { 225,2374 }, { 226,2374 }, { 227,2374 }, { 228,2374 }, { 229,2374 }, { 230,2374 }, { 231,2374 }, { 232,2374 }, { 233,2374 }, { 234,2374 }, { 235,2374 }, { 236,2374 }, { 237,2374 }, { 238,2374 }, { 239,2374 }, { 240,2374 }, { 241,2374 }, { 242,2374 }, { 243,2374 }, { 244,2374 }, { 245,2374 }, { 246,2374 }, { 247,2374 }, { 248,2374 }, { 249,2374 }, { 250,2374 }, { 251,2374 }, { 252,2374 }, { 253,2374 }, { 254,2374 }, { 255,2374 }, { 256,2374 }, { 0, 0 }, { 0,6166 }, { 1,2116 }, { 2,2116 }, { 3,2116 }, { 4,2116 }, { 5,2116 }, { 6,2116 }, { 7,2116 }, { 8,2116 }, { 9,2116 }, { 10,2116 }, { 11,2116 }, { 12,2116 }, { 13,2116 }, { 14,2116 }, { 15,2116 }, { 16,2116 }, { 17,2116 }, { 18,2116 }, { 19,2116 }, { 20,2116 }, { 21,2116 }, { 22,2116 }, { 23,2116 }, { 24,2116 }, { 25,2116 }, { 26,2116 }, { 27,2116 }, { 28,2116 }, { 29,2116 }, { 30,2116 }, { 31,2116 }, { 32,2116 }, { 33,2116 }, { 34,2116 }, { 35,2116 }, { 36,2116 }, { 37,2116 }, { 38,2116 }, { 39,2116 }, { 40,2116 }, { 41,2116 }, { 42,2116 }, { 43,2116 }, { 44,2116 }, { 45,2116 }, { 46,2116 }, { 47,2116 }, { 48,2116 }, { 49,2116 }, { 50,2116 }, { 51,2116 }, { 52,2116 }, { 53,2116 }, { 54,2116 }, { 55,2116 }, { 56,2116 }, { 57,2116 }, { 58,2116 }, { 59,2116 }, { 60,2116 }, { 61,2116 }, { 62,2116 }, { 63,2116 }, { 64,2116 }, { 65,2116 }, { 66,2116 }, { 67,2116 }, { 68,2116 }, { 69,2116 }, { 70,2116 }, { 71,2116 }, { 72,2116 }, { 73,2116 }, { 74,2116 }, { 75,2116 }, { 76,2116 }, { 77,2116 }, { 78,2116 }, { 79,2116 }, { 80,2116 }, { 81,2116 }, { 82,2116 }, { 83,2116 }, { 84,2116 }, { 85,2116 }, { 86,2116 }, { 87,2116 }, { 88,2116 }, { 89,2116 }, { 90,2116 }, { 91,2116 }, { 92,2116 }, { 93,2116 }, { 94,2116 }, { 95,2116 }, { 96,1999 }, { 97,2116 }, { 98,2116 }, { 99,2116 }, { 100,2116 }, { 101,2116 }, { 102,2116 }, { 103,2116 }, { 104,2116 }, { 105,2116 }, { 106,2116 }, { 107,2116 }, { 108,2116 }, { 109,2116 }, { 110,2116 }, { 111,2116 }, { 112,2116 }, { 113,2116 }, { 114,2116 }, { 115,2116 }, { 116,2116 }, { 117,2116 }, { 118,2116 }, { 119,2116 }, { 120,2116 }, { 121,2116 }, { 122,2116 }, { 123,2116 }, { 124,2116 }, { 125,2116 }, { 126,2116 }, { 127,2116 }, { 128,2116 }, { 129,2116 }, { 130,2116 }, { 131,2116 }, { 132,2116 }, { 133,2116 }, { 134,2116 }, { 135,2116 }, { 136,2116 }, { 137,2116 }, { 138,2116 }, { 139,2116 }, { 140,2116 }, { 141,2116 }, { 142,2116 }, { 143,2116 }, { 144,2116 }, { 145,2116 }, { 146,2116 }, { 147,2116 }, { 148,2116 }, { 149,2116 }, { 150,2116 }, { 151,2116 }, { 152,2116 }, { 153,2116 }, { 154,2116 }, { 155,2116 }, { 156,2116 }, { 157,2116 }, { 158,2116 }, { 159,2116 }, { 160,2116 }, { 161,2116 }, { 162,2116 }, { 163,2116 }, { 164,2116 }, { 165,2116 }, { 166,2116 }, { 167,2116 }, { 168,2116 }, { 169,2116 }, { 170,2116 }, { 171,2116 }, { 172,2116 }, { 173,2116 }, { 174,2116 }, { 175,2116 }, { 176,2116 }, { 177,2116 }, { 178,2116 }, { 179,2116 }, { 180,2116 }, { 181,2116 }, { 182,2116 }, { 183,2116 }, { 184,2116 }, { 185,2116 }, { 186,2116 }, { 187,2116 }, { 188,2116 }, { 189,2116 }, { 190,2116 }, { 191,2116 }, { 192,2116 }, { 193,2116 }, { 194,2116 }, { 195,2116 }, { 196,2116 }, { 197,2116 }, { 198,2116 }, { 199,2116 }, { 200,2116 }, { 201,2116 }, { 202,2116 }, { 203,2116 }, { 204,2116 }, { 205,2116 }, { 206,2116 }, { 207,2116 }, { 208,2116 }, { 209,2116 }, { 210,2116 }, { 211,2116 }, { 212,2116 }, { 213,2116 }, { 214,2116 }, { 215,2116 }, { 216,2116 }, { 217,2116 }, { 218,2116 }, { 219,2116 }, { 220,2116 }, { 221,2116 }, { 222,2116 }, { 223,2116 }, { 224,2116 }, { 225,2116 }, { 226,2116 }, { 227,2116 }, { 228,2116 }, { 229,2116 }, { 230,2116 }, { 231,2116 }, { 232,2116 }, { 233,2116 }, { 234,2116 }, { 235,2116 }, { 236,2116 }, { 237,2116 }, { 238,2116 }, { 239,2116 }, { 240,2116 }, { 241,2116 }, { 242,2116 }, { 243,2116 }, { 244,2116 }, { 245,2116 }, { 246,2116 }, { 247,2116 }, { 248,2116 }, { 249,2116 }, { 250,2116 }, { 251,2116 }, { 252,2116 }, { 253,2116 }, { 254,2116 }, { 255,2116 }, { 256,2116 }, { 0, 46 }, { 0,5908 }, { 0, 1 }, { 0,5906 }, { 0, 14 }, { 0,5904 }, { 0, 0 }, { 0, 1 }, { 0,5901 }, { 0, 46 }, { 0,5899 }, { 0, 0 }, { 9,2114 }, { 10,2114 }, { 11,2114 }, { 12,2114 }, { 13,2114 }, { 9,2109 }, { 10,2109 }, { 11,2109 }, { 12,2109 }, { 13,2109 }, { 0, 46 }, { 0,5886 }, { 0, 45 }, { 0,5884 }, { 0, 15 }, { 0,5882 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 32,2114 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 32,2109 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 45 }, { 0,5856 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 62,1734 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,2096 }, { 66,2096 }, { 67,2096 }, { 68,2096 }, { 69,2096 }, { 70,2096 }, { 71,2096 }, { 72,2096 }, { 73,2096 }, { 74,2096 }, { 75,2096 }, { 76,2096 }, { 77,2096 }, { 78,2096 }, { 79,2096 }, { 80,2096 }, { 81,2096 }, { 82,2096 }, { 83,2096 }, { 84,2096 }, { 85,2096 }, { 86,2096 }, { 87,2096 }, { 88,2096 }, { 89,2096 }, { 90,2096 }, { 61,1693 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 95,2096 }, { 0, 0 }, { 97,2096 }, { 98,2096 }, { 99,2096 }, { 100,2096 }, { 101,2096 }, { 102,2096 }, { 103,2096 }, { 104,2096 }, { 105,2096 }, { 106,2096 }, { 107,2096 }, { 108,2096 }, { 109,2096 }, { 110,2096 }, { 111,2096 }, { 112,2096 }, { 113,2096 }, { 114,2096 }, { 115,2096 }, { 116,2096 }, { 117,2096 }, { 118,2096 }, { 119,2096 }, { 120,2096 }, { 121,2096 }, { 122,2096 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 128,2096 }, { 129,2096 }, { 130,2096 }, { 131,2096 }, { 132,2096 }, { 133,2096 }, { 134,2096 }, { 135,2096 }, { 136,2096 }, { 137,2096 }, { 138,2096 }, { 139,2096 }, { 140,2096 }, { 141,2096 }, { 142,2096 }, { 143,2096 }, { 144,2096 }, { 145,2096 }, { 146,2096 }, { 147,2096 }, { 148,2096 }, { 149,2096 }, { 150,2096 }, { 151,2096 }, { 152,2096 }, { 153,2096 }, { 154,2096 }, { 155,2096 }, { 156,2096 }, { 157,2096 }, { 158,2096 }, { 159,2096 }, { 160,2096 }, { 161,2096 }, { 162,2096 }, { 163,2096 }, { 164,2096 }, { 165,2096 }, { 166,2096 }, { 167,2096 }, { 168,2096 }, { 169,2096 }, { 170,2096 }, { 171,2096 }, { 172,2096 }, { 173,2096 }, { 174,2096 }, { 175,2096 }, { 176,2096 }, { 177,2096 }, { 178,2096 }, { 179,2096 }, { 180,2096 }, { 181,2096 }, { 182,2096 }, { 183,2096 }, { 184,2096 }, { 185,2096 }, { 186,2096 }, { 187,2096 }, { 188,2096 }, { 189,2096 }, { 190,2096 }, { 191,2096 }, { 192,2096 }, { 193,2096 }, { 194,2096 }, { 195,2096 }, { 196,2096 }, { 197,2096 }, { 198,2096 }, { 199,2096 }, { 200,2096 }, { 201,2096 }, { 202,2096 }, { 203,2096 }, { 204,2096 }, { 205,2096 }, { 206,2096 }, { 207,2096 }, { 208,2096 }, { 209,2096 }, { 210,2096 }, { 211,2096 }, { 212,2096 }, { 213,2096 }, { 214,2096 }, { 215,2096 }, { 216,2096 }, { 217,2096 }, { 218,2096 }, { 219,2096 }, { 220,2096 }, { 221,2096 }, { 222,2096 }, { 223,2096 }, { 224,2096 }, { 225,2096 }, { 226,2096 }, { 227,2096 }, { 228,2096 }, { 229,2096 }, { 230,2096 }, { 231,2096 }, { 232,2096 }, { 233,2096 }, { 234,2096 }, { 235,2096 }, { 236,2096 }, { 237,2096 }, { 238,2096 }, { 239,2096 }, { 240,2096 }, { 241,2096 }, { 242,2096 }, { 243,2096 }, { 244,2096 }, { 245,2096 }, { 246,2096 }, { 247,2096 }, { 248,2096 }, { 249,2096 }, { 250,2096 }, { 251,2096 }, { 252,2096 }, { 253,2096 }, { 254,2096 }, { 255,2096 }, { 0, 45 }, { 0,5629 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 45 }, { 0,5613 }, { 0, 6 }, { 0,5611 }, { 0, 45 }, { 0,5609 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 45 }, { 0,5592 }, { 0, 0 }, { 0, 6 }, { 0,5589 }, { 0, 45 }, { 0,5587 }, { 0, 45 }, { 0,5585 }, { 0, 0 }, { 46,1468 }, { 0, 0 }, { 48,2096 }, { 49,2096 }, { 50,2096 }, { 51,2096 }, { 52,2096 }, { 53,2096 }, { 54,2096 }, { 55,2096 }, { 56,2096 }, { 57,2096 }, { 42,1454 }, { 0, 0 }, { 0, 0 }, { 0, 45 }, { 0,5567 }, { 47,2168 }, { 46,2424 }, { 0, 0 }, { 48,2446 }, { 49,2446 }, { 50,2446 }, { 51,2446 }, { 52,2446 }, { 53,2446 }, { 54,2446 }, { 55,2446 }, { 56,2446 }, { 57,2446 }, { 0, 46 }, { 0,5552 }, { 58,1452 }, { 0, 27 }, { 0,5549 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 46,2402 }, { 69,2483 }, { 48,2424 }, { 49,2424 }, { 50,2424 }, { 51,2424 }, { 52,2424 }, { 53,2424 }, { 54,2424 }, { 55,2424 }, { 56,2424 }, { 57,2424 }, { 61,1437 }, { 62,1439 }, { 38,1422 }, { 64,1441 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 61,1438 }, { 88,2505 }, { 0, 0 }, { 0, 0 }, { 69,2461 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 101,2483 }, { 0, 0 }, { 0, 26 }, { 0,5507 }, { 0, 45 }, { 0,5505 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 120,2505 }, { 62,1411 }, { 0, 0 }, { 101,2461 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 36,2439 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 126,1438 }, { 0, 0 }, { 48,2439 }, { 49,2439 }, { 50,2439 }, { 51,2439 }, { 52,2439 }, { 53,2439 }, { 54,2439 }, { 55,2439 }, { 56,2439 }, { 57,2439 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 124,1424 }, { 65,2439 }, { 66,2439 }, { 67,2439 }, { 68,2439 }, { 69,2439 }, { 70,2439 }, { 71,2439 }, { 72,2439 }, { 73,2439 }, { 74,2439 }, { 75,2439 }, { 76,2439 }, { 77,2439 }, { 78,2439 }, { 79,2439 }, { 80,2439 }, { 81,2439 }, { 82,2439 }, { 83,2439 }, { 84,2439 }, { 85,2439 }, { 86,2439 }, { 87,2439 }, { 88,2439 }, { 89,2439 }, { 90,2439 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 95,2439 }, { 0, 0 }, { 97,2439 }, { 98,2439 }, { 99,2439 }, { 100,2439 }, { 101,2439 }, { 102,2439 }, { 103,2439 }, { 104,2439 }, { 105,2439 }, { 106,2439 }, { 107,2439 }, { 108,2439 }, { 109,2439 }, { 110,2439 }, { 111,2439 }, { 112,2439 }, { 113,2439 }, { 114,2439 }, { 115,2439 }, { 116,2439 }, { 117,2439 }, { 118,2439 }, { 119,2439 }, { 120,2439 }, { 121,2439 }, { 122,2439 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 124,1366 }, { 0, 0 }, { 128,2439 }, { 129,2439 }, { 130,2439 }, { 131,2439 }, { 132,2439 }, { 133,2439 }, { 134,2439 }, { 135,2439 }, { 136,2439 }, { 137,2439 }, { 138,2439 }, { 139,2439 }, { 140,2439 }, { 141,2439 }, { 142,2439 }, { 143,2439 }, { 144,2439 }, { 145,2439 }, { 146,2439 }, { 147,2439 }, { 148,2439 }, { 149,2439 }, { 150,2439 }, { 151,2439 }, { 152,2439 }, { 153,2439 }, { 154,2439 }, { 155,2439 }, { 156,2439 }, { 157,2439 }, { 158,2439 }, { 159,2439 }, { 160,2439 }, { 161,2439 }, { 162,2439 }, { 163,2439 }, { 164,2439 }, { 165,2439 }, { 166,2439 }, { 167,2439 }, { 168,2439 }, { 169,2439 }, { 170,2439 }, { 171,2439 }, { 172,2439 }, { 173,2439 }, { 174,2439 }, { 175,2439 }, { 176,2439 }, { 177,2439 }, { 178,2439 }, { 179,2439 }, { 180,2439 }, { 181,2439 }, { 182,2439 }, { 183,2439 }, { 184,2439 }, { 185,2439 }, { 186,2439 }, { 187,2439 }, { 188,2439 }, { 189,2439 }, { 190,2439 }, { 191,2439 }, { 192,2439 }, { 193,2439 }, { 194,2439 }, { 195,2439 }, { 196,2439 }, { 197,2439 }, { 198,2439 }, { 199,2439 }, { 200,2439 }, { 201,2439 }, { 202,2439 }, { 203,2439 }, { 204,2439 }, { 205,2439 }, { 206,2439 }, { 207,2439 }, { 208,2439 }, { 209,2439 }, { 210,2439 }, { 211,2439 }, { 212,2439 }, { 213,2439 }, { 214,2439 }, { 215,2439 }, { 216,2439 }, { 217,2439 }, { 218,2439 }, { 219,2439 }, { 220,2439 }, { 221,2439 }, { 222,2439 }, { 223,2439 }, { 224,2439 }, { 225,2439 }, { 226,2439 }, { 227,2439 }, { 228,2439 }, { 229,2439 }, { 230,2439 }, { 231,2439 }, { 232,2439 }, { 233,2439 }, { 234,2439 }, { 235,2439 }, { 236,2439 }, { 237,2439 }, { 238,2439 }, { 239,2439 }, { 240,2439 }, { 241,2439 }, { 242,2439 }, { 243,2439 }, { 244,2439 }, { 245,2439 }, { 246,2439 }, { 247,2439 }, { 248,2439 }, { 249,2439 }, { 250,2439 }, { 251,2439 }, { 252,2439 }, { 253,2439 }, { 254,2439 }, { 255,2439 }, { 0, 3 }, { 0,5250 }, { 1,2439 }, { 2,2439 }, { 3,2439 }, { 4,2439 }, { 5,2439 }, { 6,2439 }, { 7,2439 }, { 8,2439 }, { 9,2439 }, { 10,2439 }, { 11,2439 }, { 12,2439 }, { 13,2439 }, { 14,2439 }, { 15,2439 }, { 16,2439 }, { 17,2439 }, { 18,2439 }, { 19,2439 }, { 20,2439 }, { 21,2439 }, { 22,2439 }, { 23,2439 }, { 24,2439 }, { 25,2439 }, { 26,2439 }, { 27,2439 }, { 28,2439 }, { 29,2439 }, { 30,2439 }, { 31,2439 }, { 32,2439 }, { 33,2439 }, { 34,2439 }, { 35,2439 }, { 36,2439 }, { 37,2439 }, { 38,2439 }, { 39,2439 }, { 40,2439 }, { 41,2439 }, { 0, 0 }, { 43,2439 }, { 44,2439 }, { 45,2439 }, { 46,2439 }, { 47,2439 }, { 48,2439 }, { 49,2439 }, { 50,2439 }, { 51,2439 }, { 52,2439 }, { 53,2439 }, { 54,2439 }, { 55,2439 }, { 56,2439 }, { 57,2439 }, { 58,2439 }, { 59,2439 }, { 60,2439 }, { 61,2439 }, { 62,2439 }, { 63,2439 }, { 64,2439 }, { 65,2439 }, { 66,2439 }, { 67,2439 }, { 68,2439 }, { 69,2439 }, { 70,2439 }, { 71,2439 }, { 72,2439 }, { 73,2439 }, { 74,2439 }, { 75,2439 }, { 76,2439 }, { 77,2439 }, { 78,2439 }, { 79,2439 }, { 80,2439 }, { 81,2439 }, { 82,2439 }, { 83,2439 }, { 84,2439 }, { 85,2439 }, { 86,2439 }, { 87,2439 }, { 88,2439 }, { 89,2439 }, { 90,2439 }, { 91,2439 }, { 92,2439 }, { 93,2439 }, { 94,2439 }, { 95,2439 }, { 96,2439 }, { 97,2439 }, { 98,2439 }, { 99,2439 }, { 100,2439 }, { 101,2439 }, { 102,2439 }, { 103,2439 }, { 104,2439 }, { 105,2439 }, { 106,2439 }, { 107,2439 }, { 108,2439 }, { 109,2439 }, { 110,2439 }, { 111,2439 }, { 112,2439 }, { 113,2439 }, { 114,2439 }, { 115,2439 }, { 116,2439 }, { 117,2439 }, { 118,2439 }, { 119,2439 }, { 120,2439 }, { 121,2439 }, { 122,2439 }, { 123,2439 }, { 124,2439 }, { 125,2439 }, { 126,2439 }, { 127,2439 }, { 128,2439 }, { 129,2439 }, { 130,2439 }, { 131,2439 }, { 132,2439 }, { 133,2439 }, { 134,2439 }, { 135,2439 }, { 136,2439 }, { 137,2439 }, { 138,2439 }, { 139,2439 }, { 140,2439 }, { 141,2439 }, { 142,2439 }, { 143,2439 }, { 144,2439 }, { 145,2439 }, { 146,2439 }, { 147,2439 }, { 148,2439 }, { 149,2439 }, { 150,2439 }, { 151,2439 }, { 152,2439 }, { 153,2439 }, { 154,2439 }, { 155,2439 }, { 156,2439 }, { 157,2439 }, { 158,2439 }, { 159,2439 }, { 160,2439 }, { 161,2439 }, { 162,2439 }, { 163,2439 }, { 164,2439 }, { 165,2439 }, { 166,2439 }, { 167,2439 }, { 168,2439 }, { 169,2439 }, { 170,2439 }, { 171,2439 }, { 172,2439 }, { 173,2439 }, { 174,2439 }, { 175,2439 }, { 176,2439 }, { 177,2439 }, { 178,2439 }, { 179,2439 }, { 180,2439 }, { 181,2439 }, { 182,2439 }, { 183,2439 }, { 184,2439 }, { 185,2439 }, { 186,2439 }, { 187,2439 }, { 188,2439 }, { 189,2439 }, { 190,2439 }, { 191,2439 }, { 192,2439 }, { 193,2439 }, { 194,2439 }, { 195,2439 }, { 196,2439 }, { 197,2439 }, { 198,2439 }, { 199,2439 }, { 200,2439 }, { 201,2439 }, { 202,2439 }, { 203,2439 }, { 204,2439 }, { 205,2439 }, { 206,2439 }, { 207,2439 }, { 208,2439 }, { 209,2439 }, { 210,2439 }, { 211,2439 }, { 212,2439 }, { 213,2439 }, { 214,2439 }, { 215,2439 }, { 216,2439 }, { 217,2439 }, { 218,2439 }, { 219,2439 }, { 220,2439 }, { 221,2439 }, { 222,2439 }, { 223,2439 }, { 224,2439 }, { 225,2439 }, { 226,2439 }, { 227,2439 }, { 228,2439 }, { 229,2439 }, { 230,2439 }, { 231,2439 }, { 232,2439 }, { 233,2439 }, { 234,2439 }, { 235,2439 }, { 236,2439 }, { 237,2439 }, { 238,2439 }, { 239,2439 }, { 240,2439 }, { 241,2439 }, { 242,2439 }, { 243,2439 }, { 244,2439 }, { 245,2439 }, { 246,2439 }, { 247,2439 }, { 248,2439 }, { 249,2439 }, { 250,2439 }, { 251,2439 }, { 252,2439 }, { 253,2439 }, { 254,2439 }, { 255,2439 }, { 256,2439 }, { 0, 3 }, { 0,4992 }, { 0, 24 }, { 0,4990 }, { 0, 25 }, { 0,4988 }, { 0, 23 }, { 0,4986 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 42, 855 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 47, 857 }, { 0, 16 }, { 0,4943 }, { 1,2390 }, { 2,2390 }, { 3,2390 }, { 4,2390 }, { 5,2390 }, { 6,2390 }, { 7,2390 }, { 8,2390 }, { 9,2390 }, { 10,2390 }, { 11,2390 }, { 12,2390 }, { 13,2390 }, { 14,2390 }, { 15,2390 }, { 16,2390 }, { 17,2390 }, { 18,2390 }, { 19,2390 }, { 20,2390 }, { 21,2390 }, { 22,2390 }, { 23,2390 }, { 24,2390 }, { 25,2390 }, { 26,2390 }, { 27,2390 }, { 28,2390 }, { 29,2390 }, { 30,2390 }, { 31,2390 }, { 32,2390 }, { 33,2390 }, { 0, 0 }, { 35,2390 }, { 36,2390 }, { 37,2390 }, { 38,2390 }, { 39,2390 }, { 40,2390 }, { 41,2390 }, { 42,2390 }, { 43,2390 }, { 44,2390 }, { 45,2390 }, { 46,2390 }, { 47,2390 }, { 48,2390 }, { 49,2390 }, { 50,2390 }, { 51,2390 }, { 52,2390 }, { 53,2390 }, { 54,2390 }, { 55,2390 }, { 56,2390 }, { 57,2390 }, { 58,2390 }, { 59,2390 }, { 60,2390 }, { 61,2390 }, { 62,2390 }, { 63,2390 }, { 64,2390 }, { 65,2390 }, { 66,2390 }, { 67,2390 }, { 68,2390 }, { 69,2390 }, { 70,2390 }, { 71,2390 }, { 72,2390 }, { 73,2390 }, { 74,2390 }, { 75,2390 }, { 76,2390 }, { 77,2390 }, { 78,2390 }, { 79,2390 }, { 80,2390 }, { 81,2390 }, { 82,2390 }, { 83,2390 }, { 84,2390 }, { 85,2390 }, { 86,2390 }, { 87,2390 }, { 88,2390 }, { 89,2390 }, { 90,2390 }, { 91,2390 }, { 0, 0 }, { 93,2390 }, { 94,2390 }, { 95,2390 }, { 96,2390 }, { 97,2390 }, { 98,2390 }, { 99,2390 }, { 100,2390 }, { 101,2390 }, { 102,2390 }, { 103,2390 }, { 104,2390 }, { 105,2390 }, { 106,2390 }, { 107,2390 }, { 108,2390 }, { 109,2390 }, { 110,2390 }, { 111,2390 }, { 112,2390 }, { 113,2390 }, { 114,2390 }, { 115,2390 }, { 116,2390 }, { 117,2390 }, { 118,2390 }, { 119,2390 }, { 120,2390 }, { 121,2390 }, { 122,2390 }, { 123,2390 }, { 124,2390 }, { 125,2390 }, { 126,2390 }, { 127,2390 }, { 128,2390 }, { 129,2390 }, { 130,2390 }, { 131,2390 }, { 132,2390 }, { 133,2390 }, { 134,2390 }, { 135,2390 }, { 136,2390 }, { 137,2390 }, { 138,2390 }, { 139,2390 }, { 140,2390 }, { 141,2390 }, { 142,2390 }, { 143,2390 }, { 144,2390 }, { 145,2390 }, { 146,2390 }, { 147,2390 }, { 148,2390 }, { 149,2390 }, { 150,2390 }, { 151,2390 }, { 152,2390 }, { 153,2390 }, { 154,2390 }, { 155,2390 }, { 156,2390 }, { 157,2390 }, { 158,2390 }, { 159,2390 }, { 160,2390 }, { 161,2390 }, { 162,2390 }, { 163,2390 }, { 164,2390 }, { 165,2390 }, { 166,2390 }, { 167,2390 }, { 168,2390 }, { 169,2390 }, { 170,2390 }, { 171,2390 }, { 172,2390 }, { 173,2390 }, { 174,2390 }, { 175,2390 }, { 176,2390 }, { 177,2390 }, { 178,2390 }, { 179,2390 }, { 180,2390 }, { 181,2390 }, { 182,2390 }, { 183,2390 }, { 184,2390 }, { 185,2390 }, { 186,2390 }, { 187,2390 }, { 188,2390 }, { 189,2390 }, { 190,2390 }, { 191,2390 }, { 192,2390 }, { 193,2390 }, { 194,2390 }, { 195,2390 }, { 196,2390 }, { 197,2390 }, { 198,2390 }, { 199,2390 }, { 200,2390 }, { 201,2390 }, { 202,2390 }, { 203,2390 }, { 204,2390 }, { 205,2390 }, { 206,2390 }, { 207,2390 }, { 208,2390 }, { 209,2390 }, { 210,2390 }, { 211,2390 }, { 212,2390 }, { 213,2390 }, { 214,2390 }, { 215,2390 }, { 216,2390 }, { 217,2390 }, { 218,2390 }, { 219,2390 }, { 220,2390 }, { 221,2390 }, { 222,2390 }, { 223,2390 }, { 224,2390 }, { 225,2390 }, { 226,2390 }, { 227,2390 }, { 228,2390 }, { 229,2390 }, { 230,2390 }, { 231,2390 }, { 232,2390 }, { 233,2390 }, { 234,2390 }, { 235,2390 }, { 236,2390 }, { 237,2390 }, { 238,2390 }, { 239,2390 }, { 240,2390 }, { 241,2390 }, { 242,2390 }, { 243,2390 }, { 244,2390 }, { 245,2390 }, { 246,2390 }, { 247,2390 }, { 248,2390 }, { 249,2390 }, { 250,2390 }, { 251,2390 }, { 252,2390 }, { 253,2390 }, { 254,2390 }, { 255,2390 }, { 256,2390 }, { 0, 19 }, { 0,4685 }, { 1, 552 }, { 2, 552 }, { 3, 552 }, { 4, 552 }, { 5, 552 }, { 6, 552 }, { 7, 552 }, { 8, 552 }, { 9, 552 }, { 10, 552 }, { 11, 552 }, { 12, 552 }, { 13, 552 }, { 14, 552 }, { 15, 552 }, { 16, 552 }, { 17, 552 }, { 18, 552 }, { 19, 552 }, { 20, 552 }, { 21, 552 }, { 22, 552 }, { 23, 552 }, { 24, 552 }, { 25, 552 }, { 26, 552 }, { 27, 552 }, { 28, 552 }, { 29, 552 }, { 30, 552 }, { 31, 552 }, { 32, 552 }, { 33, 552 }, { 34, 554 }, { 35, 552 }, { 36, 552 }, { 37, 552 }, { 38, 552 }, { 39, 554 }, { 40, 552 }, { 41, 552 }, { 42, 552 }, { 43, 552 }, { 44, 552 }, { 45, 552 }, { 46, 552 }, { 47, 554 }, { 48, 552 }, { 49, 552 }, { 50, 552 }, { 51, 552 }, { 52, 552 }, { 53, 552 }, { 54, 552 }, { 55, 552 }, { 56, 552 }, { 57, 552 }, { 58, 552 }, { 59, 552 }, { 60, 552 }, { 61, 552 }, { 62, 552 }, { 63, 552 }, { 64, 552 }, { 65, 552 }, { 66, 552 }, { 67, 552 }, { 68, 552 }, { 69, 552 }, { 70, 552 }, { 71, 552 }, { 72, 552 }, { 73, 552 }, { 74, 552 }, { 75, 552 }, { 76, 552 }, { 77, 552 }, { 78, 552 }, { 79, 552 }, { 80, 552 }, { 81, 552 }, { 82, 552 }, { 83, 552 }, { 84, 552 }, { 85,2390 }, { 86, 552 }, { 87, 552 }, { 88, 552 }, { 89, 552 }, { 90, 552 }, { 91, 552 }, { 92, 554 }, { 93, 552 }, { 94, 552 }, { 95, 552 }, { 96, 552 }, { 97, 552 }, { 98, 554 }, { 99, 552 }, { 100, 552 }, { 101, 552 }, { 102, 554 }, { 103, 552 }, { 104, 552 }, { 105, 552 }, { 106, 552 }, { 107, 552 }, { 108, 552 }, { 109, 552 }, { 110, 554 }, { 111, 552 }, { 112, 552 }, { 113, 552 }, { 114, 554 }, { 115, 552 }, { 116, 554 }, { 117,2413 }, { 118, 552 }, { 119, 552 }, { 120, 552 }, { 121, 552 }, { 122, 552 }, { 123, 552 }, { 124, 552 }, { 125, 552 }, { 126, 552 }, { 127, 552 }, { 128, 552 }, { 129, 552 }, { 130, 552 }, { 131, 552 }, { 132, 552 }, { 133, 552 }, { 134, 552 }, { 135, 552 }, { 136, 552 }, { 137, 552 }, { 138, 552 }, { 139, 552 }, { 140, 552 }, { 141, 552 }, { 142, 552 }, { 143, 552 }, { 144, 552 }, { 145, 552 }, { 146, 552 }, { 147, 552 }, { 148, 552 }, { 149, 552 }, { 150, 552 }, { 151, 552 }, { 152, 552 }, { 153, 552 }, { 154, 552 }, { 155, 552 }, { 156, 552 }, { 157, 552 }, { 158, 552 }, { 159, 552 }, { 160, 552 }, { 161, 552 }, { 162, 552 }, { 163, 552 }, { 164, 552 }, { 165, 552 }, { 166, 552 }, { 167, 552 }, { 168, 552 }, { 169, 552 }, { 170, 552 }, { 171, 552 }, { 172, 552 }, { 173, 552 }, { 174, 552 }, { 175, 552 }, { 176, 552 }, { 177, 552 }, { 178, 552 }, { 179, 552 }, { 180, 552 }, { 181, 552 }, { 182, 552 }, { 183, 552 }, { 184, 552 }, { 185, 552 }, { 186, 552 }, { 187, 552 }, { 188, 552 }, { 189, 552 }, { 190, 552 }, { 191, 552 }, { 192, 552 }, { 193, 552 }, { 194, 552 }, { 195, 552 }, { 196, 552 }, { 197, 552 }, { 198, 552 }, { 199, 552 }, { 200, 552 }, { 201, 552 }, { 202, 552 }, { 203, 552 }, { 204, 552 }, { 205, 552 }, { 206, 552 }, { 207, 552 }, { 208, 552 }, { 209, 552 }, { 210, 552 }, { 211, 552 }, { 212, 552 }, { 213, 552 }, { 214, 552 }, { 215, 552 }, { 216, 552 }, { 217, 552 }, { 218, 552 }, { 219, 552 }, { 220, 552 }, { 221, 552 }, { 222, 552 }, { 223, 552 }, { 224, 552 }, { 225, 552 }, { 226, 552 }, { 227, 552 }, { 228, 552 }, { 229, 552 }, { 230, 552 }, { 231, 552 }, { 232, 552 }, { 233, 552 }, { 234, 552 }, { 235, 552 }, { 236, 552 }, { 237, 552 }, { 238, 552 }, { 239, 552 }, { 240, 552 }, { 241, 552 }, { 242, 552 }, { 243, 552 }, { 244, 552 }, { 245, 552 }, { 246, 552 }, { 247, 552 }, { 248, 552 }, { 249, 552 }, { 250, 552 }, { 251, 552 }, { 252, 552 }, { 253, 552 }, { 254, 552 }, { 255, 552 }, { 256, 552 }, { 0, 17 }, { 0,4427 }, { 1,2259 }, { 2,2259 }, { 3,2259 }, { 4,2259 }, { 5,2259 }, { 6,2259 }, { 7,2259 }, { 8,2259 }, { 9,2259 }, { 10,2259 }, { 11,2259 }, { 12,2259 }, { 13,2259 }, { 14,2259 }, { 15,2259 }, { 16,2259 }, { 17,2259 }, { 18,2259 }, { 19,2259 }, { 20,2259 }, { 21,2259 }, { 22,2259 }, { 23,2259 }, { 24,2259 }, { 25,2259 }, { 26,2259 }, { 27,2259 }, { 28,2259 }, { 29,2259 }, { 30,2259 }, { 31,2259 }, { 32,2259 }, { 33,2259 }, { 34,2259 }, { 35,2259 }, { 36,2259 }, { 37,2259 }, { 38,2259 }, { 0, 0 }, { 40,2259 }, { 41,2259 }, { 42,2259 }, { 43,2259 }, { 44,2259 }, { 45,2259 }, { 46,2259 }, { 47,2259 }, { 48,2259 }, { 49,2259 }, { 50,2259 }, { 51,2259 }, { 52,2259 }, { 53,2259 }, { 54,2259 }, { 55,2259 }, { 56,2259 }, { 57,2259 }, { 58,2259 }, { 59,2259 }, { 60,2259 }, { 61,2259 }, { 62,2259 }, { 63,2259 }, { 64,2259 }, { 65,2259 }, { 66,2259 }, { 67,2259 }, { 68,2259 }, { 69,2259 }, { 70,2259 }, { 71,2259 }, { 72,2259 }, { 73,2259 }, { 74,2259 }, { 75,2259 }, { 76,2259 }, { 77,2259 }, { 78,2259 }, { 79,2259 }, { 80,2259 }, { 81,2259 }, { 82,2259 }, { 83,2259 }, { 84,2259 }, { 85,2259 }, { 86,2259 }, { 87,2259 }, { 88,2259 }, { 89,2259 }, { 90,2259 }, { 91,2259 }, { 0, 0 }, { 93,2259 }, { 94,2259 }, { 95,2259 }, { 96,2259 }, { 97,2259 }, { 98,2259 }, { 99,2259 }, { 100,2259 }, { 101,2259 }, { 102,2259 }, { 103,2259 }, { 104,2259 }, { 105,2259 }, { 106,2259 }, { 107,2259 }, { 108,2259 }, { 109,2259 }, { 110,2259 }, { 111,2259 }, { 112,2259 }, { 113,2259 }, { 114,2259 }, { 115,2259 }, { 116,2259 }, { 117,2259 }, { 118,2259 }, { 119,2259 }, { 120,2259 }, { 121,2259 }, { 122,2259 }, { 123,2259 }, { 124,2259 }, { 125,2259 }, { 126,2259 }, { 127,2259 }, { 128,2259 }, { 129,2259 }, { 130,2259 }, { 131,2259 }, { 132,2259 }, { 133,2259 }, { 134,2259 }, { 135,2259 }, { 136,2259 }, { 137,2259 }, { 138,2259 }, { 139,2259 }, { 140,2259 }, { 141,2259 }, { 142,2259 }, { 143,2259 }, { 144,2259 }, { 145,2259 }, { 146,2259 }, { 147,2259 }, { 148,2259 }, { 149,2259 }, { 150,2259 }, { 151,2259 }, { 152,2259 }, { 153,2259 }, { 154,2259 }, { 155,2259 }, { 156,2259 }, { 157,2259 }, { 158,2259 }, { 159,2259 }, { 160,2259 }, { 161,2259 }, { 162,2259 }, { 163,2259 }, { 164,2259 }, { 165,2259 }, { 166,2259 }, { 167,2259 }, { 168,2259 }, { 169,2259 }, { 170,2259 }, { 171,2259 }, { 172,2259 }, { 173,2259 }, { 174,2259 }, { 175,2259 }, { 176,2259 }, { 177,2259 }, { 178,2259 }, { 179,2259 }, { 180,2259 }, { 181,2259 }, { 182,2259 }, { 183,2259 }, { 184,2259 }, { 185,2259 }, { 186,2259 }, { 187,2259 }, { 188,2259 }, { 189,2259 }, { 190,2259 }, { 191,2259 }, { 192,2259 }, { 193,2259 }, { 194,2259 }, { 195,2259 }, { 196,2259 }, { 197,2259 }, { 198,2259 }, { 199,2259 }, { 200,2259 }, { 201,2259 }, { 202,2259 }, { 203,2259 }, { 204,2259 }, { 205,2259 }, { 206,2259 }, { 207,2259 }, { 208,2259 }, { 209,2259 }, { 210,2259 }, { 211,2259 }, { 212,2259 }, { 213,2259 }, { 214,2259 }, { 215,2259 }, { 216,2259 }, { 217,2259 }, { 218,2259 }, { 219,2259 }, { 220,2259 }, { 221,2259 }, { 222,2259 }, { 223,2259 }, { 224,2259 }, { 225,2259 }, { 226,2259 }, { 227,2259 }, { 228,2259 }, { 229,2259 }, { 230,2259 }, { 231,2259 }, { 232,2259 }, { 233,2259 }, { 234,2259 }, { 235,2259 }, { 236,2259 }, { 237,2259 }, { 238,2259 }, { 239,2259 }, { 240,2259 }, { 241,2259 }, { 242,2259 }, { 243,2259 }, { 244,2259 }, { 245,2259 }, { 246,2259 }, { 247,2259 }, { 248,2259 }, { 249,2259 }, { 250,2259 }, { 251,2259 }, { 252,2259 }, { 253,2259 }, { 254,2259 }, { 255,2259 }, { 256,2259 }, { 0, 23 }, { 0,4169 }, { 0, 30 }, { 0,4167 }, { 0, 33 }, { 0,4165 }, { 0, 42 }, { 0,4163 }, { 0, 41 }, { 0,4161 }, { 0, 2 }, { 0,4159 }, { 0, 44 }, { 0,4157 }, { 0, 39 }, { 0,4155 }, { 0, 38 }, { 0,4153 }, { 0, 35 }, { 0,4151 }, { 0, 43 }, { 0,4149 }, { 0, 40 }, { 0,4147 }, { 0, 37 }, { 0,4145 }, { 0, 34 }, { 0,4143 }, { 0, 36 }, { 0,4141 }, { 0, 32 }, { 0,4139 }, { 0, 3 }, { 0,4137 }, { 0, 4 }, { 0,4135 }, { 0, 19 }, { 0,4133 }, { 0, 18 }, { 0,4131 }, { 0, 29 }, { 0,4129 }, { 0, 11 }, { 0,4127 }, { 0, 20 }, { 0,4125 }, { 0, 21 }, { 0,4123 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 42, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 47, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 85,2259 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 96, 38 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 117,2282 }, { 0, 28 }, { 0,4050 }, { 1,2267 }, { 2,2267 }, { 3,2267 }, { 4,2267 }, { 5,2267 }, { 6,2267 }, { 7,2267 }, { 8,2267 }, { 9,2267 }, { 10,2267 }, { 11,2267 }, { 12,2267 }, { 13,2267 }, { 14,2267 }, { 15,2267 }, { 16,2267 }, { 17,2267 }, { 18,2267 }, { 19,2267 }, { 20,2267 }, { 21,2267 }, { 22,2267 }, { 23,2267 }, { 24,2267 }, { 25,2267 }, { 26,2267 }, { 27,2267 }, { 28,2267 }, { 29,2267 }, { 30,2267 }, { 31,2267 }, { 32,2267 }, { 33,2267 }, { 34,2267 }, { 35,2267 }, { 36,2267 }, { 37,2267 }, { 38,2267 }, { 39,2267 }, { 40,2267 }, { 41,2267 }, { 42,2267 }, { 43,2267 }, { 44,2267 }, { 45,2267 }, { 46,2267 }, { 47,2267 }, { 48,2267 }, { 49,2267 }, { 50,2267 }, { 51,2267 }, { 52,2267 }, { 53,2267 }, { 54,2267 }, { 55,2267 }, { 56,2267 }, { 57,2267 }, { 58,2267 }, { 59,2267 }, { 60,2267 }, { 61,2267 }, { 62,2267 }, { 63,2267 }, { 64,2267 }, { 65,2267 }, { 66,2267 }, { 67,2267 }, { 68,2267 }, { 69,2267 }, { 70,2267 }, { 71,2267 }, { 72,2267 }, { 73,2267 }, { 74,2267 }, { 75,2267 }, { 76,2267 }, { 77,2267 }, { 78,2267 }, { 79,2267 }, { 80,2267 }, { 81,2267 }, { 82,2267 }, { 83,2267 }, { 84,2267 }, { 85,2267 }, { 86,2267 }, { 87,2267 }, { 88,2267 }, { 89,2267 }, { 90,2267 }, { 91,2267 }, { 92,2267 }, { 93,2267 }, { 94,2267 }, { 95,2267 }, { 0, 0 }, { 97,2267 }, { 98,2267 }, { 99,2267 }, { 100,2267 }, { 101,2267 }, { 102,2267 }, { 103,2267 }, { 104,2267 }, { 105,2267 }, { 106,2267 }, { 107,2267 }, { 108,2267 }, { 109,2267 }, { 110,2267 }, { 111,2267 }, { 112,2267 }, { 113,2267 }, { 114,2267 }, { 115,2267 }, { 116,2267 }, { 117,2267 }, { 118,2267 }, { 119,2267 }, { 120,2267 }, { 121,2267 }, { 122,2267 }, { 123,2267 }, { 124,2267 }, { 125,2267 }, { 126,2267 }, { 127,2267 }, { 128,2267 }, { 129,2267 }, { 130,2267 }, { 131,2267 }, { 132,2267 }, { 133,2267 }, { 134,2267 }, { 135,2267 }, { 136,2267 }, { 137,2267 }, { 138,2267 }, { 139,2267 }, { 140,2267 }, { 141,2267 }, { 142,2267 }, { 143,2267 }, { 144,2267 }, { 145,2267 }, { 146,2267 }, { 147,2267 }, { 148,2267 }, { 149,2267 }, { 150,2267 }, { 151,2267 }, { 152,2267 }, { 153,2267 }, { 154,2267 }, { 155,2267 }, { 156,2267 }, { 157,2267 }, { 158,2267 }, { 159,2267 }, { 160,2267 }, { 161,2267 }, { 162,2267 }, { 163,2267 }, { 164,2267 }, { 165,2267 }, { 166,2267 }, { 167,2267 }, { 168,2267 }, { 169,2267 }, { 170,2267 }, { 171,2267 }, { 172,2267 }, { 173,2267 }, { 174,2267 }, { 175,2267 }, { 176,2267 }, { 177,2267 }, { 178,2267 }, { 179,2267 }, { 180,2267 }, { 181,2267 }, { 182,2267 }, { 183,2267 }, { 184,2267 }, { 185,2267 }, { 186,2267 }, { 187,2267 }, { 188,2267 }, { 189,2267 }, { 190,2267 }, { 191,2267 }, { 192,2267 }, { 193,2267 }, { 194,2267 }, { 195,2267 }, { 196,2267 }, { 197,2267 }, { 198,2267 }, { 199,2267 }, { 200,2267 }, { 201,2267 }, { 202,2267 }, { 203,2267 }, { 204,2267 }, { 205,2267 }, { 206,2267 }, { 207,2267 }, { 208,2267 }, { 209,2267 }, { 210,2267 }, { 211,2267 }, { 212,2267 }, { 213,2267 }, { 214,2267 }, { 215,2267 }, { 216,2267 }, { 217,2267 }, { 218,2267 }, { 219,2267 }, { 220,2267 }, { 221,2267 }, { 222,2267 }, { 223,2267 }, { 224,2267 }, { 225,2267 }, { 226,2267 }, { 227,2267 }, { 228,2267 }, { 229,2267 }, { 230,2267 }, { 231,2267 }, { 232,2267 }, { 233,2267 }, { 234,2267 }, { 235,2267 }, { 236,2267 }, { 237,2267 }, { 238,2267 }, { 239,2267 }, { 240,2267 }, { 241,2267 }, { 242,2267 }, { 243,2267 }, { 244,2267 }, { 245,2267 }, { 246,2267 }, { 247,2267 }, { 248,2267 }, { 249,2267 }, { 250,2267 }, { 251,2267 }, { 252,2267 }, { 253,2267 }, { 254,2267 }, { 255,2267 }, { 256,2267 }, { 0, 1 }, { 0,3792 }, { 0, 31 }, { 0,3790 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 9, 0 }, { 10, 0 }, { 11, 0 }, { 12, 0 }, { 13, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 32, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 36,2265 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,2265 }, { 49,2265 }, { 50,2265 }, { 51,2265 }, { 52,2265 }, { 53,2265 }, { 54,2265 }, { 55,2265 }, { 56,2265 }, { 57,2265 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,2265 }, { 66,2265 }, { 67,2265 }, { 68,2265 }, { 69,2265 }, { 70,2265 }, { 71,2265 }, { 72,2265 }, { 73,2265 }, { 74,2265 }, { 75,2265 }, { 76,2265 }, { 77,2265 }, { 78,2265 }, { 79,2265 }, { 80,2265 }, { 81,2265 }, { 82,2265 }, { 83,2265 }, { 84,2265 }, { 85,2265 }, { 86,2265 }, { 87,2265 }, { 88,2265 }, { 89,2265 }, { 90,2265 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 95,2265 }, { 0, 0 }, { 97,2265 }, { 98,2265 }, { 99,2265 }, { 100,2265 }, { 101,2265 }, { 102,2265 }, { 103,2265 }, { 104,2265 }, { 105,2265 }, { 106,2265 }, { 107,2265 }, { 108,2265 }, { 109,2265 }, { 110,2265 }, { 111,2265 }, { 112,2265 }, { 113,2265 }, { 114,2265 }, { 115,2265 }, { 116,2265 }, { 117,2265 }, { 118,2265 }, { 119,2265 }, { 120,2265 }, { 121,2265 }, { 122,2265 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 128,2265 }, { 129,2265 }, { 130,2265 }, { 131,2265 }, { 132,2265 }, { 133,2265 }, { 134,2265 }, { 135,2265 }, { 136,2265 }, { 137,2265 }, { 138,2265 }, { 139,2265 }, { 140,2265 }, { 141,2265 }, { 142,2265 }, { 143,2265 }, { 144,2265 }, { 145,2265 }, { 146,2265 }, { 147,2265 }, { 148,2265 }, { 149,2265 }, { 150,2265 }, { 151,2265 }, { 152,2265 }, { 153,2265 }, { 154,2265 }, { 155,2265 }, { 156,2265 }, { 157,2265 }, { 158,2265 }, { 159,2265 }, { 160,2265 }, { 161,2265 }, { 162,2265 }, { 163,2265 }, { 164,2265 }, { 165,2265 }, { 166,2265 }, { 167,2265 }, { 168,2265 }, { 169,2265 }, { 170,2265 }, { 171,2265 }, { 172,2265 }, { 173,2265 }, { 174,2265 }, { 175,2265 }, { 176,2265 }, { 177,2265 }, { 178,2265 }, { 179,2265 }, { 180,2265 }, { 181,2265 }, { 182,2265 }, { 183,2265 }, { 184,2265 }, { 185,2265 }, { 186,2265 }, { 187,2265 }, { 188,2265 }, { 189,2265 }, { 190,2265 }, { 191,2265 }, { 192,2265 }, { 193,2265 }, { 194,2265 }, { 195,2265 }, { 196,2265 }, { 197,2265 }, { 198,2265 }, { 199,2265 }, { 200,2265 }, { 201,2265 }, { 202,2265 }, { 203,2265 }, { 204,2265 }, { 205,2265 }, { 206,2265 }, { 207,2265 }, { 208,2265 }, { 209,2265 }, { 210,2265 }, { 211,2265 }, { 212,2265 }, { 213,2265 }, { 214,2265 }, { 215,2265 }, { 216,2265 }, { 217,2265 }, { 218,2265 }, { 219,2265 }, { 220,2265 }, { 221,2265 }, { 222,2265 }, { 223,2265 }, { 224,2265 }, { 225,2265 }, { 226,2265 }, { 227,2265 }, { 228,2265 }, { 229,2265 }, { 230,2265 }, { 231,2265 }, { 232,2265 }, { 233,2265 }, { 234,2265 }, { 235,2265 }, { 236,2265 }, { 237,2265 }, { 238,2265 }, { 239,2265 }, { 240,2265 }, { 241,2265 }, { 242,2265 }, { 243,2265 }, { 244,2265 }, { 245,2265 }, { 246,2265 }, { 247,2265 }, { 248,2265 }, { 249,2265 }, { 250,2265 }, { 251,2265 }, { 252,2265 }, { 253,2265 }, { 254,2265 }, { 255,2265 }, { 0, 9 }, { 0,3533 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 69, 405 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 5 }, { 0,3445 }, { 1,2177 }, { 2,2177 }, { 3,2177 }, { 4,2177 }, { 5,2177 }, { 6,2177 }, { 7,2177 }, { 8,2177 }, { 9,2177 }, { 0, 0 }, { 11,2177 }, { 12,2177 }, { 101, 405 }, { 14,2177 }, { 15,2177 }, { 16,2177 }, { 17,2177 }, { 18,2177 }, { 19,2177 }, { 20,2177 }, { 21,2177 }, { 22,2177 }, { 23,2177 }, { 24,2177 }, { 25,2177 }, { 26,2177 }, { 27,2177 }, { 28,2177 }, { 29,2177 }, { 30,2177 }, { 31,2177 }, { 32,2177 }, { 33,2177 }, { 34,2177 }, { 35,2177 }, { 36,2177 }, { 37,2177 }, { 38,2177 }, { 39,2177 }, { 40,2177 }, { 41,2177 }, { 42,2177 }, { 43,2177 }, { 44,2177 }, { 45,2177 }, { 46,2177 }, { 47,2177 }, { 48,2177 }, { 49,2177 }, { 50,2177 }, { 51,2177 }, { 52,2177 }, { 53,2177 }, { 54,2177 }, { 55,2177 }, { 56,2177 }, { 57,2177 }, { 58,2177 }, { 59,2177 }, { 60,2177 }, { 61,2177 }, { 62,2177 }, { 63,2177 }, { 64,2177 }, { 65,2177 }, { 66,2177 }, { 67,2177 }, { 68,2177 }, { 69,2177 }, { 70,2177 }, { 71,2177 }, { 72,2177 }, { 73,2177 }, { 74,2177 }, { 75,2177 }, { 76,2177 }, { 77,2177 }, { 78,2177 }, { 79,2177 }, { 80,2177 }, { 81,2177 }, { 82,2177 }, { 83,2177 }, { 84,2177 }, { 85,2177 }, { 86,2177 }, { 87,2177 }, { 88,2177 }, { 89,2177 }, { 90,2177 }, { 91,2177 }, { 92,2177 }, { 93,2177 }, { 94,2177 }, { 95,2177 }, { 96,2177 }, { 97,2177 }, { 98,2177 }, { 99,2177 }, { 100,2177 }, { 101,2177 }, { 102,2177 }, { 103,2177 }, { 104,2177 }, { 105,2177 }, { 106,2177 }, { 107,2177 }, { 108,2177 }, { 109,2177 }, { 110,2177 }, { 111,2177 }, { 112,2177 }, { 113,2177 }, { 114,2177 }, { 115,2177 }, { 116,2177 }, { 117,2177 }, { 118,2177 }, { 119,2177 }, { 120,2177 }, { 121,2177 }, { 122,2177 }, { 123,2177 }, { 124,2177 }, { 125,2177 }, { 126,2177 }, { 127,2177 }, { 128,2177 }, { 129,2177 }, { 130,2177 }, { 131,2177 }, { 132,2177 }, { 133,2177 }, { 134,2177 }, { 135,2177 }, { 136,2177 }, { 137,2177 }, { 138,2177 }, { 139,2177 }, { 140,2177 }, { 141,2177 }, { 142,2177 }, { 143,2177 }, { 144,2177 }, { 145,2177 }, { 146,2177 }, { 147,2177 }, { 148,2177 }, { 149,2177 }, { 150,2177 }, { 151,2177 }, { 152,2177 }, { 153,2177 }, { 154,2177 }, { 155,2177 }, { 156,2177 }, { 157,2177 }, { 158,2177 }, { 159,2177 }, { 160,2177 }, { 161,2177 }, { 162,2177 }, { 163,2177 }, { 164,2177 }, { 165,2177 }, { 166,2177 }, { 167,2177 }, { 168,2177 }, { 169,2177 }, { 170,2177 }, { 171,2177 }, { 172,2177 }, { 173,2177 }, { 174,2177 }, { 175,2177 }, { 176,2177 }, { 177,2177 }, { 178,2177 }, { 179,2177 }, { 180,2177 }, { 181,2177 }, { 182,2177 }, { 183,2177 }, { 184,2177 }, { 185,2177 }, { 186,2177 }, { 187,2177 }, { 188,2177 }, { 189,2177 }, { 190,2177 }, { 191,2177 }, { 192,2177 }, { 193,2177 }, { 194,2177 }, { 195,2177 }, { 196,2177 }, { 197,2177 }, { 198,2177 }, { 199,2177 }, { 200,2177 }, { 201,2177 }, { 202,2177 }, { 203,2177 }, { 204,2177 }, { 205,2177 }, { 206,2177 }, { 207,2177 }, { 208,2177 }, { 209,2177 }, { 210,2177 }, { 211,2177 }, { 212,2177 }, { 213,2177 }, { 214,2177 }, { 215,2177 }, { 216,2177 }, { 217,2177 }, { 218,2177 }, { 219,2177 }, { 220,2177 }, { 221,2177 }, { 222,2177 }, { 223,2177 }, { 224,2177 }, { 225,2177 }, { 226,2177 }, { 227,2177 }, { 228,2177 }, { 229,2177 }, { 230,2177 }, { 231,2177 }, { 232,2177 }, { 233,2177 }, { 234,2177 }, { 235,2177 }, { 236,2177 }, { 237,2177 }, { 238,2177 }, { 239,2177 }, { 240,2177 }, { 241,2177 }, { 242,2177 }, { 243,2177 }, { 244,2177 }, { 245,2177 }, { 246,2177 }, { 247,2177 }, { 248,2177 }, { 249,2177 }, { 250,2177 }, { 251,2177 }, { 252,2177 }, { 253,2177 }, { 254,2177 }, { 255,2177 }, { 256,2177 }, { 0, 9 }, { 0,3187 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 6 }, { 0,3165 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 46,-940 }, { 0, 0 }, { 48,2177 }, { 49,2177 }, { 50,2177 }, { 51,2177 }, { 52,2177 }, { 53,2177 }, { 54,2177 }, { 55,2177 }, { 56,2177 }, { 57,2177 }, { 0, 12 }, { 0,3128 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 46, -22 }, { 69, 59 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 8 }, { 0,3106 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 69, 37 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 101, 59 }, { 43,2128 }, { 0, 0 }, { 45,2128 }, { 0, 0 }, { 0, 0 }, { 48,2140 }, { 49,2140 }, { 50,2140 }, { 51,2140 }, { 52,2140 }, { 53,2140 }, { 54,2140 }, { 55,2140 }, { 56,2140 }, { 57,2140 }, { 0, 0 }, { 0, 26 }, { 0,3068 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 101, 37 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,2133 }, { 49,2133 }, { 50,2133 }, { 51,2133 }, { 52,2133 }, { 53,2133 }, { 54,2133 }, { 55,2133 }, { 56,2133 }, { 57,2133 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,2133 }, { 66,2133 }, { 67,2133 }, { 68,2133 }, { 69,2133 }, { 70,2133 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 36, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 0 }, { 97,2133 }, { 98,2133 }, { 99,2133 }, { 100,2133 }, { 101,2133 }, { 102,2133 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 95, 0 }, { 0, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 0, 3 }, { 0,2811 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 10, 0 }, { 11, 0 }, { 12, 0 }, { 13, 0 }, { 14, 0 }, { 15, 0 }, { 16, 0 }, { 17, 0 }, { 18, 0 }, { 19, 0 }, { 20, 0 }, { 21, 0 }, { 22, 0 }, { 23, 0 }, { 24, 0 }, { 25, 0 }, { 26, 0 }, { 27, 0 }, { 28, 0 }, { 29, 0 }, { 30, 0 }, { 31, 0 }, { 32, 0 }, { 33, 0 }, { 34, 0 }, { 35, 0 }, { 36, 0 }, { 37, 0 }, { 38, 0 }, { 39, 0 }, { 40, 0 }, { 41, 0 }, { 0, 0 }, { 43, 0 }, { 44, 0 }, { 45, 0 }, { 46, 0 }, { 47, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 58, 0 }, { 59, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 }, { 63, 0 }, { 64, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 91, 0 }, { 92, 0 }, { 93, 0 }, { 94, 0 }, { 95, 0 }, { 96, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 123, 0 }, { 124, 0 }, { 125, 0 }, { 126, 0 }, { 127, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 256, 0 }, { 0, 16 }, { 0,2553 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 10, 0 }, { 11, 0 }, { 12, 0 }, { 13, 0 }, { 14, 0 }, { 15, 0 }, { 16, 0 }, { 17, 0 }, { 18, 0 }, { 19, 0 }, { 20, 0 }, { 21, 0 }, { 22, 0 }, { 23, 0 }, { 24, 0 }, { 25, 0 }, { 26, 0 }, { 27, 0 }, { 28, 0 }, { 29, 0 }, { 30, 0 }, { 31, 0 }, { 32, 0 }, { 33, 0 }, { 0, 0 }, { 35, 0 }, { 36, 0 }, { 37, 0 }, { 38, 0 }, { 39, 0 }, { 40, 0 }, { 41, 0 }, { 42, 0 }, { 43, 0 }, { 44, 0 }, { 45, 0 }, { 46, 0 }, { 47, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 58, 0 }, { 59, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 }, { 63, 0 }, { 64, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 91, 0 }, { 0, 0 }, { 93, 0 }, { 94, 0 }, { 95, 0 }, { 96, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 123, 0 }, { 124, 0 }, { 125, 0 }, { 126, 0 }, { 127, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 256, 0 }, { 0, 22 }, { 0,2295 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0,2272 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,1381 }, { 49,1381 }, { 50,1381 }, { 51,1381 }, { 52,1381 }, { 53,1381 }, { 54,1381 }, { 55,1381 }, { 56,1381 }, { 57,1381 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,1381 }, { 66,1381 }, { 67,1381 }, { 68,1381 }, { 69,1381 }, { 70,1381 }, { 48,1381 }, { 49,1381 }, { 50,1381 }, { 51,1381 }, { 52,1381 }, { 53,1381 }, { 54,1381 }, { 55,1381 }, { 56,1381 }, { 57,1381 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,1381 }, { 66,1381 }, { 67,1381 }, { 68,1381 }, { 69,1381 }, { 70,1381 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,1381 }, { 98,1381 }, { 99,1381 }, { 100,1381 }, { 101,1381 }, { 102,1381 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,1381 }, { 98,1381 }, { 99,1381 }, { 100,1381 }, { 101,1381 }, { 102,1381 }, { 0, 17 }, { 0,2168 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 10, 0 }, { 11, 0 }, { 12, 0 }, { 13, 0 }, { 14, 0 }, { 15, 0 }, { 16, 0 }, { 17, 0 }, { 18, 0 }, { 19, 0 }, { 20, 0 }, { 21, 0 }, { 22, 0 }, { 23, 0 }, { 24, 0 }, { 25, 0 }, { 26, 0 }, { 27, 0 }, { 28, 0 }, { 29, 0 }, { 30, 0 }, { 31, 0 }, { 32, 0 }, { 33, 0 }, { 34, 0 }, { 35, 0 }, { 36, 0 }, { 37, 0 }, { 38, 0 }, { 0, 0 }, { 40, 0 }, { 41, 0 }, { 42, 0 }, { 43, 0 }, { 44, 0 }, { 45, 0 }, { 46, 0 }, { 47, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 58, 0 }, { 59, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 }, { 63, 0 }, { 64, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 91, 0 }, { 0, 0 }, { 93, 0 }, { 94, 0 }, { 95, 0 }, { 96, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 123, 0 }, { 124, 0 }, { 125, 0 }, { 126, 0 }, { 127, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 256, 0 }, { 0, 22 }, { 0,1910 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0,1887 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,1057 }, { 49,1057 }, { 50,1057 }, { 51,1057 }, { 52,1057 }, { 53,1057 }, { 54,1057 }, { 55,1057 }, { 56,1057 }, { 57,1057 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,1057 }, { 66,1057 }, { 67,1057 }, { 68,1057 }, { 69,1057 }, { 70,1057 }, { 48,1057 }, { 49,1057 }, { 50,1057 }, { 51,1057 }, { 52,1057 }, { 53,1057 }, { 54,1057 }, { 55,1057 }, { 56,1057 }, { 57,1057 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,1057 }, { 66,1057 }, { 67,1057 }, { 68,1057 }, { 69,1057 }, { 70,1057 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,1057 }, { 98,1057 }, { 99,1057 }, { 100,1057 }, { 101,1057 }, { 102,1057 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,1057 }, { 98,1057 }, { 99,1057 }, { 100,1057 }, { 101,1057 }, { 102,1057 }, { 0, 28 }, { 0,1783 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 10, 0 }, { 11, 0 }, { 12, 0 }, { 13, 0 }, { 14, 0 }, { 15, 0 }, { 16, 0 }, { 17, 0 }, { 18, 0 }, { 19, 0 }, { 20, 0 }, { 21, 0 }, { 22, 0 }, { 23, 0 }, { 24, 0 }, { 25, 0 }, { 26, 0 }, { 27, 0 }, { 28, 0 }, { 29, 0 }, { 30, 0 }, { 31, 0 }, { 32, 0 }, { 33, 0 }, { 34, 0 }, { 35, 0 }, { 36, 0 }, { 37, 0 }, { 38, 0 }, { 39, 0 }, { 40, 0 }, { 41, 0 }, { 42, 0 }, { 43, 0 }, { 44, 0 }, { 45, 0 }, { 46, 0 }, { 47, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 58, 0 }, { 59, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 }, { 63, 0 }, { 64, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 91, 0 }, { 92, 0 }, { 93, 0 }, { 94, 0 }, { 95, 0 }, { 0, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 123, 0 }, { 124, 0 }, { 125, 0 }, { 126, 0 }, { 127, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 256, 0 }, { 0, 31 }, { 0,1525 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 36, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 95, 0 }, { 0, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 0, 5 }, { 0,1268 }, { 1, 0 }, { 2, 0 }, { 3, 0 }, { 4, 0 }, { 5, 0 }, { 6, 0 }, { 7, 0 }, { 8, 0 }, { 9, 0 }, { 0, 0 }, { 11, 0 }, { 12, 0 }, { 0, 0 }, { 14, 0 }, { 15, 0 }, { 16, 0 }, { 17, 0 }, { 18, 0 }, { 19, 0 }, { 20, 0 }, { 21, 0 }, { 22, 0 }, { 23, 0 }, { 24, 0 }, { 25, 0 }, { 26, 0 }, { 27, 0 }, { 28, 0 }, { 29, 0 }, { 30, 0 }, { 31, 0 }, { 32, 0 }, { 33, 0 }, { 34, 0 }, { 35, 0 }, { 36, 0 }, { 37, 0 }, { 38, 0 }, { 39, 0 }, { 40, 0 }, { 41, 0 }, { 42, 0 }, { 43, 0 }, { 44, 0 }, { 45, 0 }, { 46, 0 }, { 47, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 58, 0 }, { 59, 0 }, { 60, 0 }, { 61, 0 }, { 62, 0 }, { 63, 0 }, { 64, 0 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 71, 0 }, { 72, 0 }, { 73, 0 }, { 74, 0 }, { 75, 0 }, { 76, 0 }, { 77, 0 }, { 78, 0 }, { 79, 0 }, { 80, 0 }, { 81, 0 }, { 82, 0 }, { 83, 0 }, { 84, 0 }, { 85, 0 }, { 86, 0 }, { 87, 0 }, { 88, 0 }, { 89, 0 }, { 90, 0 }, { 91, 0 }, { 92, 0 }, { 93, 0 }, { 94, 0 }, { 95, 0 }, { 96, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 103, 0 }, { 104, 0 }, { 105, 0 }, { 106, 0 }, { 107, 0 }, { 108, 0 }, { 109, 0 }, { 110, 0 }, { 111, 0 }, { 112, 0 }, { 113, 0 }, { 114, 0 }, { 115, 0 }, { 116, 0 }, { 117, 0 }, { 118, 0 }, { 119, 0 }, { 120, 0 }, { 121, 0 }, { 122, 0 }, { 123, 0 }, { 124, 0 }, { 125, 0 }, { 126, 0 }, { 127, 0 }, { 128, 0 }, { 129, 0 }, { 130, 0 }, { 131, 0 }, { 132, 0 }, { 133, 0 }, { 134, 0 }, { 135, 0 }, { 136, 0 }, { 137, 0 }, { 138, 0 }, { 139, 0 }, { 140, 0 }, { 141, 0 }, { 142, 0 }, { 143, 0 }, { 144, 0 }, { 145, 0 }, { 146, 0 }, { 147, 0 }, { 148, 0 }, { 149, 0 }, { 150, 0 }, { 151, 0 }, { 152, 0 }, { 153, 0 }, { 154, 0 }, { 155, 0 }, { 156, 0 }, { 157, 0 }, { 158, 0 }, { 159, 0 }, { 160, 0 }, { 161, 0 }, { 162, 0 }, { 163, 0 }, { 164, 0 }, { 165, 0 }, { 166, 0 }, { 167, 0 }, { 168, 0 }, { 169, 0 }, { 170, 0 }, { 171, 0 }, { 172, 0 }, { 173, 0 }, { 174, 0 }, { 175, 0 }, { 176, 0 }, { 177, 0 }, { 178, 0 }, { 179, 0 }, { 180, 0 }, { 181, 0 }, { 182, 0 }, { 183, 0 }, { 184, 0 }, { 185, 0 }, { 186, 0 }, { 187, 0 }, { 188, 0 }, { 189, 0 }, { 190, 0 }, { 191, 0 }, { 192, 0 }, { 193, 0 }, { 194, 0 }, { 195, 0 }, { 196, 0 }, { 197, 0 }, { 198, 0 }, { 199, 0 }, { 200, 0 }, { 201, 0 }, { 202, 0 }, { 203, 0 }, { 204, 0 }, { 205, 0 }, { 206, 0 }, { 207, 0 }, { 208, 0 }, { 209, 0 }, { 210, 0 }, { 211, 0 }, { 212, 0 }, { 213, 0 }, { 214, 0 }, { 215, 0 }, { 216, 0 }, { 217, 0 }, { 218, 0 }, { 219, 0 }, { 220, 0 }, { 221, 0 }, { 222, 0 }, { 223, 0 }, { 224, 0 }, { 225, 0 }, { 226, 0 }, { 227, 0 }, { 228, 0 }, { 229, 0 }, { 230, 0 }, { 231, 0 }, { 232, 0 }, { 233, 0 }, { 234, 0 }, { 235, 0 }, { 236, 0 }, { 237, 0 }, { 238, 0 }, { 239, 0 }, { 240, 0 }, { 241, 0 }, { 242, 0 }, { 243, 0 }, { 244, 0 }, { 245, 0 }, { 246, 0 }, { 247, 0 }, { 248, 0 }, { 249, 0 }, { 250, 0 }, { 251, 0 }, { 252, 0 }, { 253, 0 }, { 254, 0 }, { 255, 0 }, { 256, 0 }, { 0, 9 }, { 0,1010 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 13 }, { 0,1000 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 10 }, { 0, 988 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 7 }, { 0, 973 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 48, 12 }, { 49, 12 }, { 50, 12 }, { 51, 12 }, { 52, 12 }, { 53, 12 }, { 54, 12 }, { 55, 12 }, { 56, 12 }, { 57, 12 }, { 0, 0 }, { 69,-2118 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 0 }, { 49, 0 }, { 50, 0 }, { 51, 0 }, { 52, 0 }, { 53, 0 }, { 54, 0 }, { 55, 0 }, { 56, 0 }, { 57, 0 }, { 0, 22 }, { 0, 914 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 101,-2118 }, { 65, 0 }, { 66, 0 }, { 67, 0 }, { 68, 0 }, { 69, 0 }, { 70, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 891 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 0 }, { 98, 0 }, { 99, 0 }, { 100, 0 }, { 101, 0 }, { 102, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 853 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 830 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 22 }, { 0, 771 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 22 }, { 0, 748 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 710 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 687 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 22 }, { 0, 628 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 22 }, { 0, 605 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 143 }, { 49, 143 }, { 50, 143 }, { 51, 143 }, { 52, 143 }, { 53, 143 }, { 54, 143 }, { 55, 143 }, { 56, 143 }, { 57, 143 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 567 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 143 }, { 66, 143 }, { 67, 143 }, { 68, 143 }, { 69, 143 }, { 70, 143 }, { 48,-3520 }, { 49,-3520 }, { 50,-3520 }, { 51,-3520 }, { 52,-3520 }, { 53,-3520 }, { 54,-3520 }, { 55,-3520 }, { 56,-3520 }, { 57,-3520 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 544 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,-3520 }, { 66,-3520 }, { 67,-3520 }, { 68,-3520 }, { 69,-3520 }, { 70,-3520 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 143 }, { 98, 143 }, { 99, 143 }, { 100, 143 }, { 101, 143 }, { 102, 143 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 105 }, { 49, 105 }, { 50, 105 }, { 51, 105 }, { 52, 105 }, { 53, 105 }, { 54, 105 }, { 55, 105 }, { 56, 105 }, { 57, 105 }, { 0, 0 }, { 97,-3520 }, { 98,-3520 }, { 99,-3520 }, { 100,-3520 }, { 101,-3520 }, { 102,-3520 }, { 65, 105 }, { 66, 105 }, { 67, 105 }, { 68, 105 }, { 69, 105 }, { 70, 105 }, { 48,-3579 }, { 49,-3579 }, { 50,-3579 }, { 51,-3579 }, { 52,-3579 }, { 53,-3579 }, { 54,-3579 }, { 55,-3579 }, { 56,-3579 }, { 57,-3579 }, { 0, 22 }, { 0, 485 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,-3579 }, { 66,-3579 }, { 67,-3579 }, { 68,-3579 }, { 69,-3579 }, { 70,-3579 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 105 }, { 98, 105 }, { 99, 105 }, { 100, 105 }, { 101, 105 }, { 102, 105 }, { 0, 0 }, { 0, 22 }, { 0, 462 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,-3579 }, { 98,-3579 }, { 99,-3579 }, { 100,-3579 }, { 101,-3579 }, { 102,-3579 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 61 }, { 49, 61 }, { 50, 61 }, { 51, 61 }, { 52, 61 }, { 53, 61 }, { 54, 61 }, { 55, 61 }, { 56, 61 }, { 57, 61 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 424 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 61 }, { 66, 61 }, { 67, 61 }, { 68, 61 }, { 69, 61 }, { 70, 61 }, { 48, 61 }, { 49, 61 }, { 50, 61 }, { 51, 61 }, { 52, 61 }, { 53, 61 }, { 54, 61 }, { 55, 61 }, { 56, 61 }, { 57, 61 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 401 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 61 }, { 66, 61 }, { 67, 61 }, { 68, 61 }, { 69, 61 }, { 70, 61 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 61 }, { 98, 61 }, { 99, 61 }, { 100, 61 }, { 101, 61 }, { 102, 61 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 82 }, { 49, 82 }, { 50, 82 }, { 51, 82 }, { 52, 82 }, { 53, 82 }, { 54, 82 }, { 55, 82 }, { 56, 82 }, { 57, 82 }, { 0, 0 }, { 97, 61 }, { 98, 61 }, { 99, 61 }, { 100, 61 }, { 101, 61 }, { 102, 61 }, { 65, 82 }, { 66, 82 }, { 67, 82 }, { 68, 82 }, { 69, 82 }, { 70, 82 }, { 48, 82 }, { 49, 82 }, { 50, 82 }, { 51, 82 }, { 52, 82 }, { 53, 82 }, { 54, 82 }, { 55, 82 }, { 56, 82 }, { 57, 82 }, { 0, 22 }, { 0, 342 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 82 }, { 66, 82 }, { 67, 82 }, { 68, 82 }, { 69, 82 }, { 70, 82 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 82 }, { 98, 82 }, { 99, 82 }, { 100, 82 }, { 101, 82 }, { 102, 82 }, { 0, 0 }, { 0, 22 }, { 0, 319 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 82 }, { 98, 82 }, { 99, 82 }, { 100, 82 }, { 101, 82 }, { 102, 82 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48, 61 }, { 49, 61 }, { 50, 61 }, { 51, 61 }, { 52, 61 }, { 53, 61 }, { 54, 61 }, { 55, 61 }, { 56, 61 }, { 57, 61 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 281 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 61 }, { 66, 61 }, { 67, 61 }, { 68, 61 }, { 69, 61 }, { 70, 61 }, { 48, 61 }, { 49, 61 }, { 50, 61 }, { 51, 61 }, { 52, 61 }, { 53, 61 }, { 54, 61 }, { 55, 61 }, { 56, 61 }, { 57, 61 }, { 0, 0 }, { 0, 0 }, { 0, 22 }, { 0, 258 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65, 61 }, { 66, 61 }, { 67, 61 }, { 68, 61 }, { 69, 61 }, { 70, 61 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97, 61 }, { 98, 61 }, { 99, 61 }, { 100, 61 }, { 101, 61 }, { 102, 61 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 48,-3844 }, { 49,-3844 }, { 50,-3844 }, { 51,-3844 }, { 52,-3844 }, { 53,-3844 }, { 54,-3844 }, { 55,-3844 }, { 56,-3844 }, { 57,-3844 }, { 0, 0 }, { 97, 61 }, { 98, 61 }, { 99, 61 }, { 100, 61 }, { 101, 61 }, { 102, 61 }, { 65,-3844 }, { 66,-3844 }, { 67,-3844 }, { 68,-3844 }, { 69,-3844 }, { 70,-3844 }, { 48,-3865 }, { 49,-3865 }, { 50,-3865 }, { 51,-3865 }, { 52,-3865 }, { 53,-3865 }, { 54,-3865 }, { 55,-3865 }, { 56,-3865 }, { 57,-3865 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 65,-3865 }, { 66,-3865 }, { 67,-3865 }, { 68,-3865 }, { 69,-3865 }, { 70,-3865 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,-3844 }, { 98,-3844 }, { 99,-3844 }, { 100,-3844 }, { 101,-3844 }, { 102,-3844 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 97,-3865 }, { 98,-3865 }, { 99,-3865 }, { 100,-3865 }, { 101,-3865 }, { 102,-3865 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 257, 48 }, { 1, 0 }, }; static const struct yy_trans_info *yy_start_state_list[13] = { &yy_transition[1], &yy_transition[3], &yy_transition[261], &yy_transition[519], &yy_transition[777], &yy_transition[1035], &yy_transition[1293], &yy_transition[1551], &yy_transition[1809], &yy_transition[2067], &yy_transition[2325], &yy_transition[2583], &yy_transition[2841], } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "src/backend/parser/ag_scanner.l" #define YY_NO_UNISTD_H 1 /* to override the default memory management */ /* remove warnings */ #define YY_NO_INPUT 1 /* remove unneeded routines */ /* * whitespace rule in Cypher handles twenty-four characters out of the * twenty-five characters defined as whitespace characters, four extra control * characters (FS, GS, RS, and US), and Mongolian vowel separator in Unicode. * * Only six of them below have been considered as whitespace characters here. * This character set is a superset of whitespace characters in JSON. * * [\t\n\v\f\r ] * U+0009 CHARACTER TABULATION (HT, Horizontal Tab) * U+000A LINE FEED (LF) * U+000B LINE TABULATION (VT, Vertical Tab) * U+000C FORM FEED (FF) * U+000D CARRIAGE RETURN (CR) * U+0020 SPACE * * The other characters are listed below for future reference. To handle them, * you may use the patterns that match UTF-8 encoded code points of them. * * \xC2[\x85\xA0] * U+0085 NEXT LINE (NEL) -- not in Cypher * U+00A0 NO-BREAK SPACE * \xE1\x9A\x80 * U+1680 OGHAM SPACE MARK * \xE2\x80[\x80-\x8A\xA8\xA9\xAF] * U+2000 EN QUAD * U+2001 EM QUAD * U+2002 EN SPACE * U+2003 EM SPACE * U+2004 THREE-PER-EM SPACE * U+2005 FOUR-PER-EM SPACE * U+2006 SIX-PER-EM SPACE * U+2007 FIGURE SPACE * U+2008 PUNCTUATION SPACE * U+2009 THIN SPACE * U+200A HAIR SPACE * U+2028 LINE SEPARATOR * U+2029 PARAGRAPH SEPARATOR * U+202F NARROW NO-BREAK SPACE * \xE2\x81\x9F * U+205F MEDIUM MATHEMATICAL SPACE * \xE3\x80\x80 * U+3000 IDEOGRAPHIC SPACE * * [\x1C-\x1F] * U+001C INFORMATION SEPARATOR FOUR (FS, File Separator) * U+001D INFORMATION SEPARATOR THREE (GS, Group Separator) * U+001E INFORMATION SEPARATOR TWO (RS, Record Separator) * U+001F INFORMATION SEPARATOR ONE (US, Unit Separator) * * \xE1\xA0\x8E * U+180E MONGOLIAN VOWEL SEPARATOR -- not a whitespace anymore */ /* * Comment rule for multi-line comment in Cypher does not match comments that * end with an odd number of "*"s before the closing sequence. * Therefore, the rule has been modified so that it can match such comments. */ /* * For numbers, unary plus and minus are handled as operators later in Cypher * grammar although JSON numbers may be prefixed with an optional minus sign. * * JSON does not support octal and hexadecimal integer literals. */ /* * digitseq pattern covers DecimalInteger and OctalInteger rules in Cypher. * Integer in JSON is represented in "0|[1-9][0-9]*" pattern that is covered by * digitseq pattern. */ /* * hexint pattern covers HexInteger rule in Cypher and also accepts "0X" prefix * for convenience. */ /* * decimal pattern covers RegularDecimalReal rule in Cypher and also accepts * "{digitseq}\." pattern (e.g. "1.") which RegularDecimalReal rule doesn't. * Decimal in JSON is represented in "(0|[1-9][0-9]*)\.[0-9]+" pattern that is * covered by decimal pattern. * * decimalfail pattern is for ranges (e.g. "0..1"). The action for the pattern * consumes digitseq and returns dot_dot back to the input stream so that * dot_dot can be matched next. */ /* * decimalsci pattern covers ExponentDecimalReal rule in Cypher. It also * accepts coefficients in "{digitseq}\." pattern and explicit positive * exponents ("+") which ExponentDecimalReal rule doesn't. * Scientific notation in JSON is represented in * "(0|[1-9][0-9]*)(\.[0-9]+)?[Ee][+-]?[0-9]+" pattern that is covered by * decimalsci pattern. */ /* * These patterns cover StringLiteral rule in Cypher and JSON strings. * The escape sequence "\/" has been added for JSON strings. * * esasciifail and esunicodefail patterns handle escape sequences that are not * accepted by esascii and esunicode patterns respectively. * * Since esasciifail pattern can match anything that esascii pattern can, * esascii must appear first before esasciifail in the rules section. * * qstru start condition is for Unicode low surrogates. */ /* id pattern is for UnescapedSymbolicName rule in Cypher. */ /* These are for EscapedSymbolicName rule in Cypher. */ /* * Parameter rule in Cypher is "$" followed by SymbolicName or DecimalInteger * rule. However, according to "Cypher Query Language Reference", * * Parameters may consist of letters and numbers, and any combination of * these, but cannot start with a number or a currency symbol. * * So, a modified version of Parameter rule that follows the above explanation * has been used. */ /* * These are tokens that are used as operators and language constructs in * Cypher, and some of them are structural characters in JSON. */ #line 248 "src/backend/parser/ag_scanner.l" typedef struct strbuf { char *buffer; int capacity; int length; } strbuf; static void strbuf_init(strbuf *sb, int capacity); static void strbuf_cleanup(strbuf *sb); static void strbuf_append_buf(strbuf *sb, const char *b, const int len); static void strbuf_append_char(strbuf *sb, const char c); static void strbuf_append_codepoint(strbuf *sb, const pg_wchar c); static void strbuf_ensure_capacity(strbuf *sb, int len); static const char *strbuf_get_str(strbuf *sb); static void strbuf_reset(strbuf *sb); typedef struct ag_yy_extra { /* * accumulate matched strings to build a complete literal if multiple rules * are needed to scan it, or keep a decimal integer literal that is * converted from a hexadecimal or an octal integer literal if it is too * large to fit in "int" type */ strbuf literal_buf; // for Unicode surrogate pair pg_wchar high_surrogate; int start_cond; // for the location of the current token and the actual position of it const char *scan_buf; int last_loc; } ag_yy_extra; static void integer_literal_to_token(const char *s, ag_token *token, ag_yy_extra *extra); #define hexadecimal_to_decimal(numstr, sb) _numstr_to_decimal(numstr, 16, sb) #define octal_to_decimal(numstr, sb) _numstr_to_decimal(numstr, 8, sb) static void _numstr_to_decimal(const char *numstr, const int base, strbuf *sb); static uint32 hexdigit_value(const char c); static uint32 octdigit_value(const char c); static bool is_high_surrogate(const pg_wchar c); static bool is_low_surrogate(const pg_wchar c); #define update_location() \ do \ { \ yyextra.last_loc = yytext - yyextra.scan_buf; \ } while (0) #define get_location() (yyextra.last_loc) #define scan_errmsg(msg) _scan_errmsg(msg, &yyextra) static int _scan_errmsg(const char *msg, const ag_yy_extra *extra); #define scan_errposition() _scan_errposition(yyextra.last_loc, &yyextra) static int _scan_errposition(const int location, const ag_yy_extra *extra); /* * Avoid exit() on fatal scanner errors. * Call yy_fatal_error() just to keep compiler quiet. */ #define YY_FATAL_ERROR(msg) \ do \ { \ ereport(ERROR, (errmsg_internal("%s", msg))); \ yy_fatal_error(NULL, NULL); \ } while (0) /* * "yyscanner" must be used for the name of the parameter because it is * referenced internally. "yyscan_t" is OK because it is actually "void *" * and is the same with "ag_scanner_t". */ #define YY_DECL ag_token ag_scanner_next_token(yyscan_t yyscanner) #define NDIGITS_PER_REMAINDER 9 #line 2810 "src/backend/parser/ag_scanner.c" #line 2811 "src/backend/parser/ag_scanner.c" #define INITIAL 0 #define mlcomment 1 #define dqstr 2 #define sqstr 3 #define qstru 4 #define bqid 5 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #define YY_EXTRA_TYPE ag_yy_extra /* Holds the entire state of the reentrant scanner. */ struct yyguts_t { /* User-defined. Not touched by flex. */ YY_EXTRA_TYPE yyextra_r; /* The rest are the same as the globals declared in the non-reentrant scanner. */ FILE *yyin_r, *yyout_r; size_t yy_buffer_stack_top; /**< index of top of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; int yy_did_buffer_switch_on_eof; int yy_start_stack_ptr; int yy_start_stack_depth; int *yy_start_stack; yy_state_type yy_last_accepting_state; char* yy_last_accepting_cpos; int yylineno_r; int yy_flex_debug_r; char *yytext_r; int yy_more_flag; int yy_more_len; }; /* end struct yyguts_t */ static int yy_init_globals ( yyscan_t yyscanner ); int yylex_init (yyscan_t* scanner); int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( yyscan_t yyscanner ); YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); int yyget_column ( yyscan_t yyscanner ); void yyset_column ( int _column_no , yyscan_t yyscanner ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( yyscan_t yyscanner ); #else extern int yywrap ( yyscan_t yyscanner ); #endif #endif #ifndef YY_NO_UNPUT #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * , yyscan_t yyscanner); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( yyscan_t yyscanner ); #else static int input ( yyscan_t yyscanner ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (yyscan_t yyscanner); #define YY_DECL int yylex (yyscan_t yyscanner) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( !yyg->yy_init ) { yyg->yy_init = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yyg->yy_start ) yyg->yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_load_buffer_state( yyscanner ); } { #line 326 "src/backend/parser/ag_scanner.l" #line 330 "src/backend/parser/ag_scanner.l" // This is used in the actions below. ag_token token; #line 3061 "src/backend/parser/ag_scanner.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ *yy_cp = yyg->yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start_state_list[yyg->yy_start]; yy_match: { const struct yy_trans_info *yy_trans_info; YY_CHAR yy_c; for ( yy_c = YY_SC_TO_UI(*yy_cp); (yy_trans_info = &yy_current_state[yy_c])-> yy_verify == yy_c; yy_c = YY_SC_TO_UI(*++yy_cp) ) yy_current_state += yy_trans_info->yy_nxt; } yy_find_action: yy_act = yy_current_state[-1].yy_nxt; YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP #line 334 "src/backend/parser/ag_scanner.l" { // ignore } YY_BREAK case 2: YY_RULE_SETUP #line 338 "src/backend/parser/ag_scanner.l" { // update location in case of unterminated comment update_location(); BEGIN(mlcomment); } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP #line 344 "src/backend/parser/ag_scanner.l" { // ignore } YY_BREAK case 4: YY_RULE_SETUP #line 348 "src/backend/parser/ag_scanner.l" { BEGIN(INITIAL); } YY_BREAK case YY_STATE_EOF(mlcomment): #line 352 "src/backend/parser/ag_scanner.l" { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("unterminated /* comment"), scan_errposition())); } YY_BREAK case 5: YY_RULE_SETUP #line 358 "src/backend/parser/ag_scanner.l" { // ignore } YY_BREAK case 6: #line 363 "src/backend/parser/ag_scanner.l" case 7: YY_RULE_SETUP #line 363 "src/backend/parser/ag_scanner.l" { update_location(); integer_literal_to_token(yytext, &token, &yyextra); token.location = get_location(); return token; } YY_BREAK case 8: YY_RULE_SETUP #line 370 "src/backend/parser/ag_scanner.l" { update_location(); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("invalid hexadecimal integer literal"), scan_errposition())); } YY_BREAK case 9: #line 378 "src/backend/parser/ag_scanner.l" case 10: YY_RULE_SETUP #line 378 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_DECIMAL; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 11: YY_RULE_SETUP #line 386 "src/backend/parser/ag_scanner.l" { // return dot_dot back to the input stream yyless(yyleng - 2); update_location(); // consume digitseq integer_literal_to_token(yytext, &token, &yyextra); token.location = get_location(); return token; } YY_BREAK case 12: #line 399 "src/backend/parser/ag_scanner.l" case 13: YY_RULE_SETUP #line 399 "src/backend/parser/ag_scanner.l" { update_location(); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("invalid scientific notation literal"), scan_errposition())); } YY_BREAK case 14: YY_RULE_SETUP #line 406 "src/backend/parser/ag_scanner.l" { update_location(); strbuf_reset(&yyextra.literal_buf); BEGIN(dqstr); } YY_BREAK case 15: YY_RULE_SETUP #line 412 "src/backend/parser/ag_scanner.l" { update_location(); strbuf_reset(&yyextra.literal_buf); BEGIN(sqstr); } YY_BREAK case 16: /* rule 16 can match eol */ #line 419 "src/backend/parser/ag_scanner.l" case 17: /* rule 17 can match eol */ YY_RULE_SETUP #line 419 "src/backend/parser/ag_scanner.l" { strbuf_append_buf(&yyextra.literal_buf, yytext, yyleng); } YY_BREAK case 18: YY_RULE_SETUP #line 423 "src/backend/parser/ag_scanner.l" { char c; switch (yytext[1]) { case 'b': c = '\b'; break; case 'f': c = '\f'; break; case 'n': c = '\n'; break; case 'r': c = '\r'; break; case 't': c = '\t'; break; default: // '"', '\'', '/', and '\\' c = yytext[1]; break; } strbuf_append_char(&yyextra.literal_buf, c); } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP #line 452 "src/backend/parser/ag_scanner.l" { if (yyleng == 1) { /* * This happens when the scanner meets "\"<>. Just consume "\" * so that <> rule can do the rest. */ strbuf_append_char(&yyextra.literal_buf, '\\'); } else { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid escape sequence"), errdetail("Valid escape sequences are \\\", \\', \\/, \\\\, \\b, \\f, \\n, \\r, \\t, \\uXXXX, and \\UXXXXXXXX."), scan_errposition())); } } YY_BREAK case 20: YY_RULE_SETUP #line 472 "src/backend/parser/ag_scanner.l" { pg_wchar c; // It is unnecessary to check endptr and errno here. c = strtoul(yytext + 2, NULL, 16); if (c > 0x10FFFF) { // c is greater than the maximum value of a Unicode code point. update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid Unicode escape value"), errdetail("Unicode escape values cannot be greater than 10FFFF, which is the maximum value of a code point."), scan_errposition())); } else if (c > 0x7F) { if (GetDatabaseEncoding() != PG_UTF8) { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("unsupported Unicode escape value"), errdetail("Unicode escape values cannot be used for code point values above 007F when the server encoding is not UTF8."), scan_errposition())); } if (is_high_surrogate(c)) { yyextra.high_surrogate = c; yyextra.start_cond = YY_START; BEGIN(qstru); } else if (is_low_surrogate(c)) { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid Unicode surrogate pair"), errdetail("A low surrogate must follow a high surrogate."), scan_errposition())); } else { strbuf_append_codepoint(&yyextra.literal_buf, c); } } else if (c > 0) { // c is an ASCII character. strbuf_append_char(&yyextra.literal_buf, (char)c); } else { /* * U+0000 NUL is the minimum value of a Unicode code point. * However, it is invalid in quoted strings as well as query strings. */ update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("unsupported Unicode escape value"), errdetail("Unicode code point value 0000 is not allowed in quoted strings."), scan_errposition())); } } YY_BREAK case 21: YY_RULE_SETUP #line 539 "src/backend/parser/ag_scanner.l" { pg_wchar c; c = strtoul(yytext + 2, NULL, 16); if (is_low_surrogate(c)) { c = surrogate_pair_to_codepoint(yyextra.high_surrogate, c); // 0x010000 <= c <= 0x10FFFF always holds for surrogate pairs. strbuf_append_codepoint(&yyextra.literal_buf, c); BEGIN(yyextra.start_cond); } else { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid Unicode surrogate pair"), errdetail("A low surrogate must follow a high surrogate."), scan_errposition())); } } YY_BREAK case 22: YY_RULE_SETUP #line 561 "src/backend/parser/ag_scanner.l" { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid Unicode escape sequence"), errhint("Unicode escape sequences must be \\uXXXX or \\UXXXXXXXX."), scan_errposition())); } YY_BREAK case 23: YY_RULE_SETUP #line 570 "src/backend/parser/ag_scanner.l" { update_location(); ereport(ERROR, (errcode(ERRCODE_INVALID_ESCAPE_SEQUENCE), scan_errmsg("invalid Unicode surrogate pair"), errdetail("A low surrogate must follow a high surrogate."), scan_errposition())); } YY_BREAK case 24: #line 579 "src/backend/parser/ag_scanner.l" case 25: YY_RULE_SETUP #line 579 "src/backend/parser/ag_scanner.l" { BEGIN(INITIAL); /* * In quoted strings, only Unicode escape sequences need to be verified, * and the actions for {esunicode} and {esunicode} * rules verify the code point values. So, quoted strings are always valid. */ token.type = AG_TOKEN_STRING; token.value.s = strbuf_get_str(&yyextra.literal_buf); token.location = get_location(); return token; } YY_BREAK case YY_STATE_EOF(dqstr): case YY_STATE_EOF(sqstr): case YY_STATE_EOF(qstru): #line 594 "src/backend/parser/ag_scanner.l" { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("unterminated quoted string"), scan_errposition())); } YY_BREAK case 26: YY_RULE_SETUP #line 600 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_IDENTIFIER; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 27: YY_RULE_SETUP #line 608 "src/backend/parser/ag_scanner.l" { update_location(); strbuf_reset(&yyextra.literal_buf); BEGIN(bqid); } YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP #line 614 "src/backend/parser/ag_scanner.l" { strbuf_append_buf(&yyextra.literal_buf, yytext, yyleng); } YY_BREAK case 29: YY_RULE_SETUP #line 618 "src/backend/parser/ag_scanner.l" { strbuf_append_char(&yyextra.literal_buf, '`'); } YY_BREAK case 30: YY_RULE_SETUP #line 622 "src/backend/parser/ag_scanner.l" { BEGIN(INITIAL); if (yyextra.literal_buf.length == 0) { ereport(ERROR, (errcode(ERRCODE_INVALID_NAME), scan_errmsg("zero-length quoted identifier"), scan_errposition())); } token.type = AG_TOKEN_IDENTIFIER; token.value.s = strbuf_get_str(&yyextra.literal_buf); token.location = get_location(); return token; } YY_BREAK case YY_STATE_EOF(bqid): #line 638 "src/backend/parser/ag_scanner.l" { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("unterminated quoted identifier"), scan_errposition())); } YY_BREAK case 31: YY_RULE_SETUP #line 644 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_PARAMETER; token.value.s = yytext + 1; token.location = get_location(); return token; } YY_BREAK case 32: YY_RULE_SETUP #line 652 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_CONCAT; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 33: YY_RULE_SETUP #line 660 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_ACCESS_PATH; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 34: YY_RULE_SETUP #line 668 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_ANY_EXISTS; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 35: YY_RULE_SETUP #line 676 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_LEFT_CONTAINS; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 36: YY_RULE_SETUP #line 684 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_RIGHT_CONTAINS; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 37: YY_RULE_SETUP #line 692 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_ALL_EXISTS; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 38: YY_RULE_SETUP #line 700 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_LT_GT; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 39: YY_RULE_SETUP #line 708 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_LT_EQ; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 40: YY_RULE_SETUP #line 716 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_GT_EQ; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 41: YY_RULE_SETUP #line 724 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_DOT_DOT; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 42: YY_RULE_SETUP #line 732 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_PLUS_EQ; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 43: YY_RULE_SETUP #line 740 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_EQ_TILDE; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 44: YY_RULE_SETUP #line 748 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_TYPECAST; token.value.s = yytext; token.location = get_location(); return token; } YY_BREAK case 45: YY_RULE_SETUP #line 756 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_CHAR; token.value.c = yytext[0]; token.location = get_location(); return token; } YY_BREAK case 46: YY_RULE_SETUP #line 764 "src/backend/parser/ag_scanner.l" { update_location(); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), scan_errmsg("unexpected character"), scan_errposition())); } YY_BREAK case YY_STATE_EOF(INITIAL): #line 771 "src/backend/parser/ag_scanner.l" { update_location(); token.type = AG_TOKEN_NULL; token.value.c = '\0'; token.location = get_location(); return token; } YY_BREAK case 47: YY_RULE_SETUP #line 779 "src/backend/parser/ag_scanner.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 3692 "src/backend/parser/ag_scanner.c" case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yyg->yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yyg->yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yyg->yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer( yyscanner ) ) { case EOB_ACT_END_OF_FILE: { yyg->yy_did_buffer_switch_on_eof = 0; if ( yywrap( yyscanner ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yyg->yy_c_buf_p = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; yy_current_state = yy_get_previous_state( yyscanner ); yy_cp = yyg->yy_c_buf_p; yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = yyg->yytext_ptr; int number_to_move, i; int ret_val; if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) (yyg->yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } if ( yyg->yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin , yyscanner); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } yyg->yy_n_chars += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (yyscan_t yyscanner) { yy_state_type yy_current_state; char *yy_cp; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_current_state = yy_start_state_list[yyg->yy_start]; for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) { yy_current_state += yy_current_state[(*yy_cp ? YY_SC_TO_UI(*yy_cp) : 256)].yy_nxt; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) { int yy_is_jam; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ int yy_c = 256; const struct yy_trans_info *yy_trans_info; yy_trans_info = &yy_current_state[(unsigned int) yy_c]; yy_current_state += yy_trans_info->yy_nxt; yy_is_jam = (yy_trans_info->yy_verify != yy_c); (void)yyg; return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (yyscan_t yyscanner) #else static int input (yyscan_t yyscanner) #endif { int c; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; *yyg->yy_c_buf_p = yyg->yy_hold_char; if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) /* This was really a NUL. */ *yyg->yy_c_buf_p = '\0'; else { /* need more input */ int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin , yyscanner); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( yyscanner ) ) return 0; if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(yyscanner); #else return input(yyscanner); #endif } case EOB_ACT_CONTINUE_SCAN: yyg->yy_c_buf_p = yyg->yytext_ptr + offset; break; } } } c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ yyg->yy_hold_char = *++yyg->yy_c_buf_p; return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * @param yyscanner The scanner object. * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (yyscanner); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); } yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner); yy_load_buffer_state( yyscanner ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @param yyscanner The scanner object. */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (yyscanner); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( yyscanner ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yyg->yy_did_buffer_switch_on_eof = 1; } static void yy_load_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; yyg->yy_hold_char = *yyg->yy_c_buf_p; } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * @param yyscanner The scanner object. * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file , yyscanner); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @param yyscanner The scanner object. */ void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf , yyscanner ); yyfree( (void *) b , yyscanner ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) { int oerrno = errno; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yy_flush_buffer( b , yyscanner); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * @param yyscanner The scanner object. */ void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( yyscanner ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * @param yyscanner The scanner object. */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (new_buffer == NULL) return; yyensure_buffer_stack(yyscanner); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *yyg->yy_c_buf_p = yyg->yy_hold_char; YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) yyg->yy_buffer_stack_top++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * @param yyscanner The scanner object. */ void yypop_buffer_state (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner); YY_CURRENT_BUFFER_LVALUE = NULL; if (yyg->yy_buffer_stack_top > 0) --yyg->yy_buffer_stack_top; if (YY_CURRENT_BUFFER) { yy_load_buffer_state( yyscanner ); yyg->yy_did_buffer_switch_on_eof = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (yyscan_t yyscanner) { yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); yyg->yy_buffer_stack_max = num_to_alloc; yyg->yy_buffer_stack_top = 0; return; } if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = yyg->yy_buffer_stack_max + grow_size; yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc (yyg->yy_buffer_stack, num_to_alloc * sizeof(struct yy_buffer_state*) , yyscanner); if ( ! yyg->yy_buffer_stack ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); yyg->yy_buffer_stack_max = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b , yyscanner ); return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = yyg->yy_hold_char; \ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ yyg->yy_hold_char = *yyg->yy_c_buf_p; \ *yyg->yy_c_buf_p = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the user-defined data for this scanner. * @param yyscanner The scanner object. */ YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyextra; } /** Get the current column number. * @param yyscanner The scanner object. */ int yyget_column (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (! YY_CURRENT_BUFFER) return 0; return yycolumn; } /** Get the current token. * @param yyscanner The scanner object. */ /** Set the user-defined data. This data is never touched by the scanner. * @param user_defined The data to be associated with this scanner. * @param yyscanner The scanner object. */ void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; yyextra = user_defined ; } /** Set the current column. * @param _column_no column number * @param yyscanner The scanner object. */ void yyset_column (int _column_no , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* column is only valid if an input buffer exists. */ if (! YY_CURRENT_BUFFER ) YY_FATAL_ERROR( "yyset_column called with no buffer" ); yycolumn = _column_no; } /* Accessor methods for yylval and yylloc */ /* User-visible API */ /* yylex_init is special because it creates the scanner itself, so it is * the ONLY reentrant function that doesn't take the scanner as the last argument. * That's why we explicitly handle the declaration, instead of using our macros. */ int yylex_init(yyscan_t* ptr_yy_globals) { if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); return yy_init_globals ( *ptr_yy_globals ); } /* yylex_init_extra has the same functionality as yylex_init, but follows the * convention of taking the scanner as the last argument. Note however, that * this is a *pointer* to a scanner, as it will be allocated by this call (and * is the reason, too, why this function also must handle its own declaration). * The user defined value in the first argument will be available to yyalloc in * the yyextra field. */ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) { struct yyguts_t dummy_yyguts; yyset_extra (yy_user_defined, &dummy_yyguts); if (ptr_yy_globals == NULL){ errno = EINVAL; return 1; } *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); yyset_extra (yy_user_defined, *ptr_yy_globals); return yy_init_globals ( *ptr_yy_globals ); } static int yy_init_globals (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ yyg->yy_buffer_stack = NULL; yyg->yy_buffer_stack_top = 0; yyg->yy_buffer_stack_max = 0; yyg->yy_c_buf_p = NULL; yyg->yy_init = 0; yyg->yy_start = 0; yyg->yy_start_stack_ptr = 0; yyg->yy_start_stack_depth = 0; yyg->yy_start_stack = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(yyscanner); } /* Destroy the stack itself. */ yyfree(yyg->yy_buffer_stack , yyscanner); yyg->yy_buffer_stack = NULL; /* Destroy the start condition stack. */ yyfree( yyg->yy_start_stack , yyscanner ); yyg->yy_start_stack = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( yyscanner); /* Destroy the main struct (reentrant only). */ yyfree ( yyscanner , yyscanner ); yyscanner = NULL; return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; (void)yyg; int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s , yyscan_t yyscanner) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #define YYTABLES_NAME "yytables" #line 779 "src/backend/parser/ag_scanner.l" /* * Override the default memory management to make flex use palloc() instead of * malloc(). */ void *ag_yyalloc(yy_size_t size, yyscan_t yyscanner) { return palloc(size); } void *ag_yyrealloc(void *ptr, yy_size_t size, yyscan_t yyscanner) { // see realloc(3) if (ptr) { if (size == 0) { pfree(ptr); return NULL; } else { return repalloc(ptr, size); } } else { return palloc(size); } } void ag_yyfree(void *ptr, yyscan_t yyscanner) { if (ptr) pfree(ptr); } static void strbuf_init(strbuf *sb, int capacity) { sb->buffer = palloc(capacity); sb->capacity = capacity; sb->length = 0; } static void strbuf_cleanup(strbuf *sb) { if (sb->buffer) pfree(sb->buffer); } static void strbuf_append_buf(strbuf *sb, const char *b, const int len) { strbuf_ensure_capacity(sb, sb->length + len); memcpy(sb->buffer + sb->length, b, len); sb->length += len; } static void strbuf_append_char(strbuf *sb, const char c) { strbuf_ensure_capacity(sb, sb->length + 1); sb->buffer[sb->length] = c; sb->length += 1; } static void strbuf_append_codepoint(strbuf *sb, const pg_wchar c) { unsigned char buf[6]; unicode_to_utf8(c, buf); strbuf_append_buf(sb, (char *)buf, pg_utf_mblen(buf)); } /* * len cannot be greater than MaxAllocSize because ReadCommand() reads * a message and places the message body in StringInfo. */ static void strbuf_ensure_capacity(strbuf *sb, int len) { // consider additional 1 byte for the last '\0' character if (len < sb->capacity) return; do { sb->capacity *= 2; } while (sb->capacity <= len); sb->buffer = repalloc(sb->buffer, sb->capacity); } static const char *strbuf_get_str(strbuf *sb) { sb->buffer[sb->length] = '\0'; return sb->buffer; } static void strbuf_reset(strbuf *sb) { sb->length = 0; } static void integer_literal_to_token(const char *s, ag_token *token, ag_yy_extra *extra) { char *endptr; int i; errno = 0; i = strtoint(s, &endptr, 0); /* * This is only needed for invalid octal integer literals. (e.g. "08") * Other cases cannot happen because of digitseq and hexint rules. */ if (*endptr != '\0') { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), _scan_errmsg("invalid octal integer literal", extra), _scan_errposition(extra->last_loc, extra))); } // Treat it as a decimal if it is too large to be an "int" value. if (errno == ERANGE) { /* * Accessing s[0] and s[1] is safe because ERANGE is returned only if * there are 10 or more characters in s. In this case, the shortest * integer literals for decimal, hexadecimal, and octal integers are * "2147483648", "0x80000000", and "020000000000" respectively. */ if (s[0] == '0') { strbuf_reset(&extra->literal_buf); /* * No matter how many characters s has, if all digits in s are * zeros, strtoint() returns 0 without an error. * So, _numstr_to_decimal() assumes that there is at least one * non-zero digit in s. */ if (s[1] == 'X' || s[1] == 'x') hexadecimal_to_decimal(s + 2, &extra->literal_buf); else octal_to_decimal(s + 1, &extra->literal_buf); s = strbuf_get_str(&extra->literal_buf); } token->type = AG_TOKEN_DECIMAL; token->value.s = s; return; } token->type = AG_TOKEN_INTEGER; token->value.i = i; } /* * convert a string of a hexadecimal or an octal integer to a string of the * corresponding decimal integer */ static void _numstr_to_decimal(const char *numstr, const int base, strbuf *sb) { // constants for each base int ndigits_per_word; int nbits_per_digit; uint32 (*digit_value)(const char); /* * constants for the conversion * * "divisor" is 10^9. * * At most 3 divisions are needed to eliminate 1 word. * hex: 4294967295999999999 -> 4294967295 -> 4 -> 0 * oct: 1073741823999999999 -> 1073741823 -> 1 -> 0 */ const uint64 divisor = 1000000000; const int ndivisions = 3; int ndigits; int nwords; uint32 *words; const char *digitp; int word_i; int ndigits_word0; uint32 word; uint32 *remainders; int nremainders; int i; // set constants for each base switch (base) { case 16: /* * Hexadecimal * * Maximum value for each word * 0xFFFFFFFF = 4294967295 * Divisor * 0x3B9ACA00 = 1000000000 * Maximum remainder * 0x3B9AC9FF = 999999999 * * Maximum dividend * 0x3B9AC9FFFFFFFFFF = 4294967295999999999 * Quotient of the maximum dividend and the divisor * 0xFFFFFFFF = 4294967295 * Remainer of the above division * 0x3B9AC9FF = 999999999 */ ndigits_per_word = 8; nbits_per_digit = 4; digit_value = hexdigit_value; break; case 8: /* * Octal * * Maximum value for each word * 07777777777 = 1073741823 * Divisor * 07346545000 = 1000000000 * Maximum remainder * 07346544777 = 999999999 * * Maximum dividend * 073465447777777777777 = 1073741823999999999 * Quotient of the maximum dividend and the divisor * 07777777777 = 1073741823 * Remainer of the above division * 07346544777 = 999999999 */ ndigits_per_word = 10; nbits_per_digit = 3; digit_value = octdigit_value; break; default: Assert(!"invalid base"); return; } // skip leading zeros while (*numstr == '0') numstr++; // number of digits in "numstr" ndigits = strlen(numstr); Assert(ndigits > 0); // prepare "words" to store "numstr" in two's complement representation nwords = (ndigits + (ndigits_per_word - 1)) / ndigits_per_word; words = palloc(sizeof(*words) * nwords); digitp = numstr; word_i = 0; // number of digits for the first word ndigits_word0 = ndigits % ndigits_per_word; if (ndigits_word0 == 0) ndigits_word0 = ndigits_per_word; // fill the first word word = digit_value(*digitp++); for (i = 1; i < ndigits_word0; i++) { word <<= nbits_per_digit; word |= digit_value(*digitp++); } words[word_i++] = word; // fill the rest of "words" while (word_i < nwords) { word = digit_value(*digitp++); for (i = 1; i < ndigits_per_word; i++) { word <<= nbits_per_digit; word |= digit_value(*digitp++); } words[word_i++] = word; } // At most "ndivisions" divisions are needed to eliminate 1 word. remainders = palloc(sizeof(*remainders) * (ndivisions * nwords)); nremainders = 0; word_i = 0; // repeat dividing "words" by "divisor" until the quotient becomes 0 while (word_i < nwords) { uint64 r; r = 0; // divide "words" by "divisor" for (i = word_i; i < nwords; i++) { uint64 d; uint64 q; d = (uint64)words[i]; d |= r << (nbits_per_digit * ndigits_per_word); q = d / divisor; r = d % divisor; words[i] = (uint32)q; } // collect the remainder to build the result remainders[nremainders++] = (uint32)r; /* * Divisions over the first effective word is done * and "words" is getting closer to 0. */ if (words[word_i] == 0) word_i++; } // convert the collected remainders to a string, starting from the last one for (i = nremainders - 1; i >= 0; i--) { char buf[NDIGITS_PER_REMAINDER]; int buf_i; uint32 tmp; buf_i = NDIGITS_PER_REMAINDER; for (tmp = remainders[i]; tmp > 0; tmp /= 10) buf[--buf_i] = '0' + (char)(tmp % 10); // leading zeros for intermediate digits if (i < nremainders - 1) { while (buf_i > 0) buf[--buf_i] = '0'; } strbuf_append_buf(sb, &buf[buf_i], NDIGITS_PER_REMAINDER - buf_i); } pfree(remainders); pfree(words); } static uint32 hexdigit_value(const char c) { if (c >= '0' && c <= '9') return c - '0'; if (c >= 'A' && c <= 'F') return 0xA + (c - 'A'); Assert(c >= 'a' && c <= 'f'); return 0xA + (c - 'a'); } static uint32 octdigit_value(const char c) { Assert(c >= '0' && c <= '7'); return c - '0'; } static bool is_high_surrogate(const pg_wchar c) { return (c >= 0xD800 && c <= 0xDBFF); } static bool is_low_surrogate(const pg_wchar c) { return (c >= 0xDC00 && c <= 0xDFFF); } static int _scan_errmsg(const char *msg, const ag_yy_extra *extra) { const char *t = extra->scan_buf + extra->last_loc; if (t[0] == YY_END_OF_BUFFER_CHAR) return errmsg("%s at end of input", msg); else return errmsg("%s at or near \"%s\"", msg, t); } static int _scan_errposition(const int location, const ag_yy_extra *extra) { int pos; // no-op if location is unknown if (location < 0) return 0; // convert byte offset to number of characters pos = pg_mbstrlen_with_len(extra->scan_buf, location) + 1; return errposition(pos); } ag_scanner_t ag_scanner_create(const char *s) { Size len; char *buf; yyscan_t yyscanner; ag_yy_extra extra; int ret; // The last two YY_END_OF_BUFFER_CHAR are required by flex. len = strlen(s); buf = palloc(len + 2); memcpy(buf, s, len); buf[len] = YY_END_OF_BUFFER_CHAR; buf[len + 1] = YY_END_OF_BUFFER_CHAR; ret = ag_yylex_init(&yyscanner); if (ret) elog(ERROR, "ag_yylex_init() failed: %m"); strbuf_init(&extra.literal_buf, 1024); extra.high_surrogate = 0; extra.start_cond = INITIAL; extra.scan_buf = buf; extra.last_loc = 0; ag_yyset_extra(extra, yyscanner); ag_yy_scan_buffer(buf, len + 2, yyscanner); return yyscanner; } void ag_scanner_destroy(ag_scanner_t scanner) { ag_yy_extra extra; extra = ag_yyget_extra(scanner); strbuf_cleanup(&extra.literal_buf); ag_yylex_destroy(scanner); } int ag_scanner_errmsg(const char *msg, ag_scanner_t *scanner) { ag_yy_extra extra; extra = ag_yyget_extra(scanner); return _scan_errmsg(msg, &extra); } int ag_scanner_errposition(const int location, ag_scanner_t *scanner) { ag_yy_extra extra; extra = ag_yyget_extra(scanner); return _scan_errposition(location, &extra); }