1 #line 1 "dhcp4_lexer.cc"
3 #line 3 "dhcp4_lexer.cc"
5 #define YY_INT_ALIGNED short int
12 #define yy_create_buffer parser4__create_buffer
13 #define yy_delete_buffer parser4__delete_buffer
14 #define yy_scan_buffer parser4__scan_buffer
15 #define yy_scan_string parser4__scan_string
16 #define yy_scan_bytes parser4__scan_bytes
17 #define yy_init_buffer parser4__init_buffer
18 #define yy_flush_buffer parser4__flush_buffer
19 #define yy_load_buffer_state parser4__load_buffer_state
20 #define yy_switch_to_buffer parser4__switch_to_buffer
21 #define yypush_buffer_state parser4_push_buffer_state
22 #define yypop_buffer_state parser4_pop_buffer_state
23 #define yyensure_buffer_stack parser4_ensure_buffer_stack
24 #define yy_flex_debug parser4__flex_debug
25 #define yyin parser4_in
26 #define yyleng parser4_leng
27 #define yylex parser4_lex
28 #define yylineno parser4_lineno
29 #define yyout parser4_out
30 #define yyrestart parser4_restart
31 #define yytext parser4_text
32 #define yywrap parser4_wrap
33 #define yyalloc parser4_alloc
34 #define yyrealloc parser4_realloc
35 #define yyfree parser4_free
42 #define YY_FLEX_MAJOR_VERSION 2
43 #define YY_FLEX_MINOR_VERSION 6
44 #define YY_FLEX_SUBMINOR_VERSION 4
45 #if YY_FLEX_SUBMINOR_VERSION > 0
53 #ifdef yy_create_buffer
54 #define parser4__create_buffer_ALREADY_DEFINED
56 #define yy_create_buffer parser4__create_buffer
59 #ifdef yy_delete_buffer
60 #define parser4__delete_buffer_ALREADY_DEFINED
62 #define yy_delete_buffer parser4__delete_buffer
66 #define parser4__scan_buffer_ALREADY_DEFINED
68 #define yy_scan_buffer parser4__scan_buffer
72 #define parser4__scan_string_ALREADY_DEFINED
74 #define yy_scan_string parser4__scan_string
78 #define parser4__scan_bytes_ALREADY_DEFINED
80 #define yy_scan_bytes parser4__scan_bytes
84 #define parser4__init_buffer_ALREADY_DEFINED
86 #define yy_init_buffer parser4__init_buffer
89 #ifdef yy_flush_buffer
90 #define parser4__flush_buffer_ALREADY_DEFINED
92 #define yy_flush_buffer parser4__flush_buffer
95 #ifdef yy_load_buffer_state
96 #define parser4__load_buffer_state_ALREADY_DEFINED
98 #define yy_load_buffer_state parser4__load_buffer_state
101 #ifdef yy_switch_to_buffer
102 #define parser4__switch_to_buffer_ALREADY_DEFINED
104 #define yy_switch_to_buffer parser4__switch_to_buffer
107 #ifdef yypush_buffer_state
108 #define parser4_push_buffer_state_ALREADY_DEFINED
110 #define yypush_buffer_state parser4_push_buffer_state
113 #ifdef yypop_buffer_state
114 #define parser4_pop_buffer_state_ALREADY_DEFINED
116 #define yypop_buffer_state parser4_pop_buffer_state
119 #ifdef yyensure_buffer_stack
120 #define parser4_ensure_buffer_stack_ALREADY_DEFINED
122 #define yyensure_buffer_stack parser4_ensure_buffer_stack
126 #define parser4_lex_ALREADY_DEFINED
128 #define yylex parser4_lex
132 #define parser4_restart_ALREADY_DEFINED
134 #define yyrestart parser4_restart
138 #define parser4_lex_init_ALREADY_DEFINED
140 #define yylex_init parser4_lex_init
143 #ifdef yylex_init_extra
144 #define parser4_lex_init_extra_ALREADY_DEFINED
146 #define yylex_init_extra parser4_lex_init_extra
150 #define parser4_lex_destroy_ALREADY_DEFINED
152 #define yylex_destroy parser4_lex_destroy
156 #define parser4_get_debug_ALREADY_DEFINED
158 #define yyget_debug parser4_get_debug
162 #define parser4_set_debug_ALREADY_DEFINED
164 #define yyset_debug parser4_set_debug
168 #define parser4_get_extra_ALREADY_DEFINED
170 #define yyget_extra parser4_get_extra
174 #define parser4_set_extra_ALREADY_DEFINED
176 #define yyset_extra parser4_set_extra
180 #define parser4_get_in_ALREADY_DEFINED
182 #define yyget_in parser4_get_in
186 #define parser4_set_in_ALREADY_DEFINED
188 #define yyset_in parser4_set_in
192 #define parser4_get_out_ALREADY_DEFINED
194 #define yyget_out parser4_get_out
198 #define parser4_set_out_ALREADY_DEFINED
200 #define yyset_out parser4_set_out
204 #define parser4_get_leng_ALREADY_DEFINED
206 #define yyget_leng parser4_get_leng
210 #define parser4_get_text_ALREADY_DEFINED
212 #define yyget_text parser4_get_text
216 #define parser4_get_lineno_ALREADY_DEFINED
218 #define yyget_lineno parser4_get_lineno
222 #define parser4_set_lineno_ALREADY_DEFINED
224 #define yyset_lineno parser4_set_lineno
228 #define parser4_wrap_ALREADY_DEFINED
230 #define yywrap parser4_wrap
236 #define parser4_alloc_ALREADY_DEFINED
238 #define yyalloc parser4_alloc
242 #define parser4_realloc_ALREADY_DEFINED
244 #define yyrealloc parser4_realloc
248 #define parser4_free_ALREADY_DEFINED
250 #define yyfree parser4_free
256 #define parser4_text_ALREADY_DEFINED
258 #define yytext parser4_text
262 #define parser4_leng_ALREADY_DEFINED
264 #define yyleng parser4_leng
268 #define parser4_in_ALREADY_DEFINED
270 #define yyin parser4_in
274 #define parser4_out_ALREADY_DEFINED
276 #define yyout parser4_out
280 #define parser4__flex_debug_ALREADY_DEFINED
282 #define yy_flex_debug parser4__flex_debug
286 #define parser4_lineno_ALREADY_DEFINED
288 #define yylineno parser4_lineno
315 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
320 #ifndef __STDC_LIMIT_MACROS
321 #define __STDC_LIMIT_MACROS 1
324 #include <inttypes.h>
341 #define INT8_MIN (-128)
344 #define INT16_MIN (-32767-1)
347 #define INT32_MIN (-2147483647-1)
350 #define INT8_MAX (127)
353 #define INT16_MAX (32767)
356 #define INT32_MAX (2147483647)
359 #define UINT8_MAX (255U)
362 #define UINT16_MAX (65535U)
365 #define UINT32_MAX (4294967295U)
369 #define SIZE_MAX (~(size_t)0)
383 #define yyconst const
385 #if defined(__GNUC__) && __GNUC__ >= 3
386 #define yynoreturn __attribute__((__noreturn__))
400 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
414 #define BEGIN (yy_start) = 1 + 2 *
419 #define YY_START (((yy_start) - 1) / 2)
420 #define YYSTATE YY_START
422 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
424 #define YY_NEW_FILE yyrestart( yyin )
425 #define YY_END_OF_BUFFER_CHAR 0
434 #define YY_BUF_SIZE 32768
436 #define YY_BUF_SIZE 16384
442 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
444 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
445 #define YY_TYPEDEF_YY_BUFFER_STATE
449 #ifndef YY_TYPEDEF_YY_SIZE_T
450 #define YY_TYPEDEF_YY_SIZE_T
464 #define EOB_ACT_CONTINUE_SCAN 0
465 #define EOB_ACT_END_OF_FILE 1
466 #define EOB_ACT_LAST_MATCH 2
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; \
484 #define unput(c) yyunput( c, (yytext_ptr) )
486 #ifndef YY_STRUCT_YY_BUFFER_STATE
487 #define YY_STRUCT_YY_BUFFER_STATE
539 #define YY_BUFFER_NEW 0
540 #define YY_BUFFER_NORMAL 1
551 #define YY_BUFFER_EOF_PENDING 2
561 static size_t yy_buffer_stack_top = 0;
562 static size_t yy_buffer_stack_max = 0;
575 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
581 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
588 static char yy_hold_char;
589 static int yy_n_chars;
593 static char *yy_c_buf_p = NULL;
594 static int yy_init = 0;
595 static int yy_start = 0;
600 static int yy_did_buffer_switch_on_eof;
616 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
628 #define yy_new_buffer yy_create_buffer
629 #define yy_set_interactive(is_interactive) \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
638 #define yy_set_bol(at_bol) \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
647 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
652 #define parser4_wrap() (1)
653 #define YY_SKIP_YYWRAP
669 #define yytext_ptr yytext
677 static int yy_get_next_buffer (
void );
678 static void yynoreturn yy_fatal_error (
const char* msg );
685 #define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
692 (yy_c_buf_p) = yy_cp;
694 #define YY_NUM_RULES 175
695 #define YY_END_OF_BUFFER 176
705 168, 168, 0, 0, 0, 0, 0, 0, 0, 0,
706 176, 174, 10, 11, 174, 1, 168, 165, 168, 168,
707 174, 167, 166, 174, 174, 174, 174, 174, 161, 162,
708 174, 174, 174, 163, 164, 5, 5, 5, 174, 174,
709 174, 10, 11, 0, 0, 157, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
713 168, 168, 0, 167, 168, 3, 2, 6, 0, 168,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
716 0, 158, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 160, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
724 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
727 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 173, 171, 0,
736 170, 169, 0, 0, 0, 0, 0, 0, 0, 0,
738 0, 0, 137, 0, 136, 0, 0, 73, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 18, 0, 0, 0, 0, 172, 169, 0,
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
750 0, 0, 140, 0, 0, 0, 0, 0, 0, 0,
751 0, 74, 0, 0, 0, 0, 0, 0, 59, 0,
752 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 37, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 0, 62, 0, 38,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
760 0, 0, 0, 0, 0, 88, 30, 0, 0, 35,
761 0, 0, 0, 0, 0, 0, 0, 0, 12, 145,
762 0, 142, 0, 141, 0, 0, 0, 101, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 61, 0, 0, 0,
769 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
771 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
772 0, 0, 0, 0, 0, 0, 7, 0, 0, 143,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
776 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
778 0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 0, 65, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 76, 0, 0, 0,
784 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 95, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 107, 77,
788 0, 0, 0, 0, 82, 31, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 39, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 0, 0, 0, 54, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 146, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 69, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
798 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
800 0, 0, 0, 29, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 93, 0, 0, 0, 0, 0, 0, 0, 0,
806 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 66, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 23, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 125, 0, 0, 123, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 0, 150, 0,
813 0, 0, 0, 0, 0, 94, 0, 0, 0, 0,
815 0, 0, 98, 80, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
817 22, 0, 103, 0, 0, 0, 0, 0, 0, 0,
818 0, 129, 0, 0, 0, 0, 56, 0, 0, 0,
819 0, 0, 106, 33, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 100, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 0, 154, 0, 57,
827 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 50, 0, 0, 0, 0, 0, 0, 0, 126, 0,
829 124, 0, 118, 117, 0, 46, 0, 21, 0, 0,
830 0, 0, 0, 139, 0, 0, 87, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 115, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 104, 15,
833 0, 40, 0, 0, 0, 0, 0, 128, 0, 0,
834 0, 0, 0, 0, 51, 0, 0, 99, 0, 0,
835 0, 0, 90, 0, 0, 0, 0, 0, 0, 63,
837 0, 148, 0, 147, 0, 153, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 14, 0, 0, 45,
842 0, 0, 0, 0, 156, 85, 27, 0, 0, 47,
843 116, 0, 0, 0, 151, 121, 0, 0, 0, 0,
844 0, 0, 0, 0, 25, 0, 0, 24, 0, 127,
845 0, 0, 0, 0, 0, 78, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
848 0, 0, 0, 41, 0, 0, 0, 0, 0, 0,
849 0, 105, 0, 0, 0, 26, 0, 152, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
851 0, 0, 20, 155, 55, 0, 149, 144, 28, 0,
852 0, 16, 0, 0, 133, 0, 0, 0, 0, 0,
853 0, 113, 0, 89, 0, 0, 0, 0, 0, 0,
854 0, 0, 68, 0, 0, 0, 0, 0, 0, 0,
855 0, 134, 13, 0, 0, 0, 0, 0, 122, 0,
856 0, 0, 0, 0, 0, 119, 0, 0, 0, 0,
857 0, 112, 0, 19, 0, 130, 0, 0, 0, 0,
859 0, 0, 0, 0, 111, 0, 0, 48, 0, 0,
860 43, 132, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 131, 0, 86,
863 0, 0, 0, 0, 0, 0, 109, 114, 52, 0,
864 0, 0, 0, 108, 0, 0, 135, 0, 0, 0,
865 0, 0, 75, 0, 0, 110, 0
868 static const YY_CHAR yy_ec[256] =
870 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
871 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
872 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
873 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
874 5, 8, 9, 10, 11, 12, 13, 14, 14, 14,
875 14, 15, 14, 16, 14, 14, 14, 17, 5, 18,
876 5, 19, 20, 5, 21, 22, 23, 24, 25, 26,
877 5, 27, 5, 28, 5, 29, 5, 30, 31, 32,
878 5, 33, 34, 35, 36, 37, 38, 5, 39, 5,
879 40, 41, 42, 5, 43, 5, 44, 45, 46, 47,
881 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
882 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
883 68, 69, 70, 5, 71, 5, 5, 5, 5, 5,
884 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
885 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
886 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
887 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
888 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
889 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
890 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
892 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
893 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
894 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
895 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
896 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
900 static const YY_CHAR yy_meta[72] =
902 1, 1, 2, 3, 3, 4, 3, 3, 3, 3,
903 3, 3, 3, 5, 5, 5, 3, 3, 3, 3,
904 5, 5, 5, 5, 5, 5, 3, 3, 3, 3,
905 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
906 3, 3, 3, 5, 5, 5, 5, 5, 5, 3,
907 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
908 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
914 0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
915 1830, 1831, 32, 1826, 141, 0, 201, 1831, 206, 88,
916 11, 213, 1831, 1808, 114, 25, 2, 6, 1831, 1831,
917 73, 11, 17, 1831, 1831, 1831, 104, 1814, 1769, 0,
918 1806, 107, 1821, 217, 247, 1831, 1765, 185, 1764, 1770,
919 93, 58, 1762, 91, 211, 195, 14, 273, 195, 1761,
920 181, 275, 207, 211, 76, 68, 188, 1770, 232, 219,
921 296, 284, 280, 1753, 204, 302, 322, 305, 1772, 0,
922 349, 357, 370, 377, 362, 1831, 0, 1831, 301, 342,
923 296, 325, 201, 346, 359, 224, 1831, 1769, 1808, 1831,
925 353, 1831, 390, 1797, 357, 1755, 1765, 369, 220, 1760,
926 362, 288, 364, 374, 221, 1803, 0, 441, 366, 1747,
927 1744, 1748, 1744, 1752, 360, 1748, 1737, 1738, 76, 1754,
928 1737, 1746, 1746, 365, 1737, 365, 1738, 1736, 357, 1782,
929 1786, 1728, 1779, 1721, 1744, 1741, 1741, 1735, 268, 1728,
930 1721, 1726, 1720, 371, 1731, 1724, 1715, 1714, 1728, 379,
931 1714, 384, 1730, 1707, 415, 387, 419, 1728, 1725, 1726,
932 1724, 390, 1706, 1708, 420, 1700, 1717, 1709, 0, 386,
933 439, 425, 396, 440, 453, 1708, 1831, 0, 1751, 460,
934 1698, 1701, 437, 452, 1709, 458, 1752, 466, 1751, 462,
936 1750, 1831, 506, 1749, 472, 1710, 1702, 1689, 1705, 1702,
937 1701, 1692, 448, 1741, 1735, 1701, 1680, 1688, 1683, 1697,
938 1693, 1681, 1693, 1693, 1684, 1668, 1672, 1685, 1687, 1684,
939 1676, 1666, 1684, 1831, 1679, 1682, 1663, 1662, 1712, 1661,
940 1671, 1674, 496, 1670, 1658, 1669, 1705, 1652, 1708, 1645,
941 1660, 489, 1650, 1666, 1647, 1646, 1652, 1643, 1642, 1649,
942 1697, 1655, 1654, 1648, 77, 1655, 1650, 1642, 1632, 1647,
943 1646, 1641, 1645, 1626, 1642, 1628, 1634, 1641, 1629, 492,
944 1622, 1636, 1677, 1638, 485, 1629, 477, 1831, 1831, 485,
945 1831, 1831, 1616, 0, 456, 473, 1618, 520, 490, 1672,
947 1625, 484, 1831, 1670, 1831, 1664, 548, 1831, 474, 1606,
948 1615, 1661, 1607, 1613, 1663, 1620, 1615, 1618, 479, 1831,
949 1616, 1658, 1613, 1610, 528, 1616, 1654, 1648, 1603, 1598,
950 1595, 1644, 1603, 1592, 1608, 1640, 1588, 554, 1602, 1587,
951 1600, 1587, 1597, 1592, 1599, 1594, 1590, 496, 1588, 1591,
952 1586, 1582, 1630, 488, 1624, 1831, 1623, 1575, 1574, 1573,
953 1566, 1568, 1572, 1561, 1574, 518, 1619, 1574, 1571, 1831,
954 1574, 1563, 1563, 1575, 518, 1550, 1551, 1572, 529, 1554,
955 1603, 1550, 1564, 1563, 1549, 1561, 1560, 1559, 1558, 380,
956 1599, 1598, 1831, 1542, 1541, 572, 1554, 1831, 1831, 1553,
958 0, 1542, 1534, 525, 1539, 1590, 1589, 1547, 1587, 1831,
959 1535, 1585, 1831, 556, 603, 542, 1584, 1528, 1539, 1535,
960 1523, 1831, 1528, 1534, 1537, 1536, 1523, 1522, 1831, 1524,
961 1521, 538, 1519, 1521, 1831, 1529, 1526, 1511, 1524, 1519,
962 578, 1526, 1514, 1507, 1556, 1831, 1505, 1521, 1553, 1516,
963 1513, 1514, 1516, 1548, 1501, 1496, 1495, 1544, 1490, 1505,
964 1483, 1490, 1495, 1543, 1831, 1490, 1486, 1484, 1493, 1487,
965 1494, 1478, 1478, 1488, 1491, 1480, 1475, 1831, 1530, 1831,
966 1474, 1485, 1470, 1475, 1484, 1478, 1472, 1481, 1521, 1515,
967 1479, 1462, 1462, 1457, 1477, 1452, 1458, 1457, 1465, 1469,
969 1452, 1508, 1450, 1464, 1453, 1831, 1831, 1453, 1451, 1831,
970 1462, 1496, 1458, 0, 1442, 1459, 1497, 1447, 1831, 1831,
971 1444, 1831, 1450, 1831, 551, 569, 595, 1831, 1447, 1446,
972 1434, 1485, 1432, 1483, 1430, 1429, 1436, 1429, 1441, 1440,
973 1440, 1422, 1427, 1468, 1435, 1427, 1470, 1416, 1432, 1431,
974 1831, 1416, 1413, 1469, 1426, 1418, 1424, 1415, 1423, 1408,
975 1424, 1406, 1420, 520, 1402, 1396, 1401, 1416, 1413, 1414,
976 1411, 1452, 1409, 1831, 1395, 1397, 1406, 1404, 1441, 1440,
977 1393, 562, 1402, 1385, 1386, 1383, 1831, 1397, 1376, 1395,
978 1387, 1430, 1384, 1391, 1427, 1831, 1374, 1388, 1372, 1386,
980 1389, 1370, 1420, 1419, 1418, 1365, 1416, 1415, 1831, 14,
981 1377, 1377, 1375, 1358, 1363, 1365, 1831, 1371, 1361, 1831,
982 1406, 1354, 1409, 568, 501, 1352, 1350, 1357, 1400, 562,
983 1404, 544, 1398, 1397, 1396, 1350, 1340, 1393, 1346, 1354,
984 1355, 1389, 1352, 1346, 1333, 1341, 1384, 1388, 1345, 1344,
985 1831, 1345, 1338, 1327, 1340, 1343, 1338, 1339, 1336, 1335,
986 1331, 1337, 1332, 1373, 1372, 1322, 1312, 552, 1369, 1831,
987 1368, 1317, 1309, 1310, 1359, 1322, 1309, 1320, 1831, 1308,
988 1317, 1316, 1316, 1356, 1299, 1308, 1313, 1290, 1294, 1345,
989 1309, 1291, 1301, 1341, 1340, 1339, 1286, 1337, 1301, 580,
991 582, 1278, 1288, 579, 1831, 1338, 1284, 1294, 1294, 1277,
992 1282, 1286, 1276, 1288, 1291, 1328, 1831, 1322, 578, 1284,
993 15, 20, 86, 175, 242, 1831, 274, 374, 536, 561,
994 559, 578, 575, 576, 575, 574, 589, 585, 640, 605,
995 595, 611, 601, 1831, 611, 611, 604, 615, 613, 656,
996 600, 602, 617, 604, 662, 621, 607, 610, 1831, 1831,
997 620, 625, 630, 618, 1831, 1831, 632, 619, 613, 618,
998 636, 623, 671, 624, 674, 625, 681, 1831, 628, 632,
999 627, 685, 640, 630, 631, 627, 640, 651, 635, 653,
1000 648, 649, 651, 644, 646, 647, 647, 649, 664, 703,
1002 662, 667, 644, 1831, 669, 659, 704, 664, 654, 669,
1003 670, 657, 671, 1831, 690, 698, 667, 662, 715, 680,
1004 684, 723, 673, 668, 680, 675, 676, 672, 681, 676,
1005 732, 691, 692, 683, 1831, 685, 696, 681, 697, 692,
1006 737, 706, 690, 691, 1831, 707, 710, 693, 750, 695,
1007 1831, 712, 715, 695, 713, 751, 711, 707, 702, 720,
1008 719, 720, 706, 721, 713, 720, 710, 728, 713, 1831,
1009 721, 727, 772, 1831, 723, 728, 770, 723, 735, 729,
1010 734, 732, 730, 732, 742, 785, 731, 731, 788, 734,
1011 746, 1831, 734, 742, 740, 745, 757, 741, 746, 756,
1013 757, 762, 801, 760, 776, 781, 763, 761, 757, 809,
1014 754, 1831, 754, 774, 763, 768, 775, 816, 817, 766,
1015 1831, 814, 763, 766, 765, 785, 782, 787, 788, 774,
1016 782, 791, 771, 788, 795, 835, 1831, 836, 837, 790,
1017 800, 802, 791, 787, 794, 803, 846, 795, 793, 795,
1018 812, 851, 803, 802, 808, 806, 804, 857, 858, 854,
1019 1831, 818, 811, 802, 821, 809, 819, 816, 821, 817,
1020 830, 830, 1831, 814, 815, 1831, 816, 874, 815, 834,
1021 835, 832, 818, 839, 838, 822, 827, 845, 1831, 835,
1022 868, 859, 889, 831, 853, 1831, 836, 838, 855, 853,
1024 845, 849, 1831, 1831, 859, 859, 895, 844, 897, 846,
1025 904, 849, 860, 852, 858, 854, 873, 874, 875, 1831,
1026 1831, 874, 1831, 859, 861, 880, 870, 863, 875, 917,
1027 883, 1831, 875, 925, 868, 927, 1831, 928, 872, 878,
1028 885, 927, 1831, 1831, 877, 879, 893, 898, 881, 938,
1029 897, 898, 899, 937, 891, 896, 945, 895, 947, 1831,
1030 896, 949, 950, 892, 952, 913, 954, 898, 910, 915,
1031 901, 931, 960, 1831, 919, 912, 963, 912, 927, 914,
1032 910, 926, 931, 918, 914, 972, 927, 932, 1831, 933,
1033 926, 935, 936, 933, 923, 926, 926, 931, 984, 985,
1035 930, 988, 984, 927, 942, 935, 994, 1831, 949, 1831,
1036 1831, 954, 946, 956, 942, 943, 1002, 948, 958, 1006,
1037 1831, 956, 956, 958, 960, 1011, 954, 957, 1831, 976,
1038 1831, 960, 1831, 1831, 974, 1831, 968, 1831, 1018, 969,
1039 1020, 1021, 1003, 1831, 1023, 982, 1831, 970, 978, 972,
1040 971, 974, 974, 975, 982, 972, 1831, 994, 980, 981,
1041 996, 996, 999, 999, 996, 1038, 1002, 995, 1831, 1831,
1042 1005, 1831, 1002, 1007, 1008, 1005, 1047, 1831, 998, 999,
1043 999, 1005, 1004, 1015, 1831, 1054, 1003, 1831, 1004, 1004,
1044 1006, 1012, 1831, 1014, 1066, 1017, 1020, 1069, 1032, 1831,
1046 1029, 1831, 1026, 1831, 1049, 1831, 1074, 1075, 1076, 1035,
1047 1021, 1079, 1080, 1035, 1025, 1030, 1084, 1085, 1081, 1046,
1048 1042, 1084, 1034, 1039, 1037, 1094, 1052, 1096, 1056, 1098,
1049 1061, 1051, 1045, 1061, 1061, 1105, 1049, 1066, 1065, 1049,
1050 1105, 1106, 1055, 1108, 1073, 1074, 1831, 1074, 1061, 1831,
1051 1072, 1119, 1079, 1092, 1831, 1831, 1831, 1066, 1123, 1831,
1052 1831, 1072, 1070, 1084, 1831, 1831, 1074, 1123, 1068, 1073,
1053 1131, 1081, 1091, 1092, 1831, 1135, 1090, 1831, 1137, 1831,
1054 1082, 1097, 1085, 1100, 1104, 1831, 1138, 1106, 1099, 1108,
1055 1090, 1097, 1151, 1112, 1111, 1154, 1155, 1156, 1107, 1831,
1057 1158, 1159, 1160, 1831, 1110, 1110, 1163, 1109, 1108, 1166,
1058 1121, 1831, 1163, 1116, 1113, 1831, 1127, 1831, 1130, 1173,
1059 1128, 1175, 1136, 1119, 1121, 1118, 1134, 1135, 1144, 1831,
1060 1134, 1184, 1831, 1831, 1831, 1180, 1831, 1831, 1831, 1181,
1061 1138, 1831, 1136, 1143, 1831, 1140, 1145, 1143, 1193, 1194,
1062 1139, 1831, 1154, 1831, 1155, 1145, 1157, 1200, 1144, 1152,
1063 1153, 1166, 1831, 1165, 1153, 1207, 1168, 1159, 1168, 1170,
1064 1174, 1831, 1831, 1213, 1158, 1215, 1175, 1217, 1831, 1213,
1065 1177, 1178, 1165, 1160, 1181, 1831, 1182, 1183, 1226, 1185,
1066 1188, 1831, 1229, 1831, 1192, 1831, 1174, 1232, 1233, 1178,
1068 1195, 1181, 1181, 1183, 1831, 1188, 1198, 1831, 1184, 1196,
1069 1831, 1831, 1201, 1195, 1199, 1190, 1242, 1191, 1199, 1208,
1070 1201, 1196, 1211, 1202, 1209, 1196, 1211, 1216, 1259, 1218,
1071 1261, 1206, 1222, 1213, 1227, 1223, 1216, 1831, 1268, 1831,
1072 1269, 1270, 1227, 1226, 1227, 1217, 1831, 1831, 1831, 1275,
1073 1219, 1235, 1278, 1831, 1274, 1225, 1831, 1224, 1226, 1237,
1074 1284, 1235, 1831, 1244, 1287, 1831, 1831, 1293, 1298, 1303,
1075 1308, 1313, 1318, 1323, 1326, 1300, 1305, 1307, 1320
1080 1468, 1468, 1469, 1469, 1468, 1468, 1468, 1468, 1468, 1468,
1081 1467, 1467, 1467, 1467, 1467, 1470, 1467, 1467, 1467, 1467,
1082 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1083 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1471,
1084 1467, 1467, 1467, 1472, 15, 1467, 45, 45, 45, 45,
1085 45, 45, 45, 45, 45, 45, 45, 1473, 45, 45,
1086 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1087 45, 45, 45, 45, 45, 45, 45, 45, 45, 1470,
1088 1467, 1467, 1467, 1467, 1467, 1467, 1474, 1467, 1467, 1467,
1089 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1471, 1467,
1091 1472, 1467, 1467, 45, 45, 45, 45, 45, 45, 45,
1092 45, 45, 45, 45, 45, 1475, 45, 1473, 45, 45,
1093 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1094 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1095 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1096 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1097 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1098 45, 45, 45, 45, 45, 45, 45, 45, 1474, 1467,
1099 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1476, 45, 45,
1100 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1102 1475, 1467, 1473, 45, 45, 45, 45, 45, 45, 45,
1103 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1104 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1105 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1106 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1107 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1108 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1109 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1110 45, 45, 45, 45, 45, 45, 1467, 1467, 1467, 1467,
1111 1467, 1467, 1467, 1477, 45, 45, 45, 45, 45, 45,
1113 45, 45, 1467, 45, 1467, 45, 1473, 1467, 45, 45,
1114 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1115 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1116 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1117 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1118 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1119 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1120 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1121 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1122 45, 45, 1467, 45, 45, 45, 45, 1467, 1467, 1467,
1124 1478, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1125 45, 45, 1467, 45, 1473, 45, 45, 45, 45, 45,
1126 45, 1467, 45, 45, 45, 45, 45, 45, 1467, 45,
1127 45, 45, 45, 45, 1467, 45, 45, 45, 45, 45,
1128 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1129 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1130 45, 45, 45, 45, 1467, 45, 45, 45, 45, 45,
1131 45, 45, 45, 45, 45, 45, 45, 1467, 45, 1467,
1132 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1133 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1135 45, 45, 45, 45, 45, 1467, 1467, 45, 45, 1467,
1136 45, 45, 1467, 1479, 45, 45, 45, 45, 1467, 1467,
1137 45, 1467, 45, 1467, 45, 45, 45, 1467, 45, 45,
1138 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1139 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1140 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1141 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1142 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1143 45, 45, 45, 45, 45, 45, 1467, 45, 45, 45,
1144 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1146 45, 45, 45, 45, 45, 45, 45, 45, 1467, 45,
1147 45, 45, 45, 45, 45, 45, 1467, 45, 45, 1467,
1148 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1149 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1150 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1151 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1152 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1153 45, 45, 45, 45, 45, 45, 45, 45, 1467, 45,
1154 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1155 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1157 45, 45, 45, 45, 1467, 45, 45, 45, 45, 45,
1158 45, 45, 45, 45, 45, 45, 1467, 45, 45, 45,
1159 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1160 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1161 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1162 45, 45, 45, 45, 45, 45, 45, 45, 1467, 1467,
1163 45, 45, 45, 45, 1467, 1467, 45, 45, 45, 45,
1164 45, 45, 45, 45, 45, 45, 45, 1467, 45, 45,
1165 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1166 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1168 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1169 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1170 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1171 45, 45, 45, 45, 1467, 45, 45, 45, 45, 45,
1172 45, 45, 45, 45, 1467, 45, 45, 45, 45, 45,
1173 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1174 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1175 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1176 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1177 45, 1467, 45, 45, 45, 45, 45, 45, 45, 45,
1179 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1180 45, 1467, 45, 45, 45, 45, 45, 45, 45, 45,
1181 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1182 45, 45, 45, 45, 45, 45, 1467, 45, 45, 45,
1183 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1184 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1185 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1186 45, 45, 1467, 45, 45, 1467, 45, 45, 45, 45,
1187 45, 45, 45, 45, 45, 45, 45, 45, 1467, 45,
1188 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1190 45, 45, 1467, 1467, 45, 45, 45, 45, 45, 45,
1191 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1192 1467, 45, 1467, 45, 45, 45, 45, 45, 45, 45,
1193 45, 1467, 45, 45, 45, 45, 1467, 45, 45, 45,
1194 45, 45, 1467, 1467, 45, 45, 45, 45, 45, 45,
1195 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1196 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1197 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1198 45, 45, 45, 45, 45, 45, 45, 45, 1467, 45,
1199 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1201 45, 45, 45, 45, 45, 45, 45, 1467, 45, 1467,
1202 1467, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1203 1467, 45, 45, 45, 45, 45, 45, 45, 1467, 45,
1204 1467, 45, 1467, 1467, 45, 1467, 45, 1467, 45, 45,
1205 45, 45, 45, 1467, 45, 45, 1467, 45, 45, 45,
1206 45, 45, 45, 45, 45, 45, 1467, 45, 45, 45,
1207 45, 45, 45, 45, 45, 45, 45, 45, 1467, 1467,
1208 45, 1467, 45, 45, 45, 45, 45, 1467, 45, 45,
1209 45, 45, 45, 45, 1467, 45, 45, 1467, 45, 45,
1210 45, 45, 1467, 45, 45, 45, 45, 45, 45, 1467,
1212 45, 1467, 45, 1467, 45, 1467, 45, 45, 45, 45,
1213 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1214 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1215 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1216 45, 45, 45, 45, 45, 45, 1467, 45, 45, 1467,
1217 45, 45, 45, 45, 1467, 1467, 1467, 45, 45, 1467,
1218 1467, 45, 45, 45, 1467, 1467, 45, 45, 45, 45,
1219 45, 45, 45, 45, 1467, 45, 45, 1467, 45, 1467,
1220 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1221 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1223 45, 45, 45, 1467, 45, 45, 45, 45, 45, 45,
1224 45, 1467, 45, 45, 45, 1467, 45, 1467, 45, 45,
1225 45, 45, 45, 45, 45, 45, 45, 45, 45, 1467,
1226 45, 45, 1467, 1467, 1467, 45, 1467, 1467, 1467, 45,
1227 45, 1467, 45, 45, 1467, 45, 45, 45, 45, 45,
1228 45, 1467, 45, 1467, 45, 45, 45, 45, 45, 45,
1229 45, 45, 1467, 45, 45, 45, 45, 45, 45, 45,
1230 45, 1467, 1467, 45, 45, 45, 45, 45, 1467, 45,
1231 45, 45, 45, 45, 45, 1467, 45, 45, 45, 45,
1232 45, 1467, 45, 1467, 45, 1467, 45, 45, 45, 45,
1234 45, 45, 45, 45, 1467, 45, 45, 1467, 45, 45,
1235 1467, 1467, 45, 45, 45, 45, 45, 45, 45, 45,
1236 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1237 45, 45, 45, 45, 45, 45, 45, 1467, 45, 1467,
1238 45, 45, 45, 45, 45, 45, 1467, 1467, 1467, 45,
1239 45, 45, 45, 1467, 45, 45, 1467, 45, 45, 45,
1240 45, 45, 1467, 45, 45, 1467, 0, 1467, 1467, 1467,
1241 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467
1246 1467, 13, 14, 13, 1467, 15, 16, 1467, 17, 18,
1247 19, 20, 21, 22, 22, 22, 23, 24, 86, 705,
1248 37, 14, 37, 87, 25, 26, 38, 1467, 706, 27,
1249 37, 14, 37, 42, 28, 42, 38, 92, 93, 29,
1250 115, 30, 13, 14, 13, 91, 92, 25, 31, 93,
1251 13, 14, 13, 13, 14, 13, 32, 40, 818, 13,
1252 14, 13, 33, 40, 115, 92, 93, 819, 91, 34,
1253 35, 13, 14, 13, 95, 15, 16, 96, 17, 18,
1254 19, 20, 21, 22, 22, 22, 23, 24, 13, 14,
1255 13, 109, 39, 91, 25, 26, 13, 14, 13, 27,
1257 39, 85, 85, 85, 28, 42, 41, 42, 42, 29,
1258 42, 30, 83, 108, 41, 111, 94, 25, 31, 109,
1259 217, 218, 89, 137, 89, 139, 32, 90, 90, 90,
1260 138, 374, 33, 140, 375, 83, 108, 820, 111, 34,
1261 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1262 45, 45, 45, 45, 45, 47, 45, 45, 45, 45,
1263 45, 48, 45, 49, 50, 45, 51, 45, 52, 53,
1264 54, 45, 45, 45, 45, 55, 56, 45, 57, 45,
1265 45, 58, 45, 45, 59, 60, 61, 62, 63, 64,
1266 65, 66, 67, 52, 68, 69, 70, 71, 72, 73,
1268 74, 75, 76, 77, 78, 79, 57, 45, 45, 45,
1269 45, 45, 81, 105, 82, 82, 82, 81, 114, 84,
1270 84, 84, 102, 105, 81, 83, 84, 84, 84, 821,
1271 83, 108, 123, 112, 141, 124, 182, 83, 125, 105,
1272 126, 114, 127, 113, 142, 200, 143, 164, 83, 119,
1273 194, 165, 133, 83, 108, 120, 112, 103, 121, 182,
1274 83, 45, 149, 134, 182, 136, 150, 45, 200, 45,
1275 45, 113, 45, 135, 45, 45, 45, 194, 117, 145,
1276 146, 45, 45, 147, 45, 45, 151, 185, 822, 148,
1277 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280 45, 45, 45, 45, 90, 90, 90, 45, 128, 197,
1281 111, 45, 129, 160, 180, 130, 131, 161, 114, 45,
1282 242, 823, 155, 45, 243, 45, 118, 162, 132, 152,
1283 156, 153, 157, 154, 112, 166, 197, 158, 159, 167,
1284 180, 175, 168, 181, 113, 90, 90, 90, 102, 169,
1285 170, 176, 85, 85, 85, 171, 177, 172, 81, 173,
1286 82, 82, 82, 83, 180, 85, 85, 85, 89, 181,
1287 89, 83, 113, 90, 90, 90, 83, 181, 81, 174,
1288 84, 84, 84, 103, 190, 101, 83, 193, 196, 198,
1290 183, 83, 101, 190, 83, 199, 211, 196, 223, 83,
1291 224, 230, 226, 184, 231, 212, 213, 824, 232, 287,
1292 204, 197, 190, 193, 83, 262, 196, 198, 227, 287,
1293 101, 205, 199, 504, 101, 196, 505, 248, 101, 254,
1294 255, 257, 271, 272, 258, 259, 101, 287, 280, 289,
1295 101, 199, 101, 188, 203, 203, 203, 290, 263, 264,
1296 265, 203, 203, 203, 203, 203, 203, 288, 288, 266,
1297 299, 267, 289, 268, 269, 273, 270, 289, 283, 274,
1298 296, 300, 302, 275, 203, 203, 203, 203, 203, 203,
1299 304, 306, 296, 288, 291, 395, 317, 303, 299, 359,
1301 292, 398, 390, 296, 318, 302, 348, 402, 300, 398,
1302 319, 404, 404, 304, 409, 309, 412, 403, 306, 307,
1303 307, 307, 426, 478, 398, 719, 307, 307, 307, 307,
1304 307, 307, 399, 360, 406, 407, 466, 409, 432, 427,
1305 404, 416, 433, 408, 412, 396, 467, 361, 719, 307,
1306 307, 307, 307, 307, 307, 459, 460, 349, 517, 446,
1307 350, 415, 415, 415, 447, 661, 662, 679, 415, 415,
1308 415, 415, 415, 415, 487, 517, 492, 510, 488, 479,
1309 493, 624, 511, 551, 541, 525, 517, 526, 552, 727,
1310 728, 415, 415, 415, 415, 415, 415, 542, 825, 543,
1312 620, 625, 718, 527, 680, 626, 763, 724, 624, 764,
1313 448, 816, 525, 725, 526, 449, 45, 45, 45, 826,
1314 827, 828, 829, 45, 45, 45, 45, 45, 45, 625,
1315 718, 794, 796, 797, 830, 802, 831, 832, 795, 816,
1316 798, 803, 833, 834, 799, 835, 45, 45, 45, 45,
1317 45, 45, 836, 837, 838, 839, 840, 841, 842, 843,
1318 844, 845, 847, 848, 849, 850, 846, 851, 852, 853,
1319 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1320 865, 866, 867, 864, 868, 869, 870, 871, 872, 873,
1321 874, 875, 876, 877, 878, 879, 880, 881, 882, 883,
1323 884, 885, 886, 887, 888, 889, 890, 891, 892, 893,
1324 894, 895, 896, 897, 898, 899, 900, 901, 902, 903,
1325 904, 905, 906, 907, 908, 909, 910, 911, 912, 913,
1326 914, 915, 916, 917, 918, 919, 920, 921, 922, 923,
1327 924, 925, 926, 927, 928, 906, 929, 930, 905, 931,
1328 932, 933, 934, 935, 936, 937, 939, 940, 941, 942,
1329 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1330 953, 954, 955, 956, 958, 959, 960, 961, 962, 963,
1331 964, 965, 966, 967, 957, 968, 969, 970, 971, 972,
1332 973, 974, 975, 976, 977, 978, 979, 980, 981, 982,
1334 983, 984, 985, 986, 987, 988, 989, 990, 991, 993,
1335 992, 938, 994, 995, 996, 997, 998, 999, 1000, 1001,
1336 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
1337 1012, 1013, 1014, 1015, 1016, 1017, 991, 992, 1018, 1019,
1338 1020, 1021, 1023, 1025, 1026, 1027, 1022, 1028, 1029, 1030,
1339 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
1340 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
1341 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1342 1061, 1062, 1063, 1064, 1024, 1065, 1066, 1067, 1068, 1069,
1343 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
1345 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
1346 1090, 1091, 1092, 1093, 1094, 1072, 1095, 1096, 1097, 1098,
1347 1099, 1073, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
1348 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
1349 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128,
1350 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138,
1351 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1149,
1352 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
1353 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
1354 1170, 1171, 1143, 1172, 1173, 1174, 1175, 1177, 1126, 1178,
1356 1179, 1180, 1181, 1182, 1176, 1183, 1184, 1185, 1186, 1187,
1357 1148, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
1358 1197, 1198, 1199, 1200, 1201, 1202, 1204, 1205, 1206, 1207,
1359 1203, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
1360 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
1361 1205, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235,
1362 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
1363 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
1364 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
1365 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,
1367 1277, 1278, 1279, 1280, 1281, 1254, 1282, 1283, 1284, 1285,
1368 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
1369 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305,
1370 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315,
1371 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325,
1372 1326, 1327, 1328, 1329, 1302, 1276, 1330, 1331, 1332, 1333,
1373 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
1374 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353,
1375 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363,
1376 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
1378 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1379 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
1380 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
1381 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
1382 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423,
1383 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433,
1384 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443,
1385 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453,
1386 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463,
1387 1464, 1465, 1466, 12, 12, 12, 12, 12, 36, 36,
1389 36, 36, 36, 80, 294, 80, 80, 80, 99, 401,
1390 99, 514, 99, 101, 101, 101, 101, 101, 116, 116,
1391 116, 116, 116, 179, 101, 179, 179, 179, 201, 201,
1392 201, 817, 815, 814, 813, 812, 811, 810, 809, 808,
1393 807, 806, 805, 804, 801, 800, 793, 792, 791, 790,
1394 789, 788, 787, 786, 785, 784, 783, 782, 781, 780,
1395 779, 778, 777, 776, 775, 774, 773, 772, 771, 770,
1396 769, 768, 767, 766, 765, 762, 761, 760, 759, 758,
1397 757, 756, 755, 754, 753, 752, 751, 750, 749, 748,
1398 747, 746, 745, 744, 743, 742, 741, 740, 739, 738,
1400 737, 736, 735, 734, 733, 732, 731, 730, 729, 726,
1401 723, 722, 721, 720, 717, 716, 715, 714, 713, 712,
1402 711, 710, 709, 708, 707, 704, 703, 702, 701, 700,
1403 699, 698, 697, 696, 695, 694, 693, 692, 691, 690,
1404 689, 688, 687, 686, 685, 684, 683, 682, 681, 678,
1405 677, 676, 675, 674, 673, 672, 671, 670, 669, 668,
1406 667, 666, 665, 664, 663, 660, 659, 658, 657, 656,
1407 655, 654, 653, 652, 651, 650, 649, 648, 647, 646,
1408 645, 644, 643, 642, 641, 640, 639, 638, 637, 636,
1409 635, 634, 633, 632, 631, 630, 629, 628, 627, 623,
1411 622, 621, 620, 619, 618, 617, 616, 615, 614, 613,
1412 612, 611, 610, 609, 608, 607, 606, 605, 604, 603,
1413 602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
1414 592, 591, 590, 589, 588, 587, 586, 585, 584, 583,
1415 582, 581, 580, 579, 578, 577, 576, 575, 574, 573,
1416 572, 571, 570, 569, 568, 567, 566, 565, 564, 563,
1417 562, 561, 560, 559, 558, 557, 556, 555, 554, 553,
1418 550, 549, 548, 547, 546, 545, 544, 540, 539, 538,
1419 537, 536, 535, 534, 533, 532, 531, 530, 529, 528,
1420 524, 523, 522, 521, 520, 519, 518, 516, 515, 513,
1422 512, 509, 508, 507, 506, 503, 502, 501, 500, 499,
1423 498, 497, 496, 495, 494, 491, 490, 489, 486, 485,
1424 484, 483, 482, 481, 480, 477, 476, 475, 474, 473,
1425 472, 471, 470, 469, 468, 465, 464, 463, 462, 461,
1426 458, 457, 456, 455, 454, 453, 452, 451, 450, 445,
1427 444, 443, 442, 441, 440, 439, 438, 437, 436, 435,
1428 434, 431, 430, 429, 428, 425, 424, 423, 422, 421,
1429 420, 419, 418, 417, 414, 413, 411, 410, 405, 400,
1430 397, 394, 393, 392, 391, 389, 388, 387, 386, 385,
1431 384, 383, 382, 381, 380, 379, 378, 377, 376, 373,
1433 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
1434 362, 358, 357, 356, 355, 354, 353, 352, 351, 347,
1435 346, 345, 344, 343, 342, 341, 340, 339, 338, 337,
1436 336, 335, 334, 333, 332, 331, 330, 329, 328, 327,
1437 326, 325, 324, 323, 322, 321, 320, 316, 315, 314,
1438 313, 312, 311, 310, 308, 202, 305, 303, 301, 298,
1439 297, 295, 293, 286, 285, 284, 282, 281, 279, 278,
1440 277, 276, 261, 260, 256, 253, 252, 251, 250, 249,
1441 247, 246, 245, 244, 241, 240, 239, 238, 237, 236,
1442 235, 234, 233, 229, 228, 225, 222, 221, 220, 219,
1444 216, 215, 214, 210, 209, 208, 207, 206, 202, 195,
1445 192, 191, 189, 187, 186, 178, 163, 144, 122, 110,
1446 107, 106, 104, 43, 100, 98, 97, 88, 43, 1467,
1447 11, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1448 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1449 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1450 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1451 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1452 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1453 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1460 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1461 1, 1, 1, 1, 1, 1, 1, 1, 21, 610,
1462 3, 3, 3, 21, 1, 1, 3, 0, 610, 1,
1463 4, 4, 4, 13, 1, 13, 4, 27, 28, 1,
1464 57, 1, 5, 5, 5, 26, 32, 1, 1, 33,
1465 6, 6, 6, 7, 7, 7, 1, 7, 721, 8,
1466 8, 8, 1, 8, 57, 27, 28, 722, 26, 1,
1467 1, 2, 2, 2, 32, 2, 2, 33, 2, 2,
1468 2, 2, 2, 2, 2, 2, 2, 2, 9, 9,
1469 9, 52, 5, 31, 2, 2, 10, 10, 10, 2,
1471 6, 20, 20, 20, 2, 37, 9, 37, 42, 2,
1472 42, 2, 20, 51, 10, 54, 31, 2, 2, 52,
1473 129, 129, 25, 65, 25, 66, 2, 25, 25, 25,
1474 65, 265, 2, 66, 265, 20, 51, 723, 54, 2,
1475 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1476 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1477 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1478 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1479 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1480 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1482 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1483 15, 15, 17, 48, 17, 17, 17, 19, 56, 19,
1484 19, 19, 44, 59, 22, 17, 22, 22, 22, 724,
1485 19, 64, 61, 55, 67, 61, 93, 22, 61, 48,
1486 61, 56, 61, 55, 67, 115, 67, 75, 17, 59,
1487 109, 75, 63, 19, 64, 59, 55, 44, 59, 96,
1488 22, 45, 70, 63, 93, 64, 70, 45, 115, 45,
1489 45, 55, 45, 63, 45, 45, 45, 109, 58, 69,
1490 69, 45, 45, 69, 45, 58, 70, 96, 725, 69,
1491 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1493 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1494 45, 45, 45, 58, 89, 89, 89, 58, 62, 112,
1495 71, 58, 62, 73, 91, 62, 62, 73, 78, 58,
1496 149, 727, 72, 58, 149, 58, 58, 73, 62, 71,
1497 72, 71, 72, 71, 77, 76, 112, 72, 72, 76,
1498 91, 78, 76, 92, 77, 90, 90, 90, 101, 76,
1499 76, 78, 81, 81, 81, 76, 78, 77, 82, 77,
1500 82, 82, 82, 81, 94, 85, 85, 85, 83, 92,
1501 83, 82, 77, 83, 83, 83, 85, 95, 84, 77,
1502 84, 84, 84, 101, 105, 103, 81, 108, 111, 113,
1504 94, 84, 103, 119, 82, 114, 125, 154, 134, 85,
1505 134, 139, 136, 95, 139, 125, 125, 728, 139, 180,
1506 119, 172, 105, 108, 84, 165, 111, 113, 136, 183,
1507 103, 119, 114, 390, 103, 154, 390, 154, 103, 160,
1508 160, 162, 166, 166, 162, 162, 103, 180, 172, 182,
1509 103, 175, 103, 103, 118, 118, 118, 183, 165, 165,
1510 165, 118, 118, 118, 118, 118, 118, 181, 184, 165,
1511 193, 165, 182, 165, 165, 167, 165, 185, 175, 167,
1512 190, 194, 196, 167, 118, 118, 118, 118, 118, 118,
1513 198, 200, 205, 181, 184, 285, 213, 280, 193, 252,
1515 185, 287, 280, 190, 213, 196, 243, 295, 194, 290,
1516 213, 296, 309, 198, 299, 205, 302, 295, 200, 203,
1517 203, 203, 319, 366, 287, 625, 203, 203, 203, 203,
1518 203, 203, 290, 252, 298, 298, 354, 299, 325, 319,
1519 296, 309, 325, 298, 302, 285, 354, 252, 625, 203,
1520 203, 203, 203, 203, 203, 348, 348, 243, 404, 338,
1521 243, 307, 307, 307, 338, 564, 564, 582, 307, 307,
1522 307, 307, 307, 307, 375, 416, 379, 396, 375, 366,
1523 379, 525, 396, 441, 432, 414, 404, 414, 441, 632,
1524 632, 307, 307, 307, 307, 307, 307, 432, 729, 432,
1526 527, 526, 624, 416, 582, 527, 668, 630, 525, 668,
1527 338, 719, 414, 630, 414, 338, 415, 415, 415, 730,
1528 731, 732, 733, 415, 415, 415, 415, 415, 415, 526,
1529 624, 700, 701, 701, 734, 704, 735, 736, 700, 719,
1530 701, 704, 737, 738, 701, 739, 415, 415, 415, 415,
1531 415, 415, 740, 741, 742, 743, 745, 746, 747, 748,
1532 749, 750, 751, 752, 753, 754, 750, 755, 756, 757,
1533 758, 761, 762, 763, 764, 767, 768, 769, 770, 771,
1534 772, 773, 774, 771, 775, 776, 777, 779, 780, 781,
1535 782, 783, 784, 785, 786, 787, 788, 789, 790, 791,
1537 792, 793, 794, 795, 796, 797, 798, 799, 800, 801,
1538 802, 803, 805, 806, 807, 808, 809, 810, 811, 812,
1539 813, 815, 816, 817, 818, 819, 820, 821, 822, 823,
1540 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
1541 834, 836, 837, 838, 839, 816, 840, 841, 815, 842,
1542 843, 844, 846, 847, 848, 849, 850, 852, 853, 854,
1543 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
1544 865, 866, 867, 868, 869, 871, 872, 873, 875, 876,
1545 877, 878, 879, 880, 868, 881, 882, 883, 884, 885,
1546 886, 887, 888, 889, 890, 891, 893, 894, 895, 896,
1548 897, 898, 899, 900, 901, 902, 903, 904, 905, 907,
1549 906, 849, 908, 909, 910, 911, 913, 914, 915, 916,
1550 917, 918, 919, 920, 922, 923, 924, 925, 926, 927,
1551 928, 929, 930, 931, 932, 933, 905, 906, 934, 935,
1552 936, 938, 939, 940, 941, 942, 938, 943, 944, 945,
1553 946, 947, 948, 949, 950, 951, 952, 953, 954, 955,
1554 956, 957, 958, 959, 960, 962, 963, 964, 965, 966,
1555 967, 968, 969, 970, 971, 972, 974, 975, 977, 978,
1556 979, 980, 981, 982, 939, 983, 984, 985, 986, 987,
1557 988, 990, 991, 992, 993, 994, 995, 997, 998, 999,
1559 1000, 1001, 1002, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
1560 1012, 1013, 1014, 1015, 1016, 991, 1017, 1018, 1019, 1022,
1561 1024, 992, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1033,
1562 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1042, 1045, 1046,
1563 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
1564 1057, 1058, 1059, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
1565 1068, 1069, 1070, 1071, 1072, 1073, 1075, 1076, 1077, 1078,
1566 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
1567 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
1568 1100, 1101, 1072, 1102, 1103, 1104, 1105, 1106, 1054, 1107,
1570 1109, 1112, 1113, 1114, 1105, 1115, 1116, 1117, 1118, 1119,
1571 1077, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1130,
1572 1132, 1135, 1137, 1139, 1140, 1141, 1142, 1143, 1145, 1146,
1573 1141, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
1574 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
1575 1143, 1168, 1171, 1173, 1174, 1175, 1176, 1177, 1179, 1180,
1576 1181, 1182, 1183, 1184, 1186, 1187, 1189, 1190, 1191, 1192,
1577 1194, 1195, 1196, 1197, 1198, 1199, 1201, 1203, 1205, 1207,
1578 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
1579 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1225, 1226,
1581 1227, 1228, 1229, 1230, 1231, 1205, 1232, 1233, 1234, 1235,
1582 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245,
1583 1246, 1248, 1249, 1251, 1252, 1253, 1254, 1258, 1259, 1262,
1584 1263, 1264, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
1585 1276, 1277, 1279, 1281, 1282, 1283, 1284, 1285, 1287, 1288,
1586 1289, 1290, 1291, 1292, 1254, 1226, 1293, 1294, 1295, 1296,
1587 1297, 1298, 1299, 1301, 1302, 1303, 1305, 1306, 1307, 1308,
1588 1309, 1310, 1311, 1313, 1314, 1315, 1317, 1319, 1320, 1321,
1589 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1331, 1332,
1590 1336, 1340, 1341, 1343, 1344, 1346, 1347, 1348, 1349, 1350,
1592 1351, 1353, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362,
1593 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1374, 1375,
1594 1376, 1377, 1378, 1380, 1381, 1382, 1383, 1384, 1385, 1387,
1595 1388, 1389, 1390, 1391, 1393, 1395, 1397, 1398, 1399, 1400,
1596 1401, 1402, 1403, 1404, 1406, 1407, 1409, 1410, 1413, 1414,
1597 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
1598 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1599 1435, 1436, 1437, 1439, 1441, 1442, 1443, 1444, 1445, 1446,
1600 1450, 1451, 1452, 1453, 1455, 1456, 1458, 1459, 1460, 1461,
1601 1462, 1464, 1465, 1468, 1468, 1468, 1468, 1468, 1469, 1469,
1603 1469, 1469, 1469, 1470, 1476, 1470, 1470, 1470, 1471, 1477,
1604 1471, 1478, 1471, 1472, 1472, 1472, 1472, 1472, 1473, 1473,
1605 1473, 1473, 1473, 1474, 1479, 1474, 1474, 1474, 1475, 1475,
1606 1475, 720, 718, 716, 715, 714, 713, 712, 711, 710,
1607 709, 708, 707, 706, 703, 702, 699, 698, 697, 696,
1608 695, 694, 693, 692, 691, 690, 689, 688, 687, 686,
1609 685, 684, 683, 682, 681, 680, 678, 677, 676, 675,
1610 674, 673, 672, 671, 669, 667, 666, 665, 664, 663,
1611 662, 661, 660, 659, 658, 657, 656, 655, 654, 653,
1612 652, 650, 649, 648, 647, 646, 645, 644, 643, 642,
1614 641, 640, 639, 638, 637, 636, 635, 634, 633, 631,
1615 629, 628, 627, 626, 623, 622, 621, 619, 618, 616,
1616 615, 614, 613, 612, 611, 608, 607, 606, 605, 604,
1617 603, 602, 601, 600, 599, 598, 597, 595, 594, 593,
1618 592, 591, 590, 589, 588, 586, 585, 584, 583, 581,
1619 580, 579, 578, 577, 576, 575, 573, 572, 571, 570,
1620 569, 568, 567, 566, 565, 563, 562, 561, 560, 559,
1621 558, 557, 556, 555, 554, 553, 552, 550, 549, 548,
1622 547, 546, 545, 544, 543, 542, 541, 540, 539, 538,
1623 537, 536, 535, 534, 533, 532, 531, 530, 529, 523,
1625 521, 518, 517, 516, 515, 513, 512, 511, 509, 508,
1626 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
1627 495, 494, 493, 492, 491, 490, 489, 488, 487, 486,
1628 485, 484, 483, 482, 481, 479, 477, 476, 475, 474,
1629 473, 472, 471, 470, 469, 468, 467, 466, 464, 463,
1630 462, 461, 460, 459, 458, 457, 456, 455, 454, 453,
1631 452, 451, 450, 449, 448, 447, 445, 444, 443, 442,
1632 440, 439, 438, 437, 436, 434, 433, 431, 430, 428,
1633 427, 426, 425, 424, 423, 421, 420, 419, 418, 417,
1634 412, 411, 409, 408, 407, 406, 405, 403, 402, 400,
1636 397, 395, 394, 392, 391, 389, 388, 387, 386, 385,
1637 384, 383, 382, 381, 380, 378, 377, 376, 374, 373,
1638 372, 371, 369, 368, 367, 365, 364, 363, 362, 361,
1639 360, 359, 358, 357, 355, 353, 352, 351, 350, 349,
1640 347, 346, 345, 344, 343, 342, 341, 340, 339, 337,
1641 336, 335, 334, 333, 332, 331, 330, 329, 328, 327,
1642 326, 324, 323, 322, 321, 318, 317, 316, 315, 314,
1643 313, 312, 311, 310, 306, 304, 301, 300, 297, 293,
1644 286, 284, 283, 282, 281, 279, 278, 277, 276, 275,
1645 274, 273, 272, 271, 270, 269, 268, 267, 266, 264,
1647 263, 262, 261, 260, 259, 258, 257, 256, 255, 254,
1648 253, 251, 250, 249, 248, 247, 246, 245, 244, 242,
1649 241, 240, 239, 238, 237, 236, 235, 233, 232, 231,
1650 230, 229, 228, 227, 226, 225, 224, 223, 222, 221,
1651 220, 219, 218, 217, 216, 215, 214, 212, 211, 210,
1652 209, 208, 207, 206, 204, 201, 199, 197, 195, 192,
1653 191, 189, 186, 178, 177, 176, 174, 173, 171, 170,
1654 169, 168, 164, 163, 161, 159, 158, 157, 156, 155,
1655 153, 152, 151, 150, 148, 147, 146, 145, 144, 143,
1656 142, 141, 140, 138, 137, 135, 133, 132, 131, 130,
1658 128, 127, 126, 124, 123, 122, 121, 120, 116, 110,
1659 107, 106, 104, 99, 98, 79, 74, 68, 60, 53,
1660 50, 49, 47, 43, 41, 39, 38, 24, 14, 11,
1661 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1662 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1663 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1664 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1665 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1666 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1667 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
1673 static char *yy_last_accepting_cpos;
1680 147, 149, 151, 156, 157, 162, 163, 164, 176, 179,
1681 184, 191, 200, 209, 218, 227, 236, 245, 255, 264,
1682 273, 282, 291, 300, 309, 318, 327, 336, 345, 354,
1683 366, 375, 384, 393, 402, 413, 424, 435, 446, 456,
1684 466, 477, 488, 499, 510, 521, 532, 543, 554, 565,
1685 576, 587, 596, 605, 615, 624, 634, 648, 664, 673,
1686 682, 691, 700, 721, 742, 751, 761, 770, 781, 790,
1687 799, 808, 817, 826, 836, 845, 854, 863, 872, 881,
1688 890, 899, 908, 917, 926, 936, 947, 959, 968, 977,
1689 987, 997, 1007, 1017, 1027, 1037, 1046, 1056, 1065, 1074,
1691 1083, 1092, 1102, 1112, 1121, 1131, 1140, 1149, 1158, 1167,
1692 1176, 1185, 1194, 1203, 1212, 1221, 1230, 1239, 1248, 1257,
1693 1266, 1275, 1284, 1293, 1302, 1311, 1320, 1329, 1338, 1347,
1694 1356, 1365, 1374, 1383, 1392, 1401, 1411, 1421, 1431, 1441,
1695 1451, 1461, 1471, 1481, 1491, 1500, 1509, 1518, 1527, 1536,
1696 1545, 1554, 1565, 1576, 1589, 1602, 1617, 1716, 1721, 1726,
1697 1731, 1732, 1733, 1734, 1735, 1736, 1738, 1756, 1769, 1774,
1698 1778, 1780, 1782, 1784
1704 #define REJECT reject_used_but_not_detected
1705 #define yymore() yymore_used_but_not_detected
1706 #define YY_MORE_ADJ 0
1707 #define YY_RESTORE_YY_MORE_OFFSET
1709 #line 1 "dhcp4_lexer.ll"
1715 #line 8 "dhcp4_lexer.ll"
1718 #ifndef __clang_analyzer__
1726 #include <boost/lexical_cast.hpp>
1740 bool start_token_flag =
false;
1743 unsigned int comment_start_line = 0;
1750 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
1751 #line 1751 "dhcp4_lexer.cc"
1766 #define YY_NO_INPUT 1
1772 #line 94 "dhcp4_lexer.ll"
1776 #define YY_USER_ACTION driver.loc_.columns(yyleng);
1777 #line 1777 "dhcp4_lexer.cc"
1778 #line 1778 "dhcp4_lexer.cc"
1783 #define DIR_INCLUDE 3
1786 #ifndef YY_NO_UNISTD_H
1798 #ifndef YY_EXTRA_TYPE
1799 #define YY_EXTRA_TYPE void *
1806 static int yy_init_globals (
void );
1849 #ifndef YY_SKIP_YYWRAP
1851 extern "C" int yywrap (
void );
1853 extern int yywrap (
void );
1866 static void yy_flex_strncpy (
char *,
const char *,
int );
1869 #ifdef YY_NEED_STRLEN
1870 static int yy_flex_strlen (
const char * );
1877 static int yyinput (
void );
1879 static int input (
void );
1891 #ifndef YY_READ_BUF_SIZE
1894 #define YY_READ_BUF_SIZE 16384
1896 #define YY_READ_BUF_SIZE 8192
1906 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1916 #define YY_INPUT(buf,result,max_size) \
1918 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1922 for ( n = 0; n < max_size && \
1923 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1924 buf[n] = (char) c; \
1926 buf[n++] = (char) c; \
1927 if ( c == EOF && ferror( yyin ) ) \
1928 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1934 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1936 if( errno != EINTR) \
1938 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1956 #define yyterminate() return YY_NULL
1960 #ifndef YY_START_STACK_INCR
1961 #define YY_START_STACK_INCR 25
1965 #ifndef YY_FATAL_ERROR
1967 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1988 #define YY_DECL_IS_OURS 1
1991 extern int yylex (
void);
1993 #define YY_DECL int yylex (void)
2002 #ifndef YY_USER_ACTION
2003 #define YY_USER_ACTION
2008 #define YY_BREAK break;
2012 #define YY_RULE_SETUP \
2060 #line 100 "dhcp4_lexer.ll"
2064 #line 104 "dhcp4_lexer.ll"
2072 if (start_token_flag) {
2073 start_token_flag =
false;
2074 switch (start_token_value) {
2075 case Parser4Context::PARSER_JSON:
2078 case Parser4Context::PARSER_DHCP4:
2080 case Parser4Context::SUBPARSER_DHCP4:
2082 case Parser4Context::PARSER_INTERFACES:
2084 case Parser4Context::PARSER_SUBNET4:
2086 case Parser4Context::PARSER_POOL4:
2088 case Parser4Context::PARSER_HOST_RESERVATION:
2090 case Parser4Context::PARSER_OPTION_DEFS:
2092 case Parser4Context::PARSER_OPTION_DEF:
2094 case Parser4Context::PARSER_OPTION_DATA:
2096 case Parser4Context::PARSER_HOOKS_LIBRARY:
2098 case Parser4Context::PARSER_DHCP_DDNS:
2100 case Parser4Context::PARSER_CONFIG_CONTROL:
2102 case Parser4Context::PARSER_LOGGING:
2108 #line 2108 "dhcp4_lexer.cc"
2113 yy_cp = (yy_c_buf_p);
2116 *
yy_cp = (yy_hold_char);
2124 yy_current_state = (yy_start);
2129 if ( yy_accept[yy_current_state] )
2131 (yy_last_accepting_state) = yy_current_state;
2132 (yy_last_accepting_cpos) =
yy_cp;
2134 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2136 yy_current_state = (int) yy_def[yy_current_state];
2137 if ( yy_current_state >= 1468 )
2138 yy_c = yy_meta[yy_c];
2140 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2143 while ( yy_current_state != 1467 );
2144 yy_cp = (yy_last_accepting_cpos);
2145 yy_current_state = (yy_last_accepting_state);
2149 yy_act = yy_accept[yy_current_state];
2161 fprintf( stderr,
"--scanner backing up\n" );
2163 fprintf( stderr,
"--accepting rule at line %ld (\"%s\")\n",
2165 else if (
yy_act == 175 )
2166 fprintf( stderr,
"--accepting default rule (\"%s\")\n",
2168 else if (
yy_act == 176 )
2169 fprintf( stderr,
"--(end of buffer or a NUL)\n" );
2171 fprintf( stderr,
"--EOF (start condition %d)\n",
YY_START );
2179 *
yy_cp = (yy_hold_char);
2180 yy_cp = (yy_last_accepting_cpos);
2181 yy_current_state = (yy_last_accepting_state);
2182 goto yy_find_action;
2186 #line 147 "dhcp4_lexer.ll"
2191 #line 149 "dhcp4_lexer.ll"
2196 #line 151 "dhcp4_lexer.ll"
2199 comment_start_line = driver.loc_.end.line;;
2204 #line 156 "dhcp4_lexer.ll"
2209 #line 157 "dhcp4_lexer.ll"
2213 #line 158 "dhcp4_lexer.ll"
2220 #line 162 "dhcp4_lexer.ll"
2225 #line 163 "dhcp4_lexer.ll"
2230 #line 164 "dhcp4_lexer.ll"
2235 std::string tmp(
yytext+1);
2236 tmp.resize(tmp.size() - 1);
2238 driver.includeFile(tmp);
2244 #line 173 "dhcp4_lexer.ll"
2251 #line 176 "dhcp4_lexer.ll"
2256 #line 179 "dhcp4_lexer.ll"
2265 #line 184 "dhcp4_lexer.ll"
2268 driver.loc_.lines(
yyleng);
2274 #line 191 "dhcp4_lexer.ll"
2276 switch(driver.ctx_) {
2286 #line 200 "dhcp4_lexer.ll"
2288 switch(driver.ctx_) {
2298 #line 209 "dhcp4_lexer.ll"
2300 switch(driver.ctx_) {
2310 #line 218 "dhcp4_lexer.ll"
2312 switch(driver.ctx_) {
2322 #line 227 "dhcp4_lexer.ll"
2324 switch(driver.ctx_) {
2334 #line 236 "dhcp4_lexer.ll"
2336 switch(driver.ctx_) {
2346 #line 245 "dhcp4_lexer.ll"
2348 switch(driver.ctx_) {
2359 #line 255 "dhcp4_lexer.ll"
2361 switch(driver.ctx_) {
2362 case Parser4Context::INTERFACES_CONFIG:
2371 #line 264 "dhcp4_lexer.ll"
2373 switch(driver.ctx_) {
2374 case Parser4Context::OUTBOUND_INTERFACE:
2375 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2377 return Dhcp4Parser::make_STRING(
"same-as-inbound", driver.loc_);
2383 #line 273 "dhcp4_lexer.ll"
2385 switch(driver.ctx_) {
2386 case Parser4Context::OUTBOUND_INTERFACE:
2387 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2389 return Dhcp4Parser::make_STRING(
"use-routing", driver.loc_);
2395 #line 282 "dhcp4_lexer.ll"
2397 switch(driver.ctx_) {
2407 #line 291 "dhcp4_lexer.ll"
2409 switch(driver.ctx_) {
2419 #line 300 "dhcp4_lexer.ll"
2421 switch(driver.ctx_) {
2431 #line 309 "dhcp4_lexer.ll"
2433 switch(driver.ctx_) {
2443 #line 318 "dhcp4_lexer.ll"
2445 switch(driver.ctx_) {
2455 #line 327 "dhcp4_lexer.ll"
2457 switch(driver.ctx_) {
2467 #line 336 "dhcp4_lexer.ll"
2469 switch(driver.ctx_) {
2479 #line 345 "dhcp4_lexer.ll"
2481 switch(driver.ctx_) {
2491 #line 354 "dhcp4_lexer.ll"
2493 switch(driver.ctx_) {
2506 #line 366 "dhcp4_lexer.ll"
2508 switch(driver.ctx_) {
2518 #line 375 "dhcp4_lexer.ll"
2520 switch(driver.ctx_) {
2530 #line 384 "dhcp4_lexer.ll"
2532 switch(driver.ctx_) {
2542 #line 393 "dhcp4_lexer.ll"
2544 switch(driver.ctx_) {
2554 #line 402 "dhcp4_lexer.ll"
2556 switch(driver.ctx_) {
2568 #line 413 "dhcp4_lexer.ll"
2570 switch(driver.ctx_) {
2582 #line 424 "dhcp4_lexer.ll"
2584 switch(driver.ctx_) {
2596 #line 435 "dhcp4_lexer.ll"
2598 switch(driver.ctx_) {
2610 #line 446 "dhcp4_lexer.ll"
2612 switch(driver.ctx_) {
2623 #line 456 "dhcp4_lexer.ll"
2625 switch(driver.ctx_) {
2636 #line 466 "dhcp4_lexer.ll"
2638 switch(driver.ctx_) {
2650 #line 477 "dhcp4_lexer.ll"
2652 switch(driver.ctx_) {
2664 #line 488 "dhcp4_lexer.ll"
2666 switch(driver.ctx_) {
2678 #line 499 "dhcp4_lexer.ll"
2680 switch(driver.ctx_) {
2692 #line 510 "dhcp4_lexer.ll"
2694 switch(driver.ctx_) {
2706 #line 521 "dhcp4_lexer.ll"
2708 switch(driver.ctx_) {
2720 #line 532 "dhcp4_lexer.ll"
2722 switch(driver.ctx_) {
2734 #line 543 "dhcp4_lexer.ll"
2736 switch(driver.ctx_) {
2748 #line 554 "dhcp4_lexer.ll"
2750 switch(driver.ctx_) {
2762 #line 565 "dhcp4_lexer.ll"
2764 switch(driver.ctx_) {
2776 #line 576 "dhcp4_lexer.ll"
2778 switch(driver.ctx_) {
2790 #line 587 "dhcp4_lexer.ll"
2792 switch(driver.ctx_) {
2802 #line 596 "dhcp4_lexer.ll"
2804 switch(driver.ctx_) {
2814 #line 605 "dhcp4_lexer.ll"
2816 switch(driver.ctx_) {
2827 #line 615 "dhcp4_lexer.ll"
2829 switch (driver.ctx_) {
2839 #line 624 "dhcp4_lexer.ll"
2841 switch(driver.ctx_) {
2852 #line 634 "dhcp4_lexer.ll"
2854 switch(driver.ctx_) {
2869 #line 648 "dhcp4_lexer.ll"
2871 switch(driver.ctx_) {
2888 #line 664 "dhcp4_lexer.ll"
2890 switch(driver.ctx_) {
2900 #line 673 "dhcp4_lexer.ll"
2902 switch(driver.ctx_) {
2912 #line 682 "dhcp4_lexer.ll"
2914 switch(driver.ctx_) {
2924 #line 691 "dhcp4_lexer.ll"
2926 switch(driver.ctx_) {
2936 #line 700 "dhcp4_lexer.ll"
2938 switch(driver.ctx_) {
2960 #line 721 "dhcp4_lexer.ll"
2962 switch(driver.ctx_) {
2984 #line 742 "dhcp4_lexer.ll"
2986 switch(driver.ctx_) {
2996 #line 751 "dhcp4_lexer.ll"
2998 switch(driver.ctx_) {
3009 #line 761 "dhcp4_lexer.ll"
3011 switch(driver.ctx_) {
3021 #line 770 "dhcp4_lexer.ll"
3023 switch(driver.ctx_) {
3035 #line 781 "dhcp4_lexer.ll"
3037 switch(driver.ctx_) {
3047 #line 790 "dhcp4_lexer.ll"
3049 switch(driver.ctx_) {
3059 #line 799 "dhcp4_lexer.ll"
3061 switch(driver.ctx_) {
3071 #line 808 "dhcp4_lexer.ll"
3073 switch(driver.ctx_) {
3083 #line 817 "dhcp4_lexer.ll"
3085 switch(driver.ctx_) {
3095 #line 826 "dhcp4_lexer.ll"
3097 switch(driver.ctx_) {
3108 #line 836 "dhcp4_lexer.ll"
3110 switch(driver.ctx_) {
3120 #line 845 "dhcp4_lexer.ll"
3122 switch(driver.ctx_) {
3132 #line 854 "dhcp4_lexer.ll"
3134 switch(driver.ctx_) {
3144 #line 863 "dhcp4_lexer.ll"
3146 switch(driver.ctx_) {
3156 #line 872 "dhcp4_lexer.ll"
3158 switch(driver.ctx_) {
3168 #line 881 "dhcp4_lexer.ll"
3170 switch(driver.ctx_) {
3180 #line 890 "dhcp4_lexer.ll"
3182 switch(driver.ctx_) {
3192 #line 899 "dhcp4_lexer.ll"
3194 switch(driver.ctx_) {
3204 #line 908 "dhcp4_lexer.ll"
3206 switch(driver.ctx_) {
3216 #line 917 "dhcp4_lexer.ll"
3218 switch(driver.ctx_) {
3228 #line 926 "dhcp4_lexer.ll"
3230 switch(driver.ctx_) {
3241 #line 936 "dhcp4_lexer.ll"
3243 switch(driver.ctx_) {
3255 #line 947 "dhcp4_lexer.ll"
3257 switch(driver.ctx_) {
3270 #line 959 "dhcp4_lexer.ll"
3272 switch(driver.ctx_) {
3282 #line 968 "dhcp4_lexer.ll"
3284 switch(driver.ctx_) {
3294 #line 977 "dhcp4_lexer.ll"
3296 switch(driver.ctx_) {
3307 #line 987 "dhcp4_lexer.ll"
3309 switch(driver.ctx_) {
3320 #line 997 "dhcp4_lexer.ll"
3322 switch(driver.ctx_) {
3333 #line 1007 "dhcp4_lexer.ll"
3335 switch(driver.ctx_) {
3346 #line 1017 "dhcp4_lexer.ll"
3348 switch(driver.ctx_) {
3359 #line 1027 "dhcp4_lexer.ll"
3361 switch(driver.ctx_) {
3372 #line 1037 "dhcp4_lexer.ll"
3374 switch(driver.ctx_) {
3384 #line 1046 "dhcp4_lexer.ll"
3386 switch(driver.ctx_) {
3397 #line 1056 "dhcp4_lexer.ll"
3399 switch(driver.ctx_) {
3409 #line 1065 "dhcp4_lexer.ll"
3411 switch(driver.ctx_) {
3421 #line 1074 "dhcp4_lexer.ll"
3423 switch(driver.ctx_) {
3433 #line 1083 "dhcp4_lexer.ll"
3435 switch(driver.ctx_) {
3445 #line 1092 "dhcp4_lexer.ll"
3447 switch(driver.ctx_) {
3458 #line 1102 "dhcp4_lexer.ll"
3460 switch(driver.ctx_) {
3471 #line 1112 "dhcp4_lexer.ll"
3473 switch(driver.ctx_) {
3483 #line 1121 "dhcp4_lexer.ll"
3485 switch(driver.ctx_) {
3495 #line 1131 "dhcp4_lexer.ll"
3497 switch(driver.ctx_) {
3507 #line 1140 "dhcp4_lexer.ll"
3509 switch(driver.ctx_) {
3519 #line 1149 "dhcp4_lexer.ll"
3521 switch(driver.ctx_) {
3531 #line 1158 "dhcp4_lexer.ll"
3533 switch(driver.ctx_) {
3543 #line 1167 "dhcp4_lexer.ll"
3545 switch(driver.ctx_) {
3555 #line 1176 "dhcp4_lexer.ll"
3557 switch(driver.ctx_) {
3567 #line 1185 "dhcp4_lexer.ll"
3569 switch(driver.ctx_) {
3579 #line 1194 "dhcp4_lexer.ll"
3581 switch(driver.ctx_) {
3591 #line 1203 "dhcp4_lexer.ll"
3593 switch(driver.ctx_) {
3603 #line 1212 "dhcp4_lexer.ll"
3605 switch(driver.ctx_) {
3615 #line 1221 "dhcp4_lexer.ll"
3617 switch(driver.ctx_) {
3627 #line 1230 "dhcp4_lexer.ll"
3629 switch(driver.ctx_) {
3639 #line 1239 "dhcp4_lexer.ll"
3641 switch(driver.ctx_) {
3651 #line 1248 "dhcp4_lexer.ll"
3653 switch(driver.ctx_) {
3663 #line 1257 "dhcp4_lexer.ll"
3665 switch(driver.ctx_) {
3675 #line 1266 "dhcp4_lexer.ll"
3677 switch(driver.ctx_) {
3687 #line 1275 "dhcp4_lexer.ll"
3689 switch(driver.ctx_) {
3699 #line 1284 "dhcp4_lexer.ll"
3701 switch(driver.ctx_) {
3711 #line 1293 "dhcp4_lexer.ll"
3713 switch(driver.ctx_) {
3723 #line 1302 "dhcp4_lexer.ll"
3725 switch(driver.ctx_) {
3735 #line 1311 "dhcp4_lexer.ll"
3737 switch(driver.ctx_) {
3747 #line 1320 "dhcp4_lexer.ll"
3749 switch(driver.ctx_) {
3759 #line 1329 "dhcp4_lexer.ll"
3761 switch(driver.ctx_) {
3771 #line 1338 "dhcp4_lexer.ll"
3773 switch(driver.ctx_) {
3783 #line 1347 "dhcp4_lexer.ll"
3785 switch(driver.ctx_) {
3795 #line 1356 "dhcp4_lexer.ll"
3797 switch(driver.ctx_) {
3807 #line 1365 "dhcp4_lexer.ll"
3809 switch(driver.ctx_) {
3819 #line 1374 "dhcp4_lexer.ll"
3821 switch(driver.ctx_) {
3831 #line 1383 "dhcp4_lexer.ll"
3833 switch(driver.ctx_) {
3843 #line 1392 "dhcp4_lexer.ll"
3845 switch(driver.ctx_) {
3855 #line 1401 "dhcp4_lexer.ll"
3861 std::string tmp(
yytext+1);
3862 tmp.resize(tmp.size() - 1);
3868 #line 1411 "dhcp4_lexer.ll"
3874 std::string tmp(
yytext+1);
3875 tmp.resize(tmp.size() - 1);
3881 #line 1421 "dhcp4_lexer.ll"
3887 std::string tmp(
yytext+1);
3888 tmp.resize(tmp.size() - 1);
3894 #line 1431 "dhcp4_lexer.ll"
3900 std::string tmp(
yytext+1);
3901 tmp.resize(tmp.size() - 1);
3907 #line 1441 "dhcp4_lexer.ll"
3913 std::string tmp(
yytext+1);
3914 tmp.resize(tmp.size() - 1);
3920 #line 1451 "dhcp4_lexer.ll"
3926 std::string tmp(
yytext+1);
3927 tmp.resize(tmp.size() - 1);
3933 #line 1461 "dhcp4_lexer.ll"
3939 std::string tmp(
yytext+1);
3940 tmp.resize(tmp.size() - 1);
3946 #line 1471 "dhcp4_lexer.ll"
3952 std::string tmp(
yytext+1);
3953 tmp.resize(tmp.size() - 1);
3959 #line 1481 "dhcp4_lexer.ll"
3965 std::string tmp(
yytext+1);
3966 tmp.resize(tmp.size() - 1);
3972 #line 1491 "dhcp4_lexer.ll"
3974 switch(driver.ctx_) {
3984 #line 1500 "dhcp4_lexer.ll"
3986 switch(driver.ctx_) {
3996 #line 1509 "dhcp4_lexer.ll"
3998 switch(driver.ctx_) {
4008 #line 1518 "dhcp4_lexer.ll"
4010 switch(driver.ctx_) {
4020 #line 1527 "dhcp4_lexer.ll"
4022 switch(driver.ctx_) {
4032 #line 1536 "dhcp4_lexer.ll"
4034 switch(driver.ctx_) {
4044 #line 1545 "dhcp4_lexer.ll"
4046 switch(driver.ctx_) {
4056 #line 1554 "dhcp4_lexer.ll"
4058 switch(driver.ctx_) {
4070 #line 1565 "dhcp4_lexer.ll"
4072 switch(driver.ctx_) {
4084 #line 1576 "dhcp4_lexer.ll"
4086 switch(driver.ctx_) {
4100 #line 1589 "dhcp4_lexer.ll"
4102 switch(driver.ctx_) {
4116 #line 1602 "dhcp4_lexer.ll"
4118 switch(driver.ctx_) {
4132 #line 1617 "dhcp4_lexer.ll"
4137 std::string raw(
yytext+1);
4138 size_t len = raw.size() - 1;
4140 std::string decoded;
4141 decoded.reserve(len);
4142 for (
size_t pos = 0; pos < len; ++pos) {
4148 driver.error(driver.loc_,
"Bad quote in \"" + raw +
"\"");
4154 driver.error(driver.loc_,
"Overflow escape in \"" + raw +
"\"");
4161 decoded.push_back(c);
4164 decoded.push_back(
'\b');
4167 decoded.push_back(
'\f');
4170 decoded.push_back(
'\n');
4173 decoded.push_back(
'\r');
4176 decoded.push_back(
'\t');
4181 if (pos + 4 > len) {
4183 driver.error(driver.loc_,
4184 "Overflow unicode escape in \"" + raw +
"\"");
4186 if ((raw[pos] !=
'0') || (raw[pos + 1] !=
'0')) {
4187 driver.error(driver.loc_,
"Unsupported unicode escape in \"" + raw +
"\"");
4191 if ((c >=
'0') && (c <=
'9')) {
4193 }
else if ((c >=
'A') && (c <=
'F')) {
4194 b = (c -
'A' + 10) << 4;
4195 }
else if ((c >=
'a') && (c <=
'f')) {
4196 b = (c -
'a' + 10) << 4;
4199 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
4203 if ((c >=
'0') && (c <=
'9')) {
4205 }
else if ((c >=
'A') && (c <=
'F')) {
4207 }
else if ((c >=
'a') && (c <=
'f')) {
4211 driver.error(driver.loc_,
"Not hexadecimal in unicode escape in \"" + raw +
"\"");
4213 decoded.push_back(
static_cast<char>(b & 0xff));
4217 driver.error(driver.loc_,
"Bad escape in \"" + raw +
"\"");
4221 if ((c >= 0) && (c < 0x20)) {
4223 driver.error(driver.loc_,
"Invalid control in \"" + raw +
"\"");
4225 decoded.push_back(c);
4235 #line 1716 "dhcp4_lexer.ll"
4238 driver.error(driver.loc_,
"Invalid control in " + std::string(
yytext));
4244 #line 1721 "dhcp4_lexer.ll"
4247 driver.error(driver.loc_,
"Bad escape in " + std::string(
yytext));
4252 #line 1726 "dhcp4_lexer.ll"
4255 driver.error(driver.loc_,
"Overflow escape in " + std::string(
yytext));
4260 #line 1731 "dhcp4_lexer.ll"
4265 #line 1732 "dhcp4_lexer.ll"
4270 #line 1733 "dhcp4_lexer.ll"
4275 #line 1734 "dhcp4_lexer.ll"
4280 #line 1735 "dhcp4_lexer.ll"
4285 #line 1736 "dhcp4_lexer.ll"
4290 #line 1738 "dhcp4_lexer.ll"
4294 int64_t integer = 0;
4300 integer = boost::lexical_cast<int64_t>(tmp);
4301 }
catch (
const boost::bad_lexical_cast &) {
4302 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to an integer.");
4311 #line 1756 "dhcp4_lexer.ll"
4317 fp = boost::lexical_cast<double>(tmp);
4318 }
catch (
const boost::bad_lexical_cast &) {
4319 driver.error(driver.loc_,
"Failed to convert " + tmp +
" to a floating point.");
4327 #line 1769 "dhcp4_lexer.ll"
4335 #line 1774 "dhcp4_lexer.ll"
4342 #line 1778 "dhcp4_lexer.ll"
4343 driver.error (driver.loc_,
"JSON true reserved keyword is lower case only");
4347 #line 1780 "dhcp4_lexer.ll"
4348 driver.error (driver.loc_,
"JSON false reserved keyword is lower case only");
4352 #line 1782 "dhcp4_lexer.ll"
4353 driver.error (driver.loc_,
"JSON null reserved keyword is lower case only");
4357 #line 1784 "dhcp4_lexer.ll"
4358 driver.error (driver.loc_,
"Invalid character: " + std::string(
yytext));
4361 #line 1786 "dhcp4_lexer.ll"
4363 if (driver.states_.empty()) {
4366 driver.loc_ = driver.locs_.back();
4367 driver.locs_.pop_back();
4368 driver.file_ = driver.files_.back();
4369 driver.files_.pop_back();
4370 if (driver.sfile_) {
4371 fclose(driver.sfile_);
4374 if (!driver.sfiles_.empty()) {
4375 driver.sfile_ = driver.sfiles_.back();
4376 driver.sfiles_.pop_back();
4379 parser4__switch_to_buffer(driver.states_.back());
4380 driver.states_.pop_back();
4387 #line 1809 "dhcp4_lexer.ll"
4390 #line 4390 "dhcp4_lexer.cc"
4398 *
yy_cp = (yy_hold_char);
4432 (yy_c_buf_p) = (
yytext_ptr) + yy_amount_of_matched_text;
4434 yy_current_state = yy_get_previous_state( );
4445 yy_next_state = yy_try_NUL_trans( yy_current_state );
4449 if ( yy_next_state )
4452 yy_cp = ++(yy_c_buf_p);
4453 yy_current_state = yy_next_state;
4460 yy_cp = (yy_last_accepting_cpos);
4461 yy_current_state = (yy_last_accepting_state);
4462 goto yy_find_action;
4466 else switch ( yy_get_next_buffer( ) )
4470 (yy_did_buffer_switch_on_eof) = 0;
4491 if ( ! (yy_did_buffer_switch_on_eof) )
4501 yy_current_state = yy_get_previous_state( );
4503 yy_cp = (yy_c_buf_p);
4511 yy_current_state = yy_get_previous_state( );
4513 yy_cp = (yy_c_buf_p);
4515 goto yy_find_action;
4522 "fatal flex scanner internal error--no action found" );
4543 static int yy_get_next_buffer (
void)
4550 int number_to_move, i;
4555 "fatal flex scanner internal error--end of buffer missed" );
4579 number_to_move = (int) ((yy_c_buf_p) - (
yytext_ptr) - 1);
4581 for ( i = 0; i < number_to_move; ++i )
4582 *(dest++) = *(source++);
4595 while ( num_to_read <= 0 )
4601 int yy_c_buf_p_offset =
4608 if ( new_size <= 0 )
4624 "fatal error - scanner input buffer overflow" );
4626 (yy_c_buf_p) = &b->
yy_ch_buf[yy_c_buf_p_offset];
4638 (yy_n_chars), num_to_read );
4643 if ( (yy_n_chars) == 0 )
4664 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4668 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
4673 (yy_n_chars) += number_to_move;
4695 yy_current_state = (yy_start);
4701 if ( yy_accept[yy_current_state] )
4703 (yy_last_accepting_state) = yy_current_state;
4704 (yy_last_accepting_cpos) =
yy_cp;
4706 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4708 yy_current_state = (int) yy_def[yy_current_state];
4709 if ( yy_current_state >= 1468 )
4710 yy_c = yy_meta[yy_c];
4712 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4715 return yy_current_state;
4731 char *
yy_cp = (yy_c_buf_p);
4734 if ( yy_accept[yy_current_state] )
4736 (yy_last_accepting_state) = yy_current_state;
4737 (yy_last_accepting_cpos) =
yy_cp;
4739 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4741 yy_current_state = (int) yy_def[yy_current_state];
4742 if ( yy_current_state >= 1468 )
4743 yy_c = yy_meta[yy_c];
4745 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4746 yy_is_jam = (yy_current_state == 1467);
4748 return yy_is_jam ? 0 : yy_current_state;
4760 static int yyinput (
void)
4762 static int input (
void)
4771 *(yy_c_buf_p) = (yy_hold_char);
4781 *(yy_c_buf_p) =
'\0';
4785 int offset = (int) ((yy_c_buf_p) - (
yytext_ptr));
4788 switch ( yy_get_next_buffer( ) )
4811 if ( ! (yy_did_buffer_switch_on_eof) )
4827 c = *(
unsigned char *) (yy_c_buf_p);
4828 *(yy_c_buf_p) =
'\0';
4829 (yy_hold_char) = *++(yy_c_buf_p);
4887 *(yy_c_buf_p) = (yy_hold_char);
4900 (yy_did_buffer_switch_on_eof) = 1;
4916 (yy_hold_char) = *(yy_c_buf_p);
5064 if (new_buffer == NULL)
5073 *(yy_c_buf_p) = (yy_hold_char);
5080 (yy_buffer_stack_top)++;
5085 (yy_did_buffer_switch_on_eof) = 1;
5105 if ((yy_buffer_stack_top) > 0)
5106 --(yy_buffer_stack_top);
5110 (yy_did_buffer_switch_on_eof) = 1;
5127 if (!(yy_buffer_stack)) {
5137 if ( ! (yy_buffer_stack) )
5138 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
5140 memset((yy_buffer_stack), 0, num_to_alloc *
sizeof(
struct yy_buffer_state*));
5142 (yy_buffer_stack_max) = num_to_alloc;
5143 (yy_buffer_stack_top) = 0;
5147 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5152 num_to_alloc = (yy_buffer_stack_max) + grow_size;
5157 if ( ! (yy_buffer_stack) )
5158 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
5161 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size *
sizeof(
struct yy_buffer_state*));
5162 (yy_buffer_stack_max) = num_to_alloc;
5241 for ( i = 0; i < _yybytes_len; ++i )
5242 buf[i] = yybytes[i];
5259 #ifndef YY_EXIT_FAILURE
5260 #define YY_EXIT_FAILURE 2
5264 static void yynoreturn yy_fatal_error (
const char* msg )
5266 fprintf( stderr,
"%s\n", msg );
5280 int yyless_macro_arg = (n); \
5281 YY_LESS_LINENO(yyless_macro_arg);\
5282 yytext[yyleng] = (yy_hold_char); \
5283 (yy_c_buf_p) = yytext + yyless_macro_arg; \
5284 (yy_hold_char) = *(yy_c_buf_p); \
5285 *(yy_c_buf_p) = '\0'; \
5286 yyleng = yyless_macro_arg; \
5385 static int yy_init_globals (
void)
5391 (yy_buffer_stack) = NULL;
5392 (yy_buffer_stack_top) = 0;
5393 (yy_buffer_stack_max) = 0;
5394 (yy_c_buf_p) = NULL;
5427 yyfree((yy_buffer_stack) );
5428 (yy_buffer_stack) = NULL;
5445 static void yy_flex_strncpy (
char* s1,
const char * s2,
int n )
5449 for ( i = 0; i < n; ++i )
5454 #ifdef YY_NEED_STRLEN
5455 static int yy_flex_strlen (
const char * s )
5458 for ( n = 0; s[n]; ++n )
5467 return malloc(size);
5480 return realloc(ptr, size);
5485 free( (
char *) ptr );
5490 #define YYTABLES_NAME "yytables"
5495 #line 1809 "dhcp4_lexer.ll"
5503 start_token_flag =
true;
5504 start_token_value = parser_type;
5511 buffer = parser4__scan_bytes(str.c_str(), str.size());
5513 fatal(
"cannot scan string");
5520 const std::string& filename,
5523 start_token_flag =
true;
5524 start_token_value = parser_type;
5533 buffer = parser4__create_buffer(f, 65536 );
5535 fatal(
"cannot scan file " + filename);
5537 parser4__switch_to_buffer(buffer);
5545 static_cast<void>(parser4_lex_destroy());
5556 parser4__delete_buffer(
states_.back());
5564 fatal(
"Too many nested include.");
5567 FILE* f = fopen(filename.c_str(),
"r");
5569 fatal(
"Can't open include file " + filename);
5577 buffer = parser4__create_buffer(f, 65536 );
5579 fatal(
"Can't scan include file " + filename);
5581 parser4__switch_to_buffer(buffer);
5594 void dummy() { yy_fatal_error(
"Fix me: how to disable its definition?"); }