xref: /aosp_15_r20/external/libpcap/scanner.c (revision 8b26181f966a6af5cf6981a6f474313de533bb28)
1 #line 2 "scanner.c"
2 /* Must come first for _LARGE_FILE_API on AIX. */
3 #ifdef HAVE_CONFIG_H
4 #include <config.h>
5 #endif
6 
7 /*
8  * Must come first to avoid warnings on Windows.
9  *
10  * Flex-generated scanners may only include <inttypes.h> if __STDC_VERSION__
11  * is defined with a value >= 199901, meaning "full C99", and MSVC may not
12  * define it with that value, because it isn't 100% C99-compliant, even
13  * though it has an <inttypes.h> capable of defining everything the Flex
14  * scanner needs.
15  *
16  * We, however, will include it if we know we have an MSVC version that has
17  * it; this means that we may define the INTn_MAX and UINTn_MAX values in
18  * scanner.c, and then include <stdint.h>, which may define them differently
19  * (same value, but different string of characters), causing compiler warnings.
20  *
21  * If we include it here, and they're defined, that'll prevent scanner.c
22  * from defining them.  So we include <pcap/pcap-inttypes.h>, to get
23  * <inttypes.h> if we have it.
24  */
25 #include <pcap/pcap-inttypes.h>
26 
27 /*
28  * grammar.h requires gencode.h and sometimes breaks in a polluted namespace
29  * (see ftmacros.h), so include it early.
30  */
31 #include "gencode.h"
32 #include "grammar.h"
33 
34 #include "diag-control.h"
35 
36 #line 37 "scanner.c"
37 
38 #define  YY_INT_ALIGNED short int
39 
40 /* A lexical scanner generated by flex */
41 
42 #define FLEX_SCANNER
43 #define YY_FLEX_MAJOR_VERSION 2
44 #define YY_FLEX_MINOR_VERSION 6
45 #define YY_FLEX_SUBMINOR_VERSION 4
46 #if YY_FLEX_SUBMINOR_VERSION > 0
47 #define FLEX_BETA
48 #endif
49 
50 #ifdef yy_create_buffer
51 #define pcap__create_buffer_ALREADY_DEFINED
52 #else
53 #define yy_create_buffer pcap__create_buffer
54 #endif
55 
56 #ifdef yy_delete_buffer
57 #define pcap__delete_buffer_ALREADY_DEFINED
58 #else
59 #define yy_delete_buffer pcap__delete_buffer
60 #endif
61 
62 #ifdef yy_scan_buffer
63 #define pcap__scan_buffer_ALREADY_DEFINED
64 #else
65 #define yy_scan_buffer pcap__scan_buffer
66 #endif
67 
68 #ifdef yy_scan_string
69 #define pcap__scan_string_ALREADY_DEFINED
70 #else
71 #define yy_scan_string pcap__scan_string
72 #endif
73 
74 #ifdef yy_scan_bytes
75 #define pcap__scan_bytes_ALREADY_DEFINED
76 #else
77 #define yy_scan_bytes pcap__scan_bytes
78 #endif
79 
80 #ifdef yy_init_buffer
81 #define pcap__init_buffer_ALREADY_DEFINED
82 #else
83 #define yy_init_buffer pcap__init_buffer
84 #endif
85 
86 #ifdef yy_flush_buffer
87 #define pcap__flush_buffer_ALREADY_DEFINED
88 #else
89 #define yy_flush_buffer pcap__flush_buffer
90 #endif
91 
92 #ifdef yy_load_buffer_state
93 #define pcap__load_buffer_state_ALREADY_DEFINED
94 #else
95 #define yy_load_buffer_state pcap__load_buffer_state
96 #endif
97 
98 #ifdef yy_switch_to_buffer
99 #define pcap__switch_to_buffer_ALREADY_DEFINED
100 #else
101 #define yy_switch_to_buffer pcap__switch_to_buffer
102 #endif
103 
104 #ifdef yypush_buffer_state
105 #define pcap_push_buffer_state_ALREADY_DEFINED
106 #else
107 #define yypush_buffer_state pcap_push_buffer_state
108 #endif
109 
110 #ifdef yypop_buffer_state
111 #define pcap_pop_buffer_state_ALREADY_DEFINED
112 #else
113 #define yypop_buffer_state pcap_pop_buffer_state
114 #endif
115 
116 #ifdef yyensure_buffer_stack
117 #define pcap_ensure_buffer_stack_ALREADY_DEFINED
118 #else
119 #define yyensure_buffer_stack pcap_ensure_buffer_stack
120 #endif
121 
122 #ifdef yylex
123 #define pcap_lex_ALREADY_DEFINED
124 #else
125 #define yylex pcap_lex
126 #endif
127 
128 #ifdef yyrestart
129 #define pcap_restart_ALREADY_DEFINED
130 #else
131 #define yyrestart pcap_restart
132 #endif
133 
134 #ifdef yylex_init
135 #define pcap_lex_init_ALREADY_DEFINED
136 #else
137 #define yylex_init pcap_lex_init
138 #endif
139 
140 #ifdef yylex_init_extra
141 #define pcap_lex_init_extra_ALREADY_DEFINED
142 #else
143 #define yylex_init_extra pcap_lex_init_extra
144 #endif
145 
146 #ifdef yylex_destroy
147 #define pcap_lex_destroy_ALREADY_DEFINED
148 #else
149 #define yylex_destroy pcap_lex_destroy
150 #endif
151 
152 #ifdef yyget_debug
153 #define pcap_get_debug_ALREADY_DEFINED
154 #else
155 #define yyget_debug pcap_get_debug
156 #endif
157 
158 #ifdef yyset_debug
159 #define pcap_set_debug_ALREADY_DEFINED
160 #else
161 #define yyset_debug pcap_set_debug
162 #endif
163 
164 #ifdef yyget_extra
165 #define pcap_get_extra_ALREADY_DEFINED
166 #else
167 #define yyget_extra pcap_get_extra
168 #endif
169 
170 #ifdef yyset_extra
171 #define pcap_set_extra_ALREADY_DEFINED
172 #else
173 #define yyset_extra pcap_set_extra
174 #endif
175 
176 #ifdef yyget_in
177 #define pcap_get_in_ALREADY_DEFINED
178 #else
179 #define yyget_in pcap_get_in
180 #endif
181 
182 #ifdef yyset_in
183 #define pcap_set_in_ALREADY_DEFINED
184 #else
185 #define yyset_in pcap_set_in
186 #endif
187 
188 #ifdef yyget_out
189 #define pcap_get_out_ALREADY_DEFINED
190 #else
191 #define yyget_out pcap_get_out
192 #endif
193 
194 #ifdef yyset_out
195 #define pcap_set_out_ALREADY_DEFINED
196 #else
197 #define yyset_out pcap_set_out
198 #endif
199 
200 #ifdef yyget_leng
201 #define pcap_get_leng_ALREADY_DEFINED
202 #else
203 #define yyget_leng pcap_get_leng
204 #endif
205 
206 #ifdef yyget_text
207 #define pcap_get_text_ALREADY_DEFINED
208 #else
209 #define yyget_text pcap_get_text
210 #endif
211 
212 #ifdef yyget_lineno
213 #define pcap_get_lineno_ALREADY_DEFINED
214 #else
215 #define yyget_lineno pcap_get_lineno
216 #endif
217 
218 #ifdef yyset_lineno
219 #define pcap_set_lineno_ALREADY_DEFINED
220 #else
221 #define yyset_lineno pcap_set_lineno
222 #endif
223 
224 #ifdef yyget_column
225 #define pcap_get_column_ALREADY_DEFINED
226 #else
227 #define yyget_column pcap_get_column
228 #endif
229 
230 #ifdef yyset_column
231 #define pcap_set_column_ALREADY_DEFINED
232 #else
233 #define yyset_column pcap_set_column
234 #endif
235 
236 #ifdef yywrap
237 #define pcap_wrap_ALREADY_DEFINED
238 #else
239 #define yywrap pcap_wrap
240 #endif
241 
242 #ifdef yyget_lval
243 #define pcap_get_lval_ALREADY_DEFINED
244 #else
245 #define yyget_lval pcap_get_lval
246 #endif
247 
248 #ifdef yyset_lval
249 #define pcap_set_lval_ALREADY_DEFINED
250 #else
251 #define yyset_lval pcap_set_lval
252 #endif
253 
254 #ifdef yyalloc
255 #define pcap_alloc_ALREADY_DEFINED
256 #else
257 #define yyalloc pcap_alloc
258 #endif
259 
260 #ifdef yyrealloc
261 #define pcap_realloc_ALREADY_DEFINED
262 #else
263 #define yyrealloc pcap_realloc
264 #endif
265 
266 #ifdef yyfree
267 #define pcap_free_ALREADY_DEFINED
268 #else
269 #define yyfree pcap_free
270 #endif
271 
272 /* First, we deal with  platform-specific or compiler-specific issues. */
273 
274 /* begin standard C headers. */
275 #include <stdio.h>
276 #include <string.h>
277 #include <errno.h>
278 #include <stdlib.h>
279 
280 /* end standard C headers. */
281 
282 /* flex integer type definitions */
283 
284 #ifndef FLEXINT_H
285 #define FLEXINT_H
286 
287 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
288 
289 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
290 
291 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
292  * if you want the limit (max/min) macros for int types.
293  */
294 #ifndef __STDC_LIMIT_MACROS
295 #define __STDC_LIMIT_MACROS 1
296 #endif
297 
298 #include <inttypes.h>
299 typedef int8_t flex_int8_t;
300 typedef uint8_t flex_uint8_t;
301 typedef int16_t flex_int16_t;
302 typedef uint16_t flex_uint16_t;
303 typedef int32_t flex_int32_t;
304 typedef uint32_t flex_uint32_t;
305 #else
306 typedef signed char flex_int8_t;
307 typedef short int flex_int16_t;
308 typedef int flex_int32_t;
309 typedef unsigned char flex_uint8_t;
310 typedef unsigned short int flex_uint16_t;
311 typedef unsigned int flex_uint32_t;
312 
313 /* Limits of integral types. */
314 #ifndef INT8_MIN
315 #define INT8_MIN               (-128)
316 #endif
317 #ifndef INT16_MIN
318 #define INT16_MIN              (-32767-1)
319 #endif
320 #ifndef INT32_MIN
321 #define INT32_MIN              (-2147483647-1)
322 #endif
323 #ifndef INT8_MAX
324 #define INT8_MAX               (127)
325 #endif
326 #ifndef INT16_MAX
327 #define INT16_MAX              (32767)
328 #endif
329 #ifndef INT32_MAX
330 #define INT32_MAX              (2147483647)
331 #endif
332 #ifndef UINT8_MAX
333 #define UINT8_MAX              (255U)
334 #endif
335 #ifndef UINT16_MAX
336 #define UINT16_MAX             (65535U)
337 #endif
338 #ifndef UINT32_MAX
339 #define UINT32_MAX             (4294967295U)
340 #endif
341 
342 #ifndef SIZE_MAX
343 #define SIZE_MAX               (~(size_t)0)
344 #endif
345 
346 #endif /* ! C99 */
347 
348 #endif /* ! FLEXINT_H */
349 
350 /* begin standard C++ headers. */
351 
352 /* TODO: this is always defined, so inline it */
353 #define yyconst const
354 
355 #if defined(__GNUC__) && __GNUC__ >= 3
356 #define yynoreturn __attribute__((__noreturn__))
357 #else
358 #define yynoreturn
359 #endif
360 
361 /* Returned upon end-of-file. */
362 #define YY_NULL 0
363 
364 /* Promotes a possibly negative, possibly signed char to an
365  *   integer in range [0..255] for use as an array index.
366  */
367 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
368 
369 /* An opaque pointer. */
370 #ifndef YY_TYPEDEF_YY_SCANNER_T
371 #define YY_TYPEDEF_YY_SCANNER_T
372 typedef void* yyscan_t;
373 #endif
374 
375 /* For convenience, these vars (plus the bison vars far below)
376    are macros in the reentrant scanner. */
377 #define yyin yyg->yyin_r
378 #define yyout yyg->yyout_r
379 #define yyextra yyg->yyextra_r
380 #define yyleng yyg->yyleng_r
381 #define yytext yyg->yytext_r
382 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
383 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
384 #define yy_flex_debug yyg->yy_flex_debug_r
385 
386 /* Enter a start condition.  This macro really ought to take a parameter,
387  * but we do it the disgusting crufty way forced on us by the ()-less
388  * definition of BEGIN.
389  */
390 #define BEGIN yyg->yy_start = 1 + 2 *
391 /* Translate the current start state into a value that can be later handed
392  * to BEGIN to return to the state.  The YYSTATE alias is for lex
393  * compatibility.
394  */
395 #define YY_START ((yyg->yy_start - 1) / 2)
396 #define YYSTATE YY_START
397 /* Action number for EOF rule of a given start state. */
398 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
399 /* Special action meaning "start processing a new file". */
400 #define YY_NEW_FILE yyrestart( yyin , yyscanner )
401 #define YY_END_OF_BUFFER_CHAR 0
402 
403 /* Size of default input buffer. */
404 #ifndef YY_BUF_SIZE
405 #ifdef __ia64__
406 /* On IA-64, the buffer size is 16k, not 8k.
407  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
408  * Ditto for the __ia64__ case accordingly.
409  */
410 #define YY_BUF_SIZE 32768
411 #else
412 #define YY_BUF_SIZE 16384
413 #endif /* __ia64__ */
414 #endif
415 
416 /* The state buf must be large enough to hold one state per character in the main buffer.
417  */
418 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
419 
420 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
421 #define YY_TYPEDEF_YY_BUFFER_STATE
422 typedef struct yy_buffer_state *YY_BUFFER_STATE;
423 #endif
424 
425 #ifndef YY_TYPEDEF_YY_SIZE_T
426 #define YY_TYPEDEF_YY_SIZE_T
427 typedef size_t yy_size_t;
428 #endif
429 
430 #define EOB_ACT_CONTINUE_SCAN 0
431 #define EOB_ACT_END_OF_FILE 1
432 #define EOB_ACT_LAST_MATCH 2
433 
434     #define YY_LESS_LINENO(n)
435     #define YY_LINENO_REWIND_TO(ptr)
436 
437 /* Return all but the first "n" matched characters back to the input stream. */
438 #define yyless(n) \
439 	do \
440 		{ \
441 		/* Undo effects of setting up yytext. */ \
442         int yyless_macro_arg = (n); \
443         YY_LESS_LINENO(yyless_macro_arg);\
444 		*yy_cp = yyg->yy_hold_char; \
445 		YY_RESTORE_YY_MORE_OFFSET \
446 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
447 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
448 		} \
449 	while ( 0 )
450 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
451 
452 #ifndef YY_STRUCT_YY_BUFFER_STATE
453 #define YY_STRUCT_YY_BUFFER_STATE
454 struct yy_buffer_state
455 	{
456 	FILE *yy_input_file;
457 
458 	char *yy_ch_buf;		/* input buffer */
459 	char *yy_buf_pos;		/* current position in input buffer */
460 
461 	/* Size of input buffer in bytes, not including room for EOB
462 	 * characters.
463 	 */
464 	int yy_buf_size;
465 
466 	/* Number of characters read into yy_ch_buf, not including EOB
467 	 * characters.
468 	 */
469 	int yy_n_chars;
470 
471 	/* Whether we "own" the buffer - i.e., we know we created it,
472 	 * and can realloc() it to grow it, and should free() it to
473 	 * delete it.
474 	 */
475 	int yy_is_our_buffer;
476 
477 	/* Whether this is an "interactive" input source; if so, and
478 	 * if we're using stdio for input, then we want to use getc()
479 	 * instead of fread(), to make sure we stop fetching input after
480 	 * each newline.
481 	 */
482 	int yy_is_interactive;
483 
484 	/* Whether we're considered to be at the beginning of a line.
485 	 * If so, '^' rules will be active on the next match, otherwise
486 	 * not.
487 	 */
488 	int yy_at_bol;
489 
490     int yy_bs_lineno; /**< The line count. */
491     int yy_bs_column; /**< The column count. */
492 
493 	/* Whether to try to fill the input buffer when we reach the
494 	 * end of it.
495 	 */
496 	int yy_fill_buffer;
497 
498 	int yy_buffer_status;
499 
500 #define YY_BUFFER_NEW 0
501 #define YY_BUFFER_NORMAL 1
502 	/* When an EOF's been seen but there's still some text to process
503 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
504 	 * shouldn't try reading from the input source any more.  We might
505 	 * still have a bunch of tokens to match, though, because of
506 	 * possible backing-up.
507 	 *
508 	 * When we actually see the EOF, we change the status to "new"
509 	 * (via yyrestart()), so that the user can continue scanning by
510 	 * just pointing yyin at a new input file.
511 	 */
512 #define YY_BUFFER_EOF_PENDING 2
513 
514 	};
515 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
516 
517 /* We provide macros for accessing buffer states in case in the
518  * future we want to put the buffer states in a more general
519  * "scanner state".
520  *
521  * Returns the top of the stack, or NULL.
522  */
523 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
524                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
525                           : NULL)
526 /* Same as previous macro, but useful when we know that the buffer stack is not
527  * NULL or when we need an lvalue. For internal use only.
528  */
529 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
530 
531 void yyrestart ( FILE *input_file , yyscan_t yyscanner );
532 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
533 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
534 void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
535 void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
536 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
537 void yypop_buffer_state ( yyscan_t yyscanner );
538 
539 static void yyensure_buffer_stack ( yyscan_t yyscanner );
540 static void yy_load_buffer_state ( yyscan_t yyscanner );
541 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
542 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
543 
544 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
545 YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
546 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
547 
548 void *yyalloc ( yy_size_t , yyscan_t yyscanner );
549 void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
550 void yyfree ( void * , yyscan_t yyscanner );
551 
552 #define yy_new_buffer yy_create_buffer
553 #define yy_set_interactive(is_interactive) \
554 	{ \
555 	if ( ! YY_CURRENT_BUFFER ){ \
556         yyensure_buffer_stack (yyscanner); \
557 		YY_CURRENT_BUFFER_LVALUE =    \
558             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
559 	} \
560 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
561 	}
562 #define yy_set_bol(at_bol) \
563 	{ \
564 	if ( ! YY_CURRENT_BUFFER ){\
565         yyensure_buffer_stack (yyscanner); \
566 		YY_CURRENT_BUFFER_LVALUE =    \
567             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
568 	} \
569 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
570 	}
571 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
572 
573 /* Begin user sect3 */
574 
575 #define pcap_wrap(yyscanner) (/*CONSTCOND*/1)
576 #define YY_SKIP_YYWRAP
577 typedef flex_uint8_t YY_CHAR;
578 
579 typedef int yy_state_type;
580 
581 #define yytext_ptr yytext_r
582 
583 static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
584 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
585 static int yy_get_next_buffer ( yyscan_t yyscanner );
586 static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
587 
588 /* Done after the current pattern has been matched and before the
589  * corresponding action - sets up yytext.
590  */
591 #define YY_DO_BEFORE_ACTION \
592 	yyg->yytext_ptr = yy_bp; \
593 	yyleng = (int) (yy_cp - yy_bp); \
594 	yyg->yy_hold_char = *yy_cp; \
595 	*yy_cp = '\0'; \
596 	yyg->yy_c_buf_p = yy_cp;
597 #define YY_NUM_RULES 188
598 #define YY_END_OF_BUFFER 189
599 /* This struct is not used in this scanner,
600    but its presence is necessary. */
601 struct yy_trans_info
602 	{
603 	flex_int32_t yy_verify;
604 	flex_int32_t yy_nxt;
605 	};
606 static const flex_int16_t yy_accept[1785] =
607     {   0,
608         0,    0,  189,  187,  114,  114,  115,  187,  115,  115,
609       124,  124,  115,  115,  115,  115,  185,  185,  187,  185,
610       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
611       185,  185,  185,  185,  185,  185,  185,  185,  185,  115,
612       118,  122,   67,    0,  185,  124,    0,  185,  185,  185,
613         0,  126,  120,  117,  119,  116,  121,  185,  186,  185,
614       185,  185,   20,  185,  185,  185,  185,  185,  185,  185,
615       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
616       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
617       185,  185,  185,  185,  185,  185,    7,  185,   34,   35,
618 
619       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
620       185,  185,  185,  185,   93,  185,   68,  185,  185,  185,
621       185,  185,  185,   60,  185,  185,  185,  185,   87,  185,
622       185,  185,  185,  185,  185,   61,  185,    4,  185,  185,
623       185,  185,  185,  185,  185,   68,  122,  185,  125,  125,
624       185,  124,  185,    0,  126,  124,  126,  126,  126,  185,
625       185,  185,   67,    5,  185,   82,  185,  185,  185,  185,
626       185,  185,  185,   55,  108,    1,    0,  185,   21,  185,
627       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
628       185,  185,  185,  185,  185,  185,  185,  185,   36,  185,
629 
630       185,   18,   43,    0,  185,   29,  185,   25,   70,  185,
631       185,   80,   37,  185,  101,  185,  185,  185,  185,  102,
632       185,   46,   69,   83,  107,  185,   14,  185,    3,  185,
633       185,  185,  185,  185,   95,  185,  185,   26,  185,  106,
634       185,  109,   38,    2,  185,   42,  185,    9,  185,   10,
635        90,  185,   89,  185,  185,    0,  185,  185,  125,  185,
636       185,  185,  185,  124,    0,  185,    0,  127,  126,  126,
637         0,  126,    0,  126,    0,  126,    0,   23,  185,  185,
638       185,  185,   64,   16,   41,  185,   39,  185,  185,  185,
639        30,  185,   99,  185,  185,  185,  112,  185,  185,  105,
640 
641       111,   45,  110,  113,   11,  185,  185,   12,   13,  185,
642       185,  185,   32,   79,  185,   62,    3,  100,   47,  185,
643       185,  185,   75,  185,  185,  185,  185,   48,  185,  185,
644        40,  185,    6,  185,   94,  185,    8,   96,  185,  185,
645         0,  185,   53,   74,   15,  185,  125,  125,  185,  125,
646       125,  125,  185,  124,  185,    0,  126,  185,    0,    0,
647       126,    0,  126,  127,  126,    0,    0,    0,    0,  126,
648       126,  126,  126,  126,    0,  185,   56,   57,   58,   59,
649       185,   22,  185,  185,  185,  185,   31,  185,  185,  185,
650       103,  104,    0,   19,  185,  185,  185,  185,   88,  185,
651 
652        33,  185,   81,   28,   27,  185,  185,   84,  185,  185,
653       185,   50,   17,  185,  185,  185,  185,  185,  185,  185,
654       185,  185,  185,  185,  185,  185,  185,    0,  185,  185,
655       125,  185,  185,  185,  185,  125,  125,  185,  124,  185,
656         0,    0,  126,  126,  126,    0,    0,  127,  126,  126,
657       127,  126,    0,    0,  126,  126,  126,  126,  126,    0,
658         0,    0,    0,  126,  126,    0,  126,    0,  126,    0,
659        98,  185,  185,  185,   24,  185,  185,   78,  185,  185,
660       185,  185,  185,  185,  185,  185,  185,    0,  185,  185,
661       185,  185,  185,  185,   70,  185,  185,  185,  185,  185,
662 
663       185,  185,   76,   77,  185,   97,  185,  185,  185,  185,
664       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
665       125,  125,  185,  125,  125,  125,  125,  185,  124,  185,
666         0,  126,  126,    0,  126,    0,    0,  126,    0,  126,
667       127,  126,    0,    0,    0,  126,  126,    0,  126,  127,
668       126,    0,    0,    0,    0,    0,    0,    0,  126,  126,
669       126,  126,  126,    0,  185,  185,  185,  185,   52,   63,
670       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
671       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
672       185,  185,  185,  185,   73,   71,  185,  185,   44,   85,
673 
674        86,  185,  185,  185,  185,   54,  181,  184,  183,  177,
675       185,  179,  178,  182,  185,    0,  185,  185,  125,  185,
676       185,  185,  125,  185,  124,  185,    0,    0,  126,  126,
677       126,  126,  126,  126,    0,    0,  127,  126,  126,  126,
678         0,    0,  126,  126,  126,  126,  126,    0,    0,    0,
679         0,    0,    0,    0,  126,  126,  126,  126,  126,    0,
680         0,    0,    0,    0,  126,  126,    0,  126,    0,  126,
681         0,  185,  185,  185,  185,  185,  185,  185,  185,  185,
682       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
683       185,  185,  185,  185,  185,  185,  185,  185,  185,  129,
684 
685       128,  185,  185,   72,  185,  185,  185,  180,  176,  185,
686       185,  125,  125,  125,  125,  185,  124,  185,    0,  126,
687       126,    0,  126,  126,    0,  126,    0,    0,  126,    0,
688       126,  127,  126,    0,    0,    0,  126,  126,    0,  126,
689       127,  126,    0,    0,    0,    0,    0,  126,  126,    0,
690       126,  127,  126,    0,  126,  126,    0,    0,    0,    0,
691         0,    0,    0,  126,  126,  126,  126,  126,    0,   65,
692       185,   55,  134,  141,  185,  185,  185,  185,  185,  185,
693       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
694       185,  185,  185,  185,  185,  185,  146,  145,  185,   66,
695 
696        49,  185,  185,    0,  185,  185,  185,  185,  185,  124,
697       185,    0,    0,  126,  126,  126,  126,  126,  126,  126,
698       126,  126,    0,    0,  127,  126,  126,  126,    0,    0,
699       126,  126,  126,  126,  126,    0,    0,    0,    0,    0,
700         0,    0,  126,  126,  126,  126,  126,    0,  126,  126,
701         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
702       126,  126,    0,    0,    0,    0,    0,    0,  126,  126,
703         0,  126,    0,  126,    0,   91,  185,  185,  185,  185,
704       185,  185,  185,  185,  185,  185,  185,  185,  151,  185,
705       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
706 
707       185,   51,  123,  123,  125,  125,  185,  124,  185,    0,
708       126,  126,    0,  126,  126,    0,  126,  126,    0,  126,
709         0,  123,  126,    0,  126,  127,  126,    0,    0,    0,
710       126,  126,    0,  126,  127,  126,    0,    0,    0,    0,
711         0,  126,  126,    0,  126,  127,  126,    0,    0,    0,
712         0,    0,    0,  126,  126,    0,  126,  127,  126,    0,
713       126,  126,  126,    0,    0,    0,    0,    0,    0,    0,
714       126,  126,  126,  126,  126,    0,  185,  185,  185,  185,
715       185,  185,  185,  185,  139,  185,  185,  185,  185,  185,
716       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
717 
718        92,  123,  123,  125,  185,  123,  123,    0,    0,  126,
719       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
720       126,    0,  123,  127,  126,  126,  126,    0,    0,  126,
721       126,  126,  126,  126,    0,    0,    0,    0,    0,    0,
722         0,  126,  126,  126,  126,  126,    0,  126,  126,    0,
723         0,    0,    0,    0,    0,    0,  126,  126,  126,  126,
724       126,    0,  126,  126,  126,    0,    0,    0,    0,    0,
725         0,    0,  126,  126,  126,  126,  126,    0,    0,    0,
726         0,    0,    0,  126,  126,    0,  126,    0,  126,    0,
727       185,  185,  185,  143,  185,  185,  185,  185,  185,  185,
728 
729       185,  131,  185,  185,  185,  185,  185,  185,  185,  185,
730       185,  185,  185,  185,  185,  185,  125,  185,  124,    0,
731       126,  126,    0,  126,  126,    0,  126,  126,    0,  126,
732       126,    0,  126,    0,    0,    0,  126,    0,    0,  126,
733       127,  126,    0,    0,    0,  126,  126,    0,  126,  127,
734       126,    0,    0,    0,    0,    0,  126,  126,    0,  126,
735       127,  126,    0,    0,    0,    0,    0,    0,  126,  126,
736         0,  126,  127,  126,    0,    0,    0,    0,    0,    0,
737       126,  126,    0,  126,  127,  126,    0,  126,  126,  126,
738         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
739 
740       126,  126,    0,  185,  185,  185,  185,  133,  185,  185,
741       185,  137,  185,  185,  185,  185,  185,  185,  185,  185,
742       185,  185,  185,  185,  185,  185,  185,  185,  185,  123,
743         0,    0,  126,  126,  126,  126,  126,  126,  126,  126,
744       126,  126,  126,  126,  126,  126,  126,    0,    0,    0,
745       127,    0,    0,  126,    0,    0,  126,  126,  126,    0,
746         0,    0,    0,    0,    0,    0,  126,  126,  126,    0,
747       126,  126,    0,    0,    0,    0,    0,    0,    0,  126,
748       126,  126,    0,  126,  126,  126,    0,    0,    0,    0,
749         0,    0,    0,  126,  126,  126,    0,  126,  126,  126,
750 
751         0,    0,    0,    0,    0,    0,    0,  126,  126,  126,
752         0,    0,    0,    0,    0,    0,  126,  126,    0,  126,
753         0,  126,    0,  130,  142,  144,  138,  185,  185,  185,
754       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
755       185,  185,  160,  185,  185,  185,  185,    0,    0,  126,
756         0,  126,    0,  126,  126,    0,  126,  126,    0,  126,
757       126,    0,  126,  126,    0,  126,    0,    0,    0,    0,
758       126,  126,    0,  126,    0,    0,  126,  126,  126,    0,
759         0,    0,    0,  126,  126,  126,    0,    0,    0,    0,
760         0,  126,  126,  126,    0,    0,    0,    0,    0,  126,
761 
762       126,  126,    0,    0,    0,    0,    0,  126,  126,  126,
763       126,  126,  126,    0,    0,    0,    0,    0,    0,    0,
764       126,  126,  126,    0,  185,  185,  185,  185,  185,  185,
765       185,  152,  185,  185,  185,  185,  185,  185,  185,  185,
766       185,  185,  185,  185,  185,    0,    0,    0,  126,  126,
767       126,  126,  126,  126,    0,    0,    0,    0,  126,  126,
768         0,    0,    0,    0,  126,  126,  126,    0,    0,    0,
769         0,    0,  126,  126,  126,  126,    0,    0,    0,    0,
770         0,  126,  126,  126,  126,    0,    0,    0,    0,    0,
771       126,  126,  126,  126,    0,    0,    0,    0,    0,  126,
772 
773         0,    0,    0,    0,    0,  126,  126,  126,  185,  185,
774       185,  140,  185,  185,  185,  185,  185,  185,  185,  185,
775       185,  185,  185,  185,  185,  185,  185,  185,  185,  126,
776       126,  126,  126,  126,  126,  126,  126,    0,    0,    0,
777         0,  126,  126,    0,    0,  126,    0,    0,    0,  126,
778         0,    0,    0,  126,    0,    0,    0,  126,    0,    0,
779         0,  126,  126,  126,  126,    0,    0,    0,    0,    0,
780       126,  135,  185,  132,  185,  185,  185,  185,  185,  185,
781       185,  185,  185,  185,  185,  185,  185,  185,  161,  185,
782       185,  126,    0,    0,  126,  126,    0,  126,  126,  126,
783 
784         0,  126,  126,  126,    0,  126,  126,  126,    0,  126,
785       126,  126,    0,    0,    0,    0,  126,  136,  185,  185,
786       185,  185,  185,  185,  185,  185,  185,  185,  185,  148,
787       185,  157,  185,  149,  126,  126,    0,    0,    0,    0,
788         0,    0,  126,  126,  126,    0,  185,  185,  185,  185,
789       185,  185,  185,  185,  185,  185,  185,  185,  185,  156,
790         0,  126,  126,  126,  126,  126,    0,  172,  185,  185,
791       185,  185,  185,  185,  185,  185,  159,  185,  185,  185,
792       126,  126,  171,  185,  185,  185,  185,  185,  185,  185,
793       158,  185,  185,  185,  185,  185,  185,  185,  185,  185,
794 
795       185,  185,  185,  185,  150,  185,  185,  185,  185,  185,
796       185,  185,  185,  185,  185,  185,  147,  185,  185,  170,
797       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
798       185,  185,  169,  185,  185,  185,  185,  185,  175,  185,
799       185,  185,  185,  185,  185,  185,  185,  185,  185,  162,
800       185,  185,  185,  185,  185,  155,  185,  185,  173,  185,
801       185,  185,  185,  185,  185,  153,  185,  174,  185,  168,
802       185,  185,  185,  185,  163,  185,  165,  185,  185,  167,
803       164,  154,  166,    0
804     } ;
805 
806 static const YY_CHAR yy_ec[256] =
807     {   0,
808         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
809         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    2,    5,    1,    1,    6,    7,    8,    1,    9,
812         9,    7,    7,    1,   10,   11,    7,   12,   13,   14,
813        15,   16,   17,   18,   17,   17,   17,   19,    1,   20,
814        21,   22,    1,    1,   23,   23,   23,   23,   23,   23,
815        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
816        24,   24,   24,   24,   24,   24,   24,   25,   24,   24,
817         7,   26,    7,    7,   27,    1,   28,   29,   30,   31,
818 
819        32,   33,   34,   35,   36,   24,   37,   38,   39,   40,
820        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
821        51,   24,    1,   52,    1,    1,    1,    1,    1,    1,
822         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
823         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829 
830         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
831         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835         1,    1,    1,    1,    1
836     } ;
837 
838 static const YY_CHAR yy_meta[53] =
839     {   0,
840         1,    2,    2,    1,    2,    1,    1,    1,    2,    3,
841         4,    5,    5,    5,    5,    5,    5,    5,    6,    1,
842         1,    1,    7,    3,    8,    1,    3,    7,    7,    7,
843         7,    7,    7,    3,    3,    3,    3,    3,    3,    3,
844         3,    3,    3,    3,    3,    3,    3,    3,    3,    8,
845         3,    1
846     } ;
847 
848 static const flex_int16_t yy_base[2245] =
849     {   0,
850         0,    0, 6541, 7736, 7736, 7736, 6491,    0, 7736, 6499,
851        43,   70, 6478,   43, 6475,   75,  110,  151,    0,   70,
852        85,  102,   67,   61,   77,  105,  113,  155,  158,  170,
853        70,  176,  165,  110,  189,  148, 6459,  184, 6448, 6433,
854      7736,    0, 7736,  225,  247,  270, 6462,  293,    0,  300,
855         0,  322, 7736, 7736, 7736, 7736, 7736,  344,    0, 6433,
856      6430, 6442,    0, 6433, 6419, 6430, 6419, 6405, 6379, 6372,
857      6373, 6370, 6360, 6369, 6349, 6359, 6342,  284, 6349, 6343,
858      6328, 6302, 6298, 6305, 6291, 6296, 6283, 6274,   89,   81,
859      6277,   29,  109, 6263, 6250, 6251,  123,  211,    0,    0,
860 
861        99,  168, 6239, 6218,  204, 6202, 6194, 6183, 6157, 6140,
862      6146, 6135, 6134, 6140,    0, 6147,    0, 6129, 6135, 6129,
863      6130, 6128, 6127,  200, 6134, 6115, 6124, 6095,  131, 6073,
864       327, 6057,  194, 6046, 6049,    0, 6033,    0, 6032, 6026,
865      6017, 6017, 6003, 5991, 6003, 7736, 7736,  363,  386,  180,
866       426,  449,  472, 5996,  479, 5996,  502,  241, 5976, 5944,
867      5927, 5911,    0,    0, 5912,    0, 5921, 5912, 5897, 5873,
868      5874, 5862, 5833, 5827,    0,    0, 5754, 5724,    0, 5703,
869      5674, 5662, 5675, 5673, 5676, 5673, 5656, 5636, 5633, 5646,
870      5629, 5607, 5599, 5581, 5542, 5553, 5538, 5535,    0, 5539,
871 
872      5515,    0,    0, 5476, 5466,    0, 5407,    0, 5404, 5392,
873      5399,    0,    0, 5387,    0, 5395, 5386,  201, 5368,    0,
874      5365, 5361,    0, 5355,    0, 5341,    0, 5322, 5324, 5299,
875      5300, 5286, 5279, 5273,    0, 5271, 5252,    0, 5239,    0,
876      5237,    0,    0,    0, 5214,    0,  223,  240, 5224,    0,
877         0, 5214,    0, 5194, 5195,  541, 5223,  563,  586, 5220,
878       593,  352,  260,  616, 5193,  639, 5191, 5170,  647,  271,
879      5150, 5148,  408,  687,  709, 5147,    0,    0, 5123,  374,
880      5107, 5112,    0,    0,    0, 5108,    0, 5073, 5069, 5053,
881         0, 5052,    0, 5045, 5043, 5034,    0, 5012, 5009,    0,
882 
883         0,    0,    0,    0,  519, 5021, 5011,    0,    0, 5013,
884      4977, 4958,    0,    0, 4954,    0,    0,    0,    0, 4968,
885      4946, 4949,    0, 4942, 4913, 4925, 4899, 4894, 4884, 4835,
886         0, 4816,    0, 4815,    0,  250,    0,    0, 4808, 4803,
887       715, 4813,    0,    0,    0,  753,  776,  272,  816, 4838,
888      4836,  360,  838,  861,  884, 4826,  891,  415, 4793, 4792,
889       913,  526,  936,  958, 4789,    0, 4787,  423,  511,  981,
890      4769, 1004,  294, 4768, 4774, 4743,    0,    0,    0,    0,
891      4720,    0, 4734, 4732, 4714, 4696,    0, 4713, 4707, 4705,
892         0,    0, 1023,  516, 4678, 4667, 4665, 4664,    0, 4653,
893 
894         0, 4631, 4624,    0,    0, 4628, 4610,  515, 4608, 4606,
895        73, 4603,    0, 4592, 4565, 4576, 4552, 4543, 4535, 4514,
896      4515, 4507, 4493, 4493, 4469, 4474, 4472, 1059, 4488, 1081,
897      1104, 4486, 1111,  669,  313, 1134,  324, 1173, 1195, 1218,
898      4476, 4475, 1226,  357, 4456, 4454, 4453, 4434, 1266,  358,
899      4431, 4430,  663,  683, 1306, 4429, 1329,  420, 4387, 4394,
900      4385,  737,    0,  394, 4382,  798, 1369, 1391, 4364,    0,
901         0, 4333, 4330, 4309,    0, 4318, 4270,    0, 4270, 4266,
902      4251, 4264, 4263,  703, 4217,  728, 4217, 1395, 4212, 4200,
903      4202, 4190, 4179, 4197,    0, 4155, 4162, 4134, 4139, 4136,
904 
905      4125, 4092,    0,    0, 4096,    0, 4067, 4058, 4071, 4070,
906      4032, 4024, 4034, 4022, 3999, 3997, 4001, 4006, 4005, 1432,
907      1455,  421, 1495, 3996, 3993,  684, 1518, 1541, 1548, 1571,
908      3983, 1578, 1601, 1623, 3982, 3981, 3969, 1645,  805, 1668,
909      1690, 3948,    0, 1026,    0,  571, 3930, 1033, 1713, 1735,
910      3905,    0,  747,  750, 3895,  601,  813,  832, 1758, 3883,
911      1781,  425, 3882, 3888,  490, 3851, 3848, 3825,    0,    0,
912      3830, 3832, 3817, 3793, 3800, 3770, 3769, 3776, 3766, 3748,
913      3759, 3739, 3739, 3707, 3688,  227, 1020, 3698, 1025, 3688,
914      3692, 3662, 3671, 3649,    0,    0, 3620, 3614,    0,    0,
915 
916         0, 3605, 3600, 3586, 3570,    0,    0,    0,    0,    0,
917      3556,    0,    0,    0, 3524, 1820, 3558, 1842, 1865, 3554,
918      1872,  330, 1894, 1917, 1924, 1947, 3545, 3530, 1955,  426,
919      3527, 1995,  449, 3525, 3503, 3485, 3482, 2035,  498, 3480,
920      1053, 1143, 2075, 3440, 2098,  538, 3438, 3445, 1144, 1145,
921      3424, 3423, 1147, 1149, 2138, 3413, 2161,  564, 3393, 3400,
922      1163,    0, 1248,    0,  624, 3390, 1255, 2201, 2223, 3389,
923         0, 2245,  301,  407,  302,  246, 1136,  522,  700, 3361,
924       539,  478,  538,  661,  569,  455,  790,  650,  682,  406,
925       757, 1017,  834, 1056,  887,  571,  796, 1168, 1242, 3360,
926 
927      3338, 1254, 3333, 3312, 1255, 1125,  590, 3310, 3307, 2282,
928      2305, 2327, 2362,  617, 2385,  627, 2393, 2416, 3302, 2423,
929      2446, 2468, 3300, 2491, 2513, 3298, 3277, 3275, 2535, 1290,
930      2558, 2580, 3252,    0, 1297,    0, 1119, 3234, 1351, 2603,
931      2625, 3231,    0, 1358,    0, 1477,    0, 1399, 3229, 1484,
932      2648, 2670, 3227,    0,  706, 1803, 3217, 1366, 1404, 3214,
933      3202, 1427, 1432, 2693, 3184, 2716,  752, 3183, 3190,  702,
934       854,  769, 1368, 1384, 1493, 1965, 1494,  907,  930,  952,
935      1990,  831, 1386, 1795, 1798,  951, 1966, 1967, 1817,  974,
936       953, 2005,  997, 2034, 1818, 1074, 1126, 1188, 1323, 1265,
937 
938      1322, 2029, 2045, 2757, 1426, 2779, 1448, 2801, 2061, 2824,
939      2847, 3181, 3172, 2855,  812, 3147, 2895,  835, 3127, 2935,
940       861, 3117, 3108, 3061, 3055, 2975,  862, 3054, 1617, 1971,
941      3015, 3020, 3038,  885, 3017, 3010, 2032, 2070, 3007, 2988,
942      2072, 2108, 3078, 2977, 3101,  888, 2976, 2951,  978, 2122,
943      2948, 2135, 2171, 2946, 2945, 2172, 2176, 3141, 2936, 3164,
944       980, 2924, 2911,    0, 2190,    0, 2267,    0, 1503, 2900,
945      2334, 3204, 3226, 2898,    0, 1594, 1595, 1616, 1639, 1819,
946      1662, 1989, 1683, 1685, 1820, 1729, 2200, 2345, 2115, 1706,
947      1728, 2171, 2726, 1886, 2727, 1751, 2262, 2259, 1775, 1887,
948 
949      2218, 1730, 3250, 3272, 3295,  981, 3334, 3357, 3380, 2897,
950      3387, 3410, 3432, 2896, 3455, 3477, 2884, 3500, 3522, 2863,
951      2862, 2860, 3544, 2344, 3567, 3589, 2858,    0, 2351,    0,
952      1556, 2857, 2743, 3612, 3634, 2856,    0, 2877,    0, 2884,
953         0, 1880, 2832, 2917, 3657, 3679, 2831,    0,    0, 2924,
954         0, 2957,    0, 1932, 2829, 2964, 3702, 3724, 2827,    0,
955         0, 1031, 2997, 2834, 2277, 2279, 2815, 2814, 2282, 2462,
956      3747, 2802, 3770, 1033, 2782, 2789, 2344, 2741, 2974, 2343,
957      1888, 2754, 2992, 2009, 3014, 2505, 2135, 3032, 2238, 2461,
958      2793, 2239, 1971, 1774, 3095, 3052, 2298, 2299, 3055, 2091,
959 
960      1813, 2137, 2240, 3811, 3834, 3843, 2439, 2779, 2759, 3860,
961      1035, 2757, 3900, 1055, 2724, 3940, 1082, 2721, 3980, 1083,
962      2701, 2700, 2699, 4019, 4042, 1167, 2698, 2727, 2754, 4082,
963      2678, 4105, 1196, 2676, 2683, 2972, 3053, 2664, 2661, 3075,
964      3112, 4145, 2651, 4168, 1197, 2633, 2616, 1301, 3126, 2614,
965      3136, 3138, 2571, 2569, 3174, 3179, 4208, 2543, 4231, 1305,
966      2541, 2548,    0, 1306, 3193, 2546, 3201, 3220, 2545, 2527,
967      3304, 3305, 4271, 2494, 4294, 1426, 2473, 2479,    0, 3319,
968         0, 3326,    0, 1978, 2451, 3792, 4334, 4356, 2449,    0,
969      3857, 3859, 3871, 2440, 3157, 3075, 2462, 3220, 2508, 2506,
970 
971      2507, 2484, 3784, 2551, 3893, 2573, 2575, 3894, 2596, 3853,
972      2574, 3786, 3787, 2619, 3916, 2620, 4380, 4403, 4412, 2429,
973      4428, 4451, 4473, 2428, 4496, 4518, 2426, 4541, 4563, 2425,
974      4586, 4608, 2424, 2400, 4631, 1431, 2399, 2396, 3962, 4671,
975      2365, 2364,    0, 3969,    0, 2011, 2363, 4002, 4694, 2305,
976      2287,    0, 4009,    0, 4064,    0, 2113, 2268, 4071, 4717,
977      2228, 2225,    0,    0, 4127,    0, 4134,    0, 2401, 2224,
978      4190, 4740, 2204, 2180,    0,    0, 4197,    0, 4253,    0,
979      2731, 2176, 4260, 4763, 2169, 2146,    0,    0, 1490, 4316,
980      2133, 3426, 3471, 2132, 2091, 3516, 3857, 4786, 2081, 4809,
981 
982      1492, 2080, 2069, 2618, 2641, 2663, 2686, 2664, 2795, 4641,
983      2817, 2796, 3895, 3264, 4018, 4642, 4803, 4819, 4019, 4080,
984      4144, 4821, 4823, 3118, 4081, 3050, 3265, 4825, 3266, 4857,
985      2021, 4873, 4896, 1494, 2019, 4936, 1518, 2016, 4976, 1520,
986      2012, 5016, 1547, 1976, 5056, 1548, 1972, 1971, 4323, 5096,
987      1960, 1931,    0, 1930, 3916, 4142, 5119, 1929, 1927, 1933,
988      4205, 4268, 1905, 1881, 4331, 4350, 5142, 1847, 1807, 1813,
989      1549, 4419, 1771, 4427, 4467, 1769, 1768, 4512, 4557, 5165,
990      1718, 1695, 1700,    0, 1575, 4658,  121, 4642, 4666,  145,
991       164, 4833, 4868, 5188,  168,  308,  373,    0, 1619, 4918,
992 
993       401, 4870, 4912,  458,  534, 4931, 4932, 5211,  532,  548,
994       576,    0, 4958,    0, 4998,    0, 3064,  600, 5005, 5234,
995         0,  621,    0, 2894, 2934, 3010, 3013, 3349, 5015, 5050,
996      5026, 4207, 5027, 3403, 4270, 4333, 3350, 4668, 4872, 4853,
997      5051, 4953, 3077, 3404, 5055, 5066, 3351, 5257, 1620,    0,
998       622, 5297,    0,  649, 5320,    0,  650, 5343,    0,  652,
999      5366,    0,  671, 5389,    0,  672, 4933, 5072, 5412,  673,
1000       692,  711,  763,  759, 5279,    0, 3065,  761,  779, 5286,
1001         0, 5434,    0, 3303,  821,  864,    0, 5441,    0, 5448,
1002         0, 3889,  896,  897,    0, 5455,    0, 5462,    0, 3923,
1003 
1004       918,  937,    0, 5469,    0, 5476,    0, 3927,  939,  983,
1005         0, 1640, 5483, 1015, 5091, 5294, 1068, 1120, 5491, 5492,
1006      5532, 1116,    0, 1126, 5296, 3138, 3242, 3426, 3448, 5494,
1007      5495, 3470, 3471, 3493, 3515, 5496, 3516, 5497, 4826, 3560,
1008      5510, 3561, 4851, 5503, 3582, 5555, 1164, 1197,    0,    0,
1009         0,    0,    0,    0, 5577,    0, 3928, 1200, 1201,    0,
1010      5503, 5504, 1237, 1239,    0, 1710, 5584, 1241, 5507, 5508,
1011      1242, 1279,    0,    0, 1817, 5591, 1282, 5599, 5600, 1316,
1012      1317,    0,    0, 1843, 5600, 1378, 5608, 5609, 1379, 1382,
1013         0,    0, 1844, 5614, 1406, 5610, 5611, 1422, 1429,    0,
1014 
1015         0, 5625,    0, 5639,    0, 3929, 1455,    0, 4950, 5635,
1016      4600, 3584, 3606, 5636, 5637, 5655, 5656, 5657, 5658, 5659,
1017      3629, 5660, 3651, 5663, 5662, 5668, 5669, 3628, 3605,    0,
1018      7736,    0,    0,    0,    0,    0,    0, 5677, 5686, 1468,
1019      1505,    0, 7736, 5701,    0, 7736,    0, 5708,    0, 7736,
1020         0, 5716,    0, 7736,    0, 5725,    0, 7736,    0, 5732,
1021         0, 7736,    0, 1895, 5739, 1528, 5747, 5748, 1558, 4436,
1022         0, 3672, 5093, 3673, 3674, 5750, 5752, 5751, 5755, 3695,
1023      5756, 5757, 3717, 5753, 5760, 3740, 5754, 5761, 3719, 5758,
1024      3741,    0, 5796,    0, 2009, 5803, 1591,    0, 2012, 5810,
1025 
1026      1592,    0, 2046, 5817, 1612,    0, 2175, 5824, 1636,    0,
1027      2363, 5831, 1639,    0, 5838,    0, 7736, 3763, 5847, 4099,
1028      5765, 4372, 4512, 5848, 5850, 5851, 5854, 4557, 5766, 3808,
1029      3935, 3809, 5853, 3979, 2364, 5853, 1677,    0,    0,    0,
1030         0,    0,    0, 2392, 5870, 1681, 5862, 5880, 5882, 5884,
1031      5890, 4349, 5891, 4162, 4288, 5892, 5885, 5893, 5895, 4444,
1032         0,    0,    0,    0,    0,    0,    0, 4466, 5896, 4489,
1033      5900, 5903, 5914, 5918, 5919, 5925, 4534, 5926, 5927, 4556,
1034         0,    0, 4579, 4601, 4688, 4711, 4734, 5930, 4757, 5933,
1035      4603, 5937, 5764, 4780, 5948, 5955, 5958, 5028, 5960, 5090,
1036 
1037      5964, 5030, 5961, 5091, 4867, 5963, 5135, 5136, 5966, 5967,
1038      5979, 5973, 5986, 5974, 5158, 5987, 4912, 5999, 6001, 4975,
1039      6006, 6007, 6009, 5181, 5182, 6015, 6010, 6017, 6020, 5205,
1040      5228, 6028, 5250, 6030, 5251, 6031, 6040, 5337, 5314, 5336,
1041      6044, 6049, 6050, 6055, 5359, 6053, 6054, 6056, 6069, 5382,
1042      6076, 6062, 6077, 5383, 6084, 5406, 6080, 6091, 5498, 6096,
1043      6098, 6099, 5499, 6100, 5549, 5500, 6102, 5852, 6105, 6103,
1044      6107, 6109, 6111, 6112, 6118, 6130, 6131, 6136, 6151, 6139,
1045      6141, 6143, 6144, 7736, 6178, 6185, 6189, 6192, 6195, 6198,
1046      6201, 6204, 6207, 6210, 6213, 6216, 6219, 6222, 6225, 6228,
1047 
1048      6231, 6234, 6237, 6241, 6245, 6248, 6251, 6254, 6257, 6260,
1049      6263, 6266, 6269, 6273, 6277, 6280, 6283, 6287, 6289, 6292,
1050      6295, 6298, 6301, 6304, 6307, 6310, 6313, 6317, 6319, 6322,
1051      6326, 6331, 6335, 6338, 6342, 6345, 6348, 6351, 6354, 6357,
1052      6360, 6363, 6367, 6371, 6374, 6378, 6382, 6387, 6391, 6393,
1053      6397, 6400, 6404, 6407, 6410, 6414, 6416, 6419, 6422, 6425,
1054      6428, 6431, 6434, 6437, 6440, 6443, 6447, 6449, 6452, 6455,
1055      6458, 6462, 6464, 6467, 6470, 6475, 6479, 6484, 6488, 6490,
1056      6494, 6497, 6501, 6506, 6510, 6513, 6516, 6519, 6522, 6525,
1057      6528, 6531, 6535, 6539, 6542, 6546, 6550, 6555, 6559, 6561,
1058 
1059      6565, 6568, 6572, 6575, 6580, 6584, 6589, 6593, 6595, 6599,
1060      6602, 6606, 6609, 6612, 6615, 6619, 6621, 6624, 6629, 6633,
1061      6636, 6639, 6642, 6645, 6648, 6651, 6654, 6657, 6661, 6663,
1062      6666, 6669, 6672, 6676, 6678, 6681, 6684, 6687, 6690, 6694,
1063      6696, 6699, 6702, 6705, 6710, 6714, 6719, 6723, 6725, 6729,
1064      6732, 6736, 6741, 6745, 6748, 6751, 6754, 6757, 6760, 6763,
1065      6766, 6770, 6774, 6777, 6781, 6785, 6790, 6794, 6796, 6800,
1066      6803, 6807, 6810, 6815, 6819, 6824, 6828, 6830, 6834, 6837,
1067      6841, 6844, 6847, 6852, 6856, 6861, 6865, 6867, 6871, 6874,
1068      6878, 6881, 6884, 6887, 6891, 6893, 6896, 6901, 6905, 6908,
1069 
1070      6911, 6914, 6917, 6920, 6923, 6926, 6929, 6932, 6935, 6938,
1071      6942, 6944, 6947, 6950, 6953, 6956, 6960, 6962, 6965, 6968,
1072      6971, 6974, 6977, 6981, 6983, 6986, 6989, 6992, 6995, 6998,
1073      7002, 7004, 7007, 7010, 7013, 7016, 7021, 7025, 7030, 7034,
1074      7036, 7040, 7043, 7047, 7052, 7056, 7059, 7062, 7065, 7068,
1075      7071, 7074, 7077, 7080, 7083, 7087, 7091, 7094, 7098, 7102,
1076      7107, 7111, 7113, 7117, 7120, 7124, 7127, 7132, 7136, 7141,
1077      7145, 7147, 7151, 7154, 7158, 7161, 7164, 7169, 7173, 7178,
1078      7182, 7184, 7188, 7191, 7195, 7198, 7201, 7206, 7210, 7215,
1079      7219, 7221, 7225, 7228, 7232, 7235, 7238, 7241, 7245, 7247,
1080 
1081      7250, 7253, 7258, 7262, 7265, 7268, 7271, 7274, 7277, 7280,
1082      7283, 7286, 7289, 7292, 7295, 7299, 7303, 7306, 7309, 7313,
1083      7316, 7319, 7323, 7325, 7328, 7331, 7335, 7337, 7340, 7343,
1084      7346, 7350, 7352, 7355, 7358, 7361, 7365, 7367, 7370, 7373,
1085      7376, 7380, 7382, 7385, 7388, 7393, 7397, 7402, 7406, 7408,
1086      7412, 7415, 7419, 7424, 7428, 7431, 7434, 7437, 7440, 7443,
1087      7446, 7449, 7452, 7456, 7458, 7461, 7465, 7470, 7474, 7475,
1088      7478, 7483, 7487, 7492, 7496, 7497, 7500, 7503, 7508, 7512,
1089      7517, 7521, 7522, 7525, 7528, 7533, 7537, 7542, 7546, 7547,
1090      7550, 7553, 7558, 7562, 7567, 7571, 7572, 7575, 7578, 7581,
1091 
1092      7585, 7587, 7592, 7596, 7599, 7602, 7605, 7608, 7611, 7614,
1093      7618, 7623, 7627, 7628, 7631, 7634, 7637, 7640, 7643, 7646,
1094      7649, 7652, 7655, 7658, 7663, 7667, 7670, 7673, 7676, 7680,
1095      7684, 7688, 7692, 7696, 7699, 7702, 7706, 7709, 7712, 7715,
1096      7718, 7721, 7725, 7728
1097     } ;
1098 
1099 static const flex_int16_t yy_def[2245] =
1100     {   0,
1101      1784,    1, 1784, 1784, 1784, 1784, 1784, 1785, 1784, 1784,
1102      1784,   11, 1784, 1784, 1784, 1784,   11,   17, 1786,   17,
1103        17,   17,   17,   17,   17,   18,   18,   18,   18,   18,
1104        18,   18,   18,   18,   18,   18,   18,   18,   18, 1784,
1105      1784, 1787, 1784,   18,   18,   17, 1788,   46,   18,   18,
1106        18, 1784, 1784, 1784, 1784, 1784, 1784,   45, 1786,   48,
1107        48,   48,   18,   18,   18,   18,   48,   18,   18,   48,
1108        18,   18,   18,   48,   18,   18,   18,   18,   18,   48,
1109        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1110        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1111 
1112        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1113        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1114        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1115        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1116        18,   18,   18,   18,   18, 1784, 1784,   18,   18,  149,
1117        18,   18,  152, 1789, 1784,   50, 1784,  157, 1790,   18,
1118        18,  153,   18,   18,   18,  153,   18,   18,   18,   18,
1119        18,   18,  153,   18,   18,   18,   18,   18,   18,   18,
1120       153,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1121        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1122 
1123        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1124        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1125        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1126        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1127        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1128        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1129        18,  258,  259,  153, 1791,  264, 1792, 1793, 1784,  269,
1130      1794, 1795, 1784, 1784, 1784, 1796, 1797,   18,   18,   18,
1131        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1132        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1133 
1134        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1135        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1136        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1137        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1138        18,   18,   18,   18,   18,   18,   18,  347,   18,  259,
1139       261,  259,  261,  261,  354, 1798, 1784,  353, 1799, 1800,
1140      1784, 1784, 1784, 1784, 1801, 1802, 1803, 1804, 1804, 1784,
1141      1805, 1784,  372, 1806, 1797,   18,   18,   18,   18,   18,
1142        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1143        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1144 
1145        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1146        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1147        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1148        18,   18,   18,  430,  431,  431,  436,  430,  354,  439,
1149      1807, 1808, 1784,  443, 1809, 1784, 1810, 1811, 1784,  449,
1150      1812, 1813, 1814, 1814, 1784, 1815, 1784,  457, 1816, 1802,
1151      1784, 1784, 1817, 1818, 1784, 1784, 1784, 1784, 1819, 1820,
1152        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1153        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1154        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1155 
1156        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1157        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1158        18,  521,   18,  431,  433,  431,  431,  527,  439,  529,
1159      1821, 1784, 1784, 1784, 1822, 1823, 1824, 1784, 1784, 1784,
1160      1784, 1825, 1826, 1784, 1827, 1828, 1784, 1784, 1784, 1784,
1161      1829, 1830, 1831, 1831, 1817, 1818, 1832, 1832, 1784, 1833,
1162      1784,  561, 1834, 1835,   18,   18,   18,   18,   18,   18,
1163        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1164        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1165        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1166 
1167        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1168        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
1169        18,  619,  527,  623,  529,  625, 1836, 1837, 1784,  629,
1170      1838, 1784,  632, 1839, 1784, 1840, 1841, 1784,  638, 1842,
1171      1843, 1843, 1784, 1844, 1784,  645, 1845, 1846, 1847, 1847,
1172      1848, 1849, 1850, 1850, 1784, 1851, 1784,  657, 1852, 1853,
1173      1784, 1854, 1784, 1855, 1856, 1784, 1784, 1784, 1784, 1857,
1174      1858,  626,  672,  672,  672,  672,  672,  672,  672,  672,
1175       672,  672,  672,  672,  672,  672,  672,  672,  672,  672,
1176       672,  672,  672,  672,  672,  672,  672,  672,  672,  672,
1177 
1178       672,  672,  672,  672,  672,  672,  672,  672,  672,  626,
1179       626,  672,  712,  712,  712,  672,  712,  717, 1859, 1784,
1180      1784, 1784, 1860, 1784, 1784, 1861, 1862, 1863, 1784, 1784,
1181      1784, 1784, 1864, 1865, 1784, 1866, 1867, 1784, 1784, 1784,
1182      1784, 1868, 1869, 1784, 1870, 1784, 1871, 1872, 1784, 1784,
1183      1784, 1784, 1873, 1874, 1875, 1784, 1876, 1877, 1877, 1878,
1184      1879, 1880, 1880, 1784, 1881, 1784,  766, 1882, 1883, 1884,
1185      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1186      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1187      1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
1188 
1189      1884, 1884, 1884, 1884, 1884,  804, 1884,  804,  808,  808,
1190       810, 1885, 1886, 1784,  814, 1887, 1784,  817, 1888, 1784,
1191       820, 1889, 1784, 1890, 1891, 1784,  826, 1892, 1893, 1893,
1192      1784, 1894, 1784,  833, 1895, 1896, 1897, 1897, 1898, 1899,
1193      1900, 1900, 1784, 1901, 1784,  845, 1902, 1903, 1904, 1784,
1194      1905, 1906, 1906, 1907, 1908, 1909, 1909, 1784, 1910, 1784,
1195       860, 1911, 1912, 1913, 1784, 1914, 1784, 1915, 1916, 1784,
1196      1784, 1784, 1784, 1917, 1918, 1919, 1919, 1919, 1919, 1919,
1197      1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919,
1198      1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919, 1919,
1199 
1200      1919, 1919, 1919,  903,  903,  905,  903,  903,  908, 1920,
1201      1784, 1784, 1784, 1921, 1784, 1784, 1922, 1784, 1784, 1923,
1202      1924, 1925, 1784, 1784, 1784, 1784, 1926, 1927, 1784, 1928,
1203      1929, 1784, 1784, 1784, 1784, 1930, 1931, 1784, 1932, 1784,
1204      1933, 1934, 1784, 1784, 1784, 1784, 1935, 1936, 1937, 1784,
1205      1938, 1784, 1939, 1940, 1784, 1784, 1784, 1784, 1941, 1942,
1206      1943, 1944, 1784, 1945, 1946, 1946, 1947, 1948, 1949, 1949,
1207      1784, 1950, 1784,  973, 1951, 1952, 1953, 1953, 1953, 1953,
1208      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
1209      1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
1210 
1211      1953, 1953, 1953, 1953, 1004, 1953, 1953, 1954, 1955, 1784,
1212      1010, 1956, 1784, 1013, 1957, 1784, 1016, 1958, 1784, 1019,
1213      1959, 1784, 1960, 1784, 1784, 1025, 1961, 1962, 1962, 1784,
1214      1963, 1784, 1032, 1964, 1965, 1966, 1966, 1967, 1968, 1969,
1215      1969, 1784, 1970, 1784, 1044, 1971, 1972, 1973, 1784, 1974,
1216      1975, 1975, 1976, 1977, 1978, 1978, 1784, 1979, 1784, 1059,
1217      1980, 1981, 1982, 1983, 1784, 1984, 1985, 1985, 1986, 1987,
1218      1988, 1988, 1784, 1989, 1784, 1075, 1990, 1991, 1992, 1784,
1219      1993, 1784, 1994, 1995, 1784, 1784, 1784, 1784, 1996, 1997,
1220      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
1221 
1222      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998,
1223      1998, 1998, 1998, 1998, 1998, 1998, 1998, 1117, 1998, 1999,
1224      1784, 1784, 1784, 2000, 1784, 1784, 2001, 1784, 1784, 2002,
1225      1784, 1784, 2003, 2004, 1784, 1135, 2005, 2006, 1784, 1784,
1226      2007, 2008, 2009, 1784, 2010, 2011, 1784, 1784, 1784, 2012,
1227      2013, 2014, 1784, 2015, 1784, 2016, 2017, 1784, 1784, 1784,
1228      2018, 2019, 2020, 2021, 1784, 2022, 1784, 2023, 2024, 1784,
1229      1784, 1784, 2025, 2026, 2027, 2028, 1784, 2029, 1784, 2030,
1230      2031, 1784, 1784, 1784, 2032, 2033, 2034, 2035, 2036, 1784,
1231      2037, 2038, 2038, 2039, 2040, 2041, 2041, 1784, 2042, 1784,
1232 
1233      1200, 2043, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1234      2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1235      2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
1236      2046, 1784, 1784, 1233, 2047, 1784, 1236, 2048, 1784, 1239,
1237      2049, 1784, 1242, 2050, 1784, 1245, 2051, 1784, 1784, 1784,
1238      2052, 2053, 2054, 2055, 2056, 2056, 1784, 2057, 2058, 2059,
1239      2060, 2060, 2061, 2062, 2063, 2063, 1784, 2064, 2065, 2066,
1240      2067, 1784, 2068, 2069, 2069, 2070, 2071, 2072, 2072, 1784,
1241      2073, 2074, 2075, 2076, 2077, 1784, 2078, 2079, 2079, 2080,
1242      2081, 2082, 2082, 1784, 2083, 2084, 2085, 2086, 2087, 1784,
1243 
1244      2088, 2089, 2089, 2090, 2091, 2092, 2092, 1784, 2093, 2094,
1245      2095, 2096, 1784, 2097, 1784, 2098, 2099, 1784, 1784, 1784,
1246      2100, 2101, 2102, 2103, 2103, 2103, 2103, 2103, 2103, 2103,
1247      2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103, 2103,
1248      2103, 2103, 2103, 2103, 2103, 2103, 2103, 1784, 1348, 2104,
1249      2105, 1784, 2106, 2107, 1784, 2108, 2109, 1784, 2110, 2111,
1250      1784, 2112, 2113, 1784, 2114, 2115, 2116, 2116, 1784, 2117,
1251      2118, 2119, 2120, 2121, 1784, 2122, 2123, 1784, 2124, 1784,
1252      2125, 1784, 2126, 2127, 1784, 2128, 2129, 1784, 2130, 1784,
1253      2131, 2132, 1784, 2133, 2134, 1784, 2135, 1784, 2136, 2137,
1254 
1255      1784, 2138, 2139, 1784, 2140, 1784, 2141, 2142, 1784, 2143,
1256      2144, 2145, 1784, 2146, 2147, 2147, 2148, 2149, 2150, 2150,
1257      1784, 2151, 2152, 2153, 2154, 2154, 2154, 2154, 2154, 2154,
1258      2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154,
1259      2154, 2154, 2154, 2154, 2154, 1784, 2155, 2156, 2157, 2158,
1260      2159, 2160, 2161, 2162, 1784, 2163, 2164, 1784, 2165, 2166,
1261      2167, 2167, 2168, 2169, 2170, 2171, 1784, 2172, 2173, 2173,
1262      2174, 2175, 2176, 2177, 2178, 1784, 2179, 2180, 2180, 2181,
1263      2182, 2183, 2184, 2185, 1784, 2186, 2187, 2187, 2188, 2189,
1264      2190, 2191, 2192, 1784, 2193, 2194, 2194, 2195, 2196, 2197,
1265 
1266      2198, 1784, 2199, 1784, 2200, 2201, 1784, 2202, 2203, 2203,
1267      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1268      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2204,
1269      1784, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2211, 2212,
1270      2213, 2214, 1784, 1784, 2215, 1784, 2216, 1784, 2217, 1784,
1271      2218, 1784, 2219, 1784, 2220, 1784, 2221, 1784, 2222, 1784,
1272      2223, 1784, 2198, 2224, 1784, 2199, 2225, 2225, 2200, 2201,
1273      2226, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1274      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1275      2203, 2227, 1784, 2228, 2229, 1784, 2215, 2216, 2230, 1784,
1276 
1277      2217, 2218, 2231, 1784, 2219, 2220, 2232, 1784, 2221, 2222,
1278      2233, 1784, 2223, 2234, 1784, 2235, 1784, 2203, 2203, 2203,
1279      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1280      2203, 2203, 2203, 2203, 2236, 1784, 2228, 2237, 2238, 2239,
1281      2240, 2241, 2234, 2242, 1784, 2235, 2203, 2203, 2203, 2203,
1282      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1283      2243, 2237, 2238, 2239, 2240, 2241, 2244, 2203, 2203, 2203,
1284      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1285      2243, 2244, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1286      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1287 
1288      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1289      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1290      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1291      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1292      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1293      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1294      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1295      2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
1296      2203, 2203, 2203,    0, 1784, 1784, 1784, 1784, 1784, 1784,
1297      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1298 
1299      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1300      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1301      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1302      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1303      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1304      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1305      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1306      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1307      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1308      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1309 
1310      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1311      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1312      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1313      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1314      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1315      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1316      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1317      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1318      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1319      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1320 
1321      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1322      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1323      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1324      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1325      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1326      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1327      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1328      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1329      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1330      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1331 
1332      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1333      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1334      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1335      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1336      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1337      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1338      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1339      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1340      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1341      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1342 
1343      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1344      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1345      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1346      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
1347      1784, 1784, 1784, 1784
1348     } ;
1349 
1350 static const flex_int16_t yy_nxt[7789] =
1351     {   0,
1352         4,    5,    6,    5,    7,    8,    9,   10,    9,    9,
1353         4,   11,   12,   12,   12,   12,   12,   12,   13,   14,
1354        15,   16,   17,   18,   18,   19,    4,   20,   21,   22,
1355        23,   24,   25,   26,   27,   28,   18,   29,   30,   31,
1356        32,   33,   18,   34,   35,   36,   37,   38,   39,   18,
1357        18,   40,   44,   45,   46,   46,   46,   46,   46,   46,
1358        46,   47,   53,   54,  195,   48,   49,   50,  196,   51,
1359        48,   48,   48,   48,   48,   48,   49,   49,   49,   49,
1360        49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
1361        49,   49,   50,   49,   49,   56,   57,   60,   74,   61,
1362 
1363        62,  112,   75,  503,   63,   78,   79,   80,   76,   64,
1364       113,   77,   81,   65,   67,   66,  192,  504,  193,   49,
1365        58,   48,   48,   48,   48,   48,   48,   48,   68,   70,
1366       190, 1165,   82,  191,   49,   69,   83,  124,  207,   71,
1367       202,  125,   72,   85,  208,   86,   73,  197,   84,  126,
1368        87,   88,  198,   89,  127, 1167,  128,   90,  238,   49,
1369        51,   49,   49,   49,   49,   49,   49,   49,   49, 1784,
1370        99,  100,  203,   49,  944,  136,  239,  137,   49,   49,
1371        49,   49,   49,   49,   91,  101, 1362,   92,   93,  102,
1372        94,  138,   95,  103,   96,  104,   97,  106,  139,   98,
1373 
1374       119,  107,  105,  114,   49,  120,  121,  209,  122,  123,
1375       108,  109,  210,  141,  110,  115,  111,  116,  129,  117,
1376       204,  142,  118,  244,  130,  143,  131,  144,  132,   49,
1377       232,  321,  133,  245,  134,  135,  148,  148,  148,  148,
1378       148,  148,  148,  233,  322,  213,  205,  148,  214,  341,
1379       215,  206,  148,  148,  148,  148,  148,  148,  149,  150,
1380       150,  150,  150,  150,  150, 1784,  339,  690,  340,  151,
1381        49,  352,  342,  691,  151,  151,  151,  151,  151,  151,
1382        45,  152,  152,  152,  152,  152,  152,  152,  774,  415,
1383      1784,   49,  153,  177,  416, 1784,   49,  153,  153,  153,
1384 
1385       153,  153,  153,   58,  153,  153,  153,  153,  153,  153,
1386       153,  156,  156,  156,  156,  156,  156,  156, 1784,  178,
1387      1784,   49,  156,   49,  526,  179,  451,  156,  156,  156,
1388       156,  156,  156,  157,  158,  158,  158,  158,  158,  158,
1389        49,  714,  773, 1784,  159,  771,   49,   49,   49,  159,
1390       159,  159,  159,  159,  159,  151,  151,  151,  151,  151,
1391       151,  151,  241,  349,  349,  349,  349,  349,  349,  349,
1392       435,  242,  256,   49,  257,  257,  257,  257,  257,  257,
1393       257, 1784, 1784, 1171,  261,  257,  377,  378,  379,  380,
1394       257,  257,  257,  257,  257,  257,  258,  259,  259,  259,
1395 
1396       259,  259,  259,  259,  273,  381, 1784, 1784,  260,  261,
1397       261, 1177,  275,  260,  260,  260,  260,  260,  260,  368,
1398       369,  369,  369,  369,  369,  369,  438,  438,  438,  438,
1399       438,  438,  438,  462,  788,  261,  262,  260,  260,  260,
1400       260,  260,  260,  260, 1784,   49,  772,  463,  260, 1784,
1401      1784,   49,   49,  260,  260,  260,  260,  260,  260,  263,
1402       264,  264,  264,  264,  264,  264,  264,  265, 1179, 1784,
1403        49,  266,  463, 1784, 1784, 1784,  266,  266,  266,  266,
1404       266,  266,   49,  266,  266,  266,  266,  266,  266,  266,
1405       269,  270,  270,  270,  270,  270,  270,  271, 1784,  784,
1406 
1407        49,  272,  377,  378,  379,  380,  272,  272,  272,  272,
1408       272,  272,  273,  274,  274,  274,  274,  274,  274,  274,
1409       275,  462, 1784,   49,  276,  488,  277,  780,  393,  276,
1410       276,  276,  276,  276,  276, 1784,  394,  453,  454,  454,
1411       454,  454,  454,  454,  956,  489,  499, 1784,  395,  776,
1412      1365,  277,  346,  346,  346,  346,  346,  346,  346,  500,
1413      1784,  490, 1784,  346,  396,  781,  451,   49,  346,  346,
1414       346,  346,  346,  346,  347,  348,  348,  348,  348,  348,
1415       348,  362,  779,   49,   49,  349, 1183, 1784, 1784,  534,
1416       349,  349,  349,  349,  349,  349,  258,  350,  350,  350,
1417 
1418       350,  350,  350,  350,  351,  351,  351,  351,  351,  351,
1419       351,  273,  783, 1784,   49,  351,   49,  795, 1088, 1784,
1420       351,  351,  351,  351,  351,  351,  353,  354,  354,  354,
1421       354,  354,  354,  354,  466,   49,  803,  809,  355, 1321,
1422      1447,  621,  468,  355,  355,  355,  355,  355,  355,  358,
1423       355,  355,  355,  355,  355,  355,  355,  362,  363,  363,
1424       363,  363,  363,  363,  363,  364,  621, 1353, 1356,  365,
1425      1359,  366,   49,  544,  365,  365,  365,  365,  365,  365,
1426       523,  523,  523,  523,  523,  523,  523,  545,  786, 1362,
1427      1365, 1447,  782,  544,  622,   49,  366,  273,  370,  370,
1428 
1429       370,  370,  370,  370,  370,  275,   49, 1784,  433,  371,
1430       451,   51,  545,  787,  371,  371,  371,  371,  371,  371,
1431       372,  373,  373,  373,  373,  373,  373,   49,   51,  451,
1432       864,  374, 1784,  433,  575,  777,  374,  374,  374,  374,
1433       374,  374,  419,  576,  420,   49,  421,  422,  553,  554,
1434       554,  554,  554,  554,  554,  864,  423,  661,  424,  425,
1435       661,  426,  428,  578,  429,  429,  429,  429,  429,  429,
1436       429,  662,  579, 1249, 1784,  429, 1784,  451,   51, 1353,
1437       429,  429,  429,  429,  429,  429,  430,  431,  431,  431,
1438       431,  431,  431,  431,  789,   51,  662,  451,  432, 1784,
1439 
1440       433, 1784,   49,  432,  432,  432,  432,  432,  432,  557,
1441       558,  558,  558,  558,  558,  558,  641,  642,  642,  642,
1442       642,  642,  642,  663,  785,  433,  434,  432,  432,  432,
1443       432,  432,  432,  432,  796,   49, 1784,  664,  432, 1356,
1444        51,   49,  663,  432,  432,  432,  432,  432,  432,  436,
1445       437,  437,  437,  437,  437,  437, 1784,   51,  886, 1784,
1446       438, 1784,  664,   51,  791,  438,  438,  438,  438,  438,
1447       438,  263,  439,  439,  439,  439,  439,  439,  439,   49,
1448        51, 1784,  451,  440, 1784, 1784, 1784,  876,  440,  440,
1449       440,  440,  440,  440,   49,  440,  440,  440,  440,  440,
1450 
1451       440,  440,  443,  444,  444,  444,  444,  444,  444, 1784,
1452      1784, 1784, 1784,  445, 1359,  451,   51,  794,  445,  445,
1453       445,  445,  445,  445,  449,  450,  450,  450,  450,  450,
1454       450,  451,   49,   51, 1784,  452, 1362, 1784,  882,   51,
1455       452,  452,  452,  452,  452,  452,  362,  455,  455,  455,
1456       455,  455,  455,  455,  364,  451,   51, 1365,  456,  883,
1457        51,   51,   51,  456,  456,  456,  456,  456,  456,  457,
1458       458,  458,  458,  458,  458,  458,  451,   51,   51,   51,
1459       459,  884,  890,   51,  895,  459,  459,  459,  459,  459,
1460       459,  273,  464,  464,  464,  464,  464,  464,  464,  275,
1461 
1462        51,  451,  949,  465, 1784,   49,   51,  894,  465,  465,
1463       465,  465,  465,  465,  466,  467,  467,  467,  467,  467,
1464       467,  467,  468,   51,  897, 1313,  469,  949,  470, 1784,
1465        49,  469,  469,  469,  469,  469,  469,  649,  650,  650,
1466       650,  650,  650,  650,  653,  654,  654,  654,  654,  654,
1467       654,  692,  790,  470,  480, 1079,  695, 1784,  481, 1784,
1468       693,  482,   49,  735,  483,  696,  484,  485,  486,  487,
1469       520,  520,  520,  520,  520,  520,  520,  736, 1315, 1784,
1470      1079,  520, 1784,   51, 1784,  792,  520,  520,  520,  520,
1471       520,  520,  521,  522,  522,  522,  522,  522,  522,  793,
1472 
1473        51,   49,  736,  523, 1784,  900, 1784, 1784,  523,  523,
1474       523,  523,  523,  523,  430,  524,  524,  524,  524,  524,
1475       524,  524,  525,  525,  525,  525,  525,  525,  525,  539,
1476      1086, 1784, 1784,  525, 1321,   51, 1319,  722,  525,  525,
1477       525,  525,  525,  525,  435,  527,  527,  527,  527,  527,
1478       527,  527,   51,  735,  744,  744,  528,  746,  261,  746,
1479       802,  528,  528,  528,  528,  528,  528, 1784,  745, 1784,
1480        49,  747,  775, 1784,  755,  756,  756,  756,  756,  756,
1481       756,   49, 1531,  261,  528,  528,  528,  528,  528,  528,
1482       528, 1784, 1784,  745, 1784,  528,  747,   51, 1784,  797,
1483 
1484       528,  528,  528,  528,  528,  528,  529,  529,  529,  529,
1485       529,  529,  529,   49,   51, 1447, 1784,  530, 1447,  451,
1486      1784, 1784,  530,  530,  530,  530,  530,  530,   49,  530,
1487       530,  530,  530,  530,  530,  530,  362,  533,  533,  533,
1488       533,  533,  533,  533,  534, 1784, 1784, 1375,  535, 1139,
1489       366, 1380, 1382,  535,  535,  535,  535,  535,  535,  758,
1490       759,  759,  759,  759,  759,  759,  762,  763,  763,  763,
1491       763,  763,  763,  798,   51,  366,  539,  540,  540,  540,
1492       540,  540,  540,  540,  541,  799,  801,   49,  542, 1148,
1493       543,   51, 1388,  542,  542,  542,  542,  542,  542,   49,
1494 
1495        49,  829,  830,  830,  830,  830,  830,  830,  837,  838,
1496       838,  838,  838,  838,  838,  543,  362,  546,  546,  546,
1497       546,  546,  546,  546,  534, 1164, 1390, 1159,  547, 1784,
1498      1176,   51,   51,  547,  547,  547,  547,  547,  547,  548,
1499       549,  549,  549,  549,  549,  549,  549,  550,   51,   51,
1500      1164,  551,  901,  552, 1784, 1176,  551,  551,  551,  551,
1501       551,  551,  841,  842,  842,  842,  842,  842,  842,  849,
1502       850,  850,  850,  850,  850,  850,  865,   51,  552,  466,
1503       559,  559,  559,  559,  559,  559,  559,  468, 1396, 1398,
1504       866,  560, 1171,   51,   51,   51,  560,  560,  560,  560,
1505 
1506       560,  560,  561,  562,  562,  562,  562,  562,  562,  548,
1507        51,  877,   51,  563,  865,  866, 1404,  725,  563,  563,
1508       563,  563,  563,  563,  581,  582,  583,  878, 1784,  584,
1509       585,  887, 1406,  586,  587,  804,  588,  867,  589, 1183,
1510       590,  616,  867,  617,  617,  617,  617,  617,  617,  617,
1511      1784,  868,   51, 1784,  617, 1784, 1784,   51,  806,  617,
1512       617,  617,  617,  617,  617,  618,  619,  619,  619,  619,
1513       619,  619,  619, 1321,   51, 1784,  868,  620, 1455,  621,
1514      1784, 1784,  620,  620,  620,  620,  620,  620,  852,  853,
1515       853,  853,  853,  853,  853,  856,  857,  857,  857,  857,
1516 
1517       857,  857,   51,   51,  621,  618,  620,  620,  620,  620,
1518       620,  620,  620,  667, 1312, 1249, 1784,  620, 1784,   51,
1519        51,  669,  620,  620,  620,  620,  620,  620,  435,  623,
1520       623,  623,  623,  623,  623,  623,  879,  881, 1502, 1312,
1521       624, 1784, 1784, 1784, 1784,  624,  624,  624,  624,  624,
1522       624,   49,  624,  624,  624,  624,  624,  624,  624,  625,
1523       625,  625,  625,  625,  625,  625,  730, 1784, 1504, 1784,
1524       626, 1784, 1784, 1387,  913,  626,  626,  626,  626,  626,
1525       626,   49,  626,  626,  626,  626,  626,  626,  626,  629,
1526       630,  630,  630,  630,  630,  630, 1784, 1784, 1387, 1395,
1527 
1528       631, 1544, 1548,   51,   51,  631,  631,  631,  631,  631,
1529       631,  362,  455,  455,  455,  455,  455,  455,  455,  534,
1530        51,   51, 1552,  456, 1395,   51,  977,  929,  456,  456,
1531       456,  456,  456,  456,  632,  633,  633,  633,  633,  633,
1532       633,  930,   51, 1403, 1784,  634, 1556,  978,   51, 1560,
1533       634,  634,  634,  634,  634,  634,  638,  639,  639,  639,
1534       639,  639,  639,  451, 1501,   51,  930,  640, 1403, 1784,
1535       979,   51,  640,  640,  640,  640,  640,  640,  539,  643,
1536       643,  643,  643,  643,  643,  643,  541, 1593,   51, 1501,
1537       644, 1615,   51,  981,   51,  644,  644,  644,  644,  644,
1538 
1539       644,  645,  646,  646,  646,  646,  646,  646,  451,   51,
1540      1159,   51,  647,  451,  983,   51,  984,  647,  647,  647,
1541       647,  647,  647,  548,  655,  655,  655,  655,  655,  655,
1542       655,  550,   51,  990, 1547,  656, 1359,   51,   51,   51,
1543       656,  656,  656,  656,  656,  656,  657,  658,  658,  658,
1544       658,  658,  658,  451,   51,   51,   51,  659,  986, 1547,
1545        51,  991,  659,  659,  659,  659,  659,  659,  466,  665,
1546       665,  665,  665,  665,  665,  665,  468,   51,  933, 1155,
1547       666, 1153,  996,   51,   51,  666,  666,  666,  666,  666,
1548       666,  667,  668,  668,  668,  668,  668,  668,  668,  669,
1549 
1550        51,   51, 1110,  670,   51,  671,  999,   51,  670,  670,
1551       670,  670,  670,  670,  756,  756,  756,  756,  756,  756,
1552       756,   51,   51, 1148,   51,  451,   51,   51,   51,   51,
1553       671,  710,  710,  710,  710,  710,  710,  710,  889,   51,
1554       888, 1551,  710,   51,   51,   51,   51,  710,  710,  710,
1555       710,  710,  710,  711,  711,  711,  711,  711,  711,  711,
1556       980,  985,  893,  899,  711, 1356, 1551, 1555, 1559,  711,
1557       711,  711,  711,  711,  711,  618,  712,  712,  712,  712,
1558       712,  712,  712,  713,  713,  713,  713,  713,  713,  713,
1559       739,  924, 1555, 1559,  713,   51,   51,   51,  916,  713,
1560 
1561       713,  713,  713,  713,  713,  715,  715,  715,  715,  715,
1562       715,  715,   51,   51,   51, 1144,  716, 1096, 1000, 1614,
1563       994,  716,  716,  716,  716,  716,  716,   49,  716,  716,
1564       716,  716,  716,  716,  716,  717,  717,  717,  717,  717,
1565       717,  717,  750, 1139, 1614,  451,  718, 1353,  451, 1251,
1566       919,  718,  718,  718,  718,  718,  718,   49,  718,  718,
1567       718,  718,  718,  718,  718,  539,  721,  721,  721,  721,
1568       721,  721,  721,  722,   51,   51,   51,  723, 1372,  543,
1569        51,  929,  723,  723,  723,  723,  723,  723,  871, 1232,
1570      1365,   51,   51,   51, 1362, 1784,  873,   51,   51,   51,
1571 
1572      1109,  891,  892,  880,  543,  548,  724,  724,  724,  724,
1573       724,  724,  724,  725,   51,   51,   51,  726,   51,  552,
1574      1784,  924,  726,  726,  726,  726,  726,  726,  885, 1123,
1575      1359,   51,  982, 1638, 1356,   51, 1639, 1353,   51, 1232,
1576      1100,  896,  938,   51,  552,  730,  731,  731,  731,  731,
1577       731,  731,  731,  732,   51,   51,  939,  733, 1638,  734,
1578        51, 1639,  733,  733,  733,  733,  733,  733,  902,  898,
1579      1640,   51,  907,  907,  907,  907,  907,  907,  907, 1086,
1580       938,  939,  940,  338,  734,  539,  737,  737,  737,  737,
1581       737,  737,  737,  722, 1784, 1640,  941,  738, 1321, 1088,
1582 
1583        51,  871,  738,  738,  738,  738,  738,  738,  739,  740,
1584       740,  740,  740,  740,  740,  740,  741,   51,  940, 1784,
1585       742,  941,  743,  933,   51,  742,  742,  742,  742,  742,
1586       742, 1126, 1784,  850,  850,  850,  850,  850,  850,  850,
1587      1116,   51, 1082, 1080,   51,  950,   51,  743,  548,  748,
1588       748,  748,  748,  748,  748,  748,  725, 1784,  989,  951,
1589       749,   51, 1103,   51, 1185,  749,  749,  749,  749,  749,
1590       749,  750,  751,  751,  751,  751,  751,  751,  751,  752,
1591        51,  950,  952,  753,  951,  754,  952,  451,  753,  753,
1592       753,  753,  753,  753, 1132, 1784,  953,   51, 1173, 1641,
1593 
1594      1784,  962,  963,  963,  963,  963,  963,  963,  992,   51,
1595       754,  667,  764,  764,  764,  764,  764,  764,  764,  669,
1596      1784,  953,  451,  765, 1641, 1784,   51,   51,  765,  765,
1597       765,  765,  765,  765,  766,  767,  767,  767,  767,  767,
1598       767,  987, 1129, 1161,   51,  768,  451,   51,   51,   51,
1599       768,  768,  768,  768,  768,  768,   49,   49,   49,   49,
1600        49,   49,   49, 1001,   51,   51,   51,   49,   51, 1105,
1601      1108,   51,   49,   49,   49,   49,   49,   49,  965,  966,
1602       966,  966,  966,  966,  966,   51, 1126, 1080,   51, 1080,
1603       770,  804, 1082,  805,  805,  805,  805,  805,  805,  805,
1604 
1605       997, 1081,  998, 1784,  805, 1150, 1083,   51,   51,  805,
1606       805,  805,  805,  805,  805,  806,  807,  807,  807,  807,
1607       807,  807,  807,  451,   51,   51, 1081,  807, 1784, 1113,
1608      1114, 1083,  807,  807,  807,  807,  807,  807,  712,  712,
1609       712,  712,  712,  712,  712,  969,  970,  970,  970,  970,
1610       970,  970,   51,   51,   51, 1028, 1029, 1029, 1029, 1029,
1611      1029, 1029, 1036, 1037, 1037, 1037, 1037, 1037, 1037,   51,
1612        51,   51,   49,  713,  713,  713,  713,  713,  713,  713,
1613       988, 1123, 1141,  451,  713, 1091, 1095, 1642, 1661,  713,
1614       713,  713,  713,  713,  713,  808,  350,  350,  350,  350,
1615 
1616       350,  350,  350,  263,  810,  810,  810,  810,  810,  810,
1617       810,  944, 1642, 1661, 1251,  811, 1667,  451, 1232, 1129,
1618       811,  811,  811,  811,  811,  811,   49,  811,  811,  811,
1619       811,  811,  811,  811,  814,  815,  815,  815,  815,  815,
1620       815, 1667, 1132, 1129, 1126,  816, 1123, 1232,   51,   51,
1621       816,  816,  816,  816,  816,  816,  539,  643,  643,  643,
1622       643,  643,  643,  643,  722,   51,   51, 1088,  644,  873,
1623        51,   51, 1082,  644,  644,  644,  644,  644,  644,  817,
1624       818,  818,  818,  818,  818,  818, 1784,   51,   51,  956,
1625       819, 1185, 1209,   51, 1106,  819,  819,  819,  819,  819,
1626 
1627       819,  548,  655,  655,  655,  655,  655,  655,  655,  725,
1628        51, 1784, 1132,  656,   51,   51,   51,   51,  656,  656,
1629       656,  656,  656,  656,  820,  821,  821,  821,  821,  821,
1630       821,   51,   51,   51,   51,  822, 1212,  750, 1213, 1102,
1631       822,  822,  822,  822,  822,  822,  826,  827,  827,  827,
1632       827,  827,  827,  451, 1211,  952,  950,  828,  944, 1173,
1633        51, 1129,  828,  828,  828,  828,  828,  828,  730,  831,
1634       831,  831,  831,  831,  831,  831,  732,   51, 1215,  739,
1635       832,  940,   51,   51,   51,  832,  832,  832,  832,  832,
1636       832,  833,  834,  834,  834,  834,  834,  834,  451,   51,
1637 
1638        51,   51,  835, 1218, 1217,   51, 1222,  835,  835,  835,
1639       835,  835,  835,  739,  843,  843,  843,  843,  843,  843,
1640       843,  741,   51, 1220,  938,  844,  933,   51,   51,   51,
1641       844,  844,  844,  844,  844,  844,  845,  846,  846,  846,
1642       846,  846,  846,  451,   51,   51,   51,  847, 1225, 1229,
1643        51, 1161,  847,  847,  847,  847,  847,  847,  750,  858,
1644       858,  858,  858,  858,  858,  858,  752,   51, 1324, 1126,
1645       859,  730,   51,   51,  929,  859,  859,  859,  859,  859,
1646       859,  860,  861,  861,  861,  861,  861,  861,  451,   51,
1647        51, 1325,  862,  924, 1150,   51, 1123,  862,  862,  862,
1648 
1649       862,  862,  862,  667,  869,  869,  869,  869,  869,  869,
1650       869,  669,   51, 1326, 1327,  870, 1141, 1024, 1009, 1132,
1651       870,  870,  870,  870,  870,  870,  871,  872,  872,  872,
1652       872,  872,  872,  872,  873,   51,   51, 1144,  874, 1129,
1653       875,  956, 1126,  874,  874,  874,  874,  874,  874, 1132,
1654        51, 1145,   51,   51, 1040, 1041, 1041, 1041, 1041, 1041,
1655      1041,  993,  995,   51, 1144,  875,   51,   51,  903,  903,
1656       903,  903,  903,  903,  903, 1123, 1145, 1121, 1784,  903,
1657        51, 1097, 1092,   51,  903,  903,  903,  903,  903,  903,
1658       904,  904,  904,  904,  904,  904,  904, 1009, 1098,  871,
1659 
1660      1088,  904,   51, 1784,   51,   51,  904,  904,  904,  904,
1661       904,  904,  905,  906,  906,  906,  906,  906,  906,   51,
1662       873,   51,   51,  907,  667,  867,   51, 1107,  907,  907,
1663       907,  907,  907,  907,  263,  908,  908,  908,  908,  908,
1664       908,  908, 1328,   51,  865,  958,  909,  919, 1330,  946,
1665       916,  909,  909,  909,  909,  909,  909,   49,  909,  909,
1666       909,  909,  909,  909,  909,  730,  912,  912,  912,  912,
1667       912,  912,  912,  913,  935,  913,  926,  914, 1024,  734,
1668      1009,  919,  914,  914,  914,  914,  914,  914, 1048, 1049,
1669      1049, 1049, 1049, 1049, 1049, 1051, 1052, 1052, 1052, 1052,
1670 
1671      1052, 1052,  916,   51,  734,  739,  915,  915,  915,  915,
1672       915,  915,  915,  916,  913, 1009,  873,  917,  669,  743,
1673        51,  750,  917,  917,  917,  917,  917,  917, 1055, 1056,
1674      1056, 1056, 1056, 1056, 1056, 1064, 1065, 1065, 1065, 1065,
1675      1065, 1065,  958,   51,  743,  750,  918,  918,  918,  918,
1676       918,  918,  918,  919,  919,  548,  746,  920,  744,  754,
1677        51,  739,  920,  920,  920,  920,  920,  920, 1067, 1068,
1678      1068, 1068, 1068, 1068, 1068, 1071, 1072, 1072, 1072, 1072,
1679      1072, 1072, 1153,   51,  754,  924,  925,  925,  925,  925,
1680       925,  925,  925,  926,  946,  916, 1154,  927,  539,  928,
1681 
1682        51,   51,  927,  927,  927,  927,  927,  927,  963,  963,
1683       963,  963,  963,  963,  963, 1093, 1094,  735,   51,   51,
1684       730, 1154,   51,   51,  928,  730,  931,  931,  931,  931,
1685       931,  931,  931,  913, 1099,  935,   51,  932,  913,   51,
1686        51,   51,  932,  932,  932,  932,  932,  932,  933,  934,
1687       934,  934,  934,  934,  934,  934,  935, 1101,   51,   51,
1688       936,   51,  937, 1153,   51,  936,  936,  936,  936,  936,
1689       936, 1104,  926,  923, 1086, 1139,   51, 1784,   51,  825,
1690      1344,   51, 1088, 1353,   51, 1155,   51,  937,  739,  942,
1691       942,  942,  942,  942,  942,  942,  916, 1112, 1115, 1156,
1692 
1693       943,   51, 1784,   51,   51,  943,  943,  943,  943,  943,
1694       943,  944,  945,  945,  945,  945,  945,  945,  945,  946,
1695      1208,   51, 1155,  947, 1156,  948,  813,   51,  947,  947,
1696       947,  947,  947,  947, 1111,  919, 1784, 1049, 1049, 1049,
1697      1049, 1049, 1049, 1049,   51,  916, 1165,   51, 1165, 1342,
1698       948,  750,  954,  954,  954,  954,  954,  954,  954,  919,
1699      1166, 1784, 1784,  955,   51,  913,   51, 1510,  955,  955,
1700       955,  955,  955,  955,  956,  957,  957,  957,  957,  957,
1701       957,  957,  958,   51, 1167, 1166,  959, 1784,  960, 1167,
1702       911,  959,  959,  959,  959,  959,  959, 1207, 1168,  813,
1703 
1704       667,  873,  669, 1784, 1065, 1065, 1065, 1065, 1065, 1065,
1705      1065, 1177,  466,  960,  871,  971,  971,  971,  971,  971,
1706       971,  971,  873, 1168,  663, 1178,  972,  661, 1784,   51,
1707      1177,  972,  972,  972,  972,  972,  972,  973,  974,  974,
1708       974,  974,  974,  974, 1784,  752,   51,  725,  975,  741,
1709      1178,   51,  722,  975,  975,  975,  975,  975,  975,   51,
1710      1210, 1002, 1002, 1002, 1002, 1002, 1002, 1002,   51, 1784,
1711       732, 1511, 1002,   51,   51,   51,   51, 1002, 1002, 1002,
1712      1002, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
1713        51,   51,   51,  825, 1003,  813, 1345, 1347, 1332, 1003,
1714 
1715      1003, 1003, 1003, 1003, 1003,  622, 1004, 1004, 1004, 1004,
1716      1004, 1004, 1004, 1148, 1179, 1179,  725, 1005,  722,  433,
1717       813, 1356, 1005, 1005, 1005, 1005, 1005, 1005, 1180, 1784,
1718      1189, 1190, 1190, 1190, 1190, 1190, 1190, 1192, 1193, 1193,
1719      1193, 1193, 1193, 1193,  433, 1005, 1005, 1005, 1005, 1005,
1720      1005, 1005,   49, 1180, 1784,   49, 1005,   49,   51,   51,
1721        51, 1005, 1005, 1005, 1005, 1005, 1005,  263, 1006, 1006,
1722      1006, 1006, 1006, 1006, 1006,   51,   51,   51,  800, 1007,
1723      1425, 1435, 1445,   49, 1007, 1007, 1007, 1007, 1007, 1007,
1724        49, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1010, 1011,
1725 
1726      1011, 1011, 1011, 1011, 1011,   49,  778,  669,  468, 1012,
1727       548,  752,   51,   51, 1012, 1012, 1012, 1012, 1012, 1012,
1728       730,  831,  831,  831,  831,  831,  831,  831,  913,   51,
1729        51,  725,  832,  362,  544,   51, 1313,  832,  832,  832,
1730       832,  832,  832, 1013, 1014, 1014, 1014, 1014, 1014, 1014,
1731      1314, 1442,   51, 1432, 1015,  539,  741,   51,  722, 1015,
1732      1015, 1015, 1015, 1015, 1015,  739,  843,  843,  843,  843,
1733       843,  843,  843,  916,   51, 1314, 1512,  844, 1513,   51,
1734        51, 1313,  844,  844,  844,  844,  844,  844, 1016, 1017,
1735      1017, 1017, 1017, 1017, 1017, 1784,   51,   51,  732, 1018,
1736 
1737       729, 1516,   51,  637, 1018, 1018, 1018, 1018, 1018, 1018,
1738       750,  858,  858,  858,  858,  858,  858,  858,  919,   51,
1739      1784,  628,  859, 1517,   51,   51, 1315,  859,  859,  859,
1740       859,  859,  859, 1019, 1020, 1020, 1020, 1020, 1020, 1020,
1741      1316,   51,   51,  725, 1021,  722, 1521, 1518,  720, 1021,
1742      1021, 1021, 1021, 1021, 1021, 1025, 1026, 1026, 1026, 1026,
1743      1026, 1026,  451,  628,  618, 1316, 1027,  616,  709,   51,
1744        51, 1027, 1027, 1027, 1027, 1027, 1027,  924, 1030, 1030,
1745      1030, 1030, 1030, 1030, 1030,  926,   51,   51, 1524, 1031,
1746       708,   51, 1526,   51, 1031, 1031, 1031, 1031, 1031, 1031,
1747 
1748      1032, 1033, 1033, 1033, 1033, 1033, 1033,  451,   51,  707,
1749        51, 1034, 1529,  706,   51,   51, 1034, 1034, 1034, 1034,
1750      1034, 1034,  933, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
1751       935,   51,   51,  705, 1043,  704, 1591,   51,   51, 1043,
1752      1043, 1043, 1043, 1043, 1043, 1044, 1045, 1045, 1045, 1045,
1753      1045, 1045,  451, 1575,   51,   51, 1046, 1590,  703,  702,
1754        51, 1046, 1046, 1046, 1046, 1046, 1046,  944, 1057, 1057,
1755      1057, 1057, 1057, 1057, 1057,  946, 1583,   51, 1585, 1058,
1756       701,   51,   51,   51, 1058, 1058, 1058, 1058, 1058, 1058,
1757      1059, 1060, 1060, 1060, 1060, 1060, 1060,  451,   51,   51,
1758 
1759        51, 1061,  700,  699,   51, 1619, 1061, 1061, 1061, 1061,
1760      1061, 1061,  956, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
1761       958,   51,  698,  697, 1074,  694,   51,  689,   51, 1074,
1762      1074, 1074, 1074, 1074, 1074, 1075, 1076, 1076, 1076, 1076,
1763      1076, 1076,  451,   51, 1624,   51, 1077,  688, 1627,   51,
1764        51, 1077, 1077, 1077, 1077, 1077, 1077,  871, 1084, 1084,
1765      1084, 1084, 1084, 1084, 1084,  873,   51,   51,  687, 1085,
1766       686, 1634,   51, 1630, 1085, 1085, 1085, 1085, 1085, 1085,
1767      1086, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1088,   51,
1768       685,  684, 1089,   51, 1090,   51,   51, 1089, 1089, 1089,
1769 
1770      1089, 1089, 1089, 1196, 1197, 1197, 1197, 1197, 1197, 1197,
1771        51,  683,   51,   51,  682,  681,  680,   51,   51, 1090,
1772        51,  622, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1214,
1773       679, 1223, 1224, 1118,   51,   51,  678,   51, 1118, 1118,
1774      1118, 1118, 1118, 1118,   49, 1118, 1118, 1118, 1118, 1118,
1775      1118, 1118,   51,  263, 1119, 1119, 1119, 1119, 1119, 1119,
1776      1119,  677,   51,  676,  675,  674,   51, 1315,   51,   51,
1777       924, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123,   51,
1778        51, 1784, 1124,   51,  928,   51,  673, 1124, 1124, 1124,
1779      1124, 1124, 1124, 1221, 1204,  672, 1205,   51,  466, 1159,
1780 
1781       669,  468,   51,   51,   51,  462, 1784, 1359, 1206,  928,
1782       933, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126,   51,
1783        51,   51, 1127,  550,  937,   51, 1375, 1127, 1127, 1127,
1784      1127, 1127, 1127, 1171, 1216, 1219, 1331, 1183, 1249, 1319,
1785      1376, 1362,   51, 1226,   51, 1365, 1447, 1321,  534,  937,
1786       944, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1227,
1787      1228,   51, 1130, 1659,  948, 1376,  541, 1130, 1130, 1130,
1788      1130, 1130, 1130, 1255, 1256, 1256, 1256, 1256, 1256, 1256,
1789      1261, 1262, 1262, 1262, 1262, 1262, 1262,  637,   51,  948,
1790       956, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1132,  628,
1791 
1792       534,  628, 1133,  622,  960,   51,  622, 1133, 1133, 1133,
1793      1133, 1133, 1133, 1265, 1266, 1266, 1266, 1266, 1266, 1266,
1794      1271, 1272, 1272, 1272, 1272, 1272, 1272,   51,   51,  960,
1795      1135, 1136, 1136, 1136, 1136, 1136, 1136, 1137,  615,  614,
1796       613, 1138,  612,  611,   51,   51, 1138, 1138, 1138, 1138,
1797      1138, 1138, 1139, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
1798      1141,  610, 1337, 1333, 1142,  609, 1143,  608,  607, 1142,
1799      1142, 1142, 1142, 1142, 1142, 1274, 1275, 1275, 1275, 1275,
1800      1275, 1275, 1278, 1279, 1279, 1279, 1279, 1279, 1279,   51,
1801        51, 1143,  924, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1802 
1803      1123,  606,  605,  335, 1147,  235,   51,   51,   51, 1147,
1804      1147, 1147, 1147, 1147, 1147, 1148, 1149, 1149, 1149, 1149,
1805      1149, 1149, 1149, 1150, 1338,   51, 1343, 1151, 1648, 1152,
1806       604,  603, 1151, 1151, 1151, 1151, 1151, 1151, 1285, 1286,
1807      1286, 1286, 1286, 1286, 1286, 1288, 1289, 1289, 1289, 1289,
1808      1289, 1289, 1375,   51, 1152,  933, 1157, 1157, 1157, 1157,
1809      1157, 1157, 1157, 1126,  602,  601, 1784, 1158,  600,  599,
1810        51,   51, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1160,
1811      1160, 1160, 1160, 1160, 1160, 1160, 1161, 1339,   51,  598,
1812      1162, 1784, 1163, 1675,  597, 1162, 1162, 1162, 1162, 1162,
1813 
1814      1162, 1292, 1293, 1293, 1293, 1293, 1293, 1293, 1299, 1300,
1815      1300, 1300, 1300, 1300, 1300, 1380,   51, 1163,  944, 1169,
1816      1169, 1169, 1169, 1169, 1169, 1169, 1129,  596,  595, 1381,
1817      1170,  594,  593,   51, 1429, 1170, 1170, 1170, 1170, 1170,
1818      1170, 1171, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1173,
1819       592, 1430,  591, 1174, 1381, 1175,  580,  577, 1174, 1174,
1820      1174, 1174, 1174, 1174, 1302, 1303, 1303, 1303, 1303, 1303,
1821      1303, 1306, 1307, 1307, 1307, 1307, 1307, 1307, 1380,   51,
1822      1175,  956, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1132,
1823       574,  573, 1784, 1182,  572,  571,   51,   51, 1182, 1182,
1824 
1825      1182, 1182, 1182, 1182, 1183, 1184, 1184, 1184, 1184, 1184,
1826      1184, 1184, 1185,  570,   51, 1433, 1186, 1784, 1187, 1676,
1827       569, 1186, 1186, 1186, 1186, 1186, 1186, 1190, 1190, 1190,
1828      1190, 1190, 1190, 1190, 1367, 1368, 1368, 1368, 1368, 1368,
1829      1368, 1382,   51, 1187, 1086, 1198, 1198, 1198, 1198, 1198,
1830      1198, 1198, 1088,  568,  567, 1383, 1199,  566,   51,   51,
1831      1382, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1201, 1201,
1832      1201, 1201, 1201, 1201, 1784,   51, 1434,  565, 1202, 1673,
1833      1383,   51,  468, 1202, 1202, 1202, 1202, 1202, 1202,   51,
1834       622, 1230, 1230, 1230, 1230, 1230, 1230, 1230,   51, 1784,
1835 
1836       275, 1650, 1007,  451,  362,  550,   51, 1007, 1007, 1007,
1837      1007, 1007, 1007,   49, 1007, 1007, 1007, 1007, 1007, 1007,
1838      1007,   51,  263, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
1839      1272, 1272, 1272, 1272, 1272, 1272, 1272, 1388,   51, 1233,
1840      1234, 1234, 1234, 1234, 1234, 1234, 1319,  534,  541,  451,
1841      1235, 1389,  538,   51, 1784, 1235, 1235, 1235, 1235, 1235,
1842      1235,  924, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1123,
1843        51,  448,  442, 1031,  534,   51, 1389, 1388, 1031, 1031,
1844      1031, 1031, 1031, 1031, 1236, 1237, 1237, 1237, 1237, 1237,
1845      1237, 1784,   51,  532,  442, 1238,  434,  428,   51,  519,
1846 
1847      1238, 1238, 1238, 1238, 1238, 1238,  933, 1042, 1042, 1042,
1848      1042, 1042, 1042, 1042, 1126,   51, 1784,  518, 1043,  517,
1849      1684,   51, 1390, 1043, 1043, 1043, 1043, 1043, 1043, 1239,
1850      1240, 1240, 1240, 1240, 1240, 1240, 1391,  516,   51,  515,
1851      1241, 1651,  514,   51,  513, 1241, 1241, 1241, 1241, 1241,
1852      1241,  944, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1129,
1853        51, 1391,  512, 1058,  511,   51,   51, 1390, 1058, 1058,
1854      1058, 1058, 1058, 1058, 1242, 1243, 1243, 1243, 1243, 1243,
1855      1243, 1784,   51,   51,  510, 1244, 1657, 1693,   51,  509,
1856      1244, 1244, 1244, 1244, 1244, 1244,  956, 1073, 1073, 1073,
1857 
1858      1073, 1073, 1073, 1073, 1132,   51, 1784,  508, 1074,   51,
1859        51,  507,   51, 1074, 1074, 1074, 1074, 1074, 1074, 1245,
1860      1246, 1246, 1246, 1246, 1246, 1246,   51,   51, 1694,   51,
1861      1247,  506,  505,  502, 1574, 1247, 1247, 1247, 1247, 1247,
1862      1247, 1249, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1251,
1863        51,   51, 1396, 1252,  501, 1253,  498,  497, 1252, 1252,
1864      1252, 1252, 1252, 1252,  496,  495, 1397,   51,   51, 1286,
1865      1286, 1286, 1286, 1286, 1286, 1286, 1396,   51, 1329, 1334,
1866      1253, 1139, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1141,
1867      1784, 1397,  494, 1258,   51,  115,  493,   51, 1258, 1258,
1868 
1869      1258, 1258, 1258, 1258, 1148, 1267, 1267, 1267, 1267, 1267,
1870      1267, 1267, 1150, 1436,   51, 1784, 1268,  492,  491, 1695,
1871        51, 1268, 1268, 1268, 1268, 1268, 1268, 1159, 1280, 1280,
1872      1280, 1280, 1280, 1280, 1280, 1161,  479,   51,  478, 1281,
1873       477,  476, 1696,   51, 1281, 1281, 1281, 1281, 1281, 1281,
1874      1171, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1173,  475,
1875        51,  474, 1295,  473,  472, 1697,   51, 1295, 1295, 1295,
1876      1295, 1295, 1295, 1183, 1308, 1308, 1308, 1308, 1308, 1308,
1877      1308, 1185,  471,   51,  273, 1309,  468,  275, 1699,   51,
1878      1309, 1309, 1309, 1309, 1309, 1309, 1086, 1317, 1317, 1317,
1879 
1880      1317, 1317, 1317, 1317, 1088,  451,   51,  364, 1318, 1706,
1881       448,  442,   51, 1318, 1318, 1318, 1318, 1318, 1318, 1319,
1882      1320, 1320, 1320, 1320, 1320, 1320, 1320, 1321,   51,   51,
1883        51, 1322,   51, 1323,   51,   51, 1322, 1322, 1322, 1322,
1884      1322, 1322, 1335, 1398,  442,   51,  435,   51,  435,   51,
1885       427,   51,   51,  418,  417,  414,  413, 1399, 1323, 1336,
1886        51, 1340,   51, 1341, 1523, 1346,   51,  622,  524,  524,
1887       524,  524,  524,  524,  524,  412,   51,   51, 1398,   51,
1888      1404,   51, 1399,   51, 1348, 1349, 1349, 1349, 1349, 1349,
1889      1349, 1350, 1784,   51, 1405, 1351, 1439, 1527,   51, 1437,
1890 
1891      1351, 1351, 1351, 1351, 1351, 1351, 1139, 1352, 1352, 1352,
1892      1352, 1352, 1352, 1352, 1353,  411, 1438, 1784, 1354, 1405,
1893      1143,   51, 1404, 1354, 1354, 1354, 1354, 1354, 1354, 1300,
1894      1300, 1300, 1300, 1300, 1300, 1300, 1784,  410,   51,  409,
1895       408, 1406, 1406, 1455,  407, 1143, 1148, 1355, 1355, 1355,
1896      1355, 1355, 1355, 1355, 1356, 1407, 1784, 1456, 1357,   51,
1897      1152, 1784,   51, 1357, 1357, 1357, 1357, 1357, 1357, 1412,
1898      1413, 1413, 1413, 1413, 1413, 1413,   51,  406,  405,   51,
1899      1407, 1784, 1456,  404,   51, 1152, 1159, 1358, 1358, 1358,
1900      1358, 1358, 1358, 1358, 1359, 1572, 1441,  403, 1360,  402,
1901 
1902      1163,   51,  401, 1360, 1360, 1360, 1360, 1360, 1360, 1415,
1903      1416, 1416, 1416, 1416, 1416, 1416, 1419, 1420, 1420, 1420,
1904      1420, 1420, 1420,  400,   51, 1163, 1171, 1361, 1361, 1361,
1905      1361, 1361, 1361, 1361, 1362,   51,   51,   51, 1363,   51,
1906      1175,   51,  399, 1363, 1363, 1363, 1363, 1363, 1363,  398,
1907      1426,  397,   51,   51,   51,  392,   51, 1710,  391,   51,
1908        51, 1714, 1431, 1428,   51, 1175, 1183, 1364, 1364, 1364,
1909      1364, 1364, 1364, 1364, 1365,   51,   51,   51, 1366,  390,
1910      1187,   51, 1455, 1366, 1366, 1366, 1366, 1366, 1366, 1427,
1911       389, 1440,   51,  388, 1443,  317, 1784,  387,  386,   51,
1912 
1913        51, 1502,   51, 1444,  385, 1187, 1249, 1369, 1369, 1369,
1914      1369, 1369, 1369, 1369, 1251, 1503,   51,   51, 1370,   51,
1915      1712, 1784, 1716, 1370, 1370, 1370, 1370, 1370, 1370, 1139,
1916      1377, 1377, 1377, 1377, 1377, 1377, 1377, 1353, 1618,  384,
1917      1503, 1378,  383,  382,   51,   51, 1378, 1378, 1378, 1378,
1918      1378, 1378, 1148, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
1919      1356,   51,   51,  376, 1385,  275,  364,   51,  271, 1385,
1920      1385, 1385, 1385, 1385, 1385, 1159, 1392, 1392, 1392, 1392,
1921      1392, 1392, 1392, 1359,   51, 1718, 1719, 1393,  361, 1728,
1922        51,   51, 1393, 1393, 1393, 1393, 1393, 1393, 1171, 1400,
1923 
1924      1400, 1400, 1400, 1400, 1400, 1400, 1362,   51,   51,  268,
1925      1401,  357, 1736, 1737,   51, 1401, 1401, 1401, 1401, 1401,
1926      1401, 1183, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1365,
1927       262,   51,  256, 1409,  138,  345, 1742,   51, 1409, 1409,
1928      1409, 1409, 1409, 1409, 1319, 1421, 1421, 1421, 1421, 1421,
1929      1421, 1421, 1321,  344,   51,  343, 1422,  338, 1743,   51,
1930        51, 1422, 1422, 1422, 1422, 1422, 1422, 1249, 1446, 1446,
1931      1446, 1446, 1446, 1446, 1446, 1447,   51,   51,  317, 1448,
1932       337, 1253, 1746,  336, 1448, 1448, 1448, 1448, 1448, 1448,
1933      1461, 1462, 1462, 1462, 1462, 1462, 1462, 1466, 1467, 1467,
1934 
1935      1467, 1467, 1467, 1467, 1502,   51, 1253, 1139, 1257, 1257,
1936      1257, 1257, 1257, 1257, 1257, 1353,  335,  334, 1784, 1258,
1937       333,  332,   51,   51, 1258, 1258, 1258, 1258, 1258, 1258,
1938      1148, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1356, 1509,
1939        51,  331, 1268, 1784,  330,   51,   51, 1268, 1268, 1268,
1940      1268, 1268, 1268, 1159, 1280, 1280, 1280, 1280, 1280, 1280,
1941      1280, 1359,   51,   51,  329, 1281, 1749,  328,   51,  327,
1942      1281, 1281, 1281, 1281, 1281, 1281, 1171, 1294, 1294, 1294,
1943      1294, 1294, 1294, 1294, 1362,   51, 1750,  326, 1295,  325,
1944      1756,   51,   51, 1295, 1295, 1295, 1295, 1295, 1295, 1183,
1945 
1946      1308, 1308, 1308, 1308, 1308, 1308, 1308, 1365,   51,   51,
1947       324, 1309,  323,  320, 1764,   51, 1309, 1309, 1309, 1309,
1948      1309, 1309, 1249, 1457, 1457, 1457, 1457, 1457, 1457, 1457,
1949      1447,  319,   51,  318, 1458,  317,  316,  315,  314, 1458,
1950      1458, 1458, 1458, 1458, 1458, 1469, 1470, 1470, 1470, 1470,
1951      1470, 1470, 1475, 1476, 1476, 1476, 1476, 1476, 1476, 1478,
1952      1479, 1479, 1479, 1479, 1479, 1479, 1484, 1485, 1485, 1485,
1953      1485, 1485, 1485, 1487, 1488, 1488, 1488, 1488, 1488, 1488,
1954      1493, 1494, 1494, 1494, 1494, 1494, 1494, 1496, 1497, 1497,
1955      1497, 1497, 1497, 1497, 1413, 1413, 1413, 1413, 1413, 1413,
1956 
1957      1413, 1504, 1504,   51,   51,   51,   51,   51,   51,   51,
1958       313,  312,   51, 1544, 1544, 1505, 1784, 1548, 1548,   51,
1959        51,   51,   51,   51,   51,   51,   51, 1545, 1784,   51,
1960      1771, 1549, 1784, 1519, 1514, 1515,   51, 1522, 1528, 1520,
1961      1505, 1784, 1319, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
1962      1321, 1525, 1545, 1784, 1507,  311, 1549, 1784,   51, 1507,
1963      1507, 1507, 1507, 1507, 1507, 1249, 1369, 1369, 1369, 1369,
1964      1369, 1369, 1369, 1447,  310,   51,  309, 1370, 1773,  308,
1965       307,  306, 1370, 1370, 1370, 1370, 1370, 1370, 1538, 1539,
1966      1539, 1539, 1539, 1539, 1539, 1467, 1467, 1467, 1467, 1467,
1967 
1968      1467, 1467, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1552,
1969      1552, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1556, 1556,
1970      1560, 1560,  305, 1553, 1784, 1494, 1494, 1494, 1494, 1494,
1971      1494, 1494, 1557, 1784, 1561, 1784, 1564, 1565, 1565, 1565,
1972      1565, 1565, 1565,  304,   51,   51,   51,  303, 1553, 1784,
1973      1567, 1568, 1568, 1568, 1568, 1568, 1568, 1557, 1784, 1561,
1974      1784,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1975      1573,   51,   51, 1576,  302,  301, 1577,   51,   51,  300,
1976       299,   51,   51,   51,   51,   51,   51, 1593,   51,   51,
1977      1578, 1579, 1580, 1581,   51,   51, 1593, 1584, 1586, 1582,
1978 
1979       298, 1594,  297,  296,  295, 1587,  294, 1589,  293,  138,
1980      1784, 1588, 1595, 1596, 1596, 1596, 1596, 1596, 1596, 1599,
1981      1600, 1600, 1600, 1600, 1600, 1600, 1594, 1603, 1604, 1604,
1982      1604, 1604, 1604, 1604,  292, 1784, 1607, 1608, 1608, 1608,
1983      1608, 1608, 1608, 1611, 1612, 1612, 1612, 1612, 1612, 1612,
1984      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1615, 1615,   51,
1985        51,   51,   51,   51,   51,   51,   51,   51,  291,   51,
1986        51, 1616, 1784,   51,   51,   51,   51,   51,   51,   51,
1987        51,   51,   51,   51,   51, 1620,   51,   51, 1628,  290,
1988        51,   51,   51, 1633, 1631, 1622, 1616, 1784, 1621, 1623,
1989 
1990      1625, 1658, 1705, 1626, 1649, 1629, 1632, 1635, 1636, 1636,
1991      1636, 1636, 1636, 1636, 1596, 1596, 1596, 1596, 1596, 1596,
1992      1596, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1604, 1604,
1993      1604, 1604, 1604, 1604, 1604, 1608, 1608, 1608, 1608, 1608,
1994      1608, 1608, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1644,
1995      1645, 1645, 1645, 1645, 1645, 1645,   51,   51,  289,   51,
1996        51,   51,   51,   51, 1636, 1636, 1636, 1636, 1636, 1636,
1997      1636,   51,  288,   51,   51, 1652,   51,   51,   51,   51,
1998        51, 1645, 1645, 1645, 1645, 1645, 1645, 1645,   51,   51,
1999      1647,   51, 1653,   51,   51, 1654, 1655, 1656, 1660,   51,
2000 
2001        51,   51,   51,  287,   51,   51,   51, 1668,   51,   51,
2002        51,   51,   51,  286,  285, 1669,   51,   51,   51,   51,
2003      1678,   51,   51,   51, 1671, 1670,   51,   51,   51,   51,
2004      1672, 1674, 1680, 1679,   51,   51,   51, 1677,  284,   51,
2005        51, 1683,   51,  283,   51,   51,   51, 1685,  282,  281,
2006      1686,   51,   51,   51,  280, 1688,   51,   51, 1689,   51,
2007      1700, 1687,  279,   51,   51, 1698, 1692,   51, 1690,   51,
2008        51, 1691,   51,   51,   51,   51,   51, 1701, 1702, 1703,
2009      1704,   51,   51,   51,   51,  278,   51,   51,   51,   51,
2010        51, 1707,   51,   51,  275,   51,   51, 1717, 1708,   51,
2011 
2012        51, 1709, 1721, 1711, 1713,   51,  263, 1715,   51, 1722,
2013        51, 1720,   51,   51,  268,   51,   51, 1727,   51,   51,
2014      1725, 1723, 1724, 1726,   51,   51,   51,   51, 1731,   51,
2015       255, 1729,   51,   51,  254,   51,   51,   51,  253,   51,
2016        51,   51, 1730,   51,  252, 1732,   51, 1734, 1739,   51,
2017      1738, 1733,  251,   51,   51, 1735,   51,   51,   51,   51,
2018      1740, 1741,   51,   51,   51,   51,   51,  250, 1744, 1745,
2019        51,   51, 1747,  249,  248,   51,   51,  247,   51,   51,
2020        51,   51,   51, 1748, 1751,   51,   51,  246,   51,   51,
2021      1752, 1753, 1755,   51, 1758,   51, 1757, 1754,  243, 1762,
2022 
2023        51, 1759,   51,   51, 1760,   51,   51,   51,   51,   51,
2024        51,   51,   51,  240,   51, 1761,   51,   51,   51, 1765,
2025        51,   51,   51, 1763,   51,   51,   51,   51,   51,   51,
2026      1766,   51,  237,   51, 1767,   51, 1775,   51,   51,   51,
2027        51, 1768, 1769, 1772,   51,   51, 1778, 1774,   51, 1770,
2028        51, 1776,   51,   51, 1777,  236,   51,   51,  235, 1779,
2029        51,  234,   51, 1782, 1783,   51,  231,   51,  230,   51,
2030        51,  229,  228,  227,  226, 1780,  225,   51,  224,  223,
2031       222, 1781,   42,  221,   42,   59,  220,   59,   59,   59,
2032        59,   59,   59,  147,  219,  147,  154,  154,  154,  267,
2033 
2034       267,  267,  276,  276,  276,  356,  356,  356,  359,  359,
2035       359,  360,  360,  360,  367,  367,  367,  365,  365,  365,
2036       371,  371,  371,  375,  218,  375,  441,  441,  441,  446,
2037       446,  446,  447,  447,  447,  456,  456,  456,  460,  217,
2038       460,  461,  461,  461,  369,  369,  216,  212,  369,  465,
2039       465,  465,  469,  469,  469,  359,  359,  359,  531,  531,
2040       531,  535,  535,  535,  536,  536,  536,  537,  537,  537,
2041       367,  367,  367,  542,  542,  542,  454,  454,  211,  201,
2042       454,  547,  547,  547,  551,  551,  551,  555,  200,  555,
2043       556,  556,  556,  560,  560,  560,  564,  199,  564,  627,
2044 
2045       627,  627,  456,  456,  456,  635,  635,  635,  636,  636,
2046       636,  644,  644,  644,  648,  194,  648,  651,  189,  651,
2047       652,  652,  652,  656,  656,  656,  660,  188,  660,  554,
2048       554,  187,  186,  554,  558,  558,  185,  184,  558,  666,
2049       666,  666,  670,  670,  670,  564,  564,  183,  564,  536,
2050       536,  536,  719,  719,  719,  723,  723,  723,  726,  726,
2051       726,  727,  727,  727,  728,  728,  728,  733,  733,  733,
2052       642,  642,  182,  181,  642,  738,  738,  738,  742,  742,
2053       742,  648,  648,  180,  648,  650,  650,  176,  175,  650,
2054       651,  651,  174,  651,  652,  652,  654,  654,  173,  172,
2055 
2056       654,  749,  749,  749,  753,  753,  753,  660,  660,  171,
2057       660,  757,  170,  757,  760,  169,  760,  761,  761,  761,
2058       765,  765,  765,  769,  168,  769,  812,  812,  812,  644,
2059       644,  644,  656,  656,  656,  823,  823,  823,  824,  824,
2060       824,  832,  832,  832,  836,  167,  836,  839,  166,  839,
2061       840,  840,  840,  844,  844,  844,  848,  165,  848,  851,
2062       164,  851,  854,  163,  854,  855,  855,  855,  859,  859,
2063       859,  863,  162,  863,  756,  161,  160,  756,  757,  757,
2064       155,  757,  759,  759,  146,  145,  759,  760,  760,  140,
2065       760,  761,  761,  763,  763,   55,   52,  763,  870,  870,
2066 
2067       870,  874,  874,  874,  769,  769,   43,  769,   49,   49,
2068        49,   41,   49,   49,  727,  727,  727,  910,  910,  910,
2069       914,  914,  914,  917,  917,  917,  920,  920,  920,  921,
2070       921,  921,  922,  922,  922,  927,  927,  927,  830,  830,
2071      1784, 1784,  830,  932,  932,  932,  936,  936,  936,  836,
2072       836, 1784,  836,  838,  838, 1784, 1784,  838,  839,  839,
2073      1784,  839,  840,  840,  842,  842, 1784, 1784,  842,  943,
2074       943,  943,  947,  947,  947,  848,  848, 1784,  848,  850,
2075      1784, 1784,  850,  851,  851, 1784,  851,  853,  853, 1784,
2076      1784,  853,  854,  854, 1784,  854,  855,  855,  857,  857,
2077 
2078      1784, 1784,  857,  955,  955,  955,  959,  959,  959,  863,
2079       863, 1784,  863,  961, 1784,  961,  964, 1784,  964,  967,
2080      1784,  967,  968,  968,  968,  972,  972,  972,  976, 1784,
2081       976,   49,   49,   49, 1784,   49,   49, 1008, 1008, 1008,
2082       832,  832,  832,  844,  844,  844,  859,  859,  859, 1022,
2083      1022, 1022, 1023, 1023, 1023, 1031, 1031, 1031, 1035, 1784,
2084      1035, 1038, 1784, 1038, 1039, 1039, 1039, 1043, 1043, 1043,
2085      1047, 1784, 1047, 1050, 1784, 1050, 1053, 1784, 1053, 1054,
2086      1054, 1054, 1058, 1058, 1058, 1062, 1784, 1062, 1063, 1784,
2087      1063, 1066, 1784, 1066, 1069, 1784, 1069, 1070, 1070, 1070,
2088 
2089      1074, 1074, 1074, 1078, 1784, 1078,  961, 1784,  961,  963,
2090      1784, 1784,  963,  964,  964, 1784,  964,  966,  966, 1784,
2091      1784,  966,  967,  967, 1784,  967,  968,  968,  970,  970,
2092      1784, 1784,  970, 1085, 1085, 1085, 1089, 1089, 1089,  976,
2093       976, 1784,  976,   49,   49,   49, 1784,   49,   49,  921,
2094       921,  921, 1120, 1120, 1120, 1124, 1124, 1124, 1127, 1127,
2095      1127, 1130, 1130, 1130, 1133, 1133, 1133, 1134, 1134, 1134,
2096      1142, 1142, 1142, 1029, 1029, 1784, 1784, 1029, 1147, 1147,
2097      1147, 1151, 1151, 1151, 1035, 1035, 1784, 1035, 1037, 1037,
2098      1784, 1784, 1037, 1038, 1038, 1784, 1038, 1039, 1039, 1041,
2099 
2100      1041, 1784, 1784, 1041, 1158, 1158, 1158, 1162, 1162, 1162,
2101      1047, 1047, 1784, 1047, 1049, 1784, 1784, 1049, 1050, 1050,
2102      1784, 1050, 1052, 1052, 1784, 1784, 1052, 1053, 1053, 1784,
2103      1053, 1054, 1054, 1056, 1056, 1784, 1784, 1056, 1170, 1170,
2104      1170, 1174, 1174, 1174, 1062, 1062, 1784, 1062, 1063, 1784,
2105      1063, 1065, 1784, 1784, 1065, 1066, 1066, 1784, 1066, 1068,
2106      1068, 1784, 1784, 1068, 1069, 1069, 1784, 1069, 1070, 1070,
2107      1072, 1072, 1784, 1784, 1072, 1182, 1182, 1182, 1186, 1186,
2108      1186, 1078, 1078, 1784, 1078, 1188, 1784, 1188, 1191, 1784,
2109      1191, 1194, 1784, 1194, 1195, 1195, 1195, 1199, 1199, 1199,
2110 
2111      1203, 1784, 1203,   49,   49,   49, 1784,   49,   49, 1231,
2112      1231, 1231, 1031, 1031, 1031, 1043, 1043, 1043, 1058, 1058,
2113      1058, 1074, 1074, 1074, 1248, 1248, 1248, 1254, 1254, 1254,
2114      1252, 1252, 1252, 1259, 1259, 1259, 1258, 1258, 1258, 1260,
2115      1784, 1260, 1263, 1784, 1263, 1264, 1264, 1264, 1269, 1269,
2116      1269, 1268, 1268, 1268, 1270, 1784, 1270, 1273, 1784, 1273,
2117      1276, 1784, 1276, 1277, 1277, 1277, 1282, 1282, 1282, 1281,
2118      1281, 1281, 1283, 1784, 1283, 1284, 1784, 1284, 1287, 1784,
2119      1287, 1290, 1784, 1290, 1291, 1291, 1291, 1296, 1296, 1296,
2120      1295, 1295, 1295, 1297, 1784, 1297, 1298, 1784, 1298, 1301,
2121 
2122      1784, 1301, 1304, 1784, 1304, 1305, 1305, 1305, 1310, 1310,
2123      1310, 1309, 1309, 1309, 1311, 1784, 1311, 1188, 1784, 1188,
2124      1190, 1784, 1784, 1190, 1191, 1191, 1784, 1191, 1193, 1193,
2125      1784, 1784, 1193, 1194, 1194, 1784, 1194, 1195, 1195, 1197,
2126      1197, 1784, 1784, 1197, 1318, 1318, 1318, 1322, 1322, 1322,
2127      1203, 1203, 1784, 1203,   49,   49,   49, 1784,   49,   49,
2128      1134, 1134, 1134, 1354, 1354, 1354, 1357, 1357, 1357, 1360,
2129      1360, 1360, 1363, 1363, 1363, 1366, 1366, 1366, 1371, 1371,
2130      1371, 1370, 1370, 1370, 1373, 1784, 1373, 1374, 1374, 1374,
2131      1256, 1256, 1784, 1784, 1256, 1378, 1378, 1378, 1379, 1379,
2132 
2133      1379, 1260, 1260, 1784, 1260, 1262, 1262, 1784, 1784, 1262,
2134      1263, 1263, 1784, 1263, 1264, 1264, 1266, 1266, 1784, 1784,
2135      1266, 1385, 1385, 1385, 1386, 1386, 1386, 1270, 1270, 1784,
2136      1270, 1272, 1784, 1784, 1272, 1273, 1273, 1784, 1273, 1275,
2137      1275, 1784, 1784, 1275, 1276, 1276, 1784, 1276, 1277, 1277,
2138      1279, 1279, 1784, 1784, 1279, 1393, 1393, 1393, 1394, 1394,
2139      1394, 1283, 1283, 1784, 1283, 1284, 1784, 1284, 1286, 1784,
2140      1784, 1286, 1287, 1287, 1784, 1287, 1289, 1289, 1784, 1784,
2141      1289, 1290, 1290, 1784, 1290, 1291, 1291, 1293, 1293, 1784,
2142      1784, 1293, 1401, 1401, 1401, 1402, 1402, 1402, 1297, 1297,
2143 
2144      1784, 1297, 1298, 1784, 1298, 1300, 1784, 1784, 1300, 1301,
2145      1301, 1784, 1301, 1303, 1303, 1784, 1784, 1303, 1304, 1304,
2146      1784, 1304, 1305, 1305, 1307, 1307, 1784, 1784, 1307, 1409,
2147      1409, 1409, 1410, 1410, 1410, 1311, 1311, 1784, 1311, 1411,
2148      1784, 1411, 1414, 1784, 1414, 1417, 1784, 1417, 1418, 1418,
2149      1418, 1423, 1784, 1423, 1422, 1422, 1422, 1424, 1784, 1424,
2150        49,   49,   49, 1784,   49,   49, 1449, 1784, 1449, 1448,
2151      1448, 1448, 1450, 1784, 1450, 1258, 1258, 1258, 1451, 1784,
2152      1451, 1268, 1268, 1268, 1452, 1784, 1452, 1281, 1281, 1281,
2153      1453, 1784, 1453, 1295, 1295, 1295, 1454, 1784, 1454, 1309,
2154 
2155      1309, 1309, 1368, 1368, 1784, 1784, 1368, 1458, 1458, 1458,
2156      1459, 1459, 1459,  367,  367,  367, 1373, 1373, 1784, 1373,
2157      1460, 1460, 1460, 1463, 1784, 1463, 1464, 1464, 1464, 1465,
2158      1465, 1465, 1468, 1784, 1468, 1471, 1784, 1471, 1472, 1472,
2159      1472, 1473, 1473, 1473, 1474, 1784, 1474, 1477, 1784, 1477,
2160      1480, 1784, 1480, 1481, 1481, 1481, 1482, 1482, 1482, 1483,
2161      1784, 1483, 1486, 1784, 1486, 1489, 1784, 1489, 1490, 1490,
2162      1490, 1491, 1491, 1491, 1492, 1784, 1492, 1495, 1784, 1495,
2163      1498, 1784, 1498, 1499, 1499, 1499, 1500, 1500, 1500, 1411,
2164      1784, 1411, 1413, 1784, 1784, 1413, 1414, 1414, 1784, 1414,
2165 
2166      1416, 1416, 1784, 1784, 1416, 1417, 1417, 1784, 1417, 1418,
2167      1418, 1420, 1420, 1784, 1784, 1420, 1507, 1507, 1507, 1508,
2168      1784, 1508, 1424, 1424, 1784, 1424,   49,   49,   49, 1784,
2169        49,   49, 1530, 1530, 1530, 1370, 1370, 1370, 1532, 1784,
2170      1532, 1533, 1784, 1533, 1534, 1784, 1534, 1535, 1784, 1535,
2171      1536, 1784, 1536, 1537, 1784, 1537, 1540, 1784, 1540, 1541,
2172      1541, 1541, 1542, 1542, 1542, 1543, 1784, 1543, 1462, 1462,
2173      1784, 1784, 1462, 1463, 1463, 1784, 1463, 1464, 1464, 1546,
2174      1784, 1546, 1467, 1784, 1784, 1467, 1468, 1468, 1784, 1468,
2175      1470, 1470, 1784, 1784, 1470, 1471, 1471, 1784, 1471, 1472,
2176 
2177      1472, 1550, 1784, 1550, 1474, 1784, 1474, 1476, 1784, 1784,
2178      1476, 1477, 1477, 1784, 1477, 1479, 1479, 1784, 1784, 1479,
2179      1480, 1480, 1784, 1480, 1481, 1481, 1554, 1784, 1554, 1483,
2180      1784, 1483, 1485, 1784, 1784, 1485, 1486, 1486, 1784, 1486,
2181      1488, 1488, 1784, 1784, 1488, 1489, 1489, 1784, 1489, 1490,
2182      1490, 1558, 1784, 1558, 1492, 1784, 1492, 1494, 1784, 1784,
2183      1494, 1495, 1495, 1784, 1495, 1497, 1497, 1784, 1784, 1497,
2184      1498, 1498, 1784, 1498, 1499, 1499, 1562, 1784, 1562, 1563,
2185      1784, 1563, 1566, 1784, 1566, 1569, 1784, 1569, 1570, 1570,
2186      1570, 1571, 1784, 1571,   49,   49,   49, 1784,   49,   49,
2187 
2188      1592, 1784, 1592, 1460, 1784, 1460, 1465, 1784, 1465, 1473,
2189      1784, 1473, 1482, 1784, 1482, 1491, 1784, 1491, 1500, 1784,
2190      1500, 1539, 1539, 1784, 1784, 1539, 1540, 1540, 1784, 1540,
2191      1541, 1541, 1531, 1784, 1531, 1597, 1784, 1597, 1598, 1784,
2192      1598, 1601, 1784, 1601, 1602, 1784, 1602, 1605, 1784, 1605,
2193      1606, 1784, 1606, 1609, 1784, 1609, 1610, 1784, 1610, 1613,
2194      1784, 1613, 1565, 1784, 1784, 1565, 1568, 1568, 1784, 1784,
2195      1568, 1617, 1784, 1617, 1542, 1784, 1542, 1637, 1784, 1637,
2196      1596, 1784, 1784, 1596, 1600, 1784, 1784, 1600, 1604, 1784,
2197      1784, 1604, 1608, 1784, 1784, 1608, 1612, 1784, 1784, 1612,
2198 
2199      1643, 1784, 1643, 1646, 1784, 1646, 1636, 1784, 1784, 1636,
2200      1662, 1784, 1662, 1663, 1784, 1663, 1664, 1784, 1664, 1665,
2201      1784, 1665, 1666, 1784, 1666, 1645, 1784, 1784, 1645, 1681,
2202      1784, 1681, 1682, 1784, 1682,    3, 1784, 1784, 1784, 1784,
2203      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2204      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2205      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2206      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
2207      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784
2208     } ;
2209 
2210 static const flex_int16_t yy_chk[7789] =
2211     {   0,
2212         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2213         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2214         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2215         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2216         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2217         1,    1,   11,   11,   11,   11,   11,   11,   11,   11,
2218        11,   11,   14,   14,   92,   11,   11,   11,   92,   11,
2219        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2220        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
2221        11,   11,   11,   11,   12,   16,   16,   20,   23,   20,
2222 
2223        20,   31,   23,  411,   20,   24,   24,   25,   23,   20,
2224        31,   23,   25,   20,   21,   20,   90,  411,   90,   12,
2225        17,   17,   17,   17,   17,   17,   17,   17,   21,   22,
2226        89, 1287,   26,   89,   17,   21,   26,   34,  101,   22,
2227        97,   34,   22,   27,  101,   27,   22,   93,   26,   34,
2228        27,   27,   93,   27,   34, 1290,   34,   27,  129,   17,
2229        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
2230        29,   29,   97,   18, 1291,   36,  129,   36,   18,   18,
2231        18,   18,   18,   18,   28,   29, 1295,   28,   28,   29,
2232        28,   36,   28,   29,   28,   29,   28,   30,   36,   28,
2233 
2234        33,   30,   29,   32,  150,   33,   33,  102,   33,   33,
2235        30,   30,  102,   38,   30,   32,   30,   32,   35,   32,
2236        98,   38,   32,  133,   35,   38,   35,   38,   35,  150,
2237       124,  218,   35,  133,   35,   35,   44,   44,   44,   44,
2238        44,   44,   44,  124,  218,  105,   98,   44,  105,  248,
2239       105,   98,   44,   44,   44,   44,   44,   44,   45,   45,
2240        45,   45,   45,   45,   45,  158,  247,  586,  247,   45,
2241       263,  263,  248,  586,   45,   45,   45,   45,   45,   45,
2242        46,   46,   46,   46,   46,   46,   46,   46,  676,  336,
2243       158,  676,   46,   78,  336,  270,  348,   46,   46,   46,
2244 
2245        46,   46,   46,   48,   48,   48,   48,   48,   48,   48,
2246        48,   50,   50,   50,   50,   50,   50,   50,  373,   78,
2247       270,  348,   50,  435,  435,   78, 1296,   50,   50,   50,
2248        50,   50,   50,   52,   52,   52,   52,   52,   52,   52,
2249       622,  622,  675,  373,   52,  673,  673,  675,  437,   52,
2250        52,   52,   52,   52,   52,   58,   58,   58,   58,   58,
2251        58,   58,  131,  262,  262,  262,  262,  262,  262,  262,
2252       352,  131,  148,  437,  148,  148,  148,  148,  148,  148,
2253       148,  444,  450, 1297,  352,  148,  280,  280,  280,  280,
2254       148,  148,  148,  148,  148,  148,  149,  149,  149,  149,
2255 
2256       149,  149,  149,  149,  464,  280,  444,  450,  149,  352,
2257       149, 1301,  464,  149,  149,  149,  149,  149,  149,  273,
2258       273,  273,  273,  273,  273,  273,  358,  358,  358,  358,
2259       358,  358,  358,  368,  690,  149,  151,  151,  151,  151,
2260       151,  151,  151,  151,  458,  522,  674,  368,  151,  562,
2261       630,  690,  674,  151,  151,  151,  151,  151,  151,  152,
2262       152,  152,  152,  152,  152,  152,  152,  152, 1304,  458,
2263       522,  152,  368,  633,  562,  630,  152,  152,  152,  152,
2264       152,  152,  153,  153,  153,  153,  153,  153,  153,  153,
2265       155,  155,  155,  155,  155,  155,  155,  155,  633,  686,
2266 
2267       686,  155,  565,  565,  565,  565,  155,  155,  155,  155,
2268       155,  155,  157,  157,  157,  157,  157,  157,  157,  157,
2269       157,  369,  639,  682,  157,  394,  157,  682,  305,  157,
2270       157,  157,  157,  157,  157,  369,  305,  362,  362,  362,
2271       362,  362,  362,  362, 1305,  394,  408,  639,  305,  678,
2272      1309,  157,  256,  256,  256,  256,  256,  256,  256,  408,
2273       369,  394,  646,  256,  305,  683, 1310,  678,  256,  256,
2274       256,  256,  256,  256,  258,  258,  258,  258,  258,  258,
2275       258,  546,  681,  683,  681,  258, 1311,  646,  658,  546,
2276       258,  258,  258,  258,  258,  258,  259,  259,  259,  259,
2277 
2278       259,  259,  259,  259,  261,  261,  261,  261,  261,  261,
2279       261,  556,  685,  658,  685,  261,  696,  696, 1318,  556,
2280       261,  261,  261,  261,  261,  261,  264,  264,  264,  264,
2281       264,  264,  264,  264,  665,  707,  707,  716,  264, 1322,
2282      1351,  714,  665,  264,  264,  264,  264,  264,  264,  266,
2283       266,  266,  266,  266,  266,  266,  266,  269,  269,  269,
2284       269,  269,  269,  269,  269,  269,  714, 1354, 1357,  269,
2285      1360,  269,  716,  453,  269,  269,  269,  269,  269,  269,
2286       434,  434,  434,  434,  434,  434,  434,  453,  688, 1363,
2287      1366, 1370,  684,  454,  526,  688,  269,  274,  274,  274,
2288 
2289       274,  274,  274,  274,  274,  274,  684,  454,  526,  274,
2290      1371,  770,  453,  689,  274,  274,  274,  274,  274,  274,
2291       275,  275,  275,  275,  275,  275,  275,  689,  770, 1372,
2292       755,  275,  454,  526,  484,  679,  275,  275,  275,  275,
2293       275,  275,  341,  484,  341,  679,  341,  341,  462,  462,
2294       462,  462,  462,  462,  462,  755,  341,  553,  341,  341,
2295       554,  341,  346,  486,  346,  346,  346,  346,  346,  346,
2296       346,  553,  486, 1373,  554,  346,  767, 1374,  772, 1378,
2297       346,  346,  346,  346,  346,  346,  347,  347,  347,  347,
2298       347,  347,  347,  347,  691,  772,  553, 1379,  347,  554,
2299 
2300       347,  767,  691,  347,  347,  347,  347,  347,  347,  466,
2301       466,  466,  466,  466,  466,  466,  539,  539,  539,  539,
2302       539,  539,  539,  557,  687,  347,  349,  349,  349,  349,
2303       349,  349,  349,  349,  697,  687,  815,  557,  349, 1385,
2304       782,  697,  558,  349,  349,  349,  349,  349,  349,  353,
2305       353,  353,  353,  353,  353,  353,  558,  782,  782,  818,
2306       353,  815,  557,  771,  693,  353,  353,  353,  353,  353,
2307       353,  354,  354,  354,  354,  354,  354,  354,  354,  693,
2308       771,  558, 1386,  354,  818,  821,  827,  771,  354,  354,
2309       354,  354,  354,  354,  355,  355,  355,  355,  355,  355,
2310 
2311       355,  355,  357,  357,  357,  357,  357,  357,  357,  834,
2312       821,  827,  846,  357, 1393, 1394,  778,  695,  357,  357,
2313       357,  357,  357,  357,  361,  361,  361,  361,  361,  361,
2314       361,  361,  695,  778,  834,  361, 1401,  846,  778,  779,
2315       361,  361,  361,  361,  361,  361,  363,  363,  363,  363,
2316       363,  363,  363,  363,  363, 1402,  779, 1409,  363,  779,
2317       786,  780,  791,  363,  363,  363,  363,  363,  363,  364,
2318       364,  364,  364,  364,  364,  364,  364,  786,  780,  791,
2319       364,  780,  786,  790,  791,  364,  364,  364,  364,  364,
2320       364,  370,  370,  370,  370,  370,  370,  370,  370,  370,
2321 
2322       790, 1410,  849,  370,  861,  906,  793,  790,  370,  370,
2323       370,  370,  370,  370,  372,  372,  372,  372,  372,  372,
2324       372,  372,  372,  793,  793, 1414,  372,  849,  372,  861,
2325       906,  372,  372,  372,  372,  372,  372,  544,  544,  544,
2326       544,  544,  544,  544,  548,  548,  548,  548,  548,  548,
2327       548,  587,  692,  372,  393,  962,  589,  974,  393, 1011,
2328       587,  393,  692,  641,  393,  589,  393,  393,  393,  393,
2329       428,  428,  428,  428,  428,  428,  428,  641, 1417, 1014,
2330       962,  428,  974,  796, 1011,  694,  428,  428,  428,  428,
2331       428,  428,  430,  430,  430,  430,  430,  430,  430,  694,
2332 
2333       796,  694,  641,  430, 1014,  796, 1017, 1020,  430,  430,
2334       430,  430,  430,  430,  431,  431,  431,  431,  431,  431,
2335       431,  431,  433,  433,  433,  433,  433,  433,  433,  737,
2336      1418, 1017, 1020,  433, 1422,  797, 1424,  737,  433,  433,
2337       433,  433,  433,  433,  436,  436,  436,  436,  436,  436,
2338       436,  436,  797,  642,  649,  650,  436,  653,  436,  654,
2339       706,  436,  436,  436,  436,  436,  436,  642,  649,  650,
2340       706,  653,  677,  654,  661,  661,  661,  661,  661,  661,
2341       661,  677, 1447,  436,  438,  438,  438,  438,  438,  438,
2342       438, 1026,  642,  649,  650,  438,  653,  798,  654,  698,
2343 
2344       438,  438,  438,  438,  438,  438,  439,  439,  439,  439,
2345       439,  439,  439,  698,  798, 1448, 1026,  439, 1458, 1459,
2346      1033, 1045,  439,  439,  439,  439,  439,  439,  440,  440,
2347       440,  440,  440,  440,  440,  440,  443,  443,  443,  443,
2348       443,  443,  443,  443,  443, 1033, 1045, 1463,  443, 1464,
2349       443, 1468, 1471,  443,  443,  443,  443,  443,  443,  663,
2350       663,  663,  663,  663,  663,  663,  667,  667,  667,  667,
2351       667,  667,  667,  699,  800,  443,  449,  449,  449,  449,
2352       449,  449,  449,  449,  449,  702,  705,  699,  449, 1472,
2353       449,  800, 1477,  449,  449,  449,  449,  449,  449,  702,
2354 
2355       705,  730,  730,  730,  730,  730,  730,  730,  735,  735,
2356       735,  735,  735,  735,  735,  449,  455,  455,  455,  455,
2357       455,  455,  455,  455,  455, 1048, 1480, 1481,  455, 1060,
2358      1064,  801,  799,  455,  455,  455,  455,  455,  455,  457,
2359       457,  457,  457,  457,  457,  457,  457,  457,  801,  799,
2360      1048,  457,  799,  457, 1060, 1064,  457,  457,  457,  457,
2361       457,  457,  739,  739,  739,  739,  739,  739,  739,  744,
2362       744,  744,  744,  744,  744,  744,  758,  773,  457,  467,
2363       467,  467,  467,  467,  467,  467,  467,  467, 1486, 1489,
2364       758,  467, 1490,  774,  773,  783,  467,  467,  467,  467,
2365 
2366       467,  467,  468,  468,  468,  468,  468,  468,  468,  748,
2367       774,  773,  783,  468,  759,  758, 1495,  748,  468,  468,
2368       468,  468,  468,  468,  488,  488,  488,  774,  759,  488,
2369       488,  783, 1498,  488,  488,  805,  488,  762,  488, 1499,
2370       488,  520,  763,  520,  520,  520,  520,  520,  520,  520,
2371      1076,  762,  805,  759,  520, 1136,  763,  807,  807,  520,
2372       520,  520,  520,  520,  520,  521,  521,  521,  521,  521,
2373       521,  521,  521, 1507,  807, 1076,  762,  521, 1540,  521,
2374      1136,  763,  521,  521,  521,  521,  521,  521,  746,  746,
2375       746,  746,  746,  746,  746,  750,  750,  750,  750,  750,
2376 
2377       750,  750,  775,  777,  521,  523,  523,  523,  523,  523,
2378       523,  523,  523,  869, 1189, 1541, 1201,  523, 1234,  775,
2379       777,  869,  523,  523,  523,  523,  523,  523,  527,  527,
2380       527,  527,  527,  527,  527,  527,  775,  777, 1566, 1189,
2381       527, 1201, 1237, 1234, 1240,  527,  527,  527,  527,  527,
2382       527,  528,  528,  528,  528,  528,  528,  528,  528,  529,
2383       529,  529,  529,  529,  529,  529,  931, 1237, 1569, 1240,
2384       529, 1243, 1246, 1271,  931,  529,  529,  529,  529,  529,
2385       529,  530,  530,  530,  530,  530,  530,  530,  530,  532,
2386       532,  532,  532,  532,  532,  532, 1243, 1246, 1271, 1285,
2387 
2388       532, 1597, 1601,  876,  877,  532,  532,  532,  532,  532,
2389       532,  533,  533,  533,  533,  533,  533,  533,  533,  533,
2390       876,  877, 1605,  533, 1285,  878,  877,  829,  533,  533,
2391       533,  533,  533,  533,  534,  534,  534,  534,  534,  534,
2392       534,  829,  878, 1299, 1349,  534, 1609,  878,  879, 1613,
2393       534,  534,  534,  534,  534,  534,  538,  538,  538,  538,
2394       538,  538,  538,  538, 1412,  879,  829,  538, 1299, 1349,
2395       879,  881,  538,  538,  538,  538,  538,  538,  540,  540,
2396       540,  540,  540,  540,  540,  540,  540, 1637,  881, 1412,
2397       540, 1646,  883,  881,  884,  540,  540,  540,  540,  540,
2398 
2399       540,  541,  541,  541,  541,  541,  541,  541,  541,  883,
2400      1283,  884,  541, 1282,  883,  890,  884,  541,  541,  541,
2401       541,  541,  541,  549,  549,  549,  549,  549,  549,  549,
2402       549,  549,  890,  890, 1466,  549, 1281,  891,  886,  902,
2403       549,  549,  549,  549,  549,  549,  550,  550,  550,  550,
2404       550,  550,  550,  550,  891,  886,  902,  550,  886, 1466,
2405       896,  891,  550,  550,  550,  550,  550,  550,  559,  559,
2406       559,  559,  559,  559,  559,  559,  559,  896, 1277, 1276,
2407       559, 1273,  896,  994,  899,  559,  559,  559,  559,  559,
2408       559,  561,  561,  561,  561,  561,  561,  561,  561,  561,
2409 
2410       994,  899,  994,  561,  784,  561,  899,  785,  561,  561,
2411       561,  561,  561,  561,  756,  756,  756,  756,  756,  756,
2412       756,  784, 1001, 1270,  785, 1269,  789,  795,  880,  885,
2413       561,  616,  616,  616,  616,  616,  616,  616,  785, 1001,
2414       784, 1475,  616,  789,  795,  880,  885,  616,  616,  616,
2415       616,  616,  616,  618,  618,  618,  618,  618,  618,  618,
2416       880,  885,  789,  795,  618, 1268, 1475, 1484, 1493,  618,
2417       618,  618,  618,  618,  618,  619,  619,  619,  619,  619,
2418       619,  619,  619,  621,  621,  621,  621,  621,  621,  621,
2419       942, 1264, 1484, 1493,  621,  894,  900,  981,  942,  621,
2420 
2421       621,  621,  621,  621,  621,  623,  623,  623,  623,  623,
2422       623,  623,  894,  900,  981, 1263,  623,  981,  900, 1564,
2423       894,  623,  623,  623,  623,  623,  623,  624,  624,  624,
2424       624,  624,  624,  624,  624,  625,  625,  625,  625,  625,
2425       625,  625,  954, 1260, 1564, 1259,  625, 1258, 1254, 1252,
2426       954,  625,  625,  625,  625,  625,  625,  626,  626,  626,
2427       626,  626,  626,  626,  626,  629,  629,  629,  629,  629,
2428       629,  629,  629,  629,  776,  787,  788,  629, 1251,  629,
2429       993,  830,  629,  629,  629,  629,  629,  629, 1084, 1248,
2430      1247,  776,  787,  788, 1244,  830, 1084,  993,  882,  781,
2431 
2432       993,  787,  788,  776,  629,  632,  632,  632,  632,  632,
2433       632,  632,  632,  632,  792,  882,  781,  632,  984,  632,
2434       830, 1146,  632,  632,  632,  632,  632,  632,  781, 1146,
2435      1241,  792,  882, 1595, 1238,  984, 1599, 1235,  802, 1231,
2436       984,  792,  837,  794,  632,  638,  638,  638,  638,  638,
2437       638,  638,  638,  638,  803,  802,  837,  638, 1595,  638,
2438       794, 1599,  638,  638,  638,  638,  638,  638,  802,  794,
2439      1603,  803,  809,  809,  809,  809,  809,  809,  809, 1203,
2440       838,  837,  841,  803,  638,  643,  643,  643,  643,  643,
2441       643,  643,  643,  643,  838, 1603,  841,  643, 1202, 1199,
2442 
2443      1000, 1195,  643,  643,  643,  643,  643,  643,  645,  645,
2444       645,  645,  645,  645,  645,  645,  645, 1000,  842,  838,
2445       645,  841,  645, 1157,  889,  645,  645,  645,  645,  645,
2446       645, 1157,  842,  850,  850,  850,  850,  850,  850,  850,
2447      1000,  889, 1194, 1191,  987,  852, 1002,  645,  655,  655,
2448       655,  655,  655,  655,  655,  655,  655,  842,  889,  852,
2449       655,  987,  987, 1002, 1186,  655,  655,  655,  655,  655,
2450       655,  657,  657,  657,  657,  657,  657,  657,  657,  657,
2451       892,  853,  856,  657,  852,  657,  857, 1185,  657,  657,
2452       657,  657,  657,  657, 1182,  853,  856,  892, 1174, 1607,
2453 
2454       857,  865,  865,  865,  865,  865,  865,  865,  892,  887,
2455       657,  668,  668,  668,  668,  668,  668,  668,  668,  668,
2456       853,  856, 1173,  668, 1607,  857,  887,  901,  668,  668,
2457       668,  668,  668,  668,  669,  669,  669,  669,  669,  669,
2458       669,  887, 1170, 1162,  901,  669, 1161,  989,  992, 1003,
2459       669,  669,  669,  669,  669,  669,  672,  672,  672,  672,
2460       672,  672,  672,  901,  989,  992, 1003,  672,  898,  989,
2461       992,  897,  672,  672,  672,  672,  672,  672,  867,  867,
2462       867,  867,  867,  867,  867,  898, 1158,  965,  897,  966,
2463       672,  710,  969,  710,  710,  710,  710,  710,  710,  710,
2464 
2465       897,  965,  898,  966,  710, 1151,  969,  997,  998,  710,
2466       710,  710,  710,  710,  710,  711,  711,  711,  711,  711,
2467       711,  711,  711, 1150,  997,  998,  965,  711,  966,  997,
2468       998,  969,  711,  711,  711,  711,  711,  711,  712,  712,
2469       712,  712,  712,  712,  712,  871,  871,  871,  871,  871,
2470       871,  871,  980,  977,  888,  924,  924,  924,  924,  924,
2471       924,  924,  929,  929,  929,  929,  929,  929,  929,  980,
2472       977,  888,  712,  713,  713,  713,  713,  713,  713,  713,
2473       888, 1147, 1142, 1141,  713,  977,  980, 1611, 1635,  713,
2474       713,  713,  713,  713,  713,  715,  715,  715,  715,  715,
2475 
2476       715,  715,  715,  717,  717,  717,  717,  717,  717,  717,
2477       717, 1169, 1611, 1635, 1138,  717, 1644, 1137, 1134, 1169,
2478       717,  717,  717,  717,  717,  717,  718,  718,  718,  718,
2479       718,  718,  718,  718,  720,  720,  720,  720,  720,  720,
2480       720, 1644, 1133, 1130, 1127,  720, 1124, 1120, 1007, 1094,
2481       720,  720,  720,  720,  720,  720,  721,  721,  721,  721,
2482       721,  721,  721,  721,  721, 1007, 1094, 1089,  721, 1085,
2483       990, 1097,  970,  721,  721,  721,  721,  721,  721,  722,
2484       722,  722,  722,  722,  722,  722,  970,  990, 1097, 1078,
2485       722, 1077, 1097, 1102,  990,  722,  722,  722,  722,  722,
2486 
2487       722,  724,  724,  724,  724,  724,  724,  724,  724,  724,
2488      1102,  970, 1074,  724,  986, 1100, 1101, 1099,  724,  724,
2489       724,  724,  724,  724,  725,  725,  725,  725,  725,  725,
2490       725,  986, 1100, 1101, 1099,  725, 1100, 1070, 1101,  986,
2491       725,  725,  725,  725,  725,  725,  729,  729,  729,  729,
2492       729,  729,  729,  729, 1099, 1069, 1066,  729, 1062, 1061,
2493      1104, 1058,  729,  729,  729,  729,  729,  729,  731,  731,
2494       731,  731,  731,  731,  731,  731,  731, 1104, 1104, 1054,
2495       731, 1053, 1106, 1111, 1107,  731,  731,  731,  731,  731,
2496       731,  732,  732,  732,  732,  732,  732,  732,  732, 1106,
2497 
2498      1111, 1107,  732, 1107, 1106, 1109, 1111,  732,  732,  732,
2499       732,  732,  732,  740,  740,  740,  740,  740,  740,  740,
2500       740,  740, 1109, 1109, 1050,  740, 1047, 1204, 1114, 1116,
2501       740,  740,  740,  740,  740,  740,  741,  741,  741,  741,
2502       741,  741,  741,  741, 1204, 1114, 1116,  741, 1114, 1116,
2503      1205, 1046,  741,  741,  741,  741,  741,  741,  751,  751,
2504       751,  751,  751,  751,  751,  751,  751, 1205, 1204, 1043,
2505       751, 1039, 1206, 1208, 1038,  751,  751,  751,  751,  751,
2506       751,  752,  752,  752,  752,  752,  752,  752,  752, 1206,
2507      1208, 1205,  752, 1035, 1034, 1207, 1031,  752,  752,  752,
2508 
2509       752,  752,  752,  764,  764,  764,  764,  764,  764,  764,
2510       764,  764, 1207, 1206, 1207,  764, 1027, 1023, 1022, 1021,
2511       764,  764,  764,  764,  764,  764,  766,  766,  766,  766,
2512       766,  766,  766,  766,  766,  893,  895, 1028,  766, 1018,
2513       766, 1181, 1015,  766,  766,  766,  766,  766,  766, 1181,
2514       978, 1028,  893,  895,  933,  933,  933,  933,  933,  933,
2515       933,  893,  895,  982, 1029,  766,  804,  978,  804,  804,
2516       804,  804,  804,  804,  804, 1012, 1028, 1009, 1029,  804,
2517       982,  982,  978,  804,  804,  804,  804,  804,  804,  804,
2518       806,  806,  806,  806,  806,  806,  806, 1008,  982,  976,
2519 
2520       975,  806,  991, 1029, 1209, 1212,  806,  806,  806,  806,
2521       806,  806,  808,  808,  808,  808,  808,  808,  808,  991,
2522       972, 1209, 1212,  808,  968,  967, 1211,  991,  808,  808,
2523       808,  808,  808,  808,  810,  810,  810,  810,  810,  810,
2524       810,  810, 1209, 1211,  964,  959,  810,  955, 1211,  947,
2525       943,  810,  810,  810,  810,  810,  810,  811,  811,  811,
2526       811,  811,  811,  811,  811,  814,  814,  814,  814,  814,
2527       814,  814,  814,  814,  936,  932,  927,  814,  922,  814,
2528       921,  920,  814,  814,  814,  814,  814,  814,  938,  938,
2529       938,  938,  938,  938,  938,  940,  940,  940,  940,  940,
2530 
2531       940,  940,  917, 1324,  814,  817,  817,  817,  817,  817,
2532       817,  817,  817,  817,  914,  910,  874,  817,  870,  817,
2533      1324,  863,  817,  817,  817,  817,  817,  817,  944,  944,
2534       944,  944,  944,  944,  944,  950,  950,  950,  950,  950,
2535       950,  950,  862, 1325,  817,  820,  820,  820,  820,  820,
2536       820,  820,  820,  820,  859,  855,  854,  820,  851,  820,
2537      1325,  848,  820,  820,  820,  820,  820,  820,  952,  952,
2538       952,  952,  952,  952,  952,  956,  956,  956,  956,  956,
2539       956,  956, 1036,  979,  820,  826,  826,  826,  826,  826,
2540       826,  826,  826,  826,  847,  844, 1036,  826,  840,  826,
2541 
2542       979,  983,  826,  826,  826,  826,  826,  826,  963,  963,
2543       963,  963,  963,  963,  963,  979,  979,  839,  983, 1326,
2544       836, 1036, 1327,  985,  826,  831,  831,  831,  831,  831,
2545       831,  831,  831,  831,  983,  835, 1326,  831,  832, 1327,
2546       985,  988,  831,  831,  831,  831,  831,  831,  833,  833,
2547       833,  833,  833,  833,  833,  833,  833,  985,  988, 1226,
2548       833,  996,  833, 1037,  999,  833,  833,  833,  833,  833,
2549       833,  988,  828,  825, 1317, 1377, 1226, 1037,  996,  824,
2550      1226,  999, 1317, 1377, 1096, 1040, 1343,  833,  843,  843,
2551       843,  843,  843,  843,  843,  843,  843,  996,  999, 1040,
2552 
2553       843, 1096, 1037, 1343,  995,  843,  843,  843,  843,  843,
2554       843,  845,  845,  845,  845,  845,  845,  845,  845,  845,
2555      1096,  995, 1041,  845, 1040,  845,  823, 1224,  845,  845,
2556       845,  845,  845,  845,  995,  822, 1041, 1049, 1049, 1049,
2557      1049, 1049, 1049, 1049, 1224,  819, 1051, 1426, 1052, 1224,
2558       845,  858,  858,  858,  858,  858,  858,  858,  858,  858,
2559      1051, 1041, 1052,  858, 1426,  816, 1095, 1426,  858,  858,
2560       858,  858,  858,  858,  860,  860,  860,  860,  860,  860,
2561       860,  860,  860, 1095, 1055, 1051,  860, 1052,  860, 1056,
2562       813,  860,  860,  860,  860,  860,  860, 1095, 1055,  812,
2563 
2564       769,  768,  765, 1056, 1065, 1065, 1065, 1065, 1065, 1065,
2565      1065, 1067,  761,  860,  872,  872,  872,  872,  872,  872,
2566       872,  872,  872, 1055,  760, 1067,  872,  757, 1056, 1098,
2567      1068,  872,  872,  872,  872,  872,  872,  873,  873,  873,
2568       873,  873,  873,  873, 1068,  753, 1098,  749,  873,  742,
2569      1067, 1427,  738,  873,  873,  873,  873,  873,  873,  903,
2570      1098,  903,  903,  903,  903,  903,  903,  903, 1427, 1068,
2571       733, 1427,  903, 1214, 1227, 1229,  903,  903,  903,  903,
2572       903,  903,  903,  904,  904,  904,  904,  904,  904,  904,
2573      1214, 1227, 1229,  728,  904,  727, 1227, 1229, 1214,  904,
2574 
2575       904,  904,  904,  904,  904,  905,  905,  905,  905,  905,
2576       905,  905,  905, 1384, 1071, 1072,  726,  905,  723,  905,
2577       719, 1384,  905,  905,  905,  905,  905,  905, 1071, 1072,
2578      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1082, 1082, 1082,
2579      1082, 1082, 1082, 1082,  905,  907,  907,  907,  907,  907,
2580       907,  907,  709, 1071, 1072,  708,  907,  704, 1328, 1337,
2581      1347,  907,  907,  907,  907,  907,  907,  908,  908,  908,
2582       908,  908,  908,  908,  908, 1328, 1337, 1347,  703,  908,
2583      1328, 1337, 1347,  701,  908,  908,  908,  908,  908,  908,
2584       909,  909,  909,  909,  909,  909,  909,  909,  911,  911,
2585 
2586       911,  911,  911,  911,  911,  700,  680,  670,  666,  911,
2587       660,  659, 1334, 1344,  911,  911,  911,  911,  911,  911,
2588       912,  912,  912,  912,  912,  912,  912,  912,  912, 1334,
2589      1344,  656,  912,  652,  651, 1428, 1192,  912,  912,  912,
2590       912,  912,  912,  913,  913,  913,  913,  913,  913,  913,
2591      1192, 1344, 1428, 1334,  913,  648,  647, 1429,  644,  913,
2592       913,  913,  913,  913,  913,  915,  915,  915,  915,  915,
2593       915,  915,  915,  915, 1429, 1192, 1428,  915, 1429, 1432,
2594      1433, 1193,  915,  915,  915,  915,  915,  915,  916,  916,
2595       916,  916,  916,  916,  916, 1193, 1432, 1433,  640,  916,
2596 
2597       637, 1433, 1434,  636,  916,  916,  916,  916,  916,  916,
2598       918,  918,  918,  918,  918,  918,  918,  918,  918, 1434,
2599      1193,  635,  918, 1434, 1435, 1437, 1196,  918,  918,  918,
2600       918,  918,  918,  919,  919,  919,  919,  919,  919,  919,
2601      1196, 1435, 1437,  634,  919,  631, 1437, 1435,  628,  919,
2602       919,  919,  919,  919,  919,  923,  923,  923,  923,  923,
2603       923,  923,  923,  627,  620, 1196,  923,  617,  615, 1440,
2604      1442,  923,  923,  923,  923,  923,  923,  925,  925,  925,
2605       925,  925,  925,  925,  925,  925, 1440, 1442, 1440,  925,
2606       611, 1445, 1442, 1512,  925,  925,  925,  925,  925,  925,
2607 
2608       926,  926,  926,  926,  926,  926,  926,  926, 1445,  605,
2609      1512,  926, 1445,  604, 1529, 1513,  926,  926,  926,  926,
2610       926,  926,  934,  934,  934,  934,  934,  934,  934,  934,
2611       934, 1529, 1513,  603,  934,  602, 1529, 1528, 1521,  934,
2612       934,  934,  934,  934,  934,  935,  935,  935,  935,  935,
2613       935,  935,  935, 1513, 1528, 1521,  935, 1528,  598,  597,
2614      1523,  935,  935,  935,  935,  935,  935,  945,  945,  945,
2615       945,  945,  945,  945,  945,  945, 1521, 1523, 1523,  945,
2616       594, 1572, 1574, 1575,  945,  945,  945,  945,  945,  945,
2617       946,  946,  946,  946,  946,  946,  946,  946, 1572, 1574,
2618 
2619      1575,  946,  593,  592, 1580, 1575,  946,  946,  946,  946,
2620       946,  946,  957,  957,  957,  957,  957,  957,  957,  957,
2621       957, 1580,  591,  590,  957,  588, 1583,  585, 1589,  957,
2622       957,  957,  957,  957,  957,  958,  958,  958,  958,  958,
2623       958,  958,  958, 1583, 1580, 1589,  958,  584, 1583, 1586,
2624      1591,  958,  958,  958,  958,  958,  958,  971,  971,  971,
2625       971,  971,  971,  971,  971,  971, 1586, 1591,  583,  971,
2626       582, 1591, 1618, 1586,  971,  971,  971,  971,  971,  971,
2627       973,  973,  973,  973,  973,  973,  973,  973,  973, 1618,
2628       581,  580,  973, 1103,  973, 1112, 1113,  973,  973,  973,
2629 
2630       973,  973,  973, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
2631      1103,  579, 1112, 1113,  578,  577,  576, 1630, 1632,  973,
2632      1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1103,
2633       575, 1112, 1113, 1004, 1630, 1632,  574, 1004, 1004, 1004,
2634      1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1005, 1005,
2635      1005, 1005, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
2636      1006,  573, 1110,  572,  571,  568, 1091, 1197, 1092, 1006,
2637      1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1110,
2638      1093, 1197, 1010, 1091, 1010, 1092,  567, 1010, 1010, 1010,
2639      1010, 1010, 1010, 1110, 1091,  566, 1092, 1093,  564, 1392,
2640 
2641       563,  560, 1105, 1108, 1213,  555, 1197, 1392, 1093, 1010,
2642      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1105,
2643      1108, 1213, 1013,  551, 1013, 1115, 1255, 1013, 1013, 1013,
2644      1013, 1013, 1013, 1400, 1105, 1108, 1213, 1408, 1457, 1506,
2645      1255, 1400, 1115, 1115, 1631, 1408, 1457, 1506,  547, 1013,
2646      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1115,
2647      1115, 1631, 1016, 1631, 1016, 1255,  542, 1016, 1016, 1016,
2648      1016, 1016, 1016, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
2649      1144, 1144, 1144, 1144, 1144, 1144, 1144,  537, 1634, 1016,
2650      1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,  536,
2651 
2652       535,  531, 1019,  525, 1019, 1634,  524, 1019, 1019, 1019,
2653      1019, 1019, 1019, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2654      1153, 1153, 1153, 1153, 1153, 1153, 1153, 1215, 1219, 1019,
2655      1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,  519,  518,
2656       517, 1024,  516,  515, 1215, 1219, 1024, 1024, 1024, 1024,
2657      1024, 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
2658      1025,  514, 1219, 1215, 1025,  513, 1025,  512,  511, 1025,
2659      1025, 1025, 1025, 1025, 1025, 1155, 1155, 1155, 1155, 1155,
2660      1155, 1155, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1220,
2661      1225, 1025, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
2662 
2663      1030,  510,  509,  508, 1030,  507, 1220, 1225, 1620, 1030,
2664      1030, 1030, 1030, 1030, 1030, 1032, 1032, 1032, 1032, 1032,
2665      1032, 1032, 1032, 1032, 1220, 1620, 1225, 1032, 1620, 1032,
2666       505,  502, 1032, 1032, 1032, 1032, 1032, 1032, 1165, 1165,
2667      1165, 1165, 1165, 1165, 1165, 1167, 1167, 1167, 1167, 1167,
2668      1167, 1167, 1256, 1221, 1032, 1042, 1042, 1042, 1042, 1042,
2669      1042, 1042, 1042, 1042,  501,  500, 1256, 1042,  499,  498,
2670      1221, 1654, 1042, 1042, 1042, 1042, 1042, 1042, 1044, 1044,
2671      1044, 1044, 1044, 1044, 1044, 1044, 1044, 1221, 1654,  497,
2672      1044, 1256, 1044, 1654,  496, 1044, 1044, 1044, 1044, 1044,
2673 
2674      1044, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1177, 1177,
2675      1177, 1177, 1177, 1177, 1177, 1261, 1332, 1044, 1057, 1057,
2676      1057, 1057, 1057, 1057, 1057, 1057, 1057,  494,  493, 1261,
2677      1057,  492,  491, 1332, 1332, 1057, 1057, 1057, 1057, 1057,
2678      1057, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
2679       490, 1332,  489, 1059, 1261, 1059,  487,  485, 1059, 1059,
2680      1059, 1059, 1059, 1059, 1179, 1179, 1179, 1179, 1179, 1179,
2681      1179, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1262, 1335,
2682      1059, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
2683       483,  482, 1262, 1073,  481,  480, 1335, 1655, 1073, 1073,
2684 
2685      1073, 1073, 1073, 1073, 1075, 1075, 1075, 1075, 1075, 1075,
2686      1075, 1075, 1075,  479, 1655, 1335, 1075, 1262, 1075, 1655,
2687       477, 1075, 1075, 1075, 1075, 1075, 1075, 1190, 1190, 1190,
2688      1190, 1190, 1190, 1190, 1249, 1249, 1249, 1249, 1249, 1249,
2689      1249, 1265, 1336, 1075, 1087, 1087, 1087, 1087, 1087, 1087,
2690      1087, 1087, 1087,  476,  474, 1265, 1087,  473, 1652, 1336,
2691      1266, 1087, 1087, 1087, 1087, 1087, 1087, 1088, 1088, 1088,
2692      1088, 1088, 1088, 1088, 1266, 1652, 1336,  472, 1088, 1652,
2693      1265, 1622,  469, 1088, 1088, 1088, 1088, 1088, 1088, 1117,
2694      1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1622, 1266,
2695 
2696       465, 1622, 1117,  461,  460,  459, 1117, 1117, 1117, 1117,
2697      1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
2698      1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
2699      1272, 1272, 1272, 1272, 1272, 1272, 1272, 1274, 1119, 1121,
2700      1121, 1121, 1121, 1121, 1121, 1121, 1570,  456,  452,  451,
2701      1121, 1274,  448, 1660, 1570, 1121, 1121, 1121, 1121, 1121,
2702      1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
2703      1660,  447,  446, 1122,  445, 1668, 1274, 1275, 1122, 1122,
2704      1122, 1122, 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123,
2705      1123, 1275, 1668,  442,  441, 1123,  432,  429, 1670,  427,
2706 
2707      1123, 1123, 1123, 1123, 1123, 1123, 1125, 1125, 1125, 1125,
2708      1125, 1125, 1125, 1125, 1125, 1670, 1275,  426, 1125,  425,
2709      1670, 1623, 1278, 1125, 1125, 1125, 1125, 1125, 1125, 1126,
2710      1126, 1126, 1126, 1126, 1126, 1126, 1278,  424, 1623,  423,
2711      1126, 1623,  422, 1677,  421, 1126, 1126, 1126, 1126, 1126,
2712      1126, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
2713      1677, 1278,  420, 1128,  419, 1680, 1628, 1279, 1128, 1128,
2714      1128, 1128, 1128, 1128, 1129, 1129, 1129, 1129, 1129, 1129,
2715      1129, 1279, 1680, 1628,  418, 1129, 1628, 1680, 1683,  417,
2716      1129, 1129, 1129, 1129, 1129, 1129, 1131, 1131, 1131, 1131,
2717 
2718      1131, 1131, 1131, 1131, 1131, 1683, 1279,  416, 1131, 1511,
2719      1684,  415, 1691, 1131, 1131, 1131, 1131, 1131, 1131, 1132,
2720      1132, 1132, 1132, 1132, 1132, 1132, 1511, 1684, 1684, 1691,
2721      1132,  414,  412,  410, 1511, 1132, 1132, 1132, 1132, 1132,
2722      1132, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
2723      1210, 1216, 1288, 1135,  409, 1135,  407,  406, 1135, 1135,
2724      1135, 1135, 1135, 1135,  403,  402, 1288, 1210, 1216, 1286,
2725      1286, 1286, 1286, 1286, 1286, 1286, 1289, 1338, 1210, 1216,
2726      1135, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
2727      1289, 1288,  400, 1140, 1338,  398,  397, 1685, 1140, 1140,
2728 
2729      1140, 1140, 1140, 1140, 1149, 1149, 1149, 1149, 1149, 1149,
2730      1149, 1149, 1149, 1338, 1685, 1289, 1149,  396,  395, 1685,
2731      1686, 1149, 1149, 1149, 1149, 1149, 1149, 1160, 1160, 1160,
2732      1160, 1160, 1160, 1160, 1160, 1160,  390, 1686,  389, 1160,
2733       388,  386, 1686, 1687, 1160, 1160, 1160, 1160, 1160, 1160,
2734      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,  385,
2735      1687,  384, 1172,  383,  381, 1687, 1689, 1172, 1172, 1172,
2736      1172, 1172, 1172, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
2737      1184, 1184,  376, 1689,  375, 1184,  374,  371, 1689, 1694,
2738      1184, 1184, 1184, 1184, 1184, 1184, 1198, 1198, 1198, 1198,
2739 
2740      1198, 1198, 1198, 1198, 1198,  367, 1694,  365, 1198, 1694,
2741       360,  359, 1217, 1198, 1198, 1198, 1198, 1198, 1198, 1200,
2742      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1218, 1217,
2743      1222, 1200, 1223, 1200, 1228, 1439, 1200, 1200, 1200, 1200,
2744      1200, 1200, 1217, 1292,  356, 1218,  351, 1222,  350, 1223,
2745       342, 1228, 1439,  340,  339,  334,  332, 1292, 1200, 1218,
2746      1443, 1222, 1340, 1223, 1439, 1228, 1230, 1230, 1230, 1230,
2747      1230, 1230, 1230, 1230, 1230,  330, 1705, 1443, 1293, 1340,
2748      1302, 1339, 1292, 1230, 1232, 1232, 1232, 1232, 1232, 1232,
2749      1232, 1232, 1293, 1705, 1302, 1232, 1340, 1443, 1339, 1339,
2750 
2751      1232, 1232, 1232, 1232, 1232, 1232, 1233, 1233, 1233, 1233,
2752      1233, 1233, 1233, 1233, 1233,  329, 1339, 1293, 1233, 1302,
2753      1233, 1717, 1303, 1233, 1233, 1233, 1233, 1233, 1233, 1300,
2754      1300, 1300, 1300, 1300, 1300, 1300, 1303,  328, 1717,  327,
2755       326, 1306, 1307, 1367,  325, 1233, 1236, 1236, 1236, 1236,
2756      1236, 1236, 1236, 1236, 1236, 1306, 1307, 1367, 1236, 1509,
2757      1236, 1303, 1342, 1236, 1236, 1236, 1236, 1236, 1236, 1313,
2758      1313, 1313, 1313, 1313, 1313, 1313, 1509,  324,  322, 1342,
2759      1306, 1307, 1367,  321, 1720, 1236, 1239, 1239, 1239, 1239,
2760      1239, 1239, 1239, 1239, 1239, 1509, 1342,  320, 1239,  315,
2761 
2762      1239, 1720,  312, 1239, 1239, 1239, 1239, 1239, 1239, 1315,
2763      1315, 1315, 1315, 1315, 1315, 1315, 1319, 1319, 1319, 1319,
2764      1319, 1319, 1319,  311, 1329, 1239, 1242, 1242, 1242, 1242,
2765      1242, 1242, 1242, 1242, 1242, 1331, 1333, 1698, 1242, 1702,
2766      1242, 1329,  310, 1242, 1242, 1242, 1242, 1242, 1242,  307,
2767      1329,  306, 1331, 1333, 1698,  299, 1702, 1698,  298, 1330,
2768      1341, 1702, 1333, 1331, 1345, 1242, 1245, 1245, 1245, 1245,
2769      1245, 1245, 1245, 1245, 1245, 1346, 1330, 1341, 1245,  296,
2770      1245, 1345, 1368, 1245, 1245, 1245, 1245, 1245, 1245, 1330,
2771       295, 1341, 1346,  294, 1345,  292, 1368,  290,  289, 1700,
2772 
2773      1704, 1415, 1573, 1346,  288, 1245, 1250, 1250, 1250, 1250,
2774      1250, 1250, 1250, 1250, 1250, 1415, 1700, 1704, 1250, 1573,
2775      1700, 1368, 1704, 1250, 1250, 1250, 1250, 1250, 1250, 1257,
2776      1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1573,  286,
2777      1415, 1257,  282,  281, 1707, 1708, 1257, 1257, 1257, 1257,
2778      1257, 1257, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267,
2779      1267, 1707, 1708,  279, 1267,  276,  272, 1715,  271, 1267,
2780      1267, 1267, 1267, 1267, 1267, 1280, 1280, 1280, 1280, 1280,
2781      1280, 1280, 1280, 1280, 1715, 1707, 1708, 1280,  268, 1715,
2782      1724, 1725, 1280, 1280, 1280, 1280, 1280, 1280, 1294, 1294,
2783 
2784      1294, 1294, 1294, 1294, 1294, 1294, 1294, 1724, 1725,  267,
2785      1294,  265, 1724, 1725, 1730, 1294, 1294, 1294, 1294, 1294,
2786      1294, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
2787       260, 1730,  257, 1308,  255,  254, 1730, 1731, 1308, 1308,
2788      1308, 1308, 1308, 1308, 1320, 1320, 1320, 1320, 1320, 1320,
2789      1320, 1320, 1320,  252, 1731,  249, 1320,  245, 1731, 1733,
2790      1735, 1320, 1320, 1320, 1320, 1320, 1320, 1348, 1348, 1348,
2791      1348, 1348, 1348, 1348, 1348, 1348, 1733, 1735,  241, 1348,
2792       239, 1348, 1735,  237, 1348, 1348, 1348, 1348, 1348, 1348,
2793      1375, 1375, 1375, 1375, 1375, 1375, 1375, 1380, 1380, 1380,
2794 
2795      1380, 1380, 1380, 1380, 1416, 1425, 1348, 1352, 1352, 1352,
2796      1352, 1352, 1352, 1352, 1352, 1352,  236,  234, 1416, 1352,
2797       233,  232, 1425, 1739, 1352, 1352, 1352, 1352, 1352, 1352,
2798      1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1425,
2799      1739,  231, 1355, 1416,  230, 1740, 1738, 1355, 1355, 1355,
2800      1355, 1355, 1355, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
2801      1358, 1358, 1740, 1738,  229, 1358, 1738,  228, 1745,  226,
2802      1358, 1358, 1358, 1358, 1358, 1358, 1361, 1361, 1361, 1361,
2803      1361, 1361, 1361, 1361, 1361, 1745, 1740,  224, 1361,  222,
2804      1745, 1750, 1754, 1361, 1361, 1361, 1361, 1361, 1361, 1364,
2805 
2806      1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1750, 1754,
2807       221, 1364,  219,  217, 1754, 1756, 1364, 1364, 1364, 1364,
2808      1364, 1364, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369,
2809      1369,  216, 1756,  214, 1369,  211,  210,  209,  207, 1369,
2810      1369, 1369, 1369, 1369, 1369, 1382, 1382, 1382, 1382, 1382,
2811      1382, 1382, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1390,
2812      1390, 1390, 1390, 1390, 1390, 1390, 1396, 1396, 1396, 1396,
2813      1396, 1396, 1396, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
2814      1404, 1404, 1404, 1404, 1404, 1404, 1404, 1406, 1406, 1406,
2815      1406, 1406, 1406, 1406, 1413, 1413, 1413, 1413, 1413, 1413,
2816 
2817      1413, 1419, 1420, 1430, 1431, 1436, 1438, 1759, 1763, 1766,
2818       205,  204, 1444, 1461, 1462, 1419, 1420, 1469, 1470, 1441,
2819      1430, 1431, 1436, 1438, 1759, 1763, 1766, 1461, 1462, 1444,
2820      1763, 1469, 1470, 1436, 1430, 1431, 1441, 1438, 1444, 1436,
2821      1419, 1420, 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
2822      1421, 1441, 1461, 1462, 1421,  201, 1469, 1470, 1765, 1421,
2823      1421, 1421, 1421, 1421, 1421, 1446, 1446, 1446, 1446, 1446,
2824      1446, 1446, 1446, 1446,  200, 1765,  198, 1446, 1765,  197,
2825       196,  195, 1446, 1446, 1446, 1446, 1446, 1446, 1455, 1455,
2826      1455, 1455, 1455, 1455, 1455, 1467, 1467, 1467, 1467, 1467,
2827 
2828      1467, 1467, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1478,
2829      1479, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1487, 1488,
2830      1496, 1497,  194, 1478, 1479, 1494, 1494, 1494, 1494, 1494,
2831      1494, 1494, 1487, 1488, 1496, 1497, 1502, 1502, 1502, 1502,
2832      1502, 1502, 1502,  193, 1510, 1514, 1515,  192, 1478, 1479,
2833      1504, 1504, 1504, 1504, 1504, 1504, 1504, 1487, 1488, 1496,
2834      1497, 1510, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1522,
2835      1510, 1525, 1524, 1514,  191,  190, 1515, 1526, 1527,  189,
2836       188, 1516, 1517, 1518, 1519, 1520, 1522, 1538, 1525, 1524,
2837      1516, 1517, 1518, 1519, 1526, 1527, 1539, 1522, 1524, 1520,
2838 
2839       187, 1538,  186,  185,  184, 1525,  183, 1527,  182,  181,
2840      1539, 1526, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1548,
2841      1548, 1548, 1548, 1548, 1548, 1548, 1538, 1552, 1552, 1552,
2842      1552, 1552, 1552, 1552,  180, 1539, 1556, 1556, 1556, 1556,
2843      1556, 1556, 1556, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
2844      1565, 1565, 1565, 1565, 1565, 1565, 1565, 1567, 1568, 1576,
2845      1578, 1577, 1584, 1587, 1579, 1581, 1582, 1590,  178, 1585,
2846      1588, 1567, 1568, 1693, 1621, 1629, 1576, 1578, 1577, 1584,
2847      1587, 1579, 1581, 1582, 1590, 1576, 1585, 1588, 1584,  177,
2848      1693, 1621, 1629, 1590, 1587, 1578, 1567, 1568, 1577, 1579,
2849 
2850      1581, 1629, 1693, 1582, 1621, 1585, 1588, 1593, 1593, 1593,
2851      1593, 1593, 1593, 1593, 1596, 1596, 1596, 1596, 1596, 1596,
2852      1596, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1604, 1604,
2853      1604, 1604, 1604, 1604, 1604, 1608, 1608, 1608, 1608, 1608,
2854      1608, 1608, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1615,
2855      1615, 1615, 1615, 1615, 1615, 1615, 1619, 1624,  174, 1625,
2856      1626, 1768, 1633, 1627, 1636, 1636, 1636, 1636, 1636, 1636,
2857      1636, 1647,  173, 1619, 1624, 1624, 1625, 1626, 1768, 1633,
2858      1627, 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1647, 1648,
2859      1619, 1649, 1624, 1650, 1657, 1625, 1626, 1627, 1633, 1651,
2860 
2861      1653, 1656, 1658,  172, 1659, 1669, 1648, 1647, 1649, 1671,
2862      1650, 1657, 1672,  171,  170, 1648, 1651, 1653, 1656, 1658,
2863      1657, 1659, 1669, 1673, 1650, 1649, 1671, 1674, 1675, 1672,
2864      1651, 1653, 1659, 1658, 1676, 1678, 1679, 1656,  169, 1688,
2865      1673, 1669, 1690,  168, 1674, 1675, 1692, 1671,  167,  165,
2866      1672, 1676, 1678, 1679,  162, 1674, 1688, 1695, 1675, 1690,
2867      1690, 1673,  161, 1692, 1696, 1688, 1679, 1697, 1676, 1699,
2868      1703, 1678, 1706, 1701, 1695, 1709, 1710, 1690, 1690, 1692,
2869      1692, 1696, 1712, 1714, 1697,  160, 1699, 1703, 1711, 1706,
2870      1701, 1695, 1709, 1710,  159, 1713, 1716, 1706, 1696, 1712,
2871 
2872      1714, 1697, 1710, 1699, 1701, 1711,  156, 1703, 1718, 1711,
2873      1719, 1709, 1713, 1716,  154, 1721, 1722, 1714, 1723, 1727,
2874      1712, 1711, 1711, 1713, 1726, 1718, 1728, 1719, 1719, 1729,
2875       145, 1716, 1721, 1722,  144, 1723, 1727, 1732,  143, 1734,
2876      1736, 1726, 1718, 1728,  142, 1719, 1729, 1722, 1727, 1737,
2877      1726, 1721,  141, 1741, 1732, 1723, 1734, 1736, 1742, 1743,
2878      1728, 1729, 1746, 1747, 1744, 1748, 1737,  140, 1732, 1734,
2879      1741, 1752, 1736,  139,  137, 1742, 1743,  135, 1749, 1746,
2880      1747, 1744, 1748, 1737, 1741, 1751, 1753,  134, 1752, 1757,
2881      1742, 1742, 1744, 1755, 1747, 1749, 1746, 1743,  132, 1752,
2882 
2883      1758, 1748, 1751, 1753, 1749, 1760, 1757, 1761, 1762, 1764,
2884      1755, 1767, 1770,  130, 1769, 1751, 1771, 1758, 1772, 1755,
2885      1773, 1774, 1760, 1753, 1761, 1762, 1764, 1775, 1767, 1770,
2886      1757, 1769,  128, 1771, 1758, 1772, 1769, 1773, 1774, 1776,
2887      1777, 1760, 1761, 1764, 1775, 1778, 1773, 1767, 1780, 1762,
2888      1781, 1771, 1782, 1783, 1772,  127, 1776, 1777,  126, 1774,
2889      1779,  125, 1778, 1779, 1779, 1780,  123, 1781,  122, 1782,
2890      1783,  121,  120,  119,  118, 1776,  116, 1779,  114,  113,
2891       112, 1778, 1785,  111, 1785, 1786,  110, 1786, 1786, 1786,
2892      1786, 1786, 1786, 1787,  109, 1787, 1788, 1788, 1788, 1789,
2893 
2894      1789, 1789, 1790, 1790, 1790, 1791, 1791, 1791, 1792, 1792,
2895      1792, 1793, 1793, 1793, 1794, 1794, 1794, 1795, 1795, 1795,
2896      1796, 1796, 1796, 1797,  108, 1797, 1798, 1798, 1798, 1799,
2897      1799, 1799, 1800, 1800, 1800, 1801, 1801, 1801, 1802,  107,
2898      1802, 1803, 1803, 1803, 1804, 1804,  106,  104, 1804, 1805,
2899      1805, 1805, 1806, 1806, 1806, 1807, 1807, 1807, 1808, 1808,
2900      1808, 1809, 1809, 1809, 1810, 1810, 1810, 1811, 1811, 1811,
2901      1812, 1812, 1812, 1813, 1813, 1813, 1814, 1814,  103,   96,
2902      1814, 1815, 1815, 1815, 1816, 1816, 1816, 1817,   95, 1817,
2903      1818, 1818, 1818, 1819, 1819, 1819, 1820,   94, 1820, 1821,
2904 
2905      1821, 1821, 1822, 1822, 1822, 1823, 1823, 1823, 1824, 1824,
2906      1824, 1825, 1825, 1825, 1826,   91, 1826, 1827,   88, 1827,
2907      1828, 1828, 1828, 1829, 1829, 1829, 1830,   87, 1830, 1831,
2908      1831,   86,   85, 1831, 1832, 1832,   84,   83, 1832, 1833,
2909      1833, 1833, 1834, 1834, 1834, 1835, 1835,   82, 1835, 1836,
2910      1836, 1836, 1837, 1837, 1837, 1838, 1838, 1838, 1839, 1839,
2911      1839, 1840, 1840, 1840, 1841, 1841, 1841, 1842, 1842, 1842,
2912      1843, 1843,   81,   80, 1843, 1844, 1844, 1844, 1845, 1845,
2913      1845, 1846, 1846,   79, 1846, 1847, 1847,   77,   76, 1847,
2914      1848, 1848,   75, 1848, 1849, 1849, 1850, 1850,   74,   73,
2915 
2916      1850, 1851, 1851, 1851, 1852, 1852, 1852, 1853, 1853,   72,
2917      1853, 1854,   71, 1854, 1855,   70, 1855, 1856, 1856, 1856,
2918      1857, 1857, 1857, 1858,   69, 1858, 1859, 1859, 1859, 1860,
2919      1860, 1860, 1861, 1861, 1861, 1862, 1862, 1862, 1863, 1863,
2920      1863, 1864, 1864, 1864, 1865,   68, 1865, 1866,   67, 1866,
2921      1867, 1867, 1867, 1868, 1868, 1868, 1869,   66, 1869, 1870,
2922        65, 1870, 1871,   64, 1871, 1872, 1872, 1872, 1873, 1873,
2923      1873, 1874,   62, 1874, 1875,   61,   60, 1875, 1876, 1876,
2924        47, 1876, 1877, 1877,   40,   39, 1877, 1878, 1878,   37,
2925      1878, 1879, 1879, 1880, 1880,   15,   13, 1880, 1881, 1881,
2926 
2927      1881, 1882, 1882, 1882, 1883, 1883,   10, 1883, 1884, 1884,
2928      1884,    7, 1884, 1884, 1885, 1885, 1885, 1886, 1886, 1886,
2929      1887, 1887, 1887, 1888, 1888, 1888, 1889, 1889, 1889, 1890,
2930      1890, 1890, 1891, 1891, 1891, 1892, 1892, 1892, 1893, 1893,
2931         3,    0, 1893, 1894, 1894, 1894, 1895, 1895, 1895, 1896,
2932      1896,    0, 1896, 1897, 1897,    0,    0, 1897, 1898, 1898,
2933         0, 1898, 1899, 1899, 1900, 1900,    0,    0, 1900, 1901,
2934      1901, 1901, 1902, 1902, 1902, 1903, 1903,    0, 1903, 1904,
2935         0,    0, 1904, 1905, 1905,    0, 1905, 1906, 1906,    0,
2936         0, 1906, 1907, 1907,    0, 1907, 1908, 1908, 1909, 1909,
2937 
2938         0,    0, 1909, 1910, 1910, 1910, 1911, 1911, 1911, 1912,
2939      1912,    0, 1912, 1913,    0, 1913, 1914,    0, 1914, 1915,
2940         0, 1915, 1916, 1916, 1916, 1917, 1917, 1917, 1918,    0,
2941      1918, 1919, 1919, 1919,    0, 1919, 1919, 1920, 1920, 1920,
2942      1921, 1921, 1921, 1922, 1922, 1922, 1923, 1923, 1923, 1924,
2943      1924, 1924, 1925, 1925, 1925, 1926, 1926, 1926, 1927,    0,
2944      1927, 1928,    0, 1928, 1929, 1929, 1929, 1930, 1930, 1930,
2945      1931,    0, 1931, 1932,    0, 1932, 1933,    0, 1933, 1934,
2946      1934, 1934, 1935, 1935, 1935, 1936,    0, 1936, 1937,    0,
2947      1937, 1938,    0, 1938, 1939,    0, 1939, 1940, 1940, 1940,
2948 
2949      1941, 1941, 1941, 1942,    0, 1942, 1943,    0, 1943, 1944,
2950         0,    0, 1944, 1945, 1945,    0, 1945, 1946, 1946,    0,
2951         0, 1946, 1947, 1947,    0, 1947, 1948, 1948, 1949, 1949,
2952         0,    0, 1949, 1950, 1950, 1950, 1951, 1951, 1951, 1952,
2953      1952,    0, 1952, 1953, 1953, 1953,    0, 1953, 1953, 1954,
2954      1954, 1954, 1955, 1955, 1955, 1956, 1956, 1956, 1957, 1957,
2955      1957, 1958, 1958, 1958, 1959, 1959, 1959, 1960, 1960, 1960,
2956      1961, 1961, 1961, 1962, 1962,    0,    0, 1962, 1963, 1963,
2957      1963, 1964, 1964, 1964, 1965, 1965,    0, 1965, 1966, 1966,
2958         0,    0, 1966, 1967, 1967,    0, 1967, 1968, 1968, 1969,
2959 
2960      1969,    0,    0, 1969, 1970, 1970, 1970, 1971, 1971, 1971,
2961      1972, 1972,    0, 1972, 1973,    0,    0, 1973, 1974, 1974,
2962         0, 1974, 1975, 1975,    0,    0, 1975, 1976, 1976,    0,
2963      1976, 1977, 1977, 1978, 1978,    0,    0, 1978, 1979, 1979,
2964      1979, 1980, 1980, 1980, 1981, 1981,    0, 1981, 1982,    0,
2965      1982, 1983,    0,    0, 1983, 1984, 1984,    0, 1984, 1985,
2966      1985,    0,    0, 1985, 1986, 1986,    0, 1986, 1987, 1987,
2967      1988, 1988,    0,    0, 1988, 1989, 1989, 1989, 1990, 1990,
2968      1990, 1991, 1991,    0, 1991, 1992,    0, 1992, 1993,    0,
2969      1993, 1994,    0, 1994, 1995, 1995, 1995, 1996, 1996, 1996,
2970 
2971      1997,    0, 1997, 1998, 1998, 1998,    0, 1998, 1998, 1999,
2972      1999, 1999, 2000, 2000, 2000, 2001, 2001, 2001, 2002, 2002,
2973      2002, 2003, 2003, 2003, 2004, 2004, 2004, 2005, 2005, 2005,
2974      2006, 2006, 2006, 2007, 2007, 2007, 2008, 2008, 2008, 2009,
2975         0, 2009, 2010,    0, 2010, 2011, 2011, 2011, 2012, 2012,
2976      2012, 2013, 2013, 2013, 2014,    0, 2014, 2015,    0, 2015,
2977      2016,    0, 2016, 2017, 2017, 2017, 2018, 2018, 2018, 2019,
2978      2019, 2019, 2020,    0, 2020, 2021,    0, 2021, 2022,    0,
2979      2022, 2023,    0, 2023, 2024, 2024, 2024, 2025, 2025, 2025,
2980      2026, 2026, 2026, 2027,    0, 2027, 2028,    0, 2028, 2029,
2981 
2982         0, 2029, 2030,    0, 2030, 2031, 2031, 2031, 2032, 2032,
2983      2032, 2033, 2033, 2033, 2034,    0, 2034, 2035,    0, 2035,
2984      2036,    0,    0, 2036, 2037, 2037,    0, 2037, 2038, 2038,
2985         0,    0, 2038, 2039, 2039,    0, 2039, 2040, 2040, 2041,
2986      2041,    0,    0, 2041, 2042, 2042, 2042, 2043, 2043, 2043,
2987      2044, 2044,    0, 2044, 2045, 2045, 2045,    0, 2045, 2045,
2988      2046, 2046, 2046, 2047, 2047, 2047, 2048, 2048, 2048, 2049,
2989      2049, 2049, 2050, 2050, 2050, 2051, 2051, 2051, 2052, 2052,
2990      2052, 2053, 2053, 2053, 2054,    0, 2054, 2055, 2055, 2055,
2991      2056, 2056,    0,    0, 2056, 2057, 2057, 2057, 2058, 2058,
2992 
2993      2058, 2059, 2059,    0, 2059, 2060, 2060,    0,    0, 2060,
2994      2061, 2061,    0, 2061, 2062, 2062, 2063, 2063,    0,    0,
2995      2063, 2064, 2064, 2064, 2065, 2065, 2065, 2066, 2066,    0,
2996      2066, 2067,    0,    0, 2067, 2068, 2068,    0, 2068, 2069,
2997      2069,    0,    0, 2069, 2070, 2070,    0, 2070, 2071, 2071,
2998      2072, 2072,    0,    0, 2072, 2073, 2073, 2073, 2074, 2074,
2999      2074, 2075, 2075,    0, 2075, 2076,    0, 2076, 2077,    0,
3000         0, 2077, 2078, 2078,    0, 2078, 2079, 2079,    0,    0,
3001      2079, 2080, 2080,    0, 2080, 2081, 2081, 2082, 2082,    0,
3002         0, 2082, 2083, 2083, 2083, 2084, 2084, 2084, 2085, 2085,
3003 
3004         0, 2085, 2086,    0, 2086, 2087,    0,    0, 2087, 2088,
3005      2088,    0, 2088, 2089, 2089,    0,    0, 2089, 2090, 2090,
3006         0, 2090, 2091, 2091, 2092, 2092,    0,    0, 2092, 2093,
3007      2093, 2093, 2094, 2094, 2094, 2095, 2095,    0, 2095, 2096,
3008         0, 2096, 2097,    0, 2097, 2098,    0, 2098, 2099, 2099,
3009      2099, 2100,    0, 2100, 2101, 2101, 2101, 2102,    0, 2102,
3010      2103, 2103, 2103,    0, 2103, 2103, 2104,    0, 2104, 2105,
3011      2105, 2105, 2106,    0, 2106, 2107, 2107, 2107, 2108,    0,
3012      2108, 2109, 2109, 2109, 2110,    0, 2110, 2111, 2111, 2111,
3013      2112,    0, 2112, 2113, 2113, 2113, 2114,    0, 2114, 2115,
3014 
3015      2115, 2115, 2116, 2116,    0,    0, 2116, 2117, 2117, 2117,
3016      2118, 2118, 2118, 2119, 2119, 2119, 2120, 2120,    0, 2120,
3017      2121, 2121, 2121, 2122,    0, 2122, 2123, 2123, 2123, 2124,
3018      2124, 2124, 2125,    0, 2125, 2126,    0, 2126, 2127, 2127,
3019      2127, 2128, 2128, 2128, 2129,    0, 2129, 2130,    0, 2130,
3020      2131,    0, 2131, 2132, 2132, 2132, 2133, 2133, 2133, 2134,
3021         0, 2134, 2135,    0, 2135, 2136,    0, 2136, 2137, 2137,
3022      2137, 2138, 2138, 2138, 2139,    0, 2139, 2140,    0, 2140,
3023      2141,    0, 2141, 2142, 2142, 2142, 2143, 2143, 2143, 2144,
3024         0, 2144, 2145,    0,    0, 2145, 2146, 2146,    0, 2146,
3025 
3026      2147, 2147,    0,    0, 2147, 2148, 2148,    0, 2148, 2149,
3027      2149, 2150, 2150,    0,    0, 2150, 2151, 2151, 2151, 2152,
3028         0, 2152, 2153, 2153,    0, 2153, 2154, 2154, 2154,    0,
3029      2154, 2154, 2155, 2155, 2155, 2156, 2156, 2156, 2157,    0,
3030      2157, 2158,    0, 2158, 2159,    0, 2159, 2160,    0, 2160,
3031      2161,    0, 2161, 2162,    0, 2162, 2163,    0, 2163, 2164,
3032      2164, 2164, 2165, 2165, 2165, 2166,    0, 2166, 2167, 2167,
3033         0,    0, 2167, 2168, 2168,    0, 2168, 2169, 2169, 2170,
3034         0, 2170, 2171,    0,    0, 2171, 2172, 2172,    0, 2172,
3035      2173, 2173,    0,    0, 2173, 2174, 2174,    0, 2174, 2175,
3036 
3037      2175, 2176,    0, 2176, 2177,    0, 2177, 2178,    0,    0,
3038      2178, 2179, 2179,    0, 2179, 2180, 2180,    0,    0, 2180,
3039      2181, 2181,    0, 2181, 2182, 2182, 2183,    0, 2183, 2184,
3040         0, 2184, 2185,    0,    0, 2185, 2186, 2186,    0, 2186,
3041      2187, 2187,    0,    0, 2187, 2188, 2188,    0, 2188, 2189,
3042      2189, 2190,    0, 2190, 2191,    0, 2191, 2192,    0,    0,
3043      2192, 2193, 2193,    0, 2193, 2194, 2194,    0,    0, 2194,
3044      2195, 2195,    0, 2195, 2196, 2196, 2197,    0, 2197, 2198,
3045         0, 2198, 2199,    0, 2199, 2200,    0, 2200, 2201, 2201,
3046      2201, 2202,    0, 2202, 2203, 2203, 2203,    0, 2203, 2203,
3047 
3048      2204,    0, 2204, 2205,    0, 2205, 2206,    0, 2206, 2207,
3049         0, 2207, 2208,    0, 2208, 2209,    0, 2209, 2210,    0,
3050      2210, 2211, 2211,    0,    0, 2211, 2212, 2212,    0, 2212,
3051      2213, 2213, 2214,    0, 2214, 2215,    0, 2215, 2216,    0,
3052      2216, 2217,    0, 2217, 2218,    0, 2218, 2219,    0, 2219,
3053      2220,    0, 2220, 2221,    0, 2221, 2222,    0, 2222, 2223,
3054         0, 2223, 2224,    0,    0, 2224, 2225, 2225,    0,    0,
3055      2225, 2226,    0, 2226, 2227,    0, 2227, 2228,    0, 2228,
3056      2229,    0,    0, 2229, 2230,    0,    0, 2230, 2231,    0,
3057         0, 2231, 2232,    0,    0, 2232, 2233,    0,    0, 2233,
3058 
3059      2234,    0, 2234, 2235,    0, 2235, 2236,    0,    0, 2236,
3060      2237,    0, 2237, 2238,    0, 2238, 2239,    0, 2239, 2240,
3061         0, 2240, 2241,    0, 2241, 2242,    0,    0, 2242, 2243,
3062         0, 2243, 2244,    0, 2244, 1784, 1784, 1784, 1784, 1784,
3063      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3064      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3065      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3066      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784,
3067      1784, 1784, 1784, 1784, 1784, 1784, 1784, 1784
3068     } ;
3069 
3070 /* The intent behind this definition is that it'll catch
3071  * any uses of REJECT which flex missed.
3072  */
3073 #define REJECT reject_used_but_not_detected
3074 #define yymore() yymore_used_but_not_detected
3075 #define YY_MORE_ADJ 0
3076 #define YY_RESTORE_YY_MORE_OFFSET
3077 #line 1 "scanner.l"
3078 
3079 /*
3080  * We want a reentrant scanner.
3081  */
3082 /*
3083  * And we need to pass the compiler state to the scanner.
3084  */
3085 /*
3086  * We don't use input, so don't generate code for it.
3087  */
3088 #define YY_NO_INPUT 1
3089 /*
3090  * We don't use unput, so don't generate code for it.
3091  */
3092 /*
3093  * We don't read from the terminal.
3094  */
3095 /*
3096  * We want to stop processing when we get to the end of the input.
3097  */
3098 /*
3099  * We want to generate code that can be used by a reentrant parser
3100  * generated by Bison or Berkeley YACC.
3101  */
3102 #line 74 "scanner.l"
3103 /*
3104  * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
3105  *	The Regents of the University of California.  All rights reserved.
3106  *
3107  * Redistribution and use in source and binary forms, with or without
3108  * modification, are permitted provided that: (1) source code distributions
3109  * retain the above copyright notice and this paragraph in its entirety, (2)
3110  * distributions including binary code include the above copyright notice and
3111  * this paragraph in its entirety in the documentation or other materials
3112  * provided with the distribution, and (3) all advertising materials mentioning
3113  * features or use of this software display the following acknowledgement:
3114  * ``This product includes software developed by the University of California,
3115  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
3116  * the University nor the names of its contributors may be used to endorse
3117  * or promote products derived from this software without specific prior
3118  * written permission.
3119  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
3120  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
3121  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
3122  */
3123 
3124 #include <string.h>
3125 
3126 #include "pcap-int.h"
3127 
3128 /*
3129  * Earlier versions of Flex don't declare these, so we declare them
3130  * ourselves to squelch warnings.
3131  */
3132 int pcap_get_column(yyscan_t);
3133 void pcap_set_column(int, yyscan_t);
3134 
3135 #ifdef INET6
3136 
3137 #ifdef _WIN32
3138 #include <winsock2.h>
3139 #include <ws2tcpip.h>
3140 /*
3141  * To quote the MSDN page for getaddrinfo() at
3142  *
3143  *    https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx
3144  *
3145  * "Support for getaddrinfo on Windows 2000 and older versions
3146  * The getaddrinfo function was added to the Ws2_32.dll on Windows XP and
3147  * later. To execute an application that uses this function on earlier
3148  * versions of Windows, then you need to include the Ws2tcpip.h and
3149  * Wspiapi.h files. When the Wspiapi.h include file is added, the
3150  * getaddrinfo function is defined to the WspiapiGetAddrInfo inline
3151  * function in the Wspiapi.h file. At runtime, the WspiapiGetAddrInfo
3152  * function is implemented in such a way that if the Ws2_32.dll or the
3153  * Wship6.dll (the file containing getaddrinfo in the IPv6 Technology
3154  * Preview for Windows 2000) does not include getaddrinfo, then a
3155  * version of getaddrinfo is implemented inline based on code in the
3156  * Wspiapi.h header file. This inline code will be used on older Windows
3157  * platforms that do not natively support the getaddrinfo function."
3158  *
3159  * We use getaddrinfo(), so we include Wspiapi.h here.
3160  */
3161 #include <wspiapi.h>
3162 #else /* _WIN32 */
3163 #include <sys/socket.h>	/* for "struct sockaddr" in "struct addrinfo" */
3164 #include <netdb.h>	/* for "struct addrinfo" */
3165 #endif /* _WIN32 */
3166 
3167 /* Workaround for AIX 4.3 */
3168 #if !defined(AI_NUMERICHOST)
3169 #define AI_NUMERICHOST 0x04
3170 #endif
3171 
3172 #endif /*INET6*/
3173 
3174 #include <pcap/namedb.h>
3175 #include "grammar.h"
3176 
3177 #ifdef HAVE_OS_PROTO_H
3178 #include "os-proto.h"
3179 #endif
3180 
3181 static int stou(char *, YYSTYPE *, compiler_state_t *);
3182 
3183 /*
3184  * Disable diagnostics in the code generated by Flex.
3185  */
3186 DIAG_OFF_FLEX
3187 
3188 #line 3189 "scanner.c"
3189 #line 3190 "scanner.c"
3190 
3191 #define INITIAL 0
3192 
3193 #ifndef YY_NO_UNISTD_H
3194 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3195  * down here because we want the user's section 1 to have been scanned first.
3196  * The user has a chance to override it with an option.
3197  */
3198 #include <unistd.h>
3199 #endif
3200 
3201 #define YY_EXTRA_TYPE compiler_state_t *
3202 
3203 /* Holds the entire state of the reentrant scanner. */
3204 struct yyguts_t
3205     {
3206 
3207     /* User-defined. Not touched by flex. */
3208     YY_EXTRA_TYPE yyextra_r;
3209 
3210     /* The rest are the same as the globals declared in the non-reentrant scanner. */
3211     FILE *yyin_r, *yyout_r;
3212     size_t yy_buffer_stack_top; /**< index of top of stack. */
3213     size_t yy_buffer_stack_max; /**< capacity of stack. */
3214     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
3215     char yy_hold_char;
3216     int yy_n_chars;
3217     int yyleng_r;
3218     char *yy_c_buf_p;
3219     int yy_init;
3220     int yy_start;
3221     int yy_did_buffer_switch_on_eof;
3222     int yy_start_stack_ptr;
3223     int yy_start_stack_depth;
3224     int *yy_start_stack;
3225     yy_state_type yy_last_accepting_state;
3226     char* yy_last_accepting_cpos;
3227 
3228     int yylineno_r;
3229     int yy_flex_debug_r;
3230 
3231     char *yytext_r;
3232     int yy_more_flag;
3233     int yy_more_len;
3234 
3235     YYSTYPE * yylval_r;
3236 
3237     }; /* end struct yyguts_t */
3238 
3239 static int yy_init_globals ( yyscan_t yyscanner );
3240 
3241     /* This must go here because YYSTYPE and YYLTYPE are included
3242      * from bison output in section 1.*/
3243     #    define yylval yyg->yylval_r
3244 
3245 int yylex_init (yyscan_t* scanner);
3246 
3247 int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
3248 
3249 /* Accessor methods to globals.
3250    These are made visible to non-reentrant scanners for convenience. */
3251 
3252 int yylex_destroy ( yyscan_t yyscanner );
3253 
3254 int yyget_debug ( yyscan_t yyscanner );
3255 
3256 void yyset_debug ( int debug_flag , yyscan_t yyscanner );
3257 
3258 YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
3259 
3260 void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
3261 
3262 FILE *yyget_in ( yyscan_t yyscanner );
3263 
3264 void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
3265 
3266 FILE *yyget_out ( yyscan_t yyscanner );
3267 
3268 void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
3269 
3270 			int yyget_leng ( yyscan_t yyscanner );
3271 
3272 char *yyget_text ( yyscan_t yyscanner );
3273 
3274 int yyget_lineno ( yyscan_t yyscanner );
3275 
3276 void yyset_lineno ( int _line_number , yyscan_t yyscanner );
3277 
3278 int yyget_column  ( yyscan_t yyscanner );
3279 
3280 void yyset_column ( int _column_no , yyscan_t yyscanner );
3281 
3282 YYSTYPE * yyget_lval ( yyscan_t yyscanner );
3283 
3284 void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
3285 
3286 /* Macros after this point can all be overridden by user definitions in
3287  * section 1.
3288  */
3289 
3290 #ifndef YY_SKIP_YYWRAP
3291 #ifdef __cplusplus
3292 extern "C" int yywrap ( yyscan_t yyscanner );
3293 #else
3294 extern int yywrap ( yyscan_t yyscanner );
3295 #endif
3296 #endif
3297 
3298 #ifndef YY_NO_UNPUT
3299 
3300 #endif
3301 
3302 #ifndef yytext_ptr
3303 static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
3304 #endif
3305 
3306 #ifdef YY_NEED_STRLEN
3307 static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
3308 #endif
3309 
3310 #ifndef YY_NO_INPUT
3311 #ifdef __cplusplus
3312 static int yyinput ( yyscan_t yyscanner );
3313 #else
3314 static int input ( yyscan_t yyscanner );
3315 #endif
3316 
3317 #endif
3318 
3319 /* Amount of stuff to slurp up with each read. */
3320 #ifndef YY_READ_BUF_SIZE
3321 #ifdef __ia64__
3322 /* On IA-64, the buffer size is 16k, not 8k */
3323 #define YY_READ_BUF_SIZE 16384
3324 #else
3325 #define YY_READ_BUF_SIZE 8192
3326 #endif /* __ia64__ */
3327 #endif
3328 
3329 /* Copy whatever the last rule matched to the standard output. */
3330 #ifndef ECHO
3331 /* This used to be an fputs(), but since the string might contain NUL's,
3332  * we now use fwrite().
3333  */
3334 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3335 #endif
3336 
3337 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3338  * is returned in "result".
3339  */
3340 #ifndef YY_INPUT
3341 #define YY_INPUT(buf,result,max_size) \
3342 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3343 		{ \
3344 		int c = '*'; \
3345 		int n; \
3346 		for ( n = 0; n < max_size && \
3347 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3348 			buf[n] = (char) c; \
3349 		if ( c == '\n' ) \
3350 			buf[n++] = (char) c; \
3351 		if ( c == EOF && ferror( yyin ) ) \
3352 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
3353 		result = n; \
3354 		} \
3355 	else \
3356 		{ \
3357 		errno=0; \
3358 		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
3359 			{ \
3360 			if( errno != EINTR) \
3361 				{ \
3362 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
3363 				break; \
3364 				} \
3365 			errno=0; \
3366 			clearerr(yyin); \
3367 			} \
3368 		}\
3369 \
3370 
3371 #endif
3372 
3373 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3374  * we don't want an extra ';' after the "return" because that will cause
3375  * some compilers to complain about unreachable statements.
3376  */
3377 #ifndef yyterminate
3378 #define yyterminate() return YY_NULL
3379 #endif
3380 
3381 /* Number of entries by which start-condition stack grows. */
3382 #ifndef YY_START_STACK_INCR
3383 #define YY_START_STACK_INCR 25
3384 #endif
3385 
3386 /* Report a fatal error. */
3387 #ifndef YY_FATAL_ERROR
3388 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3389 #endif
3390 
3391 /* end tables serialization structures and prototypes */
3392 
3393 /* Default declaration of generated scanner - a define so the user can
3394  * easily add parameters.
3395  */
3396 #ifndef YY_DECL
3397 #define YY_DECL_IS_OURS 1
3398 
3399 extern int yylex \
3400                (YYSTYPE * yylval_param , yyscan_t yyscanner);
3401 
3402 #define YY_DECL int yylex \
3403                (YYSTYPE * yylval_param , yyscan_t yyscanner)
3404 #endif /* !YY_DECL */
3405 
3406 /* Code executed at the beginning of each rule, after yytext and yyleng
3407  * have been set up.
3408  */
3409 #ifndef YY_USER_ACTION
3410 #define YY_USER_ACTION
3411 #endif
3412 
3413 /* Code executed at the end of each rule. */
3414 #ifndef YY_BREAK
3415 #define YY_BREAK /*LINTED*/break;
3416 #endif
3417 
3418 #define YY_RULE_SETUP \
3419 	YY_USER_ACTION
3420 
3421 /** The main scanner function which does all the work.
3422  */
3423 YY_DECL
3424 {
3425 	yy_state_type yy_current_state;
3426 	char *yy_cp, *yy_bp;
3427 	int yy_act;
3428     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3429 
3430     yylval = yylval_param;
3431 
3432 	if ( !yyg->yy_init )
3433 		{
3434 		yyg->yy_init = 1;
3435 
3436 #ifdef YY_USER_INIT
3437 		YY_USER_INIT;
3438 #endif
3439 
3440 		if ( ! yyg->yy_start )
3441 			yyg->yy_start = 1;	/* first start state */
3442 
3443 		if ( ! yyin )
3444 			yyin = stdin;
3445 
3446 		if ( ! yyout )
3447 			yyout = stdout;
3448 
3449 		if ( ! YY_CURRENT_BUFFER ) {
3450 			yyensure_buffer_stack (yyscanner);
3451 			YY_CURRENT_BUFFER_LVALUE =
3452 				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
3453 		}
3454 
3455 		yy_load_buffer_state( yyscanner );
3456 		}
3457 
3458 	{
3459 #line 255 "scanner.l"
3460 
3461 #line 3462 "scanner.c"
3462 
3463 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
3464 		{
3465 		yy_cp = yyg->yy_c_buf_p;
3466 
3467 		/* Support of yytext. */
3468 		*yy_cp = yyg->yy_hold_char;
3469 
3470 		/* yy_bp points to the position in yy_ch_buf of the start of
3471 		 * the current run.
3472 		 */
3473 		yy_bp = yy_cp;
3474 
3475 		yy_current_state = yyg->yy_start;
3476 yy_match:
3477 		do
3478 			{
3479 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3480 			if ( yy_accept[yy_current_state] )
3481 				{
3482 				yyg->yy_last_accepting_state = yy_current_state;
3483 				yyg->yy_last_accepting_cpos = yy_cp;
3484 				}
3485 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3486 				{
3487 				yy_current_state = (int) yy_def[yy_current_state];
3488 				if ( yy_current_state >= 1785 )
3489 					yy_c = yy_meta[yy_c];
3490 				}
3491 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3492 			++yy_cp;
3493 			}
3494 		while ( yy_current_state != 1784 );
3495 		yy_cp = yyg->yy_last_accepting_cpos;
3496 		yy_current_state = yyg->yy_last_accepting_state;
3497 
3498 yy_find_action:
3499 		yy_act = yy_accept[yy_current_state];
3500 
3501 		YY_DO_BEFORE_ACTION;
3502 
3503 do_action:	/* This label is used only to access EOF actions. */
3504 
3505 		switch ( yy_act )
3506 	{ /* beginning of action switch */
3507 			case 0: /* must back up */
3508 			/* undo the effects of YY_DO_BEFORE_ACTION */
3509 			*yy_cp = yyg->yy_hold_char;
3510 			yy_cp = yyg->yy_last_accepting_cpos;
3511 			yy_current_state = yyg->yy_last_accepting_state;
3512 			goto yy_find_action;
3513 
3514 case 1:
3515 YY_RULE_SETUP
3516 #line 256 "scanner.l"
3517 return DST;
3518 	YY_BREAK
3519 case 2:
3520 YY_RULE_SETUP
3521 #line 257 "scanner.l"
3522 return SRC;
3523 	YY_BREAK
3524 case 3:
3525 YY_RULE_SETUP
3526 #line 259 "scanner.l"
3527 return LINK;
3528 	YY_BREAK
3529 case 4:
3530 YY_RULE_SETUP
3531 #line 260 "scanner.l"
3532 return LINK;
3533 	YY_BREAK
3534 case 5:
3535 YY_RULE_SETUP
3536 #line 261 "scanner.l"
3537 return ARP;
3538 	YY_BREAK
3539 case 6:
3540 YY_RULE_SETUP
3541 #line 262 "scanner.l"
3542 return RARP;
3543 	YY_BREAK
3544 case 7:
3545 YY_RULE_SETUP
3546 #line 263 "scanner.l"
3547 return IP;
3548 	YY_BREAK
3549 case 8:
3550 YY_RULE_SETUP
3551 #line 264 "scanner.l"
3552 return SCTP;
3553 	YY_BREAK
3554 case 9:
3555 YY_RULE_SETUP
3556 #line 265 "scanner.l"
3557 return TCP;
3558 	YY_BREAK
3559 case 10:
3560 YY_RULE_SETUP
3561 #line 266 "scanner.l"
3562 return UDP;
3563 	YY_BREAK
3564 case 11:
3565 YY_RULE_SETUP
3566 #line 267 "scanner.l"
3567 return ICMP;
3568 	YY_BREAK
3569 case 12:
3570 YY_RULE_SETUP
3571 #line 268 "scanner.l"
3572 return IGMP;
3573 	YY_BREAK
3574 case 13:
3575 YY_RULE_SETUP
3576 #line 269 "scanner.l"
3577 return IGRP;
3578 	YY_BREAK
3579 case 14:
3580 YY_RULE_SETUP
3581 #line 270 "scanner.l"
3582 return PIM;
3583 	YY_BREAK
3584 case 15:
3585 YY_RULE_SETUP
3586 #line 271 "scanner.l"
3587 return VRRP;
3588 	YY_BREAK
3589 case 16:
3590 YY_RULE_SETUP
3591 #line 272 "scanner.l"
3592 return CARP;
3593 	YY_BREAK
3594 case 17:
3595 YY_RULE_SETUP
3596 #line 273 "scanner.l"
3597 return RADIO;
3598 	YY_BREAK
3599 case 18:
3600 YY_RULE_SETUP
3601 #line 275 "scanner.l"
3602 return IPV6;
3603 	YY_BREAK
3604 case 19:
3605 YY_RULE_SETUP
3606 #line 276 "scanner.l"
3607 return ICMPV6;
3608 	YY_BREAK
3609 case 20:
3610 YY_RULE_SETUP
3611 #line 277 "scanner.l"
3612 return AH;
3613 	YY_BREAK
3614 case 21:
3615 YY_RULE_SETUP
3616 #line 278 "scanner.l"
3617 return ESP;
3618 	YY_BREAK
3619 case 22:
3620 YY_RULE_SETUP
3621 #line 280 "scanner.l"
3622 return ATALK;
3623 	YY_BREAK
3624 case 23:
3625 YY_RULE_SETUP
3626 #line 281 "scanner.l"
3627 return AARP;
3628 	YY_BREAK
3629 case 24:
3630 YY_RULE_SETUP
3631 #line 282 "scanner.l"
3632 return DECNET;
3633 	YY_BREAK
3634 case 25:
3635 YY_RULE_SETUP
3636 #line 283 "scanner.l"
3637 return LAT;
3638 	YY_BREAK
3639 case 26:
3640 YY_RULE_SETUP
3641 #line 284 "scanner.l"
3642 return SCA;
3643 	YY_BREAK
3644 case 27:
3645 YY_RULE_SETUP
3646 #line 285 "scanner.l"
3647 return MOPRC;
3648 	YY_BREAK
3649 case 28:
3650 YY_RULE_SETUP
3651 #line 286 "scanner.l"
3652 return MOPDL;
3653 	YY_BREAK
3654 case 29:
3655 YY_RULE_SETUP
3656 #line 288 "scanner.l"
3657 return ISO;
3658 	YY_BREAK
3659 case 30:
3660 YY_RULE_SETUP
3661 #line 289 "scanner.l"
3662 return ESIS;
3663 	YY_BREAK
3664 case 31:
3665 YY_RULE_SETUP
3666 #line 290 "scanner.l"
3667 return ESIS;
3668 	YY_BREAK
3669 case 32:
3670 YY_RULE_SETUP
3671 #line 291 "scanner.l"
3672 return ISIS;
3673 	YY_BREAK
3674 case 33:
3675 YY_RULE_SETUP
3676 #line 292 "scanner.l"
3677 return ISIS;
3678 	YY_BREAK
3679 case 34:
3680 YY_RULE_SETUP
3681 #line 293 "scanner.l"
3682 return L1;
3683 	YY_BREAK
3684 case 35:
3685 YY_RULE_SETUP
3686 #line 294 "scanner.l"
3687 return L2;
3688 	YY_BREAK
3689 case 36:
3690 YY_RULE_SETUP
3691 #line 295 "scanner.l"
3692 return IIH;
3693 	YY_BREAK
3694 case 37:
3695 YY_RULE_SETUP
3696 #line 296 "scanner.l"
3697 return LSP;
3698 	YY_BREAK
3699 case 38:
3700 YY_RULE_SETUP
3701 #line 297 "scanner.l"
3702 return SNP;
3703 	YY_BREAK
3704 case 39:
3705 YY_RULE_SETUP
3706 #line 298 "scanner.l"
3707 return CSNP;
3708 	YY_BREAK
3709 case 40:
3710 YY_RULE_SETUP
3711 #line 299 "scanner.l"
3712 return PSNP;
3713 	YY_BREAK
3714 case 41:
3715 YY_RULE_SETUP
3716 #line 301 "scanner.l"
3717 return CLNP;
3718 	YY_BREAK
3719 case 42:
3720 YY_RULE_SETUP
3721 #line 303 "scanner.l"
3722 return STP;
3723 	YY_BREAK
3724 case 43:
3725 YY_RULE_SETUP
3726 #line 305 "scanner.l"
3727 return IPX;
3728 	YY_BREAK
3729 case 44:
3730 YY_RULE_SETUP
3731 #line 307 "scanner.l"
3732 return NETBEUI;
3733 	YY_BREAK
3734 case 45:
3735 YY_RULE_SETUP
3736 #line 309 "scanner.l"
3737 return HOST;
3738 	YY_BREAK
3739 case 46:
3740 YY_RULE_SETUP
3741 #line 310 "scanner.l"
3742 return NET;
3743 	YY_BREAK
3744 case 47:
3745 YY_RULE_SETUP
3746 #line 311 "scanner.l"
3747 return NETMASK;
3748 	YY_BREAK
3749 case 48:
3750 YY_RULE_SETUP
3751 #line 312 "scanner.l"
3752 return PORT;
3753 	YY_BREAK
3754 case 49:
3755 YY_RULE_SETUP
3756 #line 313 "scanner.l"
3757 return PORTRANGE;
3758 	YY_BREAK
3759 case 50:
3760 YY_RULE_SETUP
3761 #line 314 "scanner.l"
3762 return PROTO;
3763 	YY_BREAK
3764 case 51:
3765 YY_RULE_SETUP
3766 #line 315 "scanner.l"
3767 return PROTOCHAIN;
3768 	YY_BREAK
3769 case 52:
3770 YY_RULE_SETUP
3771 #line 317 "scanner.l"
3772 return GATEWAY;
3773 	YY_BREAK
3774 case 53:
3775 YY_RULE_SETUP
3776 #line 319 "scanner.l"
3777 return TYPE;
3778 	YY_BREAK
3779 case 54:
3780 YY_RULE_SETUP
3781 #line 320 "scanner.l"
3782 return SUBTYPE;
3783 	YY_BREAK
3784 case 55:
3785 YY_RULE_SETUP
3786 #line 321 "scanner.l"
3787 return DIR;
3788 	YY_BREAK
3789 case 56:
3790 YY_RULE_SETUP
3791 #line 322 "scanner.l"
3792 return ADDR1;
3793 	YY_BREAK
3794 case 57:
3795 YY_RULE_SETUP
3796 #line 323 "scanner.l"
3797 return ADDR2;
3798 	YY_BREAK
3799 case 58:
3800 YY_RULE_SETUP
3801 #line 324 "scanner.l"
3802 return ADDR3;
3803 	YY_BREAK
3804 case 59:
3805 YY_RULE_SETUP
3806 #line 325 "scanner.l"
3807 return ADDR4;
3808 	YY_BREAK
3809 case 60:
3810 YY_RULE_SETUP
3811 #line 326 "scanner.l"
3812 return RA;
3813 	YY_BREAK
3814 case 61:
3815 YY_RULE_SETUP
3816 #line 327 "scanner.l"
3817 return TA;
3818 	YY_BREAK
3819 case 62:
3820 YY_RULE_SETUP
3821 #line 329 "scanner.l"
3822 return LESS;
3823 	YY_BREAK
3824 case 63:
3825 YY_RULE_SETUP
3826 #line 330 "scanner.l"
3827 return GREATER;
3828 	YY_BREAK
3829 case 64:
3830 YY_RULE_SETUP
3831 #line 331 "scanner.l"
3832 return CBYTE;
3833 	YY_BREAK
3834 case 65:
3835 YY_RULE_SETUP
3836 #line 332 "scanner.l"
3837 return TK_BROADCAST;
3838 	YY_BREAK
3839 case 66:
3840 YY_RULE_SETUP
3841 #line 333 "scanner.l"
3842 return TK_MULTICAST;
3843 	YY_BREAK
3844 case 67:
3845 YY_RULE_SETUP
3846 #line 335 "scanner.l"
3847 return AND;
3848 	YY_BREAK
3849 case 68:
3850 YY_RULE_SETUP
3851 #line 336 "scanner.l"
3852 return OR;
3853 	YY_BREAK
3854 case 69:
3855 YY_RULE_SETUP
3856 #line 337 "scanner.l"
3857 return '!';
3858 	YY_BREAK
3859 case 70:
3860 YY_RULE_SETUP
3861 #line 339 "scanner.l"
3862 return LEN;
3863 	YY_BREAK
3864 case 71:
3865 YY_RULE_SETUP
3866 #line 340 "scanner.l"
3867 return INBOUND;
3868 	YY_BREAK
3869 case 72:
3870 YY_RULE_SETUP
3871 #line 341 "scanner.l"
3872 return OUTBOUND;
3873 	YY_BREAK
3874 case 73:
3875 YY_RULE_SETUP
3876 #line 343 "scanner.l"
3877 return IFINDEX;
3878 	YY_BREAK
3879 case 74:
3880 YY_RULE_SETUP
3881 #line 345 "scanner.l"
3882 return VLAN;
3883 	YY_BREAK
3884 case 75:
3885 YY_RULE_SETUP
3886 #line 346 "scanner.l"
3887 return MPLS;
3888 	YY_BREAK
3889 case 76:
3890 YY_RULE_SETUP
3891 #line 347 "scanner.l"
3892 return PPPOED;
3893 	YY_BREAK
3894 case 77:
3895 YY_RULE_SETUP
3896 #line 348 "scanner.l"
3897 return PPPOES;
3898 	YY_BREAK
3899 case 78:
3900 YY_RULE_SETUP
3901 #line 349 "scanner.l"
3902 return GENEVE;
3903 	YY_BREAK
3904 case 79:
3905 YY_RULE_SETUP
3906 #line 351 "scanner.l"
3907 return LANE;
3908 	YY_BREAK
3909 case 80:
3910 YY_RULE_SETUP
3911 #line 352 "scanner.l"
3912 return LLC;
3913 	YY_BREAK
3914 case 81:
3915 YY_RULE_SETUP
3916 #line 353 "scanner.l"
3917 return METAC;
3918 	YY_BREAK
3919 case 82:
3920 YY_RULE_SETUP
3921 #line 354 "scanner.l"
3922 return BCC;
3923 	YY_BREAK
3924 case 83:
3925 YY_RULE_SETUP
3926 #line 355 "scanner.l"
3927 return OAM;
3928 	YY_BREAK
3929 case 84:
3930 YY_RULE_SETUP
3931 #line 356 "scanner.l"
3932 return OAMF4;
3933 	YY_BREAK
3934 case 85:
3935 YY_RULE_SETUP
3936 #line 357 "scanner.l"
3937 return OAMF4EC;
3938 	YY_BREAK
3939 case 86:
3940 YY_RULE_SETUP
3941 #line 358 "scanner.l"
3942 return OAMF4SC;
3943 	YY_BREAK
3944 case 87:
3945 YY_RULE_SETUP
3946 #line 359 "scanner.l"
3947 return SC;
3948 	YY_BREAK
3949 case 88:
3950 YY_RULE_SETUP
3951 #line 360 "scanner.l"
3952 return ILMIC;
3953 	YY_BREAK
3954 case 89:
3955 YY_RULE_SETUP
3956 #line 361 "scanner.l"
3957 return VPI;
3958 	YY_BREAK
3959 case 90:
3960 YY_RULE_SETUP
3961 #line 362 "scanner.l"
3962 return VCI;
3963 	YY_BREAK
3964 case 91:
3965 YY_RULE_SETUP
3966 #line 363 "scanner.l"
3967 return CONNECTMSG;
3968 	YY_BREAK
3969 case 92:
3970 YY_RULE_SETUP
3971 #line 364 "scanner.l"
3972 return METACONNECT;
3973 	YY_BREAK
3974 case 93:
3975 YY_RULE_SETUP
3976 #line 366 "scanner.l"
3977 return PF_IFNAME;
3978 	YY_BREAK
3979 case 94:
3980 YY_RULE_SETUP
3981 #line 367 "scanner.l"
3982 return PF_RSET;
3983 	YY_BREAK
3984 case 95:
3985 YY_RULE_SETUP
3986 #line 368 "scanner.l"
3987 return PF_RNR;
3988 	YY_BREAK
3989 case 96:
3990 YY_RULE_SETUP
3991 #line 369 "scanner.l"
3992 return PF_SRNR;
3993 	YY_BREAK
3994 case 97:
3995 YY_RULE_SETUP
3996 #line 370 "scanner.l"
3997 return PF_REASON;
3998 	YY_BREAK
3999 case 98:
4000 YY_RULE_SETUP
4001 #line 371 "scanner.l"
4002 return PF_ACTION;
4003 	YY_BREAK
4004 case 99:
4005 YY_RULE_SETUP
4006 #line 373 "scanner.l"
4007 return FISU;
4008 	YY_BREAK
4009 case 100:
4010 YY_RULE_SETUP
4011 #line 374 "scanner.l"
4012 return LSSU;
4013 	YY_BREAK
4014 case 101:
4015 YY_RULE_SETUP
4016 #line 375 "scanner.l"
4017 return LSSU;
4018 	YY_BREAK
4019 case 102:
4020 YY_RULE_SETUP
4021 #line 376 "scanner.l"
4022 return MSU;
4023 	YY_BREAK
4024 case 103:
4025 YY_RULE_SETUP
4026 #line 377 "scanner.l"
4027 return HFISU;
4028 	YY_BREAK
4029 case 104:
4030 YY_RULE_SETUP
4031 #line 378 "scanner.l"
4032 return HLSSU;
4033 	YY_BREAK
4034 case 105:
4035 YY_RULE_SETUP
4036 #line 379 "scanner.l"
4037 return HMSU;
4038 	YY_BREAK
4039 case 106:
4040 YY_RULE_SETUP
4041 #line 380 "scanner.l"
4042 return SIO;
4043 	YY_BREAK
4044 case 107:
4045 YY_RULE_SETUP
4046 #line 381 "scanner.l"
4047 return OPC;
4048 	YY_BREAK
4049 case 108:
4050 YY_RULE_SETUP
4051 #line 382 "scanner.l"
4052 return DPC;
4053 	YY_BREAK
4054 case 109:
4055 YY_RULE_SETUP
4056 #line 383 "scanner.l"
4057 return SLS;
4058 	YY_BREAK
4059 case 110:
4060 YY_RULE_SETUP
4061 #line 384 "scanner.l"
4062 return HSIO;
4063 	YY_BREAK
4064 case 111:
4065 YY_RULE_SETUP
4066 #line 385 "scanner.l"
4067 return HOPC;
4068 	YY_BREAK
4069 case 112:
4070 YY_RULE_SETUP
4071 #line 386 "scanner.l"
4072 return HDPC;
4073 	YY_BREAK
4074 case 113:
4075 YY_RULE_SETUP
4076 #line 387 "scanner.l"
4077 return HSLS;
4078 	YY_BREAK
4079 case 114:
4080 /* rule 114 can match eol */
4081 YY_RULE_SETUP
4082 #line 389 "scanner.l"
4083 ;
4084 	YY_BREAK
4085 case 115:
4086 YY_RULE_SETUP
4087 #line 390 "scanner.l"
4088 return yytext[0];
4089 	YY_BREAK
4090 case 116:
4091 YY_RULE_SETUP
4092 #line 391 "scanner.l"
4093 return GEQ;
4094 	YY_BREAK
4095 case 117:
4096 YY_RULE_SETUP
4097 #line 392 "scanner.l"
4098 return LEQ;
4099 	YY_BREAK
4100 case 118:
4101 YY_RULE_SETUP
4102 #line 393 "scanner.l"
4103 return NEQ;
4104 	YY_BREAK
4105 case 119:
4106 YY_RULE_SETUP
4107 #line 394 "scanner.l"
4108 return '=';
4109 	YY_BREAK
4110 case 120:
4111 YY_RULE_SETUP
4112 #line 395 "scanner.l"
4113 return LSH;
4114 	YY_BREAK
4115 case 121:
4116 YY_RULE_SETUP
4117 #line 396 "scanner.l"
4118 return RSH;
4119 	YY_BREAK
4120 case 122:
4121 YY_RULE_SETUP
4122 #line 397 "scanner.l"
4123 { yylval->s = sdup(yyextra, yytext); return AID; }
4124 	YY_BREAK
4125 case 123:
4126 YY_RULE_SETUP
4127 #line 398 "scanner.l"
4128 { yylval->s = sdup(yyextra, yytext); return EID; }
4129 	YY_BREAK
4130 case 124:
4131 YY_RULE_SETUP
4132 #line 399 "scanner.l"
4133 { return stou(yytext, yylval, yyextra); }
4134 	YY_BREAK
4135 case 125:
4136 YY_RULE_SETUP
4137 #line 400 "scanner.l"
4138 {
4139 			yylval->s = sdup(yyextra, (char *)yytext); return HID; }
4140 	YY_BREAK
4141 case 126:
4142 YY_RULE_SETUP
4143 #line 402 "scanner.l"
4144 {
4145 #ifdef INET6
4146 			  struct addrinfo hints, *res;
4147 			  memset(&hints, 0, sizeof(hints));
4148 			  hints.ai_family = AF_INET6;
4149 			  hints.ai_flags = AI_NUMERICHOST;
4150 			  if (getaddrinfo(yytext, NULL, &hints, &res)) {
4151 				bpf_set_error(yyextra, "bogus IPv6 address %s", yytext);
4152 				yylval->s = NULL;
4153 			  } else {
4154 				freeaddrinfo(res);
4155 				yylval->s = sdup(yyextra, (char *)yytext);
4156 			  }
4157 #else
4158 			  bpf_set_error(yyextra, "IPv6 address %s not supported", yytext);
4159 			  yylval->s = NULL;
4160 #endif /*INET6*/
4161 			  return HID6;
4162 			}
4163 	YY_BREAK
4164 case 127:
4165 YY_RULE_SETUP
4166 #line 421 "scanner.l"
4167 { bpf_set_error(yyextra, "bogus ethernet address %s", yytext); yylval->s = NULL; return EID; }
4168 	YY_BREAK
4169 case 128:
4170 YY_RULE_SETUP
4171 #line 422 "scanner.l"
4172 { yylval->h = 0; return NUM; }
4173 	YY_BREAK
4174 case 129:
4175 YY_RULE_SETUP
4176 #line 423 "scanner.l"
4177 { yylval->h = 1; return NUM; }
4178 	YY_BREAK
4179 case 130:
4180 YY_RULE_SETUP
4181 #line 424 "scanner.l"
4182 { yylval->h = 0; return NUM; }
4183 	YY_BREAK
4184 case 131:
4185 YY_RULE_SETUP
4186 #line 425 "scanner.l"
4187 { yylval->h = 3; return NUM; }
4188 	YY_BREAK
4189 case 132:
4190 YY_RULE_SETUP
4191 #line 426 "scanner.l"
4192 { yylval->h = 4; return NUM; }
4193 	YY_BREAK
4194 case 133:
4195 YY_RULE_SETUP
4196 #line 427 "scanner.l"
4197 { yylval->h = 5; return NUM; }
4198 	YY_BREAK
4199 case 134:
4200 YY_RULE_SETUP
4201 #line 428 "scanner.l"
4202 { yylval->h = 8; return NUM; }
4203 	YY_BREAK
4204 case 135:
4205 YY_RULE_SETUP
4206 #line 429 "scanner.l"
4207 { yylval->h = 9; return NUM; }
4208 	YY_BREAK
4209 case 136:
4210 YY_RULE_SETUP
4211 #line 430 "scanner.l"
4212 { yylval->h = 10; return NUM; }
4213 	YY_BREAK
4214 case 137:
4215 YY_RULE_SETUP
4216 #line 431 "scanner.l"
4217 { yylval->h = 11; return NUM; }
4218 	YY_BREAK
4219 case 138:
4220 YY_RULE_SETUP
4221 #line 432 "scanner.l"
4222 { yylval->h = 12; return NUM; }
4223 	YY_BREAK
4224 case 139:
4225 YY_RULE_SETUP
4226 #line 433 "scanner.l"
4227 { yylval->h = 13; return NUM; }
4228 	YY_BREAK
4229 case 140:
4230 YY_RULE_SETUP
4231 #line 434 "scanner.l"
4232 { yylval->h = 14; return NUM; }
4233 	YY_BREAK
4234 case 141:
4235 YY_RULE_SETUP
4236 #line 435 "scanner.l"
4237 { yylval->h = 15; return NUM; }
4238 	YY_BREAK
4239 case 142:
4240 YY_RULE_SETUP
4241 #line 436 "scanner.l"
4242 { yylval->h = 16; return NUM; }
4243 	YY_BREAK
4244 case 143:
4245 YY_RULE_SETUP
4246 #line 437 "scanner.l"
4247 { yylval->h = 17; return NUM; }
4248 	YY_BREAK
4249 case 144:
4250 YY_RULE_SETUP
4251 #line 438 "scanner.l"
4252 { yylval->h = 18; return NUM; }
4253 	YY_BREAK
4254 case 145:
4255 YY_RULE_SETUP
4256 #line 440 "scanner.l"
4257 { yylval->h = 0; return NUM; }
4258 	YY_BREAK
4259 case 146:
4260 YY_RULE_SETUP
4261 #line 441 "scanner.l"
4262 { yylval->h = 1; return NUM; }
4263 	YY_BREAK
4264 case 147:
4265 YY_RULE_SETUP
4266 #line 443 "scanner.l"
4267 { yylval->h = 1; return NUM; }
4268 	YY_BREAK
4269 case 148:
4270 YY_RULE_SETUP
4271 #line 444 "scanner.l"
4272 { yylval->h = 2; return NUM; }
4273 	YY_BREAK
4274 case 149:
4275 YY_RULE_SETUP
4276 #line 445 "scanner.l"
4277 { yylval->h = 3; return NUM; }
4278 	YY_BREAK
4279 case 150:
4280 YY_RULE_SETUP
4281 #line 446 "scanner.l"
4282 { yylval->h = 4; return NUM; }
4283 	YY_BREAK
4284 case 151:
4285 YY_RULE_SETUP
4286 #line 447 "scanner.l"
4287 { yylval->h = 128; return NUM; }
4288 	YY_BREAK
4289 case 152:
4290 YY_RULE_SETUP
4291 #line 448 "scanner.l"
4292 { yylval->h = 129; return NUM; }
4293 	YY_BREAK
4294 case 153:
4295 YY_RULE_SETUP
4296 #line 449 "scanner.l"
4297 { yylval->h = 130; return NUM; }
4298 	YY_BREAK
4299 case 154:
4300 YY_RULE_SETUP
4301 #line 450 "scanner.l"
4302 { yylval->h = 131; return NUM; }
4303 	YY_BREAK
4304 case 155:
4305 YY_RULE_SETUP
4306 #line 451 "scanner.l"
4307 { yylval->h = 132; return NUM; }
4308 	YY_BREAK
4309 case 156:
4310 YY_RULE_SETUP
4311 #line 452 "scanner.l"
4312 { yylval->h = 133; return NUM; }
4313 	YY_BREAK
4314 case 157:
4315 YY_RULE_SETUP
4316 #line 453 "scanner.l"
4317 { yylval->h = 134; return NUM; }
4318 	YY_BREAK
4319 case 158:
4320 YY_RULE_SETUP
4321 #line 454 "scanner.l"
4322 { yylval->h = 135; return NUM; }
4323 	YY_BREAK
4324 case 159:
4325 YY_RULE_SETUP
4326 #line 455 "scanner.l"
4327 { yylval->h = 136; return NUM; }
4328 	YY_BREAK
4329 case 160:
4330 YY_RULE_SETUP
4331 #line 456 "scanner.l"
4332 { yylval->h = 137; return NUM; }
4333 	YY_BREAK
4334 case 161:
4335 YY_RULE_SETUP
4336 #line 457 "scanner.l"
4337 { yylval->h = 138; return NUM; }
4338 	YY_BREAK
4339 case 162:
4340 YY_RULE_SETUP
4341 #line 458 "scanner.l"
4342 { yylval->h = 139; return NUM; }
4343 	YY_BREAK
4344 case 163:
4345 YY_RULE_SETUP
4346 #line 459 "scanner.l"
4347 { yylval->h = 140; return NUM; }
4348 	YY_BREAK
4349 case 164:
4350 YY_RULE_SETUP
4351 #line 460 "scanner.l"
4352 { yylval->h = 141; return NUM; }
4353 	YY_BREAK
4354 case 165:
4355 YY_RULE_SETUP
4356 #line 461 "scanner.l"
4357 { yylval->h = 142; return NUM; }
4358 	YY_BREAK
4359 case 166:
4360 YY_RULE_SETUP
4361 #line 462 "scanner.l"
4362 { yylval->h = 143; return NUM; }
4363 	YY_BREAK
4364 case 167:
4365 YY_RULE_SETUP
4366 #line 463 "scanner.l"
4367 { yylval->h = 144; return NUM; }
4368 	YY_BREAK
4369 case 168:
4370 YY_RULE_SETUP
4371 #line 464 "scanner.l"
4372 { yylval->h = 145; return NUM; }
4373 	YY_BREAK
4374 case 169:
4375 YY_RULE_SETUP
4376 #line 465 "scanner.l"
4377 { yylval->h = 146; return NUM; }
4378 	YY_BREAK
4379 case 170:
4380 YY_RULE_SETUP
4381 #line 466 "scanner.l"
4382 { yylval->h = 147; return NUM; }
4383 	YY_BREAK
4384 case 171:
4385 YY_RULE_SETUP
4386 #line 467 "scanner.l"
4387 { yylval->h = 148; return NUM; }
4388 	YY_BREAK
4389 case 172:
4390 YY_RULE_SETUP
4391 #line 468 "scanner.l"
4392 { yylval->h = 149; return NUM; }
4393 	YY_BREAK
4394 case 173:
4395 YY_RULE_SETUP
4396 #line 469 "scanner.l"
4397 { yylval->h = 151; return NUM; }
4398 	YY_BREAK
4399 case 174:
4400 YY_RULE_SETUP
4401 #line 470 "scanner.l"
4402 { yylval->h = 152; return NUM; }
4403 	YY_BREAK
4404 case 175:
4405 YY_RULE_SETUP
4406 #line 471 "scanner.l"
4407 { yylval->h = 153; return NUM; }
4408 	YY_BREAK
4409 case 176:
4410 YY_RULE_SETUP
4411 #line 473 "scanner.l"
4412 { yylval->h = 13; return NUM; }
4413 	YY_BREAK
4414 case 177:
4415 YY_RULE_SETUP
4416 #line 474 "scanner.l"
4417 { yylval->h = 0x01; return NUM; }
4418 	YY_BREAK
4419 case 178:
4420 YY_RULE_SETUP
4421 #line 475 "scanner.l"
4422 { yylval->h = 0x02; return NUM; }
4423 	YY_BREAK
4424 case 179:
4425 YY_RULE_SETUP
4426 #line 476 "scanner.l"
4427 { yylval->h = 0x04; return NUM; }
4428 	YY_BREAK
4429 case 180:
4430 YY_RULE_SETUP
4431 #line 477 "scanner.l"
4432 { yylval->h = 0x08; return NUM; }
4433 	YY_BREAK
4434 case 181:
4435 YY_RULE_SETUP
4436 #line 478 "scanner.l"
4437 { yylval->h = 0x10; return NUM; }
4438 	YY_BREAK
4439 case 182:
4440 YY_RULE_SETUP
4441 #line 479 "scanner.l"
4442 { yylval->h = 0x20; return NUM; }
4443 	YY_BREAK
4444 case 183:
4445 YY_RULE_SETUP
4446 #line 480 "scanner.l"
4447 { yylval->h = 0x40; return NUM; }
4448 	YY_BREAK
4449 case 184:
4450 YY_RULE_SETUP
4451 #line 481 "scanner.l"
4452 { yylval->h = 0x80; return NUM; }
4453 	YY_BREAK
4454 case 185:
4455 YY_RULE_SETUP
4456 #line 482 "scanner.l"
4457 {
4458 			 yylval->s = sdup(yyextra, (char *)yytext); return ID; }
4459 	YY_BREAK
4460 case 186:
4461 YY_RULE_SETUP
4462 #line 484 "scanner.l"
4463 { yylval->s = sdup(yyextra, (char *)yytext + 1); return ID; }
4464 	YY_BREAK
4465 case 187:
4466 YY_RULE_SETUP
4467 #line 485 "scanner.l"
4468 { return LEX_ERROR; }
4469 	YY_BREAK
4470 case 188:
4471 YY_RULE_SETUP
4472 #line 486 "scanner.l"
4473 ECHO;
4474 	YY_BREAK
4475 #line 4476 "scanner.c"
4476 case YY_STATE_EOF(INITIAL):
4477 	yyterminate();
4478 
4479 	case YY_END_OF_BUFFER:
4480 		{
4481 		/* Amount of text matched not including the EOB char. */
4482 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4483 
4484 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4485 		*yy_cp = yyg->yy_hold_char;
4486 		YY_RESTORE_YY_MORE_OFFSET
4487 
4488 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4489 			{
4490 			/* We're scanning a new file or input source.  It's
4491 			 * possible that this happened because the user
4492 			 * just pointed yyin at a new source and called
4493 			 * yylex().  If so, then we have to assure
4494 			 * consistency between YY_CURRENT_BUFFER and our
4495 			 * globals.  Here is the right place to do so, because
4496 			 * this is the first action (other than possibly a
4497 			 * back-up) that will match for the new input source.
4498 			 */
4499 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4500 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4501 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4502 			}
4503 
4504 		/* Note that here we test for yy_c_buf_p "<=" to the position
4505 		 * of the first EOB in the buffer, since yy_c_buf_p will
4506 		 * already have been incremented past the NUL character
4507 		 * (since all states make transitions on EOB to the
4508 		 * end-of-buffer state).  Contrast this with the test
4509 		 * in input().
4510 		 */
4511 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4512 			{ /* This was really a NUL. */
4513 			yy_state_type yy_next_state;
4514 
4515 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4516 
4517 			yy_current_state = yy_get_previous_state( yyscanner );
4518 
4519 			/* Okay, we're now positioned to make the NUL
4520 			 * transition.  We couldn't have
4521 			 * yy_get_previous_state() go ahead and do it
4522 			 * for us because it doesn't know how to deal
4523 			 * with the possibility of jamming (and we don't
4524 			 * want to build jamming into it because then it
4525 			 * will run more slowly).
4526 			 */
4527 
4528 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4529 
4530 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4531 
4532 			if ( yy_next_state )
4533 				{
4534 				/* Consume the NUL. */
4535 				yy_cp = ++yyg->yy_c_buf_p;
4536 				yy_current_state = yy_next_state;
4537 				goto yy_match;
4538 				}
4539 
4540 			else
4541 				{
4542 				yy_cp = yyg->yy_last_accepting_cpos;
4543 				yy_current_state = yyg->yy_last_accepting_state;
4544 				goto yy_find_action;
4545 				}
4546 			}
4547 
4548 		else switch ( yy_get_next_buffer( yyscanner ) )
4549 			{
4550 			case EOB_ACT_END_OF_FILE:
4551 				{
4552 				yyg->yy_did_buffer_switch_on_eof = 0;
4553 
4554 				if ( yywrap( yyscanner ) )
4555 					{
4556 					/* Note: because we've taken care in
4557 					 * yy_get_next_buffer() to have set up
4558 					 * yytext, we can now set up
4559 					 * yy_c_buf_p so that if some total
4560 					 * hoser (like flex itself) wants to
4561 					 * call the scanner after we return the
4562 					 * YY_NULL, it'll still work - another
4563 					 * YY_NULL will get returned.
4564 					 */
4565 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4566 
4567 					yy_act = YY_STATE_EOF(YY_START);
4568 					goto do_action;
4569 					}
4570 
4571 				else
4572 					{
4573 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4574 						YY_NEW_FILE;
4575 					}
4576 				break;
4577 				}
4578 
4579 			case EOB_ACT_CONTINUE_SCAN:
4580 				yyg->yy_c_buf_p =
4581 					yyg->yytext_ptr + yy_amount_of_matched_text;
4582 
4583 				yy_current_state = yy_get_previous_state( yyscanner );
4584 
4585 				yy_cp = yyg->yy_c_buf_p;
4586 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4587 				goto yy_match;
4588 
4589 			case EOB_ACT_LAST_MATCH:
4590 				yyg->yy_c_buf_p =
4591 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4592 
4593 				yy_current_state = yy_get_previous_state( yyscanner );
4594 
4595 				yy_cp = yyg->yy_c_buf_p;
4596 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4597 				goto yy_find_action;
4598 			}
4599 		break;
4600 		}
4601 
4602 	default:
4603 		YY_FATAL_ERROR(
4604 			"fatal flex scanner internal error--no action found" );
4605 	} /* end of action switch */
4606 		} /* end of scanning one token */
4607 	} /* end of user's declarations */
4608 } /* end of yylex */
4609 
4610 /* yy_get_next_buffer - try to read in a new buffer
4611  *
4612  * Returns a code representing an action:
4613  *	EOB_ACT_LAST_MATCH -
4614  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4615  *	EOB_ACT_END_OF_FILE - end of file
4616  */
yy_get_next_buffer(yyscan_t yyscanner)4617 static int yy_get_next_buffer (yyscan_t yyscanner)
4618 {
4619     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4620 	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4621 	char *source = yyg->yytext_ptr;
4622 	int number_to_move, i;
4623 	int ret_val;
4624 
4625 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4626 		YY_FATAL_ERROR(
4627 		"fatal flex scanner internal error--end of buffer missed" );
4628 
4629 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4630 		{ /* Don't try to fill the buffer, so this is an EOF. */
4631 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4632 			{
4633 			/* We matched a single character, the EOB, so
4634 			 * treat this as a final EOF.
4635 			 */
4636 			return EOB_ACT_END_OF_FILE;
4637 			}
4638 
4639 		else
4640 			{
4641 			/* We matched some text prior to the EOB, first
4642 			 * process it.
4643 			 */
4644 			return EOB_ACT_LAST_MATCH;
4645 			}
4646 		}
4647 
4648 	/* Try to read more data. */
4649 
4650 	/* First move last chars to start of buffer. */
4651 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
4652 
4653 	for ( i = 0; i < number_to_move; ++i )
4654 		*(dest++) = *(source++);
4655 
4656 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4657 		/* don't do the read, it's not guaranteed to return an EOF,
4658 		 * just force an EOF
4659 		 */
4660 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4661 
4662 	else
4663 		{
4664 			int num_to_read =
4665 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4666 
4667 		while ( num_to_read <= 0 )
4668 			{ /* Not enough room in the buffer - grow it. */
4669 
4670 			/* just a shorter name for the current buffer */
4671 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4672 
4673 			int yy_c_buf_p_offset =
4674 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4675 
4676 			if ( b->yy_is_our_buffer )
4677 				{
4678 				int new_size = b->yy_buf_size * 2;
4679 
4680 				if ( new_size <= 0 )
4681 					b->yy_buf_size += b->yy_buf_size / 8;
4682 				else
4683 					b->yy_buf_size *= 2;
4684 
4685 				b->yy_ch_buf = (char *)
4686 					/* Include room in for 2 EOB chars. */
4687 					yyrealloc( (void *) b->yy_ch_buf,
4688 							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4689 				}
4690 			else
4691 				/* Can't grow it, we don't own it. */
4692 				b->yy_ch_buf = NULL;
4693 
4694 			if ( ! b->yy_ch_buf )
4695 				YY_FATAL_ERROR(
4696 				"fatal error - scanner input buffer overflow" );
4697 
4698 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4699 
4700 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4701 						number_to_move - 1;
4702 
4703 			}
4704 
4705 		if ( num_to_read > YY_READ_BUF_SIZE )
4706 			num_to_read = YY_READ_BUF_SIZE;
4707 
4708 		/* Read in more data. */
4709 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4710 			yyg->yy_n_chars, num_to_read );
4711 
4712 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4713 		}
4714 
4715 	if ( yyg->yy_n_chars == 0 )
4716 		{
4717 		if ( number_to_move == YY_MORE_ADJ )
4718 			{
4719 			ret_val = EOB_ACT_END_OF_FILE;
4720 			yyrestart( yyin  , yyscanner);
4721 			}
4722 
4723 		else
4724 			{
4725 			ret_val = EOB_ACT_LAST_MATCH;
4726 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4727 				YY_BUFFER_EOF_PENDING;
4728 			}
4729 		}
4730 
4731 	else
4732 		ret_val = EOB_ACT_CONTINUE_SCAN;
4733 
4734 	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4735 		/* Extend the array by 50%, plus the number we really need. */
4736 		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4737 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4738 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
4739 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4740 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4741 		/* "- 2" to take care of EOB's */
4742 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4743 	}
4744 
4745 	yyg->yy_n_chars += number_to_move;
4746 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4747 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4748 
4749 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4750 
4751 	return ret_val;
4752 }
4753 
4754 /* yy_get_previous_state - get the state just before the EOB char was reached */
4755 
yy_get_previous_state(yyscan_t yyscanner)4756     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4757 {
4758 	yy_state_type yy_current_state;
4759 	char *yy_cp;
4760     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4761 
4762 	yy_current_state = yyg->yy_start;
4763 
4764 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4765 		{
4766 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4767 		if ( yy_accept[yy_current_state] )
4768 			{
4769 			yyg->yy_last_accepting_state = yy_current_state;
4770 			yyg->yy_last_accepting_cpos = yy_cp;
4771 			}
4772 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4773 			{
4774 			yy_current_state = (int) yy_def[yy_current_state];
4775 			if ( yy_current_state >= 1785 )
4776 				yy_c = yy_meta[yy_c];
4777 			}
4778 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4779 		}
4780 
4781 	return yy_current_state;
4782 }
4783 
4784 /* yy_try_NUL_trans - try to make a transition on the NUL character
4785  *
4786  * synopsis
4787  *	next_state = yy_try_NUL_trans( current_state );
4788  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)4789     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4790 {
4791 	int yy_is_jam;
4792     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4793 	char *yy_cp = yyg->yy_c_buf_p;
4794 
4795 	YY_CHAR yy_c = 1;
4796 	if ( yy_accept[yy_current_state] )
4797 		{
4798 		yyg->yy_last_accepting_state = yy_current_state;
4799 		yyg->yy_last_accepting_cpos = yy_cp;
4800 		}
4801 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4802 		{
4803 		yy_current_state = (int) yy_def[yy_current_state];
4804 		if ( yy_current_state >= 1785 )
4805 			yy_c = yy_meta[yy_c];
4806 		}
4807 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4808 	yy_is_jam = (yy_current_state == 1784);
4809 
4810 	(void)yyg;
4811 	return yy_is_jam ? 0 : yy_current_state;
4812 }
4813 
4814 #ifndef YY_NO_UNPUT
4815 
4816 #endif
4817 
4818 #ifndef YY_NO_INPUT
4819 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)4820     static int yyinput (yyscan_t yyscanner)
4821 #else
4822     static int input  (yyscan_t yyscanner)
4823 #endif
4824 
4825 {
4826 	int c;
4827     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4828 
4829 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
4830 
4831 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4832 		{
4833 		/* yy_c_buf_p now points to the character we want to return.
4834 		 * If this occurs *before* the EOB characters, then it's a
4835 		 * valid NUL; if not, then we've hit the end of the buffer.
4836 		 */
4837 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4838 			/* This was really a NUL. */
4839 			*yyg->yy_c_buf_p = '\0';
4840 
4841 		else
4842 			{ /* need more input */
4843 			int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
4844 			++yyg->yy_c_buf_p;
4845 
4846 			switch ( yy_get_next_buffer( yyscanner ) )
4847 				{
4848 				case EOB_ACT_LAST_MATCH:
4849 					/* This happens because yy_g_n_b()
4850 					 * sees that we've accumulated a
4851 					 * token and flags that we need to
4852 					 * try matching the token before
4853 					 * proceeding.  But for input(),
4854 					 * there's no matching to consider.
4855 					 * So convert the EOB_ACT_LAST_MATCH
4856 					 * to EOB_ACT_END_OF_FILE.
4857 					 */
4858 
4859 					/* Reset buffer status. */
4860 					yyrestart( yyin , yyscanner);
4861 
4862 					/*FALLTHROUGH*/
4863 
4864 				case EOB_ACT_END_OF_FILE:
4865 					{
4866 					if ( yywrap( yyscanner ) )
4867 						return 0;
4868 
4869 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4870 						YY_NEW_FILE;
4871 #ifdef __cplusplus
4872 					return yyinput(yyscanner);
4873 #else
4874 					return input(yyscanner);
4875 #endif
4876 					}
4877 
4878 				case EOB_ACT_CONTINUE_SCAN:
4879 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4880 					break;
4881 				}
4882 			}
4883 		}
4884 
4885 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
4886 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
4887 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4888 
4889 	return c;
4890 }
4891 #endif	/* ifndef YY_NO_INPUT */
4892 
4893 /** Immediately switch to a different input stream.
4894  * @param input_file A readable stream.
4895  * @param yyscanner The scanner object.
4896  * @note This function does not reset the start condition to @c INITIAL .
4897  */
yyrestart(FILE * input_file,yyscan_t yyscanner)4898     void yyrestart  (FILE * input_file , yyscan_t yyscanner)
4899 {
4900     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4901 
4902 	if ( ! YY_CURRENT_BUFFER ){
4903         yyensure_buffer_stack (yyscanner);
4904 		YY_CURRENT_BUFFER_LVALUE =
4905             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
4906 	}
4907 
4908 	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
4909 	yy_load_buffer_state( yyscanner );
4910 }
4911 
4912 /** Switch to a different input buffer.
4913  * @param new_buffer The new input buffer.
4914  * @param yyscanner The scanner object.
4915  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4916     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4917 {
4918     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4919 
4920 	/* TODO. We should be able to replace this entire function body
4921 	 * with
4922 	 *		yypop_buffer_state();
4923 	 *		yypush_buffer_state(new_buffer);
4924      */
4925 	yyensure_buffer_stack (yyscanner);
4926 	if ( YY_CURRENT_BUFFER == new_buffer )
4927 		return;
4928 
4929 	if ( YY_CURRENT_BUFFER )
4930 		{
4931 		/* Flush out information for old buffer. */
4932 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4933 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4934 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4935 		}
4936 
4937 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4938 	yy_load_buffer_state( yyscanner );
4939 
4940 	/* We don't actually know whether we did this switch during
4941 	 * EOF (yywrap()) processing, but the only time this flag
4942 	 * is looked at is after yywrap() is called, so it's safe
4943 	 * to go ahead and always set it.
4944 	 */
4945 	yyg->yy_did_buffer_switch_on_eof = 1;
4946 }
4947 
yy_load_buffer_state(yyscan_t yyscanner)4948 static void yy_load_buffer_state  (yyscan_t yyscanner)
4949 {
4950     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4951 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4952 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4953 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4954 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
4955 }
4956 
4957 /** Allocate and initialize an input buffer state.
4958  * @param file A readable stream.
4959  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4960  * @param yyscanner The scanner object.
4961  * @return the allocated buffer state.
4962  */
yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)4963     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4964 {
4965 	YY_BUFFER_STATE b;
4966 
4967 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
4968 	if ( ! b )
4969 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4970 
4971 	b->yy_buf_size = size;
4972 
4973 	/* yy_ch_buf has to be 2 characters longer than the size given because
4974 	 * we need to put in 2 end-of-buffer characters.
4975 	 */
4976 	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4977 	if ( ! b->yy_ch_buf )
4978 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4979 
4980 	b->yy_is_our_buffer = 1;
4981 
4982 	yy_init_buffer( b, file , yyscanner);
4983 
4984 	return b;
4985 }
4986 
4987 /** Destroy the buffer.
4988  * @param b a buffer created with yy_create_buffer()
4989  * @param yyscanner The scanner object.
4990  */
yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)4991     void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4992 {
4993     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4994 
4995 	if ( ! b )
4996 		return;
4997 
4998 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4999 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
5000 
5001 	if ( b->yy_is_our_buffer )
5002 		yyfree( (void *) b->yy_ch_buf , yyscanner );
5003 
5004 	yyfree( (void *) b , yyscanner );
5005 }
5006 
5007 /* Initializes or reinitializes a buffer.
5008  * This function is sometimes called more than once on the same buffer,
5009  * such as during a yyrestart() or at EOF.
5010  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)5011     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
5012 
5013 {
5014 	int oerrno = errno;
5015     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5016 
5017 	yy_flush_buffer( b , yyscanner);
5018 
5019 	b->yy_input_file = file;
5020 	b->yy_fill_buffer = 1;
5021 
5022     /* If b is the current buffer, then yy_init_buffer was _probably_
5023      * called from yyrestart() or through yy_get_next_buffer.
5024      * In that case, we don't want to reset the lineno or column.
5025      */
5026     if (b != YY_CURRENT_BUFFER){
5027         b->yy_bs_lineno = 1;
5028         b->yy_bs_column = 0;
5029     }
5030 
5031         b->yy_is_interactive = 0;
5032 
5033 	errno = oerrno;
5034 }
5035 
5036 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5037  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5038  * @param yyscanner The scanner object.
5039  */
yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)5040     void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
5041 {
5042     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5043 	if ( ! b )
5044 		return;
5045 
5046 	b->yy_n_chars = 0;
5047 
5048 	/* We always need two end-of-buffer characters.  The first causes
5049 	 * a transition to the end-of-buffer state.  The second causes
5050 	 * a jam in that state.
5051 	 */
5052 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5053 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5054 
5055 	b->yy_buf_pos = &b->yy_ch_buf[0];
5056 
5057 	b->yy_at_bol = 1;
5058 	b->yy_buffer_status = YY_BUFFER_NEW;
5059 
5060 	if ( b == YY_CURRENT_BUFFER )
5061 		yy_load_buffer_state( yyscanner );
5062 }
5063 
5064 /** Pushes the new state onto the stack. The new state becomes
5065  *  the current state. This function will allocate the stack
5066  *  if necessary.
5067  *  @param new_buffer The new state.
5068  *  @param yyscanner The scanner object.
5069  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)5070 void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
5071 {
5072     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5073 	if (new_buffer == NULL)
5074 		return;
5075 
5076 	yyensure_buffer_stack(yyscanner);
5077 
5078 	/* This block is copied from yy_switch_to_buffer. */
5079 	if ( YY_CURRENT_BUFFER )
5080 		{
5081 		/* Flush out information for old buffer. */
5082 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
5083 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
5084 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
5085 		}
5086 
5087 	/* Only push if top exists. Otherwise, replace top. */
5088 	if (YY_CURRENT_BUFFER)
5089 		yyg->yy_buffer_stack_top++;
5090 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
5091 
5092 	/* copied from yy_switch_to_buffer. */
5093 	yy_load_buffer_state( yyscanner );
5094 	yyg->yy_did_buffer_switch_on_eof = 1;
5095 }
5096 
5097 /** Removes and deletes the top of the stack, if present.
5098  *  The next element becomes the new top.
5099  *  @param yyscanner The scanner object.
5100  */
yypop_buffer_state(yyscan_t yyscanner)5101 void yypop_buffer_state (yyscan_t yyscanner)
5102 {
5103     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5104 	if (!YY_CURRENT_BUFFER)
5105 		return;
5106 
5107 	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
5108 	YY_CURRENT_BUFFER_LVALUE = NULL;
5109 	if (yyg->yy_buffer_stack_top > 0)
5110 		--yyg->yy_buffer_stack_top;
5111 
5112 	if (YY_CURRENT_BUFFER) {
5113 		yy_load_buffer_state( yyscanner );
5114 		yyg->yy_did_buffer_switch_on_eof = 1;
5115 	}
5116 }
5117 
5118 /* Allocates the stack if it does not exist.
5119  *  Guarantees space for at least one push.
5120  */
yyensure_buffer_stack(yyscan_t yyscanner)5121 static void yyensure_buffer_stack (yyscan_t yyscanner)
5122 {
5123 	yy_size_t num_to_alloc;
5124     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5125 
5126 	if (!yyg->yy_buffer_stack) {
5127 
5128 		/* First allocation is just for 2 elements, since we don't know if this
5129 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
5130 		 * immediate realloc on the next call.
5131          */
5132       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
5133 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
5134 								(num_to_alloc * sizeof(struct yy_buffer_state*)
5135 								, yyscanner);
5136 		if ( ! yyg->yy_buffer_stack )
5137 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5138 
5139 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5140 
5141 		yyg->yy_buffer_stack_max = num_to_alloc;
5142 		yyg->yy_buffer_stack_top = 0;
5143 		return;
5144 	}
5145 
5146 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
5147 
5148 		/* Increase the buffer to prepare for a possible push. */
5149 		yy_size_t grow_size = 8 /* arbitrary grow size */;
5150 
5151 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
5152 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
5153 								(yyg->yy_buffer_stack,
5154 								num_to_alloc * sizeof(struct yy_buffer_state*)
5155 								, yyscanner);
5156 		if ( ! yyg->yy_buffer_stack )
5157 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5158 
5159 		/* zero only the new slots.*/
5160 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
5161 		yyg->yy_buffer_stack_max = num_to_alloc;
5162 	}
5163 }
5164 
5165 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5166  * @param base the character buffer
5167  * @param size the size in bytes of the character buffer
5168  * @param yyscanner The scanner object.
5169  * @return the newly allocated buffer state object.
5170  */
yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)5171 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
5172 {
5173 	YY_BUFFER_STATE b;
5174 
5175 	if ( size < 2 ||
5176 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
5177 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
5178 		/* They forgot to leave room for the EOB's. */
5179 		return NULL;
5180 
5181 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
5182 	if ( ! b )
5183 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5184 
5185 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
5186 	b->yy_buf_pos = b->yy_ch_buf = base;
5187 	b->yy_is_our_buffer = 0;
5188 	b->yy_input_file = NULL;
5189 	b->yy_n_chars = b->yy_buf_size;
5190 	b->yy_is_interactive = 0;
5191 	b->yy_at_bol = 1;
5192 	b->yy_fill_buffer = 0;
5193 	b->yy_buffer_status = YY_BUFFER_NEW;
5194 
5195 	yy_switch_to_buffer( b , yyscanner );
5196 
5197 	return b;
5198 }
5199 
5200 /** Setup the input buffer state to scan a string. The next call to yylex() will
5201  * scan from a @e copy of @a str.
5202  * @param yystr a NUL-terminated string to scan
5203  * @param yyscanner The scanner object.
5204  * @return the newly allocated buffer state object.
5205  * @note If you want to scan bytes that may contain NUL values, then use
5206  *       yy_scan_bytes() instead.
5207  */
yy_scan_string(const char * yystr,yyscan_t yyscanner)5208 YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
5209 {
5210 
5211 	return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
5212 }
5213 
5214 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5215  * scan from a @e copy of @a bytes.
5216  * @param yybytes the byte buffer to scan
5217  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5218  * @param yyscanner The scanner object.
5219  * @return the newly allocated buffer state object.
5220  */
yy_scan_bytes(const char * yybytes,int _yybytes_len,yyscan_t yyscanner)5221 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
5222 {
5223 	YY_BUFFER_STATE b;
5224 	char *buf;
5225 	yy_size_t n;
5226 	int i;
5227 
5228 	/* Get memory for full buffer, including space for trailing EOB's. */
5229 	n = (yy_size_t) (_yybytes_len + 2);
5230 	buf = (char *) yyalloc( n , yyscanner );
5231 	if ( ! buf )
5232 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5233 
5234 	for ( i = 0; i < _yybytes_len; ++i )
5235 		buf[i] = yybytes[i];
5236 
5237 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5238 
5239 	b = yy_scan_buffer( buf, n , yyscanner);
5240 	if ( ! b )
5241 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5242 
5243 	/* It's okay to grow etc. this buffer, and we should throw it
5244 	 * away when we're done.
5245 	 */
5246 	b->yy_is_our_buffer = 1;
5247 
5248 	return b;
5249 }
5250 
5251 #ifndef YY_EXIT_FAILURE
5252 #define YY_EXIT_FAILURE 2
5253 #endif
5254 
yy_fatal_error(const char * msg,yyscan_t yyscanner)5255 static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
5256 {
5257 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5258 	(void)yyg;
5259 	fprintf( stderr, "%s\n", msg );
5260 	exit( YY_EXIT_FAILURE );
5261 }
5262 
5263 /* Redefine yyless() so it works in section 3 code. */
5264 
5265 #undef yyless
5266 #define yyless(n) \
5267 	do \
5268 		{ \
5269 		/* Undo effects of setting up yytext. */ \
5270         int yyless_macro_arg = (n); \
5271         YY_LESS_LINENO(yyless_macro_arg);\
5272 		yytext[yyleng] = yyg->yy_hold_char; \
5273 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5274 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5275 		*yyg->yy_c_buf_p = '\0'; \
5276 		yyleng = yyless_macro_arg; \
5277 		} \
5278 	while ( 0 )
5279 
5280 /* Accessor  methods (get/set functions) to struct members. */
5281 
5282 /** Get the user-defined data for this scanner.
5283  * @param yyscanner The scanner object.
5284  */
yyget_extra(yyscan_t yyscanner)5285 YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
5286 {
5287     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5288     return yyextra;
5289 }
5290 
5291 /** Get the current line number.
5292  * @param yyscanner The scanner object.
5293  */
yyget_lineno(yyscan_t yyscanner)5294 int yyget_lineno  (yyscan_t yyscanner)
5295 {
5296     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5297 
5298         if (! YY_CURRENT_BUFFER)
5299             return 0;
5300 
5301     return yylineno;
5302 }
5303 
5304 /** Get the current column number.
5305  * @param yyscanner The scanner object.
5306  */
yyget_column(yyscan_t yyscanner)5307 int yyget_column  (yyscan_t yyscanner)
5308 {
5309     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5310 
5311         if (! YY_CURRENT_BUFFER)
5312             return 0;
5313 
5314     return yycolumn;
5315 }
5316 
5317 /** Get the input stream.
5318  * @param yyscanner The scanner object.
5319  */
yyget_in(yyscan_t yyscanner)5320 FILE *yyget_in  (yyscan_t yyscanner)
5321 {
5322     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5323     return yyin;
5324 }
5325 
5326 /** Get the output stream.
5327  * @param yyscanner The scanner object.
5328  */
yyget_out(yyscan_t yyscanner)5329 FILE *yyget_out  (yyscan_t yyscanner)
5330 {
5331     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5332     return yyout;
5333 }
5334 
5335 /** Get the length of the current token.
5336  * @param yyscanner The scanner object.
5337  */
yyget_leng(yyscan_t yyscanner)5338 int yyget_leng  (yyscan_t yyscanner)
5339 {
5340     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5341     return yyleng;
5342 }
5343 
5344 /** Get the current token.
5345  * @param yyscanner The scanner object.
5346  */
5347 
yyget_text(yyscan_t yyscanner)5348 char *yyget_text  (yyscan_t yyscanner)
5349 {
5350     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5351     return yytext;
5352 }
5353 
5354 /** Set the user-defined data. This data is never touched by the scanner.
5355  * @param user_defined The data to be associated with this scanner.
5356  * @param yyscanner The scanner object.
5357  */
yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)5358 void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5359 {
5360     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5361     yyextra = user_defined ;
5362 }
5363 
5364 /** Set the current line number.
5365  * @param _line_number line number
5366  * @param yyscanner The scanner object.
5367  */
yyset_lineno(int _line_number,yyscan_t yyscanner)5368 void yyset_lineno (int  _line_number , yyscan_t yyscanner)
5369 {
5370     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5371 
5372         /* lineno is only valid if an input buffer exists. */
5373         if (! YY_CURRENT_BUFFER )
5374            YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
5375 
5376     yylineno = _line_number;
5377 }
5378 
5379 /** Set the current column.
5380  * @param _column_no column number
5381  * @param yyscanner The scanner object.
5382  */
yyset_column(int _column_no,yyscan_t yyscanner)5383 void yyset_column (int  _column_no , yyscan_t yyscanner)
5384 {
5385     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5386 
5387         /* column is only valid if an input buffer exists. */
5388         if (! YY_CURRENT_BUFFER )
5389            YY_FATAL_ERROR( "yyset_column called with no buffer" );
5390 
5391     yycolumn = _column_no;
5392 }
5393 
5394 /** Set the input stream. This does not discard the current
5395  * input buffer.
5396  * @param _in_str A readable stream.
5397  * @param yyscanner The scanner object.
5398  * @see yy_switch_to_buffer
5399  */
yyset_in(FILE * _in_str,yyscan_t yyscanner)5400 void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
5401 {
5402     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5403     yyin = _in_str ;
5404 }
5405 
yyset_out(FILE * _out_str,yyscan_t yyscanner)5406 void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
5407 {
5408     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5409     yyout = _out_str ;
5410 }
5411 
yyget_debug(yyscan_t yyscanner)5412 int yyget_debug  (yyscan_t yyscanner)
5413 {
5414     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5415     return yy_flex_debug;
5416 }
5417 
yyset_debug(int _bdebug,yyscan_t yyscanner)5418 void yyset_debug (int  _bdebug , yyscan_t yyscanner)
5419 {
5420     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5421     yy_flex_debug = _bdebug ;
5422 }
5423 
5424 /* Accessor methods for yylval and yylloc */
5425 
yyget_lval(yyscan_t yyscanner)5426 YYSTYPE * yyget_lval  (yyscan_t yyscanner)
5427 {
5428     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5429     return yylval;
5430 }
5431 
yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)5432 void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
5433 {
5434     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5435     yylval = yylval_param;
5436 }
5437 
5438 /* User-visible API */
5439 
5440 /* yylex_init is special because it creates the scanner itself, so it is
5441  * the ONLY reentrant function that doesn't take the scanner as the last argument.
5442  * That's why we explicitly handle the declaration, instead of using our macros.
5443  */
yylex_init(yyscan_t * ptr_yy_globals)5444 int yylex_init(yyscan_t* ptr_yy_globals)
5445 {
5446     if (ptr_yy_globals == NULL){
5447         errno = EINVAL;
5448         return 1;
5449     }
5450 
5451     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
5452 
5453     if (*ptr_yy_globals == NULL){
5454         errno = ENOMEM;
5455         return 1;
5456     }
5457 
5458     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5459     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5460 
5461     return yy_init_globals ( *ptr_yy_globals );
5462 }
5463 
5464 /* yylex_init_extra has the same functionality as yylex_init, but follows the
5465  * convention of taking the scanner as the last argument. Note however, that
5466  * this is a *pointer* to a scanner, as it will be allocated by this call (and
5467  * is the reason, too, why this function also must handle its own declaration).
5468  * The user defined value in the first argument will be available to yyalloc in
5469  * the yyextra field.
5470  */
yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)5471 int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
5472 {
5473     struct yyguts_t dummy_yyguts;
5474 
5475     yyset_extra (yy_user_defined, &dummy_yyguts);
5476 
5477     if (ptr_yy_globals == NULL){
5478         errno = EINVAL;
5479         return 1;
5480     }
5481 
5482     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5483 
5484     if (*ptr_yy_globals == NULL){
5485         errno = ENOMEM;
5486         return 1;
5487     }
5488 
5489     /* By setting to 0xAA, we expose bugs in
5490     yy_init_globals. Leave at 0x00 for releases. */
5491     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5492 
5493     yyset_extra (yy_user_defined, *ptr_yy_globals);
5494 
5495     return yy_init_globals ( *ptr_yy_globals );
5496 }
5497 
yy_init_globals(yyscan_t yyscanner)5498 static int yy_init_globals (yyscan_t yyscanner)
5499 {
5500     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5501     /* Initialization is the same as for the non-reentrant scanner.
5502      * This function is called from yylex_destroy(), so don't allocate here.
5503      */
5504 
5505     yyg->yy_buffer_stack = NULL;
5506     yyg->yy_buffer_stack_top = 0;
5507     yyg->yy_buffer_stack_max = 0;
5508     yyg->yy_c_buf_p = NULL;
5509     yyg->yy_init = 0;
5510     yyg->yy_start = 0;
5511 
5512     yyg->yy_start_stack_ptr = 0;
5513     yyg->yy_start_stack_depth = 0;
5514     yyg->yy_start_stack =  NULL;
5515 
5516 /* Defined in main.c */
5517 #ifdef YY_STDINIT
5518     yyin = stdin;
5519     yyout = stdout;
5520 #else
5521     yyin = NULL;
5522     yyout = NULL;
5523 #endif
5524 
5525     /* For future reference: Set errno on error, since we are called by
5526      * yylex_init()
5527      */
5528     return 0;
5529 }
5530 
5531 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(yyscan_t yyscanner)5532 int yylex_destroy  (yyscan_t yyscanner)
5533 {
5534     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5535 
5536     /* Pop the buffer stack, destroying each element. */
5537 	while(YY_CURRENT_BUFFER){
5538 		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
5539 		YY_CURRENT_BUFFER_LVALUE = NULL;
5540 		yypop_buffer_state(yyscanner);
5541 	}
5542 
5543 	/* Destroy the stack itself. */
5544 	yyfree(yyg->yy_buffer_stack , yyscanner);
5545 	yyg->yy_buffer_stack = NULL;
5546 
5547     /* Destroy the start condition stack. */
5548         yyfree( yyg->yy_start_stack , yyscanner );
5549         yyg->yy_start_stack = NULL;
5550 
5551     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5552      * yylex() is called, initialization will occur. */
5553     yy_init_globals( yyscanner);
5554 
5555     /* Destroy the main struct (reentrant only). */
5556     yyfree ( yyscanner , yyscanner );
5557     yyscanner = NULL;
5558     return 0;
5559 }
5560 
5561 /*
5562  * Internal utility routines.
5563  */
5564 
5565 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n,yyscan_t yyscanner)5566 static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
5567 {
5568 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5569 	(void)yyg;
5570 
5571 	int i;
5572 	for ( i = 0; i < n; ++i )
5573 		s1[i] = s2[i];
5574 }
5575 #endif
5576 
5577 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s,yyscan_t yyscanner)5578 static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
5579 {
5580 	int n;
5581 	for ( n = 0; s[n]; ++n )
5582 		;
5583 
5584 	return n;
5585 }
5586 #endif
5587 
yyalloc(yy_size_t size,yyscan_t yyscanner)5588 void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
5589 {
5590 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5591 	(void)yyg;
5592 	return malloc(size);
5593 }
5594 
yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)5595 void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
5596 {
5597 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5598 	(void)yyg;
5599 
5600 	/* The cast to (char *) in the following accommodates both
5601 	 * implementations that use char* generic pointers, and those
5602 	 * that use void* generic pointers.  It works with the latter
5603 	 * because both ANSI C and C++ allow castless assignment from
5604 	 * any pointer type to void*, and deal with argument conversions
5605 	 * as though doing an assignment.
5606 	 */
5607 	return realloc(ptr, size);
5608 }
5609 
yyfree(void * ptr,yyscan_t yyscanner)5610 void yyfree (void * ptr , yyscan_t yyscanner)
5611 {
5612 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5613 	(void)yyg;
5614 	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
5615 }
5616 
5617 #define YYTABLES_NAME "yytables"
5618 
5619 #line 486 "scanner.l"
5620 
5621 
5622 /*
5623  * Turn diagnostics back on, so we check the code that we've written.
5624  */
5625 DIAG_ON_FLEX
5626 
5627 /*
5628  * Convert string to 32-bit unsigned integer.  Just like atoi(), but checks for
5629  * preceding 0x or 0 and uses hex or octal instead of decimal.
5630  *
5631  * On success, sets yylval->h to the value and returns NUM.
5632  * On failure, sets the BPF error string and returns LEX_ERROR, to force
5633  * the parse to stop.
5634  */
5635 static int
stou(char * yytext_arg,YYSTYPE * yylval_arg,compiler_state_t * yyextra_arg)5636 stou(char *yytext_arg, YYSTYPE *yylval_arg, compiler_state_t *yyextra_arg)
5637 {
5638 	bpf_u_int32 n = 0;
5639 	unsigned int digit;
5640 	char *s = yytext_arg;
5641 
5642 	/*
5643 	 * yytext_arg is guaranteed either to be a string of decimal digits
5644 	 * or 0[xX] followed by a string of hex digits.
5645 	 */
5646 	if (*s == '0') {
5647 		if (s[1] == 'x' || s[1] == 'X') {
5648 			/*
5649 			 * Begins with 0x or 0X, so hex.
5650 			 * Guaranteed to be all hex digits following the
5651 			 * prefix, so anything that's not 0-9 or a-f is
5652 			 * A-F.
5653 			 */
5654 			s += 2;	/* skip the prefix */
5655 			while ((digit = *s++) != '\0') {
5656 				if (digit >= '0' && digit <= '9')
5657 					digit = digit - '0';
5658 				else if (digit >= 'a' && digit <= 'f')
5659 					digit = digit - 'a' + 10;
5660 				else
5661 					digit = digit - 'A' + 10;
5662 
5663 				/*
5664 				 * Check for overflow.
5665 				 */
5666 				if (n > 0xFFFFFFFU) {
5667 					/*
5668 					 * We have more than 28 bits of
5669 					 * number, and are about to
5670 					 * add 4 more; that won't fit
5671 					 * in 32 bits.
5672 					 */
5673 					bpf_set_error(yyextra_arg,
5674 					    "number %s overflows 32 bits",
5675 					    yytext_arg);
5676 					return LEX_ERROR;
5677 				}
5678 				n = (n << 4) + digit;
5679 			}
5680 		} else {
5681 			/*
5682 			 * Begins with 0, but not 0x or 0X, so octal.
5683 			 * Guaranteed to be all *decimal* digits following
5684 			 * the prefix, so we need to catch 8 and 9 and
5685 			 * report an error.
5686 			 */
5687 			s += 1;
5688 			while ((digit = *s++) != '\0') {
5689 				if (digit >= '0' && digit <= '7')
5690 					digit = digit - '0';
5691 				else {
5692 					bpf_set_error(yyextra_arg,
5693 					    "number %s contains non-octal digit",
5694 					    yytext_arg);
5695 					return LEX_ERROR;
5696 				}
5697 				if (n > 03777777777U) {
5698 					/*
5699 					 * We have more than 29 bits of
5700 					 * number, and are about to add
5701 					 * 3 more; that won't fit in
5702 					 * 32 bits.
5703 					 */
5704 					bpf_set_error(yyextra_arg,
5705 					    "number %s overflows 32 bits",
5706 					    yytext_arg);
5707 					return LEX_ERROR;
5708 				}
5709 				n = (n << 3) + digit;
5710 			}
5711 		}
5712 	} else {
5713 		/*
5714 		 * Decimal.
5715 		 */
5716 		while ((digit = *s++) != '\0') {
5717 			digit = digit - '0';
5718 #define CUTOFF_DEC	(0xFFFFFFFFU / 10U)
5719 #define CUTLIM_DEC	(0xFFFFFFFFU % 10U)
5720 			if (n > CUTOFF_DEC ||
5721 			    (n == CUTOFF_DEC && digit > CUTLIM_DEC)) {
5722 				bpf_set_error(yyextra_arg,
5723 				    "number %s overflows 32 bits",
5724 				    yytext_arg);
5725 				return LEX_ERROR;
5726 			}
5727 			n = (n * 10) + digit;
5728 		}
5729 	}
5730 
5731 	yylval_arg->h = n;
5732 	return NUM;
5733 }
5734 
5735