Line data Source code
1 :
2 : #line 3 "/usr/local/src/libreoffice/workdir/unxlngi6.pro/LexTarget/connectivity/source/parse/sqlflex.cxx"
3 :
4 : #define YY_INT_ALIGNED short int
5 :
6 : /* A lexical scanner generated by flex */
7 :
8 : #define yy_create_buffer SQLyy_create_buffer
9 : #define yy_delete_buffer SQLyy_delete_buffer
10 : #define yy_flex_debug SQLyy_flex_debug
11 : #define yy_init_buffer SQLyy_init_buffer
12 : #define yy_flush_buffer SQLyy_flush_buffer
13 : #define yy_load_buffer_state SQLyy_load_buffer_state
14 : #define yy_switch_to_buffer SQLyy_switch_to_buffer
15 : #define yyin SQLyyin
16 : #define yyleng SQLyyleng
17 : #define yylex SQLyylex
18 : #define yylineno SQLyylineno
19 : #define yyout SQLyyout
20 : #define yyrestart SQLyyrestart
21 : #define yytext SQLyytext
22 : #define yywrap SQLyywrap
23 : #define yyalloc SQLyyalloc
24 : #define yyrealloc SQLyyrealloc
25 : #define yyfree SQLyyfree
26 :
27 : #define FLEX_SCANNER
28 : #define YY_FLEX_MAJOR_VERSION 2
29 : #define YY_FLEX_MINOR_VERSION 5
30 : #define YY_FLEX_SUBMINOR_VERSION 35
31 : #if YY_FLEX_SUBMINOR_VERSION > 0
32 : #define FLEX_BETA
33 : #endif
34 :
35 : /* First, we deal with platform-specific or compiler-specific issues. */
36 :
37 : /* begin standard C headers. */
38 : #include <stdio.h>
39 : #include <string.h>
40 : #include <errno.h>
41 : #include <stdlib.h>
42 :
43 : /* end standard C headers. */
44 :
45 : /* flex integer type definitions */
46 :
47 : #ifndef FLEXINT_H
48 : #define FLEXINT_H
49 :
50 : /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51 :
52 : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53 :
54 : /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55 : * if you want the limit (max/min) macros for int types.
56 : */
57 : #ifndef __STDC_LIMIT_MACROS
58 : #define __STDC_LIMIT_MACROS 1
59 : #endif
60 :
61 : #include <inttypes.h>
62 : typedef int8_t flex_int8_t;
63 : typedef uint8_t flex_uint8_t;
64 : typedef int16_t flex_int16_t;
65 : typedef uint16_t flex_uint16_t;
66 : typedef int32_t flex_int32_t;
67 : typedef uint32_t flex_uint32_t;
68 : #else
69 : typedef signed char flex_int8_t;
70 : typedef short int flex_int16_t;
71 : typedef int flex_int32_t;
72 : typedef unsigned char flex_uint8_t;
73 : typedef unsigned short int flex_uint16_t;
74 : typedef unsigned int flex_uint32_t;
75 : #endif /* ! C99 */
76 :
77 : /* Limits of integral types. */
78 : #ifndef INT8_MIN
79 : #define INT8_MIN (-128)
80 : #endif
81 : #ifndef INT16_MIN
82 : #define INT16_MIN (-32767-1)
83 : #endif
84 : #ifndef INT32_MIN
85 : #define INT32_MIN (-2147483647-1)
86 : #endif
87 : #ifndef INT8_MAX
88 : #define INT8_MAX (127)
89 : #endif
90 : #ifndef INT16_MAX
91 : #define INT16_MAX (32767)
92 : #endif
93 : #ifndef INT32_MAX
94 : #define INT32_MAX (2147483647)
95 : #endif
96 : #ifndef UINT8_MAX
97 : #define UINT8_MAX (255U)
98 : #endif
99 : #ifndef UINT16_MAX
100 : #define UINT16_MAX (65535U)
101 : #endif
102 : #ifndef UINT32_MAX
103 : #define UINT32_MAX (4294967295U)
104 : #endif
105 :
106 : #endif /* ! FLEXINT_H */
107 :
108 : #ifdef __cplusplus
109 :
110 : /* The "const" storage-class-modifier is valid. */
111 : #define YY_USE_CONST
112 :
113 : #else /* ! __cplusplus */
114 :
115 : /* C99 requires __STDC__ to be defined as 1. */
116 : #if defined (__STDC__)
117 :
118 : #define YY_USE_CONST
119 :
120 : #endif /* defined (__STDC__) */
121 : #endif /* ! __cplusplus */
122 :
123 : #ifdef YY_USE_CONST
124 : #define yyconst const
125 : #else
126 : #define yyconst
127 : #endif
128 :
129 : /* Returned upon end-of-file. */
130 : #define YY_NULL 0
131 :
132 : /* Promotes a possibly negative, possibly signed char to an unsigned
133 : * integer for use as an array index. If the signed char is negative,
134 : * we want to instead treat it as an 8-bit unsigned char, hence the
135 : * double cast.
136 : */
137 : #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
138 :
139 : /* Enter a start condition. This macro really ought to take a parameter,
140 : * but we do it the disgusting crufty way forced on us by the ()-less
141 : * definition of BEGIN.
142 : */
143 : #define BEGIN (yy_start) = 1 + 2 *
144 :
145 : /* Translate the current start state into a value that can be later handed
146 : * to BEGIN to return to the state. The YYSTATE alias is for lex
147 : * compatibility.
148 : */
149 : #define YY_START (((yy_start) - 1) / 2)
150 : #define YYSTATE YY_START
151 :
152 : /* Action number for EOF rule of a given start state. */
153 : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
154 :
155 : /* Special action meaning "start processing a new file". */
156 : #define YY_NEW_FILE SQLyyrestart(SQLyyin )
157 :
158 : #define YY_END_OF_BUFFER_CHAR 0
159 :
160 : /* Size of default input buffer. */
161 : #ifndef YY_BUF_SIZE
162 : #define YY_BUF_SIZE 16384
163 : #endif
164 :
165 : /* The state buf must be large enough to hold one state per character in the main buffer.
166 : */
167 : #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
168 :
169 : #ifndef YY_TYPEDEF_YY_BUFFER_STATE
170 : #define YY_TYPEDEF_YY_BUFFER_STATE
171 : typedef struct yy_buffer_state *YY_BUFFER_STATE;
172 : #endif
173 :
174 : extern int SQLyyleng;
175 :
176 : extern FILE *SQLyyin, *SQLyyout;
177 :
178 : #define EOB_ACT_CONTINUE_SCAN 0
179 : #define EOB_ACT_END_OF_FILE 1
180 : #define EOB_ACT_LAST_MATCH 2
181 :
182 : #define YY_LESS_LINENO(n)
183 :
184 : /* Return all but the first "n" matched characters back to the input stream. */
185 : #define yyless(n) \
186 : do \
187 : { \
188 : /* Undo effects of setting up SQLyytext. */ \
189 : int yyless_macro_arg = (n); \
190 : YY_LESS_LINENO(yyless_macro_arg);\
191 : *yy_cp = (yy_hold_char); \
192 : YY_RESTORE_YY_MORE_OFFSET \
193 : (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
194 : YY_DO_BEFORE_ACTION; /* set up SQLyytext again */ \
195 : } \
196 : while ( 0 )
197 :
198 : #define unput(c) yyunput( c, (yytext_ptr) )
199 :
200 : #ifndef YY_TYPEDEF_YY_SIZE_T
201 : #define YY_TYPEDEF_YY_SIZE_T
202 : typedef size_t yy_size_t;
203 : #endif
204 :
205 : #ifndef YY_STRUCT_YY_BUFFER_STATE
206 : #define YY_STRUCT_YY_BUFFER_STATE
207 : struct yy_buffer_state
208 : {
209 : FILE *yy_input_file;
210 :
211 : char *yy_ch_buf; /* input buffer */
212 : char *yy_buf_pos; /* current position in input buffer */
213 :
214 : /* Size of input buffer in bytes, not including room for EOB
215 : * characters.
216 : */
217 : yy_size_t yy_buf_size;
218 :
219 : /* Number of characters read into yy_ch_buf, not including EOB
220 : * characters.
221 : */
222 : int yy_n_chars;
223 :
224 : /* Whether we "own" the buffer - i.e., we know we created it,
225 : * and can realloc() it to grow it, and should free() it to
226 : * delete it.
227 : */
228 : int yy_is_our_buffer;
229 :
230 : /* Whether this is an "interactive" input source; if so, and
231 : * if we're using stdio for input, then we want to use getc()
232 : * instead of fread(), to make sure we stop fetching input after
233 : * each newline.
234 : */
235 : int yy_is_interactive;
236 :
237 : /* Whether we're considered to be at the beginning of a line.
238 : * If so, '^' rules will be active on the next match, otherwise
239 : * not.
240 : */
241 : int yy_at_bol;
242 :
243 : int yy_bs_lineno; /**< The line count. */
244 : int yy_bs_column; /**< The column count. */
245 :
246 : /* Whether to try to fill the input buffer when we reach the
247 : * end of it.
248 : */
249 : int yy_fill_buffer;
250 :
251 : int yy_buffer_status;
252 :
253 : #define YY_BUFFER_NEW 0
254 : #define YY_BUFFER_NORMAL 1
255 : /* When an EOF's been seen but there's still some text to process
256 : * then we mark the buffer as YY_EOF_PENDING, to indicate that we
257 : * shouldn't try reading from the input source any more. We might
258 : * still have a bunch of tokens to match, though, because of
259 : * possible backing-up.
260 : *
261 : * When we actually see the EOF, we change the status to "new"
262 : * (via SQLyyrestart()), so that the user can continue scanning by
263 : * just pointing SQLyyin at a new input file.
264 : */
265 : #define YY_BUFFER_EOF_PENDING 2
266 :
267 : };
268 : #endif /* !YY_STRUCT_YY_BUFFER_STATE */
269 :
270 : /* Stack of input buffers. */
271 : static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
272 : static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
273 : static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
274 :
275 : /* We provide macros for accessing buffer states in case in the
276 : * future we want to put the buffer states in a more general
277 : * "scanner state".
278 : *
279 : * Returns the top of the stack, or NULL.
280 : */
281 : #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
282 : ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
283 : : NULL)
284 :
285 : /* Same as previous macro, but useful when we know that the buffer stack is not
286 : * NULL or when we need an lvalue. For internal use only.
287 : */
288 : #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
289 :
290 : /* yy_hold_char holds the character lost when SQLyytext is formed. */
291 : static char yy_hold_char;
292 : static int yy_n_chars; /* number of characters read into yy_ch_buf */
293 : int SQLyyleng;
294 :
295 : /* Points to current character in buffer. */
296 : static char *yy_c_buf_p = (char *) 0;
297 : static int yy_init = 0; /* whether we need to initialize */
298 : static int yy_start = 0; /* start state number */
299 :
300 : /* Flag which is used to allow SQLyywrap()'s to do buffer switches
301 : * instead of setting up a fresh SQLyyin. A bit of a hack ...
302 : */
303 : static int yy_did_buffer_switch_on_eof;
304 :
305 : void SQLyyrestart (FILE *input_file );
306 : void SQLyy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
307 : YY_BUFFER_STATE SQLyy_create_buffer (FILE *file,int size );
308 : void SQLyy_delete_buffer (YY_BUFFER_STATE b );
309 : void SQLyy_flush_buffer (YY_BUFFER_STATE b );
310 : void SQLyypush_buffer_state (YY_BUFFER_STATE new_buffer );
311 : void SQLyypop_buffer_state (void );
312 :
313 : static void SQLyyensure_buffer_stack (void );
314 : static void SQLyy_load_buffer_state (void );
315 : static void SQLyy_init_buffer (YY_BUFFER_STATE b,FILE *file );
316 :
317 : #define YY_FLUSH_BUFFER SQLyy_flush_buffer(YY_CURRENT_BUFFER )
318 :
319 : YY_BUFFER_STATE SQLyy_scan_buffer (char *base,yy_size_t size );
320 : YY_BUFFER_STATE SQLyy_scan_string (yyconst char *yy_str );
321 : YY_BUFFER_STATE SQLyy_scan_bytes (yyconst char *bytes,int len );
322 :
323 : void *SQLyyalloc (yy_size_t );
324 : void *SQLyyrealloc (void *,yy_size_t );
325 : void SQLyyfree (void * );
326 :
327 : #define yy_new_buffer SQLyy_create_buffer
328 :
329 : #define yy_set_interactive(is_interactive) \
330 : { \
331 : if ( ! YY_CURRENT_BUFFER ){ \
332 : SQLyyensure_buffer_stack (); \
333 : YY_CURRENT_BUFFER_LVALUE = \
334 : SQLyy_create_buffer(SQLyyin,YY_BUF_SIZE ); \
335 : } \
336 : YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
337 : }
338 :
339 : #define yy_set_bol(at_bol) \
340 : { \
341 : if ( ! YY_CURRENT_BUFFER ){\
342 : SQLyyensure_buffer_stack (); \
343 : YY_CURRENT_BUFFER_LVALUE = \
344 : SQLyy_create_buffer(SQLyyin,YY_BUF_SIZE ); \
345 : } \
346 : YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
347 : }
348 :
349 : #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
350 :
351 : /* Begin user sect3 */
352 :
353 : #define SQLyywrap(n) 1
354 : #define YY_SKIP_YYWRAP
355 :
356 : typedef unsigned char YY_CHAR;
357 :
358 : FILE *SQLyyin = (FILE *) 0, *SQLyyout = (FILE *) 0;
359 :
360 : typedef int yy_state_type;
361 :
362 : extern int SQLyylineno;
363 :
364 : int SQLyylineno = 1;
365 :
366 : extern char *SQLyytext;
367 : #define yytext_ptr SQLyytext
368 :
369 : static yy_state_type yy_get_previous_state (void );
370 : static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
371 : static int yy_get_next_buffer (void );
372 : static void yy_fatal_error (yyconst char msg[] );
373 :
374 : /* Done after the current pattern has been matched and before the
375 : * corresponding action - sets up SQLyytext.
376 : */
377 : #define YY_DO_BEFORE_ACTION \
378 : (yytext_ptr) = yy_bp; \
379 : SQLyyleng = (size_t) (yy_cp - yy_bp); \
380 : (yy_hold_char) = *yy_cp; \
381 : *yy_cp = '\0'; \
382 : (yy_c_buf_p) = yy_cp;
383 :
384 : #define YY_NUM_RULES 325
385 : #define YY_END_OF_BUFFER 326
386 : /* This struct is not used in this scanner,
387 : but its presence is necessary. */
388 : struct yy_trans_info
389 : {
390 : flex_int32_t yy_verify;
391 : flex_int32_t yy_nxt;
392 : };
393 : static yyconst flex_int16_t yy_accept[4504] =
394 : { 0,
395 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 : 320, 320, 326, 324, 322, 321, 324, 314, 286, 286,
397 : 278, 280, 279, 324, 324, 324, 64, 324, 324, 324,
398 : 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
399 : 324, 324, 250, 324, 324, 324, 324, 324, 324, 311,
400 : 286, 288, 287, 287, 287, 64, 287, 287, 287, 287,
401 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
402 : 287, 250, 287, 287, 287, 287, 287, 287, 313, 312,
403 : 315, 286, 286, 295, 294, 294, 294, 64, 294, 294,
404 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
405 :
406 : 294, 294, 294, 250, 294, 294, 294, 294, 294, 294,
407 : 286, 295, 324, 320, 320, 320, 320, 318, 286, 286,
408 : 286, 278, 280, 279, 320, 320, 320, 64, 320, 320,
409 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
410 : 320, 320, 320, 250, 320, 320, 320, 320, 320, 319,
411 : 320, 322, 284, 0, 281, 283, 282, 0, 0, 0,
412 : 0, 0, 0, 9, 13, 0, 0, 0, 0, 0,
413 : 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
414 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415 : 0, 0, 0, 0, 101, 0, 0, 0, 0, 0,
416 :
417 : 0, 0, 114, 123, 0, 0, 0, 0, 0, 0,
418 : 137, 0, 0, 0, 0, 0, 0, 0, 0, 157,
419 : 0, 0, 0, 0, 168, 170, 0, 172, 0, 175,
420 : 0, 0, 0, 0, 0, 184, 0, 0, 0, 0,
421 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 : 0, 0, 0, 0, 0, 0, 0, 0, 242, 0,
423 : 249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
424 : 0, 0, 0, 285, 289, 0, 290, 288, 0, 287,
425 : 287, 287, 287, 287, 287, 287, 9, 13, 287, 287,
426 : 287, 287, 287, 287, 28, 287, 287, 287, 287, 287,
427 :
428 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
429 : 287, 287, 287, 287, 287, 287, 287, 101, 287, 287,
430 : 287, 287, 287, 287, 287, 114, 123, 287, 287, 287,
431 : 287, 287, 287, 137, 287, 287, 287, 287, 287, 287,
432 : 287, 287, 157, 287, 287, 287, 287, 168, 170, 287,
433 : 172, 287, 175, 287, 287, 287, 287, 287, 184, 287,
434 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
435 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
436 : 287, 242, 287, 249, 287, 287, 287, 287, 287, 287,
437 : 287, 287, 287, 287, 287, 287, 310, 300, 310, 310,
438 :
439 : 310, 295, 310, 294, 294, 294, 294, 294, 294, 294,
440 : 9, 13, 294, 294, 294, 294, 294, 294, 28, 294,
441 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
442 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
443 : 294, 101, 294, 294, 294, 294, 294, 294, 294, 114,
444 : 123, 294, 294, 294, 294, 294, 294, 137, 294, 294,
445 : 294, 294, 294, 294, 294, 294, 157, 294, 294, 294,
446 : 294, 168, 170, 294, 172, 294, 175, 294, 294, 294,
447 : 294, 294, 184, 294, 294, 294, 294, 294, 294, 294,
448 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
449 :
450 : 294, 294, 294, 294, 294, 242, 294, 249, 294, 294,
451 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
452 : 306, 310, 310, 310, 295, 310, 0, 316, 320, 320,
453 : 284, 320, 281, 283, 282, 320, 320, 320, 320, 320,
454 : 320, 9, 13, 320, 320, 320, 320, 320, 320, 28,
455 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
456 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
457 : 320, 320, 101, 320, 320, 320, 320, 320, 320, 320,
458 : 114, 123, 320, 320, 320, 320, 320, 320, 137, 320,
459 : 320, 320, 320, 320, 320, 320, 320, 157, 320, 320,
460 :
461 : 320, 320, 168, 170, 320, 172, 320, 175, 320, 320,
462 : 320, 320, 320, 184, 320, 320, 320, 320, 320, 320,
463 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
464 : 320, 320, 320, 320, 320, 320, 242, 320, 249, 320,
465 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
466 : 320, 285, 0, 323, 1, 0, 0, 4, 0, 6,
467 : 7, 0, 10, 0, 0, 0, 0, 18, 0, 0,
468 : 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
469 : 0, 0, 0, 0, 0, 0, 45, 46, 0, 0,
470 : 0, 0, 0, 0, 68, 73, 0, 0, 0, 0,
471 :
472 : 0, 0, 0, 0, 0, 0, 0, 87, 0, 0,
473 : 0, 0, 93, 0, 0, 0, 0, 0, 0, 103,
474 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475 : 0, 118, 0, 125, 126, 0, 0, 0, 0, 0,
476 : 0, 0, 0, 0, 140, 0, 0, 145, 146, 148,
477 : 0, 0, 0, 0, 155, 0, 158, 159, 0, 0,
478 : 0, 0, 0, 0, 0, 171, 0, 0, 0, 0,
479 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 : 207, 0, 0, 0, 0, 0, 215, 0, 218, 0,
482 :
483 : 0, 0, 0, 0, 0, 0, 0, 0, 228, 0,
484 : 0, 232, 0, 0, 0, 0, 0, 0, 0, 0,
485 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 : 0, 0, 0, 0, 0, 0, 0, 293, 290, 0,
487 : 0, 291, 1, 287, 287, 4, 287, 6, 7, 287,
488 : 10, 287, 287, 287, 287, 18, 287, 287, 287, 287,
489 : 287, 24, 287, 287, 287, 287, 287, 287, 287, 287,
490 : 287, 287, 287, 287, 45, 46, 287, 287, 287, 287,
491 : 287, 287, 68, 73, 287, 287, 287, 287, 287, 287,
492 : 287, 287, 287, 287, 287, 87, 287, 287, 287, 287,
493 :
494 : 93, 287, 287, 287, 287, 287, 287, 103, 287, 287,
495 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 118,
496 : 287, 125, 126, 287, 287, 287, 287, 287, 287, 287,
497 : 287, 287, 140, 287, 287, 145, 146, 148, 287, 287,
498 : 287, 287, 155, 287, 158, 159, 287, 287, 287, 287,
499 : 287, 287, 287, 171, 287, 287, 287, 287, 287, 287,
500 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
501 : 287, 287, 287, 287, 287, 287, 287, 287, 207, 287,
502 : 287, 287, 287, 287, 215, 287, 218, 287, 287, 287,
503 : 287, 287, 287, 287, 287, 287, 228, 287, 287, 232,
504 :
505 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
506 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
507 : 287, 287, 287, 287, 0, 303, 310, 298, 310, 295,
508 : 0, 301, 1, 294, 294, 4, 294, 6, 7, 294,
509 : 10, 294, 294, 294, 294, 18, 294, 294, 294, 294,
510 : 294, 24, 294, 294, 294, 294, 294, 294, 294, 294,
511 : 294, 294, 294, 294, 45, 46, 294, 294, 294, 294,
512 : 294, 294, 68, 73, 294, 294, 294, 294, 294, 294,
513 : 294, 294, 294, 294, 294, 87, 294, 294, 294, 294,
514 : 93, 294, 294, 294, 294, 294, 294, 103, 294, 294,
515 :
516 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 118,
517 : 294, 125, 126, 294, 294, 294, 294, 294, 294, 294,
518 : 294, 294, 140, 294, 294, 145, 146, 148, 294, 294,
519 : 294, 294, 155, 294, 158, 159, 294, 294, 294, 294,
520 : 294, 294, 294, 171, 294, 294, 294, 294, 294, 294,
521 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
522 : 294, 294, 294, 294, 294, 294, 294, 294, 207, 294,
523 : 294, 294, 294, 294, 215, 294, 218, 294, 294, 294,
524 : 294, 294, 294, 294, 294, 294, 228, 294, 294, 232,
525 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
526 :
527 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
528 : 294, 294, 294, 294, 0, 309, 304, 310, 310, 295,
529 : 0, 307, 316, 0, 316, 320, 320, 1, 320, 320,
530 : 4, 320, 6, 7, 320, 10, 320, 320, 320, 320,
531 : 18, 320, 320, 320, 320, 320, 24, 320, 320, 320,
532 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 45,
533 : 46, 320, 320, 320, 320, 320, 320, 68, 73, 320,
534 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
535 : 87, 320, 320, 320, 320, 93, 320, 320, 320, 320,
536 : 320, 320, 103, 320, 320, 320, 320, 320, 320, 320,
537 :
538 : 320, 320, 320, 320, 118, 320, 125, 126, 320, 320,
539 : 320, 320, 320, 320, 320, 320, 320, 140, 320, 320,
540 : 145, 146, 148, 320, 320, 320, 320, 155, 320, 158,
541 : 159, 320, 320, 320, 320, 320, 320, 320, 171, 320,
542 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
543 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
544 : 320, 320, 320, 207, 320, 320, 320, 320, 320, 215,
545 : 320, 218, 320, 320, 320, 320, 320, 320, 320, 320,
546 : 320, 228, 320, 320, 232, 320, 320, 320, 320, 320,
547 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
548 :
549 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 2,
550 : 0, 0, 0, 0, 12, 14, 0, 0, 0, 0,
551 : 0, 0, 0, 0, 26, 27, 29, 30, 31, 0,
552 : 33, 0, 37, 0, 0, 0, 0, 0, 0, 0,
553 : 0, 0, 0, 0, 0, 0, 0, 65, 0, 0,
554 : 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,
555 : 84, 85, 86, 0, 0, 0, 0, 0, 0, 0,
556 : 0, 0, 0, 0, 0, 0, 0, 106, 107, 0,
557 : 0, 0, 0, 112, 0, 0, 0, 0, 0, 122,
558 : 124, 0, 128, 0, 131, 133, 0, 135, 0, 0,
559 :
560 : 0, 141, 0, 0, 0, 0, 0, 0, 0, 0,
561 : 156, 0, 0, 162, 0, 0, 0, 0, 173, 0,
562 : 0, 0, 0, 179, 0, 0, 0, 0, 0, 0,
563 : 0, 0, 0, 0, 0, 195, 0, 197, 198, 0,
564 : 0, 0, 0, 0, 0, 0, 208, 0, 0, 0,
565 : 0, 0, 0, 217, 216, 0, 220, 0, 0, 223,
566 : 0, 0, 0, 0, 0, 233, 234, 235, 0, 0,
567 : 0, 246, 247, 0, 0, 0, 0, 0, 0, 0,
568 : 0, 0, 259, 0, 0, 0, 0, 0, 0, 268,
569 : 269, 270, 0, 272, 275, 276, 277, 0, 292, 2,
570 :
571 : 287, 287, 287, 287, 12, 14, 287, 287, 287, 287,
572 : 287, 287, 287, 287, 26, 27, 29, 30, 31, 287,
573 : 33, 287, 37, 287, 287, 287, 287, 287, 287, 287,
574 : 287, 287, 287, 287, 287, 287, 287, 65, 287, 287,
575 : 287, 287, 287, 287, 287, 287, 80, 287, 287, 287,
576 : 84, 85, 86, 287, 287, 287, 287, 287, 287, 287,
577 : 287, 287, 287, 287, 287, 287, 287, 106, 107, 287,
578 : 287, 287, 287, 112, 287, 287, 287, 287, 287, 122,
579 : 124, 287, 128, 287, 131, 133, 287, 135, 287, 287,
580 : 287, 141, 287, 287, 287, 287, 287, 287, 287, 287,
581 :
582 : 156, 287, 287, 162, 287, 287, 287, 287, 173, 287,
583 : 287, 287, 287, 179, 287, 287, 287, 287, 287, 287,
584 : 287, 287, 287, 287, 287, 195, 287, 197, 198, 287,
585 : 287, 287, 287, 287, 287, 287, 208, 287, 287, 287,
586 : 287, 287, 287, 217, 216, 287, 220, 287, 287, 223,
587 : 287, 287, 287, 287, 287, 233, 234, 235, 287, 287,
588 : 287, 246, 247, 287, 287, 287, 287, 287, 287, 287,
589 : 287, 287, 259, 287, 287, 287, 287, 287, 287, 268,
590 : 269, 270, 287, 272, 275, 276, 277, 303, 310, 0,
591 : 302, 295, 301, 2, 294, 294, 294, 294, 12, 14,
592 :
593 : 294, 294, 294, 294, 294, 294, 294, 294, 26, 27,
594 : 29, 30, 31, 294, 33, 294, 37, 294, 294, 294,
595 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
596 : 294, 65, 294, 294, 294, 294, 294, 294, 294, 294,
597 : 80, 294, 294, 294, 84, 85, 86, 294, 294, 294,
598 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
599 : 294, 106, 107, 294, 294, 294, 294, 112, 294, 294,
600 : 294, 294, 294, 122, 124, 294, 128, 294, 131, 133,
601 : 294, 135, 294, 294, 294, 141, 294, 294, 294, 294,
602 : 294, 294, 294, 294, 156, 294, 294, 162, 294, 294,
603 :
604 : 294, 294, 173, 294, 294, 294, 294, 179, 294, 294,
605 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 195,
606 : 294, 197, 198, 294, 294, 294, 294, 294, 294, 294,
607 : 208, 294, 294, 294, 294, 294, 294, 217, 216, 294,
608 : 220, 294, 294, 223, 294, 294, 294, 294, 294, 233,
609 : 234, 235, 294, 294, 294, 246, 247, 294, 294, 294,
610 : 294, 294, 294, 294, 294, 294, 259, 294, 294, 294,
611 : 294, 294, 294, 268, 269, 270, 294, 272, 275, 276,
612 : 277, 309, 0, 308, 310, 295, 307, 0, 316, 2,
613 : 320, 320, 320, 320, 12, 14, 320, 320, 320, 320,
614 :
615 : 320, 320, 320, 320, 26, 27, 29, 30, 31, 320,
616 : 33, 320, 37, 320, 320, 320, 320, 320, 320, 320,
617 : 320, 320, 320, 320, 320, 320, 320, 65, 320, 320,
618 : 320, 320, 320, 320, 320, 320, 80, 320, 320, 320,
619 : 84, 85, 86, 320, 320, 320, 320, 320, 320, 320,
620 : 320, 320, 320, 320, 320, 320, 320, 106, 107, 320,
621 : 320, 320, 320, 112, 320, 320, 320, 320, 320, 122,
622 : 124, 320, 128, 320, 131, 133, 320, 135, 320, 320,
623 : 320, 141, 320, 320, 320, 320, 320, 320, 320, 320,
624 : 156, 320, 320, 162, 320, 320, 320, 320, 173, 320,
625 :
626 : 320, 320, 320, 179, 320, 320, 320, 320, 320, 320,
627 : 320, 320, 320, 320, 320, 195, 320, 197, 198, 320,
628 : 320, 320, 320, 320, 320, 320, 208, 320, 320, 320,
629 : 320, 320, 320, 217, 216, 320, 220, 320, 320, 223,
630 : 320, 320, 320, 320, 320, 233, 234, 235, 320, 320,
631 : 320, 246, 247, 320, 320, 320, 320, 320, 320, 320,
632 : 320, 320, 259, 320, 320, 320, 320, 320, 320, 268,
633 : 269, 270, 320, 272, 275, 276, 277, 3, 5, 0,
634 : 11, 15, 0, 0, 0, 20, 0, 0, 0, 0,
635 : 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
636 :
637 : 0, 47, 0, 49, 0, 0, 0, 0, 0, 0,
638 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
639 : 0, 0, 0, 88, 0, 0, 0, 0, 95, 96,
640 : 97, 99, 100, 0, 0, 105, 0, 109, 110, 0,
641 : 0, 115, 0, 0, 0, 0, 127, 0, 130, 0,
642 : 0, 136, 138, 0, 142, 143, 144, 0, 149, 0,
643 : 0, 153, 154, 0, 161, 0, 164, 0, 0, 0,
644 : 0, 0, 176, 0, 178, 0, 0, 0, 186, 0,
645 : 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
646 : 0, 0, 210, 0, 205, 0, 211, 0, 0, 0,
647 :
648 : 0, 0, 0, 222, 0, 0, 0, 0, 231, 0,
649 : 0, 0, 0, 0, 0, 0, 251, 0, 253, 0,
650 : 0, 0, 257, 258, 260, 266, 0, 0, 0, 0,
651 : 0, 271, 0, 0, 3, 5, 287, 11, 15, 287,
652 : 287, 287, 20, 287, 287, 287, 287, 287, 287, 287,
653 : 36, 287, 287, 287, 287, 287, 287, 287, 47, 287,
654 : 49, 287, 287, 287, 287, 287, 287, 287, 287, 287,
655 : 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
656 : 88, 287, 287, 287, 287, 95, 96, 97, 99, 100,
657 : 287, 287, 105, 287, 109, 110, 287, 287, 115, 287,
658 :
659 : 287, 287, 287, 127, 287, 130, 287, 287, 136, 138,
660 : 287, 142, 143, 144, 287, 149, 287, 287, 153, 154,
661 : 287, 161, 287, 164, 287, 287, 287, 287, 287, 176,
662 : 287, 178, 287, 287, 287, 186, 287, 287, 287, 287,
663 : 287, 287, 287, 287, 196, 287, 287, 287, 287, 210,
664 : 287, 205, 287, 211, 287, 287, 287, 287, 287, 287,
665 : 222, 287, 287, 287, 287, 231, 287, 287, 287, 287,
666 : 287, 287, 287, 251, 287, 253, 287, 287, 287, 257,
667 : 258, 260, 266, 287, 287, 287, 287, 287, 271, 287,
668 : 287, 296, 302, 3, 5, 294, 11, 15, 294, 294,
669 :
670 : 294, 20, 294, 294, 294, 294, 294, 294, 294, 36,
671 : 294, 294, 294, 294, 294, 294, 294, 47, 294, 49,
672 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
673 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 88,
674 : 294, 294, 294, 294, 95, 96, 97, 99, 100, 294,
675 : 294, 105, 294, 109, 110, 294, 294, 115, 294, 294,
676 : 294, 294, 127, 294, 130, 294, 294, 136, 138, 294,
677 : 142, 143, 144, 294, 149, 294, 294, 153, 154, 294,
678 : 161, 294, 164, 294, 294, 294, 294, 294, 176, 294,
679 : 178, 294, 294, 294, 186, 294, 294, 294, 294, 294,
680 :
681 : 294, 294, 294, 196, 294, 294, 294, 294, 210, 294,
682 : 205, 294, 211, 294, 294, 294, 294, 294, 294, 222,
683 : 294, 294, 294, 294, 231, 294, 294, 294, 294, 294,
684 : 294, 294, 251, 294, 253, 294, 294, 294, 257, 258,
685 : 260, 266, 294, 294, 294, 294, 294, 271, 294, 294,
686 : 308, 297, 0, 317, 3, 5, 320, 11, 15, 320,
687 : 320, 320, 20, 320, 320, 320, 320, 320, 320, 320,
688 : 36, 320, 320, 320, 320, 320, 320, 320, 47, 320,
689 : 49, 320, 320, 320, 320, 320, 320, 320, 320, 320,
690 : 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
691 :
692 : 88, 320, 320, 320, 320, 95, 96, 97, 99, 100,
693 : 320, 320, 105, 320, 109, 110, 320, 320, 115, 320,
694 : 320, 320, 320, 127, 320, 130, 320, 320, 136, 138,
695 : 320, 142, 143, 144, 320, 149, 320, 320, 153, 154,
696 : 320, 161, 320, 164, 320, 320, 320, 320, 320, 176,
697 : 320, 178, 320, 320, 320, 186, 320, 320, 320, 320,
698 : 320, 320, 320, 320, 196, 320, 320, 320, 320, 210,
699 : 320, 205, 320, 211, 320, 320, 320, 320, 320, 320,
700 : 222, 320, 320, 320, 320, 231, 320, 320, 320, 320,
701 : 320, 320, 320, 251, 320, 253, 320, 320, 320, 257,
702 :
703 : 258, 260, 266, 320, 320, 320, 320, 320, 271, 320,
704 : 320, 0, 16, 0, 19, 0, 22, 23, 0, 0,
705 : 0, 0, 0, 0, 0, 41, 42, 0, 0, 48,
706 : 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
707 : 0, 0, 0, 0, 0, 78, 0, 0, 0, 83,
708 : 89, 90, 0, 92, 0, 0, 0, 0, 108, 111,
709 : 113, 116, 0, 0, 0, 0, 0, 0, 134, 139,
710 : 147, 0, 0, 0, 0, 163, 0, 166, 0, 169,
711 : 174, 177, 0, 0, 0, 0, 0, 0, 0, 0,
712 : 192, 0, 0, 0, 201, 0, 0, 0, 0, 0,
713 :
714 : 212, 213, 214, 0, 0, 0, 0, 0, 0, 0,
715 : 0, 0, 0, 0, 0, 0, 0, 0, 254, 0,
716 : 256, 267, 0, 0, 0, 0, 0, 273, 0, 287,
717 : 16, 287, 19, 287, 22, 23, 287, 287, 287, 287,
718 : 287, 287, 287, 41, 42, 287, 287, 48, 287, 287,
719 : 287, 63, 287, 287, 287, 287, 287, 287, 287, 287,
720 : 287, 287, 287, 78, 287, 287, 287, 83, 89, 90,
721 : 287, 92, 287, 287, 287, 287, 108, 111, 113, 116,
722 : 287, 287, 287, 287, 287, 287, 134, 139, 147, 287,
723 : 287, 287, 287, 163, 287, 166, 287, 169, 174, 177,
724 :
725 : 287, 287, 287, 287, 287, 287, 287, 287, 192, 287,
726 : 287, 287, 201, 287, 287, 287, 287, 287, 212, 213,
727 : 214, 287, 287, 287, 287, 287, 287, 287, 287, 287,
728 : 287, 287, 287, 287, 287, 287, 254, 287, 256, 267,
729 : 287, 287, 287, 287, 287, 273, 287, 310, 294, 16,
730 : 294, 19, 294, 22, 23, 294, 294, 294, 294, 294,
731 : 294, 294, 41, 42, 294, 294, 48, 294, 294, 294,
732 : 63, 294, 294, 294, 294, 294, 294, 294, 294, 294,
733 : 294, 294, 78, 294, 294, 294, 83, 89, 90, 294,
734 : 92, 294, 294, 294, 294, 108, 111, 113, 116, 294,
735 :
736 : 294, 294, 294, 294, 294, 134, 139, 147, 294, 294,
737 : 294, 294, 163, 294, 166, 294, 169, 174, 177, 294,
738 : 294, 294, 294, 294, 294, 294, 294, 192, 294, 294,
739 : 294, 201, 294, 294, 294, 294, 294, 212, 213, 214,
740 : 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
741 : 294, 294, 294, 294, 294, 254, 294, 256, 267, 294,
742 : 294, 294, 294, 294, 273, 294, 310, 317, 317, 320,
743 : 16, 320, 19, 320, 22, 23, 320, 320, 320, 320,
744 : 320, 320, 320, 41, 42, 320, 320, 48, 320, 320,
745 : 320, 63, 320, 320, 320, 320, 320, 320, 320, 320,
746 :
747 : 320, 320, 320, 78, 320, 320, 320, 83, 89, 90,
748 : 320, 92, 320, 320, 320, 320, 108, 111, 113, 116,
749 : 320, 320, 320, 320, 320, 320, 134, 139, 147, 320,
750 : 320, 320, 320, 163, 320, 166, 320, 169, 174, 177,
751 : 320, 320, 320, 320, 320, 320, 320, 320, 192, 320,
752 : 320, 320, 201, 320, 320, 320, 320, 320, 212, 213,
753 : 214, 320, 320, 320, 320, 320, 320, 320, 320, 320,
754 : 320, 320, 320, 320, 320, 320, 254, 320, 256, 267,
755 : 320, 320, 320, 320, 320, 273, 320, 0, 0, 21,
756 : 0, 32, 0, 0, 0, 39, 40, 0, 44, 0,
757 :
758 : 59, 51, 61, 0, 0, 69, 0, 0, 0, 74,
759 : 75, 76, 77, 0, 0, 0, 91, 94, 0, 0,
760 : 104, 117, 118, 0, 0, 0, 132, 0, 0, 152,
761 : 0, 165, 0, 0, 0, 0, 0, 0, 189, 0,
762 : 0, 193, 194, 0, 202, 203, 0, 0, 0, 0,
763 : 0, 221, 0, 0, 0, 0, 0, 0, 0, 0,
764 : 0, 245, 0, 0, 255, 0, 262, 263, 264, 0,
765 : 274, 287, 287, 21, 287, 32, 287, 287, 287, 39,
766 : 40, 287, 44, 287, 59, 51, 61, 287, 287, 69,
767 : 287, 287, 287, 74, 75, 76, 77, 287, 287, 287,
768 :
769 : 91, 94, 287, 287, 104, 117, 118, 287, 287, 287,
770 : 132, 287, 287, 152, 287, 165, 287, 287, 287, 287,
771 : 287, 287, 189, 287, 287, 193, 194, 287, 202, 203,
772 : 287, 287, 287, 287, 287, 221, 287, 287, 287, 287,
773 : 287, 287, 287, 287, 287, 245, 287, 287, 255, 287,
774 : 262, 263, 264, 287, 274, 299, 294, 294, 21, 294,
775 : 32, 294, 294, 294, 39, 40, 294, 44, 294, 59,
776 : 51, 61, 294, 294, 69, 294, 294, 294, 74, 75,
777 : 76, 77, 294, 294, 294, 91, 94, 294, 294, 104,
778 : 117, 118, 294, 294, 294, 132, 294, 294, 152, 294,
779 :
780 : 165, 294, 294, 294, 294, 294, 294, 189, 294, 294,
781 : 193, 194, 294, 202, 203, 294, 294, 294, 294, 294,
782 : 221, 294, 294, 294, 294, 294, 294, 294, 294, 294,
783 : 245, 294, 294, 255, 294, 262, 263, 264, 294, 274,
784 : 305, 317, 320, 320, 21, 320, 32, 320, 320, 320,
785 : 39, 40, 320, 44, 320, 59, 51, 61, 320, 320,
786 : 69, 320, 320, 320, 74, 75, 76, 77, 320, 320,
787 : 320, 91, 94, 320, 320, 104, 117, 118, 320, 320,
788 : 320, 132, 320, 320, 152, 320, 165, 320, 320, 320,
789 : 320, 320, 320, 189, 320, 320, 193, 194, 320, 202,
790 :
791 : 203, 320, 320, 320, 320, 320, 221, 320, 320, 320,
792 : 320, 320, 320, 320, 320, 320, 245, 320, 320, 255,
793 : 320, 262, 263, 264, 320, 274, 0, 0, 0, 0,
794 : 0, 38, 43, 0, 0, 66, 0, 0, 0, 0,
795 : 0, 0, 82, 0, 0, 0, 120, 0, 0, 151,
796 : 0, 0, 0, 0, 0, 185, 0, 0, 0, 0,
797 : 0, 204, 0, 0, 0, 219, 0, 0, 0, 0,
798 : 0, 0, 0, 0, 243, 0, 248, 0, 0, 265,
799 : 287, 287, 287, 287, 287, 38, 43, 287, 287, 66,
800 : 287, 287, 287, 287, 287, 287, 82, 287, 287, 287,
801 :
802 : 120, 287, 287, 151, 287, 287, 287, 287, 287, 185,
803 : 287, 287, 287, 287, 287, 204, 287, 287, 287, 219,
804 : 287, 287, 287, 287, 287, 287, 287, 287, 243, 287,
805 : 248, 287, 287, 265, 294, 294, 294, 294, 294, 38,
806 : 43, 294, 294, 66, 294, 294, 294, 294, 294, 294,
807 : 82, 294, 294, 294, 120, 294, 294, 151, 294, 294,
808 : 294, 294, 294, 185, 294, 294, 294, 294, 294, 204,
809 : 294, 294, 294, 219, 294, 294, 294, 294, 294, 294,
810 : 294, 294, 243, 294, 248, 294, 294, 265, 320, 320,
811 : 320, 320, 320, 38, 43, 320, 320, 66, 320, 320,
812 :
813 : 320, 320, 320, 320, 82, 320, 320, 320, 120, 320,
814 : 320, 151, 320, 320, 320, 320, 320, 185, 320, 320,
815 : 320, 320, 320, 204, 320, 320, 320, 219, 320, 320,
816 : 320, 320, 320, 320, 320, 320, 243, 320, 248, 320,
817 : 320, 265, 8, 0, 0, 34, 0, 50, 0, 0,
818 : 0, 0, 0, 0, 0, 67, 0, 71, 72, 0,
819 : 0, 0, 102, 119, 0, 150, 160, 0, 180, 0,
820 : 0, 187, 188, 0, 191, 0, 0, 0, 0, 0,
821 : 226, 0, 0, 227, 0, 236, 239, 0, 244, 252,
822 : 261, 8, 287, 287, 34, 287, 50, 287, 287, 287,
823 :
824 : 287, 287, 287, 287, 67, 287, 71, 72, 287, 287,
825 : 287, 102, 119, 287, 150, 160, 287, 180, 287, 287,
826 : 187, 188, 287, 191, 287, 287, 287, 287, 287, 226,
827 : 287, 287, 227, 287, 236, 239, 287, 244, 252, 261,
828 : 8, 294, 294, 34, 294, 50, 294, 294, 294, 294,
829 : 294, 294, 294, 67, 294, 71, 72, 294, 294, 294,
830 : 102, 119, 294, 150, 160, 294, 180, 294, 294, 187,
831 : 188, 294, 191, 294, 294, 294, 294, 294, 226, 294,
832 : 294, 227, 294, 236, 239, 294, 244, 252, 261, 8,
833 : 320, 320, 34, 320, 50, 320, 320, 320, 320, 320,
834 :
835 : 320, 320, 67, 320, 71, 72, 320, 320, 320, 102,
836 : 119, 320, 150, 160, 320, 180, 320, 320, 187, 188,
837 : 320, 191, 320, 320, 320, 320, 320, 226, 320, 320,
838 : 227, 320, 236, 239, 320, 244, 252, 261, 0, 25,
839 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
840 : 79, 81, 0, 0, 129, 0, 0, 0, 190, 199,
841 : 0, 206, 209, 0, 224, 0, 0, 0, 0, 0,
842 : 0, 287, 25, 287, 287, 287, 287, 287, 287, 287,
843 : 287, 287, 70, 79, 81, 287, 287, 129, 287, 287,
844 : 287, 190, 199, 287, 206, 209, 287, 224, 287, 287,
845 :
846 : 287, 287, 287, 287, 294, 25, 294, 294, 294, 294,
847 : 294, 294, 294, 294, 294, 70, 79, 81, 294, 294,
848 : 129, 294, 294, 294, 190, 199, 294, 206, 209, 294,
849 : 224, 294, 294, 294, 294, 294, 294, 320, 25, 320,
850 : 320, 320, 320, 320, 320, 320, 320, 320, 70, 79,
851 : 81, 320, 320, 129, 320, 320, 320, 190, 199, 320,
852 : 206, 209, 320, 224, 320, 320, 320, 320, 320, 320,
853 : 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
854 : 98, 0, 0, 0, 0, 200, 0, 225, 230, 0,
855 : 0, 0, 0, 287, 35, 287, 287, 287, 287, 287,
856 :
857 : 287, 287, 287, 98, 287, 287, 287, 287, 200, 287,
858 : 225, 230, 287, 287, 287, 287, 294, 35, 294, 294,
859 : 294, 294, 294, 294, 294, 294, 98, 294, 294, 294,
860 : 294, 200, 294, 225, 230, 294, 294, 294, 294, 320,
861 : 35, 320, 320, 320, 320, 320, 320, 320, 320, 98,
862 : 320, 320, 320, 320, 200, 320, 225, 230, 320, 320,
863 : 320, 320, 0, 0, 52, 0, 55, 56, 0, 60,
864 : 58, 121, 167, 0, 0, 181, 229, 237, 0, 0,
865 : 0, 287, 287, 52, 287, 55, 56, 287, 60, 58,
866 : 121, 167, 287, 287, 181, 229, 237, 287, 287, 287,
867 :
868 : 294, 294, 52, 294, 55, 56, 294, 60, 58, 121,
869 : 167, 294, 294, 181, 229, 237, 294, 294, 294, 320,
870 : 320, 52, 320, 55, 56, 320, 60, 58, 121, 167,
871 : 320, 320, 181, 229, 237, 320, 320, 320, 17, 0,
872 : 0, 0, 0, 0, 0, 238, 240, 0, 17, 287,
873 : 287, 287, 287, 287, 287, 238, 240, 287, 17, 294,
874 : 294, 294, 294, 294, 294, 238, 240, 294, 17, 320,
875 : 320, 320, 320, 320, 320, 238, 240, 320, 0, 0,
876 : 57, 0, 0, 0, 0, 287, 287, 57, 287, 287,
877 : 287, 287, 294, 294, 57, 294, 294, 294, 294, 320,
878 :
879 : 320, 57, 320, 320, 320, 320, 53, 0, 0, 182,
880 : 183, 241, 53, 287, 287, 182, 183, 241, 53, 294,
881 : 294, 182, 183, 241, 53, 320, 320, 182, 183, 241,
882 : 0, 0, 287, 287, 294, 294, 320, 320, 0, 62,
883 : 287, 62, 294, 62, 320, 62, 0, 287, 294, 320,
884 : 0, 287, 294, 320, 0, 287, 294, 320, 0, 287,
885 : 294, 320, 0, 287, 294, 320, 0, 287, 294, 320,
886 : 0, 287, 294, 320, 0, 287, 294, 320, 0, 287,
887 : 294, 320, 0, 287, 294, 320, 0, 287, 294, 320,
888 : 0, 287, 294, 320, 0, 287, 294, 320, 54, 54,
889 :
890 : 54, 54, 0
891 : } ;
892 :
893 : static yyconst flex_int32_t yy_ec[256] =
894 : { 0,
895 : 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
896 : 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
897 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
898 : 1, 4, 5, 6, 7, 1, 8, 1, 9, 10,
899 : 10, 11, 12, 13, 14, 15, 10, 16, 17, 18,
900 : 19, 19, 19, 19, 19, 19, 19, 20, 10, 21,
901 : 22, 23, 24, 1, 25, 26, 27, 28, 29, 30,
902 : 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
903 : 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
904 : 51, 1, 1, 1, 52, 53, 54, 55, 56, 57,
905 :
906 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
907 : 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
908 : 78, 79, 10, 80, 10, 1, 1, 81, 81, 81,
909 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
910 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
911 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
912 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
913 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
914 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
915 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
916 :
917 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
918 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
919 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
920 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
921 : 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
922 : 81, 81, 81, 1, 1
923 : } ;
924 :
925 : static yyconst flex_int32_t yy_meta[82] =
926 : { 0,
927 : 1, 1, 1, 2, 1, 3, 1, 4, 3, 1,
928 : 5, 1, 4, 1, 4, 6, 6, 6, 6, 3,
929 : 1, 1, 1, 7, 6, 6, 6, 6, 6, 6,
930 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
931 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
932 : 3, 6, 1, 6, 6, 6, 6, 6, 6, 6,
933 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
934 : 6, 6, 6, 6, 6, 6, 6, 6, 6, 1,
935 : 8
936 : } ;
937 :
938 : static yyconst flex_int16_t yy_base[4512] =
939 : { 0,
940 : 0, 0, 81, 0, 162, 0, 231, 238, 245, 252,
941 : 271, 0, 1216, 9485, 351, 9485, 1180, 9485, 9485, 1184,
942 : 334, 9485, 1170, 332, 353, 407, 383, 428, 481, 312,
943 : 341, 395, 322, 335, 531, 459, 532, 581, 589, 320,
944 : 591, 638, 541, 469, 394, 600, 338, 330, 1072, 9485,
945 : 441, 472, 691, 637, 742, 715, 763, 816, 329, 477,
946 : 754, 333, 352, 866, 765, 867, 916, 814, 339, 920,
947 : 967, 876, 930, 647, 652, 0, 356, 395, 9485, 9485,
948 : 9485, 0, 1001, 1031, 1064, 1085, 1139, 1115, 1050, 1189,
949 : 398, 479, 967, 405, 421, 1239, 769, 1240, 1289, 1137,
950 :
951 : 441, 999, 1338, 1187, 1118, 697, 1213, 0, 479, 472,
952 : 1047, 1373, 707, 0, 426, 0, 1127, 9485, 0, 1132,
953 : 9485, 401, 0, 1111, 1406, 1427, 1481, 1457, 1392, 1531,
954 : 480, 528, 1129, 495, 521, 1581, 809, 1582, 1631, 1479,
955 : 517, 1293, 1680, 1529, 1460, 706, 1555, 536, 529, 9485,
956 : 1052, 481, 9485, 1092, 9485, 9485, 9485, 529, 542, 625,
957 : 800, 704, 632, 762, 821, 646, 710, 1024, 1286, 704,
958 : 732, 9485, 814, 758, 873, 754, 1734, 868, 1014, 1038,
959 : 1696, 1069, 806, 861, 876, 908, 927, 936, 937, 1341,
960 : 977, 1008, 1032, 1062, 9485, 1179, 1074, 1237, 1126, 1080,
961 :
962 : 1114, 1165, 1722, 9485, 1173, 1160, 1268, 1208, 1484, 1306,
963 : 9485, 1398, 1219, 1228, 1253, 1367, 1248, 1348, 1454, 1501,
964 : 1571, 1594, 1335, 1349, 1388, 9485, 1398, 1403, 1397, 1415,
965 : 1475, 1490, 1528, 1524, 1570, 9485, 1575, 1633, 1589, 1599,
966 : 1636, 1744, 1603, 1634, 1626, 1650, 1737, 1754, 1658, 1677,
967 : 1664, 1673, 1758, 1785, 1673, 1779, 1699, 1789, 9485, 1794,
968 : 9485, 1708, 1797, 1796, 1812, 1789, 1718, 1738, 1762, 1784,
969 : 1787, 1810, 1800, 9485, 1859, 1867, 1873, 1878, 1887, 0,
970 : 1799, 1804, 1800, 1864, 1870, 1838, 1883, 1886, 1868, 1882,
971 : 1884, 1915, 1879, 1876, 0, 1890, 1888, 1909, 1883, 1964,
972 :
973 : 1927, 1927, 1921, 1983, 1931, 1878, 1919, 1941, 1933, 1949,
974 : 1956, 1957, 1984, 1955, 1952, 1962, 1977, 0, 1999, 1983,
975 : 1991, 2022, 1977, 2004, 2016, 2022, 0, 2025, 2010, 2037,
976 : 2037, 2044, 2040, 0, 2054, 2025, 2023, 2046, 2064, 2042,
977 : 2080, 2070, 2075, 2091, 2089, 2065, 2061, 2077, 0, 2092,
978 : 2091, 2085, 2104, 2101, 2091, 2108, 2096, 2097, 0, 2097,
979 : 2141, 2116, 2118, 2122, 2151, 2126, 2148, 2117, 2131, 2171,
980 : 2152, 2150, 2163, 2152, 2140, 2193, 2191, 2144, 2200, 2167,
981 : 2203, 0, 2208, 0, 2176, 2216, 2220, 2239, 2216, 2205,
982 : 2216, 2225, 2212, 2217, 2240, 2228, 0, 2286, 2294, 1270,
983 :
984 : 2300, 2307, 2316, 0, 2249, 2259, 2265, 2295, 2312, 2272,
985 : 2314, 2312, 2298, 2314, 2318, 2315, 2311, 2308, 0, 2320,
986 : 2321, 2364, 2316, 2398, 2328, 2358, 2353, 2389, 2374, 2327,
987 : 2360, 2381, 2366, 2382, 2384, 2386, 2433, 2385, 2386, 2405,
988 : 2412, 0, 2433, 2414, 2419, 2442, 2411, 2413, 2430, 2450,
989 : 0, 2441, 2430, 2469, 2460, 2488, 2455, 0, 2478, 2457,
990 : 2453, 2477, 2499, 2472, 2488, 2484, 2489, 2518, 2521, 2501,
991 : 2495, 2513, 0, 2518, 2512, 2508, 2531, 2531, 2523, 2540,
992 : 2528, 2529, 0, 2531, 2556, 2547, 2551, 2555, 2576, 2551,
993 : 2568, 2549, 2562, 2607, 2579, 2572, 2591, 2583, 2567, 2624,
994 :
995 : 2627, 2582, 2621, 2598, 2603, 0, 2641, 0, 2606, 2642,
996 : 2627, 2658, 2656, 2612, 2642, 2644, 2641, 2647, 2665, 2656,
997 : 2712, 2720, 2726, 1562, 2733, 2742, 1962, 2749, 0, 540,
998 : 0, 2768, 0, 0, 0, 2668, 2696, 2703, 2737, 2729,
999 : 2727, 2752, 2750, 2736, 2751, 2769, 2786, 2744, 2743, 0,
1000 : 2760, 2760, 2798, 2758, 2835, 2776, 2796, 2791, 2827, 2818,
1001 : 2775, 2782, 2810, 2796, 2817, 2820, 2826, 2870, 2839, 2838,
1002 : 2846, 2852, 0, 2870, 2854, 2862, 2891, 2849, 2851, 2875,
1003 : 2885, 0, 2885, 2870, 2907, 2906, 2926, 2918, 0, 2934,
1004 : 2891, 2889, 2902, 2935, 2902, 2936, 2923, 2930, 2954, 2952,
1005 :
1006 : 2920, 2932, 2961, 0, 2967, 2960, 2954, 2976, 2975, 2964,
1007 : 2980, 2969, 2970, 0, 2976, 2993, 2987, 2989, 2993, 3004,
1008 : 2997, 3009, 2988, 3003, 3026, 3034, 3014, 3030, 3024, 3024,
1009 : 3052, 3053, 3028, 3055, 3057, 3060, 0, 3078, 0, 3062,
1010 : 3079, 3089, 3095, 3085, 3073, 3078, 3096, 3086, 3091, 3110,
1011 : 3099, 0, 1089, 9485, 9485, 3095, 3110, 9485, 3113, 9485,
1012 : 9485, 3119, 3112, 3109, 3110, 3114, 3123, 9485, 3121, 3128,
1013 : 3116, 3132, 3144, 1027, 3144, 3140, 3139, 3149, 3143, 3139,
1014 : 3155, 3157, 3149, 3150, 3150, 3173, 9485, 9485, 3153, 3170,
1015 : 3153, 3168, 3190, 3173, 3189, 3173, 3188, 3179, 3194, 3187,
1016 :
1017 : 3209, 3207, 3195, 3214, 3201, 3211, 3215, 9485, 3220, 3207,
1018 : 3222, 3210, 9485, 3212, 3212, 3233, 3221, 3242, 3235, 3246,
1019 : 3238, 3240, 3243, 3252, 3248, 3243, 3257, 3249, 3253, 3265,
1020 : 3268, 3270, 3257, 9485, 9485, 3267, 3257, 3259, 3275, 3263,
1021 : 3280, 3284, 3283, 3293, 3305, 3296, 3296, 9485, 3288, 9485,
1022 : 3290, 3304, 3314, 3304, 9485, 3300, 9485, 9485, 1026, 3310,
1023 : 3312, 3321, 3322, 3323, 3310, 9485, 3306, 3323, 3328, 3330,
1024 : 3331, 3319, 3321, 3340, 3336, 3341, 3344, 3337, 3349, 3351,
1025 : 3349, 3359, 3373, 3357, 3366, 3373, 3357, 3374, 3371, 3372,
1026 : 3371, 3378, 3384, 3376, 3388, 3375, 9485, 3381, 9485, 3396,
1027 :
1028 : 3391, 3399, 3391, 3405, 3390, 3397, 3417, 3406, 9485, 3406,
1029 : 3415, 9485, 3414, 3410, 3426, 3426, 3429, 3433, 3422, 3428,
1030 : 3434, 3430, 3444, 3443, 3445, 3435, 3445, 3440, 3481, 3439,
1031 : 3452, 3461, 3458, 3457, 3467, 3481, 2691, 3506, 3524, 3532,
1032 : 3538, 3544, 0, 3475, 3500, 0, 3506, 0, 0, 3520,
1033 : 3519, 3527, 3528, 3530, 3536, 0, 3530, 3537, 3524, 3539,
1034 : 3548, 1025, 3549, 3544, 3541, 3549, 3543, 3538, 3556, 3558,
1035 : 3549, 3550, 3550, 3583, 0, 0, 3550, 3564, 3547, 3562,
1036 : 3593, 3574, 3585, 3592, 3586, 3584, 3601, 3588, 3606, 3604,
1037 : 3594, 3615, 3602, 3611, 3615, 0, 3620, 3604, 3632, 3604,
1038 :
1039 : 0, 3606, 3606, 3624, 3626, 3654, 3645, 3653, 3645, 3647,
1040 : 3649, 3653, 3649, 3643, 3656, 3649, 3653, 3665, 3675, 3666,
1041 : 3658, 0, 0, 3668, 3656, 3658, 3674, 3659, 3675, 3678,
1042 : 3676, 3701, 3710, 3708, 3706, 0, 3696, 0, 3698, 3711,
1043 : 3718, 3706, 0, 3702, 0, 0, 1021, 3711, 3713, 3721,
1044 : 3722, 3723, 3710, 0, 3705, 3724, 3729, 3730, 3731, 3719,
1045 : 3718, 3736, 3731, 3736, 3740, 3758, 3750, 3748, 3755, 3765,
1046 : 3772, 3763, 3772, 3773, 3765, 3776, 3774, 3773, 3769, 3781,
1047 : 3786, 3777, 3788, 3775, 0, 3781, 0, 3791, 3786, 3794,
1048 : 3787, 3808, 3798, 3806, 3825, 3812, 0, 3812, 3821, 0,
1049 :
1050 : 3820, 3816, 3831, 3828, 3831, 3834, 3822, 3828, 3834, 3831,
1051 : 3845, 3845, 3845, 3835, 3840, 3835, 3884, 3836, 3858, 3875,
1052 : 3868, 3873, 3872, 3886, 3902, 3907, 3931, 3935, 3949, 3956,
1053 : 3939, 3960, 0, 3873, 3901, 0, 3902, 0, 0, 3916,
1054 : 3947, 3943, 3944, 3946, 3952, 0, 3947, 3954, 3941, 3956,
1055 : 3965, 1019, 3965, 3960, 3958, 3978, 3959, 3954, 3970, 3972,
1056 : 3963, 3964, 3964, 4004, 0, 0, 3965, 3979, 3962, 3977,
1057 : 4010, 3979, 4001, 4008, 4017, 4001, 4016, 4003, 4020, 4019,
1058 : 4011, 4030, 4017, 4026, 4030, 0, 4036, 4020, 4060, 4020,
1059 : 0, 4022, 4022, 4039, 4037, 4072, 4062, 4070, 4062, 4064,
1060 :
1061 : 4066, 4070, 4066, 4060, 4073, 4065, 4069, 4081, 4094, 4083,
1062 : 4075, 0, 0, 4083, 4071, 4073, 4089, 4075, 4089, 4092,
1063 : 4091, 4122, 4138, 4125, 4123, 0, 4112, 0, 4114, 4126,
1064 : 4135, 4122, 0, 4118, 0, 0, 1018, 4127, 4128, 4136,
1065 : 4137, 4140, 4127, 0, 4123, 4140, 4145, 4146, 4148, 4136,
1066 : 4135, 4153, 4148, 4153, 4157, 4159, 4185, 4178, 4173, 4183,
1067 : 4189, 4182, 4190, 4192, 4182, 4191, 4190, 4189, 4186, 4197,
1068 : 4202, 4193, 4204, 4192, 0, 4198, 0, 4208, 4203, 4211,
1069 : 4204, 4227, 4219, 4223, 4242, 4229, 0, 4229, 4238, 0,
1070 : 4237, 4233, 4248, 4246, 4249, 4249, 4238, 4243, 4249, 4247,
1071 :
1072 : 4264, 4262, 4262, 4252, 4257, 4252, 4301, 4253, 4277, 4292,
1073 : 4293, 4296, 4290, 4304, 4319, 4326, 4348, 4356, 4330, 4365,
1074 : 4369, 4373, 4391, 4380, 4396, 4413, 0, 0, 4297, 4347,
1075 : 0, 4372, 0, 0, 4377, 4370, 4373, 4380, 4383, 4389,
1076 : 0, 4385, 4392, 4379, 4394, 4403, 1017, 4403, 4402, 4400,
1077 : 4415, 4402, 4397, 4414, 4416, 4407, 4409, 4409, 4433, 0,
1078 : 0, 4413, 4427, 4418, 4433, 4441, 4437, 4448, 4460, 4451,
1079 : 4436, 4453, 4449, 4467, 4467, 4455, 4474, 4461, 4470, 4474,
1080 : 0, 4479, 4467, 4481, 4475, 0, 4477, 4477, 4497, 4484,
1081 : 4511, 4498, 4506, 4499, 4503, 4505, 4509, 4505, 4499, 4512,
1082 :
1083 : 4509, 4513, 4525, 4531, 4528, 4517, 0, 0, 4527, 4515,
1084 : 4518, 4534, 4524, 4545, 4548, 4545, 4557, 4568, 4563, 4560,
1085 : 0, 4549, 0, 4551, 4567, 4574, 4562, 0, 4558, 0,
1086 : 0, 1010, 4567, 4572, 4580, 4581, 4584, 4571, 0, 4566,
1087 : 4583, 4588, 4589, 4590, 4578, 4581, 4599, 4600, 4605, 4608,
1088 : 4613, 4609, 4604, 4609, 4619, 4625, 4621, 4629, 4632, 4626,
1089 : 4635, 4634, 4633, 4631, 4639, 4644, 4636, 4647, 4634, 0,
1090 : 4640, 0, 4655, 4655, 4663, 4655, 4667, 4654, 4664, 4681,
1091 : 4667, 0, 4667, 4676, 0, 4676, 4672, 4687, 4686, 4694,
1092 : 4688, 4675, 4689, 4691, 4691, 4708, 4705, 4704, 4694, 4704,
1093 :
1094 : 4704, 4724, 4705, 4721, 4728, 4735, 4733, 4727, 4743, 9485,
1095 : 4732, 4733, 4728, 4749, 9485, 1040, 4750, 4745, 4744, 4749,
1096 : 4759, 4751, 4748, 4755, 9485, 9485, 9485, 9485, 9485, 4759,
1097 : 4775, 4758, 9485, 4765, 4780, 4774, 4783, 4777, 4785, 4780,
1098 : 4781, 4783, 979, 4803, 4801, 4792, 4799, 4805, 4810, 4810,
1099 : 4804, 4817, 4799, 4816, 4802, 4818, 9485, 4819, 4816, 4814,
1100 : 9485, 9485, 9485, 4812, 4807, 4818, 4818, 4821, 4841, 4838,
1101 : 4836, 4828, 4838, 4841, 4845, 4853, 4860, 9485, 9485, 4850,
1102 : 4846, 4851, 4855, 9485, 4856, 4857, 4858, 4873, 4872, 9485,
1103 : 9485, 4875, 974, 4876, 4873, 9485, 4863, 9485, 4864, 4880,
1104 :
1105 : 1006, 9485, 4867, 4873, 4877, 4891, 4886, 4884, 4888, 4914,
1106 : 9485, 4895, 4913, 4913, 4902, 4920, 4904, 4920, 9485, 4912,
1107 : 4915, 4916, 4918, 9485, 4928, 4933, 4919, 4922, 4939, 4940,
1108 : 4933, 4938, 4941, 4935, 4956, 9485, 4953, 9485, 9485, 4941,
1109 : 4959, 4963, 4969, 4955, 4974, 4974, 9485, 4966, 4968, 4969,
1110 : 4969, 4982, 4981, 9485, 9485, 4979, 9485, 4988, 4989, 9485,
1111 : 4990, 4991, 4977, 4993, 4994, 9485, 9485, 4996, 4988, 4982,
1112 : 4995, 9485, 9485, 5003, 5003, 4992, 5002, 4996, 5017, 5013,
1113 : 5016, 5031, 9485, 5031, 5034, 5031, 5033, 5034, 5033, 9485,
1114 : 9485, 9485, 5043, 5041, 9485, 9485, 9485, 5065, 5081, 0,
1115 :
1116 : 5035, 5036, 5030, 5055, 0, 1003, 5057, 5056, 5062, 5072,
1117 : 5082, 5074, 5071, 5078, 0, 0, 0, 0, 0, 5082,
1118 : 5093, 5085, 0, 5092, 5097, 5090, 5100, 5094, 5099, 5085,
1119 : 5086, 5088, 963, 5107, 5105, 5096, 5103, 5120, 5113, 5116,
1120 : 5116, 5137, 5123, 5140, 5126, 5142, 0, 5143, 5140, 5138,
1121 : 0, 0, 0, 5136, 5129, 5139, 5135, 5137, 5158, 5155,
1122 : 5153, 5142, 5143, 5146, 5150, 5157, 5164, 0, 0, 5154,
1123 : 5150, 5156, 5166, 0, 5164, 5169, 5178, 5195, 5195, 0,
1124 : 0, 5198, 962, 5199, 5196, 0, 5186, 0, 5187, 5198,
1125 : 993, 0, 5190, 5199, 5194, 5207, 5202, 5201, 5202, 5219,
1126 :
1127 : 0, 5200, 5218, 5219, 5206, 5223, 5207, 5225, 0, 5225,
1128 : 5227, 5236, 5240, 0, 5251, 5256, 5242, 5245, 5259, 5264,
1129 : 5257, 5265, 5262, 5252, 5272, 0, 5270, 0, 0, 5258,
1130 : 5276, 5277, 5274, 5260, 5279, 5278, 0, 5270, 5272, 5273,
1131 : 5274, 5293, 5289, 0, 0, 5291, 0, 5308, 5311, 0,
1132 : 5313, 5314, 5300, 5316, 5317, 0, 0, 5304, 5312, 5309,
1133 : 5322, 0, 0, 5328, 5328, 5313, 5321, 5315, 5322, 5318,
1134 : 5321, 5335, 0, 5335, 5338, 5335, 5338, 5345, 5358, 0,
1135 : 0, 0, 5351, 5361, 0, 0, 0, 5386, 5394, 5398,
1136 : 5402, 5416, 5420, 0, 5380, 5382, 5376, 5393, 0, 985,
1137 :
1138 : 5395, 5401, 5399, 5404, 5414, 5406, 5404, 5411, 0, 0,
1139 : 0, 0, 0, 5415, 5427, 5414, 0, 5427, 5433, 5426,
1140 : 5435, 5428, 5434, 5420, 5421, 5423, 949, 5442, 5439, 5441,
1141 : 5449, 5455, 5459, 5456, 5461, 5474, 5455, 5473, 5459, 5475,
1142 : 0, 5476, 5473, 5471, 0, 0, 0, 5468, 5461, 5474,
1143 : 5471, 5473, 5493, 5490, 5488, 5477, 5478, 5481, 5485, 5492,
1144 : 5498, 0, 0, 5499, 5496, 5501, 5504, 0, 5502, 5514,
1145 : 5515, 5529, 5530, 0, 0, 5530, 925, 5531, 5529, 0,
1146 : 5519, 0, 5520, 5530, 960, 0, 5523, 5531, 5531, 5544,
1147 : 5538, 5536, 5537, 5554, 0, 5535, 5553, 5569, 5542, 5569,
1148 :
1149 : 5554, 5570, 0, 5561, 5572, 5573, 5574, 0, 5584, 5589,
1150 : 5575, 5578, 5593, 5596, 5590, 5595, 5597, 5588, 5608, 0,
1151 : 5605, 0, 0, 5593, 5611, 5612, 5609, 5595, 5614, 5614,
1152 : 0, 5616, 5619, 5620, 5620, 5633, 5637, 0, 0, 5636,
1153 : 0, 5645, 5645, 0, 5646, 5647, 5633, 5649, 5650, 0,
1154 : 0, 5638, 5644, 5639, 5659, 0, 0, 5664, 5663, 5648,
1155 : 5656, 5650, 5657, 5653, 5656, 5671, 0, 5681, 5685, 5682,
1156 : 5684, 5685, 5688, 0, 0, 0, 5701, 5699, 0, 0,
1157 : 0, 5717, 5732, 5736, 5746, 5753, 5757, 5761, 5777, 0,
1158 : 5697, 5714, 5709, 5750, 0, 951, 5751, 5747, 5746, 5751,
1159 :
1160 : 5761, 5753, 5750, 5761, 0, 0, 0, 0, 0, 5765,
1161 : 5776, 5765, 0, 5773, 5778, 5771, 5780, 5773, 5779, 5765,
1162 : 5766, 5771, 915, 5791, 5793, 5784, 5791, 5812, 5800, 5811,
1163 : 5805, 5819, 5801, 5818, 5804, 5820, 0, 5821, 5822, 5820,
1164 : 0, 0, 0, 5817, 5810, 5820, 5816, 5818, 5838, 5835,
1165 : 5833, 5822, 5823, 5826, 5833, 5841, 5852, 0, 0, 5842,
1166 : 5838, 5843, 5860, 0, 5857, 5858, 5860, 5875, 5874, 0,
1167 : 0, 5877, 913, 5878, 5875, 0, 5869, 0, 5870, 5879,
1168 : 901, 0, 5875, 5881, 5875, 5888, 5882, 5880, 5882, 5899,
1169 : 0, 5880, 5901, 5923, 5890, 5911, 5895, 5911, 0, 5902,
1170 :
1171 : 5915, 5916, 5918, 0, 5929, 5934, 5920, 5923, 5942, 5947,
1172 : 5940, 5945, 5943, 5933, 5953, 0, 5950, 0, 0, 5938,
1173 : 5956, 5957, 5954, 5940, 5962, 5962, 0, 5958, 5960, 5961,
1174 : 5961, 5987, 5982, 0, 0, 5980, 0, 5990, 5991, 0,
1175 : 5992, 5993, 5979, 5995, 6000, 0, 0, 5987, 5995, 5989,
1176 : 6003, 0, 0, 6008, 6007, 5993, 6001, 5995, 6002, 5998,
1177 : 6004, 6019, 0, 6023, 6026, 6023, 6025, 6039, 6033, 0,
1178 : 0, 0, 6045, 6048, 0, 0, 0, 9485, 9485, 864,
1179 : 9485, 9485, 6051, 6037, 6051, 9485, 6053, 6044, 6040, 6061,
1180 : 6053, 6065, 6057, 9485, 6051, 6051, 6069, 6053, 6054, 6061,
1181 :
1182 : 6058, 9485, 6075, 9485, 6064, 6068, 6075, 6072, 6078, 6097,
1183 : 6106, 6095, 6099, 6109, 6095, 6102, 6110, 6111, 862, 6103,
1184 : 6109, 6120, 6121, 9485, 6107, 6124, 6110, 6127, 9485, 9485,
1185 : 861, 9485, 9485, 6108, 6125, 9485, 6119, 9485, 9485, 6127,
1186 : 6133, 9485, 6120, 6145, 6142, 6146, 9485, 6126, 9485, 6135,
1187 : 6156, 9485, 9485, 6161, 9485, 9485, 9485, 6165, 6157, 6158,
1188 : 6172, 9485, 9485, 6173, 9485, 6173, 9485, 6171, 6161, 814,
1189 : 6162, 6169, 9485, 6165, 9485, 6165, 6172, 6178, 9485, 6184,
1190 : 6170, 6172, 6179, 6188, 6193, 6193, 6190, 9485, 6200, 6186,
1191 : 6204, 6219, 9485, 6222, 6211, 6205, 9485, 6227, 6225, 6210,
1192 :
1193 : 6216, 6223, 6232, 9485, 6225, 6217, 6222, 6228, 9485, 6222,
1194 : 6242, 6229, 6236, 6234, 6242, 6247, 9485, 6235, 9485, 6245,
1195 : 6231, 6251, 9485, 9485, 9485, 6243, 6249, 6263, 6251, 6265,
1196 : 6280, 9485, 6268, 6263, 0, 0, 780, 0, 0, 6283,
1197 : 6269, 6283, 0, 6284, 6270, 6270, 6291, 6283, 6295, 6287,
1198 : 0, 6281, 6281, 6299, 6283, 6284, 6291, 6288, 0, 6302,
1199 : 0, 6290, 6292, 6300, 6302, 6308, 6313, 6322, 6325, 6331,
1200 : 6338, 6322, 6330, 6340, 6341, 777, 6329, 6334, 6348, 6350,
1201 : 0, 6337, 6354, 6340, 6357, 0, 0, 773, 0, 0,
1202 : 6338, 6355, 0, 6349, 0, 0, 6357, 6360, 0, 6346,
1203 :
1204 : 6369, 6367, 6359, 0, 6357, 0, 6366, 6388, 0, 0,
1205 : 6392, 0, 0, 0, 6393, 6386, 6388, 6402, 0, 0,
1206 : 6403, 0, 6399, 0, 6397, 6391, 763, 6392, 6399, 0,
1207 : 6395, 0, 6395, 6402, 6408, 0, 6414, 6400, 6402, 6409,
1208 : 6418, 6420, 6419, 6414, 0, 6425, 6416, 6434, 6435, 0,
1209 : 6438, 6441, 6434, 0, 6455, 6454, 6440, 6446, 6453, 6458,
1210 : 0, 6451, 6447, 6452, 6458, 0, 6452, 6472, 6459, 6466,
1211 : 6464, 6472, 6477, 0, 6465, 0, 6475, 6458, 6477, 0,
1212 : 0, 0, 6467, 6474, 6493, 6481, 6481, 6496, 0, 6498,
1213 : 6492, 849, 6526, 0, 0, 760, 0, 0, 6511, 6498,
1214 :
1215 : 6517, 0, 6522, 6508, 6504, 6525, 6517, 6529, 6521, 0,
1216 : 6515, 6515, 6533, 6517, 6518, 6525, 6522, 0, 6539, 0,
1217 : 6528, 6527, 6534, 6531, 6537, 6543, 6552, 6541, 6561, 6569,
1218 : 6553, 6560, 6575, 6580, 728, 6569, 6574, 6584, 6585, 0,
1219 : 6571, 6588, 6574, 6591, 0, 0, 727, 0, 0, 6572,
1220 : 6589, 0, 6583, 0, 0, 6591, 6597, 0, 6584, 6604,
1221 : 6601, 6588, 0, 6586, 0, 6597, 6604, 0, 0, 6623,
1222 : 0, 0, 0, 6624, 6616, 6618, 6637, 0, 0, 6641,
1223 : 0, 6637, 0, 6635, 6625, 723, 6626, 6633, 0, 6629,
1224 : 0, 6629, 6636, 6642, 0, 6648, 6634, 6636, 6643, 6652,
1225 :
1226 : 6657, 6657, 6649, 0, 6659, 6645, 6663, 6665, 0, 6668,
1227 : 6657, 6665, 0, 6686, 6684, 6670, 6681, 6691, 6696, 0,
1228 : 6689, 6681, 6686, 6692, 0, 6686, 6706, 6693, 6700, 6698,
1229 : 6706, 6711, 0, 6699, 0, 6709, 6695, 6715, 0, 0,
1230 : 0, 6702, 6708, 6722, 6710, 6711, 6726, 0, 6714, 6723,
1231 : 6766, 854, 6770, 6774, 0, 0, 703, 0, 0, 6742,
1232 : 6728, 6743, 0, 6749, 6750, 6746, 6767, 6762, 6775, 6767,
1233 : 0, 6761, 6761, 6779, 6764, 6765, 6772, 6769, 0, 6783,
1234 : 0, 6771, 6770, 6777, 6774, 6780, 6785, 6794, 6783, 6813,
1235 : 6797, 6784, 6791, 6799, 6801, 700, 6794, 6814, 6824, 6825,
1236 :
1237 : 0, 6814, 6833, 6820, 6837, 0, 0, 697, 0, 0,
1238 : 6819, 6836, 0, 6830, 0, 0, 6838, 6841, 0, 6827,
1239 : 6847, 6844, 6831, 0, 6829, 0, 6838, 6846, 0, 0,
1240 : 6851, 0, 0, 0, 6855, 6847, 6848, 6863, 0, 0,
1241 : 6869, 0, 6878, 0, 6877, 6867, 693, 6868, 6878, 0,
1242 : 6875, 0, 6875, 6882, 6888, 0, 6894, 6881, 6883, 6890,
1243 : 6899, 6901, 6900, 6892, 0, 6902, 6888, 6906, 6907, 0,
1244 : 6910, 6899, 6893, 0, 6917, 6915, 6900, 6907, 6919, 6937,
1245 : 0, 6931, 6923, 6928, 6937, 0, 6932, 6952, 6939, 6946,
1246 : 6944, 6953, 6958, 0, 6946, 0, 6956, 6939, 6958, 0,
1247 :
1248 : 0, 0, 6945, 6951, 6965, 6953, 6953, 6968, 0, 6956,
1249 : 6951, 6975, 9485, 6968, 9485, 6964, 9485, 9485, 6966, 6979,
1250 : 6980, 6997, 7000, 6999, 6988, 9485, 9485, 6989, 6991, 9485,
1251 : 7011, 7008, 6994, 9485, 7011, 7011, 7006, 7014, 7005, 7016,
1252 : 7017, 7011, 7019, 7005, 7007, 9485, 7009, 7023, 7027, 9485,
1253 : 9485, 9485, 7029, 9485, 7015, 7014, 7029, 7030, 9485, 9485,
1254 : 9485, 9485, 7054, 7042, 7056, 7061, 7065, 7061, 9485, 9485,
1255 : 9485, 7068, 7069, 7059, 7060, 9485, 7071, 9485, 7063, 9485,
1256 : 9485, 9485, 7067, 7057, 7063, 7070, 7071, 7056, 7077, 7062,
1257 : 9485, 7066, 7066, 7072, 9485, 7083, 7072, 7090, 7093, 7083,
1258 :
1259 : 9485, 9485, 9485, 7088, 7102, 7094, 7114, 690, 7111, 686,
1260 : 7123, 7114, 7113, 7114, 7128, 7112, 7112, 7129, 9485, 7120,
1261 : 9485, 9485, 7134, 7118, 7130, 7122, 7126, 9485, 7120, 7140,
1262 : 0, 7133, 0, 7129, 0, 0, 7130, 7139, 7130, 7146,
1263 : 7149, 7149, 7140, 0, 0, 7153, 7156, 0, 7176, 7173,
1264 : 7162, 0, 7179, 7179, 7174, 7182, 7173, 7185, 7186, 7180,
1265 : 7188, 7174, 7176, 0, 7178, 7192, 7195, 0, 0, 0,
1266 : 7194, 0, 7180, 7179, 7193, 7190, 0, 0, 0, 0,
1267 : 7204, 7191, 7205, 7211, 7217, 7225, 0, 0, 0, 7233,
1268 : 7234, 7224, 7228, 0, 7239, 0, 7231, 0, 0, 0,
1269 :
1270 : 7235, 7225, 7231, 7239, 7240, 7225, 7246, 7231, 0, 7235,
1271 : 7235, 7241, 0, 7251, 7237, 7255, 7258, 7247, 0, 0,
1272 : 0, 7248, 7252, 7243, 7263, 676, 7261, 645, 7275, 7278,
1273 : 7278, 7279, 7293, 7280, 7280, 7297, 0, 7288, 0, 0,
1274 : 7302, 7286, 7299, 7291, 7295, 0, 7289, 7318, 7313, 0,
1275 : 7306, 0, 7302, 0, 0, 7303, 7311, 7300, 7319, 7322,
1276 : 7321, 7308, 0, 0, 7313, 7319, 0, 7339, 7336, 7322,
1277 : 0, 7343, 7344, 7339, 7347, 7341, 7353, 7354, 7348, 7356,
1278 : 7342, 7345, 0, 7347, 7361, 7364, 0, 0, 0, 7367,
1279 : 0, 7353, 7352, 7366, 7362, 0, 0, 0, 0, 7374,
1280 :
1281 : 7364, 7378, 7383, 7385, 7385, 0, 0, 0, 7396, 7397,
1282 : 7387, 7388, 0, 7403, 0, 7396, 0, 0, 0, 7400,
1283 : 7390, 7399, 7407, 7408, 7393, 7414, 7399, 0, 7404, 7404,
1284 : 7410, 0, 7420, 7410, 7428, 7431, 7420, 0, 0, 0,
1285 : 7420, 7422, 7416, 7436, 641, 7433, 640, 7443, 7438, 7441,
1286 : 7442, 7456, 7440, 7444, 7462, 0, 7453, 0, 0, 7467,
1287 : 7454, 7467, 7459, 7463, 0, 7457, 7488, 7496, 7515, 7491,
1288 : 0, 7485, 0, 7484, 0, 0, 7485, 7493, 7482, 7506,
1289 : 7509, 7508, 7494, 0, 0, 7494, 7496, 0, 7516, 7513,
1290 : 7499, 0, 7515, 7516, 7512, 7520, 7511, 7525, 7527, 7521,
1291 :
1292 : 7529, 7515, 7517, 0, 7519, 7533, 7536, 0, 0, 0,
1293 : 7545, 0, 7532, 7534, 7548, 7544, 0, 0, 0, 0,
1294 : 7556, 7551, 7565, 7570, 7571, 7566, 0, 0, 0, 7573,
1295 : 7574, 7564, 7565, 0, 7575, 0, 7568, 0, 0, 0,
1296 : 7573, 7563, 7569, 7579, 7581, 7566, 7587, 7572, 0, 7576,
1297 : 7576, 7582, 0, 7592, 7588, 7607, 7613, 7602, 0, 0,
1298 : 0, 7602, 7604, 7603, 7623, 637, 7620, 636, 7629, 7619,
1299 : 7618, 7619, 7633, 7617, 7616, 7634, 0, 7626, 0, 0,
1300 : 7640, 7624, 7639, 7632, 7636, 0, 7630, 7644, 7626, 9485,
1301 : 7646, 9485, 7649, 7641, 7661, 9485, 9485, 7663, 9485, 7658,
1302 :
1303 : 9485, 590, 9485, 7667, 7653, 9485, 7662, 7680, 7685, 9485,
1304 : 9485, 9485, 9485, 7686, 7674, 7669, 9485, 9485, 7689, 7677,
1305 : 9485, 9485, 9485, 7689, 7681, 7682, 9485, 7683, 7686, 9485,
1306 : 7678, 9485, 7695, 7689, 7698, 7692, 7694, 7694, 9485, 7703,
1307 : 7693, 9485, 9485, 7709, 9485, 9485, 7702, 7717, 7728, 589,
1308 : 7711, 9485, 7718, 7727, 7720, 7723, 7732, 7726, 7743, 7742,
1309 : 7730, 9485, 7746, 7747, 9485, 7736, 9485, 9485, 9485, 7739,
1310 : 9485, 7749, 7731, 0, 7751, 0, 7757, 7750, 7760, 0,
1311 : 0, 7761, 0, 7753, 0, 586, 0, 7762, 7748, 0,
1312 : 7756, 7766, 7781, 0, 0, 0, 0, 7787, 7775, 7770,
1313 :
1314 : 0, 0, 7791, 7787, 0, 0, 0, 7799, 7791, 7792,
1315 : 0, 7792, 7794, 0, 7786, 0, 7803, 7794, 7801, 7798,
1316 : 7799, 7799, 0, 7808, 7798, 0, 0, 7817, 0, 0,
1317 : 7811, 7816, 7822, 540, 7805, 0, 7812, 7831, 7813, 7807,
1318 : 7827, 7825, 7843, 7851, 7839, 0, 7855, 7856, 0, 7844,
1319 : 0, 0, 0, 7847, 0, 7872, 7861, 7844, 0, 7864,
1320 : 0, 7867, 7859, 7869, 0, 0, 7873, 0, 7866, 0,
1321 : 526, 0, 7875, 7861, 0, 7869, 7879, 7884, 0, 0,
1322 : 0, 0, 7885, 7879, 7874, 0, 0, 7894, 7882, 0,
1323 : 0, 0, 7895, 7892, 7893, 0, 7893, 7896, 0, 7895,
1324 :
1325 : 0, 7912, 7903, 7910, 7906, 7907, 7911, 0, 7921, 7911,
1326 : 0, 0, 7927, 0, 0, 7920, 7925, 7934, 502, 7919,
1327 : 0, 7926, 7925, 7928, 7922, 7938, 7931, 7948, 7947, 7936,
1328 : 0, 7957, 7958, 0, 7946, 0, 0, 0, 7950, 0,
1329 : 7982, 7994, 7960, 7952, 0, 7972, 0, 7979, 7976, 7989,
1330 : 0, 0, 7992, 0, 7984, 0, 480, 0, 7993, 7979,
1331 : 0, 7987, 7997, 8002, 0, 0, 0, 0, 8003, 7991,
1332 : 7986, 0, 0, 8008, 7996, 0, 0, 0, 8008, 8000,
1333 : 8002, 0, 8002, 8004, 0, 7996, 0, 8013, 8005, 8027,
1334 : 8007, 8008, 8009, 0, 8018, 8019, 0, 0, 8039, 0,
1335 :
1336 : 0, 8037, 8045, 8054, 477, 8037, 0, 8044, 8043, 8046,
1337 : 8040, 8050, 8043, 8062, 8061, 8049, 0, 8065, 8067, 0,
1338 : 8055, 0, 0, 0, 8058, 0, 8068, 8075, 8058, 8061,
1339 : 8073, 9485, 9485, 8071, 8109, 9485, 8089, 8075, 8095, 8092,
1340 : 8100, 8112, 9485, 8104, 8110, 8098, 9485, 8098, 8115, 9485,
1341 : 8116, 8108, 8112, 8119, 8114, 9485, 8126, 8120, 8131, 8132,
1342 : 8159, 9485, 8129, 8135, 8131, 9485, 8133, 8155, 8170, 8165,
1343 : 8154, 8158, 8170, 476, 9485, 8171, 9485, 8173, 8153, 9485,
1344 : 8172, 8179, 8163, 8166, 8178, 0, 0, 8175, 8213, 0,
1345 : 8184, 8170, 8180, 8174, 8180, 8192, 0, 8184, 8191, 8190,
1346 :
1347 : 0, 8190, 8217, 0, 8221, 8214, 8216, 8223, 8218, 0,
1348 : 8230, 8224, 8236, 8237, 8238, 0, 8235, 8243, 8228, 0,
1349 : 8230, 8237, 8252, 8247, 8237, 8252, 8264, 472, 0, 8269,
1350 : 0, 8271, 8255, 0, 8277, 8285, 8267, 8270, 8282, 0,
1351 : 0, 8279, 8317, 0, 8288, 8274, 8284, 8278, 8285, 8297,
1352 : 0, 8289, 8295, 8285, 0, 8289, 8306, 0, 8307, 8300,
1353 : 8312, 8315, 8314, 0, 8335, 8330, 8340, 8341, 8342, 0,
1354 : 8339, 8347, 8332, 0, 8334, 8342, 8357, 8352, 8341, 8347,
1355 : 8363, 445, 0, 8364, 0, 8366, 8347, 0, 8371, 8378,
1356 : 8364, 8367, 8383, 0, 0, 8380, 8418, 0, 8389, 8375,
1357 :
1358 : 8385, 8382, 8388, 8400, 0, 8392, 8399, 8391, 0, 8391,
1359 : 8410, 0, 8411, 8403, 8404, 8414, 8409, 0, 8421, 8416,
1360 : 8437, 8438, 8443, 0, 8440, 8448, 8433, 0, 8438, 8445,
1361 : 8460, 8455, 8445, 8453, 8465, 442, 0, 8468, 0, 8470,
1362 : 8450, 0, 9485, 8456, 8471, 428, 8460, 9485, 8483, 8487,
1363 : 8484, 8471, 8491, 8486, 8477, 9485, 8489, 9485, 9485, 8489,
1364 : 8496, 8485, 9485, 8498, 8505, 9485, 9485, 8504, 9485, 8507,
1365 : 8515, 9485, 9485, 8499, 9485, 8500, 8506, 8519, 8509, 8509,
1366 : 9485, 8515, 8519, 9485, 8528, 8533, 9485, 8530, 9485, 9485,
1367 : 9485, 0, 8522, 8536, 425, 8526, 0, 8549, 8553, 8551,
1368 :
1369 : 8538, 8552, 8550, 8545, 0, 8557, 0, 0, 8557, 8564,
1370 : 8549, 0, 8565, 8571, 0, 0, 8570, 0, 8573, 8579,
1371 : 0, 0, 8566, 0, 8567, 8575, 8587, 8573, 8573, 0,
1372 : 8579, 8583, 0, 8595, 8600, 0, 8600, 0, 0, 0,
1373 : 0, 8582, 8602, 395, 8591, 0, 8611, 8621, 8615, 8602,
1374 : 8620, 8618, 8609, 0, 8624, 0, 0, 8623, 8630, 8615,
1375 : 0, 8629, 8638, 0, 0, 8637, 0, 8642, 8647, 0,
1376 : 0, 8630, 0, 8631, 8639, 8651, 8640, 8640, 0, 8644,
1377 : 8649, 0, 8661, 8667, 0, 8661, 0, 0, 0, 0,
1378 : 8650, 8667, 390, 8660, 0, 8680, 8685, 8683, 8670, 8689,
1379 :
1380 : 8684, 8675, 0, 8688, 0, 0, 8690, 8697, 8684, 0,
1381 : 8697, 8702, 0, 0, 8701, 0, 8706, 8711, 0, 0,
1382 : 8697, 0, 8698, 8704, 8717, 8706, 8707, 0, 8711, 8715,
1383 : 0, 8724, 8738, 0, 8725, 0, 0, 0, 8723, 9485,
1384 : 8735, 8724, 8728, 8744, 8731, 8740, 8746, 8746, 8755, 9485,
1385 : 9485, 9485, 8758, 8749, 9485, 8745, 383, 8752, 9485, 9485,
1386 : 8762, 9485, 9485, 8765, 9485, 8758, 8757, 8772, 8769, 8767,
1387 : 8775, 8776, 0, 8778, 8767, 8770, 8785, 8776, 8785, 8792,
1388 : 8788, 8797, 0, 0, 0, 8801, 8793, 0, 8789, 377,
1389 : 8796, 0, 0, 8805, 0, 0, 8812, 0, 8802, 8803,
1390 :
1391 : 8818, 8814, 8809, 8818, 8819, 0, 8824, 8813, 8814, 8830,
1392 : 8820, 8830, 8835, 8831, 8840, 0, 0, 0, 8843, 8834,
1393 : 0, 8834, 368, 8841, 0, 0, 8851, 0, 0, 8854,
1394 : 0, 8844, 8846, 8862, 8858, 8853, 8861, 8866, 0, 8868,
1395 : 8859, 8860, 8875, 8862, 8873, 8878, 8877, 8886, 0, 0,
1396 : 0, 8887, 8879, 0, 8878, 365, 8886, 0, 0, 8894,
1397 : 0, 0, 8897, 0, 8887, 8888, 8903, 8903, 8898, 8907,
1398 : 8902, 9485, 8917, 8917, 8923, 8917, 8921, 8923, 8928, 8916,
1399 : 9485, 8923, 8930, 8936, 8932, 9485, 8926, 9485, 9485, 8944,
1400 : 8943, 8929, 8938, 8941, 0, 8957, 8954, 8959, 8953, 8959,
1401 :
1402 : 8960, 8965, 8953, 0, 8960, 8967, 8979, 8965, 0, 8962,
1403 : 0, 0, 8980, 8980, 8970, 8978, 8980, 0, 8995, 8992,
1404 : 8997, 8993, 8997, 9001, 9002, 8990, 0, 8996, 9006, 9013,
1405 : 9007, 0, 9001, 0, 0, 9018, 9017, 9007, 9015, 9017,
1406 : 0, 9032, 9029, 9037, 9032, 9036, 9037, 9039, 9031, 0,
1407 : 9036, 9045, 9051, 9045, 0, 9041, 0, 0, 9056, 9058,
1408 : 9044, 9052, 9054, 9060, 9485, 9053, 9485, 9485, 9062, 9057,
1409 : 9485, 9485, 9485, 9062, 9071, 9485, 9485, 9485, 9075, 9068,
1410 : 9066, 9076, 9079, 0, 9071, 0, 0, 9083, 9079, 0,
1411 : 0, 0, 9084, 9091, 0, 0, 0, 9096, 9089, 9087,
1412 :
1413 : 9097, 9100, 0, 9092, 0, 0, 9101, 9098, 0, 0,
1414 : 0, 9103, 9113, 0, 0, 0, 9117, 9106, 9105, 9116,
1415 : 9120, 0, 9112, 0, 0, 9121, 9116, 0, 0, 0,
1416 : 9123, 9130, 0, 0, 0, 9138, 9127, 9127, 9485, 9134,
1417 : 9138, 9153, 9136, 9143, 9139, 9485, 9485, 9140, 0, 9150,
1418 : 9154, 9168, 9150, 9157, 9153, 0, 0, 9155, 0, 9161,
1419 : 9168, 9180, 9162, 9170, 9169, 0, 0, 9170, 0, 9176,
1420 : 9180, 9192, 9176, 9183, 9183, 0, 0, 9183, 9199, 9187,
1421 : 9485, 9207, 9192, 9211, 9210, 9209, 9198, 0, 9222, 9204,
1422 : 9224, 9223, 9222, 9210, 0, 9232, 9214, 9235, 9234, 9233,
1423 :
1424 : 9222, 0, 9245, 9228, 9246, 9245, 9485, 327, 9238, 9485,
1425 : 9485, 9485, 0, 321, 9241, 0, 0, 0, 0, 311,
1426 : 9242, 0, 0, 0, 0, 308, 9247, 0, 0, 0,
1427 : 9241, 9248, 9245, 9250, 9250, 9256, 9253, 9258, 9258, 9485,
1428 : 9263, 0, 9264, 0, 9267, 0, 9285, 9286, 9287, 9290,
1429 : 9278, 9282, 9283, 9284, 9281, 9285, 9287, 9288, 9302, 9303,
1430 : 9306, 9307, 9303, 9304, 9307, 9308, 9306, 9310, 9312, 9313,
1431 : 9319, 9321, 9326, 9327, 214, 207, 200, 193, 9336, 9337,
1432 : 9338, 9339, 9331, 9332, 9336, 9337, 9341, 9343, 9347, 9349,
1433 : 9344, 9345, 9346, 9349, 9355, 9360, 9361, 9364, 9485, 0,
1434 :
1435 : 0, 0, 9485, 9428, 9433, 9436, 9444, 9452, 9460, 9468,
1436 : 9476
1437 : } ;
1438 :
1439 : static yyconst flex_int16_t yy_def[4512] =
1440 : { 0,
1441 : 4503, 1, 4503, 3, 4503, 5, 5, 5, 5, 5,
1442 : 4503, 11, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1443 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1444 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1445 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1446 : 4503, 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1447 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1448 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4503, 4503,
1449 : 4503, 4505, 4505, 4505, 4506, 4506, 4506, 4506, 4506, 4506,
1450 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1451 :
1452 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1453 : 4505, 4505, 4507, 4508, 4508, 4508, 4508, 4503, 4508, 4508,
1454 : 4503, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1455 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1456 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503,
1457 : 4508, 4503, 4503, 4509, 4503, 4503, 4503, 4503, 4503, 4503,
1458 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1459 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1460 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1461 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1462 :
1463 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1464 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1465 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1466 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1467 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1468 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1469 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1470 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4504,
1471 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1472 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1473 :
1474 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1475 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1476 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1477 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1478 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1479 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1480 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1481 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1482 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1483 : 4504, 4504, 4504, 4504, 4504, 4504, 4505, 4505, 4505, 4505,
1484 :
1485 : 4505, 4505, 4505, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1486 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1487 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1488 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1489 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1490 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1491 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1492 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1493 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1494 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1495 :
1496 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1497 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1498 : 4505, 4505, 4505, 4505, 4505, 4505, 4507, 4507, 4508, 4508,
1499 : 4508, 4510, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1500 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1501 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1502 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1503 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1504 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1505 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1506 :
1507 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1508 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1509 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1510 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1511 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1512 : 4508, 4508, 4509, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1513 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1514 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1515 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1516 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1517 :
1518 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1519 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1520 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1521 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1522 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1523 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1524 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1525 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1526 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1527 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1528 :
1529 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1530 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1531 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1532 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1533 : 4503, 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1534 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1535 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1536 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1537 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1538 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1539 :
1540 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1541 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1542 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1543 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1544 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1545 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1546 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1547 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1548 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1549 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1550 :
1551 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1552 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1553 : 4504, 4504, 4504, 4504, 4503, 4505, 4505, 4505, 4505, 4505,
1554 : 4503, 4505, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1555 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1556 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1557 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1558 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1559 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1560 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1561 :
1562 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1563 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1564 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1565 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1566 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1567 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1568 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1569 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1570 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1571 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1572 :
1573 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1574 : 4506, 4506, 4506, 4506, 4503, 4505, 4505, 4505, 4505, 4505,
1575 : 4503, 4505, 4507, 4503, 4507, 4510, 4508, 4508, 4508, 4508,
1576 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1577 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1578 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1579 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1580 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1581 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1582 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1583 :
1584 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1585 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1586 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1587 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1588 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1589 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1590 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1591 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1592 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1593 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1594 :
1595 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503,
1596 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1597 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1598 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1599 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1600 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1601 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1602 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1603 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1604 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1605 :
1606 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1607 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1608 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1609 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1610 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1611 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1612 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1613 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1614 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1615 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4504,
1616 :
1617 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1618 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1619 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1620 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1621 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1622 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1623 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1624 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1625 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1626 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1627 :
1628 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1629 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1630 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1631 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1632 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1633 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1634 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1635 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1636 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4503, 4505, 4503,
1637 : 4505, 4505, 4503, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1638 :
1639 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1640 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1641 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1642 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1643 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1644 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1645 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1646 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1647 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1648 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1649 :
1650 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1651 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1652 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1653 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1654 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1655 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1656 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1657 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1658 : 4506, 4503, 4503, 4505, 4505, 4505, 4503, 4511, 4507, 4508,
1659 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1660 :
1661 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1662 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1663 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1664 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1665 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1666 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1667 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1668 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1669 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1670 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1671 :
1672 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1673 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1674 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1675 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1676 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1677 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1678 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1679 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503, 4503,
1680 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1681 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1682 :
1683 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1684 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1685 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1686 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1687 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1688 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1689 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1690 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1691 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1692 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1693 :
1694 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1695 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1696 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1697 : 4503, 4503, 4503, 4503, 4504, 4504, 4504, 4504, 4504, 4504,
1698 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1699 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1700 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1701 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1702 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1703 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1704 :
1705 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1706 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1707 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1708 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1709 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1710 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1711 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1712 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1713 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1714 : 4504, 4505, 4503, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1715 :
1716 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1717 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1718 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1719 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1720 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1721 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1722 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1723 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1724 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1725 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1726 :
1727 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1728 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1729 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1730 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1731 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1732 : 4503, 4505, 4511, 4511, 4508, 4508, 4508, 4508, 4508, 4508,
1733 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1734 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1735 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1736 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1737 :
1738 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1739 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1740 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1741 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1742 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1743 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1744 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1745 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1746 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1747 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1748 :
1749 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1750 : 4508, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1751 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1752 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1753 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1754 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1755 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1756 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1757 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1758 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1759 :
1760 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1761 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1762 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4504,
1763 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1764 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1765 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1766 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1767 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1768 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1769 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1770 :
1771 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1772 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1773 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1774 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1775 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4505, 4506, 4506,
1776 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1777 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1778 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1779 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1780 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1781 :
1782 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1783 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1784 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1785 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1786 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1787 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1788 : 4506, 4506, 4506, 4506, 4506, 4506, 4505, 4511, 4511, 4508,
1789 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1790 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1791 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1792 :
1793 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1794 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1795 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1796 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1797 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1798 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1799 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1800 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1801 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503, 4503,
1802 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1803 :
1804 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1805 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1806 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1807 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1808 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1809 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1810 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1811 : 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1812 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1813 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1814 :
1815 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1816 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1817 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1818 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1819 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1820 : 4504, 4504, 4504, 4504, 4504, 4505, 4506, 4506, 4506, 4506,
1821 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1822 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1823 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1824 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1825 :
1826 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1827 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1828 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1829 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1830 : 4505, 4511, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1831 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1832 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1833 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1834 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1835 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1836 :
1837 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1838 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1839 : 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503, 4503, 4503,
1840 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1841 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1842 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1843 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1844 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1845 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1846 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1847 :
1848 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1849 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1850 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1851 : 4504, 4504, 4504, 4504, 4506, 4506, 4506, 4506, 4506, 4506,
1852 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1853 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1854 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1855 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1856 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508, 4508,
1857 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1858 :
1859 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1860 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1861 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1862 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1863 : 4508, 4508, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1864 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1865 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1866 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1867 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1868 : 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1869 :
1870 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1871 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1872 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1873 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1874 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1875 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1876 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1877 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1878 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508,
1879 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1880 :
1881 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1882 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1883 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1884 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503,
1885 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1886 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1887 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1888 : 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1889 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1890 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1891 :
1892 : 4504, 4504, 4504, 4504, 4506, 4506, 4506, 4506, 4506, 4506,
1893 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1894 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1895 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508, 4508, 4508,
1896 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1897 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1898 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1899 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1900 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1901 : 4503, 4503, 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1902 :
1903 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1904 : 4504, 4504, 4504, 4504, 4504, 4504, 4506, 4506, 4506, 4506,
1905 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1906 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508,
1907 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1908 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1909 : 4508, 4508, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1910 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1911 : 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1912 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
1913 :
1914 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,
1915 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508,
1916 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508,
1917 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503,
1918 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4504, 4504,
1919 : 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4506, 4506,
1920 : 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508, 4508,
1921 : 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503,
1922 : 4503, 4503, 4503, 4503, 4503, 4504, 4504, 4504, 4504, 4504,
1923 : 4504, 4504, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4508,
1924 :
1925 : 4508, 4508, 4508, 4508, 4508, 4508, 4503, 4503, 4503, 4503,
1926 : 4503, 4503, 4504, 4504, 4504, 4504, 4504, 4504, 4506, 4506,
1927 : 4506, 4506, 4506, 4506, 4508, 4508, 4508, 4508, 4508, 4508,
1928 : 4503, 4503, 4504, 4504, 4506, 4506, 4508, 4508, 4503, 4503,
1929 : 4504, 4504, 4506, 4506, 4508, 4508, 4503, 4504, 4506, 4508,
1930 : 4503, 4504, 4506, 4508, 4503, 4504, 4506, 4508, 4503, 4504,
1931 : 4506, 4508, 4503, 4504, 4506, 4508, 4503, 4504, 4506, 4508,
1932 : 4503, 4504, 4506, 4508, 4503, 4504, 4506, 4508, 4503, 4504,
1933 : 4506, 4508, 4503, 4504, 4506, 4508, 4503, 4504, 4506, 4508,
1934 : 4503, 4504, 4506, 4508, 4503, 4504, 4506, 4508, 4503, 4504,
1935 :
1936 : 4506, 4508, 0, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
1937 : 4503
1938 : } ;
1939 :
1940 : static yyconst flex_int16_t yy_nxt[9567] =
1941 : { 0,
1942 : 14, 15, 16, 15, 17, 14, 14, 14, 18, 19,
1943 : 19, 19, 19, 20, 19, 14, 14, 14, 14, 19,
1944 : 21, 22, 23, 19, 24, 25, 26, 27, 28, 29,
1945 : 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1946 : 40, 41, 42, 43, 44, 45, 46, 14, 47, 48,
1947 : 14, 14, 14, 24, 25, 26, 27, 28, 29, 30,
1948 : 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1949 : 41, 42, 43, 44, 45, 46, 14, 47, 48, 49,
1950 : 14, 14, 15, 16, 15, 17, 50, 14, 14, 18,
1951 : 19, 19, 19, 19, 20, 51, 52, 52, 52, 52,
1952 :
1953 : 19, 21, 22, 23, 19, 53, 54, 55, 56, 57,
1954 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1955 : 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1956 : 78, 79, 14, 80, 53, 54, 55, 56, 57, 58,
1957 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
1958 : 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
1959 : 49, 76, 14, 15, 16, 15, 17, 14, 81, 14,
1960 : 18, 19, 19, 19, 82, 20, 83, 84, 84, 84,
1961 : 84, 19, 21, 22, 23, 19, 85, 86, 87, 88,
1962 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
1963 :
1964 : 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1965 : 109, 110, 79, 14, 14, 85, 86, 87, 88, 89,
1966 : 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1967 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1968 : 110, 49, 108, 111, 4482, 82, 112, 112, 112, 112,
1969 : 111, 4481, 82, 112, 112, 112, 112, 19, 4480, 19,
1970 : 113, 113, 113, 113, 19, 4479, 19, 113, 113, 113,
1971 : 113, 114, 115, 116, 15, 117, 118, 114, 114, 18,
1972 : 119, 119, 119, 119, 120, 119, 114, 114, 114, 114,
1973 : 121, 122, 123, 124, 121, 125, 126, 127, 128, 129,
1974 :
1975 : 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1976 : 140, 141, 142, 143, 144, 145, 146, 147, 114, 148,
1977 : 149, 150, 114, 114, 125, 126, 127, 128, 129, 130,
1978 : 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1979 : 141, 142, 143, 144, 145, 146, 147, 114, 148, 149,
1980 : 151, 114, 152, 199, 152, 155, 156, 158, 159, 4437,
1981 : 205, 160, 4435, 206, 240, 200, 272, 161, 273, 162,
1982 : 322, 328, 4433, 163, 164, 165, 166, 167, 4431, 201,
1983 : 329, 168, 199, 363, 395, 169, 158, 159, 170, 205,
1984 : 160, 171, 206, 240, 200, 272, 161, 273, 162, 322,
1985 :
1986 : 328, 172, 163, 164, 165, 166, 167, 180, 201, 329,
1987 : 168, 181, 363, 395, 169, 182, 4253, 170, 266, 4230,
1988 : 171, 183, 533, 534, 184, 202, 267, 530, 4207, 152,
1989 : 172, 173, 203, 396, 4184, 174, 180, 204, 175, 446,
1990 : 181, 2670, 176, 452, 182, 177, 2509, 266, 178, 453,
1991 : 183, 179, 185, 184, 202, 267, 275, 275, 275, 275,
1992 : 173, 203, 396, 186, 174, 187, 204, 175, 446, 276,
1993 : 188, 176, 452, 189, 177, 190, 2350, 178, 453, 2193,
1994 : 179, 185, 152, 214, 152, 487, 277, 278, 278, 278,
1995 : 278, 215, 186, 4035, 187, 262, 3986, 216, 276, 188,
1996 :
1997 : 279, 323, 189, 447, 190, 191, 263, 519, 264, 192,
1998 : 520, 265, 214, 193, 487, 324, 194, 448, 195, 196,
1999 : 215, 577, 197, 3937, 262, 198, 216, 3888, 3827, 279,
2000 : 323, 3797, 447, 583, 191, 263, 519, 264, 192, 520,
2001 : 265, 530, 193, 152, 324, 194, 448, 195, 196, 584,
2002 : 577, 197, 578, 3773, 198, 207, 217, 208, 218, 209,
2003 : 219, 618, 583, 210, 650, 256, 579, 651, 211, 212,
2004 : 220, 655, 257, 258, 213, 221, 222, 3743, 584, 259,
2005 : 656, 578, 260, 261, 207, 217, 208, 218, 209, 219,
2006 : 618, 3719, 210, 650, 256, 579, 651, 211, 212, 220,
2007 :
2008 : 655, 257, 258, 213, 221, 222, 223, 224, 259, 656,
2009 : 225, 260, 261, 234, 226, 241, 227, 235, 228, 242,
2010 : 229, 236, 230, 243, 231, 232, 233, 237, 268, 244,
2011 : 238, 269, 270, 239, 245, 223, 224, 3689, 271, 225,
2012 : 3665, 3635, 234, 226, 241, 227, 235, 228, 242, 229,
2013 : 236, 230, 243, 231, 232, 233, 237, 268, 244, 238,
2014 : 269, 270, 239, 245, 246, 291, 247, 271, 657, 292,
2015 : 248, 389, 293, 662, 249, 294, 250, 251, 252, 390,
2016 : 391, 253, 254, 392, 393, 295, 255, 3611, 3609, 667,
2017 : 394, 3525, 3523, 246, 291, 247, 3440, 657, 292, 248,
2018 :
2019 : 389, 293, 662, 249, 294, 250, 251, 252, 390, 391,
2020 : 253, 254, 392, 393, 295, 255, 281, 282, 667, 394,
2021 : 283, 513, 528, 528, 528, 528, 284, 3438, 285, 514,
2022 : 644, 660, 286, 287, 288, 289, 290, 3356, 645, 303,
2023 : 668, 3354, 675, 304, 3237, 281, 282, 305, 3214, 283,
2024 : 513, 3205, 661, 306, 3170, 284, 307, 285, 514, 644,
2025 : 660, 286, 287, 288, 289, 290, 296, 645, 303, 668,
2026 : 297, 675, 304, 298, 3116, 676, 305, 299, 3093, 3084,
2027 : 300, 661, 306, 301, 325, 307, 302, 308, 663, 337,
2028 : 679, 326, 682, 461, 664, 296, 327, 338, 309, 297,
2029 :
2030 : 310, 462, 298, 339, 676, 311, 299, 463, 312, 300,
2031 : 313, 3049, 301, 325, 2997, 302, 308, 663, 337, 679,
2032 : 326, 682, 461, 664, 2974, 327, 338, 309, 2965, 310,
2033 : 462, 2930, 339, 592, 311, 658, 463, 312, 357, 313,
2034 : 314, 593, 358, 659, 315, 665, 359, 594, 316, 677,
2035 : 704, 317, 360, 318, 319, 361, 678, 320, 362, 666,
2036 : 321, 400, 592, 3048, 658, 2879, 3167, 357, 524, 314,
2037 : 593, 358, 659, 315, 665, 359, 594, 316, 677, 704,
2038 : 317, 360, 318, 319, 361, 678, 320, 362, 666, 321,
2039 : 330, 340, 331, 341, 332, 342, 690, 680, 333, 705,
2040 :
2041 : 379, 681, 706, 334, 335, 343, 691, 380, 381, 336,
2042 : 344, 345, 2856, 2847, 382, 2812, 2732, 383, 384, 330,
2043 : 340, 331, 341, 332, 342, 690, 680, 333, 705, 379,
2044 : 681, 706, 334, 335, 343, 691, 380, 381, 336, 344,
2045 : 345, 346, 347, 382, 364, 348, 383, 384, 365, 349,
2046 : 707, 350, 366, 351, 708, 352, 385, 353, 367, 354,
2047 : 355, 356, 709, 368, 2725, 710, 2682, 386, 2659, 387,
2048 : 346, 347, 388, 364, 348, 2571, 2564, 365, 349, 707,
2049 : 350, 366, 351, 708, 352, 385, 353, 367, 354, 355,
2050 : 356, 709, 368, 369, 710, 370, 386, 449, 387, 371,
2051 :
2052 : 2521, 388, 2498, 372, 450, 373, 374, 375, 2412, 451,
2053 : 376, 377, 715, 2405, 2362, 378, 398, 398, 398, 398,
2054 : 2339, 2255, 369, 488, 370, 2248, 449, 489, 371, 399,
2055 : 2205, 490, 372, 450, 373, 374, 375, 491, 451, 376,
2056 : 377, 715, 492, 400, 378, 401, 402, 402, 402, 402,
2057 : 692, 716, 488, 669, 670, 693, 489, 2182, 399, 403,
2058 : 490, 2092, 521, 521, 521, 521, 491, 671, 2004, 1896,
2059 : 1808, 492, 1702, 717, 432, 522, 1614, 1512, 1424, 692,
2060 : 716, 694, 669, 670, 693, 433, 695, 434, 403, 405,
2061 : 406, 654, 435, 407, 654, 436, 671, 437, 702, 408,
2062 :
2063 : 718, 409, 717, 432, 522, 410, 411, 412, 413, 414,
2064 : 694, 703, 722, 415, 433, 695, 434, 416, 405, 406,
2065 : 417, 435, 407, 418, 436, 727, 437, 702, 408, 718,
2066 : 409, 652, 535, 419, 410, 411, 412, 413, 414, 427,
2067 : 703, 722, 415, 428, 509, 532, 416, 429, 531, 417,
2068 : 725, 274, 418, 430, 727, 510, 431, 511, 728, 580,
2069 : 512, 481, 419, 420, 726, 482, 581, 421, 427, 483,
2070 : 422, 582, 428, 509, 423, 484, 429, 424, 485, 725,
2071 : 425, 486, 430, 426, 510, 431, 511, 728, 580, 512,
2072 : 481, 157, 420, 726, 482, 581, 421, 154, 483, 422,
2073 :
2074 : 582, 153, 729, 423, 484, 733, 424, 485, 734, 425,
2075 : 486, 503, 426, 438, 719, 4503, 4503, 439, 504, 505,
2076 : 720, 440, 4503, 721, 441, 506, 442, 443, 507, 508,
2077 : 444, 729, 738, 445, 733, 4503, 4503, 734, 4503, 4503,
2078 : 503, 515, 438, 719, 516, 517, 439, 504, 505, 720,
2079 : 440, 518, 721, 441, 506, 442, 443, 507, 508, 444,
2080 : 747, 738, 445, 454, 464, 455, 465, 456, 466, 4503,
2081 : 515, 457, 723, 516, 517, 748, 458, 459, 467, 724,
2082 : 518, 4503, 460, 468, 469, 1027, 1027, 1027, 1027, 747,
2083 : 749, 752, 454, 464, 455, 465, 456, 466, 735, 4503,
2084 :
2085 : 457, 723, 4503, 4503, 748, 458, 459, 467, 724, 736,
2086 : 737, 460, 468, 469, 470, 471, 672, 619, 472, 749,
2087 : 752, 620, 473, 673, 474, 621, 475, 735, 476, 674,
2088 : 477, 622, 478, 479, 480, 4503, 623, 4503, 736, 737,
2089 : 742, 4503, 743, 470, 471, 672, 619, 472, 4503, 4503,
2090 : 620, 473, 673, 474, 621, 475, 4503, 476, 674, 477,
2091 : 622, 478, 479, 480, 493, 623, 494, 711, 763, 742,
2092 : 495, 743, 4503, 712, 496, 4503, 497, 498, 499, 753,
2093 : 713, 500, 501, 754, 714, 523, 502, 524, 525, 525,
2094 : 525, 525, 764, 493, 750, 494, 711, 763, 4503, 495,
2095 :
2096 : 4503, 526, 712, 496, 751, 497, 498, 499, 753, 713,
2097 : 500, 501, 754, 714, 4503, 502, 563, 765, 4503, 4503,
2098 : 4503, 764, 4503, 750, 744, 766, 4503, 564, 745, 565,
2099 : 526, 536, 537, 751, 566, 538, 4503, 567, 767, 568,
2100 : 768, 539, 769, 540, 746, 563, 765, 541, 542, 543,
2101 : 544, 545, 4503, 744, 766, 546, 564, 745, 565, 547,
2102 : 536, 537, 548, 566, 538, 549, 567, 767, 568, 768,
2103 : 539, 769, 540, 746, 4503, 550, 541, 542, 543, 544,
2104 : 545, 558, 4503, 4503, 546, 559, 640, 4503, 547, 560,
2105 : 4503, 548, 4503, 4503, 549, 561, 4503, 641, 562, 642,
2106 :
2107 : 755, 756, 643, 612, 550, 551, 770, 613, 739, 552,
2108 : 558, 614, 553, 740, 559, 640, 554, 615, 560, 555,
2109 : 616, 741, 556, 617, 561, 557, 641, 562, 642, 755,
2110 : 756, 643, 612, 771, 551, 770, 613, 739, 552, 4503,
2111 : 614, 553, 740, 4503, 757, 554, 615, 758, 555, 616,
2112 : 741, 556, 617, 634, 557, 569, 772, 4503, 4503, 570,
2113 : 635, 636, 771, 571, 4503, 773, 572, 637, 573, 574,
2114 : 638, 639, 575, 757, 4503, 576, 758, 1219, 1219, 1219,
2115 : 1219, 4503, 634, 646, 569, 772, 647, 648, 570, 635,
2116 : 636, 4503, 571, 649, 773, 572, 637, 573, 574, 638,
2117 :
2118 : 639, 575, 759, 760, 576, 585, 595, 586, 596, 587,
2119 : 597, 774, 646, 588, 780, 647, 648, 775, 589, 590,
2120 : 598, 776, 649, 781, 591, 599, 600, 4503, 4503, 761,
2121 : 762, 759, 760, 788, 585, 595, 586, 596, 587, 597,
2122 : 774, 4503, 588, 780, 4503, 4503, 775, 589, 590, 598,
2123 : 776, 4503, 781, 591, 599, 600, 601, 602, 761, 762,
2124 : 603, 777, 788, 782, 604, 778, 605, 792, 606, 789,
2125 : 607, 779, 608, 783, 609, 610, 611, 4503, 790, 4503,
2126 : 791, 793, 801, 4503, 4503, 601, 602, 4503, 804, 603,
2127 : 777, 4503, 782, 604, 778, 605, 792, 606, 789, 607,
2128 :
2129 : 779, 608, 783, 609, 610, 611, 624, 790, 625, 791,
2130 : 793, 801, 626, 802, 805, 810, 627, 804, 628, 629,
2131 : 630, 803, 696, 631, 632, 697, 698, 813, 633, 4503,
2132 : 4503, 699, 819, 700, 4503, 624, 4503, 625, 701, 4503,
2133 : 4503, 626, 802, 805, 810, 627, 830, 628, 629, 630,
2134 : 803, 696, 631, 632, 697, 698, 813, 633, 683, 730,
2135 : 699, 819, 700, 794, 731, 732, 831, 701, 784, 684,
2136 : 685, 686, 795, 785, 4503, 830, 687, 688, 689, 796,
2137 : 797, 4503, 806, 786, 798, 807, 787, 683, 730, 4503,
2138 : 832, 799, 794, 731, 732, 831, 4503, 784, 684, 685,
2139 :
2140 : 686, 795, 785, 800, 811, 687, 688, 689, 796, 797,
2141 : 808, 806, 786, 798, 807, 787, 812, 814, 816, 832,
2142 : 799, 809, 820, 823, 828, 815, 817, 833, 834, 821,
2143 : 829, 822, 800, 811, 835, 824, 825, 836, 818, 808,
2144 : 826, 843, 844, 845, 827, 812, 814, 816, 4503, 4503,
2145 : 809, 820, 823, 828, 815, 817, 833, 834, 821, 829,
2146 : 822, 4503, 4503, 835, 824, 825, 836, 818, 4503, 826,
2147 : 843, 844, 845, 827, 275, 275, 275, 275, 837, 850,
2148 : 837, 4503, 838, 838, 838, 838, 4503, 276, 839, 839,
2149 : 839, 839, 277, 278, 278, 278, 278, 848, 841, 846,
2150 :
2151 : 841, 840, 842, 842, 842, 842, 279, 847, 850, 851,
2152 : 853, 855, 856, 857, 858, 852, 276, 863, 849, 864,
2153 : 867, 870, 892, 4503, 854, 865, 848, 859, 846, 4503,
2154 : 840, 4503, 866, 868, 4503, 279, 847, 869, 851, 853,
2155 : 855, 856, 857, 858, 852, 860, 863, 849, 864, 867,
2156 : 870, 892, 861, 854, 865, 878, 859, 893, 862, 4503,
2157 : 890, 866, 868, 880, 882, 879, 869, 894, 881, 883,
2158 : 4503, 4503, 4503, 891, 860, 895, 896, 1223, 1223, 1223,
2159 : 1223, 861, 897, 4503, 878, 898, 893, 862, 871, 890,
2160 : 903, 4503, 880, 882, 879, 904, 894, 881, 883, 872,
2161 :
2162 : 873, 874, 891, 905, 895, 896, 875, 876, 877, 884,
2163 : 899, 897, 885, 886, 898, 906, 900, 871, 887, 903,
2164 : 888, 910, 915, 901, 904, 889, 911, 902, 872, 873,
2165 : 874, 4503, 905, 912, 907, 875, 876, 877, 884, 899,
2166 : 908, 885, 886, 909, 906, 900, 913, 887, 916, 888,
2167 : 910, 915, 901, 917, 889, 911, 902, 921, 922, 918,
2168 : 914, 926, 912, 907, 919, 920, 935, 923, 927, 908,
2169 : 936, 4503, 909, 928, 930, 913, 931, 916, 924, 925,
2170 : 932, 929, 917, 937, 933, 940, 921, 922, 918, 914,
2171 : 926, 938, 4503, 919, 920, 935, 923, 927, 951, 936,
2172 :
2173 : 934, 939, 928, 930, 952, 931, 953, 924, 925, 932,
2174 : 929, 941, 937, 933, 940, 942, 943, 944, 945, 954,
2175 : 938, 946, 947, 948, 949, 950, 955, 951, 956, 934,
2176 : 939, 957, 958, 952, 959, 953, 960, 961, 962, 963,
2177 : 941, 968, 969, 964, 942, 943, 944, 945, 954, 970,
2178 : 946, 947, 948, 949, 950, 955, 976, 956, 980, 971,
2179 : 957, 958, 981, 959, 4503, 960, 961, 962, 963, 965,
2180 : 968, 969, 964, 966, 989, 972, 992, 4503, 970, 967,
2181 : 973, 993, 986, 977, 4503, 976, 998, 980, 971, 987,
2182 : 974, 981, 978, 975, 979, 1001, 4503, 982, 965, 990,
2183 :
2184 : 1007, 988, 966, 989, 972, 992, 983, 991, 967, 973,
2185 : 993, 986, 977, 984, 985, 998, 996, 994, 987, 974,
2186 : 995, 978, 975, 979, 1001, 999, 982, 997, 990, 1007,
2187 : 988, 1002, 1004, 1018, 4503, 983, 991, 1000, 4503, 1003,
2188 : 1005, 1008, 984, 985, 1019, 996, 994, 1011, 1009, 995,
2189 : 1010, 1016, 1006, 1020, 999, 1021, 997, 1017, 1022, 1012,
2190 : 1002, 1004, 1018, 1013, 1023, 1024, 1000, 1014, 1003, 1005,
2191 : 1008, 1015, 4503, 1019, 4503, 4503, 1011, 1009, 4503, 1010,
2192 : 1016, 1006, 1020, 4503, 1021, 4503, 1017, 1022, 1012, 4503,
2193 : 4503, 1033, 1013, 1023, 1024, 4503, 1014, 1034, 4503, 4503,
2194 :
2195 : 1015, 398, 398, 398, 398, 1025, 4503, 1025, 1035, 1026,
2196 : 1026, 1026, 1026, 1040, 399, 1028, 1028, 1028, 1028, 400,
2197 : 1033, 401, 1030, 1030, 1030, 1030, 1034, 1031, 1029, 1031,
2198 : 1036, 1032, 1032, 1032, 1032, 403, 1043, 1035, 1037, 1038,
2199 : 1041, 1045, 1040, 399, 1046, 1050, 1042, 1047, 1048, 1053,
2200 : 1044, 1054, 1051, 1057, 1060, 1055, 1068, 1029, 1052, 1036,
2201 : 1039, 1049, 1056, 4503, 403, 1043, 1069, 1037, 1038, 1041,
2202 : 1045, 1082, 4503, 1046, 1050, 1042, 1047, 1048, 1053, 1044,
2203 : 1054, 1051, 1057, 1060, 1055, 1068, 4503, 1052, 1058, 1039,
2204 : 1049, 1056, 1059, 4503, 1070, 1069, 1072, 4503, 1083, 1071,
2205 :
2206 : 1082, 1073, 4503, 1080, 4503, 4503, 4503, 1084, 1085, 1086,
2207 : 1087, 4503, 4503, 4503, 1088, 1074, 1081, 1058, 1075, 1076,
2208 : 1093, 1059, 1061, 1070, 1077, 1072, 1078, 1083, 1071, 1094,
2209 : 1073, 1079, 1080, 1062, 1063, 1064, 1084, 1085, 1086, 1087,
2210 : 1065, 1066, 1067, 1088, 1074, 1081, 1095, 1075, 1076, 1093,
2211 : 1096, 1061, 1100, 1077, 1101, 1078, 1105, 1106, 1094, 1089,
2212 : 1079, 1102, 1062, 1063, 1064, 1090, 1103, 1107, 1097, 1065,
2213 : 1066, 1067, 1091, 1111, 1098, 1095, 1092, 1099, 1112, 1096,
2214 : 1104, 1100, 4503, 1101, 1116, 1105, 1106, 1108, 1089, 1120,
2215 : 1102, 1121, 1109, 1110, 1090, 1103, 1107, 1097, 1125, 1113,
2216 :
2217 : 1126, 1091, 1111, 1098, 1122, 1092, 1099, 1112, 1123, 1104,
2218 : 1114, 1115, 1117, 1116, 1127, 1130, 1108, 1118, 1120, 1131,
2219 : 1121, 1109, 1110, 1132, 1124, 1119, 1128, 1125, 1113, 1126,
2220 : 1133, 1134, 1135, 1122, 1141, 1136, 1129, 1123, 1142, 1114,
2221 : 1115, 1117, 1143, 1127, 1130, 1144, 1118, 1145, 1131, 1137,
2222 : 1138, 1146, 1132, 1124, 1119, 1128, 1139, 1140, 1147, 1133,
2223 : 1134, 1135, 1148, 1141, 1136, 1129, 1149, 1142, 1150, 1151,
2224 : 1152, 1143, 1158, 1153, 1144, 1159, 1145, 1154, 1137, 1138,
2225 : 1146, 1166, 1160, 4503, 1155, 1139, 1140, 1147, 1156, 4503,
2226 : 1170, 1148, 1161, 1171, 1157, 1149, 1179, 1150, 1151, 1152,
2227 :
2228 : 1162, 1158, 1153, 1167, 1159, 1163, 1154, 1182, 1183, 1176,
2229 : 1166, 1160, 1168, 1155, 1169, 1164, 1177, 1156, 1165, 1170,
2230 : 4503, 1161, 1171, 1157, 1188, 1179, 1191, 1180, 1178, 1162,
2231 : 1197, 1192, 1167, 1172, 1163, 1181, 1182, 1183, 1176, 1193,
2232 : 1208, 1168, 1173, 1169, 1164, 1177, 1189, 1165, 1184, 1174,
2233 : 1175, 1185, 1186, 1188, 1201, 1191, 1180, 1178, 1190, 1197,
2234 : 1192, 4503, 1172, 1187, 1181, 1194, 1202, 1198, 1193, 1208,
2235 : 1209, 1173, 1210, 1195, 1199, 1189, 1200, 1184, 1174, 1175,
2236 : 1185, 1186, 1203, 1201, 1211, 1196, 1204, 1190, 1212, 1213,
2237 : 1205, 1206, 1187, 1214, 1194, 1202, 1198, 1207, 4503, 1209,
2238 :
2239 : 4503, 1210, 1195, 1199, 4503, 1200, 838, 838, 838, 838,
2240 : 1228, 1203, 4503, 1211, 1196, 1204, 4503, 1212, 1213, 1205,
2241 : 1206, 4503, 1214, 4503, 4503, 4503, 1207, 521, 521, 521,
2242 : 521, 1215, 4503, 1215, 1229, 1216, 1216, 1216, 1216, 1228,
2243 : 522, 1217, 1217, 1217, 1217, 523, 1230, 524, 1220, 1220,
2244 : 1220, 1220, 1224, 1221, 1218, 1221, 1233, 1222, 1222, 1222,
2245 : 1222, 526, 4503, 1229, 1225, 1225, 1225, 1225, 1235, 522,
2246 : 1227, 653, 1231, 653, 1238, 1230, 653, 1234, 1236, 1240,
2247 : 1232, 1241, 1248, 1218, 1237, 1233, 1249, 653, 1239, 4503,
2248 : 526, 653, 1252, 4503, 4503, 1250, 1255, 1235, 1242, 1243,
2249 :
2250 : 4503, 1231, 1251, 1238, 1263, 4503, 1234, 1236, 1240, 1232,
2251 : 1241, 1248, 1244, 1237, 1264, 1249, 1245, 1239, 653, 1277,
2252 : 1278, 1252, 1253, 1246, 1250, 1255, 1254, 1242, 1243, 1247,
2253 : 4503, 1251, 1265, 1263, 1267, 4503, 1279, 1266, 1280, 1268,
2254 : 4503, 1244, 4503, 1264, 1281, 1245, 1282, 1275, 1277, 1278,
2255 : 4503, 1253, 1246, 1269, 1283, 1254, 1270, 1271, 1247, 1256,
2256 : 1276, 1265, 1272, 1267, 1273, 1279, 1266, 1280, 1268, 1274,
2257 : 1257, 1258, 1259, 1281, 1288, 1282, 1275, 1260, 1261, 1262,
2258 : 4503, 1289, 1269, 1283, 4503, 1270, 1271, 1290, 1256, 1276,
2259 : 1291, 1272, 1295, 1273, 1300, 1301, 1284, 1296, 1274, 1257,
2260 :
2261 : 1258, 1259, 1285, 1288, 1297, 1292, 1260, 1261, 1262, 1286,
2262 : 1289, 1293, 1302, 1287, 1294, 1298, 1290, 1306, 1307, 1291,
2263 : 4503, 1295, 1303, 1300, 1301, 1284, 1296, 1304, 1305, 1299,
2264 : 1311, 1285, 1320, 1297, 1292, 4503, 1321, 1308, 1286, 1322,
2265 : 1293, 1302, 1287, 1294, 1298, 1325, 1306, 1307, 1309, 1310,
2266 : 1312, 1303, 1315, 1336, 1316, 1313, 1304, 1305, 1299, 1311,
2267 : 1317, 1320, 1323, 1314, 1318, 1321, 1308, 1326, 1322, 1328,
2268 : 1329, 1327, 1324, 1330, 1325, 1337, 1331, 1309, 1310, 1312,
2269 : 1319, 1315, 1336, 1316, 1313, 1332, 1333, 1334, 1335, 1317,
2270 : 1338, 1323, 1314, 1318, 1339, 1340, 1326, 1341, 1328, 1329,
2271 :
2272 : 1327, 1324, 1330, 1342, 1337, 1331, 1343, 1344, 1345, 1319,
2273 : 1346, 1347, 1353, 1354, 1332, 1333, 1334, 1335, 1348, 1338,
2274 : 1355, 1350, 1349, 1339, 1340, 1351, 1341, 1361, 1357, 1365,
2275 : 1356, 1352, 1342, 1358, 1366, 1343, 1344, 1345, 1374, 1346,
2276 : 1347, 1353, 1354, 1359, 1362, 4503, 1360, 1348, 1377, 1355,
2277 : 1350, 1349, 1367, 1363, 1351, 1364, 1361, 1357, 1365, 1356,
2278 : 1352, 1368, 1358, 1366, 1371, 1378, 1375, 1374, 1369, 1370,
2279 : 1383, 1372, 1359, 1362, 1376, 1360, 1379, 1377, 1381, 1380,
2280 : 1384, 1367, 1363, 1373, 1364, 1386, 1392, 4503, 1387, 1382,
2281 : 1368, 4503, 1385, 1371, 1378, 1375, 1388, 1369, 1370, 1383,
2282 :
2283 : 1372, 1403, 1389, 1376, 1393, 1379, 1404, 1381, 1380, 1384,
2284 : 1390, 1394, 1373, 1395, 1386, 1392, 1396, 1387, 1382, 1398,
2285 : 1401, 1385, 1391, 1399, 1405, 1388, 1402, 1400, 1397, 1406,
2286 : 1403, 1389, 1407, 1393, 1408, 1404, 1409, 1410, 1411, 1390,
2287 : 1394, 1412, 1395, 1413, 1414, 1396, 1415, 1416, 1398, 1401,
2288 : 1417, 1391, 1399, 1405, 1418, 1402, 1400, 1397, 1406, 1419,
2289 : 1420, 1407, 1421, 1408, 1422, 1409, 1410, 1411, 1423, 1425,
2290 : 1412, 1426, 1413, 1414, 1427, 1415, 1416, 1428, 1430, 1417,
2291 : 1431, 1432, 1433, 1418, 1434, 1435, 1436, 4503, 1419, 1420,
2292 : 1440, 1421, 1429, 1422, 1441, 1442, 1443, 1423, 1425, 1437,
2293 :
2294 : 1426, 1448, 4503, 1427, 4503, 1451, 1428, 1430, 1452, 1431,
2295 : 1432, 1433, 1453, 1434, 1435, 1436, 1438, 1444, 1439, 1440,
2296 : 1454, 1429, 1455, 1441, 1442, 1443, 1449, 1450, 1437, 1456,
2297 : 1448, 1445, 1446, 1447, 1451, 1457, 1458, 1452, 1459, 1460,
2298 : 1461, 1453, 1462, 1463, 1464, 1438, 1444, 1439, 1465, 1454,
2299 : 1466, 1455, 1468, 1469, 1470, 1449, 1450, 1467, 1456, 1471,
2300 : 1445, 1446, 1447, 1472, 1457, 1458, 1473, 1459, 1460, 1461,
2301 : 1475, 1462, 1463, 1464, 1476, 1477, 1478, 1465, 1479, 1466,
2302 : 1474, 1468, 1469, 1470, 1480, 1481, 1467, 1482, 1471, 1483,
2303 : 1484, 1485, 1472, 1486, 1491, 1473, 1487, 1492, 1489, 1475,
2304 :
2305 : 1493, 1494, 1495, 1476, 1477, 1478, 1496, 1479, 1490, 1474,
2306 : 1497, 1488, 1498, 1480, 1481, 1499, 1482, 1500, 1483, 1484,
2307 : 1485, 1501, 1486, 1491, 1503, 1487, 1492, 1489, 1504, 1493,
2308 : 1494, 1495, 1505, 1506, 1502, 1496, 1507, 1490, 1509, 1497,
2309 : 1488, 1498, 1510, 1511, 1499, 1513, 1500, 1514, 1508, 1515,
2310 : 1516, 1517, 1518, 1503, 1519, 1520, 1521, 1504, 1522, 1523,
2311 : 1524, 1505, 1506, 1502, 1525, 1507, 1526, 1509, 1527, 1528,
2312 : 1529, 1510, 1511, 1530, 1513, 1532, 1514, 1508, 1515, 1516,
2313 : 1517, 1518, 1531, 1519, 1520, 1521, 1533, 1522, 1523, 1524,
2314 : 1534, 1535, 1539, 1525, 1540, 1526, 1543, 1527, 1528, 1529,
2315 :
2316 : 1536, 1541, 1530, 1537, 1532, 1544, 1545, 1538, 1542, 1546,
2317 : 1549, 1531, 1550, 1547, 1551, 1533, 1552, 1553, 1554, 1534,
2318 : 1535, 1539, 1548, 1540, 1555, 1543, 1556, 1557, 1558, 1536,
2319 : 1541, 1559, 1537, 1560, 1544, 1545, 1538, 1542, 1546, 1549,
2320 : 1561, 1550, 1547, 1551, 1562, 1552, 1553, 1554, 1563, 1564,
2321 : 1565, 1566, 1567, 1555, 1568, 1556, 1557, 1558, 1569, 1571,
2322 : 1559, 1573, 1560, 1570, 1575, 1572, 1576, 1579, 1580, 1561,
2323 : 1574, 1581, 1577, 1562, 1578, 1582, 1583, 1563, 1564, 1565,
2324 : 1566, 1567, 1584, 1568, 1585, 1590, 1591, 1569, 1571, 1594,
2325 : 1573, 1595, 1570, 1575, 1572, 1576, 1579, 1580, 1592, 1574,
2326 :
2327 : 1581, 1577, 1593, 1578, 1582, 1583, 1586, 1587, 1596, 1597,
2328 : 4503, 1584, 4503, 1585, 1590, 1591, 4503, 1600, 1594, 4503,
2329 : 1595, 838, 838, 838, 838, 4503, 4503, 1592, 1601, 1588,
2330 : 4503, 1593, 1589, 4503, 1602, 1586, 1587, 1596, 1597, 839,
2331 : 839, 839, 839, 1598, 1603, 1598, 1600, 1599, 1599, 1599,
2332 : 1599, 1604, 840, 842, 842, 842, 842, 1601, 1588, 842,
2333 : 842, 842, 842, 1602, 1605, 1606, 1607, 1608, 1609, 1610,
2334 : 1611, 1612, 1613, 1603, 1615, 1616, 1617, 1618, 1620, 1621,
2335 : 1604, 840, 1622, 1623, 1624, 1625, 1626, 1630, 1631, 1632,
2336 : 1633, 4503, 1619, 1605, 1606, 1607, 1608, 1609, 1610, 1611,
2337 :
2338 : 1612, 1613, 1638, 1615, 1616, 1617, 1618, 1620, 1621, 1627,
2339 : 1643, 1622, 1623, 1624, 1625, 1626, 1630, 1631, 1632, 1633,
2340 : 1634, 1619, 1639, 1640, 1641, 1644, 1628, 1642, 1629, 1645,
2341 : 1646, 1638, 1647, 1648, 1635, 1636, 1637, 1649, 1627, 1643,
2342 : 1650, 1651, 1652, 1653, 1654, 1655, 1658, 1659, 1660, 1634,
2343 : 1661, 1639, 1640, 1641, 1644, 1628, 1642, 1629, 1645, 1646,
2344 : 1656, 1647, 1648, 1635, 1636, 1637, 1649, 1657, 1662, 1650,
2345 : 1651, 1652, 1653, 1654, 1655, 1658, 1659, 1660, 1663, 1661,
2346 : 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1656,
2347 : 1674, 1675, 1664, 1676, 1679, 1681, 1657, 1662, 1682, 1683,
2348 :
2349 : 1684, 1685, 1686, 1677, 1680, 1687, 1688, 1663, 1689, 1665,
2350 : 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1678, 1674,
2351 : 1675, 1664, 1676, 1679, 1681, 1690, 1691, 1682, 1683, 1684,
2352 : 1685, 1686, 1677, 1680, 1687, 1688, 1693, 1689, 1694, 1692,
2353 : 1695, 1696, 1699, 1697, 1700, 1701, 1703, 1678, 1704, 1705,
2354 : 1706, 1707, 1708, 1709, 1690, 1698, 1710, 1711, 1712, 1713,
2355 : 1714, 1715, 1716, 1717, 1718, 1693, 1719, 1694, 1692, 1695,
2356 : 1696, 1699, 1697, 1700, 1701, 1703, 1722, 1704, 1705, 1706,
2357 : 1707, 1708, 1709, 1723, 1698, 1710, 1711, 1712, 1713, 1714,
2358 : 1715, 1716, 1717, 1718, 1720, 1719, 1724, 1725, 1729, 1726,
2359 :
2360 : 1730, 1731, 1727, 1721, 1733, 1722, 1728, 1734, 1732, 1735,
2361 : 1736, 1737, 1723, 1739, 1740, 1741, 1742, 1743, 1744, 1745,
2362 : 1738, 1746, 1747, 1720, 1748, 1724, 1725, 1729, 1726, 1730,
2363 : 1731, 1727, 1721, 1733, 1749, 1728, 1734, 1732, 1735, 1736,
2364 : 1737, 1750, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1751,
2365 : 1746, 1747, 1752, 1748, 1753, 1754, 1755, 1756, 1757, 1758,
2366 : 1759, 1761, 1763, 1749, 1765, 1760, 1766, 1762, 1769, 1770,
2367 : 1750, 1764, 1767, 1771, 1768, 1772, 1773, 1774, 1751, 1775,
2368 : 4503, 1752, 1780, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
2369 : 1761, 1763, 1781, 1765, 1760, 1766, 1762, 1769, 1770, 1784,
2370 :
2371 : 1764, 1767, 1771, 1768, 1772, 1773, 1774, 1785, 1775, 1776,
2372 : 1777, 1780, 1782, 1786, 1787, 1794, 1783, 1788, 1788, 1788,
2373 : 1788, 1781, 1026, 1026, 1026, 1026, 4503, 4503, 1784, 1795,
2374 : 1796, 4503, 1778, 4503, 4503, 1779, 1785, 4503, 1776, 1777,
2375 : 1797, 1782, 1786, 1787, 1794, 1783, 1789, 1789, 1789, 1789,
2376 : 1028, 1028, 1028, 1028, 1793, 1793, 1793, 1793, 1795, 1796,
2377 : 1790, 1778, 1790, 1029, 1791, 1791, 1791, 1791, 400, 1797,
2378 : 401, 1792, 1792, 1792, 1792, 1032, 1032, 1032, 1032, 1798,
2379 : 1799, 1800, 1801, 1802, 403, 1803, 1804, 1805, 1806, 1807,
2380 : 1809, 1810, 1029, 1811, 1814, 1815, 1816, 1817, 1818, 1819,
2381 :
2382 : 1820, 4503, 1824, 1825, 1826, 1827, 1812, 1832, 1798, 1799,
2383 : 1800, 1801, 1802, 403, 1803, 1804, 1805, 1806, 1807, 1809,
2384 : 1810, 1813, 1811, 1814, 1815, 1816, 1817, 1818, 1819, 1820,
2385 : 1821, 1824, 1825, 1826, 1827, 1812, 1832, 1828, 1833, 1834,
2386 : 1835, 1837, 1838, 1836, 1839, 1840, 1841, 1822, 1842, 1823,
2387 : 1813, 1829, 1830, 1831, 1843, 1844, 1845, 1846, 1847, 1821,
2388 : 1848, 1849, 1852, 1853, 1854, 1855, 1828, 1833, 1834, 1835,
2389 : 1837, 1838, 1836, 1839, 1840, 1841, 1822, 1842, 1823, 1856,
2390 : 1829, 1830, 1831, 1843, 1844, 1845, 1846, 1847, 1850, 1848,
2391 : 1849, 1852, 1853, 1854, 1855, 1851, 1857, 1859, 1860, 1861,
2392 :
2393 : 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1856, 1870,
2394 : 1858, 1873, 1875, 1876, 1877, 1878, 1879, 1850, 1880, 1881,
2395 : 1882, 1874, 1871, 1883, 1851, 1857, 1859, 1860, 1861, 1862,
2396 : 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1872, 1870, 1858,
2397 : 1873, 1875, 1876, 1877, 1878, 1879, 1884, 1880, 1881, 1882,
2398 : 1874, 1871, 1883, 1887, 1885, 1888, 1889, 1890, 1891, 1893,
2399 : 1894, 1895, 1897, 1898, 1899, 1900, 1872, 1886, 1901, 1902,
2400 : 1892, 1903, 1904, 1905, 1906, 1884, 1907, 1908, 1909, 1910,
2401 : 1911, 1912, 1887, 1913, 1888, 1889, 1890, 1891, 1893, 1894,
2402 : 1895, 1897, 1898, 1899, 1900, 1914, 1886, 1901, 1902, 1892,
2403 :
2404 : 1903, 1904, 1905, 1906, 1915, 1907, 1908, 1909, 1910, 1911,
2405 : 1912, 1916, 1913, 1917, 1918, 1919, 1920, 1923, 1924, 1921,
2406 : 1925, 1927, 1928, 1922, 1914, 1929, 1930, 1926, 1931, 1933,
2407 : 1934, 1935, 1936, 1915, 1937, 1938, 1939, 1932, 1940, 1941,
2408 : 1916, 1942, 1917, 1918, 1919, 1920, 1923, 1924, 1921, 1925,
2409 : 1927, 1928, 1922, 1943, 1929, 1930, 1926, 1931, 1933, 1934,
2410 : 1935, 1936, 1944, 1937, 1938, 1939, 1945, 1940, 1941, 1946,
2411 : 1942, 1947, 1948, 1949, 1950, 1951, 1952, 1957, 1953, 1955,
2412 : 1959, 1960, 1943, 1954, 1963, 1956, 1958, 1961, 1964, 1962,
2413 : 1965, 1944, 1966, 1967, 1968, 1945, 1969, 4503, 1946, 1974,
2414 :
2415 : 1947, 1948, 1949, 1950, 1951, 1952, 1957, 1953, 1955, 1959,
2416 : 1960, 1975, 1954, 1963, 1956, 1958, 1961, 1964, 1962, 1965,
2417 : 4503, 1966, 1967, 1968, 1978, 1969, 1970, 1971, 1974, 1976,
2418 : 1979, 1980, 1981, 1977, 1982, 1982, 1982, 1982, 4503, 1990,
2419 : 1975, 1216, 1216, 1216, 1216, 1985, 1985, 1985, 1985, 1972,
2420 : 4503, 4503, 1973, 1978, 4503, 1970, 1971, 4503, 1976, 1979,
2421 : 1980, 1981, 1977, 1217, 1217, 1217, 1217, 1983, 1990, 1983,
2422 : 4503, 1984, 1984, 1984, 1984, 1991, 1218, 523, 1972, 524,
2423 : 1986, 1986, 1986, 1986, 1987, 1987, 1987, 1987, 1222, 1222,
2424 : 1222, 1222, 4503, 526, 1224, 1988, 1988, 1988, 1988, 1224,
2425 :
2426 : 1992, 1993, 1994, 4503, 1991, 1218, 1223, 1223, 1223, 1223,
2427 : 1995, 1989, 1989, 1989, 1989, 1227, 653, 1996, 653, 1997,
2428 : 1998, 653, 526, 1999, 2000, 2001, 2002, 2003, 2005, 1992,
2429 : 1993, 1994, 653, 2006, 4503, 2007, 653, 2010, 2011, 1995,
2430 : 2012, 2013, 2014, 2008, 2015, 2016, 1996, 4503, 1997, 1998,
2431 : 2020, 2021, 1999, 2000, 2001, 2002, 2003, 2005, 2009, 2017,
2432 : 2022, 2023, 2006, 653, 2007, 2028, 2010, 2011, 2024, 2012,
2433 : 2013, 2014, 2008, 2015, 2016, 2033, 2018, 2034, 2019, 2020,
2434 : 2021, 2035, 2025, 2026, 2027, 2029, 2030, 2009, 2017, 2022,
2435 : 2023, 2036, 2031, 2037, 2028, 2032, 2038, 2024, 2039, 2040,
2436 :
2437 : 2041, 2042, 2043, 2044, 2033, 2018, 2034, 2019, 2045, 2046,
2438 : 2035, 2025, 2026, 2027, 2029, 2030, 2047, 2048, 2049, 2050,
2439 : 2036, 2031, 2037, 2051, 2032, 2038, 2052, 2039, 2040, 2041,
2440 : 2042, 2043, 2044, 2055, 2056, 2053, 2057, 2045, 2046, 2058,
2441 : 2059, 2060, 2061, 2062, 2063, 2047, 2048, 2049, 2050, 2054,
2442 : 2064, 2065, 2051, 2066, 2071, 2052, 2069, 2072, 2073, 2067,
2443 : 2074, 2075, 2055, 2056, 2053, 2057, 2070, 2076, 2058, 2059,
2444 : 2060, 2061, 2062, 2063, 2068, 2077, 2078, 2079, 2054, 2064,
2445 : 2065, 2080, 2066, 2071, 2081, 2069, 2072, 2073, 2067, 2074,
2446 : 2075, 2083, 2084, 2085, 2086, 2070, 2076, 2082, 2089, 2087,
2447 :
2448 : 2090, 2091, 2093, 2068, 2077, 2078, 2079, 2094, 2095, 2096,
2449 : 2080, 2088, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104,
2450 : 2083, 2084, 2085, 2086, 2105, 2106, 2082, 2089, 2087, 2090,
2451 : 2091, 2093, 2107, 2108, 2109, 2112, 2094, 2095, 2096, 2113,
2452 : 2088, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2110,
2453 : 2114, 2115, 2116, 2105, 2106, 2117, 2119, 2120, 2111, 2118,
2454 : 2121, 2107, 2108, 2109, 2112, 2123, 2124, 2122, 2113, 2125,
2455 : 2126, 2129, 2130, 2127, 2131, 2132, 2133, 2134, 2110, 2114,
2456 : 2115, 2116, 2128, 2135, 2117, 2119, 2120, 2111, 2118, 2121,
2457 : 2136, 2137, 2138, 2139, 2123, 2124, 2122, 2140, 2125, 2126,
2458 :
2459 : 2129, 2130, 2127, 2131, 2132, 2133, 2134, 2141, 2142, 2143,
2460 : 2144, 2145, 2135, 2146, 2147, 2148, 2153, 2155, 2149, 2136,
2461 : 2137, 2138, 2139, 2150, 2151, 2154, 2140, 2156, 2159, 2157,
2462 : 2152, 2158, 2160, 2161, 2162, 2163, 2141, 2142, 2143, 2144,
2463 : 2145, 2164, 2146, 2147, 2148, 2153, 2155, 2149, 2165, 2166,
2464 : 2167, 2170, 2150, 2151, 2154, 2171, 2156, 2159, 2157, 2152,
2465 : 2158, 2160, 2161, 2162, 2163, 2172, 2174, 2175, 2176, 2173,
2466 : 2164, 2177, 2168, 2178, 2179, 2169, 2180, 2165, 2166, 2167,
2467 : 2170, 2181, 2183, 2184, 2171, 2185, 2186, 2187, 2188, 2189,
2468 : 2190, 2191, 2194, 2195, 2172, 2174, 2175, 2176, 2173, 2192,
2469 :
2470 : 2177, 2168, 2178, 2179, 2196, 2180, 2198, 2199, 2197, 2200,
2471 : 2181, 2183, 2184, 2201, 2185, 2186, 2187, 2188, 2189, 2190,
2472 : 2191, 2194, 2195, 2202, 2203, 2204, 2193, 2206, 2192, 2207,
2473 : 2208, 2209, 2210, 2196, 2212, 2198, 2199, 2197, 2200, 2213,
2474 : 2214, 2215, 2201, 2216, 2217, 2218, 2219, 2220, 2221, 2222,
2475 : 2211, 2223, 2202, 2203, 2204, 2224, 2206, 2225, 2207, 2208,
2476 : 2209, 2210, 2226, 2212, 2227, 2228, 2229, 2230, 2213, 2214,
2477 : 2215, 2231, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2211,
2478 : 2223, 2232, 2233, 2234, 2224, 2235, 2225, 2236, 2237, 2238,
2479 : 2239, 2226, 2240, 2227, 2228, 2229, 2230, 2241, 2242, 2243,
2480 :
2481 : 2231, 2244, 2245, 2247, 2249, 2250, 2251, 2252, 2256, 2257,
2482 : 2232, 2233, 2234, 2246, 2235, 2253, 2236, 2237, 2238, 2239,
2483 : 2258, 2240, 2259, 2254, 2260, 2261, 2241, 2242, 2243, 2262,
2484 : 2244, 2245, 2247, 2249, 2250, 2251, 2252, 2256, 2257, 2263,
2485 : 2264, 2265, 2246, 2268, 2253, 2266, 2269, 2270, 2271, 2258,
2486 : 2272, 2259, 2254, 2260, 2261, 2267, 2273, 2274, 2262, 2275,
2487 : 2276, 2277, 2278, 2279, 2282, 2283, 2284, 2280, 2263, 2264,
2488 : 2265, 2281, 2268, 2285, 2266, 2269, 2270, 2271, 2286, 2272,
2489 : 2287, 2288, 2289, 2290, 2267, 2273, 2274, 2291, 2275, 2276,
2490 : 2277, 2278, 2279, 2282, 2283, 2284, 2280, 2292, 2293, 2294,
2491 :
2492 : 2281, 2295, 2285, 2296, 2297, 2298, 2299, 2286, 2300, 2287,
2493 : 2288, 2289, 2290, 2301, 2302, 2303, 2291, 2304, 2305, 2306,
2494 : 2307, 2308, 2309, 2313, 2314, 2315, 2292, 2293, 2294, 2316,
2495 : 2295, 2317, 2296, 2297, 2298, 2299, 2318, 2300, 2310, 2319,
2496 : 2320, 2311, 2301, 2302, 2303, 2312, 2304, 2305, 2306, 2307,
2497 : 2308, 2309, 2313, 2314, 2315, 2321, 2322, 2323, 2316, 2324,
2498 : 2317, 2325, 2326, 2327, 2328, 2318, 2329, 2310, 2319, 2320,
2499 : 2311, 2332, 2330, 2333, 2312, 2331, 2335, 2336, 2337, 2334,
2500 : 1599, 1599, 1599, 1599, 2321, 2322, 2323, 2338, 2324, 2340,
2501 : 2325, 2326, 2327, 2328, 2341, 2329, 1599, 1599, 1599, 1599,
2502 :
2503 : 2332, 2330, 2333, 2342, 2331, 2335, 2336, 2337, 2334, 2343,
2504 : 2344, 2345, 2346, 2347, 2348, 4503, 2338, 2349, 2340, 2351,
2505 : 2352, 2353, 2355, 2341, 2356, 2354, 2357, 2358, 2359, 2360,
2506 : 2361, 2363, 2342, 2364, 2365, 2366, 4503, 2369, 2343, 2344,
2507 : 2345, 2346, 2347, 2348, 2350, 2370, 2349, 2367, 2351, 2352,
2508 : 2353, 2355, 2371, 2356, 2354, 2357, 2358, 2359, 2360, 2361,
2509 : 2363, 2372, 2364, 2365, 2366, 2368, 2369, 2373, 2374, 2375,
2510 : 2376, 2377, 2378, 2379, 2370, 2380, 2367, 2381, 2382, 2383,
2511 : 2384, 2371, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392,
2512 : 2372, 2393, 2394, 2395, 2368, 2396, 2373, 2374, 2375, 2376,
2513 :
2514 : 2377, 2378, 2379, 2397, 2380, 2398, 2381, 2382, 2383, 2384,
2515 : 2399, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2400,
2516 : 2393, 2394, 2395, 2401, 2396, 2402, 2404, 2406, 2407, 2408,
2517 : 2409, 2413, 2397, 2410, 2398, 2414, 2403, 2415, 2416, 2399,
2518 : 2417, 2411, 2418, 2419, 2420, 2421, 2422, 2425, 2400, 2426,
2519 : 2427, 2423, 2401, 2428, 2402, 2404, 2406, 2407, 2408, 2409,
2520 : 2413, 2424, 2410, 2429, 2414, 2403, 2415, 2416, 2430, 2417,
2521 : 2411, 2418, 2419, 2420, 2421, 2422, 2425, 2431, 2426, 2427,
2522 : 2423, 2432, 2428, 2433, 2434, 2435, 2436, 2437, 2439, 2440,
2523 : 2424, 2438, 2429, 2441, 2442, 2443, 2444, 2430, 2445, 2446,
2524 :
2525 : 2447, 2448, 2449, 2450, 2451, 2452, 2431, 2453, 2454, 2455,
2526 : 2432, 2456, 2433, 2434, 2435, 2436, 2437, 2439, 2440, 2457,
2527 : 2438, 2458, 2441, 2442, 2443, 2444, 2459, 2445, 2446, 2447,
2528 : 2448, 2449, 2450, 2451, 2452, 2460, 2453, 2454, 2455, 2461,
2529 : 2456, 2462, 2463, 2464, 2465, 2466, 2467, 2470, 2457, 2468,
2530 : 2458, 2471, 2472, 2469, 2473, 2459, 2474, 2475, 2476, 2477,
2531 : 2478, 2479, 2480, 2481, 2460, 2482, 2483, 2484, 2461, 2485,
2532 : 2462, 2463, 2464, 2465, 2466, 2467, 2470, 2486, 2468, 2489,
2533 : 2471, 2472, 2469, 2473, 4503, 2474, 2475, 2476, 2477, 2478,
2534 : 2479, 2480, 2481, 2490, 2482, 2483, 2484, 2487, 2485, 2491,
2535 :
2536 : 2488, 1788, 1788, 1788, 1788, 4503, 2486, 4503, 2489, 2492,
2537 : 2492, 2492, 2492, 2493, 2493, 2493, 2493, 1791, 1791, 1791,
2538 : 1791, 2494, 2490, 2495, 2496, 2497, 2487, 2499, 2491, 2488,
2539 : 401, 1792, 1792, 1792, 1792, 1793, 1793, 1793, 1793, 2500,
2540 : 2501, 2502, 2503, 2504, 403, 2505, 2506, 2507, 2510, 4503,
2541 : 2494, 2508, 2495, 2496, 2497, 2511, 2499, 2512, 2514, 2515,
2542 : 2516, 2513, 2517, 2518, 2519, 2520, 2522, 2523, 2500, 2501,
2543 : 2502, 2503, 2504, 403, 2505, 2506, 2507, 2510, 2509, 2524,
2544 : 2508, 2525, 2526, 2528, 2511, 2529, 2512, 2514, 2515, 2516,
2545 : 2513, 2517, 2518, 2519, 2520, 2522, 2523, 2530, 2531, 2532,
2546 :
2547 : 2527, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2524, 2540,
2548 : 2525, 2526, 2528, 2541, 2529, 2542, 2543, 2544, 2545, 2546,
2549 : 2547, 2548, 2549, 2550, 2551, 2552, 2530, 2531, 2532, 2527,
2550 : 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2553, 2540, 2554,
2551 : 2555, 2556, 2541, 2557, 2542, 2543, 2544, 2545, 2546, 2547,
2552 : 2548, 2549, 2550, 2551, 2552, 2558, 2559, 2560, 2563, 2565,
2553 : 2561, 2566, 2567, 2568, 2572, 2569, 2553, 2573, 2554, 2555,
2554 : 2556, 2562, 2557, 2570, 2574, 2575, 2576, 2577, 2578, 2579,
2555 : 2580, 2581, 4503, 2584, 2558, 2559, 2560, 2563, 2565, 2561,
2556 : 2566, 2567, 2568, 2572, 2569, 2585, 2573, 2586, 2587, 2588,
2557 :
2558 : 2562, 2582, 2570, 2574, 2575, 2576, 2577, 2578, 2579, 2580,
2559 : 2581, 2583, 2584, 2589, 2590, 2591, 2592, 2593, 2594, 2595,
2560 : 2598, 2596, 2599, 2600, 2585, 2597, 2586, 2587, 2588, 2601,
2561 : 2582, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610,
2562 : 2583, 2611, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2598,
2563 : 2596, 2599, 2600, 2612, 2597, 2613, 2614, 2615, 2601, 2616,
2564 : 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2617,
2565 : 2611, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2629,
2566 : 2626, 2630, 2612, 2627, 2613, 2614, 2615, 2628, 2616, 2631,
2567 : 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2617, 2640,
2568 :
2569 : 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2629, 2626,
2570 : 2630, 2641, 2627, 2642, 2643, 2644, 2628, 2645, 2631, 2632,
2571 : 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2646, 2640, 2648,
2572 : 2647, 2649, 1982, 1982, 1982, 1982, 4503, 2650, 2655, 4503,
2573 : 2641, 4503, 2642, 2643, 2644, 4503, 2645, 2651, 2651, 2651,
2574 : 2651, 1984, 1984, 1984, 1984, 2656, 2646, 2657, 2648, 2647,
2575 : 2649, 2652, 2652, 2652, 2652, 523, 2650, 2655, 1986, 1986,
2576 : 1986, 1986, 1987, 1987, 1987, 1987, 2654, 2654, 2654, 2654,
2577 : 1224, 526, 2658, 2660, 2656, 2661, 2657, 2662, 2663, 2664,
2578 : 2665, 2666, 1223, 1223, 1223, 1223, 2667, 2668, 4503, 2671,
2579 :
2580 : 2669, 2672, 2673, 2675, 2676, 2677, 2674, 2678, 2679, 2680,
2581 : 526, 2658, 2660, 2681, 2661, 2683, 2662, 2663, 2664, 2665,
2582 : 2666, 2684, 2685, 2686, 2689, 2667, 2668, 2670, 2671, 2669,
2583 : 2672, 2673, 2675, 2676, 2677, 2674, 2678, 2679, 2680, 2687,
2584 : 2690, 2691, 2681, 2692, 2683, 2693, 2694, 2695, 2696, 2697,
2585 : 2684, 2685, 2686, 2689, 2698, 2699, 2700, 2688, 2701, 2702,
2586 : 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2687, 2690,
2587 : 2691, 2711, 2692, 2712, 2693, 2694, 2695, 2696, 2697, 2713,
2588 : 2714, 2715, 2716, 2698, 2699, 2700, 2688, 2701, 2702, 2703,
2589 : 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2717, 2718, 2719,
2590 :
2591 : 2711, 2720, 2712, 2721, 2722, 2724, 2726, 2727, 2713, 2714,
2592 : 2715, 2716, 2728, 2729, 2730, 2723, 2733, 2734, 2735, 2736,
2593 : 2737, 2738, 2731, 2739, 2740, 2741, 2717, 2718, 2719, 2742,
2594 : 2720, 2745, 2721, 2722, 2724, 2726, 2727, 2746, 2747, 2748,
2595 : 2749, 2728, 2729, 2730, 2723, 2733, 2734, 2735, 2736, 2737,
2596 : 2738, 2731, 2739, 2740, 2741, 2743, 2750, 2751, 2742, 2752,
2597 : 2745, 2753, 2754, 2755, 2756, 2744, 2746, 2747, 2748, 2749,
2598 : 2757, 2759, 2760, 2761, 2758, 2762, 2763, 2764, 2765, 2766,
2599 : 2767, 2768, 2769, 2770, 2743, 2750, 2751, 2771, 2752, 2772,
2600 : 2753, 2754, 2755, 2756, 2744, 2773, 2774, 2775, 2776, 2757,
2601 :
2602 : 2759, 2760, 2761, 2758, 2762, 2763, 2764, 2765, 2766, 2767,
2603 : 2768, 2769, 2770, 2777, 2778, 2779, 2771, 2780, 2772, 2781,
2604 : 2782, 2783, 2784, 2785, 2773, 2774, 2775, 2776, 2786, 2787,
2605 : 2790, 2791, 2788, 2792, 2793, 2794, 2789, 2795, 2796, 2797,
2606 : 2798, 2799, 2777, 2778, 2779, 2800, 2780, 2801, 2781, 2782,
2607 : 2783, 2784, 2785, 2802, 2803, 2804, 2805, 2786, 2787, 2790,
2608 : 2791, 2788, 2792, 2793, 2794, 2789, 2795, 2796, 2797, 2798,
2609 : 2799, 2806, 2807, 2809, 2800, 2808, 2801, 2813, 2814, 2815,
2610 : 2810, 2816, 2802, 2803, 2804, 2805, 2811, 2817, 2818, 2819,
2611 : 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829,
2612 :
2613 : 2806, 2807, 2809, 2830, 2808, 2831, 2813, 2814, 2815, 2810,
2614 : 2816, 2832, 2833, 2834, 2835, 2811, 2817, 2818, 2819, 2820,
2615 : 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2836,
2616 : 2837, 2838, 2830, 2842, 2831, 2839, 2843, 2844, 2845, 2846,
2617 : 2832, 2833, 2834, 2835, 2848, 2840, 2849, 2841, 2850, 2851,
2618 : 2852, 2853, 2854, 2855, 2857, 2858, 2859, 2860, 2836, 2837,
2619 : 2838, 2861, 2842, 2862, 2839, 2843, 2844, 2845, 2846, 2863,
2620 : 2864, 2867, 2868, 2848, 2840, 2849, 2841, 2850, 2851, 2852,
2621 : 2853, 2854, 2855, 2857, 2858, 2859, 2860, 2869, 2865, 2870,
2622 : 2861, 2866, 2862, 2871, 2872, 2873, 2874, 2875, 2863, 2864,
2623 :
2624 : 2867, 2868, 2876, 2877, 2878, 2880, 2881, 2882, 2883, 2884,
2625 : 2885, 2886, 2887, 2888, 2889, 2890, 2869, 2865, 2870, 2891,
2626 : 2866, 2892, 2871, 2872, 2873, 2874, 2875, 2893, 2894, 2895,
2627 : 2896, 2876, 2877, 2878, 2880, 2881, 2882, 2883, 2884, 2885,
2628 : 2886, 2887, 2888, 2889, 2890, 2897, 2898, 2899, 2891, 2900,
2629 : 2892, 2901, 2902, 2903, 2904, 2905, 2893, 2894, 2895, 2896,
2630 : 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915,
2631 : 2916, 2917, 2918, 2919, 2897, 2898, 2899, 2920, 2900, 2921,
2632 : 2901, 2902, 2903, 2904, 2905, 2922, 2923, 2924, 2925, 2906,
2633 : 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916,
2634 :
2635 : 2917, 2918, 2919, 2926, 2927, 2928, 2920, 2929, 2921, 2931,
2636 : 2932, 2933, 2934, 2935, 2922, 2923, 2924, 2925, 2936, 2937,
2637 : 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947,
2638 : 2948, 2949, 2926, 2927, 2928, 2950, 2929, 2951, 2931, 2932,
2639 : 2933, 2934, 2935, 2952, 2953, 2954, 2955, 2936, 2937, 2938,
2640 : 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948,
2641 : 2949, 2956, 2960, 2961, 2950, 2962, 2951, 2957, 2963, 2964,
2642 : 2966, 2967, 2952, 2953, 2954, 2955, 2968, 2958, 2969, 2959,
2643 : 2970, 2971, 2972, 2973, 2975, 2976, 2977, 2978, 2979, 2980,
2644 : 2956, 2960, 2961, 2981, 2962, 2982, 2957, 2963, 2964, 2966,
2645 :
2646 : 2967, 2983, 2985, 2986, 2984, 2968, 2958, 2969, 2959, 2970,
2647 : 2971, 2972, 2973, 2975, 2976, 2977, 2978, 2979, 2980, 2987,
2648 : 2988, 2989, 2981, 2990, 2982, 2991, 2992, 2993, 2994, 2995,
2649 : 2983, 2985, 2986, 2984, 2996, 2998, 2999, 3000, 3001, 3002,
2650 : 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 2987, 2988,
2651 : 2989, 3011, 2990, 3012, 2991, 2992, 2993, 2994, 2995, 3013,
2652 : 3014, 3015, 3016, 2996, 2998, 2999, 3000, 3001, 3002, 3003,
2653 : 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3017, 3018, 3019,
2654 : 3011, 3020, 3012, 3021, 3022, 3023, 3024, 3025, 3013, 3014,
2655 : 3015, 3016, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033,
2656 :
2657 : 3034, 3035, 3036, 3037, 3038, 3039, 3017, 3018, 3019, 3040,
2658 : 3020, 3041, 3021, 3022, 3023, 3024, 3025, 3042, 3043, 3044,
2659 : 3045, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034,
2660 : 3035, 3036, 3037, 3038, 3039, 3046, 3047, 3050, 3040, 3051,
2661 : 3041, 2493, 2493, 2493, 2493, 3052, 3042, 3043, 3044, 3045,
2662 : 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062,
2663 : 3063, 3064, 3065, 3066, 3046, 3047, 3050, 3067, 3051, 3068,
2664 : 3069, 3070, 3071, 3072, 3052, 3073, 3074, 3075, 4503, 3053,
2665 : 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063,
2666 : 3064, 3065, 3066, 3079, 3080, 3081, 3067, 3076, 3068, 3069,
2667 :
2668 : 3070, 3071, 3072, 3082, 3073, 3074, 3075, 3077, 3083, 3078,
2669 : 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3094, 3095,
2670 : 3096, 3097, 3079, 3080, 3081, 3098, 3076, 3099, 3100, 3101,
2671 : 3102, 3104, 3082, 3103, 3105, 3106, 3077, 3083, 3078, 3085,
2672 : 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3094, 3095, 3096,
2673 : 3097, 3107, 3108, 3109, 3098, 3110, 3099, 3100, 3101, 3102,
2674 : 3104, 3111, 3103, 3105, 3106, 3112, 3113, 3114, 3115, 3117,
2675 : 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127,
2676 : 3107, 3108, 3109, 3128, 3110, 3129, 3130, 3131, 3132, 3133,
2677 : 3111, 3134, 3135, 3136, 3112, 3113, 3114, 3115, 3117, 3118,
2678 :
2679 : 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3137,
2680 : 3138, 3139, 3128, 3140, 3129, 3130, 3131, 3132, 3133, 3141,
2681 : 3134, 3135, 3136, 3142, 3143, 3144, 3145, 3146, 3147, 3148,
2682 : 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3137, 3138,
2683 : 3139, 3157, 3140, 3158, 3159, 3160, 3161, 3162, 3141, 3163,
2684 : 3164, 3165, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149,
2685 : 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3166, 3171, 3172,
2686 : 3157, 3173, 3158, 3159, 3160, 3161, 3162, 3174, 3163, 3164,
2687 : 3165, 2651, 2651, 2651, 2651, 3168, 3168, 3168, 3168, 3169,
2688 : 3169, 3169, 3169, 3175, 3176, 3177, 3166, 3171, 3172, 3178,
2689 :
2690 : 3173, 3179, 3180, 3181, 3182, 3183, 3174, 3184, 3185, 3186,
2691 : 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196,
2692 : 4503, 3200, 3175, 3176, 3177, 3201, 3202, 3203, 3178, 3204,
2693 : 3179, 3180, 3181, 3182, 3183, 3206, 3184, 3185, 3186, 3187,
2694 : 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197,
2695 : 3200, 3207, 3208, 3209, 3201, 3202, 3203, 3210, 3204, 3198,
2696 : 3211, 3199, 3212, 3213, 3206, 3215, 3216, 3217, 3218, 3219,
2697 : 3220, 3221, 3222, 3223, 3225, 3226, 3224, 3227, 3197, 3228,
2698 : 3207, 3208, 3209, 3229, 3230, 3231, 3210, 3232, 3198, 3211,
2699 : 3199, 3212, 3213, 3233, 3215, 3216, 3217, 3218, 3219, 3220,
2700 :
2701 : 3221, 3222, 3223, 3225, 3226, 3224, 3227, 3234, 3228, 3235,
2702 : 3236, 3238, 3229, 3230, 3231, 3239, 3232, 3240, 3241, 3242,
2703 : 3243, 3244, 3233, 3245, 3246, 3247, 3248, 3249, 3250, 3251,
2704 : 3252, 3253, 3254, 3255, 3256, 3257, 3234, 3258, 3235, 3236,
2705 : 3238, 3259, 3260, 3261, 3239, 3262, 3240, 3241, 3242, 3243,
2706 : 3244, 3263, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252,
2707 : 3253, 3254, 3255, 3256, 3257, 3264, 3258, 3265, 3266, 3267,
2708 : 3259, 3260, 3261, 3268, 3262, 3269, 3270, 3271, 3272, 3273,
2709 : 3263, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282,
2710 : 3283, 3284, 3285, 3286, 3264, 3287, 3265, 3266, 3267, 3288,
2711 :
2712 : 3289, 3290, 3268, 3291, 3269, 3270, 3271, 3272, 3273, 3292,
2713 : 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283,
2714 : 3284, 3285, 3286, 3293, 3287, 3294, 3295, 3296, 3288, 3289,
2715 : 3290, 3297, 3291, 3298, 3299, 3300, 3301, 3302, 3292, 3303,
2716 : 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313,
2717 : 3314, 3315, 3293, 3316, 3294, 3295, 3296, 3317, 3318, 3319,
2718 : 3297, 3320, 3298, 3299, 3300, 3301, 3302, 3321, 3303, 3304,
2719 : 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314,
2720 : 3315, 3322, 3316, 3323, 3324, 3325, 3317, 3318, 3319, 3326,
2721 : 3320, 3327, 3328, 3329, 3330, 3331, 3321, 3332, 3333, 3334,
2722 :
2723 : 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344,
2724 : 3322, 3345, 3323, 3324, 3325, 3346, 3347, 3348, 3326, 3349,
2725 : 3327, 3328, 3329, 3330, 3331, 3350, 3332, 3333, 3334, 3335,
2726 : 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3351,
2727 : 3345, 3352, 3353, 3355, 3346, 3347, 3348, 3357, 3349, 3358,
2728 : 3359, 3360, 3361, 3362, 3350, 3363, 3364, 3365, 3366, 3367,
2729 : 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3351, 3376,
2730 : 3352, 3353, 3355, 3377, 3378, 3379, 3357, 3380, 3358, 3359,
2731 : 3360, 3361, 3362, 3381, 3363, 3364, 3365, 3366, 3367, 3368,
2732 : 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3382, 3376, 3383,
2733 :
2734 : 3384, 3385, 3377, 3378, 3379, 3386, 3380, 3387, 3388, 3389,
2735 : 3390, 3391, 3381, 3392, 3393, 3394, 3395, 3396, 3397, 3398,
2736 : 3399, 3400, 3401, 3402, 3403, 3404, 3382, 3405, 3383, 3384,
2737 : 3385, 3406, 3407, 3408, 3386, 3409, 3387, 3388, 3389, 3390,
2738 : 3391, 3410, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399,
2739 : 3400, 3401, 3402, 3403, 3404, 3411, 3405, 3412, 3413, 3414,
2740 : 3406, 3407, 3408, 3415, 3409, 3416, 3417, 3418, 3419, 3420,
2741 : 3410, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429,
2742 : 3430, 3431, 3432, 3433, 3411, 3434, 3412, 3413, 3414, 3435,
2743 : 3436, 3437, 3415, 3439, 3416, 3417, 3418, 3419, 3420, 3441,
2744 :
2745 : 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430,
2746 : 3431, 3432, 3433, 3442, 3434, 3443, 3444, 3445, 3435, 3436,
2747 : 3437, 3446, 3439, 3447, 3448, 3449, 3450, 3451, 3441, 3452,
2748 : 3453, 3454, 3455, 3456, 3456, 3456, 3456, 3457, 3458, 3459,
2749 : 3460, 3461, 3442, 3462, 3443, 3444, 3445, 3463, 3464, 3465,
2750 : 3446, 3466, 3447, 3448, 3449, 3450, 3451, 3467, 3452, 3453,
2751 : 3454, 3455, 3468, 3469, 3470, 3471, 3457, 3458, 3459, 3460,
2752 : 3461, 3472, 3462, 3473, 3474, 3475, 3463, 3464, 3465, 3476,
2753 : 3466, 3477, 3478, 3479, 3480, 3481, 3467, 3482, 3483, 3484,
2754 : 3485, 3468, 3469, 3470, 3471, 3486, 3487, 3488, 3489, 3490,
2755 :
2756 : 3472, 3491, 3473, 3474, 3475, 3492, 3493, 3494, 3476, 3495,
2757 : 3477, 3478, 3479, 3480, 3481, 3496, 3482, 3483, 3484, 3485,
2758 : 3497, 3498, 3499, 3500, 3486, 3487, 3488, 3489, 3490, 3501,
2759 : 3491, 3502, 3503, 3504, 3492, 3493, 3494, 3505, 3495, 3506,
2760 : 3507, 3508, 3509, 3510, 3496, 3511, 3512, 3513, 3514, 3497,
2761 : 3498, 3499, 3500, 3515, 3516, 3517, 3518, 3519, 3501, 3520,
2762 : 3502, 3503, 3504, 3521, 3522, 3524, 3505, 3526, 3506, 3507,
2763 : 3508, 3509, 3510, 3527, 3511, 3512, 3513, 3514, 3528, 3529,
2764 : 3530, 3531, 3515, 3516, 3517, 3518, 3519, 3532, 3520, 3533,
2765 : 3534, 3535, 3521, 3522, 3524, 3536, 3526, 3537, 3538, 3539,
2766 :
2767 : 3540, 4503, 3527, 3541, 3541, 3541, 3541, 3528, 3529, 3530,
2768 : 3531, 3168, 3168, 3168, 3168, 3543, 3532, 3544, 3533, 3534,
2769 : 3535, 3545, 3546, 3547, 3536, 3548, 3537, 3538, 3539, 3540,
2770 : 3542, 3542, 3542, 3542, 3549, 3550, 3551, 3552, 3553, 3554,
2771 : 3555, 3556, 3557, 3558, 3543, 3559, 3544, 3560, 3561, 3562,
2772 : 3545, 3546, 3547, 3563, 3548, 3564, 3565, 3566, 3567, 3568,
2773 : 3569, 3570, 3571, 3549, 3550, 3551, 3552, 3553, 3554, 3555,
2774 : 3556, 3557, 3558, 3572, 3559, 3573, 3560, 3561, 3562, 3574,
2775 : 3575, 3576, 3563, 3577, 3564, 3565, 3566, 3567, 3568, 3569,
2776 : 3570, 3571, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585,
2777 :
2778 : 3586, 3587, 3572, 3588, 3573, 3589, 3590, 3591, 3574, 3575,
2779 : 3576, 3592, 3577, 3593, 3594, 3595, 3596, 3597, 3598, 3599,
2780 : 3600, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586,
2781 : 3587, 3601, 3588, 3602, 3589, 3590, 3591, 3603, 3604, 3605,
2782 : 3592, 3606, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600,
2783 : 3607, 3608, 3610, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
2784 : 3601, 3619, 3602, 3620, 3621, 3622, 3603, 3604, 3605, 3623,
2785 : 3606, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3607,
2786 : 3608, 3610, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3632,
2787 : 3619, 3633, 3620, 3621, 3622, 3634, 3636, 3637, 3623, 3638,
2788 :
2789 : 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3639, 3640,
2790 : 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3632, 3649,
2791 : 3633, 3650, 3651, 3652, 3634, 3636, 3637, 3653, 3638, 3656,
2792 : 3654, 3657, 3658, 3659, 3660, 3661, 3662, 3639, 3640, 3641,
2793 : 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3663, 3649, 3655,
2794 : 3650, 3651, 3652, 3664, 3666, 3667, 3653, 3670, 3656, 3654,
2795 : 3657, 3658, 3659, 3660, 3661, 3662, 3668, 3671, 3672, 3669,
2796 : 3673, 3674, 3675, 3676, 3677, 3678, 3663, 3679, 3680, 3681,
2797 : 3682, 3683, 3664, 3666, 3667, 3684, 3670, 3685, 3686, 3687,
2798 : 3688, 3690, 3691, 3692, 3693, 3668, 3671, 3672, 3669, 3673,
2799 :
2800 : 3674, 3675, 3676, 3677, 3678, 3694, 3679, 3680, 3681, 3682,
2801 : 3683, 3695, 3696, 3697, 3684, 3698, 3685, 3686, 3687, 3688,
2802 : 3690, 3691, 3692, 3693, 3699, 3700, 3701, 3702, 3703, 3704,
2803 : 3705, 3706, 3707, 3708, 3694, 3710, 3711, 3712, 3713, 3714,
2804 : 3695, 3696, 3697, 3715, 3698, 3716, 3717, 3718, 3720, 3721,
2805 : 3724, 3725, 3709, 3699, 3700, 3701, 3702, 3703, 3704, 3705,
2806 : 3706, 3707, 3708, 3726, 3710, 3711, 3712, 3713, 3714, 3727,
2807 : 3722, 3728, 3715, 3723, 3716, 3717, 3718, 3720, 3721, 3724,
2808 : 3725, 3729, 3730, 3731, 3732, 3733, 3734, 3456, 3456, 3456,
2809 : 3456, 3735, 3726, 3736, 3737, 3738, 3739, 3740, 3727, 3722,
2810 :
2811 : 3728, 3741, 3723, 3742, 3744, 3745, 3746, 3747, 3748, 3749,
2812 : 3729, 3730, 3731, 3732, 3733, 3734, 3750, 3751, 3752, 3753,
2813 : 3735, 3754, 3736, 3737, 3738, 3739, 3740, 3755, 3756, 3757,
2814 : 3741, 3758, 3742, 3744, 3745, 3746, 3747, 3748, 3749, 3759,
2815 : 3760, 3761, 3762, 3764, 3765, 3750, 3751, 3752, 3753, 3766,
2816 : 3754, 3767, 3768, 3769, 3770, 3771, 3755, 3756, 3757, 3772,
2817 : 3758, 3763, 3774, 3775, 3776, 3778, 3779, 3777, 3759, 3760,
2818 : 3761, 3762, 3764, 3765, 3780, 3781, 3782, 3783, 3766, 3784,
2819 : 3767, 3768, 3769, 3770, 3771, 3785, 3786, 3787, 3772, 3788,
2820 : 3789, 3774, 3775, 3776, 3778, 3779, 3777, 3541, 3541, 3541,
2821 :
2822 : 3541, 3790, 3791, 3780, 3781, 3782, 3783, 3792, 3784, 3168,
2823 : 3168, 3168, 3168, 3793, 3785, 3786, 3787, 3794, 3788, 3789,
2824 : 3795, 3796, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805,
2825 : 3790, 3791, 3806, 3807, 3808, 3809, 3792, 3810, 3811, 3812,
2826 : 3813, 3814, 3793, 3815, 3818, 3819, 3794, 3820, 3821, 3795,
2827 : 3796, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3816,
2828 : 3822, 3806, 3807, 3808, 3809, 3823, 3810, 3811, 3812, 3813,
2829 : 3814, 3824, 3815, 3818, 3819, 3825, 3820, 3821, 3817, 3826,
2830 : 3828, 3829, 3830, 3832, 3833, 3831, 3834, 3835, 3816, 3822,
2831 : 3836, 3837, 3838, 3839, 3823, 3840, 3841, 3842, 3843, 3844,
2832 :
2833 : 3824, 3845, 3846, 3847, 3825, 3848, 4503, 4503, 3826, 3828,
2834 : 3829, 3830, 3832, 3833, 3831, 3834, 3835, 3856, 3857, 3836,
2835 : 3837, 3838, 3839, 4503, 3840, 3841, 3842, 3843, 3844, 3858,
2836 : 3845, 3846, 3847, 3859, 3848, 3849, 3850, 3860, 3861, 3862,
2837 : 3863, 3864, 3865, 3866, 3867, 3868, 3856, 3857, 3851, 3869,
2838 : 3852, 3853, 3854, 3855, 3870, 3871, 3872, 3873, 3858, 3874,
2839 : 3875, 3878, 3859, 3879, 3849, 3850, 3860, 3861, 3862, 3863,
2840 : 3864, 3865, 3866, 3867, 3868, 3880, 3881, 3851, 3869, 3852,
2841 : 3853, 3854, 3855, 3870, 3871, 3872, 3873, 3876, 3874, 3875,
2842 : 3878, 3877, 3879, 3882, 3883, 3884, 3885, 3886, 3887, 3889,
2843 :
2844 : 3890, 3891, 3892, 3893, 3880, 3881, 3894, 3895, 3896, 3897,
2845 : 4503, 4503, 3905, 3906, 3907, 3908, 3876, 3909, 3910, 3911,
2846 : 3877, 3912, 3882, 3883, 3884, 3885, 3886, 3887, 3889, 3890,
2847 : 3891, 3892, 3893, 3913, 3914, 3894, 3895, 3896, 3897, 3898,
2848 : 3899, 3905, 3906, 3907, 3908, 3915, 3909, 3910, 3911, 3916,
2849 : 3912, 3917, 3900, 3918, 3901, 3902, 3903, 3904, 3919, 3920,
2850 : 3921, 3922, 3913, 3914, 3923, 3924, 3925, 3927, 3898, 3899,
2851 : 3926, 3928, 3929, 3930, 3915, 3931, 3932, 3933, 3916, 3934,
2852 : 3917, 3900, 3918, 3901, 3902, 3903, 3904, 3919, 3920, 3921,
2853 : 3922, 3935, 3936, 3923, 3924, 3925, 3927, 3938, 3939, 3926,
2854 :
2855 : 3928, 3929, 3930, 3940, 3931, 3932, 3933, 3941, 3934, 3942,
2856 : 3943, 3944, 3945, 3946, 4503, 4503, 3954, 3955, 3956, 3957,
2857 : 3935, 3936, 3958, 3959, 3960, 3961, 3938, 3939, 3962, 4503,
2858 : 4503, 4503, 3940, 3963, 3964, 3965, 3941, 3966, 3942, 3943,
2859 : 3944, 3945, 3946, 3947, 3948, 3954, 3955, 3956, 3957, 3967,
2860 : 3968, 3958, 3959, 3960, 3961, 3969, 3949, 3962, 3950, 3951,
2861 : 3952, 3953, 3963, 3964, 3965, 3970, 3966, 3971, 3972, 3973,
2862 : 3974, 3976, 3947, 3948, 3975, 3977, 3978, 3979, 3967, 3968,
2863 : 3980, 3981, 3982, 3983, 3969, 3949, 3984, 3950, 3951, 3952,
2864 : 3953, 3985, 3987, 3988, 3970, 3989, 3971, 3972, 3973, 3974,
2865 :
2866 : 3976, 3990, 3991, 3975, 3977, 3978, 3979, 3992, 3993, 3980,
2867 : 3981, 3982, 3983, 3994, 3995, 3984, 4503, 4003, 4004, 4005,
2868 : 3985, 3987, 3988, 4006, 3989, 4007, 4008, 4009, 4503, 4010,
2869 : 3990, 3991, 4503, 4503, 4011, 4012, 3992, 3993, 4013, 4014,
2870 : 4015, 4016, 3994, 3995, 3996, 3997, 4003, 4004, 4005, 4017,
2871 : 4018, 4019, 4006, 4020, 4007, 4008, 4009, 3998, 4010, 3999,
2872 : 4000, 4001, 4002, 4011, 4012, 4021, 4022, 4013, 4014, 4015,
2873 : 4016, 4023, 4025, 3996, 3997, 4024, 4026, 4027, 4017, 4018,
2874 : 4019, 4028, 4020, 4029, 4030, 4031, 3998, 4032, 3999, 4000,
2875 : 4001, 4002, 4033, 4034, 4021, 4022, 4036, 4037, 4038, 4039,
2876 :
2877 : 4023, 4025, 4040, 4041, 4024, 4026, 4027, 4042, 4045, 4046,
2878 : 4028, 4043, 4029, 4030, 4031, 4044, 4032, 4047, 4048, 4049,
2879 : 4050, 4033, 4034, 4051, 4052, 4036, 4037, 4038, 4039, 4053,
2880 : 4054, 4040, 4041, 4055, 4056, 4057, 4042, 4045, 4046, 4058,
2881 : 4043, 4059, 4060, 4061, 4044, 4062, 4047, 4048, 4049, 4050,
2882 : 4063, 4064, 4051, 4052, 4065, 4066, 4067, 4068, 4053, 4054,
2883 : 4069, 4070, 4055, 4056, 4057, 4072, 4071, 4073, 4058, 4074,
2884 : 4059, 4060, 4061, 4075, 4062, 4078, 4079, 4076, 4080, 4063,
2885 : 4064, 4077, 4081, 4065, 4066, 4067, 4068, 4082, 4083, 4069,
2886 : 4070, 4084, 4085, 4086, 4072, 4071, 4073, 4087, 4074, 4088,
2887 :
2888 : 4089, 4090, 4075, 4091, 4078, 4079, 4076, 4080, 4092, 4093,
2889 : 4077, 4081, 4094, 4095, 4096, 4097, 4082, 4083, 4098, 4099,
2890 : 4084, 4085, 4086, 4100, 4101, 4105, 4087, 4102, 4088, 4089,
2891 : 4090, 4103, 4091, 4106, 4107, 4108, 4104, 4092, 4093, 4111,
2892 : 4112, 4094, 4095, 4096, 4097, 4109, 4113, 4098, 4099, 4110,
2893 : 4114, 4115, 4100, 4101, 4105, 4116, 4102, 4117, 4118, 4119,
2894 : 4103, 4120, 4106, 4107, 4108, 4104, 4121, 4122, 4111, 4112,
2895 : 4123, 4124, 4125, 4126, 4109, 4113, 4127, 4128, 4110, 4114,
2896 : 4115, 4129, 4130, 4131, 4116, 4132, 4117, 4118, 4119, 4133,
2897 : 4120, 4134, 4136, 4138, 4135, 4121, 4122, 4137, 4139, 4123,
2898 :
2899 : 4124, 4125, 4126, 4140, 4141, 4127, 4128, 4144, 4145, 4142,
2900 : 4129, 4130, 4131, 4143, 4132, 4146, 4147, 4148, 4133, 4149,
2901 : 4134, 4136, 4138, 4135, 4150, 4151, 4137, 4139, 4152, 4153,
2902 : 4154, 4155, 4140, 4141, 4156, 4157, 4144, 4145, 4142, 4158,
2903 : 4159, 4160, 4143, 4161, 4146, 4147, 4148, 4162, 4149, 4163,
2904 : 4164, 4165, 4166, 4150, 4151, 4171, 4169, 4152, 4153, 4154,
2905 : 4155, 4170, 4167, 4156, 4157, 4168, 4172, 4173, 4158, 4159,
2906 : 4160, 4174, 4161, 4175, 4176, 4177, 4162, 4178, 4163, 4164,
2907 : 4165, 4166, 4179, 4180, 4171, 4169, 4181, 4182, 4183, 4185,
2908 : 4170, 4167, 4186, 4187, 4168, 4172, 4173, 4188, 4189, 4190,
2909 :
2910 : 4174, 4191, 4175, 4176, 4177, 4192, 4178, 4193, 4194, 4195,
2911 : 4196, 4179, 4180, 4197, 4198, 4181, 4182, 4183, 4185, 4199,
2912 : 4200, 4186, 4187, 4201, 4202, 4203, 4188, 4189, 4190, 4204,
2913 : 4191, 4205, 4206, 4208, 4192, 4209, 4193, 4194, 4195, 4196,
2914 : 4210, 4211, 4197, 4198, 4212, 4213, 4214, 4215, 4199, 4200,
2915 : 4216, 4217, 4201, 4202, 4203, 4218, 4219, 4220, 4204, 4221,
2916 : 4205, 4206, 4208, 4222, 4209, 4223, 4224, 4225, 4226, 4210,
2917 : 4211, 4227, 4228, 4212, 4213, 4214, 4215, 4229, 4231, 4216,
2918 : 4217, 4232, 4233, 4234, 4218, 4219, 4220, 4235, 4221, 4236,
2919 : 4237, 4238, 4222, 4239, 4223, 4224, 4225, 4226, 4240, 4241,
2920 :
2921 : 4227, 4228, 4242, 4243, 4244, 4245, 4229, 4231, 4246, 4247,
2922 : 4232, 4233, 4234, 4248, 4249, 4250, 4235, 4251, 4236, 4237,
2923 : 4238, 4252, 4239, 4254, 4255, 4256, 4257, 4240, 4241, 4258,
2924 : 4259, 4242, 4243, 4244, 4245, 4260, 4261, 4246, 4247, 4262,
2925 : 4263, 4264, 4248, 4249, 4250, 4265, 4251, 4266, 4267, 4268,
2926 : 4252, 4269, 4254, 4255, 4256, 4257, 4270, 4271, 4258, 4259,
2927 : 4272, 4273, 4274, 4275, 4260, 4261, 4276, 4277, 4262, 4263,
2928 : 4264, 4278, 4279, 4280, 4265, 4281, 4266, 4267, 4268, 4282,
2929 : 4269, 4283, 4284, 4285, 4286, 4270, 4271, 4287, 4288, 4272,
2930 : 4273, 4274, 4275, 4289, 4290, 4276, 4277, 4291, 4292, 4295,
2931 :
2932 : 4278, 4279, 4280, 4296, 4281, 4293, 4294, 4297, 4282, 4298,
2933 : 4283, 4284, 4285, 4286, 4299, 4300, 4287, 4288, 4301, 4302,
2934 : 4303, 4304, 4289, 4290, 4305, 4306, 4291, 4292, 4295, 4307,
2935 : 4308, 4309, 4296, 4310, 4293, 4294, 4297, 4311, 4298, 4312,
2936 : 4313, 4314, 4315, 4299, 4300, 4316, 4317, 4301, 4302, 4303,
2937 : 4304, 4318, 4319, 4305, 4306, 4320, 4321, 4322, 4307, 4308,
2938 : 4309, 4323, 4310, 4324, 4325, 4326, 4311, 4327, 4312, 4313,
2939 : 4314, 4315, 4328, 4329, 4316, 4317, 4330, 4331, 4332, 4333,
2940 : 4318, 4319, 4334, 4335, 4320, 4321, 4322, 4336, 4337, 4338,
2941 : 4323, 4339, 4324, 4325, 4326, 4340, 4327, 4341, 4342, 4343,
2942 :
2943 : 4344, 4328, 4329, 4345, 4346, 4330, 4331, 4332, 4333, 4347,
2944 : 4348, 4334, 4335, 4349, 4350, 4351, 4336, 4337, 4338, 4352,
2945 : 4339, 4353, 4354, 4355, 4340, 4356, 4341, 4342, 4343, 4344,
2946 : 4357, 4358, 4345, 4346, 4359, 4360, 4361, 4362, 4347, 4348,
2947 : 4363, 4364, 4349, 4350, 4351, 4365, 4366, 4367, 4352, 4368,
2948 : 4353, 4354, 4355, 4369, 4356, 4370, 4371, 4372, 4373, 4357,
2949 : 4358, 4374, 4375, 4359, 4360, 4361, 4362, 4376, 4377, 4363,
2950 : 4364, 4378, 4379, 4380, 4365, 4366, 4367, 4381, 4368, 4382,
2951 : 4383, 4384, 4369, 4385, 4370, 4371, 4372, 4373, 4386, 4387,
2952 : 4374, 4375, 4388, 4389, 4390, 4391, 4376, 4377, 4392, 4393,
2953 :
2954 : 4378, 4379, 4380, 4394, 4395, 4396, 4381, 4397, 4382, 4383,
2955 : 4384, 4398, 4385, 4399, 4400, 4401, 4402, 4386, 4387, 4403,
2956 : 4404, 4388, 4389, 4390, 4391, 4405, 4406, 4392, 4393, 4407,
2957 : 4408, 4409, 4394, 4395, 4396, 4410, 4397, 4411, 4412, 4413,
2958 : 4398, 4414, 4399, 4400, 4401, 4402, 4415, 4416, 4403, 4404,
2959 : 4417, 4418, 4419, 4420, 4405, 4406, 4421, 4422, 4407, 4408,
2960 : 4409, 4423, 4424, 4425, 4410, 4426, 4411, 4412, 4413, 4427,
2961 : 4414, 4428, 4429, 4430, 4432, 4415, 4416, 4434, 4436, 4417,
2962 : 4418, 4419, 4420, 4438, 4439, 4421, 4422, 4440, 4441, 4442,
2963 : 4423, 4424, 4425, 4443, 4426, 4444, 4445, 4446, 4427, 4447,
2964 :
2965 : 4428, 4429, 4430, 4432, 4448, 4449, 4434, 4436, 4450, 4451,
2966 : 4452, 4453, 4438, 4439, 4454, 4455, 4440, 4441, 4442, 4456,
2967 : 4457, 4458, 4443, 4459, 4444, 4445, 4446, 4460, 4447, 4461,
2968 : 4462, 4463, 4464, 4448, 4449, 4465, 4466, 4450, 4451, 4452,
2969 : 4453, 4467, 4468, 4454, 4455, 4469, 4470, 4471, 4456, 4457,
2970 : 4458, 4472, 4459, 4473, 4474, 4475, 4460, 4476, 4461, 4462,
2971 : 4463, 4464, 4477, 4478, 4465, 4466, 4483, 4484, 4485, 4486,
2972 : 4467, 4468, 4487, 4488, 4469, 4470, 4471, 4489, 4490, 4491,
2973 : 4472, 4492, 4473, 4474, 4475, 4493, 4476, 4494, 4495, 4496,
2974 : 4497, 4477, 4478, 4498, 4499, 4483, 4484, 4485, 4486, 4500,
2975 :
2976 : 4501, 4487, 4488, 4502, 4503, 4503, 4489, 4490, 4491, 4503,
2977 : 4492, 4503, 4503, 4503, 4493, 4503, 4494, 4495, 4496, 4497,
2978 : 4503, 4503, 4498, 4499, 4503, 4503, 4503, 4503, 4500, 4501,
2979 : 4503, 4503, 4502, 280, 4503, 280, 397, 4503, 397, 404,
2980 : 404, 404, 404, 404, 527, 4503, 527, 527, 527, 527,
2981 : 527, 527, 529, 4503, 4503, 529, 529, 529, 4503, 529,
2982 : 653, 653, 653, 653, 653, 653, 653, 653, 1226, 1226,
2983 : 1226, 1226, 1226, 1226, 1226, 1226, 2653, 4503, 2653, 2653,
2984 : 2653, 2653, 2653, 2653, 13, 4503, 4503, 4503, 4503, 4503,
2985 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2986 :
2987 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2988 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2989 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2990 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2991 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2992 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
2993 : 4503, 4503, 4503, 4503, 4503, 4503
2994 : } ;
2995 :
2996 : static yyconst flex_int16_t yy_chk[9567] =
2997 : { 0,
2998 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2999 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3000 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3001 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3002 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3003 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3004 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3005 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3006 : 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3007 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3008 :
3009 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3010 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3011 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3012 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3013 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3014 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3015 : 3, 3, 5, 5, 5, 5, 5, 5, 5, 5,
3016 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3017 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3018 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3019 :
3020 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3021 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3022 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3023 : 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3024 : 5, 5, 5, 7, 4478, 7, 7, 7, 7, 7,
3025 : 8, 4477, 8, 8, 8, 8, 8, 9, 4476, 9,
3026 : 9, 9, 9, 9, 10, 4475, 10, 10, 10, 10,
3027 : 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3028 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3029 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3030 :
3031 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3032 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3033 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3034 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3035 : 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
3036 : 11, 11, 15, 30, 15, 21, 21, 24, 24, 4426,
3037 : 33, 24, 4420, 34, 40, 31, 47, 24, 48, 24,
3038 : 59, 62, 4414, 24, 24, 24, 24, 24, 4408, 31,
3039 : 63, 25, 30, 69, 77, 25, 24, 24, 25, 33,
3040 : 24, 25, 34, 40, 31, 47, 24, 48, 24, 59,
3041 :
3042 : 62, 25, 24, 24, 24, 24, 24, 27, 31, 63,
3043 : 25, 27, 69, 77, 25, 27, 4156, 25, 45, 4123,
3044 : 25, 27, 122, 122, 27, 32, 45, 115, 4090, 115,
3045 : 25, 26, 32, 78, 4057, 26, 27, 32, 26, 91,
3046 : 27, 3993, 26, 94, 27, 26, 3944, 45, 26, 95,
3047 : 27, 26, 28, 27, 32, 45, 51, 51, 51, 51,
3048 : 26, 32, 78, 28, 26, 28, 32, 26, 91, 51,
3049 : 28, 26, 94, 28, 26, 28, 3895, 26, 95, 3846,
3050 : 26, 28, 152, 36, 152, 101, 52, 52, 52, 52,
3051 : 52, 36, 28, 3836, 28, 44, 3782, 36, 51, 28,
3052 :
3053 : 52, 60, 28, 92, 28, 29, 44, 109, 44, 29,
3054 : 110, 44, 36, 29, 101, 60, 29, 92, 29, 29,
3055 : 36, 131, 29, 3728, 44, 29, 36, 3674, 3605, 52,
3056 : 60, 3557, 92, 134, 29, 44, 109, 44, 29, 110,
3057 : 44, 530, 29, 530, 60, 29, 92, 29, 29, 135,
3058 : 131, 29, 132, 3519, 29, 35, 37, 35, 37, 35,
3059 : 37, 141, 134, 35, 148, 43, 132, 149, 35, 35,
3060 : 37, 158, 43, 43, 35, 37, 37, 3471, 135, 43,
3061 : 159, 132, 43, 43, 35, 37, 35, 37, 35, 37,
3062 : 141, 3434, 35, 148, 43, 132, 149, 35, 35, 37,
3063 :
3064 : 158, 43, 43, 35, 37, 37, 38, 38, 43, 159,
3065 : 38, 43, 43, 39, 38, 41, 38, 39, 38, 41,
3066 : 38, 39, 38, 41, 38, 38, 38, 39, 46, 41,
3067 : 39, 46, 46, 39, 41, 38, 38, 3386, 46, 38,
3068 : 3350, 3302, 39, 38, 41, 38, 39, 38, 41, 38,
3069 : 39, 38, 41, 38, 38, 38, 39, 46, 41, 39,
3070 : 46, 46, 39, 41, 42, 54, 42, 46, 160, 54,
3071 : 42, 74, 54, 163, 42, 54, 42, 42, 42, 74,
3072 : 75, 42, 42, 75, 75, 54, 42, 3268, 3266, 166,
3073 : 75, 3147, 3145, 42, 54, 42, 3028, 160, 54, 42,
3074 :
3075 : 74, 54, 163, 42, 54, 42, 42, 42, 74, 75,
3076 : 42, 42, 75, 75, 54, 42, 53, 53, 166, 75,
3077 : 53, 106, 113, 113, 113, 113, 53, 3026, 53, 106,
3078 : 146, 162, 53, 53, 53, 53, 53, 2910, 146, 56,
3079 : 167, 2908, 170, 56, 2747, 53, 53, 56, 2708, 53,
3080 : 106, 2696, 162, 56, 2657, 53, 56, 53, 106, 146,
3081 : 162, 53, 53, 53, 53, 53, 55, 146, 56, 167,
3082 : 55, 170, 56, 55, 2586, 171, 56, 55, 2547, 2535,
3083 : 55, 162, 56, 55, 61, 56, 55, 57, 164, 65,
3084 : 174, 61, 176, 97, 164, 55, 61, 65, 57, 55,
3085 :
3086 : 57, 97, 55, 65, 171, 57, 55, 97, 57, 55,
3087 : 57, 2496, 55, 61, 2427, 55, 57, 164, 65, 174,
3088 : 61, 176, 97, 164, 2388, 61, 65, 57, 2376, 57,
3089 : 97, 2337, 65, 137, 57, 161, 97, 57, 68, 57,
3090 : 58, 137, 68, 161, 58, 165, 68, 137, 58, 173,
3091 : 183, 58, 68, 58, 58, 68, 173, 58, 68, 165,
3092 : 58, 2492, 137, 2492, 161, 2270, 2652, 68, 2652, 58,
3093 : 137, 68, 161, 58, 165, 68, 137, 58, 173, 183,
3094 : 58, 68, 58, 58, 68, 173, 58, 68, 165, 58,
3095 : 64, 66, 64, 66, 64, 66, 178, 175, 64, 184,
3096 :
3097 : 72, 175, 185, 64, 64, 66, 178, 72, 72, 64,
3098 : 66, 66, 2231, 2219, 72, 2180, 2081, 72, 72, 64,
3099 : 66, 64, 66, 64, 66, 178, 175, 64, 184, 72,
3100 : 175, 185, 64, 64, 66, 178, 72, 72, 64, 66,
3101 : 66, 67, 67, 72, 70, 67, 72, 72, 70, 67,
3102 : 186, 67, 70, 67, 187, 67, 73, 67, 70, 67,
3103 : 67, 67, 188, 70, 2073, 189, 2023, 73, 1996, 73,
3104 : 67, 67, 73, 70, 67, 1885, 1877, 70, 67, 186,
3105 : 67, 70, 67, 187, 67, 73, 67, 70, 67, 67,
3106 : 67, 188, 70, 71, 189, 71, 73, 93, 73, 71,
3107 :
3108 : 1827, 73, 1800, 71, 93, 71, 71, 71, 1691, 93,
3109 : 71, 71, 191, 1683, 1633, 71, 83, 83, 83, 83,
3110 : 1606, 1501, 71, 102, 71, 1493, 93, 102, 71, 83,
3111 : 1443, 102, 71, 93, 71, 71, 71, 102, 93, 71,
3112 : 71, 191, 102, 84, 71, 84, 84, 84, 84, 84,
3113 : 179, 192, 102, 168, 168, 179, 102, 1416, 83, 84,
3114 : 102, 1332, 111, 111, 111, 111, 102, 168, 1247, 1137,
3115 : 1052, 102, 947, 193, 89, 111, 862, 759, 674, 179,
3116 : 192, 180, 168, 168, 179, 89, 180, 89, 84, 85,
3117 : 85, 653, 89, 85, 154, 89, 168, 89, 182, 85,
3118 :
3119 : 194, 85, 193, 89, 111, 85, 85, 85, 85, 85,
3120 : 180, 182, 197, 86, 89, 180, 89, 86, 85, 85,
3121 : 86, 89, 85, 86, 89, 200, 89, 182, 85, 194,
3122 : 85, 151, 124, 86, 85, 85, 85, 85, 85, 88,
3123 : 182, 197, 86, 88, 105, 120, 86, 88, 117, 86,
3124 : 199, 49, 86, 88, 200, 105, 88, 105, 201, 133,
3125 : 105, 100, 86, 87, 199, 100, 133, 87, 88, 100,
3126 : 87, 133, 88, 105, 87, 100, 88, 87, 100, 199,
3127 : 87, 100, 88, 87, 105, 88, 105, 201, 133, 105,
3128 : 100, 23, 87, 199, 100, 133, 87, 20, 100, 87,
3129 :
3130 : 133, 17, 202, 87, 100, 205, 87, 100, 206, 87,
3131 : 100, 104, 87, 90, 196, 13, 0, 90, 104, 104,
3132 : 196, 90, 0, 196, 90, 104, 90, 90, 104, 104,
3133 : 90, 202, 208, 90, 205, 0, 0, 206, 0, 0,
3134 : 104, 107, 90, 196, 107, 107, 90, 104, 104, 196,
3135 : 90, 107, 196, 90, 104, 90, 90, 104, 104, 90,
3136 : 213, 208, 90, 96, 98, 96, 98, 96, 98, 0,
3137 : 107, 96, 198, 107, 107, 214, 96, 96, 98, 198,
3138 : 107, 0, 96, 98, 98, 400, 400, 400, 400, 213,
3139 : 215, 217, 96, 98, 96, 98, 96, 98, 207, 0,
3140 :
3141 : 96, 198, 0, 0, 214, 96, 96, 98, 198, 207,
3142 : 207, 96, 98, 98, 99, 99, 169, 142, 99, 215,
3143 : 217, 142, 99, 169, 99, 142, 99, 207, 99, 169,
3144 : 99, 142, 99, 99, 99, 0, 142, 0, 207, 207,
3145 : 210, 0, 210, 99, 99, 169, 142, 99, 0, 0,
3146 : 142, 99, 169, 99, 142, 99, 0, 99, 169, 99,
3147 : 142, 99, 99, 99, 103, 142, 103, 190, 223, 210,
3148 : 103, 210, 0, 190, 103, 0, 103, 103, 103, 218,
3149 : 190, 103, 103, 218, 190, 112, 103, 112, 112, 112,
3150 : 112, 112, 224, 103, 216, 103, 190, 223, 0, 103,
3151 :
3152 : 0, 112, 190, 103, 216, 103, 103, 103, 218, 190,
3153 : 103, 103, 218, 190, 0, 103, 129, 225, 0, 0,
3154 : 0, 224, 0, 216, 212, 227, 0, 129, 212, 129,
3155 : 112, 125, 125, 216, 129, 125, 0, 129, 228, 129,
3156 : 229, 125, 230, 125, 212, 129, 225, 125, 125, 125,
3157 : 125, 125, 0, 212, 227, 126, 129, 212, 129, 126,
3158 : 125, 125, 126, 129, 125, 126, 129, 228, 129, 229,
3159 : 125, 230, 125, 212, 0, 126, 125, 125, 125, 125,
3160 : 125, 128, 0, 0, 126, 128, 145, 0, 126, 128,
3161 : 0, 126, 0, 0, 126, 128, 0, 145, 128, 145,
3162 :
3163 : 219, 219, 145, 140, 126, 127, 231, 140, 209, 127,
3164 : 128, 140, 127, 209, 128, 145, 127, 140, 128, 127,
3165 : 140, 209, 127, 140, 128, 127, 145, 128, 145, 219,
3166 : 219, 145, 140, 232, 127, 231, 140, 209, 127, 0,
3167 : 140, 127, 209, 0, 220, 127, 140, 220, 127, 140,
3168 : 209, 127, 140, 144, 127, 130, 233, 0, 0, 130,
3169 : 144, 144, 232, 130, 0, 234, 130, 144, 130, 130,
3170 : 144, 144, 130, 220, 0, 130, 220, 524, 524, 524,
3171 : 524, 0, 144, 147, 130, 233, 147, 147, 130, 144,
3172 : 144, 0, 130, 147, 234, 130, 144, 130, 130, 144,
3173 :
3174 : 144, 130, 221, 221, 130, 136, 138, 136, 138, 136,
3175 : 138, 235, 147, 136, 239, 147, 147, 237, 136, 136,
3176 : 138, 237, 147, 240, 136, 138, 138, 0, 0, 222,
3177 : 222, 221, 221, 243, 136, 138, 136, 138, 136, 138,
3178 : 235, 0, 136, 239, 0, 0, 237, 136, 136, 138,
3179 : 237, 0, 240, 136, 138, 138, 139, 139, 222, 222,
3180 : 139, 238, 243, 241, 139, 238, 139, 245, 139, 244,
3181 : 139, 238, 139, 241, 139, 139, 139, 0, 244, 0,
3182 : 244, 246, 249, 0, 0, 139, 139, 0, 251, 139,
3183 : 238, 0, 241, 139, 238, 139, 245, 139, 244, 139,
3184 :
3185 : 238, 139, 241, 139, 139, 139, 143, 244, 143, 244,
3186 : 246, 249, 143, 250, 252, 255, 143, 251, 143, 143,
3187 : 143, 250, 181, 143, 143, 181, 181, 257, 143, 0,
3188 : 0, 181, 262, 181, 0, 143, 0, 143, 181, 0,
3189 : 0, 143, 250, 252, 255, 143, 267, 143, 143, 143,
3190 : 250, 181, 143, 143, 181, 181, 257, 143, 177, 203,
3191 : 181, 262, 181, 247, 203, 203, 268, 181, 242, 177,
3192 : 177, 177, 247, 242, 0, 267, 177, 177, 177, 247,
3193 : 247, 0, 253, 242, 248, 253, 242, 177, 203, 0,
3194 : 269, 248, 247, 203, 203, 268, 0, 242, 177, 177,
3195 :
3196 : 177, 247, 242, 248, 256, 177, 177, 177, 247, 247,
3197 : 254, 253, 242, 248, 253, 242, 256, 258, 260, 269,
3198 : 248, 254, 263, 264, 266, 258, 260, 270, 271, 263,
3199 : 266, 263, 248, 256, 272, 264, 265, 273, 260, 254,
3200 : 265, 281, 282, 283, 265, 256, 258, 260, 0, 0,
3201 : 254, 263, 264, 266, 258, 260, 270, 271, 263, 266,
3202 : 263, 0, 0, 272, 264, 265, 273, 260, 0, 265,
3203 : 281, 282, 283, 265, 275, 275, 275, 275, 276, 286,
3204 : 276, 0, 276, 276, 276, 276, 0, 275, 277, 277,
3205 : 277, 277, 278, 278, 278, 278, 278, 285, 279, 284,
3206 :
3207 : 279, 277, 279, 279, 279, 279, 278, 284, 286, 287,
3208 : 288, 289, 290, 291, 291, 287, 275, 293, 285, 294,
3209 : 297, 299, 306, 0, 288, 296, 285, 291, 284, 0,
3210 : 277, 0, 296, 298, 0, 278, 284, 298, 287, 288,
3211 : 289, 290, 291, 291, 287, 292, 293, 285, 294, 297,
3212 : 299, 306, 292, 288, 296, 301, 291, 307, 292, 0,
3213 : 305, 296, 298, 302, 303, 301, 298, 308, 302, 303,
3214 : 0, 0, 0, 305, 292, 309, 310, 527, 527, 527,
3215 : 527, 292, 311, 0, 301, 312, 307, 292, 300, 305,
3216 : 314, 0, 302, 303, 301, 315, 308, 302, 303, 300,
3217 :
3218 : 300, 300, 305, 316, 309, 310, 300, 300, 300, 304,
3219 : 313, 311, 304, 304, 312, 317, 313, 300, 304, 314,
3220 : 304, 320, 323, 313, 315, 304, 321, 313, 300, 300,
3221 : 300, 0, 316, 321, 319, 300, 300, 300, 304, 313,
3222 : 319, 304, 304, 319, 317, 313, 322, 304, 324, 304,
3223 : 320, 323, 313, 325, 304, 321, 313, 328, 329, 326,
3224 : 322, 331, 321, 319, 326, 326, 336, 330, 332, 319,
3225 : 337, 0, 319, 332, 333, 322, 333, 324, 330, 330,
3226 : 335, 332, 325, 338, 335, 340, 328, 329, 326, 322,
3227 : 331, 339, 0, 326, 326, 336, 330, 332, 346, 337,
3228 :
3229 : 335, 339, 332, 333, 347, 333, 348, 330, 330, 335,
3230 : 332, 341, 338, 335, 340, 341, 342, 342, 343, 350,
3231 : 339, 343, 344, 344, 345, 345, 351, 346, 352, 335,
3232 : 339, 353, 354, 347, 355, 348, 356, 357, 358, 360,
3233 : 341, 362, 363, 360, 341, 342, 342, 343, 350, 364,
3234 : 343, 344, 344, 345, 345, 351, 366, 352, 368, 364,
3235 : 353, 354, 369, 355, 0, 356, 357, 358, 360, 361,
3236 : 362, 363, 360, 361, 372, 365, 374, 0, 364, 361,
3237 : 365, 375, 371, 367, 0, 366, 378, 368, 364, 371,
3238 : 365, 369, 367, 365, 367, 380, 0, 370, 361, 373,
3239 :
3240 : 385, 371, 361, 372, 365, 374, 370, 373, 361, 365,
3241 : 375, 371, 367, 370, 370, 378, 377, 376, 371, 365,
3242 : 376, 367, 365, 367, 380, 379, 370, 377, 373, 385,
3243 : 371, 381, 383, 390, 0, 370, 373, 379, 0, 381,
3244 : 383, 386, 370, 370, 391, 377, 376, 387, 386, 376,
3245 : 386, 389, 383, 392, 379, 393, 377, 389, 394, 387,
3246 : 381, 383, 390, 388, 395, 396, 379, 388, 381, 383,
3247 : 386, 388, 0, 391, 0, 0, 387, 386, 0, 386,
3248 : 389, 383, 392, 0, 393, 0, 389, 394, 387, 0,
3249 : 0, 405, 388, 395, 396, 0, 388, 406, 0, 0,
3250 :
3251 : 388, 398, 398, 398, 398, 399, 0, 399, 407, 399,
3252 : 399, 399, 399, 410, 398, 401, 401, 401, 401, 402,
3253 : 405, 402, 402, 402, 402, 402, 406, 403, 401, 403,
3254 : 408, 403, 403, 403, 403, 402, 412, 407, 408, 409,
3255 : 411, 413, 410, 398, 414, 416, 411, 415, 415, 417,
3256 : 412, 418, 416, 421, 423, 420, 425, 401, 416, 408,
3257 : 409, 415, 420, 0, 402, 412, 425, 408, 409, 411,
3258 : 413, 430, 0, 414, 416, 411, 415, 415, 417, 412,
3259 : 418, 416, 421, 423, 420, 425, 0, 416, 422, 409,
3260 : 415, 420, 422, 0, 426, 425, 427, 0, 431, 426,
3261 :
3262 : 430, 427, 0, 429, 0, 0, 0, 432, 433, 434,
3263 : 435, 0, 0, 0, 436, 428, 429, 422, 428, 428,
3264 : 438, 422, 424, 426, 428, 427, 428, 431, 426, 439,
3265 : 427, 428, 429, 424, 424, 424, 432, 433, 434, 435,
3266 : 424, 424, 424, 436, 428, 429, 440, 428, 428, 438,
3267 : 441, 424, 444, 428, 445, 428, 447, 448, 439, 437,
3268 : 428, 445, 424, 424, 424, 437, 446, 449, 443, 424,
3269 : 424, 424, 437, 452, 443, 440, 437, 443, 453, 441,
3270 : 446, 444, 0, 445, 455, 447, 448, 450, 437, 457,
3271 : 445, 457, 450, 450, 437, 446, 449, 443, 460, 454,
3272 :
3273 : 461, 437, 452, 443, 459, 437, 443, 453, 459, 446,
3274 : 454, 454, 456, 455, 462, 464, 450, 456, 457, 465,
3275 : 457, 450, 450, 465, 459, 456, 463, 460, 454, 461,
3276 : 466, 466, 467, 459, 470, 467, 463, 459, 471, 454,
3277 : 454, 456, 472, 462, 464, 474, 456, 475, 465, 468,
3278 : 468, 476, 465, 459, 456, 463, 469, 469, 477, 466,
3279 : 466, 467, 478, 470, 467, 463, 479, 471, 480, 481,
3280 : 482, 472, 486, 484, 474, 487, 475, 484, 468, 468,
3281 : 476, 490, 488, 0, 485, 469, 469, 477, 485, 0,
3282 : 492, 478, 488, 493, 485, 479, 496, 480, 481, 482,
3283 :
3284 : 489, 486, 484, 491, 487, 489, 484, 498, 499, 495,
3285 : 490, 488, 491, 485, 491, 489, 495, 485, 489, 492,
3286 : 0, 488, 493, 485, 502, 496, 504, 497, 495, 489,
3287 : 509, 505, 491, 494, 489, 497, 498, 499, 495, 505,
3288 : 514, 491, 494, 491, 489, 495, 503, 489, 500, 494,
3289 : 494, 500, 501, 502, 511, 504, 497, 495, 503, 509,
3290 : 505, 0, 494, 501, 497, 507, 511, 510, 505, 514,
3291 : 515, 494, 516, 507, 510, 503, 510, 500, 494, 494,
3292 : 500, 501, 512, 511, 517, 507, 512, 503, 518, 519,
3293 : 512, 513, 501, 520, 507, 511, 510, 513, 0, 515,
3294 :
3295 : 0, 516, 507, 510, 0, 510, 837, 837, 837, 837,
3296 : 536, 512, 0, 517, 507, 512, 0, 518, 519, 512,
3297 : 513, 0, 520, 0, 0, 0, 513, 521, 521, 521,
3298 : 521, 522, 0, 522, 537, 522, 522, 522, 522, 536,
3299 : 521, 523, 523, 523, 523, 525, 538, 525, 525, 525,
3300 : 525, 525, 528, 526, 523, 526, 540, 526, 526, 526,
3301 : 526, 525, 0, 537, 528, 528, 528, 528, 541, 521,
3302 : 532, 532, 539, 532, 543, 538, 532, 540, 542, 544,
3303 : 539, 545, 548, 523, 542, 540, 549, 532, 543, 0,
3304 : 525, 532, 552, 0, 0, 551, 554, 541, 546, 546,
3305 :
3306 : 0, 539, 551, 543, 556, 0, 540, 542, 544, 539,
3307 : 545, 548, 546, 542, 556, 549, 547, 543, 532, 561,
3308 : 562, 552, 553, 547, 551, 554, 553, 546, 546, 547,
3309 : 0, 551, 557, 556, 558, 0, 563, 557, 564, 558,
3310 : 0, 546, 0, 556, 565, 547, 566, 560, 561, 562,
3311 : 0, 553, 547, 559, 567, 553, 559, 559, 547, 555,
3312 : 560, 557, 559, 558, 559, 563, 557, 564, 558, 559,
3313 : 555, 555, 555, 565, 569, 566, 560, 555, 555, 555,
3314 : 0, 570, 559, 567, 0, 559, 559, 571, 555, 560,
3315 : 572, 559, 575, 559, 578, 579, 568, 576, 559, 555,
3316 :
3317 : 555, 555, 568, 569, 576, 574, 555, 555, 555, 568,
3318 : 570, 574, 580, 568, 574, 577, 571, 583, 584, 572,
3319 : 0, 575, 581, 578, 579, 568, 576, 581, 581, 577,
3320 : 586, 568, 591, 576, 574, 0, 592, 585, 568, 593,
3321 : 574, 580, 568, 574, 577, 595, 583, 584, 585, 585,
3322 : 587, 581, 588, 601, 588, 587, 581, 581, 577, 586,
3323 : 590, 591, 594, 587, 590, 592, 585, 596, 593, 597,
3324 : 597, 596, 594, 598, 595, 602, 598, 585, 585, 587,
3325 : 590, 588, 601, 588, 587, 599, 599, 600, 600, 590,
3326 : 603, 594, 587, 590, 605, 606, 596, 607, 597, 597,
3327 :
3328 : 596, 594, 598, 608, 602, 598, 609, 610, 611, 590,
3329 : 612, 613, 617, 618, 599, 599, 600, 600, 615, 603,
3330 : 619, 616, 615, 605, 606, 616, 607, 621, 620, 623,
3331 : 619, 616, 608, 620, 624, 609, 610, 611, 627, 612,
3332 : 613, 617, 618, 620, 622, 0, 620, 615, 629, 619,
3333 : 616, 615, 625, 622, 616, 622, 621, 620, 623, 619,
3334 : 616, 625, 620, 624, 626, 630, 628, 627, 625, 625,
3335 : 633, 626, 620, 622, 628, 620, 631, 629, 632, 631,
3336 : 634, 625, 622, 626, 622, 635, 640, 0, 636, 632,
3337 : 625, 0, 634, 626, 630, 628, 636, 625, 625, 633,
3338 :
3339 : 626, 645, 638, 628, 641, 631, 646, 632, 631, 634,
3340 : 638, 641, 626, 641, 635, 640, 642, 636, 632, 643,
3341 : 644, 634, 638, 643, 647, 636, 644, 643, 642, 648,
3342 : 645, 638, 649, 641, 650, 646, 651, 656, 657, 638,
3343 : 641, 659, 641, 662, 663, 642, 664, 665, 643, 644,
3344 : 666, 638, 643, 647, 667, 644, 643, 642, 648, 669,
3345 : 670, 649, 671, 650, 672, 651, 656, 657, 673, 675,
3346 : 659, 676, 662, 663, 677, 664, 665, 678, 679, 666,
3347 : 680, 681, 682, 667, 683, 684, 685, 0, 669, 670,
3348 : 689, 671, 678, 672, 690, 691, 692, 673, 675, 686,
3349 :
3350 : 676, 694, 0, 677, 0, 696, 678, 679, 696, 680,
3351 : 681, 682, 697, 683, 684, 685, 686, 693, 686, 689,
3352 : 698, 678, 699, 690, 691, 692, 695, 695, 686, 700,
3353 : 694, 693, 693, 693, 696, 701, 702, 696, 703, 704,
3354 : 705, 697, 706, 707, 709, 686, 693, 686, 710, 698,
3355 : 711, 699, 712, 714, 715, 695, 695, 711, 700, 716,
3356 : 693, 693, 693, 717, 701, 702, 718, 703, 704, 705,
3357 : 719, 706, 707, 709, 720, 721, 722, 710, 723, 711,
3358 : 718, 712, 714, 715, 724, 725, 711, 726, 716, 727,
3359 : 728, 729, 717, 730, 733, 718, 731, 736, 732, 719,
3360 :
3361 : 737, 738, 739, 720, 721, 722, 740, 723, 732, 718,
3362 : 741, 731, 742, 724, 725, 743, 726, 744, 727, 728,
3363 : 729, 745, 730, 733, 746, 731, 736, 732, 747, 737,
3364 : 738, 739, 749, 751, 745, 740, 752, 732, 753, 741,
3365 : 731, 742, 754, 756, 743, 760, 744, 761, 752, 762,
3366 : 763, 764, 765, 746, 767, 768, 769, 747, 770, 771,
3367 : 772, 749, 751, 745, 773, 752, 774, 753, 775, 776,
3368 : 777, 754, 756, 778, 760, 779, 761, 752, 762, 763,
3369 : 764, 765, 778, 767, 768, 769, 780, 770, 771, 772,
3370 : 781, 782, 784, 773, 785, 774, 787, 775, 776, 777,
3371 :
3372 : 783, 786, 778, 783, 779, 788, 789, 783, 786, 790,
3373 : 792, 778, 793, 791, 794, 780, 795, 796, 798, 781,
3374 : 782, 784, 791, 785, 800, 787, 801, 802, 803, 783,
3375 : 786, 804, 783, 805, 788, 789, 783, 786, 790, 792,
3376 : 806, 793, 791, 794, 807, 795, 796, 798, 808, 810,
3377 : 811, 813, 814, 800, 815, 801, 802, 803, 816, 817,
3378 : 804, 818, 805, 816, 819, 817, 820, 822, 823, 806,
3379 : 818, 824, 821, 807, 821, 825, 826, 808, 810, 811,
3380 : 813, 814, 827, 815, 828, 830, 831, 816, 817, 833,
3381 : 818, 834, 816, 819, 817, 820, 822, 823, 832, 818,
3382 :
3383 : 824, 821, 832, 821, 825, 826, 829, 829, 835, 836,
3384 : 0, 827, 0, 828, 830, 831, 0, 844, 833, 0,
3385 : 834, 838, 838, 838, 838, 0, 0, 832, 845, 829,
3386 : 0, 832, 829, 0, 847, 829, 829, 835, 836, 839,
3387 : 839, 839, 839, 840, 850, 840, 844, 840, 840, 840,
3388 : 840, 851, 839, 841, 841, 841, 841, 845, 829, 842,
3389 : 842, 842, 842, 847, 852, 853, 854, 855, 857, 858,
3390 : 859, 860, 861, 850, 863, 864, 865, 866, 867, 868,
3391 : 851, 839, 869, 870, 871, 872, 873, 877, 878, 879,
3392 : 880, 0, 866, 852, 853, 854, 855, 857, 858, 859,
3393 :
3394 : 860, 861, 882, 863, 864, 865, 866, 867, 868, 874,
3395 : 885, 869, 870, 871, 872, 873, 877, 878, 879, 880,
3396 : 881, 866, 883, 883, 884, 886, 874, 884, 874, 887,
3397 : 888, 882, 889, 890, 881, 881, 881, 891, 874, 885,
3398 : 892, 893, 894, 895, 897, 898, 900, 902, 903, 881,
3399 : 904, 883, 883, 884, 886, 874, 884, 874, 887, 888,
3400 : 899, 889, 890, 881, 881, 881, 891, 899, 905, 892,
3401 : 893, 894, 895, 897, 898, 900, 902, 903, 906, 904,
3402 : 907, 908, 909, 910, 911, 912, 913, 914, 915, 899,
3403 : 916, 917, 906, 918, 920, 921, 899, 905, 924, 925,
3404 :
3405 : 926, 927, 928, 919, 920, 929, 930, 906, 931, 907,
3406 : 908, 909, 910, 911, 912, 913, 914, 915, 919, 916,
3407 : 917, 906, 918, 920, 921, 932, 933, 924, 925, 926,
3408 : 927, 928, 919, 920, 929, 930, 934, 931, 935, 933,
3409 : 937, 939, 941, 940, 942, 944, 948, 919, 949, 950,
3410 : 951, 952, 953, 955, 932, 940, 956, 957, 958, 959,
3411 : 960, 961, 962, 963, 964, 934, 965, 935, 933, 937,
3412 : 939, 941, 940, 942, 944, 948, 967, 949, 950, 951,
3413 : 952, 953, 955, 968, 940, 956, 957, 958, 959, 960,
3414 : 961, 962, 963, 964, 966, 965, 969, 970, 972, 971,
3415 :
3416 : 973, 974, 971, 966, 975, 967, 971, 976, 974, 977,
3417 : 978, 979, 968, 980, 981, 982, 983, 984, 986, 988,
3418 : 979, 989, 990, 966, 991, 969, 970, 972, 971, 973,
3419 : 974, 971, 966, 975, 992, 971, 976, 974, 977, 978,
3420 : 979, 993, 980, 981, 982, 983, 984, 986, 988, 994,
3421 : 989, 990, 995, 991, 996, 998, 999, 1001, 1002, 1003,
3422 : 1004, 1005, 1006, 992, 1007, 1004, 1008, 1005, 1010, 1011,
3423 : 993, 1006, 1009, 1012, 1009, 1013, 1014, 1015, 994, 1016,
3424 : 0, 995, 1018, 996, 998, 999, 1001, 1002, 1003, 1004,
3425 : 1005, 1006, 1019, 1007, 1004, 1008, 1005, 1010, 1011, 1021,
3426 :
3427 : 1006, 1009, 1012, 1009, 1013, 1014, 1015, 1022, 1016, 1017,
3428 : 1017, 1018, 1020, 1023, 1024, 1034, 1020, 1025, 1025, 1025,
3429 : 1025, 1019, 1026, 1026, 1026, 1026, 0, 0, 1021, 1035,
3430 : 1037, 0, 1017, 0, 0, 1017, 1022, 0, 1017, 1017,
3431 : 1040, 1020, 1023, 1024, 1034, 1020, 1027, 1027, 1027, 1027,
3432 : 1028, 1028, 1028, 1028, 1031, 1031, 1031, 1031, 1035, 1037,
3433 : 1029, 1017, 1029, 1028, 1029, 1029, 1029, 1029, 1030, 1040,
3434 : 1030, 1030, 1030, 1030, 1030, 1032, 1032, 1032, 1032, 1041,
3435 : 1042, 1043, 1044, 1045, 1030, 1047, 1048, 1049, 1050, 1051,
3436 : 1053, 1054, 1028, 1055, 1057, 1058, 1059, 1060, 1061, 1062,
3437 :
3438 : 1063, 0, 1067, 1068, 1069, 1070, 1056, 1072, 1041, 1042,
3439 : 1043, 1044, 1045, 1030, 1047, 1048, 1049, 1050, 1051, 1053,
3440 : 1054, 1056, 1055, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
3441 : 1064, 1067, 1068, 1069, 1070, 1056, 1072, 1071, 1073, 1073,
3442 : 1074, 1075, 1076, 1074, 1077, 1078, 1079, 1064, 1080, 1064,
3443 : 1056, 1071, 1071, 1071, 1081, 1082, 1083, 1084, 1085, 1064,
3444 : 1087, 1088, 1090, 1092, 1093, 1094, 1071, 1073, 1073, 1074,
3445 : 1075, 1076, 1074, 1077, 1078, 1079, 1064, 1080, 1064, 1095,
3446 : 1071, 1071, 1071, 1081, 1082, 1083, 1084, 1085, 1089, 1087,
3447 : 1088, 1090, 1092, 1093, 1094, 1089, 1096, 1097, 1098, 1099,
3448 :
3449 : 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1095, 1108,
3450 : 1096, 1110, 1111, 1114, 1115, 1116, 1117, 1089, 1118, 1119,
3451 : 1120, 1110, 1109, 1121, 1089, 1096, 1097, 1098, 1099, 1100,
3452 : 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1109, 1108, 1096,
3453 : 1110, 1111, 1114, 1115, 1116, 1117, 1122, 1118, 1119, 1120,
3454 : 1110, 1109, 1121, 1124, 1123, 1125, 1127, 1129, 1130, 1131,
3455 : 1132, 1134, 1138, 1139, 1140, 1141, 1109, 1123, 1142, 1143,
3456 : 1130, 1145, 1146, 1147, 1148, 1122, 1149, 1150, 1151, 1152,
3457 : 1153, 1154, 1124, 1155, 1125, 1127, 1129, 1130, 1131, 1132,
3458 : 1134, 1138, 1139, 1140, 1141, 1156, 1123, 1142, 1143, 1130,
3459 :
3460 : 1145, 1146, 1147, 1148, 1156, 1149, 1150, 1151, 1152, 1153,
3461 : 1154, 1157, 1155, 1158, 1159, 1160, 1161, 1162, 1163, 1161,
3462 : 1164, 1165, 1166, 1161, 1156, 1167, 1168, 1164, 1169, 1170,
3463 : 1171, 1172, 1173, 1156, 1174, 1176, 1178, 1169, 1179, 1180,
3464 : 1157, 1181, 1158, 1159, 1160, 1161, 1162, 1163, 1161, 1164,
3465 : 1165, 1166, 1161, 1182, 1167, 1168, 1164, 1169, 1170, 1171,
3466 : 1172, 1173, 1183, 1174, 1176, 1178, 1184, 1179, 1180, 1185,
3467 : 1181, 1186, 1188, 1189, 1191, 1192, 1193, 1196, 1194, 1195,
3468 : 1197, 1198, 1182, 1194, 1200, 1195, 1196, 1199, 1201, 1199,
3469 : 1202, 1183, 1203, 1204, 1205, 1184, 1206, 0, 1185, 1208,
3470 :
3471 : 1186, 1188, 1189, 1191, 1192, 1193, 1196, 1194, 1195, 1197,
3472 : 1198, 1209, 1194, 1200, 1195, 1196, 1199, 1201, 1199, 1202,
3473 : 0, 1203, 1204, 1205, 1211, 1206, 1207, 1207, 1208, 1210,
3474 : 1212, 1213, 1214, 1210, 1215, 1215, 1215, 1215, 0, 1229,
3475 : 1209, 1216, 1216, 1216, 1216, 1219, 1219, 1219, 1219, 1207,
3476 : 0, 0, 1207, 1211, 0, 1207, 1207, 0, 1210, 1212,
3477 : 1213, 1214, 1210, 1217, 1217, 1217, 1217, 1218, 1229, 1218,
3478 : 0, 1218, 1218, 1218, 1218, 1230, 1217, 1220, 1207, 1220,
3479 : 1220, 1220, 1220, 1220, 1221, 1221, 1221, 1221, 1222, 1222,
3480 : 1222, 1222, 0, 1220, 1223, 1224, 1224, 1224, 1224, 1225,
3481 :
3482 : 1232, 1235, 1236, 0, 1230, 1217, 1223, 1223, 1223, 1223,
3483 : 1237, 1225, 1225, 1225, 1225, 1226, 1226, 1238, 1226, 1239,
3484 : 1240, 1226, 1220, 1242, 1243, 1244, 1245, 1246, 1248, 1232,
3485 : 1235, 1236, 1226, 1249, 0, 1250, 1226, 1252, 1253, 1237,
3486 : 1254, 1255, 1256, 1251, 1257, 1258, 1238, 0, 1239, 1240,
3487 : 1262, 1263, 1242, 1243, 1244, 1245, 1246, 1248, 1251, 1259,
3488 : 1264, 1265, 1249, 1226, 1250, 1267, 1252, 1253, 1266, 1254,
3489 : 1255, 1256, 1251, 1257, 1258, 1270, 1259, 1271, 1259, 1262,
3490 : 1263, 1272, 1266, 1266, 1266, 1268, 1268, 1251, 1259, 1264,
3491 : 1265, 1273, 1269, 1274, 1267, 1269, 1275, 1266, 1276, 1277,
3492 :
3493 : 1278, 1279, 1280, 1282, 1270, 1259, 1271, 1259, 1283, 1284,
3494 : 1272, 1266, 1266, 1266, 1268, 1268, 1284, 1285, 1287, 1288,
3495 : 1273, 1269, 1274, 1289, 1269, 1275, 1290, 1276, 1277, 1278,
3496 : 1279, 1280, 1282, 1292, 1293, 1291, 1294, 1283, 1284, 1295,
3497 : 1296, 1297, 1298, 1299, 1300, 1284, 1285, 1287, 1288, 1291,
3498 : 1301, 1302, 1289, 1303, 1306, 1290, 1305, 1309, 1310, 1304,
3499 : 1311, 1312, 1292, 1293, 1291, 1294, 1305, 1313, 1295, 1296,
3500 : 1297, 1298, 1299, 1300, 1304, 1314, 1315, 1316, 1291, 1301,
3501 : 1302, 1317, 1303, 1306, 1318, 1305, 1309, 1310, 1304, 1311,
3502 : 1312, 1319, 1320, 1322, 1324, 1305, 1313, 1318, 1326, 1325,
3503 :
3504 : 1327, 1329, 1333, 1304, 1314, 1315, 1316, 1334, 1335, 1336,
3505 : 1317, 1325, 1337, 1338, 1340, 1341, 1342, 1343, 1344, 1345,
3506 : 1319, 1320, 1322, 1324, 1346, 1347, 1318, 1326, 1325, 1327,
3507 : 1329, 1333, 1348, 1349, 1350, 1352, 1334, 1335, 1336, 1353,
3508 : 1325, 1337, 1338, 1340, 1341, 1342, 1343, 1344, 1345, 1351,
3509 : 1354, 1355, 1356, 1346, 1347, 1356, 1357, 1358, 1351, 1356,
3510 : 1359, 1348, 1349, 1350, 1352, 1360, 1361, 1359, 1353, 1362,
3511 : 1363, 1365, 1366, 1364, 1367, 1368, 1369, 1371, 1351, 1354,
3512 : 1355, 1356, 1364, 1373, 1356, 1357, 1358, 1351, 1356, 1359,
3513 : 1374, 1375, 1376, 1377, 1360, 1361, 1359, 1378, 1362, 1363,
3514 :
3515 : 1365, 1366, 1364, 1367, 1368, 1369, 1371, 1379, 1380, 1381,
3516 : 1383, 1384, 1373, 1386, 1387, 1388, 1391, 1392, 1389, 1374,
3517 : 1375, 1376, 1377, 1389, 1390, 1391, 1378, 1393, 1395, 1394,
3518 : 1390, 1394, 1396, 1397, 1398, 1399, 1379, 1380, 1381, 1383,
3519 : 1384, 1400, 1386, 1387, 1388, 1391, 1392, 1389, 1401, 1402,
3520 : 1402, 1403, 1389, 1390, 1391, 1404, 1393, 1395, 1394, 1390,
3521 : 1394, 1396, 1397, 1398, 1399, 1405, 1406, 1407, 1408, 1405,
3522 : 1400, 1409, 1402, 1411, 1412, 1402, 1413, 1401, 1402, 1402,
3523 : 1403, 1414, 1417, 1418, 1404, 1419, 1420, 1421, 1422, 1423,
3524 : 1424, 1430, 1432, 1434, 1405, 1406, 1407, 1408, 1405, 1431,
3525 :
3526 : 1409, 1402, 1411, 1412, 1435, 1413, 1436, 1437, 1435, 1438,
3527 : 1414, 1417, 1418, 1439, 1419, 1420, 1421, 1422, 1423, 1424,
3528 : 1430, 1432, 1434, 1440, 1441, 1442, 1431, 1444, 1431, 1445,
3529 : 1446, 1447, 1448, 1435, 1449, 1436, 1437, 1435, 1438, 1450,
3530 : 1451, 1452, 1439, 1453, 1454, 1455, 1456, 1458, 1459, 1460,
3531 : 1448, 1464, 1440, 1441, 1442, 1465, 1444, 1466, 1445, 1446,
3532 : 1447, 1448, 1467, 1449, 1468, 1469, 1470, 1471, 1450, 1451,
3533 : 1452, 1472, 1453, 1454, 1455, 1456, 1458, 1459, 1460, 1448,
3534 : 1464, 1473, 1474, 1475, 1465, 1476, 1466, 1477, 1480, 1481,
3535 : 1482, 1467, 1483, 1468, 1469, 1470, 1471, 1485, 1486, 1487,
3536 :
3537 : 1472, 1488, 1489, 1492, 1494, 1495, 1497, 1499, 1503, 1504,
3538 : 1473, 1474, 1475, 1489, 1476, 1500, 1477, 1480, 1481, 1482,
3539 : 1505, 1483, 1506, 1500, 1507, 1508, 1485, 1486, 1487, 1509,
3540 : 1488, 1489, 1492, 1494, 1495, 1497, 1499, 1503, 1504, 1510,
3541 : 1512, 1513, 1489, 1515, 1500, 1514, 1516, 1517, 1518, 1505,
3542 : 1520, 1506, 1500, 1507, 1508, 1514, 1521, 1522, 1509, 1523,
3543 : 1525, 1526, 1527, 1528, 1530, 1531, 1532, 1529, 1510, 1512,
3544 : 1513, 1529, 1515, 1533, 1514, 1516, 1517, 1518, 1534, 1520,
3545 : 1535, 1537, 1540, 1541, 1514, 1521, 1522, 1542, 1523, 1525,
3546 : 1526, 1527, 1528, 1530, 1531, 1532, 1529, 1543, 1544, 1545,
3547 :
3548 : 1529, 1546, 1533, 1548, 1549, 1550, 1551, 1534, 1552, 1535,
3549 : 1537, 1540, 1541, 1553, 1556, 1558, 1542, 1559, 1561, 1562,
3550 : 1563, 1564, 1565, 1569, 1570, 1571, 1543, 1544, 1545, 1574,
3551 : 1546, 1575, 1548, 1549, 1550, 1551, 1576, 1552, 1568, 1577,
3552 : 1578, 1568, 1553, 1556, 1558, 1568, 1559, 1561, 1562, 1563,
3553 : 1564, 1565, 1569, 1570, 1571, 1579, 1580, 1581, 1574, 1582,
3554 : 1575, 1584, 1585, 1586, 1587, 1576, 1588, 1568, 1577, 1578,
3555 : 1568, 1593, 1589, 1594, 1568, 1589, 1601, 1602, 1603, 1594,
3556 : 1598, 1598, 1598, 1598, 1579, 1580, 1581, 1604, 1582, 1607,
3557 : 1584, 1585, 1586, 1587, 1608, 1588, 1599, 1599, 1599, 1599,
3558 :
3559 : 1593, 1589, 1594, 1609, 1589, 1601, 1602, 1603, 1594, 1610,
3560 : 1611, 1612, 1613, 1614, 1620, 0, 1604, 1621, 1607, 1622,
3561 : 1624, 1625, 1626, 1608, 1627, 1625, 1628, 1629, 1630, 1631,
3562 : 1632, 1634, 1609, 1635, 1636, 1637, 0, 1639, 1610, 1611,
3563 : 1612, 1613, 1614, 1620, 1621, 1640, 1621, 1638, 1622, 1624,
3564 : 1625, 1626, 1641, 1627, 1625, 1628, 1629, 1630, 1631, 1632,
3565 : 1634, 1642, 1635, 1636, 1637, 1638, 1639, 1643, 1644, 1645,
3566 : 1646, 1648, 1649, 1650, 1640, 1654, 1638, 1655, 1656, 1657,
3567 : 1658, 1641, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666,
3568 : 1642, 1667, 1670, 1671, 1638, 1672, 1643, 1644, 1645, 1646,
3569 :
3570 : 1648, 1649, 1650, 1673, 1654, 1675, 1655, 1656, 1657, 1658,
3571 : 1676, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1677,
3572 : 1667, 1670, 1671, 1678, 1672, 1679, 1682, 1684, 1685, 1687,
3573 : 1689, 1693, 1673, 1690, 1675, 1694, 1679, 1695, 1696, 1676,
3574 : 1697, 1690, 1698, 1699, 1700, 1702, 1703, 1705, 1677, 1706,
3575 : 1707, 1704, 1678, 1708, 1679, 1682, 1684, 1685, 1687, 1689,
3576 : 1693, 1704, 1690, 1710, 1694, 1679, 1695, 1696, 1711, 1697,
3577 : 1690, 1698, 1699, 1700, 1702, 1703, 1705, 1712, 1706, 1707,
3578 : 1704, 1713, 1708, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
3579 : 1704, 1719, 1710, 1722, 1723, 1724, 1725, 1711, 1727, 1730,
3580 :
3581 : 1731, 1732, 1733, 1734, 1735, 1736, 1712, 1738, 1739, 1740,
3582 : 1713, 1741, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1742,
3583 : 1719, 1743, 1722, 1723, 1724, 1725, 1746, 1727, 1730, 1731,
3584 : 1732, 1733, 1734, 1735, 1736, 1748, 1738, 1739, 1740, 1749,
3585 : 1741, 1751, 1752, 1753, 1754, 1755, 1758, 1759, 1742, 1758,
3586 : 1743, 1760, 1761, 1758, 1764, 1746, 1765, 1766, 1767, 1768,
3587 : 1769, 1770, 1771, 1772, 1748, 1774, 1775, 1776, 1749, 1777,
3588 : 1751, 1752, 1753, 1754, 1755, 1758, 1759, 1778, 1758, 1783,
3589 : 1760, 1761, 1758, 1764, 0, 1765, 1766, 1767, 1768, 1769,
3590 : 1770, 1771, 1772, 1784, 1774, 1775, 1776, 1779, 1777, 1784,
3591 :
3592 : 1779, 1788, 1788, 1788, 1788, 0, 1778, 0, 1783, 1789,
3593 : 1789, 1789, 1789, 1790, 1790, 1790, 1790, 1791, 1791, 1791,
3594 : 1791, 1795, 1784, 1796, 1797, 1798, 1779, 1801, 1784, 1779,
3595 : 1792, 1792, 1792, 1792, 1792, 1793, 1793, 1793, 1793, 1802,
3596 : 1803, 1804, 1805, 1806, 1792, 1807, 1808, 1814, 1816, 0,
3597 : 1795, 1815, 1796, 1797, 1798, 1818, 1801, 1819, 1820, 1821,
3598 : 1822, 1819, 1823, 1824, 1825, 1826, 1828, 1829, 1802, 1803,
3599 : 1804, 1805, 1806, 1792, 1807, 1808, 1814, 1816, 1815, 1830,
3600 : 1815, 1831, 1832, 1833, 1818, 1834, 1819, 1820, 1821, 1822,
3601 : 1819, 1823, 1824, 1825, 1826, 1828, 1829, 1835, 1836, 1837,
3602 :
3603 : 1832, 1838, 1839, 1840, 1842, 1843, 1844, 1848, 1830, 1849,
3604 : 1831, 1832, 1833, 1850, 1834, 1851, 1852, 1853, 1854, 1855,
3605 : 1856, 1857, 1858, 1859, 1860, 1861, 1835, 1836, 1837, 1832,
3606 : 1838, 1839, 1840, 1842, 1843, 1844, 1848, 1864, 1849, 1865,
3607 : 1866, 1867, 1850, 1869, 1851, 1852, 1853, 1854, 1855, 1856,
3608 : 1857, 1858, 1859, 1860, 1861, 1870, 1871, 1872, 1876, 1878,
3609 : 1873, 1879, 1881, 1883, 1887, 1884, 1864, 1888, 1865, 1866,
3610 : 1867, 1873, 1869, 1884, 1889, 1890, 1891, 1892, 1893, 1894,
3611 : 1896, 1897, 0, 1899, 1870, 1871, 1872, 1876, 1878, 1873,
3612 : 1879, 1881, 1883, 1887, 1884, 1900, 1888, 1901, 1902, 1904,
3613 :
3614 : 1873, 1898, 1884, 1889, 1890, 1891, 1892, 1893, 1894, 1896,
3615 : 1897, 1898, 1899, 1905, 1906, 1907, 1909, 1910, 1911, 1912,
3616 : 1914, 1913, 1915, 1916, 1900, 1913, 1901, 1902, 1904, 1917,
3617 : 1898, 1918, 1919, 1921, 1924, 1925, 1926, 1927, 1928, 1929,
3618 : 1898, 1930, 1905, 1906, 1907, 1909, 1910, 1911, 1912, 1914,
3619 : 1913, 1915, 1916, 1932, 1913, 1933, 1934, 1935, 1917, 1936,
3620 : 1918, 1919, 1921, 1924, 1925, 1926, 1927, 1928, 1929, 1937,
3621 : 1930, 1940, 1942, 1943, 1945, 1946, 1947, 1948, 1949, 1953,
3622 : 1952, 1954, 1932, 1952, 1933, 1934, 1935, 1952, 1936, 1955,
3623 : 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1937, 1966,
3624 :
3625 : 1940, 1942, 1943, 1945, 1946, 1947, 1948, 1949, 1953, 1952,
3626 : 1954, 1968, 1952, 1969, 1970, 1971, 1952, 1972, 1955, 1958,
3627 : 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1973, 1966, 1977,
3628 : 1973, 1978, 1982, 1982, 1982, 1982, 0, 1978, 1991, 0,
3629 : 1968, 0, 1969, 1970, 1971, 0, 1972, 1983, 1983, 1983,
3630 : 1983, 1984, 1984, 1984, 1984, 1992, 1973, 1993, 1977, 1973,
3631 : 1978, 1985, 1985, 1985, 1985, 1986, 1978, 1991, 1986, 1986,
3632 : 1986, 1986, 1987, 1987, 1987, 1987, 1988, 1988, 1988, 1988,
3633 : 1989, 1986, 1994, 1997, 1992, 1998, 1993, 1999, 2000, 2001,
3634 : 2002, 2003, 1989, 1989, 1989, 1989, 2004, 2010, 0, 2012,
3635 :
3636 : 2011, 2014, 2015, 2016, 2017, 2018, 2015, 2019, 2020, 2021,
3637 : 1986, 1994, 1997, 2022, 1998, 2024, 1999, 2000, 2001, 2002,
3638 : 2003, 2025, 2026, 2027, 2029, 2004, 2010, 2011, 2012, 2011,
3639 : 2014, 2015, 2016, 2017, 2018, 2015, 2019, 2020, 2021, 2028,
3640 : 2030, 2031, 2022, 2032, 2024, 2033, 2034, 2035, 2036, 2038,
3641 : 2025, 2026, 2027, 2029, 2039, 2040, 2044, 2028, 2045, 2046,
3642 : 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2028, 2030,
3643 : 2031, 2055, 2032, 2056, 2033, 2034, 2035, 2036, 2038, 2057,
3644 : 2060, 2061, 2062, 2039, 2040, 2044, 2028, 2045, 2046, 2047,
3645 : 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2063, 2065, 2066,
3646 :
3647 : 2055, 2067, 2056, 2068, 2069, 2072, 2074, 2075, 2057, 2060,
3648 : 2061, 2062, 2077, 2079, 2080, 2069, 2083, 2084, 2085, 2086,
3649 : 2087, 2088, 2080, 2089, 2090, 2092, 2063, 2065, 2066, 2093,
3650 : 2067, 2095, 2068, 2069, 2072, 2074, 2075, 2096, 2097, 2098,
3651 : 2100, 2077, 2079, 2080, 2069, 2083, 2084, 2085, 2086, 2087,
3652 : 2088, 2080, 2089, 2090, 2092, 2094, 2101, 2102, 2093, 2103,
3653 : 2095, 2105, 2106, 2107, 2108, 2094, 2096, 2097, 2098, 2100,
3654 : 2109, 2110, 2111, 2112, 2109, 2113, 2114, 2115, 2117, 2120,
3655 : 2121, 2122, 2123, 2124, 2094, 2101, 2102, 2125, 2103, 2126,
3656 : 2105, 2106, 2107, 2108, 2094, 2128, 2129, 2130, 2131, 2109,
3657 :
3658 : 2110, 2111, 2112, 2109, 2113, 2114, 2115, 2117, 2120, 2121,
3659 : 2122, 2123, 2124, 2132, 2133, 2136, 2125, 2138, 2126, 2139,
3660 : 2141, 2142, 2143, 2144, 2128, 2129, 2130, 2131, 2145, 2148,
3661 : 2149, 2150, 2148, 2151, 2154, 2155, 2148, 2156, 2157, 2158,
3662 : 2159, 2160, 2132, 2133, 2136, 2161, 2138, 2162, 2139, 2141,
3663 : 2142, 2143, 2144, 2164, 2165, 2166, 2167, 2145, 2148, 2149,
3664 : 2150, 2148, 2151, 2154, 2155, 2148, 2156, 2157, 2158, 2159,
3665 : 2160, 2168, 2169, 2173, 2161, 2169, 2162, 2183, 2184, 2185,
3666 : 2174, 2187, 2164, 2165, 2166, 2167, 2174, 2188, 2189, 2190,
3667 : 2191, 2192, 2193, 2195, 2196, 2197, 2198, 2199, 2200, 2201,
3668 :
3669 : 2168, 2169, 2173, 2203, 2169, 2205, 2183, 2184, 2185, 2174,
3670 : 2187, 2206, 2207, 2208, 2209, 2174, 2188, 2189, 2190, 2191,
3671 : 2192, 2193, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2210,
3672 : 2211, 2212, 2203, 2214, 2205, 2213, 2215, 2216, 2217, 2218,
3673 : 2206, 2207, 2208, 2209, 2220, 2213, 2221, 2213, 2222, 2223,
3674 : 2225, 2226, 2227, 2228, 2234, 2235, 2237, 2240, 2210, 2211,
3675 : 2212, 2241, 2214, 2243, 2213, 2215, 2216, 2217, 2218, 2244,
3676 : 2245, 2248, 2250, 2220, 2213, 2221, 2213, 2222, 2223, 2225,
3677 : 2226, 2227, 2228, 2234, 2235, 2237, 2240, 2251, 2246, 2254,
3678 : 2241, 2246, 2243, 2258, 2259, 2260, 2261, 2264, 2244, 2245,
3679 :
3680 : 2248, 2250, 2266, 2268, 2269, 2271, 2272, 2274, 2276, 2277,
3681 : 2278, 2280, 2281, 2282, 2283, 2284, 2251, 2246, 2254, 2285,
3682 : 2246, 2286, 2258, 2259, 2260, 2261, 2264, 2287, 2289, 2290,
3683 : 2291, 2266, 2268, 2269, 2271, 2272, 2274, 2276, 2277, 2278,
3684 : 2280, 2281, 2282, 2283, 2284, 2292, 2294, 2295, 2285, 2296,
3685 : 2286, 2298, 2299, 2300, 2301, 2302, 2287, 2289, 2290, 2291,
3686 : 2303, 2305, 2306, 2307, 2308, 2310, 2311, 2312, 2313, 2314,
3687 : 2315, 2316, 2318, 2320, 2292, 2294, 2295, 2321, 2296, 2322,
3688 : 2298, 2299, 2300, 2301, 2302, 2326, 2327, 2328, 2329, 2303,
3689 : 2305, 2306, 2307, 2308, 2310, 2311, 2312, 2313, 2314, 2315,
3690 :
3691 : 2316, 2318, 2320, 2330, 2331, 2333, 2321, 2334, 2322, 2340,
3692 : 2341, 2342, 2344, 2345, 2326, 2327, 2328, 2329, 2346, 2347,
3693 : 2348, 2349, 2350, 2352, 2353, 2354, 2355, 2356, 2357, 2358,
3694 : 2360, 2362, 2330, 2331, 2333, 2363, 2334, 2364, 2340, 2341,
3695 : 2342, 2344, 2345, 2365, 2366, 2367, 2368, 2346, 2347, 2348,
3696 : 2349, 2350, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2360,
3697 : 2362, 2369, 2371, 2372, 2363, 2373, 2364, 2370, 2374, 2375,
3698 : 2377, 2378, 2365, 2366, 2367, 2368, 2379, 2370, 2380, 2370,
3699 : 2382, 2383, 2384, 2385, 2391, 2392, 2394, 2397, 2398, 2400,
3700 : 2369, 2371, 2372, 2401, 2373, 2402, 2370, 2374, 2375, 2377,
3701 :
3702 : 2378, 2403, 2405, 2407, 2403, 2379, 2370, 2380, 2370, 2382,
3703 : 2383, 2384, 2385, 2391, 2392, 2394, 2397, 2398, 2400, 2408,
3704 : 2411, 2415, 2401, 2416, 2402, 2417, 2418, 2421, 2423, 2425,
3705 : 2403, 2405, 2407, 2403, 2426, 2428, 2429, 2431, 2433, 2434,
3706 : 2435, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2408, 2411,
3707 : 2415, 2444, 2416, 2446, 2417, 2418, 2421, 2423, 2425, 2447,
3708 : 2448, 2449, 2451, 2426, 2428, 2429, 2431, 2433, 2434, 2435,
3709 : 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2452, 2453, 2455,
3710 : 2444, 2456, 2446, 2457, 2458, 2459, 2460, 2462, 2447, 2448,
3711 : 2449, 2451, 2463, 2464, 2465, 2467, 2468, 2469, 2470, 2471,
3712 :
3713 : 2472, 2473, 2475, 2477, 2478, 2479, 2452, 2453, 2455, 2483,
3714 : 2456, 2484, 2457, 2458, 2459, 2460, 2462, 2485, 2486, 2487,
3715 : 2488, 2463, 2464, 2465, 2467, 2468, 2469, 2470, 2471, 2472,
3716 : 2473, 2475, 2477, 2478, 2479, 2490, 2491, 2499, 2483, 2500,
3717 : 2484, 2493, 2493, 2493, 2493, 2501, 2485, 2486, 2487, 2488,
3718 : 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2511, 2512, 2513,
3719 : 2514, 2515, 2516, 2517, 2490, 2491, 2499, 2519, 2500, 2521,
3720 : 2522, 2523, 2524, 2525, 2501, 2526, 2527, 2528, 0, 2503,
3721 : 2504, 2505, 2506, 2507, 2508, 2509, 2511, 2512, 2513, 2514,
3722 : 2515, 2516, 2517, 2530, 2531, 2532, 2519, 2529, 2521, 2522,
3723 :
3724 : 2523, 2524, 2525, 2533, 2526, 2527, 2528, 2529, 2534, 2529,
3725 : 2536, 2537, 2538, 2539, 2541, 2542, 2543, 2544, 2550, 2551,
3726 : 2553, 2556, 2530, 2531, 2532, 2557, 2529, 2559, 2560, 2561,
3727 : 2562, 2564, 2533, 2562, 2566, 2567, 2529, 2534, 2529, 2536,
3728 : 2537, 2538, 2539, 2541, 2542, 2543, 2544, 2550, 2551, 2553,
3729 : 2556, 2570, 2574, 2575, 2557, 2576, 2559, 2560, 2561, 2562,
3730 : 2564, 2577, 2562, 2566, 2567, 2580, 2582, 2584, 2585, 2587,
3731 : 2588, 2590, 2592, 2593, 2594, 2596, 2597, 2598, 2599, 2600,
3732 : 2570, 2574, 2575, 2601, 2576, 2602, 2603, 2605, 2606, 2607,
3733 : 2577, 2608, 2610, 2611, 2580, 2582, 2584, 2585, 2587, 2588,
3734 :
3735 : 2590, 2592, 2593, 2594, 2596, 2597, 2598, 2599, 2600, 2612,
3736 : 2614, 2615, 2601, 2616, 2602, 2603, 2605, 2606, 2607, 2617,
3737 : 2608, 2610, 2611, 2618, 2619, 2621, 2622, 2623, 2624, 2626,
3738 : 2627, 2628, 2629, 2630, 2631, 2632, 2634, 2636, 2612, 2614,
3739 : 2615, 2637, 2616, 2638, 2642, 2643, 2644, 2645, 2617, 2646,
3740 : 2647, 2649, 2618, 2619, 2621, 2622, 2623, 2624, 2626, 2627,
3741 : 2628, 2629, 2630, 2631, 2632, 2634, 2636, 2650, 2660, 2661,
3742 : 2637, 2662, 2638, 2642, 2643, 2644, 2645, 2664, 2646, 2647,
3743 : 2649, 2651, 2651, 2651, 2651, 2653, 2653, 2653, 2653, 2654,
3744 : 2654, 2654, 2654, 2665, 2666, 2667, 2650, 2660, 2661, 2668,
3745 :
3746 : 2662, 2669, 2670, 2672, 2673, 2674, 2664, 2675, 2676, 2677,
3747 : 2678, 2680, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689,
3748 : 0, 2691, 2665, 2666, 2667, 2692, 2693, 2694, 2668, 2695,
3749 : 2669, 2670, 2672, 2673, 2674, 2697, 2675, 2676, 2677, 2678,
3750 : 2680, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690,
3751 : 2691, 2698, 2699, 2700, 2692, 2693, 2694, 2702, 2695, 2690,
3752 : 2703, 2690, 2704, 2705, 2697, 2711, 2712, 2714, 2717, 2718,
3753 : 2720, 2721, 2722, 2723, 2725, 2727, 2723, 2728, 2690, 2731,
3754 : 2698, 2699, 2700, 2735, 2736, 2737, 2702, 2738, 2690, 2703,
3755 : 2690, 2704, 2705, 2741, 2711, 2712, 2714, 2717, 2718, 2720,
3756 :
3757 : 2721, 2722, 2723, 2725, 2727, 2723, 2728, 2743, 2731, 2745,
3758 : 2746, 2748, 2735, 2736, 2737, 2749, 2738, 2751, 2753, 2754,
3759 : 2755, 2757, 2741, 2758, 2759, 2760, 2761, 2762, 2763, 2764,
3760 : 2766, 2767, 2768, 2769, 2771, 2772, 2743, 2773, 2745, 2746,
3761 : 2748, 2775, 2776, 2777, 2749, 2778, 2751, 2753, 2754, 2755,
3762 : 2757, 2779, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2766,
3763 : 2767, 2768, 2769, 2771, 2772, 2780, 2773, 2782, 2783, 2784,
3764 : 2775, 2776, 2777, 2785, 2778, 2787, 2788, 2789, 2790, 2791,
3765 : 2779, 2792, 2793, 2795, 2797, 2798, 2799, 2803, 2804, 2805,
3766 : 2806, 2807, 2808, 2810, 2780, 2811, 2782, 2783, 2784, 2812,
3767 :
3768 : 2814, 2816, 2785, 2819, 2787, 2788, 2789, 2790, 2791, 2820,
3769 : 2792, 2793, 2795, 2797, 2798, 2799, 2803, 2804, 2805, 2806,
3770 : 2807, 2808, 2810, 2821, 2811, 2822, 2823, 2824, 2812, 2814,
3771 : 2816, 2825, 2819, 2828, 2829, 2831, 2832, 2833, 2820, 2835,
3772 : 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845,
3773 : 2847, 2848, 2821, 2849, 2822, 2823, 2824, 2853, 2855, 2856,
3774 : 2825, 2857, 2828, 2829, 2831, 2832, 2833, 2858, 2835, 2836,
3775 : 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2847,
3776 : 2848, 2863, 2849, 2864, 2865, 2866, 2853, 2855, 2856, 2867,
3777 : 2857, 2868, 2872, 2873, 2874, 2875, 2858, 2877, 2879, 2883,
3778 :
3779 : 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2892, 2893, 2894,
3780 : 2863, 2896, 2864, 2865, 2866, 2897, 2898, 2899, 2867, 2900,
3781 : 2868, 2872, 2873, 2874, 2875, 2904, 2877, 2879, 2883, 2884,
3782 : 2885, 2886, 2887, 2888, 2889, 2890, 2892, 2893, 2894, 2905,
3783 : 2896, 2906, 2907, 2909, 2897, 2898, 2899, 2911, 2900, 2912,
3784 : 2913, 2914, 2915, 2916, 2904, 2917, 2918, 2920, 2923, 2924,
3785 : 2925, 2926, 2927, 2929, 2930, 2932, 2934, 2937, 2905, 2938,
3786 : 2906, 2907, 2909, 2939, 2940, 2941, 2911, 2942, 2912, 2913,
3787 : 2914, 2915, 2916, 2943, 2917, 2918, 2920, 2923, 2924, 2925,
3788 : 2926, 2927, 2929, 2930, 2932, 2934, 2937, 2946, 2938, 2947,
3789 :
3790 : 2949, 2950, 2939, 2940, 2941, 2951, 2942, 2953, 2954, 2955,
3791 : 2956, 2957, 2943, 2958, 2959, 2960, 2961, 2962, 2963, 2965,
3792 : 2966, 2967, 2971, 2973, 2974, 2975, 2946, 2976, 2947, 2949,
3793 : 2950, 2981, 2982, 2983, 2951, 2984, 2953, 2954, 2955, 2956,
3794 : 2957, 2985, 2958, 2959, 2960, 2961, 2962, 2963, 2965, 2966,
3795 : 2967, 2971, 2973, 2974, 2975, 2986, 2976, 2990, 2991, 2992,
3796 : 2981, 2982, 2983, 2993, 2984, 2995, 2997, 3001, 3002, 3003,
3797 : 2985, 3004, 3005, 3006, 3007, 3008, 3010, 3011, 3012, 3014,
3798 : 3015, 3016, 3017, 3018, 2986, 3022, 2990, 2991, 2992, 3023,
3799 : 3024, 3025, 2993, 3027, 2995, 2997, 3001, 3002, 3003, 3029,
3800 :
3801 : 3004, 3005, 3006, 3007, 3008, 3010, 3011, 3012, 3014, 3015,
3802 : 3016, 3017, 3018, 3030, 3022, 3031, 3032, 3033, 3023, 3024,
3803 : 3025, 3034, 3027, 3035, 3036, 3038, 3041, 3042, 3029, 3043,
3804 : 3044, 3045, 3047, 3048, 3048, 3048, 3048, 3049, 3051, 3053,
3805 : 3056, 3057, 3030, 3058, 3031, 3032, 3033, 3059, 3060, 3061,
3806 : 3034, 3062, 3035, 3036, 3038, 3041, 3042, 3065, 3043, 3044,
3807 : 3045, 3047, 3066, 3068, 3069, 3070, 3049, 3051, 3053, 3056,
3808 : 3057, 3072, 3058, 3073, 3074, 3075, 3059, 3060, 3061, 3076,
3809 : 3062, 3077, 3078, 3079, 3080, 3081, 3065, 3082, 3084, 3085,
3810 : 3086, 3066, 3068, 3069, 3070, 3090, 3092, 3093, 3094, 3095,
3811 :
3812 : 3072, 3100, 3073, 3074, 3075, 3101, 3102, 3103, 3076, 3104,
3813 : 3077, 3078, 3079, 3080, 3081, 3105, 3082, 3084, 3085, 3086,
3814 : 3109, 3110, 3111, 3112, 3090, 3092, 3093, 3094, 3095, 3114,
3815 : 3100, 3116, 3120, 3121, 3101, 3102, 3103, 3122, 3104, 3123,
3816 : 3124, 3125, 3126, 3127, 3105, 3129, 3130, 3131, 3133, 3109,
3817 : 3110, 3111, 3112, 3134, 3135, 3136, 3137, 3141, 3114, 3142,
3818 : 3116, 3120, 3121, 3143, 3144, 3146, 3122, 3148, 3123, 3124,
3819 : 3125, 3126, 3127, 3149, 3129, 3130, 3131, 3133, 3150, 3151,
3820 : 3152, 3153, 3134, 3135, 3136, 3137, 3141, 3154, 3142, 3155,
3821 : 3157, 3160, 3143, 3144, 3146, 3161, 3148, 3162, 3163, 3164,
3822 :
3823 : 3166, 0, 3149, 3167, 3167, 3167, 3167, 3150, 3151, 3152,
3824 : 3153, 3168, 3168, 3168, 3168, 3170, 3154, 3172, 3155, 3157,
3825 : 3160, 3174, 3177, 3178, 3161, 3179, 3162, 3163, 3164, 3166,
3826 : 3169, 3169, 3169, 3169, 3180, 3181, 3182, 3183, 3186, 3187,
3827 : 3189, 3190, 3191, 3193, 3170, 3194, 3172, 3195, 3196, 3197,
3828 : 3174, 3177, 3178, 3198, 3179, 3199, 3200, 3201, 3202, 3203,
3829 : 3205, 3206, 3207, 3180, 3181, 3182, 3183, 3186, 3187, 3189,
3830 : 3190, 3191, 3193, 3211, 3194, 3213, 3195, 3196, 3197, 3214,
3831 : 3215, 3216, 3198, 3221, 3199, 3200, 3201, 3202, 3203, 3205,
3832 : 3206, 3207, 3222, 3223, 3224, 3225, 3226, 3230, 3231, 3232,
3833 :
3834 : 3233, 3235, 3211, 3237, 3213, 3241, 3242, 3243, 3214, 3215,
3835 : 3216, 3244, 3221, 3245, 3246, 3247, 3248, 3250, 3251, 3252,
3836 : 3254, 3222, 3223, 3224, 3225, 3226, 3230, 3231, 3232, 3233,
3837 : 3235, 3255, 3237, 3256, 3241, 3242, 3243, 3257, 3258, 3262,
3838 : 3244, 3263, 3245, 3246, 3247, 3248, 3250, 3251, 3252, 3254,
3839 : 3264, 3265, 3267, 3269, 3270, 3271, 3272, 3273, 3274, 3275,
3840 : 3255, 3276, 3256, 3278, 3281, 3282, 3257, 3258, 3262, 3283,
3841 : 3263, 3284, 3285, 3287, 3288, 3289, 3291, 3293, 3294, 3264,
3842 : 3265, 3267, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3295,
3843 : 3276, 3298, 3278, 3281, 3282, 3300, 3304, 3305, 3283, 3307,
3844 :
3845 : 3284, 3285, 3287, 3288, 3289, 3291, 3293, 3294, 3308, 3309,
3846 : 3314, 3315, 3316, 3319, 3320, 3324, 3325, 3326, 3295, 3328,
3847 : 3298, 3329, 3331, 3333, 3300, 3304, 3305, 3334, 3307, 3336,
3848 : 3335, 3337, 3338, 3340, 3341, 3344, 3347, 3308, 3309, 3314,
3849 : 3315, 3316, 3319, 3320, 3324, 3325, 3326, 3348, 3328, 3335,
3850 : 3329, 3331, 3333, 3349, 3351, 3353, 3334, 3355, 3336, 3335,
3851 : 3337, 3338, 3340, 3341, 3344, 3347, 3354, 3356, 3357, 3354,
3852 : 3358, 3359, 3360, 3361, 3363, 3364, 3348, 3366, 3370, 3372,
3853 : 3373, 3375, 3349, 3351, 3353, 3377, 3355, 3378, 3379, 3382,
3854 : 3384, 3388, 3389, 3391, 3392, 3354, 3356, 3357, 3354, 3358,
3855 :
3856 : 3359, 3360, 3361, 3363, 3364, 3393, 3366, 3370, 3372, 3373,
3857 : 3375, 3398, 3399, 3400, 3377, 3403, 3378, 3379, 3382, 3384,
3858 : 3388, 3389, 3391, 3392, 3404, 3408, 3409, 3410, 3412, 3413,
3859 : 3415, 3417, 3418, 3419, 3393, 3420, 3421, 3422, 3424, 3425,
3860 : 3398, 3399, 3400, 3428, 3403, 3431, 3432, 3433, 3435, 3437,
3861 : 3439, 3440, 3419, 3404, 3408, 3409, 3410, 3412, 3413, 3415,
3862 : 3417, 3418, 3419, 3441, 3420, 3421, 3422, 3424, 3425, 3442,
3863 : 3438, 3443, 3428, 3438, 3431, 3432, 3433, 3435, 3437, 3439,
3864 : 3440, 3444, 3445, 3447, 3448, 3450, 3454, 3456, 3456, 3456,
3865 : 3456, 3457, 3441, 3458, 3460, 3462, 3463, 3464, 3442, 3438,
3866 :
3867 : 3443, 3467, 3438, 3469, 3473, 3474, 3476, 3477, 3478, 3483,
3868 : 3444, 3445, 3447, 3448, 3450, 3454, 3484, 3485, 3488, 3489,
3869 : 3457, 3493, 3458, 3460, 3462, 3463, 3464, 3494, 3495, 3497,
3870 : 3467, 3498, 3469, 3473, 3474, 3476, 3477, 3478, 3483, 3500,
3871 : 3502, 3503, 3504, 3505, 3506, 3484, 3485, 3488, 3489, 3507,
3872 : 3493, 3509, 3510, 3513, 3516, 3517, 3494, 3495, 3497, 3518,
3873 : 3498, 3504, 3520, 3522, 3523, 3524, 3525, 3523, 3500, 3502,
3874 : 3503, 3504, 3505, 3506, 3526, 3527, 3528, 3529, 3507, 3530,
3875 : 3509, 3510, 3513, 3516, 3517, 3532, 3533, 3535, 3518, 3539,
3876 : 3543, 3520, 3522, 3523, 3524, 3525, 3523, 3541, 3541, 3541,
3877 :
3878 : 3541, 3544, 3546, 3526, 3527, 3528, 3529, 3548, 3530, 3542,
3879 : 3542, 3542, 3542, 3549, 3532, 3533, 3535, 3550, 3539, 3543,
3880 : 3553, 3555, 3559, 3560, 3562, 3563, 3564, 3569, 3570, 3571,
3881 : 3544, 3546, 3574, 3575, 3579, 3580, 3548, 3581, 3583, 3584,
3882 : 3586, 3588, 3549, 3589, 3591, 3592, 3550, 3593, 3595, 3553,
3883 : 3555, 3559, 3560, 3562, 3563, 3564, 3569, 3570, 3571, 3590,
3884 : 3596, 3574, 3575, 3579, 3580, 3599, 3581, 3583, 3584, 3586,
3885 : 3588, 3602, 3589, 3591, 3592, 3603, 3593, 3595, 3590, 3604,
3886 : 3606, 3608, 3609, 3610, 3611, 3609, 3612, 3613, 3590, 3596,
3887 : 3614, 3615, 3616, 3618, 3599, 3619, 3621, 3625, 3627, 3628,
3888 :
3889 : 3602, 3629, 3630, 3631, 3603, 3634, 0, 0, 3604, 3606,
3890 : 3608, 3609, 3610, 3611, 3609, 3612, 3613, 3637, 3638, 3614,
3891 : 3615, 3616, 3618, 0, 3619, 3621, 3625, 3627, 3628, 3639,
3892 : 3629, 3630, 3631, 3640, 3634, 3635, 3635, 3641, 3642, 3644,
3893 : 3645, 3646, 3648, 3649, 3651, 3652, 3637, 3638, 3635, 3653,
3894 : 3635, 3635, 3635, 3635, 3654, 3655, 3657, 3658, 3639, 3659,
3895 : 3660, 3663, 3640, 3664, 3635, 3635, 3641, 3642, 3644, 3645,
3896 : 3646, 3648, 3649, 3651, 3652, 3665, 3667, 3635, 3653, 3635,
3897 : 3635, 3635, 3635, 3654, 3655, 3657, 3658, 3661, 3659, 3660,
3898 : 3663, 3661, 3664, 3668, 3669, 3670, 3671, 3672, 3673, 3676,
3899 :
3900 : 3678, 3679, 3681, 3682, 3665, 3667, 3683, 3684, 3685, 3688,
3901 : 0, 0, 3691, 3692, 3693, 3694, 3661, 3695, 3696, 3698,
3902 : 3661, 3699, 3668, 3669, 3670, 3671, 3672, 3673, 3676, 3678,
3903 : 3679, 3681, 3682, 3700, 3702, 3683, 3684, 3685, 3688, 3689,
3904 : 3689, 3691, 3692, 3693, 3694, 3703, 3695, 3696, 3698, 3705,
3905 : 3699, 3706, 3689, 3707, 3689, 3689, 3689, 3689, 3708, 3709,
3906 : 3711, 3712, 3700, 3702, 3713, 3714, 3715, 3717, 3689, 3689,
3907 : 3715, 3718, 3719, 3721, 3703, 3722, 3723, 3724, 3705, 3725,
3908 : 3706, 3689, 3707, 3689, 3689, 3689, 3689, 3708, 3709, 3711,
3909 : 3712, 3726, 3727, 3713, 3714, 3715, 3717, 3730, 3732, 3715,
3910 :
3911 : 3718, 3719, 3721, 3733, 3722, 3723, 3724, 3735, 3725, 3736,
3912 : 3737, 3738, 3739, 3742, 0, 0, 3745, 3746, 3747, 3748,
3913 : 3726, 3727, 3749, 3750, 3752, 3753, 3730, 3732, 3754, 0,
3914 : 0, 0, 3733, 3756, 3757, 3759, 3735, 3760, 3736, 3737,
3915 : 3738, 3739, 3742, 3743, 3743, 3745, 3746, 3747, 3748, 3761,
3916 : 3762, 3749, 3750, 3752, 3753, 3763, 3743, 3754, 3743, 3743,
3917 : 3743, 3743, 3756, 3757, 3759, 3765, 3760, 3766, 3767, 3768,
3918 : 3769, 3771, 3743, 3743, 3769, 3772, 3773, 3775, 3761, 3762,
3919 : 3776, 3777, 3778, 3779, 3763, 3743, 3780, 3743, 3743, 3743,
3920 : 3743, 3781, 3784, 3786, 3765, 3787, 3766, 3767, 3768, 3769,
3921 :
3922 : 3771, 3789, 3790, 3769, 3772, 3773, 3775, 3791, 3792, 3776,
3923 : 3777, 3778, 3779, 3793, 3796, 3780, 0, 3799, 3800, 3801,
3924 : 3781, 3784, 3786, 3802, 3787, 3803, 3804, 3806, 0, 3807,
3925 : 3789, 3790, 0, 0, 3808, 3810, 3791, 3792, 3811, 3813,
3926 : 3814, 3815, 3793, 3796, 3797, 3797, 3799, 3800, 3801, 3816,
3927 : 3817, 3819, 3802, 3820, 3803, 3804, 3806, 3797, 3807, 3797,
3928 : 3797, 3797, 3797, 3808, 3810, 3821, 3822, 3811, 3813, 3814,
3929 : 3815, 3823, 3825, 3797, 3797, 3823, 3826, 3827, 3816, 3817,
3930 : 3819, 3829, 3820, 3830, 3831, 3832, 3797, 3833, 3797, 3797,
3931 : 3797, 3797, 3834, 3835, 3821, 3822, 3838, 3840, 3841, 3844,
3932 :
3933 : 3823, 3825, 3845, 3847, 3823, 3826, 3827, 3849, 3851, 3852,
3934 : 3829, 3850, 3830, 3831, 3832, 3850, 3833, 3853, 3854, 3855,
3935 : 3857, 3834, 3835, 3860, 3861, 3838, 3840, 3841, 3844, 3862,
3936 : 3864, 3845, 3847, 3865, 3868, 3870, 3849, 3851, 3852, 3871,
3937 : 3850, 3874, 3876, 3877, 3850, 3878, 3853, 3854, 3855, 3857,
3938 : 3879, 3880, 3860, 3861, 3882, 3883, 3885, 3886, 3862, 3864,
3939 : 3886, 3888, 3865, 3868, 3870, 3893, 3888, 3894, 3871, 3896,
3940 : 3874, 3876, 3877, 3898, 3878, 3900, 3901, 3899, 3902, 3879,
3941 : 3880, 3899, 3903, 3882, 3883, 3885, 3886, 3904, 3906, 3886,
3942 : 3888, 3909, 3910, 3911, 3893, 3888, 3894, 3913, 3896, 3914,
3943 :
3944 : 3917, 3919, 3898, 3920, 3900, 3901, 3899, 3902, 3923, 3925,
3945 : 3899, 3903, 3926, 3927, 3928, 3929, 3904, 3906, 3931, 3932,
3946 : 3909, 3910, 3911, 3934, 3935, 3942, 3913, 3935, 3914, 3917,
3947 : 3919, 3937, 3920, 3943, 3945, 3947, 3937, 3923, 3925, 3949,
3948 : 3950, 3926, 3927, 3928, 3929, 3948, 3951, 3931, 3932, 3948,
3949 : 3952, 3953, 3934, 3935, 3942, 3955, 3935, 3958, 3959, 3960,
3950 : 3937, 3962, 3943, 3945, 3947, 3937, 3963, 3966, 3949, 3950,
3951 : 3968, 3969, 3972, 3974, 3948, 3951, 3975, 3976, 3948, 3952,
3952 : 3953, 3977, 3978, 3980, 3955, 3981, 3958, 3959, 3960, 3983,
3953 : 3962, 3984, 3986, 3991, 3984, 3963, 3966, 3986, 3992, 3968,
3954 :
3955 : 3969, 3972, 3974, 3994, 3996, 3975, 3976, 3998, 3999, 3997,
3956 : 3977, 3978, 3980, 3997, 3981, 4000, 4001, 4002, 3983, 4004,
3957 : 3984, 3986, 3991, 3984, 4007, 4008, 3986, 3992, 4009, 4011,
3958 : 4012, 4015, 3994, 3996, 4017, 4018, 3998, 3999, 3997, 4021,
3959 : 4023, 4024, 3997, 4025, 4000, 4001, 4002, 4026, 4004, 4027,
3960 : 4029, 4030, 4032, 4007, 4008, 4039, 4035, 4009, 4011, 4012,
3961 : 4015, 4035, 4033, 4017, 4018, 4033, 4041, 4042, 4021, 4023,
3962 : 4024, 4043, 4025, 4044, 4045, 4046, 4026, 4047, 4027, 4029,
3963 : 4030, 4032, 4048, 4049, 4039, 4035, 4053, 4054, 4056, 4058,
3964 : 4035, 4033, 4061, 4064, 4033, 4041, 4042, 4066, 4067, 4068,
3965 :
3966 : 4043, 4069, 4044, 4045, 4046, 4070, 4047, 4071, 4072, 4074,
3967 : 4075, 4048, 4049, 4076, 4077, 4053, 4054, 4056, 4058, 4078,
3968 : 4079, 4061, 4064, 4080, 4081, 4082, 4066, 4067, 4068, 4086,
3969 : 4069, 4087, 4089, 4091, 4070, 4094, 4071, 4072, 4074, 4075,
3970 : 4097, 4099, 4076, 4077, 4100, 4101, 4102, 4103, 4078, 4079,
3971 : 4104, 4105, 4080, 4081, 4082, 4107, 4108, 4109, 4086, 4110,
3972 : 4087, 4089, 4091, 4111, 4094, 4112, 4113, 4114, 4115, 4097,
3973 : 4099, 4119, 4120, 4100, 4101, 4102, 4103, 4122, 4124, 4104,
3974 : 4105, 4127, 4130, 4132, 4107, 4108, 4109, 4133, 4110, 4134,
3975 : 4135, 4136, 4111, 4137, 4112, 4113, 4114, 4115, 4138, 4140,
3976 :
3977 : 4119, 4120, 4141, 4142, 4143, 4144, 4122, 4124, 4145, 4146,
3978 : 4127, 4130, 4132, 4147, 4148, 4152, 4133, 4153, 4134, 4135,
3979 : 4136, 4155, 4137, 4157, 4160, 4163, 4165, 4138, 4140, 4166,
3980 : 4167, 4141, 4142, 4143, 4144, 4168, 4169, 4145, 4146, 4170,
3981 : 4171, 4173, 4147, 4148, 4152, 4174, 4153, 4175, 4176, 4177,
3982 : 4155, 4178, 4157, 4160, 4163, 4165, 4179, 4180, 4166, 4167,
3983 : 4182, 4183, 4184, 4184, 4168, 4169, 4185, 4187, 4170, 4171,
3984 : 4173, 4190, 4191, 4192, 4174, 4193, 4175, 4176, 4177, 4194,
3985 : 4178, 4196, 4197, 4198, 4199, 4179, 4180, 4200, 4201, 4182,
3986 : 4183, 4184, 4184, 4202, 4203, 4185, 4187, 4205, 4206, 4208,
3987 :
3988 : 4190, 4191, 4192, 4210, 4193, 4207, 4207, 4213, 4194, 4214,
3989 : 4196, 4197, 4198, 4199, 4215, 4216, 4200, 4201, 4217, 4219,
3990 : 4220, 4221, 4202, 4203, 4222, 4223, 4205, 4206, 4208, 4224,
3991 : 4225, 4226, 4210, 4228, 4207, 4207, 4213, 4229, 4214, 4230,
3992 : 4230, 4231, 4233, 4215, 4216, 4236, 4237, 4217, 4219, 4220,
3993 : 4221, 4238, 4239, 4222, 4223, 4240, 4242, 4243, 4224, 4225,
3994 : 4226, 4244, 4228, 4245, 4246, 4247, 4229, 4248, 4230, 4230,
3995 : 4231, 4233, 4249, 4251, 4236, 4237, 4252, 4253, 4253, 4254,
3996 : 4238, 4239, 4256, 4259, 4240, 4242, 4243, 4260, 4261, 4262,
3997 : 4244, 4263, 4245, 4246, 4247, 4264, 4248, 4266, 4269, 4270,
3998 :
3999 : 4274, 4249, 4251, 4275, 4279, 4252, 4253, 4253, 4254, 4280,
4000 : 4281, 4256, 4259, 4282, 4283, 4285, 4260, 4261, 4262, 4288,
4001 : 4263, 4289, 4293, 4294, 4264, 4298, 4266, 4269, 4270, 4274,
4002 : 4299, 4300, 4275, 4279, 4301, 4302, 4304, 4307, 4280, 4281,
4003 : 4308, 4312, 4282, 4283, 4285, 4313, 4317, 4318, 4288, 4319,
4004 : 4289, 4293, 4294, 4320, 4298, 4321, 4323, 4326, 4327, 4299,
4005 : 4300, 4331, 4332, 4301, 4302, 4304, 4307, 4336, 4337, 4308,
4006 : 4312, 4338, 4340, 4341, 4313, 4317, 4318, 4342, 4319, 4343,
4007 : 4344, 4345, 4320, 4348, 4321, 4323, 4326, 4327, 4350, 4351,
4008 : 4331, 4332, 4352, 4353, 4354, 4355, 4336, 4337, 4358, 4360,
4009 :
4010 : 4338, 4340, 4341, 4361, 4362, 4363, 4342, 4364, 4343, 4344,
4011 : 4345, 4365, 4348, 4368, 4370, 4371, 4372, 4350, 4351, 4373,
4012 : 4374, 4352, 4353, 4354, 4355, 4375, 4378, 4358, 4360, 4379,
4013 : 4380, 4382, 4361, 4362, 4363, 4383, 4364, 4384, 4385, 4386,
4014 : 4365, 4387, 4368, 4370, 4371, 4372, 4389, 4390, 4373, 4374,
4015 : 4391, 4392, 4393, 4394, 4375, 4378, 4396, 4397, 4379, 4380,
4016 : 4382, 4398, 4399, 4400, 4383, 4401, 4384, 4385, 4386, 4403,
4017 : 4387, 4404, 4405, 4406, 4409, 4389, 4390, 4415, 4421, 4391,
4018 : 4392, 4393, 4394, 4427, 4431, 4396, 4397, 4432, 4433, 4434,
4019 : 4398, 4399, 4400, 4435, 4401, 4436, 4437, 4438, 4403, 4439,
4020 :
4021 : 4404, 4405, 4406, 4409, 4441, 4443, 4415, 4421, 4445, 4447,
4022 : 4448, 4449, 4427, 4431, 4450, 4451, 4432, 4433, 4434, 4452,
4023 : 4453, 4454, 4435, 4455, 4436, 4437, 4438, 4456, 4439, 4457,
4024 : 4458, 4459, 4460, 4441, 4443, 4461, 4462, 4445, 4447, 4448,
4025 : 4449, 4463, 4464, 4450, 4451, 4465, 4466, 4467, 4452, 4453,
4026 : 4454, 4468, 4455, 4469, 4470, 4471, 4456, 4472, 4457, 4458,
4027 : 4459, 4460, 4473, 4474, 4461, 4462, 4479, 4480, 4481, 4482,
4028 : 4463, 4464, 4483, 4484, 4465, 4466, 4467, 4485, 4486, 4487,
4029 : 4468, 4488, 4469, 4470, 4471, 4489, 4472, 4490, 4491, 4492,
4030 : 4493, 4473, 4474, 4494, 4495, 4479, 4480, 4481, 4482, 4496,
4031 :
4032 : 4497, 4483, 4484, 4498, 0, 0, 4485, 4486, 4487, 0,
4033 : 4488, 0, 0, 0, 4489, 0, 4490, 4491, 4492, 4493,
4034 : 0, 0, 4494, 4495, 0, 0, 0, 0, 4496, 4497,
4035 : 0, 0, 4498, 4504, 0, 4504, 4505, 0, 4505, 4506,
4036 : 4506, 4506, 4506, 4506, 4507, 0, 4507, 4507, 4507, 4507,
4037 : 4507, 4507, 4508, 0, 0, 4508, 4508, 4508, 0, 4508,
4038 : 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4510, 4510,
4039 : 4510, 4510, 4510, 4510, 4510, 4510, 4511, 0, 4511, 4511,
4040 : 4511, 4511, 4511, 4511, 4503, 4503, 4503, 4503, 4503, 4503,
4041 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4042 :
4043 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4044 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4045 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4046 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4047 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4048 : 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503, 4503,
4049 : 4503, 4503, 4503, 4503, 4503, 4503
4050 : } ;
4051 :
4052 : static yy_state_type yy_last_accepting_state;
4053 : static char *yy_last_accepting_cpos;
4054 :
4055 : extern int SQLyy_flex_debug;
4056 : int SQLyy_flex_debug = 0;
4057 :
4058 : /* The intent behind this definition is that it'll catch
4059 : * any uses of REJECT which flex missed.
4060 : */
4061 : #define REJECT reject_used_but_not_detected
4062 : #define yymore() yymore_used_but_not_detected
4063 : #define YY_MORE_ADJ 0
4064 : #define YY_RESTORE_YY_MORE_OFFSET
4065 : char *SQLyytext;
4066 :
4067 : //
4068 : // This file is part of the LibreOffice project.
4069 : //
4070 : // This Source Code Form is subject to the terms of the Mozilla Public
4071 : // License, v. 2.0. If a copy of the MPL was not distributed with this
4072 : // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4073 : //
4074 : // This file incorporates work covered by the following license notice:
4075 : //
4076 : // Licensed to the Apache Software Foundation (ASF) under one or more
4077 : // contributor license agreements. See the NOTICE file distributed
4078 : // with this work for additional information regarding copyright
4079 : // ownership. The ASF licenses this file to you under the Apache
4080 : // License, Version 2.0 (the "License"); you may not use this file
4081 : // except in compliance with the License. You may obtain a copy of
4082 : // the License at http://www.apache.org/licenses/LICENSE-2.0 .
4083 : //
4084 :
4085 : #define YY_EXIT 1 // YY_FATAL will not halt the application
4086 :
4087 : #ifndef _CSTDARG_
4088 : #include <cstdarg> // std::va_list
4089 : #endif
4090 :
4091 : #ifndef _INC_STRING
4092 : #include <string.h>
4093 : #endif
4094 :
4095 : #include "internalnode.hxx"
4096 :
4097 : #ifndef _CONNECTIVITY_SQLYACC_HXX
4098 : #define _CONNECTIVITY_SQLYACC_HXX
4099 :
4100 : #ifndef SQLYYDEBUG
4101 : #define SQLYYDEBUG 1
4102 : #endif
4103 :
4104 : #include "sqlbison.hxx"
4105 : #endif
4106 : #include "sqlscan.hxx"
4107 : #include <osl/diagnose.h>
4108 : #include <rtl/strbuf.hxx>
4109 : #include <connectivity/sqlparse.hxx>
4110 :
4111 : #if defined __GNUC__
4112 : #if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
4113 : # pragma GCC diagnostic ignored "-Wwrite-strings"
4114 : # pragma GCC diagnostic ignored "-Wunused-function"
4115 : #endif
4116 : #elif defined __SUNPRO_CC
4117 : #pragma disable_warn
4118 : #elif defined _MSC_VER
4119 : #pragma warning(push, 1)
4120 : /**/
4121 : #ifdef SQLyywrap
4122 : #undef SQLyywrap
4123 : #define SQLyywrap() 1
4124 : #endif
4125 : /**/
4126 : #endif
4127 :
4128 : using namespace connectivity;
4129 :
4130 : //=============================================================================
4131 : //
4132 : // Erzeugung der Blaetter fuer die Token
4133 : // Blaetter werden generell vom Lexer erzeugt
4134 :
4135 6 : static ::rtl::OUString aEmptyString;
4136 :
4137 : static sal_Int32 gatherString(int delim, sal_Int32 nTyp);
4138 : static sal_Int32 gatherName(const sal_Char*);
4139 : static sal_Int32 gatherNamePre(const sal_Char* );
4140 : // has to be set before the parser starts
4141 : OSQLScanner* xxx_pGLOBAL_SQLSCAN = NULL;
4142 :
4143 : #define SQL_NEW_NODE(text, token) \
4144 : SQLyylval.pParseNode = new OSQLInternalNode(text, token);
4145 :
4146 : #define SQL_NEW_KEYWORD(token) \
4147 : SQLyylval.pParseNode = new OSQLInternalNode(aEmptyString, SQL_NODE_KEYWORD, (token)); return token;
4148 :
4149 : #define SQL_NEW_INTNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_INTNUM); return SQL_TOKEN_INTNUM;
4150 : #define SQL_NEW_APPROXNUM SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_APPROXNUM); return SQL_TOKEN_APPROXNUM;
4151 : #define SQL_NEW_DATE SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE); return SQL_TOKEN_ACCESS_DATE;
4152 :
4153 : #define YY_INPUT(buf,result,max_size) \
4154 : { \
4155 : int c = xxx_pGLOBAL_SQLSCAN->SQLyygetc(); \
4156 : result = (c == EOF) ? YY_NULL : (buf[0] = c, 1);\
4157 : }
4158 :
4159 : #define YY_FATAL_ERROR(msg) \
4160 : { \
4161 : xxx_pGLOBAL_SQLSCAN->SQLyyerror(msg); \
4162 : }
4163 :
4164 : //
4165 : //=============================================================================
4166 :
4167 : #define INITIAL 0
4168 : #define SQL 1
4169 : #define PREDICATE_ENG 2
4170 : #define PREDICATE_GER 3
4171 : #define DATE 4
4172 : #define STRING 5
4173 :
4174 : #ifndef YY_NO_UNISTD_H
4175 : /* Special case for "unistd.h", since it is non-ANSI. We include it way
4176 : * down here because we want the user's section 1 to have been scanned first.
4177 : * The user has a chance to override it with an option.
4178 : */
4179 : #include <unistd.h>
4180 : #endif
4181 :
4182 : #ifndef YY_EXTRA_TYPE
4183 : #define YY_EXTRA_TYPE void *
4184 : #endif
4185 :
4186 : static int yy_init_globals (void );
4187 :
4188 : /* Accessor methods to globals.
4189 : These are made visible to non-reentrant scanners for convenience. */
4190 :
4191 : int SQLyylex_destroy (void );
4192 :
4193 : int SQLyyget_debug (void );
4194 :
4195 : void SQLyyset_debug (int debug_flag );
4196 :
4197 : YY_EXTRA_TYPE SQLyyget_extra (void );
4198 :
4199 : void SQLyyset_extra (YY_EXTRA_TYPE user_defined );
4200 :
4201 : FILE *SQLyyget_in (void );
4202 :
4203 : void SQLyyset_in (FILE * in_str );
4204 :
4205 : FILE *SQLyyget_out (void );
4206 :
4207 : void SQLyyset_out (FILE * out_str );
4208 :
4209 : int SQLyyget_leng (void );
4210 :
4211 : char *SQLyyget_text (void );
4212 :
4213 : int SQLyyget_lineno (void );
4214 :
4215 : void SQLyyset_lineno (int line_number );
4216 :
4217 : /* Macros after this point can all be overridden by user definitions in
4218 : * section 1.
4219 : */
4220 :
4221 : #ifndef YY_SKIP_YYWRAP
4222 : #ifdef __cplusplus
4223 : extern "C" int SQLyywrap (void );
4224 : #else
4225 : extern int SQLyywrap (void );
4226 : #endif
4227 : #endif
4228 :
4229 : static void yyunput (int c,char *buf_ptr );
4230 :
4231 : #ifndef yytext_ptr
4232 : static void yy_flex_strncpy (char *,yyconst char *,int );
4233 : #endif
4234 :
4235 : #ifdef YY_NEED_STRLEN
4236 : static int yy_flex_strlen (yyconst char * );
4237 : #endif
4238 :
4239 : #ifndef YY_NO_INPUT
4240 :
4241 : #ifdef __cplusplus
4242 : static int yyinput (void );
4243 : #else
4244 : static int input (void );
4245 : #endif
4246 :
4247 : #endif
4248 :
4249 : /* Amount of stuff to slurp up with each read. */
4250 : #ifndef YY_READ_BUF_SIZE
4251 : #define YY_READ_BUF_SIZE 8192
4252 : #endif
4253 :
4254 : /* Copy whatever the last rule matched to the standard output. */
4255 : #ifndef ECHO
4256 : /* This used to be an fputs(), but since the string might contain NUL's,
4257 : * we now use fwrite().
4258 : */
4259 : #define ECHO do { if (fwrite( SQLyytext, SQLyyleng, 1, SQLyyout )) {} } while (0)
4260 : #endif
4261 :
4262 : /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
4263 : * is returned in "result".
4264 : */
4265 : #ifndef YY_INPUT
4266 : #define YY_INPUT(buf,result,max_size) \
4267 : if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4268 : { \
4269 : int c = '*'; \
4270 : unsigned n; \
4271 : for ( n = 0; n < max_size && \
4272 : (c = getc( SQLyyin )) != EOF && c != '\n'; ++n ) \
4273 : buf[n] = (char) c; \
4274 : if ( c == '\n' ) \
4275 : buf[n++] = (char) c; \
4276 : if ( c == EOF && ferror( SQLyyin ) ) \
4277 : YY_FATAL_ERROR( "input in flex scanner failed" ); \
4278 : result = n; \
4279 : } \
4280 : else \
4281 : { \
4282 : errno=0; \
4283 : while ( (result = fread(buf, 1, max_size, SQLyyin))==0 && ferror(SQLyyin)) \
4284 : { \
4285 : if( errno != EINTR) \
4286 : { \
4287 : YY_FATAL_ERROR( "input in flex scanner failed" ); \
4288 : break; \
4289 : } \
4290 : errno=0; \
4291 : clearerr(SQLyyin); \
4292 : } \
4293 : }\
4294 : \
4295 :
4296 : #endif
4297 :
4298 : /* No semi-colon after return; correct usage is to write "yyterminate();" -
4299 : * we don't want an extra ';' after the "return" because that will cause
4300 : * some compilers to complain about unreachable statements.
4301 : */
4302 : #ifndef yyterminate
4303 : #define yyterminate() return YY_NULL
4304 : #endif
4305 :
4306 : /* Number of entries by which start-condition stack grows. */
4307 : #ifndef YY_START_STACK_INCR
4308 : #define YY_START_STACK_INCR 25
4309 : #endif
4310 :
4311 : /* Report a fatal error. */
4312 : #ifndef YY_FATAL_ERROR
4313 : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4314 : #endif
4315 :
4316 : /* end tables serialization structures and prototypes */
4317 :
4318 : /* Default declaration of generated scanner - a define so the user can
4319 : * easily add parameters.
4320 : */
4321 : #ifndef YY_DECL
4322 : #define YY_DECL_IS_OURS 1
4323 :
4324 : extern int SQLyylex (void);
4325 :
4326 : #define YY_DECL int SQLyylex (void)
4327 : #endif /* !YY_DECL */
4328 :
4329 : /* Code executed at the beginning of each rule, after SQLyytext and SQLyyleng
4330 : * have been set up.
4331 : */
4332 : #ifndef YY_USER_ACTION
4333 : #define YY_USER_ACTION
4334 : #endif
4335 :
4336 : /* Code executed at the end of each rule. */
4337 : #ifndef YY_BREAK
4338 : #define YY_BREAK break;
4339 : #endif
4340 :
4341 : #define YY_RULE_SETUP \
4342 : YY_USER_ACTION
4343 :
4344 : /** The main scanner function which does all the work.
4345 : */
4346 17 : YY_DECL
4347 : {
4348 : register yy_state_type yy_current_state;
4349 : register char *yy_cp, *yy_bp;
4350 : register int yy_act;
4351 :
4352 17 : if ( !(yy_init) )
4353 : {
4354 1 : (yy_init) = 1;
4355 :
4356 : #ifdef YY_USER_INIT
4357 : YY_USER_INIT;
4358 : #endif
4359 :
4360 1 : if ( ! (yy_start) )
4361 0 : (yy_start) = 1; /* first start state */
4362 :
4363 1 : if ( ! SQLyyin )
4364 1 : SQLyyin = stdin;
4365 :
4366 1 : if ( ! SQLyyout )
4367 1 : SQLyyout = stdout;
4368 :
4369 1 : if ( ! YY_CURRENT_BUFFER ) {
4370 1 : SQLyyensure_buffer_stack ();
4371 1 : YY_CURRENT_BUFFER_LVALUE =
4372 1 : SQLyy_create_buffer(SQLyyin,YY_BUF_SIZE );
4373 : }
4374 :
4375 1 : SQLyy_load_buffer_state( );
4376 : }
4377 :
4378 14 : while ( 1 ) /* loops until end-of-file is reached */
4379 : {
4380 31 : yy_cp = (yy_c_buf_p);
4381 :
4382 : /* Support of SQLyytext. */
4383 31 : *yy_cp = (yy_hold_char);
4384 :
4385 : /* yy_bp points to the position in yy_ch_buf of the start of
4386 : * the current run.
4387 : */
4388 31 : yy_bp = yy_cp;
4389 :
4390 31 : yy_current_state = (yy_start);
4391 : yy_match:
4392 207 : do
4393 : {
4394 207 : register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4395 207 : if ( yy_accept[yy_current_state] )
4396 : {
4397 174 : (yy_last_accepting_state) = yy_current_state;
4398 174 : (yy_last_accepting_cpos) = yy_cp;
4399 : }
4400 547 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4401 : {
4402 133 : yy_current_state = (int) yy_def[yy_current_state];
4403 133 : if ( yy_current_state >= 4504 )
4404 44 : yy_c = yy_meta[(unsigned int) yy_c];
4405 : }
4406 207 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4407 207 : ++yy_cp;
4408 : }
4409 : while ( yy_current_state != 4503 );
4410 89 : yy_cp = (yy_last_accepting_cpos);
4411 89 : yy_current_state = (yy_last_accepting_state);
4412 :
4413 : yy_find_action:
4414 90 : yy_act = yy_accept[yy_current_state];
4415 :
4416 90 : YY_DO_BEFORE_ACTION;
4417 :
4418 : do_action: /* This label is used only to access EOF actions. */
4419 :
4420 92 : switch ( yy_act )
4421 : { /* beginning of action switch */
4422 : case 0: /* must back up */
4423 : /* undo the effects of YY_DO_BEFORE_ACTION */
4424 0 : *yy_cp = (yy_hold_char);
4425 0 : yy_cp = (yy_last_accepting_cpos);
4426 0 : yy_current_state = (yy_last_accepting_state);
4427 0 : goto yy_find_action;
4428 :
4429 : case 1:
4430 : YY_RULE_SETUP
4431 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ABS); }
4432 : YY_BREAK
4433 : case 2:
4434 : YY_RULE_SETUP
4435 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ACOS); }
4436 : YY_BREAK
4437 : case 3:
4438 : YY_RULE_SETUP
4439 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AFTER); }
4440 : YY_BREAK
4441 : case 4:
4442 : YY_RULE_SETUP
4443 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ALL); }
4444 : YY_BREAK
4445 : case 5:
4446 : YY_RULE_SETUP
4447 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ALTER); }
4448 : YY_BREAK
4449 : case 6:
4450 : YY_RULE_SETUP
4451 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AND); }
4452 : YY_BREAK
4453 : case 7:
4454 : YY_RULE_SETUP
4455 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ANY); }
4456 : YY_BREAK
4457 : case 8:
4458 : YY_RULE_SETUP
4459 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ARRAY_AGG); }
4460 : YY_BREAK
4461 : case 9:
4462 : YY_RULE_SETUP
4463 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AS); }
4464 : YY_BREAK
4465 : case 10:
4466 : YY_RULE_SETUP
4467 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ASC); }
4468 : YY_BREAK
4469 : case 11:
4470 : YY_RULE_SETUP
4471 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ASCII); }
4472 : YY_BREAK
4473 : case 12:
4474 : YY_RULE_SETUP
4475 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ASIN); }
4476 : YY_BREAK
4477 : case 13:
4478 : YY_RULE_SETUP
4479 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AT); }
4480 : YY_BREAK
4481 : case 14:
4482 : YY_RULE_SETUP
4483 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN); }
4484 : YY_BREAK
4485 : case 15:
4486 : YY_RULE_SETUP
4487 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ATAN2); }
4488 : YY_BREAK
4489 : case 16:
4490 : YY_RULE_SETUP
4491 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ATOMIC); }
4492 : YY_BREAK
4493 : case 17:
4494 : YY_RULE_SETUP
4495 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AUTHORIZATION); }
4496 : YY_BREAK
4497 : case 18:
4498 : YY_RULE_SETUP
4499 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_AVG); }
4500 : YY_BREAK
4501 : case 19:
4502 : YY_RULE_SETUP
4503 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BEFORE); }
4504 : YY_BREAK
4505 : case 20:
4506 : YY_RULE_SETUP
4507 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BEGIN); }
4508 : YY_BREAK
4509 : case 21:
4510 : YY_RULE_SETUP
4511 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BETWEEN); }
4512 : YY_BREAK
4513 : case 22:
4514 : YY_RULE_SETUP
4515 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BIGINT); }
4516 : YY_BREAK
4517 : case 23:
4518 : YY_RULE_SETUP
4519 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BINARY); }
4520 : YY_BREAK
4521 : case 24:
4522 : YY_RULE_SETUP
4523 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BIT); }
4524 : YY_BREAK
4525 : case 25:
4526 : YY_RULE_SETUP
4527 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BIT_LENGTH); }
4528 : YY_BREAK
4529 : case 26:
4530 : YY_RULE_SETUP
4531 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BLOB); }
4532 : YY_BREAK
4533 : case 27:
4534 : YY_RULE_SETUP
4535 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_BOTH); }
4536 : YY_BREAK
4537 : case 28:
4538 : YY_RULE_SETUP
4539 1 : {SQL_NEW_KEYWORD(SQL_TOKEN_BY); }
4540 : YY_BREAK
4541 : case 29:
4542 : YY_RULE_SETUP
4543 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CALL); }
4544 : YY_BREAK
4545 : case 30:
4546 : YY_RULE_SETUP
4547 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CASE); }
4548 : YY_BREAK
4549 : case 31:
4550 : YY_RULE_SETUP
4551 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CAST); }
4552 : YY_BREAK
4553 : case 32:
4554 : YY_RULE_SETUP
4555 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CEILING); }
4556 : YY_BREAK
4557 : case 33:
4558 : YY_RULE_SETUP
4559 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CHAR); }
4560 : YY_BREAK
4561 : case 34:
4562 : YY_RULE_SETUP
4563 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CHARACTER); }
4564 : YY_BREAK
4565 : case 35:
4566 : YY_RULE_SETUP
4567 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CHAR_LENGTH); }
4568 : YY_BREAK
4569 : case 36:
4570 : YY_RULE_SETUP
4571 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CHECK); }
4572 : YY_BREAK
4573 : case 37:
4574 : YY_RULE_SETUP
4575 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CLOB); }
4576 : YY_BREAK
4577 : case 38:
4578 : YY_RULE_SETUP
4579 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COALESCE); }
4580 : YY_BREAK
4581 : case 39:
4582 : YY_RULE_SETUP
4583 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COLLATE); }
4584 : YY_BREAK
4585 : case 40:
4586 : YY_RULE_SETUP
4587 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COLLECT); }
4588 : YY_BREAK
4589 : case 41:
4590 : YY_RULE_SETUP
4591 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COMMIT); }
4592 : YY_BREAK
4593 : case 42:
4594 : YY_RULE_SETUP
4595 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CONCAT); }
4596 : YY_BREAK
4597 : case 43:
4598 : YY_RULE_SETUP
4599 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CONTINUE); }
4600 : YY_BREAK
4601 : case 44:
4602 : YY_RULE_SETUP
4603 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CONVERT); }
4604 : YY_BREAK
4605 : case 45:
4606 : YY_RULE_SETUP
4607 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COS); }
4608 : YY_BREAK
4609 : case 46:
4610 : YY_RULE_SETUP
4611 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COT); }
4612 : YY_BREAK
4613 : case 47:
4614 : YY_RULE_SETUP
4615 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_COUNT); }
4616 : YY_BREAK
4617 : case 48:
4618 : YY_RULE_SETUP
4619 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CREATE); }
4620 : YY_BREAK
4621 : case 49:
4622 : YY_RULE_SETUP
4623 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CROSS); }
4624 : YY_BREAK
4625 : case 50:
4626 : YY_RULE_SETUP
4627 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CUME_DIST); }
4628 : YY_BREAK
4629 : case 51:
4630 : YY_RULE_SETUP
4631 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT); }
4632 : YY_BREAK
4633 : case 52:
4634 : YY_RULE_SETUP
4635 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DATE); }
4636 : YY_BREAK
4637 : case 53:
4638 : YY_RULE_SETUP
4639 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_CATALOG); }
4640 : YY_BREAK
4641 : case 54:
4642 : YY_RULE_SETUP
4643 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_DEFAULT_TRANSFORM_GROUP); }
4644 : YY_BREAK
4645 : case 55:
4646 : YY_RULE_SETUP
4647 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_PATH); }
4648 : YY_BREAK
4649 : case 56:
4650 : YY_RULE_SETUP
4651 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_ROLE); }
4652 : YY_BREAK
4653 : case 57:
4654 : YY_RULE_SETUP
4655 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_SCHEMA); }
4656 : YY_BREAK
4657 : case 58:
4658 : YY_RULE_SETUP
4659 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_USER); }
4660 : YY_BREAK
4661 : case 59:
4662 : YY_RULE_SETUP
4663 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURDATE); }
4664 : YY_BREAK
4665 : case 60:
4666 : YY_RULE_SETUP
4667 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIME); }
4668 : YY_BREAK
4669 : case 61:
4670 : YY_RULE_SETUP
4671 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURTIME); }
4672 : YY_BREAK
4673 : case 62:
4674 : YY_RULE_SETUP
4675 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURRENT_TIMESTAMP); }
4676 : YY_BREAK
4677 : case 63:
4678 : YY_RULE_SETUP
4679 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_CURSOR); }
4680 : YY_BREAK
4681 : case 64:
4682 : YY_RULE_SETUP
4683 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_D); }
4684 : YY_BREAK
4685 : case 65:
4686 : YY_RULE_SETUP
4687 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DATE); }
4688 : YY_BREAK
4689 : case 66:
4690 : YY_RULE_SETUP
4691 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DATEDIFF); }
4692 : YY_BREAK
4693 : case 67:
4694 : YY_RULE_SETUP
4695 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DATEVALUE); }
4696 : YY_BREAK
4697 : case 68:
4698 : YY_RULE_SETUP
4699 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DAY); }
4700 : YY_BREAK
4701 : case 69:
4702 : YY_RULE_SETUP
4703 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DAYNAME); }
4704 : YY_BREAK
4705 : case 70:
4706 : YY_RULE_SETUP
4707 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFMONTH); }
4708 : YY_BREAK
4709 : case 71:
4710 : YY_RULE_SETUP
4711 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFWEEK); }
4712 : YY_BREAK
4713 : case 72:
4714 : YY_RULE_SETUP
4715 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DAYOFYEAR); }
4716 : YY_BREAK
4717 : case 73:
4718 : YY_RULE_SETUP
4719 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DEC); }
4720 : YY_BREAK
4721 : case 74:
4722 : YY_RULE_SETUP
4723 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DECIMAL); }
4724 : YY_BREAK
4725 : case 75:
4726 : YY_RULE_SETUP
4727 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DECLARE); }
4728 : YY_BREAK
4729 : case 76:
4730 : YY_RULE_SETUP
4731 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DEFAULT); }
4732 : YY_BREAK
4733 : case 77:
4734 : YY_RULE_SETUP
4735 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DEGREES); }
4736 : YY_BREAK
4737 : case 78:
4738 : YY_RULE_SETUP
4739 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DELETE); }
4740 : YY_BREAK
4741 : case 79:
4742 : YY_RULE_SETUP
4743 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DENSE_RANK); }
4744 : YY_BREAK
4745 : case 80:
4746 : YY_RULE_SETUP
4747 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DESC); }
4748 : YY_BREAK
4749 : case 81:
4750 : YY_RULE_SETUP
4751 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DIFFERENCE); }
4752 : YY_BREAK
4753 : case 82:
4754 : YY_RULE_SETUP
4755 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DISTINCT); }
4756 : YY_BREAK
4757 : case 83:
4758 : YY_RULE_SETUP
4759 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DOUBLE); }
4760 : YY_BREAK
4761 : case 84:
4762 : YY_RULE_SETUP
4763 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_DROP); }
4764 : YY_BREAK
4765 : case 85:
4766 : YY_RULE_SETUP
4767 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EACH); }
4768 : YY_BREAK
4769 : case 86:
4770 : YY_RULE_SETUP
4771 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ELSE); }
4772 : YY_BREAK
4773 : case 87:
4774 : YY_RULE_SETUP
4775 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_END); }
4776 : YY_BREAK
4777 : case 88:
4778 : YY_RULE_SETUP
4779 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EVERY); }
4780 : YY_BREAK
4781 : case 89:
4782 : YY_RULE_SETUP
4783 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ESCAPE); }
4784 : YY_BREAK
4785 : case 90:
4786 : YY_RULE_SETUP
4787 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EXCEPT); }
4788 : YY_BREAK
4789 : case 91:
4790 : YY_RULE_SETUP
4791 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EXCLUDE); }
4792 : YY_BREAK
4793 : case 92:
4794 : YY_RULE_SETUP
4795 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EXISTS); }
4796 : YY_BREAK
4797 : case 93:
4798 : YY_RULE_SETUP
4799 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EXP); }
4800 : YY_BREAK
4801 : case 94:
4802 : YY_RULE_SETUP
4803 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_EXTRACT); }
4804 : YY_BREAK
4805 : case 95:
4806 : YY_RULE_SETUP
4807 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FALSE); }
4808 : YY_BREAK
4809 : case 96:
4810 : YY_RULE_SETUP
4811 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FETCH); }
4812 : YY_BREAK
4813 : case 97:
4814 : YY_RULE_SETUP
4815 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST); }
4816 : YY_BREAK
4817 : case 98:
4818 : YY_RULE_SETUP
4819 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FIRST_VALUE); }
4820 : YY_BREAK
4821 : case 99:
4822 : YY_RULE_SETUP
4823 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FLOAT); }
4824 : YY_BREAK
4825 : case 100:
4826 : YY_RULE_SETUP
4827 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FLOOR); }
4828 : YY_BREAK
4829 : case 101:
4830 : YY_RULE_SETUP
4831 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FN); }
4832 : YY_BREAK
4833 : case 102:
4834 : YY_RULE_SETUP
4835 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FOLLOWING); }
4836 : YY_BREAK
4837 : case 103:
4838 : YY_RULE_SETUP
4839 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FOR); }
4840 : YY_BREAK
4841 : case 104:
4842 : YY_RULE_SETUP
4843 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FOREIGN); }
4844 : YY_BREAK
4845 : case 105:
4846 : YY_RULE_SETUP
4847 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FOUND); }
4848 : YY_BREAK
4849 : case 106:
4850 : YY_RULE_SETUP
4851 2 : {SQL_NEW_KEYWORD(SQL_TOKEN_FROM); }
4852 : YY_BREAK
4853 : case 107:
4854 : YY_RULE_SETUP
4855 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FULL); }
4856 : YY_BREAK
4857 : case 108:
4858 : YY_RULE_SETUP
4859 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_FUSION); }
4860 : YY_BREAK
4861 : case 109:
4862 : YY_RULE_SETUP
4863 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_GRANT); }
4864 : YY_BREAK
4865 : case 110:
4866 : YY_RULE_SETUP
4867 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_GROUP); }
4868 : YY_BREAK
4869 : case 111:
4870 : YY_RULE_SETUP
4871 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_HAVING); }
4872 : YY_BREAK
4873 : case 112:
4874 : YY_RULE_SETUP
4875 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_HOUR); }
4876 : YY_BREAK
4877 : case 113:
4878 : YY_RULE_SETUP
4879 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_IGNORE); }
4880 : YY_BREAK
4881 : case 114:
4882 : YY_RULE_SETUP
4883 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_IN); }
4884 : YY_BREAK
4885 : case 115:
4886 : YY_RULE_SETUP
4887 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INNER); }
4888 : YY_BREAK
4889 : case 116:
4890 : YY_RULE_SETUP
4891 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INSERT); }
4892 : YY_BREAK
4893 : case 117:
4894 : YY_RULE_SETUP
4895 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INSTEAD); }
4896 : YY_BREAK
4897 : case 118:
4898 : YY_RULE_SETUP
4899 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INTEGER); }
4900 : YY_BREAK
4901 : case 119:
4902 : YY_RULE_SETUP
4903 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECT); }
4904 : YY_BREAK
4905 : case 120:
4906 : YY_RULE_SETUP
4907 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INTERVAL); }
4908 : YY_BREAK
4909 : case 121:
4910 : YY_RULE_SETUP
4911 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INTERSECTION); }
4912 : YY_BREAK
4913 : case 122:
4914 : YY_RULE_SETUP
4915 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_INTO); }
4916 : YY_BREAK
4917 : case 123:
4918 : YY_RULE_SETUP
4919 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_IS); }
4920 : YY_BREAK
4921 : case 124:
4922 : YY_RULE_SETUP
4923 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_JOIN); }
4924 : YY_BREAK
4925 : case 125:
4926 : YY_RULE_SETUP
4927 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_KEY); }
4928 : YY_BREAK
4929 : case 126:
4930 : YY_RULE_SETUP
4931 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LAG); }
4932 : YY_BREAK
4933 : case 127:
4934 : YY_RULE_SETUP
4935 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LARGE); }
4936 : YY_BREAK
4937 : case 128:
4938 : YY_RULE_SETUP
4939 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LAST); }
4940 : YY_BREAK
4941 : case 129:
4942 : YY_RULE_SETUP
4943 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LAST_VALUE); }
4944 : YY_BREAK
4945 : case 130:
4946 : YY_RULE_SETUP
4947 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LCASE); }
4948 : YY_BREAK
4949 : case 131:
4950 : YY_RULE_SETUP
4951 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LEAD); }
4952 : YY_BREAK
4953 : case 132:
4954 : YY_RULE_SETUP
4955 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LEADING); }
4956 : YY_BREAK
4957 : case 133:
4958 : YY_RULE_SETUP
4959 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LEFT); }
4960 : YY_BREAK
4961 : case 134:
4962 : YY_RULE_SETUP
4963 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LENGTH); }
4964 : YY_BREAK
4965 : case 135:
4966 : YY_RULE_SETUP
4967 1 : {SQL_NEW_KEYWORD(SQL_TOKEN_LIKE); }
4968 : YY_BREAK
4969 : case 136:
4970 : YY_RULE_SETUP
4971 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LIMIT); }
4972 : YY_BREAK
4973 : case 137:
4974 : YY_RULE_SETUP
4975 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LN); }
4976 : YY_BREAK
4977 : case 138:
4978 : YY_RULE_SETUP
4979 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOCAL); }
4980 : YY_BREAK
4981 : case 139:
4982 : YY_RULE_SETUP
4983 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOCATE); }
4984 : YY_BREAK
4985 : case 140:
4986 : YY_RULE_SETUP
4987 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOG); }
4988 : YY_BREAK
4989 : case 141:
4990 : YY_RULE_SETUP
4991 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOGF); }
4992 : YY_BREAK
4993 : case 142:
4994 : YY_RULE_SETUP
4995 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOG10); }
4996 : YY_BREAK
4997 : case 143:
4998 : YY_RULE_SETUP
4999 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LOWER); }
5000 : YY_BREAK
5001 : case 144:
5002 : YY_RULE_SETUP
5003 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_LTRIM); }
5004 : YY_BREAK
5005 : case 145:
5006 : YY_RULE_SETUP
5007 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MAX); }
5008 : YY_BREAK
5009 : case 146:
5010 : YY_RULE_SETUP
5011 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MIN); }
5012 : YY_BREAK
5013 : case 147:
5014 : YY_RULE_SETUP
5015 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MINUTE); }
5016 : YY_BREAK
5017 : case 148:
5018 : YY_RULE_SETUP
5019 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MOD); }
5020 : YY_BREAK
5021 : case 149:
5022 : YY_RULE_SETUP
5023 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MONTH); }
5024 : YY_BREAK
5025 : case 150:
5026 : YY_RULE_SETUP
5027 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_MONTHNAME); }
5028 : YY_BREAK
5029 : case 151:
5030 : YY_RULE_SETUP
5031 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NATIONAL); }
5032 : YY_BREAK
5033 : case 152:
5034 : YY_RULE_SETUP
5035 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NATURAL); }
5036 : YY_BREAK
5037 : case 153:
5038 : YY_RULE_SETUP
5039 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NCHAR); }
5040 : YY_BREAK
5041 : case 154:
5042 : YY_RULE_SETUP
5043 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NCLOB); }
5044 : YY_BREAK
5045 : case 155:
5046 : YY_RULE_SETUP
5047 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NEW); }
5048 : YY_BREAK
5049 : case 156:
5050 : YY_RULE_SETUP
5051 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NEXT); }
5052 : YY_BREAK
5053 : case 157:
5054 : YY_RULE_SETUP
5055 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NO); }
5056 : YY_BREAK
5057 : case 158:
5058 : YY_RULE_SETUP
5059 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NOT); }
5060 : YY_BREAK
5061 : case 159:
5062 : YY_RULE_SETUP
5063 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NOW); }
5064 : YY_BREAK
5065 : case 160:
5066 : YY_RULE_SETUP
5067 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NTH_VALUE); }
5068 : YY_BREAK
5069 : case 161:
5070 : YY_RULE_SETUP
5071 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NTILE); }
5072 : YY_BREAK
5073 : case 162:
5074 : YY_RULE_SETUP
5075 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NULL); }
5076 : YY_BREAK
5077 : case 163:
5078 : YY_RULE_SETUP
5079 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NULLIF); }
5080 : YY_BREAK
5081 : case 164:
5082 : YY_RULE_SETUP
5083 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NULLS); }
5084 : YY_BREAK
5085 : case 165:
5086 : YY_RULE_SETUP
5087 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_NUMERIC); }
5088 : YY_BREAK
5089 : case 166:
5090 : YY_RULE_SETUP
5091 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OBJECT); }
5092 : YY_BREAK
5093 : case 167:
5094 : YY_RULE_SETUP
5095 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OCTET_LENGTH); }
5096 : YY_BREAK
5097 : case 168:
5098 : YY_RULE_SETUP
5099 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OF); }
5100 : YY_BREAK
5101 : case 169:
5102 : YY_RULE_SETUP
5103 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OFFSET); }
5104 : YY_BREAK
5105 : case 170:
5106 : YY_RULE_SETUP
5107 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OJ); }
5108 : YY_BREAK
5109 : case 171:
5110 : YY_RULE_SETUP
5111 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OLD); }
5112 : YY_BREAK
5113 : case 172:
5114 : YY_RULE_SETUP
5115 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ON); }
5116 : YY_BREAK
5117 : case 173:
5118 : YY_RULE_SETUP
5119 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ONLY); }
5120 : YY_BREAK
5121 : case 174:
5122 : YY_RULE_SETUP
5123 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OPTION); }
5124 : YY_BREAK
5125 : case 175:
5126 : YY_RULE_SETUP
5127 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OR); }
5128 : YY_BREAK
5129 : case 176:
5130 : YY_RULE_SETUP
5131 1 : {SQL_NEW_KEYWORD(SQL_TOKEN_ORDER); }
5132 : YY_BREAK
5133 : case 177:
5134 : YY_RULE_SETUP
5135 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OTHERS); }
5136 : YY_BREAK
5137 : case 178:
5138 : YY_RULE_SETUP
5139 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OUTER); }
5140 : YY_BREAK
5141 : case 179:
5142 : YY_RULE_SETUP
5143 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_OVER); }
5144 : YY_BREAK
5145 : case 180:
5146 : YY_RULE_SETUP
5147 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PARTITION); }
5148 : YY_BREAK
5149 : case 181:
5150 : YY_RULE_SETUP
5151 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENT_RANK); }
5152 : YY_BREAK
5153 : case 182:
5154 : YY_RULE_SETUP
5155 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_CONT); }
5156 : YY_BREAK
5157 : case 183:
5158 : YY_RULE_SETUP
5159 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PERCENTILE_DISC); }
5160 : YY_BREAK
5161 : case 184:
5162 : YY_RULE_SETUP
5163 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PI); }
5164 : YY_BREAK
5165 : case 185:
5166 : YY_RULE_SETUP
5167 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_POSITION); }
5168 : YY_BREAK
5169 : case 186:
5170 : YY_RULE_SETUP
5171 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_POWER); }
5172 : YY_BREAK
5173 : case 187:
5174 : YY_RULE_SETUP
5175 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PRECEDING); }
5176 : YY_BREAK
5177 : case 188:
5178 : YY_RULE_SETUP
5179 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PRECISION); }
5180 : YY_BREAK
5181 : case 189:
5182 : YY_RULE_SETUP
5183 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PRIMARY); }
5184 : YY_BREAK
5185 : case 190:
5186 : YY_RULE_SETUP
5187 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PRIVILEGES); }
5188 : YY_BREAK
5189 : case 191:
5190 : YY_RULE_SETUP
5191 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PROCEDURE); }
5192 : YY_BREAK
5193 : case 192:
5194 : YY_RULE_SETUP
5195 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_PUBLIC); }
5196 : YY_BREAK
5197 : case 193:
5198 : YY_RULE_SETUP
5199 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_QUARTER); }
5200 : YY_BREAK
5201 : case 194:
5202 : YY_RULE_SETUP
5203 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RADIANS); }
5204 : YY_BREAK
5205 : case 195:
5206 : YY_RULE_SETUP
5207 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RAND); }
5208 : YY_BREAK
5209 : case 196:
5210 : YY_RULE_SETUP
5211 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RANGE); }
5212 : YY_BREAK
5213 : case 197:
5214 : YY_RULE_SETUP
5215 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RANK); }
5216 : YY_BREAK
5217 : case 198:
5218 : YY_RULE_SETUP
5219 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_REAL); }
5220 : YY_BREAK
5221 : case 199:
5222 : YY_RULE_SETUP
5223 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCES); }
5224 : YY_BREAK
5225 : case 200:
5226 : YY_RULE_SETUP
5227 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_REFERENCING); }
5228 : YY_BREAK
5229 : case 201:
5230 : YY_RULE_SETUP
5231 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_REPEAT); }
5232 : YY_BREAK
5233 : case 202:
5234 : YY_RULE_SETUP
5235 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_REPLACE); }
5236 : YY_BREAK
5237 : case 203:
5238 : YY_RULE_SETUP
5239 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RESPECT); }
5240 : YY_BREAK
5241 : case 204:
5242 : YY_RULE_SETUP
5243 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROLLBACK); }
5244 : YY_BREAK
5245 : case 205:
5246 : YY_RULE_SETUP
5247 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROUND); }
5248 : YY_BREAK
5249 : case 206:
5250 : YY_RULE_SETUP
5251 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROUNDMAGIC); }
5252 : YY_BREAK
5253 : case 207:
5254 : YY_RULE_SETUP
5255 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROW); }
5256 : YY_BREAK
5257 : case 208:
5258 : YY_RULE_SETUP
5259 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROWS); }
5260 : YY_BREAK
5261 : case 209:
5262 : YY_RULE_SETUP
5263 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ROW_NUMBER); }
5264 : YY_BREAK
5265 : case 210:
5266 : YY_RULE_SETUP
5267 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RIGHT); }
5268 : YY_BREAK
5269 : case 211:
5270 : YY_RULE_SETUP
5271 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_RTRIM); }
5272 : YY_BREAK
5273 : case 212:
5274 : YY_RULE_SETUP
5275 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SCHEMA); }
5276 : YY_BREAK
5277 : case 213:
5278 : YY_RULE_SETUP
5279 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SECOND); }
5280 : YY_BREAK
5281 : case 214:
5282 : YY_RULE_SETUP
5283 2 : {SQL_NEW_KEYWORD(SQL_TOKEN_SELECT); }
5284 : YY_BREAK
5285 : case 215:
5286 : YY_RULE_SETUP
5287 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SET); }
5288 : YY_BREAK
5289 : case 216:
5290 : YY_RULE_SETUP
5291 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SIZE); }
5292 : YY_BREAK
5293 : case 217:
5294 : YY_RULE_SETUP
5295 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SIGN); }
5296 : YY_BREAK
5297 : case 218:
5298 : YY_RULE_SETUP
5299 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SIN); }
5300 : YY_BREAK
5301 : case 219:
5302 : YY_RULE_SETUP
5303 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SMALLINT); }
5304 : YY_BREAK
5305 : case 220:
5306 : YY_RULE_SETUP
5307 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SOME); }
5308 : YY_BREAK
5309 : case 221:
5310 : YY_RULE_SETUP
5311 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SOUNDEX); }
5312 : YY_BREAK
5313 : case 222:
5314 : YY_RULE_SETUP
5315 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SPACE); }
5316 : YY_BREAK
5317 : case 223:
5318 : YY_RULE_SETUP
5319 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SQRT); }
5320 : YY_BREAK
5321 : case 224:
5322 : YY_RULE_SETUP
5323 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_STDDEV_POP); }
5324 : YY_BREAK
5325 : case 225:
5326 : YY_RULE_SETUP
5327 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_STDDEV_SAMP); }
5328 : YY_BREAK
5329 : case 226:
5330 : YY_RULE_SETUP
5331 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_STATEMENT); }
5332 : YY_BREAK
5333 : case 227:
5334 : YY_RULE_SETUP
5335 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SUBSTRING); }
5336 : YY_BREAK
5337 : case 228:
5338 : YY_RULE_SETUP
5339 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SUM); }
5340 : YY_BREAK
5341 : case 229:
5342 : YY_RULE_SETUP
5343 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SESSION_USER); }
5344 : YY_BREAK
5345 : case 230:
5346 : YY_RULE_SETUP
5347 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_SYSTEM_USER); }
5348 : YY_BREAK
5349 : case 231:
5350 : YY_RULE_SETUP
5351 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TABLE); }
5352 : YY_BREAK
5353 : case 232:
5354 : YY_RULE_SETUP
5355 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TAN); }
5356 : YY_BREAK
5357 : case 233:
5358 : YY_RULE_SETUP
5359 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_THEN); }
5360 : YY_BREAK
5361 : case 234:
5362 : YY_RULE_SETUP
5363 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIES); }
5364 : YY_BREAK
5365 : case 235:
5366 : YY_RULE_SETUP
5367 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIME); }
5368 : YY_BREAK
5369 : case 236:
5370 : YY_RULE_SETUP
5371 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMP); }
5372 : YY_BREAK
5373 : case 237:
5374 : YY_RULE_SETUP
5375 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPADD); }
5376 : YY_BREAK
5377 : case 238:
5378 : YY_RULE_SETUP
5379 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMESTAMPDIFF); }
5380 : YY_BREAK
5381 : case 239:
5382 : YY_RULE_SETUP
5383 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEVALUE); }
5384 : YY_BREAK
5385 : case 240:
5386 : YY_RULE_SETUP
5387 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_HOUR); }
5388 : YY_BREAK
5389 : case 241:
5390 : YY_RULE_SETUP
5391 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TIMEZONE_MINUTE); }
5392 : YY_BREAK
5393 : case 242:
5394 : YY_RULE_SETUP
5395 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TO); }
5396 : YY_BREAK
5397 : case 243:
5398 : YY_RULE_SETUP
5399 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRAILING); }
5400 : YY_BREAK
5401 : case 244:
5402 : YY_RULE_SETUP
5403 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRANSLATE); }
5404 : YY_BREAK
5405 : case 245:
5406 : YY_RULE_SETUP
5407 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRIGGER); }
5408 : YY_BREAK
5409 : case 246:
5410 : YY_RULE_SETUP
5411 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRIM); }
5412 : YY_BREAK
5413 : case 247:
5414 : YY_RULE_SETUP
5415 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRUE); }
5416 : YY_BREAK
5417 : case 248:
5418 : YY_RULE_SETUP
5419 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TRUNCATE); }
5420 : YY_BREAK
5421 : case 249:
5422 : YY_RULE_SETUP
5423 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_TS); }
5424 : YY_BREAK
5425 : case 250:
5426 : YY_RULE_SETUP
5427 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_T); }
5428 : YY_BREAK
5429 : case 251:
5430 : YY_RULE_SETUP
5431 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UCASE); }
5432 : YY_BREAK
5433 : case 252:
5434 : YY_RULE_SETUP
5435 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UNBOUNDED); }
5436 : YY_BREAK
5437 : case 253:
5438 : YY_RULE_SETUP
5439 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UNION); }
5440 : YY_BREAK
5441 : case 254:
5442 : YY_RULE_SETUP
5443 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UNIQUE); }
5444 : YY_BREAK
5445 : case 255:
5446 : YY_RULE_SETUP
5447 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UNKNOWN); }
5448 : YY_BREAK
5449 : case 256:
5450 : YY_RULE_SETUP
5451 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UPDATE); }
5452 : YY_BREAK
5453 : case 257:
5454 : YY_RULE_SETUP
5455 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_UPPER); }
5456 : YY_BREAK
5457 : case 258:
5458 : YY_RULE_SETUP
5459 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_USAGE); }
5460 : YY_BREAK
5461 : case 259:
5462 : YY_RULE_SETUP
5463 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_USER); }
5464 : YY_BREAK
5465 : case 260:
5466 : YY_RULE_SETUP
5467 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_USING); }
5468 : YY_BREAK
5469 : case 261:
5470 : YY_RULE_SETUP
5471 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VARBINARY); }
5472 : YY_BREAK
5473 : case 262:
5474 : YY_RULE_SETUP
5475 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VARCHAR); }
5476 : YY_BREAK
5477 : case 263:
5478 : YY_RULE_SETUP
5479 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VARYING); }
5480 : YY_BREAK
5481 : case 264:
5482 : YY_RULE_SETUP
5483 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VAR_POP); }
5484 : YY_BREAK
5485 : case 265:
5486 : YY_RULE_SETUP
5487 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VAR_SAMP); }
5488 : YY_BREAK
5489 : case 266:
5490 : YY_RULE_SETUP
5491 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VALUE); }
5492 : YY_BREAK
5493 : case 267:
5494 : YY_RULE_SETUP
5495 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VALUES); }
5496 : YY_BREAK
5497 : case 268:
5498 : YY_RULE_SETUP
5499 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_VIEW); }
5500 : YY_BREAK
5501 : case 269:
5502 : YY_RULE_SETUP
5503 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WEEK); }
5504 : YY_BREAK
5505 : case 270:
5506 : YY_RULE_SETUP
5507 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WHEN); }
5508 : YY_BREAK
5509 : case 271:
5510 : YY_RULE_SETUP
5511 1 : {SQL_NEW_KEYWORD(SQL_TOKEN_WHERE); }
5512 : YY_BREAK
5513 : case 272:
5514 : YY_RULE_SETUP
5515 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WITH); }
5516 : YY_BREAK
5517 : case 273:
5518 : YY_RULE_SETUP
5519 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WITHIN); }
5520 : YY_BREAK
5521 : case 274:
5522 : YY_RULE_SETUP
5523 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WITHOUT); }
5524 : YY_BREAK
5525 : case 275:
5526 : YY_RULE_SETUP
5527 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_WORK); }
5528 : YY_BREAK
5529 : case 276:
5530 : YY_RULE_SETUP
5531 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_YEAR); }
5532 : YY_BREAK
5533 : case 277:
5534 : YY_RULE_SETUP
5535 0 : {SQL_NEW_KEYWORD(SQL_TOKEN_ZONE); }
5536 : YY_BREAK
5537 : case 278:
5538 : YY_RULE_SETUP
5539 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESS);return SQL_LESS;}
5540 : YY_BREAK
5541 : case 279:
5542 : YY_RULE_SETUP
5543 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREAT);return SQL_GREAT;}
5544 : YY_BREAK
5545 : case 280:
5546 : YY_RULE_SETUP
5547 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_EQUAL);return SQL_EQUAL;}
5548 : YY_BREAK
5549 : case 281:
5550 : YY_RULE_SETUP
5551 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_LESSEQ);return SQL_LESSEQ;}
5552 : YY_BREAK
5553 : case 282:
5554 : YY_RULE_SETUP
5555 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_GREATEQ);return SQL_GREATEQ;}
5556 : YY_BREAK
5557 : case 283:
5558 : YY_RULE_SETUP
5559 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;}
5560 : YY_BREAK
5561 : case 284:
5562 : YY_RULE_SETUP
5563 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_NOTEQUAL);return SQL_NOTEQUAL;}
5564 : YY_BREAK
5565 : case 285:
5566 : YY_RULE_SETUP
5567 0 : { SQL_NEW_NODE(::rtl::OUString(SQLyytext,strlen(SQLyytext),RTL_TEXTENCODING_UTF8), SQL_NODE_CONCAT);return SQL_CONCAT;}
5568 : YY_BREAK
5569 : case 286:
5570 : YY_RULE_SETUP
5571 0 : { return SQLyytext[0]; }
5572 : YY_BREAK
5573 : case 287:
5574 : YY_RULE_SETUP
5575 0 : {return gatherName( SQLyytext);}
5576 : YY_BREAK
5577 : case 288:
5578 : YY_RULE_SETUP
5579 0 : {SQL_NEW_INTNUM; }
5580 : YY_BREAK
5581 : case 289:
5582 : case 290:
5583 : case 291:
5584 : case 292:
5585 : case 293:
5586 : YY_RULE_SETUP
5587 0 : {SQL_NEW_APPROXNUM; }
5588 : YY_BREAK
5589 : case 294:
5590 : YY_RULE_SETUP
5591 0 : {return gatherNamePre(SQLyytext);}
5592 : YY_BREAK
5593 : case 295:
5594 : YY_RULE_SETUP
5595 0 : {SQL_NEW_INTNUM; }
5596 : YY_BREAK
5597 : case 296:
5598 : YY_RULE_SETUP
5599 0 : {SQL_NEW_INTNUM; }
5600 : YY_BREAK
5601 : case 297:
5602 : YY_RULE_SETUP
5603 0 : {SQL_NEW_INTNUM; }
5604 : YY_BREAK
5605 : case 298:
5606 : case 299:
5607 : case 300:
5608 : YY_RULE_SETUP
5609 0 : {SQL_NEW_APPROXNUM; }
5610 : YY_BREAK
5611 : case 301:
5612 : case 302:
5613 : case 303:
5614 : YY_RULE_SETUP
5615 0 : {SQL_NEW_APPROXNUM; }
5616 : YY_BREAK
5617 : case 304:
5618 : case 305:
5619 : case 306:
5620 : YY_RULE_SETUP
5621 0 : {SQL_NEW_APPROXNUM; }
5622 : YY_BREAK
5623 : case 307:
5624 : case 308:
5625 : case 309:
5626 : YY_RULE_SETUP
5627 0 : {SQL_NEW_APPROXNUM; }
5628 : YY_BREAK
5629 : case 310:
5630 : YY_RULE_SETUP
5631 0 : {return gatherNamePre(SQLyytext);}
5632 : YY_BREAK
5633 : case 311:
5634 : YY_RULE_SETUP
5635 6 : { return gatherString('\"',0); }
5636 : YY_BREAK
5637 : case 312:
5638 : YY_RULE_SETUP
5639 0 : { return gatherString('`' ,0); }
5640 : YY_BREAK
5641 : case 313:
5642 : YY_RULE_SETUP
5643 0 : { return gatherString(']' ,0);}
5644 : YY_BREAK
5645 : case 314:
5646 : YY_RULE_SETUP
5647 1 : { return gatherString('\'',1); }
5648 : YY_BREAK
5649 : case 315:
5650 : YY_RULE_SETUP
5651 0 : { return gatherString('#' ,2); }
5652 : YY_BREAK
5653 : case 316:
5654 : /* rule 316 can match eol */
5655 : case 317:
5656 : /* rule 317 can match eol */
5657 : YY_RULE_SETUP
5658 0 : { SQL_NEW_DATE; }
5659 : YY_BREAK
5660 : case 318:
5661 : YY_RULE_SETUP
5662 0 : { return SQLyytext[0]; } /* */
5663 : YY_BREAK
5664 : case 319:
5665 : YY_RULE_SETUP
5666 0 : { return gatherString(']' ,0); }
5667 : YY_BREAK
5668 : case 320:
5669 : /* rule 320 can match eol */
5670 : YY_RULE_SETUP
5671 0 : { return gatherNamePre(SQLyytext); }
5672 : YY_BREAK
5673 : case 321:
5674 : /* rule 321 can match eol */
5675 : YY_RULE_SETUP
5676 : {}
5677 0 : YY_BREAK
5678 : case 322:
5679 : YY_RULE_SETUP
5680 : {}
5681 14 : YY_BREAK
5682 : case 323:
5683 0 : *yy_cp = (yy_hold_char); /* undo effects of setting up SQLyytext */
5684 0 : (yy_c_buf_p) = yy_cp -= 1;
5685 0 : YY_DO_BEFORE_ACTION; /* set up SQLyytext again */
5686 : YY_RULE_SETUP
5687 : {}
5688 0 : YY_BREAK
5689 : case 324:
5690 : YY_RULE_SETUP
5691 0 : {YY_FATAL_ERROR("Invalid symbol"); return SQL_TOKEN_INVALIDSYMBOL;}
5692 : YY_BREAK
5693 : case 325:
5694 : YY_RULE_SETUP
5695 0 : ECHO;
5696 0 : YY_BREAK
5697 : case YY_STATE_EOF(INITIAL):
5698 : case YY_STATE_EOF(SQL):
5699 : case YY_STATE_EOF(PREDICATE_ENG):
5700 : case YY_STATE_EOF(PREDICATE_GER):
5701 : case YY_STATE_EOF(DATE):
5702 : case YY_STATE_EOF(STRING):
5703 2 : yyterminate();
5704 :
5705 : case YY_END_OF_BUFFER:
5706 : {
5707 : /* Amount of text matched not including the EOB char. */
5708 61 : int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5709 :
5710 : /* Undo the effects of YY_DO_BEFORE_ACTION. */
5711 61 : *yy_cp = (yy_hold_char);
5712 : YY_RESTORE_YY_MORE_OFFSET
5713 :
5714 61 : if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5715 : {
5716 : /* We're scanning a new file or input source. It's
5717 : * possible that this happened because the user
5718 : * just pointed SQLyyin at a new source and called
5719 : * SQLyylex(). If so, then we have to assure
5720 : * consistency between YY_CURRENT_BUFFER and our
5721 : * globals. Here is the right place to do so, because
5722 : * this is the first action (other than possibly a
5723 : * back-up) that will match for the new input source.
5724 : */
5725 3 : (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5726 3 : YY_CURRENT_BUFFER_LVALUE->yy_input_file = SQLyyin;
5727 3 : YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5728 : }
5729 :
5730 : /* Note that here we test for yy_c_buf_p "<=" to the position
5731 : * of the first EOB in the buffer, since yy_c_buf_p will
5732 : * already have been incremented past the NUL character
5733 : * (since all states make transitions on EOB to the
5734 : * end-of-buffer state). Contrast this with the test
5735 : * in input().
5736 : */
5737 61 : if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5738 : { /* This was really a NUL. */
5739 : yy_state_type yy_next_state;
5740 :
5741 0 : (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5742 :
5743 0 : yy_current_state = yy_get_previous_state( );
5744 :
5745 : /* Okay, we're now positioned to make the NUL
5746 : * transition. We couldn't have
5747 : * yy_get_previous_state() go ahead and do it
5748 : * for us because it doesn't know how to deal
5749 : * with the possibility of jamming (and we don't
5750 : * want to build jamming into it because then it
5751 : * will run more slowly).
5752 : */
5753 :
5754 0 : yy_next_state = yy_try_NUL_trans( yy_current_state );
5755 :
5756 0 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5757 :
5758 0 : if ( yy_next_state )
5759 : {
5760 : /* Consume the NUL. */
5761 0 : yy_cp = ++(yy_c_buf_p);
5762 0 : yy_current_state = yy_next_state;
5763 0 : goto yy_match;
5764 : }
5765 :
5766 : else
5767 : {
5768 0 : yy_cp = (yy_last_accepting_cpos);
5769 0 : yy_current_state = (yy_last_accepting_state);
5770 0 : goto yy_find_action;
5771 : }
5772 : }
5773 :
5774 61 : else switch ( yy_get_next_buffer( ) )
5775 : {
5776 : case EOB_ACT_END_OF_FILE:
5777 : {
5778 2 : (yy_did_buffer_switch_on_eof) = 0;
5779 :
5780 : if ( SQLyywrap( ) )
5781 : {
5782 : /* Note: because we've taken care in
5783 : * yy_get_next_buffer() to have set up
5784 : * SQLyytext, we can now set up
5785 : * yy_c_buf_p so that if some total
5786 : * hoser (like flex itself) wants to
5787 : * call the scanner after we return the
5788 : * YY_NULL, it'll still work - another
5789 : * YY_NULL will get returned.
5790 : */
5791 2 : (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5792 :
5793 2 : yy_act = YY_STATE_EOF(YY_START);
5794 2 : goto do_action;
5795 : }
5796 :
5797 : else
5798 : {
5799 : if ( ! (yy_did_buffer_switch_on_eof) )
5800 : YY_NEW_FILE;
5801 : }
5802 : break;
5803 : }
5804 :
5805 : case EOB_ACT_CONTINUE_SCAN:
5806 : (yy_c_buf_p) =
5807 58 : (yytext_ptr) + yy_amount_of_matched_text;
5808 :
5809 58 : yy_current_state = yy_get_previous_state( );
5810 :
5811 58 : yy_cp = (yy_c_buf_p);
5812 58 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5813 58 : goto yy_match;
5814 :
5815 : case EOB_ACT_LAST_MATCH:
5816 : (yy_c_buf_p) =
5817 1 : &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5818 :
5819 1 : yy_current_state = yy_get_previous_state( );
5820 :
5821 1 : yy_cp = (yy_c_buf_p);
5822 1 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5823 1 : goto yy_find_action;
5824 : }
5825 0 : break;
5826 : }
5827 :
5828 : default:
5829 0 : YY_FATAL_ERROR(
5830 : "fatal flex scanner internal error--no action found" );
5831 : } /* end of action switch */
5832 : } /* end of scanning one token */
5833 : } /* end of SQLyylex */
5834 :
5835 : /* yy_get_next_buffer - try to read in a new buffer
5836 : *
5837 : * Returns a code representing an action:
5838 : * EOB_ACT_LAST_MATCH -
5839 : * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5840 : * EOB_ACT_END_OF_FILE - end of file
5841 : */
5842 118 : static int yy_get_next_buffer (void)
5843 : {
5844 118 : register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5845 118 : register char *source = (yytext_ptr);
5846 : register int number_to_move, i;
5847 : int ret_val;
5848 :
5849 118 : if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5850 0 : YY_FATAL_ERROR(
5851 : "fatal flex scanner internal error--end of buffer missed" );
5852 :
5853 118 : if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5854 : { /* Don't try to fill the buffer, so this is an EOF. */
5855 0 : if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5856 : {
5857 : /* We matched a single character, the EOB, so
5858 : * treat this as a final EOF.
5859 : */
5860 0 : return EOB_ACT_END_OF_FILE;
5861 : }
5862 :
5863 : else
5864 : {
5865 : /* We matched some text prior to the EOB, first
5866 : * process it.
5867 : */
5868 0 : return EOB_ACT_LAST_MATCH;
5869 : }
5870 : }
5871 :
5872 : /* Try to read more data. */
5873 :
5874 : /* First move last chars to start of buffer. */
5875 118 : number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5876 :
5877 574 : for ( i = 0; i < number_to_move; ++i )
5878 456 : *(dest++) = *(source++);
5879 :
5880 118 : if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5881 : /* don't do the read, it's not guaranteed to return an EOF,
5882 : * just force an EOF
5883 : */
5884 1 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5885 :
5886 : else
5887 : {
5888 : int num_to_read =
5889 117 : YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5890 :
5891 234 : while ( num_to_read <= 0 )
5892 : { /* Not enough room in the buffer - grow it. */
5893 :
5894 : /* just a shorter name for the current buffer */
5895 0 : YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
5896 :
5897 : int yy_c_buf_p_offset =
5898 0 : (int) ((yy_c_buf_p) - b->yy_ch_buf);
5899 :
5900 0 : if ( b->yy_is_our_buffer )
5901 : {
5902 0 : int new_size = b->yy_buf_size * 2;
5903 :
5904 0 : if ( new_size <= 0 )
5905 0 : b->yy_buf_size += b->yy_buf_size / 8;
5906 : else
5907 0 : b->yy_buf_size *= 2;
5908 :
5909 : b->yy_ch_buf = (char *)
5910 : /* Include room in for 2 EOB chars. */
5911 0 : SQLyyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
5912 : }
5913 : else
5914 : /* Can't grow it, we don't own it. */
5915 0 : b->yy_ch_buf = 0;
5916 :
5917 0 : if ( ! b->yy_ch_buf )
5918 0 : YY_FATAL_ERROR(
5919 : "fatal error - scanner input buffer overflow" );
5920 :
5921 0 : (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5922 :
5923 0 : num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5924 0 : number_to_move - 1;
5925 :
5926 : }
5927 :
5928 117 : if ( num_to_read > YY_READ_BUF_SIZE )
5929 117 : num_to_read = YY_READ_BUF_SIZE;
5930 :
5931 : /* Read in more data. */
5932 117 : YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5933 : (yy_n_chars), (size_t) num_to_read );
5934 :
5935 117 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5936 : }
5937 :
5938 118 : if ( (yy_n_chars) == 0 )
5939 : {
5940 4 : if ( number_to_move == YY_MORE_ADJ )
5941 : {
5942 2 : ret_val = EOB_ACT_END_OF_FILE;
5943 2 : SQLyyrestart(SQLyyin );
5944 : }
5945 :
5946 : else
5947 : {
5948 2 : ret_val = EOB_ACT_LAST_MATCH;
5949 2 : YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5950 2 : YY_BUFFER_EOF_PENDING;
5951 : }
5952 : }
5953 :
5954 : else
5955 114 : ret_val = EOB_ACT_CONTINUE_SCAN;
5956 :
5957 118 : if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5958 : /* Extend the array by 50%, plus the number we really need. */
5959 0 : yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5960 0 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) SQLyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
5961 0 : if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5962 0 : YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5963 : }
5964 :
5965 118 : (yy_n_chars) += number_to_move;
5966 118 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5967 118 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5968 :
5969 118 : (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5970 :
5971 118 : return ret_val;
5972 : }
5973 :
5974 : /* yy_get_previous_state - get the state just before the EOB char was reached */
5975 :
5976 59 : static yy_state_type yy_get_previous_state (void)
5977 : {
5978 : register yy_state_type yy_current_state;
5979 : register char *yy_cp;
5980 :
5981 59 : yy_current_state = (yy_start);
5982 :
5983 185 : for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5984 : {
5985 126 : register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5986 126 : if ( yy_accept[yy_current_state] )
5987 : {
5988 69 : (yy_last_accepting_state) = yy_current_state;
5989 69 : (yy_last_accepting_cpos) = yy_cp;
5990 : }
5991 252 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5992 : {
5993 0 : yy_current_state = (int) yy_def[yy_current_state];
5994 0 : if ( yy_current_state >= 4504 )
5995 0 : yy_c = yy_meta[(unsigned int) yy_c];
5996 : }
5997 126 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5998 : }
5999 :
6000 59 : return yy_current_state;
6001 : }
6002 :
6003 : /* yy_try_NUL_trans - try to make a transition on the NUL character
6004 : *
6005 : * synopsis
6006 : * next_state = yy_try_NUL_trans( current_state );
6007 : */
6008 0 : static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6009 : {
6010 : register int yy_is_jam;
6011 0 : register char *yy_cp = (yy_c_buf_p);
6012 :
6013 0 : register YY_CHAR yy_c = 1;
6014 0 : if ( yy_accept[yy_current_state] )
6015 : {
6016 0 : (yy_last_accepting_state) = yy_current_state;
6017 0 : (yy_last_accepting_cpos) = yy_cp;
6018 : }
6019 0 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6020 : {
6021 0 : yy_current_state = (int) yy_def[yy_current_state];
6022 0 : if ( yy_current_state >= 4504 )
6023 0 : yy_c = yy_meta[(unsigned int) yy_c];
6024 : }
6025 0 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6026 0 : yy_is_jam = (yy_current_state == 4503);
6027 :
6028 0 : return yy_is_jam ? 0 : yy_current_state;
6029 : }
6030 :
6031 6 : static void yyunput (int c, register char * yy_bp )
6032 : {
6033 : register char *yy_cp;
6034 :
6035 6 : yy_cp = (yy_c_buf_p);
6036 :
6037 : /* undo effects of setting up SQLyytext */
6038 6 : *yy_cp = (yy_hold_char);
6039 :
6040 6 : if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
6041 : { /* need to shift things up to make room */
6042 : /* +2 for EOB chars. */
6043 0 : register int number_to_move = (yy_n_chars) + 2;
6044 0 : register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
6045 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
6046 : register char *source =
6047 0 : &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
6048 :
6049 0 : while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6050 0 : *--dest = *--source;
6051 :
6052 0 : yy_cp += (int) (dest - source);
6053 0 : yy_bp += (int) (dest - source);
6054 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
6055 0 : (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
6056 :
6057 0 : if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
6058 0 : YY_FATAL_ERROR( "flex scanner push-back overflow" );
6059 : }
6060 :
6061 6 : *--yy_cp = (char) c;
6062 :
6063 6 : (yytext_ptr) = yy_bp;
6064 6 : (yy_hold_char) = *yy_cp;
6065 6 : (yy_c_buf_p) = yy_cp;
6066 6 : }
6067 :
6068 : #ifndef YY_NO_INPUT
6069 : #ifdef __cplusplus
6070 64 : static int yyinput (void)
6071 : #else
6072 : static int input (void)
6073 : #endif
6074 :
6075 : {
6076 : int c;
6077 :
6078 64 : *(yy_c_buf_p) = (yy_hold_char);
6079 :
6080 64 : if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6081 : {
6082 : /* yy_c_buf_p now points to the character we want to return.
6083 : * If this occurs *before* the EOB characters, then it's a
6084 : * valid NUL; if not, then we've hit the end of the buffer.
6085 : */
6086 57 : if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6087 : /* This was really a NUL. */
6088 0 : *(yy_c_buf_p) = '\0';
6089 :
6090 : else
6091 : { /* need more input */
6092 57 : int offset = (yy_c_buf_p) - (yytext_ptr);
6093 57 : ++(yy_c_buf_p);
6094 :
6095 57 : switch ( yy_get_next_buffer( ) )
6096 : {
6097 : case EOB_ACT_LAST_MATCH:
6098 : /* This happens because yy_g_n_b()
6099 : * sees that we've accumulated a
6100 : * token and flags that we need to
6101 : * try matching the token before
6102 : * proceeding. But for input(),
6103 : * there's no matching to consider.
6104 : * So convert the EOB_ACT_LAST_MATCH
6105 : * to EOB_ACT_END_OF_FILE.
6106 : */
6107 :
6108 : /* Reset buffer status. */
6109 1 : SQLyyrestart(SQLyyin );
6110 :
6111 : /*FALLTHROUGH*/
6112 :
6113 : case EOB_ACT_END_OF_FILE:
6114 : {
6115 : if ( SQLyywrap( ) )
6116 1 : return EOF;
6117 :
6118 : if ( ! (yy_did_buffer_switch_on_eof) )
6119 : YY_NEW_FILE;
6120 : #ifdef __cplusplus
6121 : return yyinput();
6122 : #else
6123 : return input();
6124 : #endif
6125 : }
6126 :
6127 : case EOB_ACT_CONTINUE_SCAN:
6128 56 : (yy_c_buf_p) = (yytext_ptr) + offset;
6129 56 : break;
6130 : }
6131 : }
6132 : }
6133 :
6134 63 : c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6135 63 : *(yy_c_buf_p) = '\0'; /* preserve SQLyytext */
6136 63 : (yy_hold_char) = *++(yy_c_buf_p);
6137 :
6138 63 : return c;
6139 : }
6140 : #endif /* ifndef YY_NO_INPUT */
6141 :
6142 : /** Immediately switch to a different input stream.
6143 : * @param input_file A readable stream.
6144 : *
6145 : * @note This function does not reset the start condition to @c INITIAL .
6146 : */
6147 3 : void SQLyyrestart (FILE * input_file )
6148 : {
6149 :
6150 3 : if ( ! YY_CURRENT_BUFFER ){
6151 0 : SQLyyensure_buffer_stack ();
6152 0 : YY_CURRENT_BUFFER_LVALUE =
6153 0 : SQLyy_create_buffer(SQLyyin,YY_BUF_SIZE );
6154 : }
6155 :
6156 3 : SQLyy_init_buffer(YY_CURRENT_BUFFER,input_file );
6157 3 : SQLyy_load_buffer_state( );
6158 3 : }
6159 :
6160 : /** Switch to a different input buffer.
6161 : * @param new_buffer The new input buffer.
6162 : *
6163 : */
6164 0 : void SQLyy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
6165 : {
6166 :
6167 : /* TODO. We should be able to replace this entire function body
6168 : * with
6169 : * SQLyypop_buffer_state();
6170 : * SQLyypush_buffer_state(new_buffer);
6171 : */
6172 0 : SQLyyensure_buffer_stack ();
6173 0 : if ( YY_CURRENT_BUFFER == new_buffer )
6174 0 : return;
6175 :
6176 0 : if ( YY_CURRENT_BUFFER )
6177 : {
6178 : /* Flush out information for old buffer. */
6179 0 : *(yy_c_buf_p) = (yy_hold_char);
6180 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6181 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6182 : }
6183 :
6184 0 : YY_CURRENT_BUFFER_LVALUE = new_buffer;
6185 0 : SQLyy_load_buffer_state( );
6186 :
6187 : /* We don't actually know whether we did this switch during
6188 : * EOF (SQLyywrap()) processing, but the only time this flag
6189 : * is looked at is after SQLyywrap() is called, so it's safe
6190 : * to go ahead and always set it.
6191 : */
6192 0 : (yy_did_buffer_switch_on_eof) = 1;
6193 : }
6194 :
6195 8 : static void SQLyy_load_buffer_state (void)
6196 : {
6197 8 : (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6198 8 : (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6199 8 : SQLyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6200 8 : (yy_hold_char) = *(yy_c_buf_p);
6201 8 : }
6202 :
6203 : /** Allocate and initialize an input buffer state.
6204 : * @param file A readable stream.
6205 : * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6206 : *
6207 : * @return the allocated buffer state.
6208 : */
6209 1 : YY_BUFFER_STATE SQLyy_create_buffer (FILE * file, int size )
6210 : {
6211 : YY_BUFFER_STATE b;
6212 :
6213 1 : b = (YY_BUFFER_STATE) SQLyyalloc(sizeof( struct yy_buffer_state ) );
6214 1 : if ( ! b )
6215 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyy_create_buffer()" );
6216 :
6217 1 : b->yy_buf_size = size;
6218 :
6219 : /* yy_ch_buf has to be 2 characters longer than the size given because
6220 : * we need to put in 2 end-of-buffer characters.
6221 : */
6222 1 : b->yy_ch_buf = (char *) SQLyyalloc(b->yy_buf_size + 2 );
6223 1 : if ( ! b->yy_ch_buf )
6224 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyy_create_buffer()" );
6225 :
6226 1 : b->yy_is_our_buffer = 1;
6227 :
6228 1 : SQLyy_init_buffer(b,file );
6229 :
6230 1 : return b;
6231 : }
6232 :
6233 : /** Destroy the buffer.
6234 : * @param b a buffer created with SQLyy_create_buffer()
6235 : *
6236 : */
6237 0 : void SQLyy_delete_buffer (YY_BUFFER_STATE b )
6238 : {
6239 :
6240 0 : if ( ! b )
6241 0 : return;
6242 :
6243 0 : if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6244 0 : YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6245 :
6246 0 : if ( b->yy_is_our_buffer )
6247 0 : SQLyyfree((void *) b->yy_ch_buf );
6248 :
6249 0 : SQLyyfree((void *) b );
6250 : }
6251 :
6252 : /* Initializes or reinitializes a buffer.
6253 : * This function is sometimes called more than once on the same buffer,
6254 : * such as during a SQLyyrestart() or at EOF.
6255 : */
6256 4 : static void SQLyy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6257 :
6258 : {
6259 4 : int oerrno = errno;
6260 :
6261 4 : SQLyy_flush_buffer(b );
6262 :
6263 4 : b->yy_input_file = file;
6264 4 : b->yy_fill_buffer = 1;
6265 :
6266 : /* If b is the current buffer, then SQLyy_init_buffer was _probably_
6267 : * called from SQLyyrestart() or through yy_get_next_buffer.
6268 : * In that case, we don't want to reset the lineno or column.
6269 : */
6270 4 : if (b != YY_CURRENT_BUFFER){
6271 1 : b->yy_bs_lineno = 1;
6272 1 : b->yy_bs_column = 0;
6273 : }
6274 :
6275 4 : b->yy_is_interactive = 0;
6276 :
6277 4 : errno = oerrno;
6278 4 : }
6279 :
6280 : /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6281 : * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6282 : *
6283 : */
6284 6 : void SQLyy_flush_buffer (YY_BUFFER_STATE b )
6285 : {
6286 6 : if ( ! b )
6287 7 : return;
6288 :
6289 5 : b->yy_n_chars = 0;
6290 :
6291 : /* We always need two end-of-buffer characters. The first causes
6292 : * a transition to the end-of-buffer state. The second causes
6293 : * a jam in that state.
6294 : */
6295 5 : b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6296 5 : b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6297 :
6298 5 : b->yy_buf_pos = &b->yy_ch_buf[0];
6299 :
6300 5 : b->yy_at_bol = 1;
6301 5 : b->yy_buffer_status = YY_BUFFER_NEW;
6302 :
6303 5 : if ( b == YY_CURRENT_BUFFER )
6304 4 : SQLyy_load_buffer_state( );
6305 : }
6306 :
6307 : /** Pushes the new state onto the stack. The new state becomes
6308 : * the current state. This function will allocate the stack
6309 : * if necessary.
6310 : * @param new_buffer The new state.
6311 : *
6312 : */
6313 0 : void SQLyypush_buffer_state (YY_BUFFER_STATE new_buffer )
6314 : {
6315 0 : if (new_buffer == NULL)
6316 0 : return;
6317 :
6318 0 : SQLyyensure_buffer_stack();
6319 :
6320 : /* This block is copied from SQLyy_switch_to_buffer. */
6321 0 : if ( YY_CURRENT_BUFFER )
6322 : {
6323 : /* Flush out information for old buffer. */
6324 0 : *(yy_c_buf_p) = (yy_hold_char);
6325 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6326 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6327 : }
6328 :
6329 : /* Only push if top exists. Otherwise, replace top. */
6330 0 : if (YY_CURRENT_BUFFER)
6331 0 : (yy_buffer_stack_top)++;
6332 0 : YY_CURRENT_BUFFER_LVALUE = new_buffer;
6333 :
6334 : /* copied from SQLyy_switch_to_buffer. */
6335 0 : SQLyy_load_buffer_state( );
6336 0 : (yy_did_buffer_switch_on_eof) = 1;
6337 : }
6338 :
6339 : /** Removes and deletes the top of the stack, if present.
6340 : * The next element becomes the new top.
6341 : *
6342 : */
6343 0 : void SQLyypop_buffer_state (void)
6344 : {
6345 0 : if (!YY_CURRENT_BUFFER)
6346 0 : return;
6347 :
6348 0 : SQLyy_delete_buffer(YY_CURRENT_BUFFER );
6349 0 : YY_CURRENT_BUFFER_LVALUE = NULL;
6350 0 : if ((yy_buffer_stack_top) > 0)
6351 0 : --(yy_buffer_stack_top);
6352 :
6353 0 : if (YY_CURRENT_BUFFER) {
6354 0 : SQLyy_load_buffer_state( );
6355 0 : (yy_did_buffer_switch_on_eof) = 1;
6356 : }
6357 : }
6358 :
6359 : /* Allocates the stack if it does not exist.
6360 : * Guarantees space for at least one push.
6361 : */
6362 1 : static void SQLyyensure_buffer_stack (void)
6363 : {
6364 : int num_to_alloc;
6365 :
6366 1 : if (!(yy_buffer_stack)) {
6367 :
6368 : /* First allocation is just for 2 elements, since we don't know if this
6369 : * scanner will even need a stack. We use 2 instead of 1 to avoid an
6370 : * immediate realloc on the next call.
6371 : */
6372 1 : num_to_alloc = 1;
6373 : (yy_buffer_stack) = (struct yy_buffer_state**)SQLyyalloc
6374 : (num_to_alloc * sizeof(struct yy_buffer_state*)
6375 1 : );
6376 1 : if ( ! (yy_buffer_stack) )
6377 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyyensure_buffer_stack()" );
6378 :
6379 1 : memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6380 :
6381 1 : (yy_buffer_stack_max) = num_to_alloc;
6382 1 : (yy_buffer_stack_top) = 0;
6383 2 : return;
6384 : }
6385 :
6386 0 : if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6387 :
6388 : /* Increase the buffer to prepare for a possible push. */
6389 0 : int grow_size = 8 /* arbitrary grow size */;
6390 :
6391 0 : num_to_alloc = (yy_buffer_stack_max) + grow_size;
6392 : (yy_buffer_stack) = (struct yy_buffer_state**)SQLyyrealloc
6393 : ((yy_buffer_stack),
6394 : num_to_alloc * sizeof(struct yy_buffer_state*)
6395 0 : );
6396 0 : if ( ! (yy_buffer_stack) )
6397 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyyensure_buffer_stack()" );
6398 :
6399 : /* zero only the new slots.*/
6400 0 : memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6401 0 : (yy_buffer_stack_max) = num_to_alloc;
6402 : }
6403 : }
6404 :
6405 : /** Setup the input buffer state to scan directly from a user-specified character buffer.
6406 : * @param base the character buffer
6407 : * @param size the size in bytes of the character buffer
6408 : *
6409 : * @return the newly allocated buffer state object.
6410 : */
6411 0 : YY_BUFFER_STATE SQLyy_scan_buffer (char * base, yy_size_t size )
6412 : {
6413 : YY_BUFFER_STATE b;
6414 :
6415 0 : if ( size < 2 ||
6416 0 : base[size-2] != YY_END_OF_BUFFER_CHAR ||
6417 0 : base[size-1] != YY_END_OF_BUFFER_CHAR )
6418 : /* They forgot to leave room for the EOB's. */
6419 0 : return 0;
6420 :
6421 0 : b = (YY_BUFFER_STATE) SQLyyalloc(sizeof( struct yy_buffer_state ) );
6422 0 : if ( ! b )
6423 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyy_scan_buffer()" );
6424 :
6425 0 : b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
6426 0 : b->yy_buf_pos = b->yy_ch_buf = base;
6427 0 : b->yy_is_our_buffer = 0;
6428 0 : b->yy_input_file = 0;
6429 0 : b->yy_n_chars = b->yy_buf_size;
6430 0 : b->yy_is_interactive = 0;
6431 0 : b->yy_at_bol = 1;
6432 0 : b->yy_fill_buffer = 0;
6433 0 : b->yy_buffer_status = YY_BUFFER_NEW;
6434 :
6435 0 : SQLyy_switch_to_buffer(b );
6436 :
6437 0 : return b;
6438 : }
6439 :
6440 : /** Setup the input buffer state to scan a string. The next call to SQLyylex() will
6441 : * scan from a @e copy of @a str.
6442 : * @param yystr a NUL-terminated string to scan
6443 : *
6444 : * @return the newly allocated buffer state object.
6445 : * @note If you want to scan bytes that may contain NUL values, then use
6446 : * SQLyy_scan_bytes() instead.
6447 : */
6448 0 : YY_BUFFER_STATE SQLyy_scan_string (yyconst char * yystr )
6449 : {
6450 :
6451 0 : return SQLyy_scan_bytes(yystr,strlen(yystr) );
6452 : }
6453 :
6454 : /** Setup the input buffer state to scan the given bytes. The next call to SQLyylex() will
6455 : * scan from a @e copy of @a bytes.
6456 : * @param bytes the byte buffer to scan
6457 : * @param len the number of bytes in the buffer pointed to by @a bytes.
6458 : *
6459 : * @return the newly allocated buffer state object.
6460 : */
6461 0 : YY_BUFFER_STATE SQLyy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
6462 : {
6463 : YY_BUFFER_STATE b;
6464 : char *buf;
6465 : yy_size_t n;
6466 : int i;
6467 :
6468 : /* Get memory for full buffer, including space for trailing EOB's. */
6469 0 : n = _yybytes_len + 2;
6470 0 : buf = (char *) SQLyyalloc(n );
6471 0 : if ( ! buf )
6472 0 : YY_FATAL_ERROR( "out of dynamic memory in SQLyy_scan_bytes()" );
6473 :
6474 0 : for ( i = 0; i < _yybytes_len; ++i )
6475 0 : buf[i] = yybytes[i];
6476 :
6477 0 : buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6478 :
6479 0 : b = SQLyy_scan_buffer(buf,n );
6480 0 : if ( ! b )
6481 0 : YY_FATAL_ERROR( "bad buffer in SQLyy_scan_bytes()" );
6482 :
6483 : /* It's okay to grow etc. this buffer, and we should throw it
6484 : * away when we're done.
6485 : */
6486 0 : b->yy_is_our_buffer = 1;
6487 :
6488 0 : return b;
6489 : }
6490 :
6491 : #ifndef YY_EXIT_FAILURE
6492 : #define YY_EXIT_FAILURE 2
6493 : #endif
6494 :
6495 0 : static void yy_fatal_error (yyconst char* msg )
6496 : {
6497 0 : (void) fprintf( stderr, "%s\n", msg );
6498 0 : exit( YY_EXIT_FAILURE );
6499 : }
6500 :
6501 : /* Redefine yyless() so it works in section 3 code. */
6502 :
6503 : #undef yyless
6504 : #define yyless(n) \
6505 : do \
6506 : { \
6507 : /* Undo effects of setting up SQLyytext. */ \
6508 : int yyless_macro_arg = (n); \
6509 : YY_LESS_LINENO(yyless_macro_arg);\
6510 : SQLyytext[SQLyyleng] = (yy_hold_char); \
6511 : (yy_c_buf_p) = SQLyytext + yyless_macro_arg; \
6512 : (yy_hold_char) = *(yy_c_buf_p); \
6513 : *(yy_c_buf_p) = '\0'; \
6514 : SQLyyleng = yyless_macro_arg; \
6515 : } \
6516 : while ( 0 )
6517 :
6518 : /* Accessor methods (get/set functions) to struct members. */
6519 :
6520 : /** Get the current line number.
6521 : *
6522 : */
6523 0 : int SQLyyget_lineno (void)
6524 : {
6525 :
6526 0 : return SQLyylineno;
6527 : }
6528 :
6529 : /** Get the input stream.
6530 : *
6531 : */
6532 0 : FILE *SQLyyget_in (void)
6533 : {
6534 0 : return SQLyyin;
6535 : }
6536 :
6537 : /** Get the output stream.
6538 : *
6539 : */
6540 0 : FILE *SQLyyget_out (void)
6541 : {
6542 0 : return SQLyyout;
6543 : }
6544 :
6545 : /** Get the length of the current token.
6546 : *
6547 : */
6548 0 : int SQLyyget_leng (void)
6549 : {
6550 0 : return SQLyyleng;
6551 : }
6552 :
6553 : /** Get the current token.
6554 : *
6555 : */
6556 :
6557 0 : char *SQLyyget_text (void)
6558 : {
6559 0 : return SQLyytext;
6560 : }
6561 :
6562 : /** Set the current line number.
6563 : * @param line_number
6564 : *
6565 : */
6566 0 : void SQLyyset_lineno (int line_number )
6567 : {
6568 :
6569 0 : SQLyylineno = line_number;
6570 0 : }
6571 :
6572 : /** Set the input stream. This does not discard the current
6573 : * input buffer.
6574 : * @param in_str A readable stream.
6575 : *
6576 : * @see SQLyy_switch_to_buffer
6577 : */
6578 0 : void SQLyyset_in (FILE * in_str )
6579 : {
6580 0 : SQLyyin = in_str ;
6581 0 : }
6582 :
6583 0 : void SQLyyset_out (FILE * out_str )
6584 : {
6585 0 : SQLyyout = out_str ;
6586 0 : }
6587 :
6588 0 : int SQLyyget_debug (void)
6589 : {
6590 0 : return SQLyy_flex_debug;
6591 : }
6592 :
6593 0 : void SQLyyset_debug (int bdebug )
6594 : {
6595 0 : SQLyy_flex_debug = bdebug ;
6596 0 : }
6597 :
6598 0 : static int yy_init_globals (void)
6599 : {
6600 : /* Initialization is the same as for the non-reentrant scanner.
6601 : * This function is called from SQLyylex_destroy(), so don't allocate here.
6602 : */
6603 :
6604 0 : (yy_buffer_stack) = 0;
6605 0 : (yy_buffer_stack_top) = 0;
6606 0 : (yy_buffer_stack_max) = 0;
6607 0 : (yy_c_buf_p) = (char *) 0;
6608 0 : (yy_init) = 0;
6609 0 : (yy_start) = 0;
6610 :
6611 : /* Defined in main.c */
6612 : #ifdef YY_STDINIT
6613 : SQLyyin = stdin;
6614 : SQLyyout = stdout;
6615 : #else
6616 0 : SQLyyin = (FILE *) 0;
6617 0 : SQLyyout = (FILE *) 0;
6618 : #endif
6619 :
6620 : /* For future reference: Set errno on error, since we are called by
6621 : * SQLyylex_init()
6622 : */
6623 0 : return 0;
6624 : }
6625 :
6626 : /* SQLyylex_destroy is for both reentrant and non-reentrant scanners. */
6627 0 : int SQLyylex_destroy (void)
6628 : {
6629 :
6630 : /* Pop the buffer stack, destroying each element. */
6631 0 : while(YY_CURRENT_BUFFER){
6632 0 : SQLyy_delete_buffer(YY_CURRENT_BUFFER );
6633 0 : YY_CURRENT_BUFFER_LVALUE = NULL;
6634 0 : SQLyypop_buffer_state();
6635 : }
6636 :
6637 : /* Destroy the stack itself. */
6638 0 : SQLyyfree((yy_buffer_stack) );
6639 0 : (yy_buffer_stack) = NULL;
6640 :
6641 : /* Reset the globals. This is important in a non-reentrant scanner so the next time
6642 : * SQLyylex() is called, initialization will occur. */
6643 0 : yy_init_globals( );
6644 :
6645 0 : return 0;
6646 : }
6647 :
6648 : /*
6649 : * Internal utility routines.
6650 : */
6651 :
6652 : #ifndef yytext_ptr
6653 : static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6654 : {
6655 : register int i;
6656 : for ( i = 0; i < n; ++i )
6657 : s1[i] = s2[i];
6658 : }
6659 : #endif
6660 :
6661 : #ifdef YY_NEED_STRLEN
6662 : static int yy_flex_strlen (yyconst char * s )
6663 : {
6664 : register int n;
6665 : for ( n = 0; s[n]; ++n )
6666 : ;
6667 :
6668 : return n;
6669 : }
6670 : #endif
6671 :
6672 3 : void *SQLyyalloc (yy_size_t size )
6673 : {
6674 3 : return (void *) malloc( size );
6675 : }
6676 :
6677 0 : void *SQLyyrealloc (void * ptr, yy_size_t size )
6678 : {
6679 : /* The cast to (char *) in the following accommodates both
6680 : * implementations that use char* generic pointers, and those
6681 : * that use void* generic pointers. It works with the latter
6682 : * because both ANSI C and C++ allow castless assignment from
6683 : * any pointer type to void*, and deal with argument conversions
6684 : * as though doing an assignment.
6685 : */
6686 0 : return (void *) realloc( (char *) ptr, size );
6687 : }
6688 :
6689 0 : void SQLyyfree (void * ptr )
6690 : {
6691 0 : free( (char *) ptr ); /* see SQLyyrealloc() for (char *) cast */
6692 0 : }
6693 :
6694 : #define YYTABLES_NAME "yytables"
6695 :
6696 : // Kludge around a bug (well, Posix incompatibility) in flex 2.5.x
6697 : // http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no&bug=189332
6698 : #if YY_FLEX_MAJOR_VERSION >= 2 && YY_FLEX_MINOR_VERSION >= 5
6699 :
6700 : #ifndef YY_FLUSH_BUFFER
6701 : #define YY_FLUSH_BUFFER SQLyy_flush_buffer(YY_CURRENT_BUFFER )
6702 : #endif
6703 :
6704 : #ifndef yytext_ptr
6705 : #define yytext_ptr SQLyytext
6706 : #endif
6707 :
6708 : #endif
6709 :
6710 : // Versions of flex apparently differ in whether input() resp. yyinput() returns
6711 : // zero or EOF upon end of file:
6712 64 : inline bool checkeof(int c) { return c == 0 || c == EOF; }
6713 :
6714 : /*
6715 : * Read SQL string literal
6716 : * Valid strings:
6717 : * '' 'a string' 'quote '' within string'
6718 : * "" "a string" "quote "" within string"
6719 : * nTyp == 0 -> SQL_NODE_NAME
6720 : * nTyp == 1 -> SQL_NODE_STRING
6721 : * nTyp == 2 -> SQL_NODE_ACCESS_DATE
6722 : */
6723 7 : sal_Int32 gatherString(int delim, sal_Int32 nTyp)
6724 : {
6725 : int ch;
6726 7 : ::rtl::OStringBuffer sBuffer(256);
6727 :
6728 64 : while (!checkeof(ch = yyinput()))
6729 : {
6730 57 : if (ch == delim)
6731 : {
6732 7 : if ((ch = yyinput()) != delim)
6733 : {
6734 7 : if (!checkeof(ch))
6735 6 : unput(ch);
6736 :
6737 7 : switch(nTyp)
6738 : {
6739 : case 0:
6740 6 : SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME);
6741 6 : return SQL_TOKEN_NAME;
6742 : case 1:
6743 1 : SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_STRING);
6744 1 : return SQL_TOKEN_STRING;
6745 : case 2:
6746 0 : SQL_NEW_NODE(::rtl::OStringToOUString(sBuffer.makeStringAndClear(),RTL_TEXTENCODING_UTF8), SQL_NODE_ACCESS_DATE);
6747 0 : return SQL_TOKEN_ACCESS_DATE;
6748 : }
6749 : }
6750 : else
6751 : {
6752 0 : sBuffer.append(static_cast<sal_Char>(ch));
6753 : }
6754 :
6755 : }
6756 50 : else if (nTyp != 1 && (ch == '\r' || ch == '\n') )
6757 0 : break;
6758 : else
6759 : {
6760 50 : sBuffer.append(static_cast<sal_Char>(ch));
6761 : }
6762 : }
6763 0 : YY_FATAL_ERROR("Unterminated name string");
6764 0 : return SQL_TOKEN_INVALIDSYMBOL;
6765 : }
6766 :
6767 0 : sal_Int32 mapEnumToToken(IParseContext::InternationalKeyCode _eKeyCode )
6768 : {
6769 0 : sal_Int32 nTokenID = 0;
6770 0 : switch( _eKeyCode )
6771 : {
6772 0 : case IParseContext::KEY_LIKE: nTokenID = SQL_TOKEN_LIKE; break;
6773 0 : case IParseContext::KEY_NOT: nTokenID = SQL_TOKEN_NOT; break;
6774 0 : case IParseContext::KEY_NULL: nTokenID = SQL_TOKEN_NULL; break;
6775 0 : case IParseContext::KEY_TRUE: nTokenID = SQL_TOKEN_TRUE; break;
6776 0 : case IParseContext::KEY_FALSE: nTokenID = SQL_TOKEN_FALSE; break;
6777 0 : case IParseContext::KEY_IS: nTokenID = SQL_TOKEN_IS; break;
6778 0 : case IParseContext::KEY_BETWEEN: nTokenID = SQL_TOKEN_BETWEEN; break;
6779 0 : case IParseContext::KEY_OR: nTokenID = SQL_TOKEN_OR; break;
6780 0 : case IParseContext::KEY_AND: nTokenID = SQL_TOKEN_AND; break;
6781 0 : case IParseContext::KEY_AVG: nTokenID = SQL_TOKEN_AVG; break;
6782 0 : case IParseContext::KEY_COUNT: nTokenID = SQL_TOKEN_COUNT; break;
6783 0 : case IParseContext::KEY_MAX: nTokenID = SQL_TOKEN_MAX; break;
6784 0 : case IParseContext::KEY_MIN: nTokenID = SQL_TOKEN_MIN; break;
6785 0 : case IParseContext::KEY_SUM: nTokenID = SQL_TOKEN_SUM; break;
6786 0 : case IParseContext::KEY_EVERY: nTokenID = SQL_TOKEN_EVERY; break;
6787 0 : case IParseContext::KEY_ANY: nTokenID = SQL_TOKEN_ANY; break;
6788 0 : case IParseContext::KEY_SOME: nTokenID = SQL_TOKEN_SOME; break;
6789 0 : case IParseContext::KEY_STDDEV_POP: nTokenID = SQL_TOKEN_STDDEV_POP; break;
6790 0 : case IParseContext::KEY_STDDEV_SAMP: nTokenID = SQL_TOKEN_STDDEV_SAMP; break;
6791 0 : case IParseContext::KEY_VAR_SAMP: nTokenID = SQL_TOKEN_VAR_SAMP; break;
6792 0 : case IParseContext::KEY_VAR_POP: nTokenID = SQL_TOKEN_VAR_POP; break;
6793 0 : case IParseContext::KEY_COLLECT: nTokenID = SQL_TOKEN_COLLECT; break;
6794 0 : case IParseContext::KEY_FUSION: nTokenID = SQL_TOKEN_FUSION; break;
6795 0 : case IParseContext::KEY_INTERSECTION: nTokenID = SQL_TOKEN_INTERSECTION; break;
6796 : default:
6797 : OSL_FAIL( "mapEnumToToken: unsupported key!" );
6798 : }
6799 0 : return nTokenID;
6800 : }
6801 : /*
6802 : * Read SQL Name literal
6803 : * Valid Names or international keywords:
6804 : * As we have international keywords, we test first on them
6805 : */
6806 0 : sal_Int32 gatherName(const sal_Char* text)
6807 : {
6808 : sal_Int32 nToken;
6809 : OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!");
6810 0 : IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text);
6811 0 : switch (eKeyCode)
6812 : {
6813 : case IParseContext::KEY_LIKE:
6814 : case IParseContext::KEY_NOT:
6815 : case IParseContext::KEY_NULL:
6816 : case IParseContext::KEY_TRUE:
6817 : case IParseContext::KEY_FALSE:
6818 : case IParseContext::KEY_IS:
6819 : case IParseContext::KEY_BETWEEN:
6820 : case IParseContext::KEY_OR:
6821 : case IParseContext::KEY_AND:
6822 : case IParseContext::KEY_COUNT:
6823 : case IParseContext::KEY_AVG:
6824 : case IParseContext::KEY_MAX:
6825 : case IParseContext::KEY_MIN:
6826 : case IParseContext::KEY_SUM:
6827 : case IParseContext::KEY_EVERY:
6828 : case IParseContext::KEY_ANY:
6829 : case IParseContext::KEY_SOME:
6830 : case IParseContext::KEY_STDDEV_POP:
6831 : case IParseContext::KEY_STDDEV_SAMP:
6832 : case IParseContext::KEY_VAR_SAMP:
6833 : case IParseContext::KEY_VAR_POP:
6834 : case IParseContext::KEY_COLLECT:
6835 : case IParseContext::KEY_FUSION:
6836 : case IParseContext::KEY_INTERSECTION:
6837 0 : nToken = mapEnumToToken(eKeyCode);
6838 0 : SQL_NEW_KEYWORD(nToken);
6839 : break;
6840 : default:
6841 0 : SQL_NEW_NODE(::rtl::OUString(text,strlen(text),RTL_TEXTENCODING_UTF8), SQL_NODE_NAME);
6842 0 : return SQL_TOKEN_NAME;
6843 : }
6844 : }
6845 : /**
6846 : Read SQL Name literal for predicate check
6847 : Valid Names or internatioanl keywords:
6848 : As we have international keywords, we test first on them
6849 : */
6850 0 : sal_Int32 gatherNamePre(const sal_Char* text)
6851 : {
6852 : sal_Int32 nToken;
6853 : OSL_ENSURE(xxx_pGLOBAL_SQLSCAN,"You forgot to set the scanner!");
6854 0 : IParseContext::InternationalKeyCode eKeyCode = xxx_pGLOBAL_SQLSCAN->getInternationalTokenID(text);
6855 0 : switch (eKeyCode)
6856 : {
6857 : case IParseContext::KEY_LIKE:
6858 : case IParseContext::KEY_NOT:
6859 : case IParseContext::KEY_NULL:
6860 : case IParseContext::KEY_TRUE:
6861 : case IParseContext::KEY_FALSE:
6862 : case IParseContext::KEY_IS:
6863 : case IParseContext::KEY_BETWEEN:
6864 : case IParseContext::KEY_OR:
6865 : case IParseContext::KEY_AND:
6866 : case IParseContext::KEY_COUNT:
6867 : case IParseContext::KEY_AVG:
6868 : case IParseContext::KEY_MAX:
6869 : case IParseContext::KEY_MIN:
6870 : case IParseContext::KEY_SUM:
6871 : case IParseContext::KEY_EVERY:
6872 : case IParseContext::KEY_ANY:
6873 : case IParseContext::KEY_SOME:
6874 : case IParseContext::KEY_STDDEV_POP:
6875 : case IParseContext::KEY_STDDEV_SAMP:
6876 : case IParseContext::KEY_VAR_SAMP:
6877 : case IParseContext::KEY_VAR_POP:
6878 : case IParseContext::KEY_COLLECT:
6879 : case IParseContext::KEY_FUSION:
6880 : case IParseContext::KEY_INTERSECTION:
6881 0 : nToken = mapEnumToToken(eKeyCode);
6882 0 : SQL_NEW_KEYWORD(nToken);
6883 : break;
6884 : default:
6885 : // we need a special handling for parameter
6886 : {
6887 0 : ::rtl::OString sStmt = xxx_pGLOBAL_SQLSCAN->getStatement();
6888 0 : sal_Int32 nLength = strlen(text);
6889 0 : sal_Int32 nPos = xxx_pGLOBAL_SQLSCAN->GetCurrentPos() - nLength - 2;
6890 0 : if (sStmt.getStr()[nPos] == ':')
6891 : {
6892 0 : SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_NAME);
6893 0 : nToken = SQL_TOKEN_NAME;
6894 : }
6895 : else
6896 : {
6897 0 : SQL_NEW_NODE(::rtl::OUString(text,nLength,RTL_TEXTENCODING_UTF8), SQL_NODE_STRING);
6898 0 : nToken = SQL_TOKEN_STRING;
6899 0 : }
6900 : }
6901 : }
6902 0 : return nToken;
6903 : }
6904 :
6905 : using namespace connectivity;
6906 :
6907 : static bool IN_SQLyyerror;
6908 : //------------------------------------------------------------------------------
6909 1 : OSQLScanner::OSQLScanner()
6910 : : m_pContext(NULL)
6911 : , m_nCurrentPos(0)
6912 : , m_bInternational(sal_False)
6913 1 : , m_nRule(0) // 0 is INITIAL
6914 : {
6915 1 : IN_SQLyyerror = false;
6916 1 : }
6917 :
6918 : //------------------------------------------------------------------------------
6919 0 : OSQLScanner::~OSQLScanner()
6920 : {
6921 0 : }
6922 : //------------------------------------------------------------------------------
6923 0 : void OSQLScanner::SQLyyerror(sal_Char *fmt)
6924 : {
6925 :
6926 0 : if(IN_SQLyyerror)
6927 0 : return;
6928 0 : IN_SQLyyerror = true;
6929 :
6930 : OSL_ENSURE(m_pContext, "OSQLScanner::SQLyyerror: No Context set");
6931 0 : m_sErrorMessage = ::rtl::OUString(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8);
6932 0 : if (m_nCurrentPos < m_sStatement.getLength())
6933 : {
6934 0 : m_sErrorMessage += ::rtl::OUString(": ");
6935 :
6936 0 : ::rtl::OUString aError;
6937 : static sal_Int32 BUFFERSIZE = 256;
6938 : static sal_Char* Buffer = 0;
6939 0 : if(!Buffer)
6940 0 : Buffer = new sal_Char[BUFFERSIZE];
6941 :
6942 0 : sal_Char *s = Buffer;
6943 0 : sal_Int32 nPos = 1;
6944 0 : int ch = SQLyytext ? (SQLyytext[0] == 0 ? ' ' : SQLyytext[0]): ' ';
6945 0 : *s++ = ch;
6946 0 : while (!checkeof(ch = yyinput()))
6947 : {
6948 0 : if (ch == ' ')
6949 : {
6950 0 : if ((ch = yyinput()) != ' ')
6951 : {
6952 0 : if (!checkeof(ch))
6953 0 : unput(ch);
6954 : }
6955 0 : *s = '\0';
6956 0 : aError = ::rtl::OUString(Buffer,nPos,RTL_TEXTENCODING_UTF8);
6957 0 : break;
6958 : }
6959 : else
6960 : {
6961 0 : *s++ = ch;
6962 0 : if (++nPos == BUFFERSIZE)
6963 : {
6964 0 : ::rtl::OString aBuf(Buffer);
6965 0 : delete[] Buffer;
6966 0 : BUFFERSIZE *=2;
6967 0 : Buffer = new sal_Char[BUFFERSIZE];
6968 0 : for(sal_Int32 i=0;i<aBuf.getLength();++i,++Buffer)
6969 0 : *Buffer = aBuf.getStr()[i];
6970 0 : s = &Buffer[nPos];
6971 : }
6972 : }
6973 : }
6974 0 : m_sErrorMessage += aError;
6975 0 : delete[] Buffer;
6976 0 : Buffer = NULL;
6977 : }
6978 0 : IN_SQLyyerror = false;
6979 0 : YY_FLUSH_BUFFER;
6980 : }
6981 :
6982 : //------------------------------------------------------------------------------
6983 2 : void OSQLScanner::prepareScan(const ::rtl::OUString & rNewStatement, const IParseContext* pContext, sal_Bool bInternational)
6984 : {
6985 2 : YY_FLUSH_BUFFER;
6986 2 : BEGIN(m_nRule);
6987 :
6988 2 : m_sErrorMessage = ::rtl::OUString();
6989 2 : m_sStatement = ::rtl::OUStringToOString(rNewStatement, RTL_TEXTENCODING_UTF8);
6990 2 : m_nCurrentPos = 0;
6991 2 : m_bInternational = bInternational;
6992 2 : m_pContext = pContext;
6993 2 : }
6994 :
6995 : //------------------------------------------------------------------------------
6996 117 : sal_Int32 OSQLScanner::SQLyygetc(void)
6997 : {
6998 117 : sal_Int32 nPos = (m_nCurrentPos >= m_sStatement.getLength()) ? EOF : m_sStatement.getStr()[m_nCurrentPos];
6999 117 : m_nCurrentPos++;
7000 117 : return nPos;
7001 : }
7002 :
7003 : //------------------------------------------------------------------------------
7004 0 : IParseContext::InternationalKeyCode OSQLScanner::getInternationalTokenID(const sal_Char* sToken) const
7005 : {
7006 : OSL_ENSURE(m_pContext, "OSQLScanner::getInternationalTokenID: No Context set");
7007 0 : return (m_bInternational) ? m_pContext->getIntlKeyCode(::rtl::OString(sToken) ) : IParseContext::KEY_NONE;
7008 : }
7009 : // -------------------------------------------------------------------------
7010 0 : sal_Int32 OSQLScanner::GetGERRule() const { return PREDICATE_GER; }
7011 0 : sal_Int32 OSQLScanner::GetENGRule() const { return PREDICATE_ENG; }
7012 2 : sal_Int32 OSQLScanner::GetSQLRule() const { return SQL; }
7013 0 : sal_Int32 OSQLScanner::GetDATERule() const { return DATE; }
7014 0 : sal_Int32 OSQLScanner::GetSTRINGRule() const { return STRING; }
7015 : // -------------------------------------------------------------------------
7016 1 : void OSQLScanner::setScanner(sal_Bool _bNull)
7017 : {
7018 1 : xxx_pGLOBAL_SQLSCAN = _bNull ? NULL : this;
7019 1 : }
7020 : // -------------------------------------------------------------------------
7021 17 : sal_Int32 OSQLScanner::SQLlex()
7022 : {
7023 17 : return SQLyylex();
7024 18 : }
7025 :
7026 : #if defined __SUNPRO_CC
7027 : #pragma enable_warn
7028 : #elif defined _MSC_VER
7029 : #pragma warning(pop)
7030 : #endif
7031 :
|