From: Francis Dupont Date: Wed, 15 May 2019 19:59:36 +0000 (+0000) Subject: [#295,!325] regen flex/bison X-Git-Tag: Kea-1.6.0-beta2~255 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82d87758cd893001fdd449fc080fde7fd0c9b74e;p=thirdparty%2Fkea.git [#295,!325] regen flex/bison --- diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 0bcc2da945..80abaddcfe 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 181 -#define YY_END_OF_BUFFER 182 +#define YY_NUM_RULES 183 +#define YY_END_OF_BUFFER 184 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,178 +700,181 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1548] = +static const flex_int16_t yy_accept[1581] = { 0, - 174, 174, 0, 0, 0, 0, 0, 0, 0, 0, - 182, 180, 10, 11, 180, 1, 174, 171, 174, 174, - 180, 173, 172, 180, 180, 180, 180, 180, 167, 168, - 180, 180, 180, 169, 170, 5, 5, 5, 180, 180, - 180, 10, 11, 0, 0, 163, 0, 0, 0, 0, + 176, 176, 0, 0, 0, 0, 0, 0, 0, 0, + 184, 182, 10, 11, 182, 1, 176, 173, 176, 176, + 182, 175, 174, 182, 182, 182, 182, 182, 169, 170, + 182, 182, 182, 171, 172, 5, 5, 5, 182, 182, + 182, 10, 11, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 174, 174, 0, 173, 174, 3, 2, 6, 0, 174, + 176, 176, 0, 175, 176, 3, 2, 6, 0, 176, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, - 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 179, 177, 0, 176, 175, 0, 0, + 0, 0, 0, 0, 0, 181, 179, 0, 178, 177, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, - 142, 0, 0, 76, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 144, 0, 0, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 18, 0, 0, 0, 0, 178, 175, + 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 144, 0, 0, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 97, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, + + 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 180, 177, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 0, 0, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, + 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65, 0, 39, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 67, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 31, 0, 0, 36, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 151, 0, 148, 0, 147, - 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 31, 0, 0, + 36, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 153, 0, 150, 0, 149, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, + 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, + 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 83, 0, - 0, 0, 0, 88, 32, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 115, 85, 0, 0, - 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 90, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 152, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, - 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 37, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 98, 22, 0, 109, - 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 112, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, - 0, 80, 81, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 0, 0, + 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, + 0, 0, 0, 0, 106, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 100, 22, 0, 111, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, + + 61, 0, 0, 0, 0, 0, 114, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 60, 74, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 130, 0, 124, 123, 0, 49, - 0, 21, 0, 0, 0, 0, 0, 145, 0, 0, - - 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 110, 15, 0, 41, 0, 0, - 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 105, 0, 0, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 66, 0, 154, 0, - 153, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 0, 0, 0, 82, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, + 0, 62, 76, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, + + 134, 0, 0, 132, 0, 126, 125, 0, 49, 0, + 21, 0, 0, 0, 0, 0, 147, 0, 0, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 112, 15, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 107, 0, 0, 0, 0, 98, + 0, 0, 0, 0, 0, 0, 0, 68, 0, 156, + 0, 155, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 48, - 0, 0, 0, 0, 162, 0, 91, 27, 0, 0, - 0, 50, 122, 0, 0, 0, 157, 127, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 24, - 0, 133, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 0, 0, 0, 42, 0, - 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, - 26, 0, 158, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 20, 0, 161, - - 58, 0, 155, 150, 0, 28, 0, 0, 0, 16, - 0, 0, 139, 0, 0, 0, 0, 0, 0, 119, - 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 13, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 0, 0, 0, 0, 118, 0, 19, 0, 136, - 0, 0, 0, 0, 45, 0, 79, 0, 0, 0, - 0, 117, 0, 0, 51, 0, 0, 46, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 48, 0, 0, 0, 0, 164, 0, 93, + 27, 0, 0, 0, 50, 124, 0, 0, 0, 159, + 129, 0, 0, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 24, 0, 135, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, + + 0, 113, 0, 0, 0, 26, 0, 160, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 20, 0, 163, 60, 0, 157, + 152, 0, 28, 0, 0, 0, 16, 0, 0, 141, + 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 73, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 13, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 0, 0, 0, 0, 120, 0, 54, 53, + 19, 0, 138, 0, 0, 0, 0, 45, 0, 81, + 0, 0, 0, 0, 119, 0, 0, 51, 0, 0, + 46, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 0, 0, 0, 0, 0, 137, 0, 92, - 0, 0, 0, 0, 0, 0, 115, 120, 55, 0, - 0, 0, 0, 114, 0, 0, 141, 0, 0, 0, - 0, 0, 78, 0, 0, 116, 0 + 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 139, 0, 94, 0, 0, 0, 0, 0, 0, 117, + 122, 57, 0, 0, 0, 0, 116, 0, 0, 143, + 0, 0, 0, 0, 0, 80, 0, 0, 118, 0 } ; static const YY_CHAR yy_ec[256] = @@ -918,374 +921,384 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1560] = +static const flex_int16_t yy_base[1593] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 1948, 1949, 34, 1944, 145, 0, 207, 1949, 214, 221, - 13, 228, 1949, 1924, 118, 25, 2, 6, 1949, 1949, - 73, 11, 17, 1949, 1949, 1949, 104, 1932, 1885, 0, - 1922, 108, 1939, 24, 262, 1949, 1881, 67, 1880, 1886, - 84, 75, 1878, 88, 226, 91, 89, 290, 196, 1877, - 206, 285, 206, 210, 219, 60, 223, 1886, 247, 290, - 315, 303, 231, 1869, 297, 321, 343, 324, 1888, 0, - 380, 387, 401, 408, 424, 1949, 0, 1949, 429, 438, - 216, 249, 220, 315, 335, 266, 1949, 1885, 1926, 1949, - - 342, 1949, 421, 1913, 312, 1871, 1881, 400, 10, 1876, - 361, 323, 370, 387, 359, 1921, 0, 474, 392, 1863, - 1860, 1864, 1866, 1859, 1867, 412, 1863, 1852, 1853, 78, - 1869, 1852, 1861, 1861, 95, 1852, 400, 1853, 1851, 405, - 1899, 1903, 1843, 1896, 1836, 1859, 1856, 1856, 1850, 310, - 1843, 1836, 1841, 1835, 436, 1846, 1839, 1830, 1829, 1843, - 186, 1829, 413, 1845, 1822, 470, 286, 400, 1843, 1840, - 1841, 1839, 1874, 1873, 445, 1819, 1821, 448, 1813, 1830, - 1822, 0, 447, 447, 458, 471, 462, 483, 1821, 1949, - 0, 1866, 490, 1811, 1814, 476, 482, 1822, 488, 1867, - - 499, 1866, 496, 1865, 1949, 542, 1864, 507, 1823, 1815, - 1802, 1818, 1817, 1814, 1813, 1804, 486, 1855, 1849, 1813, - 1792, 1800, 1795, 1809, 1805, 1793, 1805, 1805, 1796, 1780, - 1784, 1797, 1799, 1796, 1788, 1778, 1796, 1949, 1791, 1794, - 1775, 1774, 1826, 1773, 1783, 1786, 531, 1782, 1770, 1781, - 1819, 1764, 1822, 1757, 1772, 533, 1762, 1778, 1759, 1758, - 1764, 1755, 1754, 1761, 1811, 1767, 1766, 1760, 486, 1767, - 1762, 1754, 1744, 1759, 1758, 1753, 1757, 322, 1755, 1741, - 1747, 1754, 1742, 1739, 1738, 541, 1733, 1747, 1790, 1749, - 366, 1740, 512, 1949, 1949, 521, 1949, 1949, 1727, 0, - - 241, 513, 1729, 546, 534, 1785, 1736, 538, 1949, 1783, - 1949, 1777, 588, 1949, 537, 1717, 1726, 1774, 1718, 1717, - 1723, 1775, 1730, 1725, 1728, 1723, 533, 1949, 1725, 1769, - 1722, 1719, 564, 1725, 1765, 1759, 1712, 1707, 1704, 1755, - 1712, 1701, 1717, 1751, 1697, 611, 1711, 1696, 1709, 1696, - 1706, 1701, 1708, 1703, 1699, 432, 1697, 1700, 1695, 1691, - 1741, 525, 1735, 1949, 1734, 1684, 1683, 1682, 1675, 1677, - 1681, 1670, 1683, 568, 1730, 1683, 1680, 1949, 1683, 1672, - 1672, 1684, 560, 1659, 1660, 1681, 570, 1663, 1714, 1659, - 1673, 1676, 1671, 1657, 1669, 1668, 1667, 1666, 1665, 1664, - - 526, 1707, 1706, 1949, 1648, 1647, 615, 1660, 1949, 1949, - 1659, 0, 1648, 1640, 561, 1645, 1698, 1697, 1653, 1695, - 1949, 1641, 1693, 1949, 595, 662, 564, 1692, 1634, 1645, - 1638, 1640, 1628, 1949, 1633, 1639, 1642, 1625, 1640, 1627, - 1626, 1949, 1628, 1625, 569, 1623, 1625, 1949, 1633, 1630, - 1615, 1628, 1623, 634, 1630, 1618, 1611, 1662, 1949, 1609, - 1625, 1659, 1620, 1617, 1618, 1620, 1654, 1605, 1600, 1599, - 1650, 1594, 1609, 1587, 1594, 1599, 1649, 1949, 1594, 1590, - 1588, 1597, 1591, 1598, 1582, 1582, 1592, 1595, 1584, 1579, - 1949, 1636, 1949, 1578, 1589, 1574, 1579, 1588, 1582, 1576, - - 1585, 1627, 1621, 1583, 1566, 1566, 1561, 1581, 1556, 1562, - 1567, 1560, 1568, 1572, 1555, 1613, 1553, 1554, 1553, 1565, - 1554, 1949, 1949, 1554, 1552, 1949, 1563, 1599, 1559, 0, - 1543, 1560, 1600, 1548, 1949, 1949, 1545, 1949, 1551, 1949, - 597, 606, 636, 1949, 1548, 1547, 1554, 1534, 1587, 1532, - 1585, 1530, 1529, 1528, 1535, 1528, 1540, 1539, 1539, 1521, - 1526, 1567, 1534, 1526, 1571, 1515, 1531, 1530, 1949, 1515, - 1512, 1570, 1525, 1517, 1523, 1514, 1522, 1507, 1523, 1505, - 1519, 560, 1501, 1495, 1500, 1515, 1512, 1513, 1510, 1553, - 1508, 1949, 1494, 1496, 1505, 1503, 1542, 1541, 1492, 16, - - 1501, 1484, 1485, 1482, 1949, 1496, 1475, 1494, 1486, 1531, - 1483, 1490, 1528, 1949, 1473, 1487, 1471, 1485, 1488, 1469, - 1521, 1520, 1519, 1518, 1463, 1516, 1515, 1949, 593, 1477, - 1476, 1473, 1473, 1471, 1454, 1459, 1461, 1949, 1467, 1457, - 1949, 1504, 1450, 1507, 606, 617, 1448, 1446, 1453, 1444, - 1497, 598, 1501, 600, 1495, 1455, 1493, 1492, 1444, 1434, - 1489, 1440, 1448, 1449, 1485, 1446, 1440, 1427, 1435, 1480, - 1484, 1439, 1438, 1949, 1439, 1432, 1421, 1434, 1437, 1432, - 1433, 1430, 1429, 1425, 1431, 1426, 1469, 1468, 1416, 1406, - 593, 1465, 1949, 1464, 1411, 1403, 1404, 1455, 1416, 1403, - - 1414, 1949, 1402, 1411, 1410, 1410, 1452, 1393, 1402, 1407, - 1384, 1388, 1441, 1403, 1385, 166, 272, 323, 379, 346, - 422, 448, 601, 529, 607, 517, 599, 600, 1949, 657, - 614, 616, 612, 624, 632, 617, 624, 630, 628, 642, - 647, 688, 1949, 684, 660, 647, 652, 649, 650, 647, - 645, 654, 1949, 644, 659, 656, 642, 655, 654, 652, - 671, 668, 658, 656, 655, 666, 662, 719, 676, 666, - 682, 672, 1949, 682, 682, 675, 686, 684, 729, 671, - 673, 688, 675, 735, 692, 678, 681, 1949, 1949, 691, - 696, 701, 689, 1949, 1949, 703, 690, 684, 689, 707, - - 694, 744, 695, 747, 696, 754, 1949, 699, 703, 698, - 758, 711, 701, 702, 698, 711, 722, 706, 724, 719, - 720, 722, 715, 717, 718, 719, 719, 721, 736, 777, - 734, 739, 716, 1949, 728, 729, 743, 733, 780, 738, - 728, 743, 744, 731, 745, 1949, 764, 772, 741, 736, - 791, 792, 755, 759, 800, 748, 743, 744, 756, 763, - 752, 753, 749, 758, 753, 811, 768, 769, 760, 1949, - 762, 774, 759, 776, 770, 817, 783, 767, 768, 1949, - 784, 787, 770, 829, 772, 1949, 789, 792, 772, 790, - 830, 788, 784, 779, 797, 796, 797, 783, 798, 790, - - 797, 787, 805, 790, 1949, 798, 804, 851, 1949, 800, - 805, 849, 800, 812, 806, 811, 809, 807, 809, 819, - 864, 808, 813, 809, 868, 812, 824, 1949, 812, 820, - 818, 815, 816, 825, 837, 821, 826, 836, 837, 842, - 883, 840, 856, 862, 843, 841, 837, 832, 892, 835, - 1949, 835, 855, 854, 845, 834, 851, 858, 901, 902, - 849, 1949, 899, 846, 849, 848, 868, 865, 870, 871, - 857, 866, 876, 856, 871, 878, 920, 1949, 921, 922, - 873, 883, 885, 874, 870, 877, 886, 931, 878, 876, - 878, 895, 936, 886, 885, 891, 889, 887, 942, 943, - - 939, 1949, 901, 894, 885, 904, 892, 902, 899, 904, - 900, 913, 913, 1949, 897, 899, 899, 1949, 900, 960, - 899, 918, 919, 964, 965, 919, 904, 925, 924, 908, - 913, 931, 1949, 921, 954, 945, 977, 917, 939, 936, - 1949, 923, 925, 942, 937, 941, 986, 934, 938, 1949, - 1949, 948, 948, 986, 933, 988, 935, 995, 938, 949, - 942, 948, 944, 962, 963, 965, 1949, 1949, 964, 1949, - 949, 950, 969, 959, 952, 964, 1008, 972, 1949, 964, - 1016, 957, 1018, 1949, 1019, 961, 967, 974, 1018, 1949, - 1949, 966, 968, 982, 987, 970, 1029, 986, 987, 988, - - 1028, 980, 985, 1036, 989, 985, 1039, 1949, 986, 1041, - 1042, 1949, 1949, 982, 1044, 1003, 1046, 988, 1000, 1005, - 991, 1021, 1052, 1949, 1009, 1002, 1011, 1056, 1003, 1018, - 1054, 1006, 1949, 1002, 1018, 1023, 1010, 1006, 1066, 1019, - 1024, 1949, 1025, 1018, 1027, 1028, 1025, 1015, 1018, 1018, - 1023, 1078, 1080, 1023, 1082, 1078, 1019, 1034, 1028, 1088, - 1949, 1041, 1949, 1949, 1046, 1038, 1048, 1034, 1035, 1096, - 1040, 1050, 1099, 1949, 1048, 1048, 1050, 1052, 1105, 1046, - 1049, 1949, 1050, 1069, 1949, 1053, 1949, 1949, 1067, 1949, - 1061, 1949, 1113, 1062, 1115, 1116, 1096, 1949, 1118, 1075, - - 1116, 1949, 1064, 1072, 1066, 1063, 1066, 1069, 1069, 1070, - 1077, 1067, 1949, 1089, 1075, 1076, 1091, 1091, 1094, 1094, - 1091, 1136, 1098, 1090, 1949, 1949, 1100, 1949, 1097, 1102, - 1103, 1100, 1144, 1949, 1093, 1094, 1094, 1100, 1099, 1110, - 1949, 1151, 1098, 1949, 1099, 1099, 1101, 1107, 1949, 1109, - 1163, 1105, 1113, 1116, 1167, 1128, 1949, 1125, 1949, 1122, - 1949, 1145, 1949, 1172, 1114, 1174, 1175, 1132, 1137, 1119, - 1179, 1180, 1133, 1123, 1128, 1184, 1185, 1181, 1144, 1140, - 1184, 1132, 1137, 1135, 1194, 1150, 1196, 1154, 1199, 1160, - 1149, 1143, 1159, 1159, 1205, 1147, 1164, 1163, 1147, 1205, - - 1206, 1153, 1208, 1171, 1172, 1949, 1172, 1173, 1160, 1949, - 1171, 1220, 1178, 1191, 1949, 1175, 1949, 1949, 1166, 1177, - 1226, 1949, 1949, 1173, 1171, 1185, 1949, 1949, 1175, 1226, - 1169, 1174, 1234, 1182, 1192, 1193, 1949, 1238, 1191, 1949, - 1240, 1949, 1183, 1198, 1186, 1201, 1205, 1949, 1241, 1207, - 1200, 1209, 1192, 1200, 1254, 1213, 1212, 1257, 1205, 1259, - 1260, 1209, 1949, 1262, 1263, 1212, 1265, 1207, 1949, 1214, - 1214, 1269, 1213, 1212, 1272, 1225, 1949, 1269, 1220, 1217, - 1949, 1231, 1949, 1234, 1279, 1232, 1281, 1240, 1223, 1225, - 1222, 1238, 1239, 1248, 1949, 1238, 1290, 1949, 1249, 1949, - - 1949, 1287, 1949, 1949, 1249, 1949, 1289, 1290, 1245, 1949, - 1243, 1250, 1949, 1247, 1252, 1250, 1302, 1303, 1246, 1949, - 1261, 1949, 1262, 1252, 1264, 1309, 1251, 1259, 1260, 1273, - 1949, 1250, 1273, 1258, 1258, 1263, 1319, 1278, 1269, 1278, - 1280, 1284, 1949, 1949, 1325, 1268, 1327, 1285, 1329, 1949, - 1325, 1287, 1288, 1275, 1334, 1271, 1336, 1289, 1294, 1949, - 1295, 1296, 1341, 1298, 1301, 1949, 1344, 1949, 1305, 1949, - 1287, 1347, 1348, 1291, 1949, 1308, 1949, 1299, 1295, 1295, - 1297, 1949, 1302, 1312, 1949, 1298, 1310, 1949, 1949, 1315, - 1309, 1317, 1314, 1305, 1359, 1306, 1314, 1323, 1316, 1311, - - 1326, 1371, 1318, 1325, 1312, 1327, 1332, 1377, 1334, 1379, - 1322, 1949, 1338, 1329, 1343, 1339, 1332, 1949, 1386, 1949, - 1387, 1388, 1343, 1342, 1343, 1333, 1949, 1949, 1949, 1393, - 1335, 1351, 1396, 1949, 1392, 1341, 1949, 1340, 1342, 1353, - 1402, 1351, 1949, 1360, 1405, 1949, 1949, 1411, 1416, 1421, - 1426, 1431, 1436, 1441, 1444, 1418, 1423, 1425, 1438 + 1980, 1981, 34, 1976, 145, 0, 207, 1981, 214, 221, + 13, 228, 1981, 1956, 118, 25, 2, 6, 1981, 1981, + 73, 11, 17, 1981, 1981, 1981, 104, 1964, 1917, 0, + 1954, 108, 1971, 24, 262, 1981, 1913, 67, 1912, 1918, + 84, 75, 1910, 88, 226, 91, 89, 290, 196, 1909, + 206, 285, 206, 210, 219, 60, 223, 1918, 247, 290, + 315, 303, 231, 1901, 297, 321, 343, 324, 1920, 0, + 380, 387, 401, 408, 424, 1981, 0, 1981, 429, 438, + 216, 249, 220, 315, 335, 266, 1981, 1917, 1958, 1981, + + 342, 1981, 421, 1945, 312, 1903, 1913, 400, 10, 1908, + 361, 323, 370, 387, 359, 1953, 0, 474, 392, 1895, + 1892, 1896, 1898, 1891, 1899, 412, 1895, 1884, 1885, 78, + 1901, 1884, 1893, 1893, 95, 1884, 400, 1885, 1883, 405, + 1931, 1935, 1875, 1928, 1868, 1891, 1888, 1888, 1882, 310, + 1875, 1873, 1867, 1872, 1866, 436, 1877, 1870, 1861, 1860, + 1874, 186, 1860, 413, 1876, 1853, 470, 318, 400, 1874, + 1871, 1872, 1870, 1905, 1904, 445, 1850, 1852, 448, 1844, + 1861, 1853, 0, 447, 447, 458, 471, 462, 483, 1852, + 1981, 0, 1897, 490, 1842, 1845, 476, 482, 1853, 488, + + 1898, 499, 1897, 496, 1896, 1981, 542, 1895, 507, 1854, + 1846, 1833, 1849, 1848, 1845, 1844, 1835, 486, 1886, 1880, + 1844, 1823, 1831, 1826, 1840, 1836, 1824, 1836, 1836, 1827, + 1811, 1815, 1828, 1830, 1827, 1819, 1809, 1827, 1981, 1822, + 1825, 1806, 1805, 1857, 1804, 1814, 1817, 531, 1813, 1852, + 1800, 1811, 1849, 1794, 1852, 1787, 1802, 533, 1792, 1808, + 1789, 1788, 1794, 1785, 1784, 1791, 1841, 1797, 1796, 1790, + 486, 1797, 1792, 1784, 1774, 1789, 1788, 1783, 1787, 485, + 1785, 1771, 1777, 1784, 1772, 1769, 1768, 565, 1763, 1777, + 1820, 1779, 484, 1770, 527, 1981, 1981, 534, 1981, 1981, + + 1757, 0, 241, 531, 1759, 556, 535, 1815, 1766, 540, + 1981, 1813, 1981, 1807, 590, 1981, 540, 1747, 1756, 1804, + 1748, 1747, 1753, 1805, 1760, 1755, 1758, 1753, 533, 1981, + 1755, 1799, 1752, 1749, 608, 1755, 1795, 1789, 1742, 1737, + 1734, 1785, 1742, 1731, 1747, 1781, 1727, 591, 1741, 1726, + 1739, 1726, 1736, 1731, 1738, 1733, 1729, 559, 1727, 1730, + 1725, 1711, 1720, 1770, 548, 1764, 1981, 1763, 1713, 1712, + 1711, 1704, 1706, 1710, 1699, 1712, 580, 1759, 1712, 1709, + 1981, 1712, 1701, 1701, 1713, 370, 1688, 1689, 1710, 533, + 1692, 1743, 1688, 1702, 1705, 1700, 1686, 1698, 1697, 1696, + + 1695, 1694, 1693, 564, 1736, 1735, 1981, 1677, 1676, 618, + 1689, 1981, 1981, 1688, 0, 1677, 1669, 564, 1674, 1727, + 1726, 1682, 1724, 1981, 1670, 1722, 1981, 598, 646, 611, + 1721, 1663, 1674, 1667, 1669, 1657, 1981, 1662, 1668, 1671, + 1654, 1669, 1656, 1655, 1981, 1657, 1654, 584, 1652, 1654, + 1981, 1662, 1659, 1644, 1657, 1652, 643, 1659, 1647, 1640, + 1691, 1981, 1638, 1654, 1688, 1649, 1646, 1647, 1649, 1683, + 1634, 1629, 1628, 1679, 1623, 1638, 1641, 1615, 1622, 1627, + 1637, 1676, 1981, 1621, 1617, 1615, 1624, 1618, 1625, 1609, + 1609, 1619, 1622, 1611, 1606, 1981, 1663, 1981, 1605, 1616, + + 1601, 1606, 1615, 1609, 1603, 1612, 1654, 1648, 1610, 1593, + 1593, 1588, 1608, 1583, 1589, 1594, 1587, 1595, 1599, 1582, + 1640, 1580, 1581, 1580, 1592, 1581, 1981, 1981, 1581, 1579, + 1981, 1590, 1626, 1586, 0, 1570, 1587, 1627, 1575, 1981, + 1981, 1572, 1981, 1578, 1981, 598, 616, 670, 1981, 1575, + 1574, 1581, 1561, 1614, 1559, 1612, 1557, 1556, 1555, 1562, + 1555, 1567, 1566, 1566, 1548, 1553, 1594, 1561, 1553, 1598, + 1542, 1558, 1557, 1981, 1542, 1539, 1597, 1552, 1544, 1550, + 1541, 1549, 1534, 1550, 1532, 1546, 341, 1528, 1522, 1527, + 1542, 1539, 1540, 1530, 1536, 1579, 1534, 1526, 1981, 1519, + + 1521, 1530, 1528, 1567, 1566, 1517, 16, 1526, 1509, 1510, + 1507, 1981, 1521, 1500, 1519, 1511, 1556, 1508, 1515, 1553, + 1981, 1498, 1512, 1496, 1510, 1513, 1494, 1546, 1545, 1544, + 1543, 1488, 1541, 1540, 1981, 328, 1502, 1501, 1498, 1498, + 1496, 1479, 1484, 1486, 1981, 1492, 1482, 1981, 1529, 1475, + 1532, 615, 584, 1473, 1471, 1478, 1469, 1522, 629, 1526, + 594, 1520, 1480, 1518, 1517, 1469, 1459, 1514, 1465, 1473, + 1474, 1510, 1471, 1465, 1452, 1460, 1505, 1509, 1464, 1463, + 1981, 1464, 1457, 1446, 1459, 1462, 1457, 1458, 1455, 1454, + 1450, 1456, 1451, 1494, 1493, 1441, 1431, 596, 1442, 1489, + + 1981, 1488, 1439, 1434, 1426, 1427, 1478, 1439, 1426, 1437, + 1981, 1425, 1434, 1433, 1433, 2, 156, 229, 363, 424, + 431, 537, 515, 499, 524, 601, 616, 624, 600, 655, + 619, 624, 620, 637, 612, 625, 640, 1981, 680, 637, + 638, 628, 650, 652, 638, 645, 652, 644, 658, 663, + 704, 1981, 700, 676, 663, 668, 665, 666, 663, 661, + 670, 1981, 660, 675, 672, 658, 665, 664, 662, 681, + 678, 668, 666, 665, 676, 672, 728, 685, 675, 691, + 681, 1981, 691, 692, 685, 696, 694, 739, 681, 683, + 698, 685, 745, 702, 688, 691, 1981, 1981, 701, 706, + + 711, 699, 710, 1981, 1981, 711, 715, 702, 696, 701, + 719, 706, 756, 707, 759, 708, 766, 1981, 711, 715, + 710, 770, 723, 713, 714, 710, 723, 734, 718, 736, + 731, 732, 734, 727, 729, 730, 731, 731, 733, 748, + 789, 746, 751, 728, 1981, 740, 741, 755, 745, 792, + 750, 740, 755, 756, 743, 757, 1981, 776, 784, 753, + 748, 803, 804, 767, 771, 812, 760, 755, 756, 768, + 775, 764, 765, 761, 770, 765, 823, 780, 781, 772, + 1981, 774, 786, 771, 788, 782, 829, 795, 779, 780, + 1981, 796, 799, 782, 841, 784, 1981, 801, 804, 784, + + 802, 842, 800, 796, 845, 846, 793, 811, 810, 811, + 797, 812, 804, 811, 801, 819, 804, 1981, 812, 818, + 865, 1981, 814, 819, 863, 814, 826, 820, 825, 823, + 821, 823, 833, 878, 822, 827, 823, 882, 826, 838, + 1981, 826, 834, 832, 829, 830, 839, 851, 835, 840, + 850, 851, 856, 897, 854, 871, 876, 858, 855, 851, + 846, 906, 849, 1981, 849, 869, 868, 859, 848, 865, + 872, 915, 916, 863, 1981, 913, 860, 863, 862, 882, + 879, 884, 885, 871, 879, 890, 870, 885, 892, 934, + 1981, 935, 936, 887, 897, 899, 888, 884, 891, 900, + + 894, 895, 947, 894, 892, 894, 911, 952, 902, 901, + 907, 905, 903, 958, 959, 955, 1981, 917, 910, 901, + 920, 908, 918, 915, 920, 916, 929, 929, 1981, 913, + 915, 915, 1981, 916, 976, 915, 934, 935, 981, 982, + 935, 920, 941, 940, 924, 929, 947, 1981, 937, 970, + 961, 993, 933, 955, 952, 1981, 939, 941, 958, 953, + 957, 1002, 950, 954, 1981, 1981, 964, 964, 1002, 949, + 1004, 951, 1011, 954, 965, 958, 964, 960, 978, 979, + 981, 1981, 1981, 980, 1981, 965, 966, 985, 975, 968, + 980, 1024, 988, 983, 984, 1981, 982, 1034, 975, 1036, + + 1981, 1037, 979, 985, 992, 1036, 1981, 1981, 984, 986, + 1000, 1005, 988, 1047, 1004, 1005, 1006, 1046, 998, 1003, + 1054, 1007, 1003, 1057, 1981, 1004, 1059, 1060, 1981, 1981, + 1000, 1062, 1021, 1064, 1006, 1018, 1023, 1009, 1039, 1070, + 1981, 1027, 1020, 1029, 1074, 1021, 1036, 1072, 1024, 1981, + 1020, 1036, 1041, 1028, 1024, 1084, 1037, 1042, 1981, 1043, + 1036, 1045, 1046, 1043, 1033, 1036, 1036, 1041, 1096, 1098, + 1041, 1100, 1096, 1037, 1052, 1046, 1061, 1062, 1108, 1981, + 1061, 1981, 1981, 1066, 1059, 1069, 1054, 1055, 1116, 1060, + 1071, 1120, 1981, 1068, 1068, 1070, 1072, 1125, 1066, 1069, + + 1981, 1070, 1089, 1981, 1073, 1981, 1981, 1087, 1981, 1081, + 1981, 1133, 1082, 1135, 1136, 1116, 1981, 1138, 1095, 1136, + 1981, 1084, 1092, 1086, 1083, 1086, 1089, 1089, 1090, 1097, + 1087, 1981, 1109, 1095, 1096, 1111, 1111, 1114, 1114, 1111, + 1156, 1118, 1110, 1981, 1981, 1120, 1981, 1117, 1122, 1123, + 1120, 1164, 1126, 1127, 1981, 1115, 1116, 1116, 1122, 1121, + 1132, 1981, 1173, 1120, 1981, 1121, 1121, 1123, 1129, 1981, + 1131, 1185, 1127, 1135, 1138, 1189, 1150, 1981, 1147, 1981, + 1144, 1981, 1167, 1981, 1194, 1136, 1196, 1197, 1154, 1159, + 1141, 1201, 1202, 1155, 1145, 1150, 1206, 1207, 1203, 1166, + + 1162, 1206, 1154, 1159, 1157, 1216, 1172, 1218, 1176, 1221, + 1182, 1171, 1165, 1166, 1167, 1183, 1183, 1229, 1171, 1188, + 1187, 1171, 1229, 1230, 1177, 1232, 1195, 1196, 1981, 1196, + 1197, 1184, 1981, 1195, 1244, 1202, 1216, 1981, 1198, 1981, + 1981, 1190, 1201, 1250, 1981, 1981, 1197, 1195, 1209, 1981, + 1981, 1199, 1250, 1193, 1198, 1258, 1206, 1216, 1217, 1981, + 1262, 1215, 1981, 1264, 1981, 1207, 1222, 1210, 1220, 1221, + 1227, 1231, 1981, 1267, 1233, 1228, 1237, 1219, 1226, 1280, + 1239, 1238, 1283, 1231, 1285, 1286, 1235, 1981, 1288, 1289, + 1238, 1291, 1233, 1981, 1240, 1240, 1295, 1239, 1238, 1298, + + 1251, 1981, 1295, 1246, 1243, 1981, 1257, 1981, 1260, 1305, + 1258, 1255, 1256, 1309, 1268, 1251, 1253, 1250, 1266, 1267, + 1276, 1981, 1266, 1318, 1981, 1277, 1981, 1981, 1315, 1981, + 1981, 1277, 1981, 1317, 1318, 1273, 1981, 1271, 1278, 1981, + 1275, 1280, 1278, 1330, 1331, 1274, 1981, 1289, 1290, 1291, + 1981, 1292, 1282, 1294, 1339, 1281, 1289, 1290, 1303, 1981, + 1280, 1303, 1288, 1288, 1293, 1349, 1308, 1299, 1308, 1310, + 1314, 1981, 1981, 1355, 1298, 1357, 1358, 1359, 1317, 1361, + 1981, 1357, 1319, 1320, 1307, 1366, 1303, 1368, 1321, 1326, + 1981, 1327, 1328, 1373, 1330, 1333, 1981, 1376, 1981, 1981, + + 1981, 1337, 1981, 1319, 1379, 1380, 1323, 1981, 1340, 1981, + 1331, 1327, 1327, 1329, 1981, 1334, 1344, 1981, 1330, 1342, + 1981, 1981, 1347, 1341, 1349, 1346, 1337, 1391, 1338, 1346, + 1355, 1348, 1343, 1358, 1403, 1350, 1357, 1344, 1359, 1364, + 1409, 1366, 1411, 1354, 1981, 1370, 1361, 1375, 1371, 1364, + 1981, 1418, 1981, 1419, 1420, 1375, 1374, 1375, 1365, 1981, + 1981, 1981, 1425, 1367, 1383, 1428, 1981, 1424, 1373, 1981, + 1372, 1374, 1385, 1434, 1383, 1981, 1392, 1437, 1981, 1981, + 1443, 1448, 1453, 1458, 1463, 1468, 1473, 1476, 1450, 1455, + 1457, 1470 + } ; -static const flex_int16_t yy_def[1560] = +static const flex_int16_t yy_def[1593] = { 0, - 1548, 1548, 1549, 1549, 1548, 1548, 1548, 1548, 1548, 1548, - 1547, 1547, 1547, 1547, 1547, 1550, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1551, - 1547, 1547, 1547, 1552, 15, 1547, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1553, 45, 45, + 1581, 1581, 1582, 1582, 1581, 1581, 1581, 1581, 1581, 1581, + 1580, 1580, 1580, 1580, 1580, 1583, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1584, + 1580, 1580, 1580, 1585, 15, 1580, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1586, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1550, - 1547, 1547, 1547, 1547, 1547, 1547, 1554, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1551, 1547, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1583, + 1580, 1580, 1580, 1580, 1580, 1580, 1587, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1584, 1580, - 1552, 1547, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1555, 45, 1553, 45, 45, + 1585, 1580, 1580, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1588, 45, 1586, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1554, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1556, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1587, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1589, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1555, 1547, 1553, 45, 45, 45, 45, + 45, 45, 45, 45, 1588, 1580, 1586, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1557, + 45, 45, 45, 45, 1580, 1580, 1580, 1580, 1580, 1580, - 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, - 1547, 45, 1553, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, + 1580, 1590, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 1580, 45, 1586, 1580, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 1547, 1547, - 1547, 1558, 45, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 45, 1547, 45, 1553, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 1547, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, + 45, 1580, 1580, 1580, 1591, 45, 45, 45, 45, 45, + 45, 45, 45, 1580, 45, 45, 1580, 45, 1586, 45, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 1547, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1580, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 1547, 45, 45, 1547, 45, 45, 1547, 1559, - 45, 45, 45, 45, 1547, 1547, 45, 1547, 45, 1547, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 1580, 45, 45, + 1580, 45, 45, 1580, 1592, 45, 45, 45, 45, 1580, + 1580, 45, 1580, 45, 1580, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, - 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 1547, 45, - 45, 45, 45, 1547, 1547, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 1580, 45, 45, - 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, + 45, 45, 45, 1580, 1580, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1547, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1547, - 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 1580, 45, 45, 45, - 45, 45, 45, 45, 1547, 45, 45, 45, 1547, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 1547, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1547, 1547, 45, 1547, - 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 1547, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, - 45, 1547, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, + 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, + 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 1547, 1547, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 1547, 45, 1547, 1547, 45, 1547, - 45, 1547, 45, 45, 45, 45, 45, 1547, 45, 45, - - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1547, 1547, 45, 1547, 45, 45, - 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, - 1547, 45, 45, 1547, 45, 45, 45, 45, 1547, 45, - 45, 45, 45, 45, 45, 45, 1547, 45, 1547, 45, - 1547, 45, 1547, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 1580, 45, 1580, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, + + 1580, 45, 45, 45, 45, 45, 1580, 1580, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 1580, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 1580, + 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1580, + 45, 1580, 1580, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, + + 1580, 45, 45, 1580, 45, 1580, 1580, 45, 1580, 45, + 1580, 45, 45, 45, 45, 45, 1580, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1580, 1580, 45, 1580, 45, 45, 45, + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 1580, 45, 45, 45, 45, 1580, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 1580, + 45, 1580, 45, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1547, 45, 45, 45, 1547, - 45, 45, 45, 45, 1547, 45, 1547, 1547, 45, 45, - 45, 1547, 1547, 45, 45, 45, 1547, 1547, 45, 45, - 45, 45, 45, 45, 45, 45, 1547, 45, 45, 1547, - 45, 1547, 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 45, 45, 45, 45, 45, 1547, 45, - 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, - 1547, 45, 1547, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1547, 45, 45, 1547, 45, 1547, - - 1547, 45, 1547, 1547, 45, 1547, 45, 45, 45, 1547, - 45, 45, 1547, 45, 45, 45, 45, 45, 45, 1547, - 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, - 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1547, 1547, 45, 45, 45, 45, 45, 1547, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1547, - 45, 45, 45, 45, 45, 1547, 45, 1547, 45, 1547, - 45, 45, 45, 45, 1547, 45, 1547, 45, 45, 45, - 45, 1547, 45, 45, 1547, 45, 45, 1547, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1580, 45, + 45, 45, 1580, 45, 45, 45, 45, 1580, 45, 1580, + 1580, 45, 45, 45, 1580, 1580, 45, 45, 45, 1580, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 1580, + 45, 45, 1580, 45, 1580, 45, 45, 45, 45, 45, + 45, 45, 1580, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1580, 45, 45, + 45, 45, 45, 1580, 45, 45, 45, 45, 45, 45, + + 45, 1580, 45, 45, 45, 1580, 45, 1580, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 45, 45, 1580, 45, 1580, 1580, 45, 1580, + 1580, 45, 1580, 45, 45, 45, 1580, 45, 45, 1580, + 45, 45, 45, 45, 45, 45, 1580, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 1580, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1580, 1580, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1580, 45, 45, 45, 45, 45, 1580, 45, 1580, 1580, + 1580, 45, 1580, 45, 45, 45, 45, 1580, 45, 1580, + 45, 45, 45, 45, 1580, 45, 45, 1580, 45, 45, + 1580, 1580, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1547, 45, 45, 45, 45, 45, 1547, 45, 1547, - 45, 45, 45, 45, 45, 45, 1547, 1547, 1547, 45, - 45, 45, 45, 1547, 45, 45, 1547, 45, 45, 45, - 45, 45, 1547, 45, 45, 1547, 0, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547 + 45, 45, 45, 45, 1580, 45, 45, 45, 45, 45, + 1580, 45, 1580, 45, 45, 45, 45, 45, 45, 1580, + 1580, 1580, 45, 45, 45, 45, 1580, 45, 45, 1580, + 45, 45, 45, 45, 45, 1580, 45, 45, 1580, 0, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580 + } ; -static const flex_int16_t yy_nxt[2023] = +static const flex_int16_t yy_nxt[2055] = { 0, - 1547, 13, 14, 13, 1547, 15, 16, 1547, 17, 18, + 1580, 13, 14, 13, 1580, 15, 16, 818, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 86, 702, 37, 14, 37, 87, 25, 26, 38, 102, - 1547, 27, 37, 14, 37, 42, 28, 42, 38, 92, - 93, 29, 197, 30, 13, 14, 13, 91, 92, 25, + 86, 711, 37, 14, 37, 87, 25, 26, 38, 102, + 1580, 27, 37, 14, 37, 42, 28, 42, 38, 92, + 93, 29, 198, 30, 13, 14, 13, 91, 92, 25, 31, 93, 13, 14, 13, 13, 14, 13, 32, 40, - 703, 13, 14, 13, 33, 40, 103, 92, 93, 197, + 712, 13, 14, 13, 33, 40, 103, 92, 93, 198, 91, 34, 35, 13, 14, 13, 95, 15, 16, 96, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 91, 39, 105, 25, 26, 13, 14, 13, 27, 39, 42, 108, 42, 28, 42, 109, 42, 41, 29, 111, 30, 114, 115, 94, 140, - 41, 25, 31, 105, 221, 222, 89, 141, 89, 108, + 41, 25, 31, 105, 222, 223, 89, 141, 89, 108, 32, 90, 90, 90, 90, 90, 33, 111, 109, 114, - 227, 115, 228, 34, 35, 44, 44, 44, 45, 45, + 228, 115, 229, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 48, 45, 49, 50, 45, 51, 45, 52, 53, 54, 45, 45, 45, @@ -1293,217 +1306,220 @@ static const flex_int16_t yy_nxt[2023] = 59, 60, 61, 62, 63, 64, 65, 66, 67, 52, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 57, 45, 45, 45, 45, 45, 81, 816, + 78, 79, 57, 45, 45, 45, 45, 45, 81, 819, 82, 82, 82, 82, 82, 81, 105, 84, 84, 84, 84, 84, 108, 83, 85, 85, 85, 85, 85, 81, - 83, 84, 84, 84, 84, 84, 183, 83, 258, 259, - 112, 123, 119, 134, 83, 108, 83, 185, 120, 124, + 83, 84, 84, 84, 84, 84, 184, 83, 260, 261, + 112, 123, 119, 134, 83, 108, 83, 186, 120, 124, 113, 121, 125, 83, 135, 126, 137, 127, 138, 128, - 83, 142, 183, 112, 136, 139, 161, 83, 45, 184, - 162, 143, 817, 144, 45, 185, 45, 45, 113, 45, - 163, 45, 45, 45, 413, 117, 146, 147, 45, 45, + 83, 142, 184, 112, 136, 139, 162, 83, 45, 185, + 163, 143, 820, 144, 45, 186, 45, 45, 113, 45, + 164, 45, 45, 45, 416, 117, 146, 147, 45, 45, - 148, 45, 45, 185, 414, 184, 149, 45, 45, 45, + 148, 45, 45, 186, 417, 185, 149, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 129, 188, 45, 818, 130, 150, 45, 131, 132, 151, - 45, 111, 165, 275, 276, 183, 166, 102, 45, 114, - 133, 193, 45, 156, 45, 118, 200, 173, 174, 152, - 153, 157, 154, 158, 155, 184, 167, 112, 159, 160, - 168, 186, 178, 169, 246, 392, 406, 113, 247, 193, - 170, 171, 179, 200, 103, 203, 172, 180, 393, 819, - 175, 187, 176, 85, 85, 85, 85, 85, 81, 199, - - 82, 82, 82, 82, 82, 113, 83, 201, 203, 89, - 820, 89, 177, 83, 90, 90, 90, 90, 90, 81, - 202, 84, 84, 84, 84, 84, 101, 199, 407, 83, - 196, 193, 821, 101, 83, 201, 83, 85, 85, 85, - 85, 85, 90, 90, 90, 90, 90, 202, 207, 230, - 83, 90, 90, 90, 90, 90, 196, 83, 277, 208, - 215, 234, 278, 101, 235, 231, 279, 101, 236, 216, - 217, 101, 261, 83, 199, 262, 263, 294, 200, 101, - 266, 202, 293, 101, 295, 101, 191, 206, 206, 206, - 206, 206, 294, 472, 473, 822, 206, 206, 206, 206, - - 206, 206, 199, 294, 252, 286, 293, 295, 289, 295, - 293, 305, 302, 306, 308, 267, 268, 269, 297, 206, - 206, 206, 206, 206, 206, 310, 270, 312, 271, 302, - 272, 273, 298, 274, 296, 302, 324, 308, 409, 305, - 306, 356, 382, 367, 325, 383, 309, 409, 310, 326, - 327, 401, 315, 415, 312, 313, 313, 313, 313, 313, - 420, 409, 417, 418, 313, 313, 313, 313, 313, 313, - 410, 419, 423, 491, 445, 479, 825, 415, 439, 368, - 446, 520, 415, 420, 521, 480, 830, 313, 313, 313, - 313, 313, 313, 369, 357, 440, 533, 358, 729, 533, - - 423, 426, 426, 426, 426, 426, 427, 684, 685, 730, - 426, 426, 426, 426, 426, 426, 459, 559, 500, 505, - 526, 460, 501, 506, 533, 527, 541, 543, 542, 645, - 560, 492, 561, 426, 426, 426, 426, 426, 426, 569, - 646, 641, 744, 745, 570, 751, 647, 754, 755, 792, - 756, 752, 793, 541, 823, 542, 645, 831, 832, 826, - 827, 824, 834, 835, 833, 836, 745, 828, 646, 461, - 744, 829, 837, 838, 462, 45, 45, 45, 45, 45, - 839, 840, 841, 842, 45, 45, 45, 45, 45, 45, - 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, - - 853, 854, 855, 856, 857, 858, 859, 45, 45, 45, - 45, 45, 45, 860, 861, 862, 863, 864, 865, 866, - 867, 868, 869, 848, 870, 871, 872, 873, 874, 875, - 876, 877, 878, 879, 880, 882, 883, 884, 885, 881, - 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 900, 901, 902, 899, 903, 904, 905, - 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, - 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, - - 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 944, 967, 968, 943, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 998, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, - 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1037, 979, 1036, 1038, 1039, 1040, 1041, 1042, 1043, - - 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1035, 1062, - 1036, 1063, 1064, 1065, 1066, 1067, 1068, 1070, 1072, 1073, - 1074, 1069, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1071, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - - 1142, 1143, 1144, 1122, 1145, 1146, 1147, 1148, 1149, 1123, - 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1180, + 129, 189, 45, 738, 130, 150, 45, 131, 132, 151, + 45, 111, 166, 152, 739, 184, 167, 102, 45, 114, + 133, 194, 45, 157, 45, 118, 201, 174, 175, 153, + 154, 158, 155, 159, 156, 185, 168, 112, 160, 161, + 169, 187, 179, 170, 247, 277, 278, 113, 248, 194, + 171, 172, 180, 201, 103, 204, 173, 181, 691, 692, + 176, 188, 177, 85, 85, 85, 85, 85, 81, 200, + + 82, 82, 82, 82, 82, 113, 83, 202, 204, 89, + 821, 89, 178, 83, 90, 90, 90, 90, 90, 81, + 203, 84, 84, 84, 84, 84, 101, 200, 505, 83, + 197, 194, 506, 101, 83, 202, 83, 85, 85, 85, + 85, 85, 90, 90, 90, 90, 90, 203, 208, 231, + 83, 90, 90, 90, 90, 90, 197, 83, 279, 209, + 216, 235, 280, 101, 236, 232, 281, 101, 237, 217, + 218, 101, 263, 83, 200, 264, 265, 296, 201, 101, + 268, 203, 295, 101, 297, 101, 192, 207, 207, 207, + 207, 207, 296, 822, 409, 823, 207, 207, 207, 207, + + 207, 207, 200, 296, 254, 288, 295, 297, 291, 297, + 295, 307, 304, 308, 310, 269, 270, 271, 299, 207, + 207, 207, 207, 207, 207, 312, 272, 314, 273, 304, + 274, 275, 300, 276, 298, 304, 326, 310, 395, 307, + 308, 358, 385, 370, 327, 386, 410, 824, 312, 328, + 329, 396, 317, 412, 314, 315, 315, 315, 315, 315, + 412, 423, 825, 826, 315, 315, 315, 315, 315, 315, + 311, 418, 420, 421, 426, 404, 412, 827, 442, 371, + 418, 422, 510, 413, 423, 496, 511, 315, 315, 315, + 315, 315, 315, 372, 359, 443, 462, 360, 484, 538, + + 418, 463, 426, 429, 429, 429, 429, 429, 485, 430, + 754, 828, 429, 429, 429, 429, 429, 429, 448, 525, + 475, 476, 526, 531, 449, 477, 829, 538, 532, 546, + 652, 547, 564, 754, 830, 429, 429, 429, 429, 429, + 429, 763, 764, 497, 765, 565, 538, 566, 574, 464, + 653, 753, 801, 575, 465, 802, 546, 652, 547, 45, + 45, 45, 45, 45, 831, 832, 833, 836, 45, 45, + 45, 45, 45, 45, 548, 648, 760, 834, 653, 753, + 654, 841, 761, 842, 835, 845, 846, 847, 848, 837, + 838, 45, 45, 45, 45, 45, 45, 839, 843, 849, + + 850, 840, 851, 852, 844, 853, 854, 855, 856, 857, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 859, + 887, 888, 889, 890, 891, 893, 894, 895, 896, 892, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 907, 908, 909, 910, 911, 913, 914, 915, 912, 916, + 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, + 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, + + 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, + 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, + 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, + 977, 978, 979, 957, 980, 981, 956, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 993, 994, 995, + 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1013, 1024, 1025, + 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + + 1046, 1047, 1048, 1049, 992, 1050, 1052, 1051, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, + 1075, 1076, 1077, 1050, 1051, 1078, 1079, 1080, 1081, 1082, + 1083, 1085, 1087, 1088, 1089, 1084, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1125, 1126, 1127, 1128, 1086, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, + + 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1139, + 1162, 1163, 1164, 1165, 1166, 1140, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1199, 1200, 1201, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1223, 1224, 1225, 1197, 1226, 1227, 1228, 1229, 1230, - 1231, 1179, 1233, 1234, 1235, 1236, 1237, 1238, 1232, 1239, - - 1240, 1241, 1242, 1243, 1244, 1203, 1245, 1246, 1247, 1248, - 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1261, 1262, 1263, 1264, 1260, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, - 1279, 1280, 1281, 1282, 1283, 1262, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, - 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, - - 1339, 1340, 1341, 1314, 1342, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, - 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, - 1388, 1389, 1390, 1391, 1392, 1365, 1393, 1338, 1394, 1395, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, - - 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, - 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, - 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, - 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, - - 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, - 1546, 12, 12, 12, 12, 12, 36, 36, 36, 36, - 36, 80, 300, 80, 80, 80, 99, 412, 99, 530, - 99, 101, 101, 101, 101, 101, 116, 116, 116, 116, - 116, 182, 101, 182, 182, 182, 204, 204, 204, 815, - 814, 813, 812, 811, 810, 809, 808, 807, 806, 805, - 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, - 794, 791, 790, 789, 788, 787, 786, 785, 784, 783, - 782, 781, 780, 779, 778, 777, 776, 775, 774, 773, - 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, - - 762, 761, 760, 759, 758, 757, 753, 750, 749, 748, - 747, 746, 743, 742, 741, 740, 739, 738, 737, 736, - 735, 734, 733, 732, 731, 728, 727, 726, 725, 724, - 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, - 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, - 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, - 691, 690, 689, 688, 687, 686, 683, 682, 681, 680, - 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, - 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, - 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, - - 649, 648, 644, 643, 642, 641, 640, 639, 638, 637, - 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 621, 620, 619, 618, 617, - 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, - 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, - 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, - 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, - 576, 575, 574, 573, 572, 571, 568, 567, 566, 565, - 564, 563, 562, 558, 557, 556, 555, 554, 553, 552, - 551, 550, 549, 548, 547, 546, 545, 544, 540, 539, - - 538, 537, 536, 535, 534, 532, 531, 529, 528, 525, - 524, 523, 522, 519, 518, 517, 516, 515, 514, 513, - 512, 511, 510, 509, 508, 507, 504, 503, 502, 499, - 498, 497, 496, 495, 494, 493, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 478, 477, 476, 475, - 474, 471, 470, 469, 468, 467, 466, 465, 464, 463, - 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, - 448, 447, 444, 443, 442, 441, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 425, 424, 422, - 421, 416, 411, 408, 405, 404, 403, 402, 400, 399, - - 398, 397, 396, 395, 394, 391, 390, 389, 388, 387, - 386, 385, 384, 381, 380, 379, 378, 377, 376, 375, - 374, 373, 372, 371, 370, 366, 365, 364, 363, 362, - 361, 360, 359, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, - 328, 323, 322, 321, 320, 319, 318, 317, 316, 314, - 205, 311, 309, 307, 304, 303, 301, 299, 292, 291, - 290, 288, 287, 285, 284, 283, 282, 281, 280, 265, - 264, 260, 257, 256, 255, 254, 253, 251, 250, 249, - - 248, 245, 244, 243, 242, 241, 240, 239, 238, 237, - 233, 232, 229, 226, 225, 224, 223, 220, 219, 218, - 214, 213, 212, 211, 210, 209, 205, 198, 195, 194, - 192, 190, 189, 181, 164, 145, 122, 110, 107, 106, - 104, 43, 100, 98, 97, 88, 43, 1547, 11, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547 + 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + + 1243, 1244, 1216, 1245, 1246, 1247, 1248, 1249, 1250, 1198, + 1252, 1253, 1254, 1255, 1256, 1257, 1251, 1258, 1259, 1260, + 1261, 1262, 1263, 1222, 1264, 1265, 1266, 1267, 1268, 1269, + 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, + 1280, 1282, 1283, 1284, 1285, 1281, 1286, 1287, 1288, 1289, + 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 1303, 1304, 1283, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, + 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, + 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, + + 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, + 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, + 1359, 1360, 1362, 1363, 1364, 1337, 1365, 1366, 1367, 1368, + 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, + 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, + 1389, 1391, 1390, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1361, + 1390, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, + + 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, + 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, + 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, + 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, + 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, + 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, + 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, + 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + + 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, + 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, + 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, + 1577, 1578, 1579, 12, 12, 12, 12, 12, 36, 36, + 36, 36, 36, 80, 302, 80, 80, 80, 99, 415, + 99, 535, 99, 101, 101, 101, 101, 101, 116, 116, + 116, 116, 116, 183, 101, 183, 183, 183, 205, 205, + 205, 817, 816, 815, 814, 813, 812, 811, 810, 809, + 808, 807, 806, 805, 804, 803, 800, 799, 798, 797, + + 796, 795, 794, 793, 792, 791, 790, 789, 788, 787, + 786, 785, 784, 783, 782, 781, 780, 779, 778, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 762, 759, 758, 757, 756, 755, 752, 751, 750, + 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, + 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, + 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, + 717, 716, 715, 714, 713, 710, 709, 708, 707, 706, + 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, + 695, 694, 693, 690, 689, 688, 687, 686, 685, 684, + + 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, + 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, + 663, 662, 661, 660, 659, 658, 657, 656, 655, 651, + 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, + 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, + 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, + 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, + 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, + 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, + 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, + + 580, 579, 578, 577, 576, 573, 572, 571, 570, 569, + 568, 567, 563, 562, 561, 560, 559, 558, 557, 556, + 555, 554, 553, 552, 551, 550, 549, 545, 544, 543, + 542, 541, 540, 539, 537, 536, 534, 533, 530, 529, + 528, 527, 524, 523, 522, 521, 520, 519, 518, 517, + 516, 515, 514, 513, 512, 509, 508, 507, 504, 503, + 502, 501, 500, 499, 498, 495, 494, 493, 492, 491, + 490, 489, 488, 487, 486, 483, 482, 481, 480, 479, + 478, 474, 473, 472, 471, 470, 469, 468, 467, 466, + 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, + + 451, 450, 447, 446, 445, 444, 441, 440, 439, 438, + 437, 436, 435, 434, 433, 432, 431, 428, 427, 425, + 424, 419, 414, 411, 408, 407, 406, 405, 403, 402, + 401, 400, 399, 398, 397, 394, 393, 392, 391, 390, + 389, 388, 387, 384, 383, 382, 381, 380, 379, 378, + 377, 376, 375, 374, 373, 369, 368, 367, 366, 365, + 364, 363, 362, 361, 357, 356, 355, 354, 353, 352, + 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, + 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, + 331, 330, 325, 324, 323, 322, 321, 320, 319, 318, + + 316, 206, 313, 311, 309, 306, 305, 303, 301, 294, + 293, 292, 290, 289, 287, 286, 285, 284, 283, 282, + 267, 266, 262, 259, 258, 257, 256, 255, 253, 252, + 251, 250, 249, 246, 245, 244, 243, 242, 241, 240, + 239, 238, 234, 233, 230, 227, 226, 225, 224, 221, + 220, 219, 215, 214, 213, 212, 211, 210, 206, 199, + 196, 195, 193, 191, 190, 182, 165, 145, 122, 110, + 107, 106, 104, 43, 100, 98, 97, 88, 43, 1580, + 11, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580 } ; -static const flex_int16_t yy_chk[2023] = +static const flex_int16_t yy_chk[2055] = { 0, - 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 716, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 600, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 607, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 109, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 600, 8, 8, 8, 1, 8, 44, 27, 28, 109, + 607, 8, 8, 8, 1, 8, 44, 27, 28, 109, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 48, 2, 2, @@ -1520,206 +1536,209 @@ static const flex_int16_t yy_chk[2023] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 716, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 717, 17, 17, 17, 17, 17, 19, 59, 19, 19, 19, 19, 19, 64, 17, 20, 20, 20, 20, 20, 22, - 19, 22, 22, 22, 22, 22, 91, 20, 161, 161, + 19, 22, 22, 22, 22, 22, 91, 20, 162, 162, 55, 61, 59, 63, 22, 64, 17, 93, 59, 61, 55, 59, 61, 19, 63, 61, 64, 61, 65, 61, 20, 67, 91, 55, 63, 65, 73, 22, 45, 92, - 73, 67, 717, 67, 45, 93, 45, 45, 55, 45, - 73, 45, 45, 45, 301, 58, 69, 69, 45, 45, + 73, 67, 718, 67, 45, 93, 45, 45, 55, 45, + 73, 45, 45, 45, 303, 58, 69, 69, 45, 45, - 69, 45, 58, 96, 301, 92, 69, 45, 45, 45, + 69, 45, 58, 96, 303, 92, 69, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 62, 96, 58, 718, 62, 70, 58, 62, 62, 70, - 58, 71, 75, 167, 167, 94, 75, 101, 58, 78, + 62, 96, 58, 636, 62, 70, 58, 62, 62, 70, + 58, 71, 75, 70, 636, 94, 75, 101, 58, 78, 62, 105, 58, 72, 58, 58, 112, 77, 77, 70, 71, 72, 71, 72, 71, 95, 76, 77, 72, 72, - 76, 94, 78, 76, 150, 278, 291, 77, 150, 105, - 76, 76, 78, 112, 101, 115, 76, 78, 278, 719, + 76, 94, 78, 76, 150, 168, 168, 77, 150, 105, + 76, 76, 78, 112, 101, 115, 76, 78, 587, 587, 77, 95, 77, 81, 81, 81, 81, 81, 82, 111, 82, 82, 82, 82, 82, 77, 81, 113, 115, 83, - 720, 83, 77, 82, 83, 83, 83, 83, 83, 84, - 114, 84, 84, 84, 84, 84, 103, 111, 291, 81, - 108, 119, 721, 103, 84, 113, 82, 85, 85, 85, + 719, 83, 77, 82, 83, 83, 83, 83, 83, 84, + 114, 84, 84, 84, 84, 84, 103, 111, 386, 81, + 108, 119, 386, 103, 84, 113, 82, 85, 85, 85, 85, 85, 89, 89, 89, 89, 89, 114, 119, 137, - 85, 90, 90, 90, 90, 90, 108, 84, 168, 119, - 126, 140, 168, 103, 140, 137, 168, 103, 140, 126, - 126, 103, 163, 85, 155, 163, 163, 184, 175, 103, - 166, 178, 183, 103, 185, 103, 103, 118, 118, 118, - 118, 118, 187, 356, 356, 722, 118, 118, 118, 118, - - 118, 118, 155, 184, 155, 175, 186, 185, 178, 188, - 183, 196, 193, 197, 199, 166, 166, 166, 187, 118, - 118, 118, 118, 118, 118, 201, 166, 203, 166, 208, - 166, 166, 188, 166, 186, 193, 217, 199, 293, 196, - 197, 247, 269, 256, 217, 269, 286, 296, 201, 217, - 217, 286, 208, 302, 203, 206, 206, 206, 206, 206, - 305, 293, 304, 304, 206, 206, 206, 206, 206, 206, - 296, 304, 308, 374, 333, 362, 724, 315, 327, 256, - 333, 401, 302, 305, 401, 362, 726, 206, 206, 206, - 206, 206, 206, 256, 247, 327, 415, 247, 629, 427, - - 308, 313, 313, 313, 313, 313, 315, 582, 582, 629, - 313, 313, 313, 313, 313, 313, 346, 445, 383, 387, - 407, 346, 383, 387, 415, 407, 425, 427, 425, 541, - 445, 374, 445, 313, 313, 313, 313, 313, 313, 454, - 542, 543, 645, 646, 454, 652, 543, 654, 654, 691, - 654, 652, 691, 425, 723, 425, 541, 727, 728, 725, - 725, 723, 730, 731, 728, 732, 646, 725, 542, 346, - 645, 725, 733, 734, 346, 426, 426, 426, 426, 426, - 735, 736, 737, 738, 426, 426, 426, 426, 426, 426, - 739, 740, 741, 742, 744, 745, 746, 747, 748, 749, - - 750, 751, 752, 754, 755, 756, 757, 426, 426, 426, - 426, 426, 426, 758, 759, 760, 761, 762, 763, 764, - 765, 766, 767, 745, 768, 769, 770, 771, 772, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 779, - 784, 785, 786, 787, 790, 791, 792, 793, 796, 797, - 798, 799, 800, 801, 802, 803, 800, 804, 805, 806, - 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, - 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, - 828, 829, 830, 831, 832, 833, 835, 836, 837, 838, - 839, 840, 841, 842, 843, 844, 845, 847, 848, 849, - - 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 871, 848, 872, 873, 847, 874, 875, 876, 877, 878, - 879, 881, 882, 883, 884, 885, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 903, 904, 906, 907, 908, 910, 911, 912, - 913, 914, 915, 903, 916, 917, 918, 919, 920, 921, - 922, 923, 924, 925, 926, 927, 929, 930, 931, 932, - 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 943, 945, 884, 944, 946, 947, 948, 949, 950, 952, - - 953, 954, 955, 956, 957, 958, 959, 960, 961, 963, - 964, 965, 966, 967, 968, 969, 970, 971, 943, 972, - 944, 973, 974, 975, 976, 977, 979, 980, 981, 982, - 983, 979, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, - 1013, 1015, 1016, 1017, 1019, 1020, 1021, 1022, 1023, 1024, - 1025, 980, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1034, - 1035, 1036, 1037, 1038, 1039, 1040, 1042, 1043, 1044, 1045, - 1046, 1047, 1048, 1049, 1052, 1053, 1054, 1055, 1056, 1057, - - 1058, 1059, 1060, 1035, 1061, 1062, 1063, 1064, 1065, 1036, - 1066, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1080, 1081, 1082, 1083, 1085, 1086, 1087, 1088, 1089, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1109, 1110, 1111, 1114, 1115, - 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1125, 1126, - 1127, 1128, 1129, 1130, 1131, 1132, 1134, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 1143, 1144, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1122, 1153, 1154, 1155, 1156, 1157, - 1158, 1101, 1159, 1160, 1162, 1165, 1166, 1167, 1158, 1168, - - 1169, 1170, 1171, 1172, 1173, 1128, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1183, 1184, 1186, 1189, 1191, 1193, 1194, - 1195, 1196, 1197, 1199, 1200, 1195, 1201, 1203, 1204, 1205, - 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1214, 1215, 1216, - 1217, 1218, 1219, 1220, 1221, 1197, 1222, 1223, 1224, 1227, - 1229, 1230, 1231, 1232, 1233, 1235, 1236, 1237, 1238, 1239, - 1240, 1242, 1243, 1245, 1246, 1247, 1248, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1258, 1260, 1262, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1284, 1285, - - 1286, 1287, 1288, 1262, 1289, 1290, 1291, 1292, 1293, 1294, - 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, - 1305, 1307, 1308, 1309, 1311, 1312, 1313, 1314, 1316, 1319, - 1320, 1321, 1324, 1325, 1326, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1338, 1339, 1341, 1343, 1344, 1345, 1346, - 1347, 1349, 1350, 1351, 1352, 1314, 1353, 1285, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1364, 1365, 1366, - 1367, 1368, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1378, - 1379, 1380, 1382, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 1396, 1397, 1399, 1402, 1405, 1407, - - 1408, 1409, 1411, 1412, 1414, 1415, 1416, 1417, 1418, 1419, - 1421, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1432, - 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, - 1445, 1446, 1447, 1448, 1449, 1451, 1452, 1453, 1454, 1455, - 1456, 1457, 1458, 1459, 1461, 1462, 1463, 1464, 1465, 1467, - 1469, 1471, 1472, 1473, 1474, 1476, 1478, 1479, 1480, 1481, - 1483, 1484, 1486, 1487, 1490, 1491, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1508, 1509, 1510, 1511, 1513, 1514, 1515, 1516, - 1517, 1519, 1521, 1522, 1523, 1524, 1525, 1526, 1530, 1531, - - 1532, 1533, 1535, 1536, 1538, 1539, 1540, 1541, 1542, 1544, - 1545, 1548, 1548, 1548, 1548, 1548, 1549, 1549, 1549, 1549, - 1549, 1550, 1556, 1550, 1550, 1550, 1551, 1557, 1551, 1558, - 1551, 1552, 1552, 1552, 1552, 1552, 1553, 1553, 1553, 1553, - 1553, 1554, 1559, 1554, 1554, 1554, 1555, 1555, 1555, 715, - 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, - 704, 703, 701, 700, 699, 698, 697, 696, 695, 694, - 692, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 676, 675, 673, 672, 671, - 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, - - 660, 659, 658, 657, 656, 655, 653, 651, 650, 649, - 648, 647, 644, 643, 642, 640, 639, 637, 636, 635, - 634, 633, 632, 631, 630, 627, 626, 625, 624, 623, - 622, 621, 620, 619, 618, 617, 616, 615, 613, 612, - 611, 610, 609, 608, 607, 606, 604, 603, 602, 601, - 599, 598, 597, 596, 595, 594, 593, 591, 590, 589, - 588, 587, 586, 585, 584, 583, 581, 580, 579, 578, - 577, 576, 575, 574, 573, 572, 571, 570, 568, 567, - 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, - - 546, 545, 539, 537, 534, 533, 532, 531, 529, 528, - 527, 525, 524, 521, 520, 519, 518, 517, 516, 515, - 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, - 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, - 494, 492, 490, 489, 488, 487, 486, 485, 484, 483, - 482, 481, 480, 479, 477, 476, 475, 474, 473, 472, - 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, - 461, 460, 458, 457, 456, 455, 453, 452, 451, 450, - 449, 447, 446, 444, 443, 441, 440, 439, 438, 437, - 436, 435, 433, 432, 431, 430, 429, 428, 423, 422, - - 420, 419, 418, 417, 416, 414, 413, 411, 408, 406, - 405, 403, 402, 400, 399, 398, 397, 396, 395, 394, - 393, 392, 391, 390, 389, 388, 386, 385, 384, 382, - 381, 380, 379, 377, 376, 375, 373, 372, 371, 370, - 369, 368, 367, 366, 365, 363, 361, 360, 359, 358, - 357, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, - 335, 334, 332, 331, 330, 329, 326, 325, 324, 323, - 322, 321, 320, 319, 318, 317, 316, 312, 310, 307, - 306, 303, 299, 292, 290, 289, 288, 287, 285, 284, - - 283, 282, 281, 280, 279, 277, 276, 275, 274, 273, - 272, 271, 270, 268, 267, 266, 265, 264, 263, 262, - 261, 260, 259, 258, 257, 255, 254, 253, 252, 251, - 250, 249, 248, 246, 245, 244, 243, 242, 241, 240, - 239, 237, 236, 235, 234, 233, 232, 231, 230, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, - 218, 216, 215, 214, 213, 212, 211, 210, 209, 207, - 204, 202, 200, 198, 195, 194, 192, 189, 181, 180, - 179, 177, 176, 174, 173, 172, 171, 170, 169, 165, - 164, 162, 160, 159, 158, 157, 156, 154, 153, 152, - - 151, 149, 148, 147, 146, 145, 144, 143, 142, 141, - 139, 138, 136, 134, 133, 132, 131, 129, 128, 127, - 125, 124, 123, 122, 121, 120, 116, 110, 107, 106, - 104, 99, 98, 79, 74, 68, 60, 53, 50, 49, - 47, 43, 41, 39, 38, 24, 14, 11, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, - 1547, 1547 + 85, 90, 90, 90, 90, 90, 108, 84, 169, 119, + 126, 140, 169, 103, 140, 137, 169, 103, 140, 126, + 126, 103, 164, 85, 156, 164, 164, 185, 176, 103, + 167, 179, 184, 103, 186, 103, 103, 118, 118, 118, + 118, 118, 188, 720, 293, 721, 118, 118, 118, 118, + + 118, 118, 156, 185, 156, 176, 187, 186, 179, 189, + 184, 197, 194, 198, 200, 167, 167, 167, 188, 118, + 118, 118, 118, 118, 118, 202, 167, 204, 167, 209, + 167, 167, 189, 167, 187, 194, 218, 200, 280, 197, + 198, 248, 271, 258, 218, 271, 293, 722, 202, 218, + 218, 280, 209, 295, 204, 207, 207, 207, 207, 207, + 298, 307, 723, 724, 207, 207, 207, 207, 207, 207, + 288, 304, 306, 306, 310, 288, 295, 725, 329, 258, + 317, 306, 390, 298, 307, 377, 390, 207, 207, 207, + 207, 207, 207, 258, 248, 329, 348, 248, 365, 418, + + 304, 348, 310, 315, 315, 315, 315, 315, 365, 317, + 653, 726, 315, 315, 315, 315, 315, 315, 335, 404, + 358, 358, 404, 410, 335, 358, 727, 418, 410, 428, + 546, 428, 448, 653, 728, 315, 315, 315, 315, 315, + 315, 661, 661, 377, 661, 448, 430, 448, 457, 348, + 547, 652, 698, 457, 348, 698, 428, 546, 428, 429, + 429, 429, 429, 429, 729, 730, 731, 733, 429, 429, + 429, 429, 429, 429, 430, 548, 659, 732, 547, 652, + 548, 735, 659, 736, 732, 739, 740, 741, 742, 734, + 734, 429, 429, 429, 429, 429, 429, 734, 737, 743, + + 744, 734, 745, 746, 737, 747, 748, 749, 750, 751, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 763, + 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, 783, 754, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 788, + 793, 794, 795, 796, 799, 800, 801, 802, 803, 806, + 807, 808, 809, 810, 811, 812, 813, 814, 811, 815, + 816, 817, 819, 820, 821, 822, 823, 824, 825, 826, + 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, + 837, 838, 839, 840, 841, 842, 843, 844, 846, 847, + + 848, 849, 850, 851, 852, 853, 854, 855, 856, 858, + 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, + 879, 880, 882, 859, 883, 884, 858, 885, 886, 887, + 888, 889, 890, 892, 893, 894, 895, 896, 898, 899, + 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 917, 919, 920, + 921, 923, 924, 925, 926, 927, 928, 916, 929, 930, + 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, + 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, + + 952, 953, 954, 955, 895, 956, 958, 957, 959, 960, + 961, 962, 963, 965, 966, 967, 968, 969, 970, 971, + 972, 973, 974, 976, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 956, 957, 986, 987, 988, 989, 990, + 992, 993, 994, 995, 996, 992, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1030, 1031, 1032, + 1034, 1035, 1036, 1037, 1038, 993, 1039, 1040, 1041, 1042, + 1043, 1044, 1045, 1046, 1047, 1049, 1050, 1051, 1052, 1053, + + 1054, 1055, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1050, + 1076, 1077, 1078, 1079, 1080, 1051, 1081, 1084, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1097, 1098, + 1099, 1100, 1102, 1103, 1104, 1105, 1106, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, + 1122, 1123, 1124, 1126, 1127, 1128, 1131, 1132, 1133, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1142, 1143, 1144, 1145, + 1146, 1147, 1148, 1149, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + + 1168, 1169, 1139, 1170, 1171, 1172, 1173, 1174, 1175, 1118, + 1176, 1177, 1178, 1179, 1181, 1184, 1175, 1185, 1186, 1187, + 1188, 1189, 1190, 1145, 1191, 1192, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1202, 1203, 1205, 1208, 1210, 1212, 1213, + 1214, 1215, 1216, 1218, 1219, 1214, 1220, 1222, 1223, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1235, + 1236, 1237, 1238, 1239, 1240, 1216, 1241, 1242, 1243, 1246, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1256, 1257, 1258, + 1259, 1260, 1261, 1263, 1264, 1266, 1267, 1268, 1269, 1271, + 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1281, 1283, 1285, + + 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, + 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, + 1305, 1306, 1307, 1308, 1309, 1283, 1310, 1311, 1312, 1313, + 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, + 1324, 1325, 1326, 1327, 1328, 1330, 1331, 1332, 1334, 1335, + 1336, 1339, 1337, 1342, 1343, 1344, 1347, 1348, 1349, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1361, 1362, 1364, + 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1374, 1375, 1306, + 1337, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1389, 1390, 1391, 1392, 1393, 1395, 1396, + + 1397, 1398, 1399, 1400, 1401, 1403, 1404, 1405, 1407, 1409, + 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, + 1420, 1421, 1423, 1424, 1426, 1429, 1432, 1434, 1435, 1436, + 1438, 1439, 1441, 1442, 1443, 1444, 1445, 1446, 1448, 1449, + 1450, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1461, + 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, + 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1484, + 1485, 1486, 1487, 1488, 1489, 1490, 1492, 1493, 1494, 1495, + 1496, 1498, 1502, 1504, 1505, 1506, 1507, 1509, 1511, 1512, + 1513, 1514, 1516, 1517, 1519, 1520, 1523, 1524, 1525, 1526, + + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, + 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1546, 1547, + 1548, 1549, 1550, 1552, 1554, 1555, 1556, 1557, 1558, 1559, + 1563, 1564, 1565, 1566, 1568, 1569, 1571, 1572, 1573, 1574, + 1575, 1577, 1578, 1581, 1581, 1581, 1581, 1581, 1582, 1582, + 1582, 1582, 1582, 1583, 1589, 1583, 1583, 1583, 1584, 1590, + 1584, 1591, 1584, 1585, 1585, 1585, 1585, 1585, 1586, 1586, + 1586, 1586, 1586, 1587, 1592, 1587, 1587, 1587, 1588, 1588, + 1588, 715, 714, 713, 712, 710, 709, 708, 707, 706, + 705, 704, 703, 702, 700, 699, 697, 696, 695, 694, + + 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, + 683, 682, 680, 679, 678, 677, 676, 675, 674, 673, + 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, + 662, 660, 658, 657, 656, 655, 654, 651, 650, 649, + 647, 646, 644, 643, 642, 641, 640, 639, 638, 637, + 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, + 624, 623, 622, 620, 619, 618, 617, 616, 615, 614, + 613, 611, 610, 609, 608, 606, 605, 604, 603, 602, + 601, 600, 598, 597, 596, 595, 594, 593, 592, 591, + 590, 589, 588, 586, 585, 584, 583, 582, 581, 580, + + 579, 578, 577, 576, 575, 573, 572, 571, 570, 569, + 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, + 558, 557, 556, 555, 554, 553, 552, 551, 550, 544, + 542, 539, 538, 537, 536, 534, 533, 532, 530, 529, + 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, + 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, + 506, 505, 504, 503, 502, 501, 500, 499, 497, 495, + 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, + 484, 482, 481, 480, 479, 478, 477, 476, 475, 474, + 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, + + 463, 461, 460, 459, 458, 456, 455, 454, 453, 452, + 450, 449, 447, 446, 444, 443, 442, 441, 440, 439, + 438, 436, 435, 434, 433, 432, 431, 426, 425, 423, + 422, 421, 420, 419, 417, 416, 414, 411, 409, 408, + 406, 405, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 389, 388, 387, 385, 384, + 383, 382, 380, 379, 378, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 366, 364, 363, 362, 361, 360, + 359, 357, 356, 355, 354, 353, 352, 351, 350, 349, + 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, + + 337, 336, 334, 333, 332, 331, 328, 327, 326, 325, + 324, 323, 322, 321, 320, 319, 318, 314, 312, 309, + 308, 305, 301, 294, 292, 291, 290, 289, 287, 286, + 285, 284, 283, 282, 281, 279, 278, 277, 276, 275, + 274, 273, 272, 270, 269, 268, 267, 266, 265, 264, + 263, 262, 261, 260, 259, 257, 256, 255, 254, 253, + 252, 251, 250, 249, 247, 246, 245, 244, 243, 242, + 241, 240, 238, 237, 236, 235, 234, 233, 232, 231, + 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, + 220, 219, 217, 216, 215, 214, 213, 212, 211, 210, + + 208, 205, 203, 201, 199, 196, 195, 193, 190, 182, + 181, 180, 178, 177, 175, 174, 173, 172, 171, 170, + 166, 165, 163, 161, 160, 159, 158, 157, 155, 154, + 153, 152, 151, 149, 148, 147, 146, 145, 144, 143, + 142, 141, 139, 138, 136, 134, 133, 132, 131, 129, + 128, 127, 125, 124, 123, 122, 121, 120, 116, 110, + 107, 106, 104, 99, 98, 79, 74, 68, 60, 53, + 50, 49, 47, 43, 41, 39, 38, 24, 14, 11, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580 } ; static yy_state_type yy_last_accepting_state; @@ -1728,27 +1747,28 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[181] = +static const flex_int16_t yy_rule_linenum[183] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 179, 184, 191, 200, 209, 218, 227, 236, 245, 255, 264, 273, 282, 291, 300, 309, 318, 327, 336, 345, 354, 363, 375, 384, 393, 402, 411, 422, 433, 444, 455, 465, 475, 486, 497, 508, 519, 530, 541, 552, 563, - 574, 585, 596, 607, 618, 627, 636, 646, 655, 665, - 679, 695, 704, 713, 722, 731, 752, 773, 782, 792, - 801, 812, 821, 830, 839, 848, 857, 867, 876, 887, - 898, 910, 919, 929, 938, 947, 956, 965, 974, 983, - 992, 1002, 1013, 1025, 1034, 1043, 1053, 1063, 1073, 1083, - - 1093, 1103, 1112, 1122, 1131, 1140, 1149, 1158, 1168, 1178, - 1187, 1197, 1206, 1215, 1224, 1233, 1242, 1251, 1260, 1269, - 1278, 1287, 1296, 1305, 1314, 1323, 1332, 1341, 1350, 1359, - 1368, 1377, 1386, 1395, 1404, 1413, 1422, 1431, 1440, 1449, - 1459, 1469, 1479, 1489, 1499, 1509, 1519, 1529, 1539, 1549, - 1559, 1568, 1577, 1586, 1595, 1604, 1613, 1622, 1633, 1644, - 1657, 1670, 1685, 1784, 1789, 1794, 1799, 1800, 1801, 1802, - 1803, 1804, 1806, 1824, 1837, 1842, 1846, 1848, 1850, 1852 + 574, 585, 596, 607, 618, 629, 640, 649, 658, 668, + 677, 687, 701, 717, 726, 735, 744, 753, 774, 795, + 804, 814, 823, 834, 843, 852, 861, 870, 879, 889, + 898, 909, 920, 932, 941, 951, 960, 969, 978, 987, + 996, 1005, 1014, 1024, 1035, 1047, 1056, 1065, 1075, 1085, + + 1095, 1105, 1115, 1125, 1134, 1144, 1153, 1162, 1171, 1180, + 1190, 1200, 1209, 1219, 1228, 1237, 1246, 1255, 1264, 1273, + 1282, 1291, 1300, 1309, 1318, 1327, 1336, 1345, 1354, 1363, + 1372, 1381, 1390, 1399, 1408, 1417, 1426, 1435, 1444, 1453, + 1462, 1471, 1480, 1489, 1499, 1509, 1519, 1529, 1539, 1549, + 1559, 1569, 1579, 1588, 1597, 1606, 1615, 1624, 1633, 1642, + 1653, 1664, 1677, 1690, 1705, 1804, 1809, 1814, 1819, 1820, + 1821, 1822, 1823, 1824, 1826, 1844, 1857, 1862, 1866, 1868, + 1870, 1872 } ; /* The intent behind this definition is that it'll catch @@ -1801,7 +1821,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 1804 "dhcp4_lexer.cc" +#line 1824 "dhcp4_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -1827,8 +1847,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 1830 "dhcp4_lexer.cc" -#line 1831 "dhcp4_lexer.cc" +#line 1850 "dhcp4_lexer.cc" +#line 1851 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2158,7 +2178,7 @@ YY_DECL } -#line 2161 "dhcp4_lexer.cc" +#line 2181 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2187,13 +2207,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1548 ) + if ( yy_current_state >= 1581 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1547 ); + while ( yy_current_state != 1580 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2212,13 +2232,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 181 ) + else if ( yy_act < 183 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 181 ) + else if ( yy_act == 183 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 182 ) + else if ( yy_act == 184 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2858,9 +2878,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_MIN_VALID_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_); } } YY_BREAK @@ -2872,15 +2892,43 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_REBIND_TIMER(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_MAX_VALID_LIFETIME(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_); } } YY_BREAK case 55: YY_RULE_SETUP #line 618 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_); + } +} + YY_BREAK +case 56: +YY_RULE_SETUP +#line 629 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_REBIND_TIMER(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_); + } +} + YY_BREAK +case 57: +YY_RULE_SETUP +#line 640 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2890,9 +2938,9 @@ YY_RULE_SETUP } } YY_BREAK -case 56: +case 58: YY_RULE_SETUP -#line 627 "dhcp4_lexer.ll" +#line 649 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2902,9 +2950,9 @@ YY_RULE_SETUP } } YY_BREAK -case 57: +case 59: YY_RULE_SETUP -#line 636 "dhcp4_lexer.ll" +#line 658 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2915,9 +2963,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 60: YY_RULE_SETUP -#line 646 "dhcp4_lexer.ll" +#line 668 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2927,9 +2975,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 61: YY_RULE_SETUP -#line 655 "dhcp4_lexer.ll" +#line 677 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2940,9 +2988,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 62: YY_RULE_SETUP -#line 665 "dhcp4_lexer.ll" +#line 687 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -2957,9 +3005,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 63: YY_RULE_SETUP -#line 679 "dhcp4_lexer.ll" +#line 701 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -2976,9 +3024,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 64: YY_RULE_SETUP -#line 695 "dhcp4_lexer.ll" +#line 717 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -2988,9 +3036,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 65: YY_RULE_SETUP -#line 704 "dhcp4_lexer.ll" +#line 726 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3000,9 +3048,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 66: YY_RULE_SETUP -#line 713 "dhcp4_lexer.ll" +#line 735 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3012,9 +3060,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 67: YY_RULE_SETUP -#line 722 "dhcp4_lexer.ll" +#line 744 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3024,9 +3072,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 68: YY_RULE_SETUP -#line 731 "dhcp4_lexer.ll" +#line 753 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3048,9 +3096,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 69: YY_RULE_SETUP -#line 752 "dhcp4_lexer.ll" +#line 774 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3072,9 +3120,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 70: YY_RULE_SETUP -#line 773 "dhcp4_lexer.ll" +#line 795 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3084,9 +3132,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 71: YY_RULE_SETUP -#line 782 "dhcp4_lexer.ll" +#line 804 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3097,9 +3145,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 72: YY_RULE_SETUP -#line 792 "dhcp4_lexer.ll" +#line 814 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3109,9 +3157,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 73: YY_RULE_SETUP -#line 801 "dhcp4_lexer.ll" +#line 823 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3123,9 +3171,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 74: YY_RULE_SETUP -#line 812 "dhcp4_lexer.ll" +#line 834 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3135,9 +3183,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 75: YY_RULE_SETUP -#line 821 "dhcp4_lexer.ll" +#line 843 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3147,9 +3195,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 76: YY_RULE_SETUP -#line 830 "dhcp4_lexer.ll" +#line 852 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3159,9 +3207,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 77: YY_RULE_SETUP -#line 839 "dhcp4_lexer.ll" +#line 861 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3171,9 +3219,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 78: YY_RULE_SETUP -#line 848 "dhcp4_lexer.ll" +#line 870 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3183,9 +3231,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 79: YY_RULE_SETUP -#line 857 "dhcp4_lexer.ll" +#line 879 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3196,9 +3244,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 80: YY_RULE_SETUP -#line 867 "dhcp4_lexer.ll" +#line 889 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3208,9 +3256,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 81: YY_RULE_SETUP -#line 876 "dhcp4_lexer.ll" +#line 898 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3222,9 +3270,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 82: YY_RULE_SETUP -#line 887 "dhcp4_lexer.ll" +#line 909 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3236,9 +3284,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 83: YY_RULE_SETUP -#line 898 "dhcp4_lexer.ll" +#line 920 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3250,9 +3298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 84: YY_RULE_SETUP -#line 910 "dhcp4_lexer.ll" +#line 932 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -3262,9 +3310,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 85: YY_RULE_SETUP -#line 919 "dhcp4_lexer.ll" +#line 941 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3275,9 +3323,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 86: YY_RULE_SETUP -#line 929 "dhcp4_lexer.ll" +#line 951 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3287,9 +3335,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 87: YY_RULE_SETUP -#line 938 "dhcp4_lexer.ll" +#line 960 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3299,9 +3347,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 88: YY_RULE_SETUP -#line 947 "dhcp4_lexer.ll" +#line 969 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3311,9 +3359,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 89: YY_RULE_SETUP -#line 956 "dhcp4_lexer.ll" +#line 978 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3323,9 +3371,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 90: YY_RULE_SETUP -#line 965 "dhcp4_lexer.ll" +#line 987 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3335,9 +3383,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 91: YY_RULE_SETUP -#line 974 "dhcp4_lexer.ll" +#line 996 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3347,9 +3395,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 92: YY_RULE_SETUP -#line 983 "dhcp4_lexer.ll" +#line 1005 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3359,9 +3407,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 93: YY_RULE_SETUP -#line 992 "dhcp4_lexer.ll" +#line 1014 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3372,9 +3420,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 94: YY_RULE_SETUP -#line 1002 "dhcp4_lexer.ll" +#line 1024 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3386,9 +3434,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 95: YY_RULE_SETUP -#line 1013 "dhcp4_lexer.ll" +#line 1035 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3401,9 +3449,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 96: YY_RULE_SETUP -#line 1025 "dhcp4_lexer.ll" +#line 1047 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3413,9 +3461,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 97: YY_RULE_SETUP -#line 1034 "dhcp4_lexer.ll" +#line 1056 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -3425,9 +3473,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 98: YY_RULE_SETUP -#line 1043 "dhcp4_lexer.ll" +#line 1065 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3438,9 +3486,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 99: YY_RULE_SETUP -#line 1053 "dhcp4_lexer.ll" +#line 1075 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3451,9 +3499,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 100: YY_RULE_SETUP -#line 1063 "dhcp4_lexer.ll" +#line 1085 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3464,9 +3512,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 101: YY_RULE_SETUP -#line 1073 "dhcp4_lexer.ll" +#line 1095 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3477,9 +3525,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 102: YY_RULE_SETUP -#line 1083 "dhcp4_lexer.ll" +#line 1105 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3490,9 +3538,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 103: YY_RULE_SETUP -#line 1093 "dhcp4_lexer.ll" +#line 1115 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -3503,9 +3551,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 104: YY_RULE_SETUP -#line 1103 "dhcp4_lexer.ll" +#line 1125 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -3515,9 +3563,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 105: YY_RULE_SETUP -#line 1112 "dhcp4_lexer.ll" +#line 1134 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3528,9 +3576,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 106: YY_RULE_SETUP -#line 1122 "dhcp4_lexer.ll" +#line 1144 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3540,9 +3588,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 107: YY_RULE_SETUP -#line 1131 "dhcp4_lexer.ll" +#line 1153 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3552,9 +3600,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 108: YY_RULE_SETUP -#line 1140 "dhcp4_lexer.ll" +#line 1162 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3564,9 +3612,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 109: YY_RULE_SETUP -#line 1149 "dhcp4_lexer.ll" +#line 1171 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3576,9 +3624,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 110: YY_RULE_SETUP -#line 1158 "dhcp4_lexer.ll" +#line 1180 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3589,9 +3637,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 111: YY_RULE_SETUP -#line 1168 "dhcp4_lexer.ll" +#line 1190 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3602,9 +3650,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 112: YY_RULE_SETUP -#line 1178 "dhcp4_lexer.ll" +#line 1200 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -3614,9 +3662,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 113: YY_RULE_SETUP -#line 1187 "dhcp4_lexer.ll" +#line 1209 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3626,9 +3674,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 114: YY_RULE_SETUP -#line 1197 "dhcp4_lexer.ll" +#line 1219 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3638,9 +3686,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 115: YY_RULE_SETUP -#line 1206 "dhcp4_lexer.ll" +#line 1228 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -3650,9 +3698,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 116: YY_RULE_SETUP -#line 1215 "dhcp4_lexer.ll" +#line 1237 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3662,9 +3710,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 117: YY_RULE_SETUP -#line 1224 "dhcp4_lexer.ll" +#line 1246 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3674,9 +3722,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 118: YY_RULE_SETUP -#line 1233 "dhcp4_lexer.ll" +#line 1255 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3686,9 +3734,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 119: YY_RULE_SETUP -#line 1242 "dhcp4_lexer.ll" +#line 1264 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3698,9 +3746,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 120: YY_RULE_SETUP -#line 1251 "dhcp4_lexer.ll" +#line 1273 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3710,9 +3758,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 121: YY_RULE_SETUP -#line 1260 "dhcp4_lexer.ll" +#line 1282 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3722,9 +3770,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 122: YY_RULE_SETUP -#line 1269 "dhcp4_lexer.ll" +#line 1291 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -3734,9 +3782,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 123: YY_RULE_SETUP -#line 1278 "dhcp4_lexer.ll" +#line 1300 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3746,9 +3794,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 124: YY_RULE_SETUP -#line 1287 "dhcp4_lexer.ll" +#line 1309 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3758,9 +3806,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 125: YY_RULE_SETUP -#line 1296 "dhcp4_lexer.ll" +#line 1318 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -3770,9 +3818,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 126: YY_RULE_SETUP -#line 1305 "dhcp4_lexer.ll" +#line 1327 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -3782,9 +3830,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 127: YY_RULE_SETUP -#line 1314 "dhcp4_lexer.ll" +#line 1336 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3794,9 +3842,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 128: YY_RULE_SETUP -#line 1323 "dhcp4_lexer.ll" +#line 1345 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3806,9 +3854,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 129: YY_RULE_SETUP -#line 1332 "dhcp4_lexer.ll" +#line 1354 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3818,9 +3866,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 130: YY_RULE_SETUP -#line 1341 "dhcp4_lexer.ll" +#line 1363 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3830,9 +3878,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 131: YY_RULE_SETUP -#line 1350 "dhcp4_lexer.ll" +#line 1372 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3842,9 +3890,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 132: YY_RULE_SETUP -#line 1359 "dhcp4_lexer.ll" +#line 1381 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3854,9 +3902,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 133: YY_RULE_SETUP -#line 1368 "dhcp4_lexer.ll" +#line 1390 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3866,9 +3914,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 134: YY_RULE_SETUP -#line 1377 "dhcp4_lexer.ll" +#line 1399 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3878,9 +3926,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 135: YY_RULE_SETUP -#line 1386 "dhcp4_lexer.ll" +#line 1408 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3890,9 +3938,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 136: YY_RULE_SETUP -#line 1395 "dhcp4_lexer.ll" +#line 1417 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3902,9 +3950,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 137: YY_RULE_SETUP -#line 1404 "dhcp4_lexer.ll" +#line 1426 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3914,9 +3962,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 138: YY_RULE_SETUP -#line 1413 "dhcp4_lexer.ll" +#line 1435 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3926,9 +3974,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 139: YY_RULE_SETUP -#line 1422 "dhcp4_lexer.ll" +#line 1444 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3938,9 +3986,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 140: YY_RULE_SETUP -#line 1431 "dhcp4_lexer.ll" +#line 1453 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3950,9 +3998,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 141: YY_RULE_SETUP -#line 1440 "dhcp4_lexer.ll" +#line 1462 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -3962,12 +4010,11 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 142: YY_RULE_SETUP -#line 1449 "dhcp4_lexer.ll" +#line 1471 "dhcp4_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::DHCP_DDNS: return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_SET(driver.loc_); default: @@ -3975,12 +4022,11 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 143: YY_RULE_SETUP -#line 1459 "dhcp4_lexer.ll" +#line 1480 "dhcp4_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::DHCP_DDNS: return isc::dhcp::Dhcp4Parser::make_HOSTNAME_CHAR_REPLACEMENT(driver.loc_); default: @@ -3988,9 +4034,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 144: YY_RULE_SETUP -#line 1469 "dhcp4_lexer.ll" +#line 1489 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4001,9 +4047,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 143: +case 145: YY_RULE_SETUP -#line 1479 "dhcp4_lexer.ll" +#line 1499 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4014,9 +4060,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 144: +case 146: YY_RULE_SETUP -#line 1489 "dhcp4_lexer.ll" +#line 1509 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4027,9 +4073,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 145: +case 147: YY_RULE_SETUP -#line 1499 "dhcp4_lexer.ll" +#line 1519 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4040,9 +4086,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 146: +case 148: YY_RULE_SETUP -#line 1509 "dhcp4_lexer.ll" +#line 1529 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4053,9 +4099,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 147: +case 149: YY_RULE_SETUP -#line 1519 "dhcp4_lexer.ll" +#line 1539 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4066,9 +4112,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 148: +case 150: YY_RULE_SETUP -#line 1529 "dhcp4_lexer.ll" +#line 1549 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4079,9 +4125,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 149: +case 151: YY_RULE_SETUP -#line 1539 "dhcp4_lexer.ll" +#line 1559 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4092,9 +4138,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 150: +case 152: YY_RULE_SETUP -#line 1549 "dhcp4_lexer.ll" +#line 1569 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4105,9 +4151,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 151: +case 153: YY_RULE_SETUP -#line 1559 "dhcp4_lexer.ll" +#line 1579 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4117,9 +4163,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 154: YY_RULE_SETUP -#line 1568 "dhcp4_lexer.ll" +#line 1588 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4129,9 +4175,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 155: YY_RULE_SETUP -#line 1577 "dhcp4_lexer.ll" +#line 1597 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONFIG: @@ -4141,9 +4187,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 156: YY_RULE_SETUP -#line 1586 "dhcp4_lexer.ll" +#line 1606 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4153,9 +4199,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 157: YY_RULE_SETUP -#line 1595 "dhcp4_lexer.ll" +#line 1615 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4165,9 +4211,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 158: YY_RULE_SETUP -#line 1604 "dhcp4_lexer.ll" +#line 1624 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4177,9 +4223,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 159: YY_RULE_SETUP -#line 1613 "dhcp4_lexer.ll" +#line 1633 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4189,9 +4235,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 160: YY_RULE_SETUP -#line 1622 "dhcp4_lexer.ll" +#line 1642 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4203,9 +4249,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 161: YY_RULE_SETUP -#line 1633 "dhcp4_lexer.ll" +#line 1653 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4217,9 +4263,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 162: YY_RULE_SETUP -#line 1644 "dhcp4_lexer.ll" +#line 1664 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4233,9 +4279,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 163: YY_RULE_SETUP -#line 1657 "dhcp4_lexer.ll" +#line 1677 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4249,9 +4295,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 164: YY_RULE_SETUP -#line 1670 "dhcp4_lexer.ll" +#line 1690 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4265,9 +4311,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 165: YY_RULE_SETUP -#line 1685 "dhcp4_lexer.ll" +#line 1705 "dhcp4_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -4367,65 +4413,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 164: -/* rule 164 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 1784 "dhcp4_lexer.ll" +#line 1804 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 165: -/* rule 165 can match eol */ +case 167: +/* rule 167 can match eol */ YY_RULE_SETUP -#line 1789 "dhcp4_lexer.ll" +#line 1809 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 166: +case 168: YY_RULE_SETUP -#line 1794 "dhcp4_lexer.ll" +#line 1814 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 167: +case 169: YY_RULE_SETUP -#line 1799 "dhcp4_lexer.ll" +#line 1819 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 168: +case 170: YY_RULE_SETUP -#line 1800 "dhcp4_lexer.ll" +#line 1820 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 169: +case 171: YY_RULE_SETUP -#line 1801 "dhcp4_lexer.ll" +#line 1821 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 170: +case 172: YY_RULE_SETUP -#line 1802 "dhcp4_lexer.ll" +#line 1822 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 171: +case 173: YY_RULE_SETUP -#line 1803 "dhcp4_lexer.ll" +#line 1823 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 172: +case 174: YY_RULE_SETUP -#line 1804 "dhcp4_lexer.ll" +#line 1824 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 173: +case 175: YY_RULE_SETUP -#line 1806 "dhcp4_lexer.ll" +#line 1826 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4444,9 +4490,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 174: +case 176: YY_RULE_SETUP -#line 1824 "dhcp4_lexer.ll" +#line 1844 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4460,43 +4506,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 175: +case 177: YY_RULE_SETUP -#line 1837 "dhcp4_lexer.ll" +#line 1857 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 176: +case 178: YY_RULE_SETUP -#line 1842 "dhcp4_lexer.ll" +#line 1862 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 177: +case 179: YY_RULE_SETUP -#line 1846 "dhcp4_lexer.ll" +#line 1866 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 178: +case 180: YY_RULE_SETUP -#line 1848 "dhcp4_lexer.ll" +#line 1868 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 179: +case 181: YY_RULE_SETUP -#line 1850 "dhcp4_lexer.ll" +#line 1870 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 180: +case 182: YY_RULE_SETUP -#line 1852 "dhcp4_lexer.ll" +#line 1872 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1854 "dhcp4_lexer.ll" +#line 1874 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -4520,12 +4566,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 181: +case 183: YY_RULE_SETUP -#line 1877 "dhcp4_lexer.ll" +#line 1897 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 4528 "dhcp4_lexer.cc" +#line 4574 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -4844,7 +4890,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1548 ) + if ( yy_current_state >= 1581 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -4877,11 +4923,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1548 ) + if ( yy_current_state >= 1581 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1547); + yy_is_jam = (yy_current_state == 1580); return yy_is_jam ? 0 : yy_current_state; } @@ -5630,7 +5676,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 1877 "dhcp4_lexer.ll" +#line 1897 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 813e14d035..3ae6b44159 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -251,30 +251,30 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 174: // "boolean" + case 176: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 173: // "floating point" + case 175: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 172: // "integer" + case 174: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 171: // "constant string" + case 173: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -293,30 +293,30 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 174: // "boolean" + case 176: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 173: // "floating point" + case 175: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 172: // "integer" + case 174: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 171: // "constant string" + case 173: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -335,30 +335,30 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 174: // "boolean" + case 176: // "boolean" value.move< bool > (that.value); break; - case 173: // "floating point" + case 175: // "floating point" value.move< double > (that.value); break; - case 172: // "integer" + case 174: // "integer" value.move< int64_t > (that.value); break; - case 171: // "constant string" + case 173: // "constant string" value.move< std::string > (that.value); break; @@ -401,74 +401,74 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 171: // "constant string" -#line 253 "dhcp4_parser.yy" + case 173: // "constant string" +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 408 "dhcp4_parser.cc" break; - case 172: // "integer" -#line 253 "dhcp4_parser.yy" + case 174: // "integer" +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 414 "dhcp4_parser.cc" break; - case 173: // "floating point" -#line 253 "dhcp4_parser.yy" + case 175: // "floating point" +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 420 "dhcp4_parser.cc" break; - case 174: // "boolean" -#line 253 "dhcp4_parser.yy" + case 176: // "boolean" +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 426 "dhcp4_parser.cc" break; - case 191: // value -#line 253 "dhcp4_parser.yy" + case 193: // value +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 432 "dhcp4_parser.cc" break; - case 195: // map_value -#line 253 "dhcp4_parser.yy" + case 197: // map_value +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 438 "dhcp4_parser.cc" break; - case 239: // socket_type -#line 253 "dhcp4_parser.yy" + case 243: // socket_type +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 444 "dhcp4_parser.cc" break; - case 242: // outbound_interface_value -#line 253 "dhcp4_parser.yy" + case 246: // outbound_interface_value +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 450 "dhcp4_parser.cc" break; - case 264: // db_type -#line 253 "dhcp4_parser.yy" + case 268: // db_type +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 456 "dhcp4_parser.cc" break; - case 350: // hr_mode -#line 253 "dhcp4_parser.yy" + case 354: // hr_mode +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 462 "dhcp4_parser.cc" break; - case 499: // ncr_protocol_value -#line 253 "dhcp4_parser.yy" + case 503: // ncr_protocol_value +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 468 "dhcp4_parser.cc" break; - case 506: // replace_client_name_value -#line 253 "dhcp4_parser.yy" + case 510: // replace_client_name_value +#line 255 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 474 "dhcp4_parser.cc" break; @@ -687,30 +687,30 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value yylhs.value.emplace< ElementPtr > (); break; - case 174: // "boolean" + case 176: // "boolean" yylhs.value.emplace< bool > (); break; - case 173: // "floating point" + case 175: // "floating point" yylhs.value.emplace< double > (); break; - case 172: // "integer" + case 174: // "integer" yylhs.value.emplace< int64_t > (); break; - case 171: // "constant string" + case 173: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -735,133 +735,133 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 262 "dhcp4_parser.yy" +#line 264 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 741 "dhcp4_parser.cc" break; case 4: -#line 263 "dhcp4_parser.yy" +#line 265 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 747 "dhcp4_parser.cc" break; case 6: -#line 264 "dhcp4_parser.yy" +#line 266 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 753 "dhcp4_parser.cc" break; case 8: -#line 265 "dhcp4_parser.yy" +#line 267 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 759 "dhcp4_parser.cc" break; case 10: -#line 266 "dhcp4_parser.yy" +#line 268 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 765 "dhcp4_parser.cc" break; case 12: -#line 267 "dhcp4_parser.yy" +#line 269 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 771 "dhcp4_parser.cc" break; case 14: -#line 268 "dhcp4_parser.yy" +#line 270 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 777 "dhcp4_parser.cc" break; case 16: -#line 269 "dhcp4_parser.yy" +#line 271 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 783 "dhcp4_parser.cc" break; case 18: -#line 270 "dhcp4_parser.yy" +#line 272 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 789 "dhcp4_parser.cc" break; case 20: -#line 271 "dhcp4_parser.yy" +#line 273 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 795 "dhcp4_parser.cc" break; case 22: -#line 272 "dhcp4_parser.yy" +#line 274 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 801 "dhcp4_parser.cc" break; case 24: -#line 273 "dhcp4_parser.yy" +#line 275 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 807 "dhcp4_parser.cc" break; case 26: -#line 274 "dhcp4_parser.yy" +#line 276 "dhcp4_parser.yy" { ctx.ctx_ = ctx.LOGGING; } #line 813 "dhcp4_parser.cc" break; case 28: -#line 275 "dhcp4_parser.yy" +#line 277 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 819 "dhcp4_parser.cc" break; case 30: -#line 283 "dhcp4_parser.yy" +#line 285 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 825 "dhcp4_parser.cc" break; case 31: -#line 284 "dhcp4_parser.yy" +#line 286 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 831 "dhcp4_parser.cc" break; case 32: -#line 285 "dhcp4_parser.yy" +#line 287 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 837 "dhcp4_parser.cc" break; case 33: -#line 286 "dhcp4_parser.yy" +#line 288 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 843 "dhcp4_parser.cc" break; case 34: -#line 287 "dhcp4_parser.yy" +#line 289 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 849 "dhcp4_parser.cc" break; case 35: -#line 288 "dhcp4_parser.yy" +#line 290 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 855 "dhcp4_parser.cc" break; case 36: -#line 289 "dhcp4_parser.yy" +#line 291 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 861 "dhcp4_parser.cc" break; case 37: -#line 292 "dhcp4_parser.yy" +#line 294 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -870,7 +870,7 @@ namespace isc { namespace dhcp { break; case 38: -#line 297 "dhcp4_parser.yy" +#line 299 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -881,7 +881,7 @@ namespace isc { namespace dhcp { break; case 39: -#line 302 "dhcp4_parser.yy" +#line 304 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -891,13 +891,13 @@ namespace isc { namespace dhcp { break; case 40: -#line 308 "dhcp4_parser.yy" +#line 310 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 897 "dhcp4_parser.cc" break; case 43: -#line 315 "dhcp4_parser.yy" +#line 317 "dhcp4_parser.yy" { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); @@ -906,7 +906,7 @@ namespace isc { namespace dhcp { break; case 44: -#line 319 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -916,7 +916,7 @@ namespace isc { namespace dhcp { break; case 45: -#line 326 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -925,7 +925,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 329 "dhcp4_parser.yy" +#line 331 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -933,7 +933,7 @@ namespace isc { namespace dhcp { break; case 49: -#line 337 "dhcp4_parser.yy" +#line 339 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -942,7 +942,7 @@ namespace isc { namespace dhcp { break; case 50: -#line 341 "dhcp4_parser.yy" +#line 343 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -951,7 +951,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 348 "dhcp4_parser.yy" +#line 350 "dhcp4_parser.yy" { // List parsing about to start } @@ -959,7 +959,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 350 "dhcp4_parser.yy" +#line 352 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -968,7 +968,7 @@ namespace isc { namespace dhcp { break; case 55: -#line 359 "dhcp4_parser.yy" +#line 361 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -977,7 +977,7 @@ namespace isc { namespace dhcp { break; case 56: -#line 363 "dhcp4_parser.yy" +#line 365 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -986,7 +986,7 @@ namespace isc { namespace dhcp { break; case 57: -#line 374 "dhcp4_parser.yy" +#line 376 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -997,7 +997,7 @@ namespace isc { namespace dhcp { break; case 58: -#line 384 "dhcp4_parser.yy" +#line 386 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1008,7 +1008,7 @@ namespace isc { namespace dhcp { break; case 59: -#line 389 "dhcp4_parser.yy" +#line 391 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1021,7 +1021,7 @@ namespace isc { namespace dhcp { break; case 68: -#line 413 "dhcp4_parser.yy" +#line 415 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1034,7 +1034,7 @@ namespace isc { namespace dhcp { break; case 69: -#line 420 "dhcp4_parser.yy" +#line 422 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1044,7 +1044,7 @@ namespace isc { namespace dhcp { break; case 70: -#line 428 "dhcp4_parser.yy" +#line 430 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1054,7 +1054,7 @@ namespace isc { namespace dhcp { break; case 71: -#line 432 "dhcp4_parser.yy" +#line 434 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1063,7 +1063,7 @@ namespace isc { namespace dhcp { break; case 114: -#line 485 "dhcp4_parser.yy" +#line 487 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@ -1072,287 +1072,305 @@ namespace isc { namespace dhcp { break; case 115: -#line 490 "dhcp4_parser.yy" +#line 492 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("renew-timer", prf); + ctx.stack_.back()->set("min-valid-lifetime", prf); } #line 1081 "dhcp4_parser.cc" break; case 116: -#line 495 "dhcp4_parser.yy" +#line 497 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rebind-timer", prf); + ctx.stack_.back()->set("max-valid-lifetime", prf); } #line 1090 "dhcp4_parser.cc" break; case 117: -#line 500 "dhcp4_parser.yy" +#line 502 "dhcp4_parser.yy" { - ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("calculate-tee-times", ctt); + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("renew-timer", prf); } #line 1099 "dhcp4_parser.cc" break; case 118: -#line 505 "dhcp4_parser.yy" +#line 507 "dhcp4_parser.yy" { - ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t1-percent", t1); + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rebind-timer", prf); } #line 1108 "dhcp4_parser.cc" break; case 119: -#line 510 "dhcp4_parser.yy" +#line 512 "dhcp4_parser.yy" { - ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("t2-percent", t2); + ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("calculate-tee-times", ctt); } #line 1117 "dhcp4_parser.cc" break; case 120: -#line 515 "dhcp4_parser.yy" +#line 517 "dhcp4_parser.yy" { - ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("decline-probation-period", dpp); + ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t1-percent", t1); } #line 1126 "dhcp4_parser.cc" break; case 121: -#line 520 "dhcp4_parser.yy" +#line 522 "dhcp4_parser.yy" { - ctx.enter(ctx.NO_KEYWORD); + ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t2-percent", t2); } -#line 1134 "dhcp4_parser.cc" +#line 1135 "dhcp4_parser.cc" break; case 122: -#line 522 "dhcp4_parser.yy" +#line 527 "dhcp4_parser.yy" + { + ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("decline-probation-period", dpp); +} +#line 1144 "dhcp4_parser.cc" + break; + + case 123: +#line 532 "dhcp4_parser.yy" + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1152 "dhcp4_parser.cc" + break; + + case 124: +#line 534 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1144 "dhcp4_parser.cc" +#line 1162 "dhcp4_parser.cc" break; - case 123: -#line 528 "dhcp4_parser.yy" + case 125: +#line 540 "dhcp4_parser.yy" { ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); } -#line 1153 "dhcp4_parser.cc" +#line 1171 "dhcp4_parser.cc" break; - case 124: -#line 533 "dhcp4_parser.yy" + case 126: +#line 545 "dhcp4_parser.yy" { ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); } -#line 1162 "dhcp4_parser.cc" +#line 1180 "dhcp4_parser.cc" break; - case 125: -#line 538 "dhcp4_parser.yy" + case 127: +#line 550 "dhcp4_parser.yy" { ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("authoritative", prf); } -#line 1171 "dhcp4_parser.cc" +#line 1189 "dhcp4_parser.cc" break; - case 126: -#line 544 "dhcp4_parser.yy" + case 128: +#line 556 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1182 "dhcp4_parser.cc" +#line 1200 "dhcp4_parser.cc" break; - case 127: -#line 549 "dhcp4_parser.yy" + case 129: +#line 561 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1192 "dhcp4_parser.cc" +#line 1210 "dhcp4_parser.cc" break; - case 137: -#line 568 "dhcp4_parser.yy" + case 139: +#line 580 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1202 "dhcp4_parser.cc" +#line 1220 "dhcp4_parser.cc" break; - case 138: -#line 572 "dhcp4_parser.yy" + case 140: +#line 584 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1211 "dhcp4_parser.cc" +#line 1229 "dhcp4_parser.cc" break; - case 139: -#line 577 "dhcp4_parser.yy" + case 141: +#line 589 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1222 "dhcp4_parser.cc" +#line 1240 "dhcp4_parser.cc" break; - case 140: -#line 582 "dhcp4_parser.yy" + case 142: +#line 594 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1231 "dhcp4_parser.cc" +#line 1249 "dhcp4_parser.cc" break; - case 141: -#line 587 "dhcp4_parser.yy" + case 143: +#line 599 "dhcp4_parser.yy" { ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1239 "dhcp4_parser.cc" +#line 1257 "dhcp4_parser.cc" break; - case 142: -#line 589 "dhcp4_parser.yy" + case 144: +#line 601 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1248 "dhcp4_parser.cc" +#line 1266 "dhcp4_parser.cc" break; - case 143: -#line 594 "dhcp4_parser.yy" + case 145: +#line 606 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } -#line 1254 "dhcp4_parser.cc" +#line 1272 "dhcp4_parser.cc" break; - case 144: -#line 595 "dhcp4_parser.yy" + case 146: +#line 607 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } -#line 1260 "dhcp4_parser.cc" +#line 1278 "dhcp4_parser.cc" break; - case 145: -#line 598 "dhcp4_parser.yy" + case 147: +#line 610 "dhcp4_parser.yy" { ctx.enter(ctx.OUTBOUND_INTERFACE); } -#line 1268 "dhcp4_parser.cc" +#line 1286 "dhcp4_parser.cc" break; - case 146: -#line 600 "dhcp4_parser.yy" + case 148: +#line 612 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1277 "dhcp4_parser.cc" +#line 1295 "dhcp4_parser.cc" break; - case 147: -#line 605 "dhcp4_parser.yy" + case 149: +#line 617 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } -#line 1285 "dhcp4_parser.cc" +#line 1303 "dhcp4_parser.cc" break; - case 148: -#line 607 "dhcp4_parser.yy" + case 150: +#line 619 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } -#line 1293 "dhcp4_parser.cc" +#line 1311 "dhcp4_parser.cc" break; - case 149: -#line 611 "dhcp4_parser.yy" + case 151: +#line 623 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1302 "dhcp4_parser.cc" +#line 1320 "dhcp4_parser.cc" break; - case 150: -#line 617 "dhcp4_parser.yy" + case 152: +#line 629 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1313 "dhcp4_parser.cc" +#line 1331 "dhcp4_parser.cc" break; - case 151: -#line 622 "dhcp4_parser.yy" + case 153: +#line 634 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1324 "dhcp4_parser.cc" +#line 1342 "dhcp4_parser.cc" break; - case 152: -#line 629 "dhcp4_parser.yy" + case 154: +#line 641 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1335 "dhcp4_parser.cc" +#line 1353 "dhcp4_parser.cc" break; - case 153: -#line 634 "dhcp4_parser.yy" + case 155: +#line 646 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1344 "dhcp4_parser.cc" +#line 1362 "dhcp4_parser.cc" break; - case 157: -#line 644 "dhcp4_parser.yy" + case 159: +#line 656 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1352 "dhcp4_parser.cc" +#line 1370 "dhcp4_parser.cc" break; - case 158: -#line 646 "dhcp4_parser.yy" + case 160: +#line 658 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1368,132 +1386,114 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1372 "dhcp4_parser.cc" +#line 1390 "dhcp4_parser.cc" break; - case 159: -#line 662 "dhcp4_parser.yy" + case 161: +#line 674 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1383 "dhcp4_parser.cc" +#line 1401 "dhcp4_parser.cc" break; - case 160: -#line 667 "dhcp4_parser.yy" + case 162: +#line 679 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1394 "dhcp4_parser.cc" +#line 1412 "dhcp4_parser.cc" break; - case 161: -#line 674 "dhcp4_parser.yy" + case 163: +#line 686 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1405 "dhcp4_parser.cc" +#line 1423 "dhcp4_parser.cc" break; - case 162: -#line 679 "dhcp4_parser.yy" + case 164: +#line 691 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1414 "dhcp4_parser.cc" +#line 1432 "dhcp4_parser.cc" break; - case 167: -#line 692 "dhcp4_parser.yy" + case 169: +#line 704 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1424 "dhcp4_parser.cc" +#line 1442 "dhcp4_parser.cc" break; - case 168: -#line 696 "dhcp4_parser.yy" + case 170: +#line 708 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1434 "dhcp4_parser.cc" +#line 1452 "dhcp4_parser.cc" break; - case 191: -#line 728 "dhcp4_parser.yy" + case 193: +#line 740 "dhcp4_parser.yy" { ctx.enter(ctx.DATABASE_TYPE); } -#line 1442 "dhcp4_parser.cc" +#line 1460 "dhcp4_parser.cc" break; - case 192: -#line 730 "dhcp4_parser.yy" + case 194: +#line 742 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1451 "dhcp4_parser.cc" - break; - - case 193: -#line 735 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1457 "dhcp4_parser.cc" - break; - - case 194: -#line 736 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1463 "dhcp4_parser.cc" +#line 1469 "dhcp4_parser.cc" break; case 195: -#line 737 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1469 "dhcp4_parser.cc" +#line 747 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } +#line 1475 "dhcp4_parser.cc" break; case 196: -#line 738 "dhcp4_parser.yy" - { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1475 "dhcp4_parser.cc" +#line 748 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } +#line 1481 "dhcp4_parser.cc" break; case 197: -#line 741 "dhcp4_parser.yy" - { - ctx.enter(ctx.NO_KEYWORD); -} -#line 1483 "dhcp4_parser.cc" +#line 749 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } +#line 1487 "dhcp4_parser.cc" break; case 198: -#line 743 "dhcp4_parser.yy" - { - ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("user", user); - ctx.leave(); -} +#line 750 "dhcp4_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1493 "dhcp4_parser.cc" break; case 199: -#line 749 "dhcp4_parser.yy" +#line 753 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -1501,17 +1501,17 @@ namespace isc { namespace dhcp { break; case 200: -#line 751 "dhcp4_parser.yy" +#line 755 "dhcp4_parser.yy" { - ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("password", pwd); + ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user", user); ctx.leave(); } #line 1511 "dhcp4_parser.cc" break; case 201: -#line 757 "dhcp4_parser.yy" +#line 761 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -1519,125 +1519,125 @@ namespace isc { namespace dhcp { break; case 202: -#line 759 "dhcp4_parser.yy" +#line 763 "dhcp4_parser.yy" { - ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("host", h); + ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password", pwd); ctx.leave(); } #line 1529 "dhcp4_parser.cc" break; case 203: -#line 765 "dhcp4_parser.yy" +#line 769 "dhcp4_parser.yy" { - ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("port", p); + ctx.enter(ctx.NO_KEYWORD); } -#line 1538 "dhcp4_parser.cc" +#line 1537 "dhcp4_parser.cc" break; case 204: -#line 770 "dhcp4_parser.yy" +#line 771 "dhcp4_parser.yy" { - ctx.enter(ctx.NO_KEYWORD); + ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("host", h); + ctx.leave(); } -#line 1546 "dhcp4_parser.cc" +#line 1547 "dhcp4_parser.cc" break; case 205: -#line 772 "dhcp4_parser.yy" +#line 777 "dhcp4_parser.yy" { - ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("name", name); - ctx.leave(); + ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("port", p); } #line 1556 "dhcp4_parser.cc" break; case 206: -#line 778 "dhcp4_parser.yy" +#line 782 "dhcp4_parser.yy" { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("persist", n); + ctx.enter(ctx.NO_KEYWORD); } -#line 1565 "dhcp4_parser.cc" +#line 1564 "dhcp4_parser.cc" break; case 207: -#line 783 "dhcp4_parser.yy" +#line 784 "dhcp4_parser.yy" { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("lfc-interval", n); + ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("name", name); + ctx.leave(); } #line 1574 "dhcp4_parser.cc" break; case 208: -#line 788 "dhcp4_parser.yy" +#line 790 "dhcp4_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("readonly", n); + ctx.stack_.back()->set("persist", n); } #line 1583 "dhcp4_parser.cc" break; case 209: -#line 793 "dhcp4_parser.yy" +#line 795 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("connect-timeout", n); + ctx.stack_.back()->set("lfc-interval", n); } #line 1592 "dhcp4_parser.cc" break; case 210: -#line 798 "dhcp4_parser.yy" +#line 800 "dhcp4_parser.yy" { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("request-timeout", n); + ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("readonly", n); } #line 1601 "dhcp4_parser.cc" break; case 211: -#line 803 "dhcp4_parser.yy" +#line 805 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-keepalive", n); + ctx.stack_.back()->set("connect-timeout", n); } #line 1610 "dhcp4_parser.cc" break; case 212: -#line 808 "dhcp4_parser.yy" +#line 810 "dhcp4_parser.yy" { - ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("tcp-nodelay", n); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("request-timeout", n); } #line 1619 "dhcp4_parser.cc" break; case 213: -#line 813 "dhcp4_parser.yy" +#line 815 "dhcp4_parser.yy" { - ctx.enter(ctx.NO_KEYWORD); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1627 "dhcp4_parser.cc" +#line 1628 "dhcp4_parser.cc" break; case 214: -#line 815 "dhcp4_parser.yy" +#line 820 "dhcp4_parser.yy" { - ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("contact-points", cp); - ctx.leave(); + ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-nodelay", n); } #line 1637 "dhcp4_parser.cc" break; case 215: -#line 821 "dhcp4_parser.yy" +#line 825 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -1645,17 +1645,17 @@ namespace isc { namespace dhcp { break; case 216: -#line 823 "dhcp4_parser.yy" +#line 827 "dhcp4_parser.yy" { - ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("keyspace", ks); + ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } #line 1655 "dhcp4_parser.cc" break; case 217: -#line 829 "dhcp4_parser.yy" +#line 833 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -1663,17 +1663,17 @@ namespace isc { namespace dhcp { break; case 218: -#line 831 "dhcp4_parser.yy" +#line 835 "dhcp4_parser.yy" { - ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("consistency", c); + ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } #line 1673 "dhcp4_parser.cc" break; case 219: -#line 837 "dhcp4_parser.yy" +#line 841 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -1681,300 +1681,318 @@ namespace isc { namespace dhcp { break; case 220: -#line 839 "dhcp4_parser.yy" +#line 843 "dhcp4_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("serial-consistency", c); + ctx.stack_.back()->set("consistency", c); ctx.leave(); } #line 1691 "dhcp4_parser.cc" break; case 221: -#line 845 "dhcp4_parser.yy" +#line 849 "dhcp4_parser.yy" { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("max-reconnect-tries", n); + ctx.enter(ctx.NO_KEYWORD); } -#line 1700 "dhcp4_parser.cc" +#line 1699 "dhcp4_parser.cc" break; case 222: -#line 850 "dhcp4_parser.yy" +#line 851 "dhcp4_parser.yy" { - ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("reconnect-wait-time", n); + ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("serial-consistency", c); + ctx.leave(); } #line 1709 "dhcp4_parser.cc" break; case 223: -#line 855 "dhcp4_parser.yy" +#line 857 "dhcp4_parser.yy" { - ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("host-reservation-identifiers", l); - ctx.stack_.push_back(l); - ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1720 "dhcp4_parser.cc" +#line 1718 "dhcp4_parser.cc" break; case 224: -#line 860 "dhcp4_parser.yy" +#line 862 "dhcp4_parser.yy" { - ctx.stack_.pop_back(); - ctx.leave(); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1729 "dhcp4_parser.cc" +#line 1727 "dhcp4_parser.cc" break; - case 232: -#line 876 "dhcp4_parser.yy" + case 225: +#line 867 "dhcp4_parser.yy" { - ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(duid); + ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("host-reservation-identifiers", l); + ctx.stack_.push_back(l); + ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } #line 1738 "dhcp4_parser.cc" break; - case 233: -#line 881 "dhcp4_parser.yy" + case 226: +#line 872 "dhcp4_parser.yy" { - ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(hwaddr); + ctx.stack_.pop_back(); + ctx.leave(); } #line 1747 "dhcp4_parser.cc" break; case 234: -#line 886 "dhcp4_parser.yy" +#line 888 "dhcp4_parser.yy" { - ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(circuit); + ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(duid); } #line 1756 "dhcp4_parser.cc" break; case 235: -#line 891 "dhcp4_parser.yy" +#line 893 "dhcp4_parser.yy" { - ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(client); + ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(hwaddr); } #line 1765 "dhcp4_parser.cc" break; case 236: -#line 896 "dhcp4_parser.yy" +#line 898 "dhcp4_parser.yy" { - ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->add(flex_id); + ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(circuit); } #line 1774 "dhcp4_parser.cc" break; case 237: -#line 901 "dhcp4_parser.yy" +#line 903 "dhcp4_parser.yy" + { + ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(client); +} +#line 1783 "dhcp4_parser.cc" + break; + + case 238: +#line 908 "dhcp4_parser.yy" + { + ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(flex_id); +} +#line 1792 "dhcp4_parser.cc" + break; + + case 239: +#line 913 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1785 "dhcp4_parser.cc" +#line 1803 "dhcp4_parser.cc" break; - case 238: -#line 906 "dhcp4_parser.yy" + case 240: +#line 918 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1794 "dhcp4_parser.cc" +#line 1812 "dhcp4_parser.cc" break; - case 243: -#line 919 "dhcp4_parser.yy" + case 245: +#line 931 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1804 "dhcp4_parser.cc" +#line 1822 "dhcp4_parser.cc" break; - case 244: -#line 923 "dhcp4_parser.yy" + case 246: +#line 935 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1814 "dhcp4_parser.cc" +#line 1832 "dhcp4_parser.cc" break; - case 245: -#line 929 "dhcp4_parser.yy" + case 247: +#line 941 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1824 "dhcp4_parser.cc" +#line 1842 "dhcp4_parser.cc" break; - case 246: -#line 933 "dhcp4_parser.yy" + case 248: +#line 945 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1834 "dhcp4_parser.cc" +#line 1852 "dhcp4_parser.cc" break; - case 252: -#line 948 "dhcp4_parser.yy" + case 254: +#line 960 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1842 "dhcp4_parser.cc" +#line 1860 "dhcp4_parser.cc" break; - case 253: -#line 950 "dhcp4_parser.yy" + case 255: +#line 962 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1852 "dhcp4_parser.cc" +#line 1870 "dhcp4_parser.cc" break; - case 254: -#line 956 "dhcp4_parser.yy" + case 256: +#line 968 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1860 "dhcp4_parser.cc" +#line 1878 "dhcp4_parser.cc" break; - case 255: -#line 958 "dhcp4_parser.yy" + case 257: +#line 970 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1869 "dhcp4_parser.cc" +#line 1887 "dhcp4_parser.cc" break; - case 256: -#line 964 "dhcp4_parser.yy" + case 258: +#line 976 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1880 "dhcp4_parser.cc" +#line 1898 "dhcp4_parser.cc" break; - case 257: -#line 969 "dhcp4_parser.yy" + case 259: +#line 981 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1890 "dhcp4_parser.cc" +#line 1908 "dhcp4_parser.cc" break; - case 266: -#line 987 "dhcp4_parser.yy" + case 268: +#line 999 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1899 "dhcp4_parser.cc" +#line 1917 "dhcp4_parser.cc" break; - case 267: -#line 992 "dhcp4_parser.yy" + case 269: +#line 1004 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 1908 "dhcp4_parser.cc" +#line 1926 "dhcp4_parser.cc" break; - case 268: -#line 997 "dhcp4_parser.yy" + case 270: +#line 1009 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1917 "dhcp4_parser.cc" +#line 1935 "dhcp4_parser.cc" break; - case 269: -#line 1002 "dhcp4_parser.yy" + case 271: +#line 1014 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1926 "dhcp4_parser.cc" +#line 1944 "dhcp4_parser.cc" break; - case 270: -#line 1007 "dhcp4_parser.yy" + case 272: +#line 1019 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1935 "dhcp4_parser.cc" +#line 1953 "dhcp4_parser.cc" break; - case 271: -#line 1012 "dhcp4_parser.yy" + case 273: +#line 1024 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1944 "dhcp4_parser.cc" +#line 1962 "dhcp4_parser.cc" break; - case 272: -#line 1020 "dhcp4_parser.yy" + case 274: +#line 1032 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet4", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 1955 "dhcp4_parser.cc" +#line 1973 "dhcp4_parser.cc" break; - case 273: -#line 1025 "dhcp4_parser.yy" + case 275: +#line 1037 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1964 "dhcp4_parser.cc" +#line 1982 "dhcp4_parser.cc" break; - case 278: -#line 1045 "dhcp4_parser.yy" + case 280: +#line 1057 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1974 "dhcp4_parser.cc" +#line 1992 "dhcp4_parser.cc" break; - case 279: -#line 1049 "dhcp4_parser.yy" + case 281: +#line 1061 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1996,294 +2014,294 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2000 "dhcp4_parser.cc" +#line 2018 "dhcp4_parser.cc" break; - case 280: -#line 1071 "dhcp4_parser.yy" + case 282: +#line 1083 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2010 "dhcp4_parser.cc" +#line 2028 "dhcp4_parser.cc" break; - case 281: -#line 1075 "dhcp4_parser.yy" + case 283: +#line 1087 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2020 "dhcp4_parser.cc" +#line 2038 "dhcp4_parser.cc" break; - case 311: -#line 1116 "dhcp4_parser.yy" + case 315: +#line 1130 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2028 "dhcp4_parser.cc" +#line 2046 "dhcp4_parser.cc" break; - case 312: -#line 1118 "dhcp4_parser.yy" + case 316: +#line 1132 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2038 "dhcp4_parser.cc" +#line 2056 "dhcp4_parser.cc" break; - case 313: -#line 1124 "dhcp4_parser.yy" + case 317: +#line 1138 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2046 "dhcp4_parser.cc" +#line 2064 "dhcp4_parser.cc" break; - case 314: -#line 1126 "dhcp4_parser.yy" + case 318: +#line 1140 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 2056 "dhcp4_parser.cc" +#line 2074 "dhcp4_parser.cc" break; - case 315: -#line 1132 "dhcp4_parser.yy" + case 319: +#line 1146 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2064 "dhcp4_parser.cc" +#line 2082 "dhcp4_parser.cc" break; - case 316: -#line 1134 "dhcp4_parser.yy" + case 320: +#line 1148 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 2074 "dhcp4_parser.cc" +#line 2092 "dhcp4_parser.cc" break; - case 317: -#line 1140 "dhcp4_parser.yy" + case 321: +#line 1154 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2082 "dhcp4_parser.cc" +#line 2100 "dhcp4_parser.cc" break; - case 318: -#line 1142 "dhcp4_parser.yy" + case 322: +#line 1156 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 2092 "dhcp4_parser.cc" +#line 2110 "dhcp4_parser.cc" break; - case 319: -#line 1148 "dhcp4_parser.yy" + case 323: +#line 1162 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2100 "dhcp4_parser.cc" +#line 2118 "dhcp4_parser.cc" break; - case 320: -#line 1150 "dhcp4_parser.yy" + case 324: +#line 1164 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2110 "dhcp4_parser.cc" +#line 2128 "dhcp4_parser.cc" break; - case 321: -#line 1156 "dhcp4_parser.yy" + case 325: +#line 1170 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2118 "dhcp4_parser.cc" +#line 2136 "dhcp4_parser.cc" break; - case 322: -#line 1158 "dhcp4_parser.yy" + case 326: +#line 1172 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2128 "dhcp4_parser.cc" +#line 2146 "dhcp4_parser.cc" break; - case 323: -#line 1164 "dhcp4_parser.yy" + case 327: +#line 1178 "dhcp4_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2139 "dhcp4_parser.cc" +#line 2157 "dhcp4_parser.cc" break; - case 324: -#line 1169 "dhcp4_parser.yy" + case 328: +#line 1183 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2148 "dhcp4_parser.cc" +#line 2166 "dhcp4_parser.cc" break; - case 325: -#line 1174 "dhcp4_parser.yy" + case 329: +#line 1188 "dhcp4_parser.yy" { ctx.enter(ctx.RESERVATION_MODE); } -#line 2156 "dhcp4_parser.cc" +#line 2174 "dhcp4_parser.cc" break; - case 326: -#line 1176 "dhcp4_parser.yy" + case 330: +#line 1190 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2165 "dhcp4_parser.cc" +#line 2183 "dhcp4_parser.cc" break; - case 327: -#line 1181 "dhcp4_parser.yy" + case 331: +#line 1195 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2171 "dhcp4_parser.cc" +#line 2189 "dhcp4_parser.cc" break; - case 328: -#line 1182 "dhcp4_parser.yy" + case 332: +#line 1196 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2177 "dhcp4_parser.cc" +#line 2195 "dhcp4_parser.cc" break; - case 329: -#line 1183 "dhcp4_parser.yy" + case 333: +#line 1197 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2183 "dhcp4_parser.cc" +#line 2201 "dhcp4_parser.cc" break; - case 330: -#line 1184 "dhcp4_parser.yy" + case 334: +#line 1198 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2189 "dhcp4_parser.cc" +#line 2207 "dhcp4_parser.cc" break; - case 331: -#line 1187 "dhcp4_parser.yy" + case 335: +#line 1201 "dhcp4_parser.yy" { ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2198 "dhcp4_parser.cc" +#line 2216 "dhcp4_parser.cc" break; - case 332: -#line 1194 "dhcp4_parser.yy" + case 336: +#line 1208 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2209 "dhcp4_parser.cc" +#line 2227 "dhcp4_parser.cc" break; - case 333: -#line 1199 "dhcp4_parser.yy" + case 337: +#line 1213 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2218 "dhcp4_parser.cc" +#line 2236 "dhcp4_parser.cc" break; - case 338: -#line 1214 "dhcp4_parser.yy" + case 342: +#line 1228 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2228 "dhcp4_parser.cc" +#line 2246 "dhcp4_parser.cc" break; - case 339: -#line 1218 "dhcp4_parser.yy" + case 343: +#line 1232 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 2236 "dhcp4_parser.cc" +#line 2254 "dhcp4_parser.cc" break; - case 364: -#line 1254 "dhcp4_parser.yy" + case 370: +#line 1270 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2247 "dhcp4_parser.cc" +#line 2265 "dhcp4_parser.cc" break; - case 365: -#line 1259 "dhcp4_parser.yy" + case 371: +#line 1275 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2256 "dhcp4_parser.cc" +#line 2274 "dhcp4_parser.cc" break; - case 366: -#line 1267 "dhcp4_parser.yy" + case 372: +#line 1283 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2265 "dhcp4_parser.cc" +#line 2283 "dhcp4_parser.cc" break; - case 367: -#line 1270 "dhcp4_parser.yy" + case 373: +#line 1286 "dhcp4_parser.yy" { // parsing completed } -#line 2273 "dhcp4_parser.cc" +#line 2291 "dhcp4_parser.cc" break; - case 372: -#line 1286 "dhcp4_parser.yy" + case 378: +#line 1302 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2283 "dhcp4_parser.cc" +#line 2301 "dhcp4_parser.cc" break; - case 373: -#line 1290 "dhcp4_parser.yy" + case 379: +#line 1306 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2291,21 +2309,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2295 "dhcp4_parser.cc" +#line 2313 "dhcp4_parser.cc" break; - case 374: -#line 1301 "dhcp4_parser.yy" + case 380: +#line 1317 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2305 "dhcp4_parser.cc" +#line 2323 "dhcp4_parser.cc" break; - case 375: -#line 1305 "dhcp4_parser.yy" + case 381: +#line 1321 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2313,281 +2331,281 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2317 "dhcp4_parser.cc" +#line 2335 "dhcp4_parser.cc" break; - case 391: -#line 1337 "dhcp4_parser.yy" + case 397: +#line 1353 "dhcp4_parser.yy" { ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2326 "dhcp4_parser.cc" +#line 2344 "dhcp4_parser.cc" break; - case 393: -#line 1344 "dhcp4_parser.yy" + case 399: +#line 1360 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2334 "dhcp4_parser.cc" +#line 2352 "dhcp4_parser.cc" break; - case 394: -#line 1346 "dhcp4_parser.yy" + case 400: +#line 1362 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2344 "dhcp4_parser.cc" +#line 2362 "dhcp4_parser.cc" break; - case 395: -#line 1352 "dhcp4_parser.yy" + case 401: +#line 1368 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2352 "dhcp4_parser.cc" +#line 2370 "dhcp4_parser.cc" break; - case 396: -#line 1354 "dhcp4_parser.yy" + case 402: +#line 1370 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2362 "dhcp4_parser.cc" +#line 2380 "dhcp4_parser.cc" break; - case 397: -#line 1360 "dhcp4_parser.yy" + case 403: +#line 1376 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2370 "dhcp4_parser.cc" +#line 2388 "dhcp4_parser.cc" break; - case 398: -#line 1362 "dhcp4_parser.yy" + case 404: +#line 1378 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2380 "dhcp4_parser.cc" +#line 2398 "dhcp4_parser.cc" break; - case 400: -#line 1370 "dhcp4_parser.yy" + case 406: +#line 1386 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2388 "dhcp4_parser.cc" +#line 2406 "dhcp4_parser.cc" break; - case 401: -#line 1372 "dhcp4_parser.yy" + case 407: +#line 1388 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2398 "dhcp4_parser.cc" +#line 2416 "dhcp4_parser.cc" break; - case 402: -#line 1378 "dhcp4_parser.yy" + case 408: +#line 1394 "dhcp4_parser.yy" { ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2407 "dhcp4_parser.cc" +#line 2425 "dhcp4_parser.cc" break; - case 403: -#line 1387 "dhcp4_parser.yy" + case 409: +#line 1403 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2418 "dhcp4_parser.cc" +#line 2436 "dhcp4_parser.cc" break; - case 404: -#line 1392 "dhcp4_parser.yy" + case 410: +#line 1408 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2427 "dhcp4_parser.cc" +#line 2445 "dhcp4_parser.cc" break; - case 409: -#line 1411 "dhcp4_parser.yy" + case 415: +#line 1427 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2437 "dhcp4_parser.cc" +#line 2455 "dhcp4_parser.cc" break; - case 410: -#line 1415 "dhcp4_parser.yy" + case 416: +#line 1431 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2446 "dhcp4_parser.cc" +#line 2464 "dhcp4_parser.cc" break; - case 411: -#line 1423 "dhcp4_parser.yy" + case 417: +#line 1439 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2456 "dhcp4_parser.cc" +#line 2474 "dhcp4_parser.cc" break; - case 412: -#line 1427 "dhcp4_parser.yy" + case 418: +#line 1443 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 2465 "dhcp4_parser.cc" +#line 2483 "dhcp4_parser.cc" break; - case 427: -#line 1460 "dhcp4_parser.yy" + case 433: +#line 1476 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2473 "dhcp4_parser.cc" +#line 2491 "dhcp4_parser.cc" break; - case 428: -#line 1462 "dhcp4_parser.yy" + case 434: +#line 1478 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2483 "dhcp4_parser.cc" +#line 2501 "dhcp4_parser.cc" break; - case 431: -#line 1472 "dhcp4_parser.yy" + case 437: +#line 1488 "dhcp4_parser.yy" { ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2492 "dhcp4_parser.cc" +#line 2510 "dhcp4_parser.cc" break; - case 432: -#line 1477 "dhcp4_parser.yy" + case 438: +#line 1493 "dhcp4_parser.yy" { ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2501 "dhcp4_parser.cc" +#line 2519 "dhcp4_parser.cc" break; - case 433: -#line 1485 "dhcp4_parser.yy" + case 439: +#line 1501 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2512 "dhcp4_parser.cc" +#line 2530 "dhcp4_parser.cc" break; - case 434: -#line 1490 "dhcp4_parser.yy" + case 440: +#line 1506 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2521 "dhcp4_parser.cc" +#line 2539 "dhcp4_parser.cc" break; - case 439: -#line 1505 "dhcp4_parser.yy" + case 445: +#line 1521 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2531 "dhcp4_parser.cc" +#line 2549 "dhcp4_parser.cc" break; - case 440: -#line 1509 "dhcp4_parser.yy" + case 446: +#line 1525 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2541 "dhcp4_parser.cc" +#line 2559 "dhcp4_parser.cc" break; - case 441: -#line 1515 "dhcp4_parser.yy" + case 447: +#line 1531 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2551 "dhcp4_parser.cc" +#line 2569 "dhcp4_parser.cc" break; - case 442: -#line 1519 "dhcp4_parser.yy" + case 448: +#line 1535 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2561 "dhcp4_parser.cc" +#line 2579 "dhcp4_parser.cc" break; - case 452: -#line 1538 "dhcp4_parser.yy" + case 458: +#line 1554 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2569 "dhcp4_parser.cc" +#line 2587 "dhcp4_parser.cc" break; - case 453: -#line 1540 "dhcp4_parser.yy" + case 459: +#line 1556 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2579 "dhcp4_parser.cc" +#line 2597 "dhcp4_parser.cc" break; - case 454: -#line 1546 "dhcp4_parser.yy" + case 460: +#line 1562 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2587 "dhcp4_parser.cc" +#line 2605 "dhcp4_parser.cc" break; - case 455: -#line 1548 "dhcp4_parser.yy" + case 461: +#line 1564 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -2610,19 +2628,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2614 "dhcp4_parser.cc" +#line 2632 "dhcp4_parser.cc" break; - case 456: -#line 1571 "dhcp4_parser.yy" + case 462: +#line 1587 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2622 "dhcp4_parser.cc" +#line 2640 "dhcp4_parser.cc" break; - case 457: -#line 1573 "dhcp4_parser.yy" + case 463: +#line 1589 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -2647,449 +2665,449 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2651 "dhcp4_parser.cc" +#line 2669 "dhcp4_parser.cc" break; - case 458: -#line 1601 "dhcp4_parser.yy" + case 464: +#line 1617 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2662 "dhcp4_parser.cc" +#line 2680 "dhcp4_parser.cc" break; - case 459: -#line 1606 "dhcp4_parser.yy" + case 465: +#line 1622 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2671 "dhcp4_parser.cc" +#line 2689 "dhcp4_parser.cc" break; - case 464: -#line 1619 "dhcp4_parser.yy" + case 470: +#line 1635 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2681 "dhcp4_parser.cc" +#line 2699 "dhcp4_parser.cc" break; - case 465: -#line 1623 "dhcp4_parser.yy" + case 471: +#line 1639 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2690 "dhcp4_parser.cc" +#line 2708 "dhcp4_parser.cc" break; - case 466: -#line 1628 "dhcp4_parser.yy" + case 472: +#line 1644 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2700 "dhcp4_parser.cc" +#line 2718 "dhcp4_parser.cc" break; - case 467: -#line 1632 "dhcp4_parser.yy" + case 473: +#line 1648 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 2709 "dhcp4_parser.cc" +#line 2727 "dhcp4_parser.cc" break; - case 487: -#line 1663 "dhcp4_parser.yy" + case 493: +#line 1679 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2717 "dhcp4_parser.cc" +#line 2735 "dhcp4_parser.cc" break; - case 488: -#line 1665 "dhcp4_parser.yy" + case 494: +#line 1681 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 2727 "dhcp4_parser.cc" +#line 2745 "dhcp4_parser.cc" break; - case 489: -#line 1671 "dhcp4_parser.yy" + case 495: +#line 1687 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2735 "dhcp4_parser.cc" +#line 2753 "dhcp4_parser.cc" break; - case 490: -#line 1673 "dhcp4_parser.yy" + case 496: +#line 1689 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 2745 "dhcp4_parser.cc" +#line 2763 "dhcp4_parser.cc" break; - case 491: -#line 1679 "dhcp4_parser.yy" + case 497: +#line 1695 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2753 "dhcp4_parser.cc" +#line 2771 "dhcp4_parser.cc" break; - case 492: -#line 1681 "dhcp4_parser.yy" + case 498: +#line 1697 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 2763 "dhcp4_parser.cc" +#line 2781 "dhcp4_parser.cc" break; - case 493: -#line 1687 "dhcp4_parser.yy" + case 499: +#line 1703 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2771 "dhcp4_parser.cc" +#line 2789 "dhcp4_parser.cc" break; - case 494: -#line 1689 "dhcp4_parser.yy" + case 500: +#line 1705 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 2781 "dhcp4_parser.cc" +#line 2799 "dhcp4_parser.cc" break; - case 495: -#line 1695 "dhcp4_parser.yy" + case 501: +#line 1711 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2792 "dhcp4_parser.cc" +#line 2810 "dhcp4_parser.cc" break; - case 496: -#line 1700 "dhcp4_parser.yy" + case 502: +#line 1716 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2801 "dhcp4_parser.cc" +#line 2819 "dhcp4_parser.cc" break; - case 497: -#line 1705 "dhcp4_parser.yy" + case 503: +#line 1721 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2809 "dhcp4_parser.cc" +#line 2827 "dhcp4_parser.cc" break; - case 498: -#line 1707 "dhcp4_parser.yy" + case 504: +#line 1723 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2819 "dhcp4_parser.cc" +#line 2837 "dhcp4_parser.cc" break; - case 499: -#line 1713 "dhcp4_parser.yy" + case 505: +#line 1729 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2827 "dhcp4_parser.cc" +#line 2845 "dhcp4_parser.cc" break; - case 500: -#line 1715 "dhcp4_parser.yy" + case 506: +#line 1731 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 2837 "dhcp4_parser.cc" +#line 2855 "dhcp4_parser.cc" break; - case 501: -#line 1721 "dhcp4_parser.yy" + case 507: +#line 1737 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2845 "dhcp4_parser.cc" +#line 2863 "dhcp4_parser.cc" break; - case 502: -#line 1723 "dhcp4_parser.yy" + case 508: +#line 1739 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 2855 "dhcp4_parser.cc" +#line 2873 "dhcp4_parser.cc" break; - case 503: -#line 1729 "dhcp4_parser.yy" + case 509: +#line 1745 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2863 "dhcp4_parser.cc" +#line 2881 "dhcp4_parser.cc" break; - case 504: -#line 1731 "dhcp4_parser.yy" + case 510: +#line 1747 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 2873 "dhcp4_parser.cc" +#line 2891 "dhcp4_parser.cc" break; - case 505: -#line 1737 "dhcp4_parser.yy" + case 511: +#line 1753 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2881 "dhcp4_parser.cc" +#line 2899 "dhcp4_parser.cc" break; - case 506: -#line 1739 "dhcp4_parser.yy" + case 512: +#line 1755 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 2891 "dhcp4_parser.cc" +#line 2909 "dhcp4_parser.cc" break; - case 507: -#line 1745 "dhcp4_parser.yy" + case 513: +#line 1761 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2899 "dhcp4_parser.cc" +#line 2917 "dhcp4_parser.cc" break; - case 508: -#line 1747 "dhcp4_parser.yy" + case 514: +#line 1763 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2909 "dhcp4_parser.cc" +#line 2927 "dhcp4_parser.cc" break; - case 509: -#line 1753 "dhcp4_parser.yy" + case 515: +#line 1769 "dhcp4_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2920 "dhcp4_parser.cc" +#line 2938 "dhcp4_parser.cc" break; - case 510: -#line 1758 "dhcp4_parser.yy" + case 516: +#line 1774 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2929 "dhcp4_parser.cc" +#line 2947 "dhcp4_parser.cc" break; - case 511: -#line 1766 "dhcp4_parser.yy" + case 517: +#line 1782 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2940 "dhcp4_parser.cc" +#line 2958 "dhcp4_parser.cc" break; - case 512: -#line 1771 "dhcp4_parser.yy" + case 518: +#line 1787 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2949 "dhcp4_parser.cc" +#line 2967 "dhcp4_parser.cc" break; - case 515: -#line 1783 "dhcp4_parser.yy" + case 521: +#line 1799 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2960 "dhcp4_parser.cc" +#line 2978 "dhcp4_parser.cc" break; - case 516: -#line 1788 "dhcp4_parser.yy" + case 522: +#line 1804 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2969 "dhcp4_parser.cc" +#line 2987 "dhcp4_parser.cc" break; - case 519: -#line 1797 "dhcp4_parser.yy" + case 525: +#line 1813 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2979 "dhcp4_parser.cc" +#line 2997 "dhcp4_parser.cc" break; - case 520: -#line 1801 "dhcp4_parser.yy" + case 526: +#line 1817 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2989 "dhcp4_parser.cc" +#line 3007 "dhcp4_parser.cc" break; - case 537: -#line 1830 "dhcp4_parser.yy" + case 543: +#line 1846 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2997 "dhcp4_parser.cc" +#line 3015 "dhcp4_parser.cc" break; - case 538: -#line 1832 "dhcp4_parser.yy" + case 544: +#line 1848 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3007 "dhcp4_parser.cc" +#line 3025 "dhcp4_parser.cc" break; - case 539: -#line 1838 "dhcp4_parser.yy" + case 545: +#line 1854 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3016 "dhcp4_parser.cc" +#line 3034 "dhcp4_parser.cc" break; - case 540: -#line 1847 "dhcp4_parser.yy" + case 546: +#line 1863 "dhcp4_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3025 "dhcp4_parser.cc" +#line 3043 "dhcp4_parser.cc" break; - case 541: -#line 1854 "dhcp4_parser.yy" + case 547: +#line 1870 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3036 "dhcp4_parser.cc" +#line 3054 "dhcp4_parser.cc" break; - case 542: -#line 1859 "dhcp4_parser.yy" + case 548: +#line 1875 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3045 "dhcp4_parser.cc" +#line 3063 "dhcp4_parser.cc" break; - case 550: -#line 1875 "dhcp4_parser.yy" + case 556: +#line 1891 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3053 "dhcp4_parser.cc" +#line 3071 "dhcp4_parser.cc" break; - case 551: -#line 1877 "dhcp4_parser.yy" + case 557: +#line 1893 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3063 "dhcp4_parser.cc" +#line 3081 "dhcp4_parser.cc" break; - case 552: -#line 1883 "dhcp4_parser.yy" + case 558: +#line 1899 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3071 "dhcp4_parser.cc" +#line 3089 "dhcp4_parser.cc" break; - case 553: -#line 1885 "dhcp4_parser.yy" + case 559: +#line 1901 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3081 "dhcp4_parser.cc" +#line 3099 "dhcp4_parser.cc" break; - case 554: -#line 1894 "dhcp4_parser.yy" + case 560: +#line 1910 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3089 "dhcp4_parser.cc" +#line 3107 "dhcp4_parser.cc" break; - case 555: -#line 1896 "dhcp4_parser.yy" + case 561: +#line 1912 "dhcp4_parser.yy" { ElementPtr qc = yystack_[0].value.as < ElementPtr > (); ctx.stack_.back()->set("dhcp-queue-control", qc); @@ -3123,626 +3141,626 @@ namespace isc { namespace dhcp { ctx.leave(); } -#line 3127 "dhcp4_parser.cc" +#line 3145 "dhcp4_parser.cc" break; - case 556: -#line 1932 "dhcp4_parser.yy" + case 562: +#line 1948 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3138 "dhcp4_parser.cc" +#line 3156 "dhcp4_parser.cc" break; - case 557: -#line 1937 "dhcp4_parser.yy" + case 563: +#line 1953 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3149 "dhcp4_parser.cc" +#line 3167 "dhcp4_parser.cc" break; - case 558: -#line 1944 "dhcp4_parser.yy" + case 564: +#line 1960 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3159 "dhcp4_parser.cc" +#line 3177 "dhcp4_parser.cc" break; - case 559: -#line 1948 "dhcp4_parser.yy" + case 565: +#line 1964 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3169 "dhcp4_parser.cc" +#line 3187 "dhcp4_parser.cc" break; - case 580: -#line 1978 "dhcp4_parser.yy" + case 586: +#line 1994 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3178 "dhcp4_parser.cc" +#line 3196 "dhcp4_parser.cc" break; - case 581: -#line 1983 "dhcp4_parser.yy" + case 587: +#line 1999 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3186 "dhcp4_parser.cc" +#line 3204 "dhcp4_parser.cc" break; - case 582: -#line 1985 "dhcp4_parser.yy" + case 588: +#line 2001 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3196 "dhcp4_parser.cc" +#line 3214 "dhcp4_parser.cc" break; - case 583: -#line 1991 "dhcp4_parser.yy" + case 589: +#line 2007 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3204 "dhcp4_parser.cc" +#line 3222 "dhcp4_parser.cc" break; - case 584: -#line 1993 "dhcp4_parser.yy" + case 590: +#line 2009 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3214 "dhcp4_parser.cc" +#line 3232 "dhcp4_parser.cc" break; - case 585: -#line 1999 "dhcp4_parser.yy" + case 591: +#line 2015 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3223 "dhcp4_parser.cc" +#line 3241 "dhcp4_parser.cc" break; - case 586: -#line 2004 "dhcp4_parser.yy" + case 592: +#line 2020 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3231 "dhcp4_parser.cc" +#line 3249 "dhcp4_parser.cc" break; - case 587: -#line 2006 "dhcp4_parser.yy" + case 593: +#line 2022 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3241 "dhcp4_parser.cc" +#line 3259 "dhcp4_parser.cc" break; - case 588: -#line 2012 "dhcp4_parser.yy" + case 594: +#line 2028 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3250 "dhcp4_parser.cc" +#line 3268 "dhcp4_parser.cc" break; - case 589: -#line 2017 "dhcp4_parser.yy" + case 595: +#line 2033 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3259 "dhcp4_parser.cc" +#line 3277 "dhcp4_parser.cc" break; - case 590: -#line 2022 "dhcp4_parser.yy" + case 596: +#line 2038 "dhcp4_parser.yy" { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3267 "dhcp4_parser.cc" +#line 3285 "dhcp4_parser.cc" break; - case 591: -#line 2024 "dhcp4_parser.yy" + case 597: +#line 2040 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3276 "dhcp4_parser.cc" +#line 3294 "dhcp4_parser.cc" break; - case 592: -#line 2030 "dhcp4_parser.yy" + case 598: +#line 2046 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3282 "dhcp4_parser.cc" +#line 3300 "dhcp4_parser.cc" break; - case 593: -#line 2031 "dhcp4_parser.yy" + case 599: +#line 2047 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3288 "dhcp4_parser.cc" +#line 3306 "dhcp4_parser.cc" break; - case 594: -#line 2034 "dhcp4_parser.yy" + case 600: +#line 2050 "dhcp4_parser.yy" { ctx.enter(ctx.NCR_FORMAT); } -#line 3296 "dhcp4_parser.cc" +#line 3314 "dhcp4_parser.cc" break; - case 595: -#line 2036 "dhcp4_parser.yy" + case 601: +#line 2052 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3306 "dhcp4_parser.cc" +#line 3324 "dhcp4_parser.cc" break; - case 596: -#line 2042 "dhcp4_parser.yy" + case 602: +#line 2058 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3315 "dhcp4_parser.cc" +#line 3333 "dhcp4_parser.cc" break; - case 597: -#line 2047 "dhcp4_parser.yy" + case 603: +#line 2063 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3324 "dhcp4_parser.cc" +#line 3342 "dhcp4_parser.cc" break; - case 598: -#line 2052 "dhcp4_parser.yy" + case 604: +#line 2068 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3332 "dhcp4_parser.cc" +#line 3350 "dhcp4_parser.cc" break; - case 599: -#line 2054 "dhcp4_parser.yy" + case 605: +#line 2070 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3341 "dhcp4_parser.cc" +#line 3359 "dhcp4_parser.cc" break; - case 600: -#line 2060 "dhcp4_parser.yy" + case 606: +#line 2076 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3349 "dhcp4_parser.cc" +#line 3367 "dhcp4_parser.cc" break; - case 601: -#line 2063 "dhcp4_parser.yy" + case 607: +#line 2079 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3357 "dhcp4_parser.cc" +#line 3375 "dhcp4_parser.cc" break; - case 602: -#line 2066 "dhcp4_parser.yy" + case 608: +#line 2082 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3365 "dhcp4_parser.cc" +#line 3383 "dhcp4_parser.cc" break; - case 603: -#line 2069 "dhcp4_parser.yy" + case 609: +#line 2085 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3373 "dhcp4_parser.cc" +#line 3391 "dhcp4_parser.cc" break; - case 604: -#line 2072 "dhcp4_parser.yy" + case 610: +#line 2088 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3382 "dhcp4_parser.cc" +#line 3400 "dhcp4_parser.cc" break; - case 605: -#line 2078 "dhcp4_parser.yy" + case 611: +#line 2094 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3390 "dhcp4_parser.cc" +#line 3408 "dhcp4_parser.cc" break; - case 606: -#line 2080 "dhcp4_parser.yy" + case 612: +#line 2096 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3400 "dhcp4_parser.cc" +#line 3418 "dhcp4_parser.cc" break; - case 607: -#line 2086 "dhcp4_parser.yy" + case 613: +#line 2102 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3408 "dhcp4_parser.cc" +#line 3426 "dhcp4_parser.cc" break; - case 608: -#line 2088 "dhcp4_parser.yy" + case 614: +#line 2104 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3418 "dhcp4_parser.cc" +#line 3436 "dhcp4_parser.cc" break; - case 609: -#line 2094 "dhcp4_parser.yy" + case 615: +#line 2110 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3426 "dhcp4_parser.cc" +#line 3444 "dhcp4_parser.cc" break; - case 610: -#line 2096 "dhcp4_parser.yy" + case 616: +#line 2112 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3436 "dhcp4_parser.cc" +#line 3454 "dhcp4_parser.cc" break; - case 611: -#line 2105 "dhcp4_parser.yy" + case 617: +#line 2121 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3444 "dhcp4_parser.cc" +#line 3462 "dhcp4_parser.cc" break; - case 612: -#line 2107 "dhcp4_parser.yy" + case 618: +#line 2123 "dhcp4_parser.yy" { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3453 "dhcp4_parser.cc" +#line 3471 "dhcp4_parser.cc" break; - case 613: -#line 2112 "dhcp4_parser.yy" + case 619: +#line 2128 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3461 "dhcp4_parser.cc" +#line 3479 "dhcp4_parser.cc" break; - case 614: -#line 2114 "dhcp4_parser.yy" + case 620: +#line 2130 "dhcp4_parser.yy" { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3470 "dhcp4_parser.cc" +#line 3488 "dhcp4_parser.cc" break; - case 615: -#line 2119 "dhcp4_parser.yy" + case 621: +#line 2135 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3478 "dhcp4_parser.cc" +#line 3496 "dhcp4_parser.cc" break; - case 616: -#line 2121 "dhcp4_parser.yy" + case 622: +#line 2137 "dhcp4_parser.yy" { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3487 "dhcp4_parser.cc" +#line 3505 "dhcp4_parser.cc" break; - case 617: -#line 2126 "dhcp4_parser.yy" + case 623: +#line 2142 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3498 "dhcp4_parser.cc" +#line 3516 "dhcp4_parser.cc" break; - case 618: -#line 2131 "dhcp4_parser.yy" + case 624: +#line 2147 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3508 "dhcp4_parser.cc" +#line 3526 "dhcp4_parser.cc" break; - case 619: -#line 2137 "dhcp4_parser.yy" + case 625: +#line 2153 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3518 "dhcp4_parser.cc" +#line 3536 "dhcp4_parser.cc" break; - case 620: -#line 2141 "dhcp4_parser.yy" + case 626: +#line 2157 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 3527 "dhcp4_parser.cc" +#line 3545 "dhcp4_parser.cc" break; - case 625: -#line 2156 "dhcp4_parser.yy" + case 631: +#line 2172 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3538 "dhcp4_parser.cc" +#line 3556 "dhcp4_parser.cc" break; - case 626: -#line 2161 "dhcp4_parser.yy" + case 632: +#line 2177 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3547 "dhcp4_parser.cc" +#line 3565 "dhcp4_parser.cc" break; - case 627: -#line 2166 "dhcp4_parser.yy" + case 633: +#line 2182 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 3556 "dhcp4_parser.cc" +#line 3574 "dhcp4_parser.cc" break; - case 628: -#line 2176 "dhcp4_parser.yy" + case 634: +#line 2192 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3567 "dhcp4_parser.cc" +#line 3585 "dhcp4_parser.cc" break; - case 629: -#line 2181 "dhcp4_parser.yy" + case 635: +#line 2197 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3576 "dhcp4_parser.cc" +#line 3594 "dhcp4_parser.cc" break; - case 630: -#line 2186 "dhcp4_parser.yy" + case 636: +#line 2202 "dhcp4_parser.yy" { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3586 "dhcp4_parser.cc" +#line 3604 "dhcp4_parser.cc" break; - case 631: -#line 2190 "dhcp4_parser.yy" + case 637: +#line 2206 "dhcp4_parser.yy" { // parsing completed } -#line 3594 "dhcp4_parser.cc" +#line 3612 "dhcp4_parser.cc" break; - case 635: -#line 2206 "dhcp4_parser.yy" + case 641: +#line 2222 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3605 "dhcp4_parser.cc" +#line 3623 "dhcp4_parser.cc" break; - case 636: -#line 2211 "dhcp4_parser.yy" + case 642: +#line 2227 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3614 "dhcp4_parser.cc" +#line 3632 "dhcp4_parser.cc" break; - case 639: -#line 2223 "dhcp4_parser.yy" + case 645: +#line 2239 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3624 "dhcp4_parser.cc" +#line 3642 "dhcp4_parser.cc" break; - case 640: -#line 2227 "dhcp4_parser.yy" + case 646: +#line 2243 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 3632 "dhcp4_parser.cc" +#line 3650 "dhcp4_parser.cc" break; - case 650: -#line 2244 "dhcp4_parser.yy" + case 656: +#line 2260 "dhcp4_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3641 "dhcp4_parser.cc" +#line 3659 "dhcp4_parser.cc" break; - case 651: -#line 2249 "dhcp4_parser.yy" + case 657: +#line 2265 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3649 "dhcp4_parser.cc" +#line 3667 "dhcp4_parser.cc" break; - case 652: -#line 2251 "dhcp4_parser.yy" + case 658: +#line 2267 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3659 "dhcp4_parser.cc" +#line 3677 "dhcp4_parser.cc" break; - case 653: -#line 2257 "dhcp4_parser.yy" + case 659: +#line 2273 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3670 "dhcp4_parser.cc" +#line 3688 "dhcp4_parser.cc" break; - case 654: -#line 2262 "dhcp4_parser.yy" + case 660: +#line 2278 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3679 "dhcp4_parser.cc" +#line 3697 "dhcp4_parser.cc" break; - case 657: -#line 2271 "dhcp4_parser.yy" + case 663: +#line 2287 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3689 "dhcp4_parser.cc" +#line 3707 "dhcp4_parser.cc" break; - case 658: -#line 2275 "dhcp4_parser.yy" + case 664: +#line 2291 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 3697 "dhcp4_parser.cc" +#line 3715 "dhcp4_parser.cc" break; - case 665: -#line 2289 "dhcp4_parser.yy" + case 671: +#line 2305 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3705 "dhcp4_parser.cc" +#line 3723 "dhcp4_parser.cc" break; - case 666: -#line 2291 "dhcp4_parser.yy" + case 672: +#line 2307 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3715 "dhcp4_parser.cc" +#line 3733 "dhcp4_parser.cc" break; - case 667: -#line 2297 "dhcp4_parser.yy" + case 673: +#line 2313 "dhcp4_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 3724 "dhcp4_parser.cc" +#line 3742 "dhcp4_parser.cc" break; - case 668: -#line 2302 "dhcp4_parser.yy" + case 674: +#line 2318 "dhcp4_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 3733 "dhcp4_parser.cc" +#line 3751 "dhcp4_parser.cc" break; - case 669: -#line 2307 "dhcp4_parser.yy" + case 675: +#line 2323 "dhcp4_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 3742 "dhcp4_parser.cc" +#line 3760 "dhcp4_parser.cc" break; -#line 3746 "dhcp4_parser.cc" +#line 3764 "dhcp4_parser.cc" default: break; @@ -4013,121 +4031,122 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -827; + const short Dhcp4Parser::yypact_ninf_ = -847; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 356, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, 48, 21, 37, 64, 80, - 86, 88, 100, 125, 134, 136, 150, 163, 167, 169, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, 21, 16, - 17, 152, 54, 62, 71, 228, 128, 26, 217, -47, - 504, 60, 93, -827, 234, 244, 245, 240, 252, -827, - -827, -827, -827, -827, 257, -827, 42, -827, -827, -827, - -827, -827, -827, -827, -827, -827, 258, 261, 272, -827, - -827, -827, -827, -827, -827, 275, 279, 297, 301, 305, - 312, 318, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, 320, -827, -827, -827, -827, - -827, -827, -827, 44, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, 342, -827, 75, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, 345, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, 78, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, 147, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, 353, 266, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, 354, -827, -827, 346, -827, -827, -827, 360, - -827, -827, 357, 323, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, 363, 364, -827, - -827, -827, -827, 362, 368, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, 161, -827, -827, - -827, 369, -827, -827, 372, -827, 376, 379, -827, -827, - 380, 381, -827, -827, -827, -827, -827, 183, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, 196, -827, -827, -827, 382, 199, - -827, -827, -827, -827, 21, 21, -827, 201, 387, 389, - 394, 396, 397, -827, 17, -827, 399, 400, 401, 237, - 238, 241, 403, 417, 426, 427, 446, 447, 280, 281, - 282, 283, 285, 286, 284, 451, 456, 458, 465, 466, - 468, 469, 471, 474, 475, 476, 477, 478, 311, 480, - 481, 482, 483, 484, 487, 152, -827, 489, 491, 492, - 324, 54, -827, 493, 495, 496, 498, 499, 501, 335, - 502, 505, 506, 62, -827, 507, 71, -827, 523, 525, - 526, 528, 529, 531, 532, 533, -827, 228, -827, 534, - 535, 371, 536, 537, 540, 373, -827, 26, 541, 374, - 375, -827, 217, 542, 546, 7, -827, 378, 549, 550, - 383, 552, 385, 386, 557, 559, 390, 392, 563, 565, - 504, -827, 60, -827, 566, 402, 93, -827, -827, -827, - 567, 568, 569, 21, 21, 21, -827, 570, 572, 573, - -827, -827, -827, 337, 388, 410, 575, 576, 579, -827, - -827, -827, -827, -827, -827, -827, 419, 583, 587, 607, - 609, 608, 445, 265, 612, 613, 614, 615, 616, -827, - 617, 608, 619, 450, 470, 622, -827, 637, 108, 202, - -827, -827, 472, 473, 479, 640, 485, 486, -827, 637, - 488, 639, -827, 490, -827, 637, 494, 497, 500, 503, - 508, 509, 510, -827, 511, 512, -827, 513, 514, 515, - -827, -827, 516, -827, -827, -827, 517, 21, -827, -827, - 518, 519, -827, 520, -827, -827, 14, 435, -827, -827, - 112, 521, -827, -827, 644, -827, -827, 21, 152, 60, - -827, -827, -827, 93, 54, 598, -827, -827, -827, 555, - 555, 645, -827, 646, 647, 648, 651, -827, -827, -827, - -827, -827, -827, -827, -827, 213, 653, 655, 656, -2, - 18, -827, 504, -827, -827, 657, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, 659, -827, -827, - -827, -827, 123, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, 645, -827, 216, 229, 233, 235, - -827, 256, -827, -827, -827, -827, -827, -827, 663, 665, - 666, 668, 669, -827, -827, -827, -827, 672, 673, 674, - 689, 690, -827, 269, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, 270, -827, 691, 692, -827, -827, - 693, 695, -827, -827, 694, 698, -827, -827, 696, 700, - -827, -827, 699, 701, -827, -827, -827, -827, -827, -827, - 74, -827, -827, -827, -827, -827, -827, -827, 91, -827, - -827, 702, 703, -827, -827, 704, 706, -827, 707, 708, - 709, 710, 711, 712, 299, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, 300, -827, -827, - -827, 317, -827, 155, -827, 547, -827, 713, 714, -827, - -827, -827, -827, 643, 715, -827, -827, -827, -827, 716, - 598, -827, 718, 719, 720, 721, 524, 553, 556, 558, - 561, 725, 726, 727, 730, 564, 571, 574, 577, 578, - 555, -827, -827, 555, -827, 645, 62, -827, 646, 26, - -827, 647, 217, -827, 648, 407, -827, 651, 213, -827, - 198, 653, -827, 228, -827, 655, -47, -827, 656, 581, - 582, 584, 585, 586, 588, -2, -827, 731, 733, 18, - -827, -827, 135, 657, -827, -827, 732, 736, 71, -827, - 659, 737, -827, -827, 580, -827, 322, 590, 591, 592, - -827, -827, -827, -827, -827, 593, 594, 595, 596, -827, - -827, -827, -827, -827, -827, 330, -827, 332, -827, 734, - -827, 739, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, 333, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - 740, -827, -827, -827, -827, -827, -827, -827, -827, -827, - 742, 745, -827, -827, -827, -827, -827, 747, -827, 334, - -827, -827, -827, -827, -827, -827, -827, -827, 597, 599, - -827, -827, 741, -827, -827, -827, -827, -827, 336, -827, - -827, -827, -827, -827, -827, 600, 340, -827, 637, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, 407, -827, 755, 601, - -827, 198, -827, -827, -827, -827, 765, 602, 768, 135, - -827, -827, -827, -827, -827, 606, -827, -827, 735, -827, - 610, -827, -827, 766, -827, -827, 197, -827, -18, 766, - -827, -827, 774, 779, 780, 344, -827, -827, -827, -827, - -827, -827, 785, 624, 627, 632, -18, -827, 635, -827, - -827, -827, -827, -827 + 325, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, 32, 22, 33, 40, 44, + 73, 95, 104, 108, 115, 121, 125, 135, 151, 158, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, 22, -103, + 6, 145, 59, 272, 41, 15, 79, 237, 177, -35, + 468, 51, 26, -847, 206, 210, 221, 219, 228, -847, + -847, -847, -847, -847, 231, -847, 56, -847, -847, -847, + -847, -847, -847, -847, -847, -847, 252, 285, 286, -847, + -847, -847, -847, -847, -847, 299, 300, 302, 303, 306, + 309, 316, 319, 322, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, 323, -847, -847, + -847, -847, -847, 58, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, 332, -847, 105, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, 340, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, 106, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, 128, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + 330, 342, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, 354, -847, -847, 359, -847, -847, + -847, 362, -847, -847, 357, 371, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, 374, + 382, -847, -847, -847, -847, 368, 389, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, 138, + -847, -847, -847, 394, -847, -847, 397, -847, 399, 400, + -847, -847, 403, 404, -847, -847, -847, -847, -847, -847, + -847, 142, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, 149, -847, + -847, -847, 408, 186, -847, -847, -847, -847, 22, 22, + -847, 242, 414, 422, 423, 424, 438, -847, 6, -847, + 440, 446, 448, 217, 277, 283, 456, 460, 463, 464, + 471, 472, 304, 305, 307, 308, 324, 301, 333, 336, + 335, 476, 495, 508, 509, 510, 513, 514, 515, 516, + 517, 518, 519, 520, 351, 522, 523, 526, 528, 145, + -847, 530, 531, 533, 365, 59, -847, 540, 541, 542, + 543, 544, 545, 376, 550, 551, 552, 272, -847, 553, + 41, -847, 554, 555, 558, 559, 560, 561, 562, 563, + -847, 15, -847, 565, 567, 398, 569, 570, 571, 401, + -847, 237, 572, 405, 406, -847, 177, 574, 575, -23, + -847, 407, 576, 580, 411, 583, 415, 416, 587, 589, + 431, 432, 605, 606, 607, 608, 468, -847, 51, -847, + 611, 442, 26, -847, -847, -847, 615, 614, 616, 22, + 22, 22, -847, 617, 618, 619, -847, -847, -847, 449, + 454, 455, 622, 623, 626, -847, -847, -847, -847, -847, + -847, -847, -847, -847, 459, 628, 629, 630, 631, 632, + 465, 331, 635, 637, 638, 639, 640, -847, 641, 632, + 642, 645, -847, 646, 78, 146, -847, -847, 473, 479, + 480, 649, 482, 483, -847, 646, 484, 651, -847, 486, + -847, 646, 487, 488, 489, 490, 491, 492, 493, -847, + 494, 496, -847, 497, 498, 499, -847, -847, 500, -847, + -847, -847, 501, 22, -847, -847, 502, 503, -847, 504, + -847, -847, 30, 505, -847, -847, -37, 506, 507, 511, + -847, -847, 663, -847, -847, 22, 145, 51, -847, -847, + -847, 26, 59, 613, -847, -847, -847, 233, 233, 671, + -847, 674, 675, 676, 678, -847, -847, -847, -847, -847, + -847, -847, -847, 116, 679, 680, 681, 68, 70, -847, + 468, 682, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, 683, -847, -847, -847, -847, 82, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, 671, -847, 220, 230, 234, 238, -847, 256, + -847, -847, -847, -847, -847, -847, 687, 688, 689, 690, + 691, -847, -847, -847, -847, 692, 693, 694, 695, 696, + -847, 260, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, 289, -847, 697, 698, -847, -847, 699, 701, + -847, -847, 700, 704, -847, -847, 702, 706, -847, -847, + 705, 707, -847, -847, -847, -847, -847, -847, 76, -847, + -847, -847, -847, -847, -847, -847, 218, -847, -847, 708, + 709, -847, -847, 710, 712, -847, 713, 714, 715, 716, + 717, 718, 311, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, 334, -847, -847, -847, 343, + -847, 241, -847, 529, -847, 719, 720, -847, -847, -847, + -847, 721, 722, -847, -847, -847, -847, 723, 613, -847, + 726, 727, 728, 729, 539, 548, 564, 566, 573, 730, + 731, 732, 733, 577, 578, 579, 581, 568, 233, -847, + -847, 233, -847, 671, 272, -847, 674, 237, -847, 675, + 177, -847, 676, 444, -847, 678, 116, -847, 63, 679, + -847, 15, -847, 680, -35, -847, 681, 582, 584, 585, + 586, 588, 590, 68, -847, 735, 736, 70, -847, -847, + -22, 682, -847, -847, 737, 738, 41, -847, 683, 741, + -847, -847, 592, -847, 402, 593, 594, 595, -847, -847, + -847, -847, -847, 596, 597, 598, 599, -847, -847, -847, + -847, -847, -847, 344, -847, 345, -847, 740, -847, 742, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, 361, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + 745, -847, -847, -847, -847, -847, -847, -847, -847, -847, + 746, 743, -847, -847, -847, -847, -847, 749, -847, 372, + -847, -847, -847, -847, -847, -847, -847, -847, 600, 601, + -847, -847, 757, -847, -847, -847, -847, -847, 379, -847, + -847, -847, -847, -847, -847, 602, 381, -847, 646, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, 444, -847, 759, 603, + -847, 63, -847, -847, -847, -847, 772, 604, 773, -22, + -847, -847, -847, -847, -847, 609, -847, -847, 775, -847, + 610, -847, -847, 774, -847, -847, 254, -847, 141, 774, + -847, -847, 781, 782, 785, 387, -847, -847, -847, -847, + -847, -847, 787, 621, 625, 633, 141, -847, 652, -847, + -847, -847, -847, -847 }; const unsigned short @@ -4137,154 +4156,155 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 45, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 58, 5, 70, 7, 137, 9, 280, 11, - 441, 13, 466, 15, 366, 17, 374, 19, 411, 21, - 245, 23, 558, 25, 630, 27, 619, 29, 47, 41, - 0, 0, 0, 0, 0, 468, 0, 376, 413, 0, + 35, 36, 58, 5, 70, 7, 139, 9, 282, 11, + 447, 13, 472, 15, 372, 17, 380, 19, 417, 21, + 247, 23, 564, 25, 636, 27, 625, 29, 47, 41, + 0, 0, 0, 0, 0, 474, 0, 382, 419, 0, 0, 0, 0, 49, 0, 48, 0, 0, 42, 68, - 628, 611, 613, 615, 0, 67, 0, 60, 62, 64, - 65, 66, 63, 617, 126, 152, 0, 0, 0, 487, - 489, 491, 150, 159, 161, 0, 0, 0, 0, 0, - 0, 0, 121, 272, 364, 403, 332, 454, 456, 325, - 223, 515, 458, 237, 256, 0, 541, 554, 556, 607, - 609, 635, 113, 0, 72, 74, 75, 76, 107, 108, - 109, 77, 105, 94, 95, 96, 80, 81, 102, 82, - 83, 84, 88, 89, 78, 106, 79, 86, 87, 100, - 101, 103, 97, 98, 99, 85, 90, 91, 92, 93, - 111, 112, 104, 110, 139, 141, 145, 0, 136, 0, - 128, 130, 131, 132, 133, 134, 135, 313, 315, 317, - 433, 311, 319, 0, 323, 321, 511, 310, 284, 285, - 286, 307, 308, 309, 297, 298, 0, 282, 289, 302, - 303, 304, 290, 292, 293, 295, 291, 287, 288, 305, - 306, 294, 299, 300, 301, 296, 452, 451, 447, 448, - 446, 0, 443, 445, 449, 450, 509, 497, 499, 503, - 501, 507, 505, 493, 486, 480, 484, 485, 0, 469, - 470, 481, 482, 483, 477, 472, 478, 474, 475, 476, - 479, 473, 0, 393, 204, 0, 397, 395, 400, 0, - 389, 390, 0, 377, 378, 380, 392, 381, 382, 383, - 399, 384, 385, 386, 387, 388, 427, 0, 0, 425, - 426, 429, 430, 0, 414, 415, 417, 418, 419, 420, - 421, 422, 423, 424, 252, 254, 249, 0, 247, 250, - 251, 0, 581, 583, 0, 586, 0, 0, 590, 594, - 0, 0, 598, 605, 579, 577, 578, 0, 560, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 0, 632, 634, 625, 0, 0, - 621, 623, 624, 46, 0, 0, 39, 0, 0, 0, - 0, 0, 0, 57, 0, 59, 0, 0, 0, 0, + 634, 617, 619, 621, 0, 67, 0, 60, 62, 64, + 65, 66, 63, 623, 128, 154, 0, 0, 0, 493, + 495, 497, 152, 161, 163, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 123, 274, 370, 409, 336, 460, + 462, 329, 225, 521, 464, 239, 258, 0, 547, 560, + 562, 641, 113, 0, 72, 74, 75, 76, 77, 78, + 109, 110, 111, 79, 107, 96, 97, 98, 82, 83, + 104, 84, 85, 86, 90, 91, 80, 108, 81, 88, + 89, 102, 103, 105, 99, 100, 101, 87, 92, 93, + 94, 95, 106, 112, 141, 143, 147, 0, 138, 0, + 130, 132, 133, 134, 135, 136, 137, 317, 319, 321, + 439, 315, 323, 0, 327, 325, 517, 314, 286, 287, + 288, 289, 290, 311, 312, 313, 301, 302, 0, 284, + 293, 306, 307, 308, 294, 296, 297, 299, 295, 291, + 292, 309, 310, 298, 303, 304, 305, 300, 458, 457, + 453, 454, 452, 0, 449, 451, 455, 456, 515, 503, + 505, 509, 507, 513, 511, 499, 492, 486, 490, 491, + 0, 475, 476, 487, 488, 489, 483, 478, 484, 480, + 481, 482, 485, 479, 0, 399, 206, 0, 403, 401, + 406, 0, 395, 396, 0, 383, 384, 386, 398, 387, + 388, 389, 405, 390, 391, 392, 393, 394, 433, 0, + 0, 431, 432, 435, 436, 0, 420, 421, 423, 424, + 425, 426, 427, 428, 429, 430, 254, 256, 251, 0, + 249, 252, 253, 0, 587, 589, 0, 592, 0, 0, + 596, 600, 0, 0, 604, 611, 613, 615, 585, 583, + 584, 0, 566, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 0, 638, + 640, 631, 0, 0, 627, 629, 630, 46, 0, 0, + 39, 0, 0, 0, 0, 0, 0, 57, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, - 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 281, 0, 0, 442, 0, 0, - 0, 0, 0, 0, 0, 0, 467, 0, 367, 0, - 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, - 0, 412, 0, 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 559, 0, 631, 0, 0, 0, 620, 50, 43, - 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, - 123, 124, 125, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 117, 118, 119, 120, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, - 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, - 149, 129, 0, 0, 0, 0, 0, 0, 331, 0, - 0, 0, 283, 0, 444, 0, 0, 0, 0, 0, - 0, 0, 0, 471, 0, 0, 391, 0, 0, 0, - 402, 379, 0, 431, 432, 416, 0, 0, 248, 580, - 0, 0, 585, 0, 588, 589, 0, 0, 596, 597, - 0, 0, 561, 633, 0, 627, 622, 0, 0, 0, - 612, 614, 616, 0, 0, 0, 488, 490, 492, 0, - 0, 163, 122, 274, 368, 405, 334, 40, 455, 457, - 327, 328, 329, 330, 326, 0, 0, 460, 239, 0, - 0, 555, 0, 608, 610, 0, 51, 140, 143, 144, - 142, 147, 148, 146, 314, 316, 318, 435, 312, 320, - 324, 322, 0, 453, 510, 498, 500, 504, 502, 508, - 506, 494, 394, 205, 398, 396, 401, 428, 253, 255, - 582, 584, 587, 592, 593, 591, 595, 600, 601, 602, - 603, 604, 599, 606, 163, 44, 0, 0, 0, 0, - 157, 0, 154, 156, 191, 197, 199, 201, 0, 0, - 0, 0, 0, 213, 215, 217, 219, 0, 0, 0, - 0, 0, 190, 0, 169, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 184, 185, 186, 181, 187, - 188, 189, 182, 183, 0, 167, 0, 164, 165, 278, - 0, 275, 276, 372, 0, 369, 370, 409, 0, 406, - 407, 338, 0, 335, 336, 232, 233, 234, 235, 236, - 0, 225, 227, 228, 229, 230, 231, 519, 0, 517, - 464, 0, 461, 462, 243, 0, 240, 241, 0, 0, - 0, 0, 0, 0, 0, 258, 260, 261, 262, 263, - 264, 265, 550, 552, 549, 547, 548, 0, 543, 545, - 546, 0, 639, 0, 637, 53, 439, 0, 436, 437, - 495, 513, 514, 0, 0, 69, 629, 618, 127, 0, - 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, + 71, 0, 0, 0, 0, 0, 140, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, + 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, + 473, 0, 373, 0, 0, 0, 0, 0, 0, 0, + 381, 0, 0, 0, 0, 418, 0, 0, 0, 0, + 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 565, 0, 637, + 0, 0, 0, 626, 50, 43, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 125, 126, 127, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 546, 0, 0, + 0, 0, 73, 0, 0, 0, 151, 131, 0, 0, + 0, 0, 0, 0, 335, 0, 0, 0, 285, 0, + 450, 0, 0, 0, 0, 0, 0, 0, 0, 477, + 0, 0, 397, 0, 0, 0, 408, 385, 0, 437, + 438, 422, 0, 0, 250, 586, 0, 0, 591, 0, + 594, 595, 0, 0, 602, 603, 0, 0, 0, 0, + 567, 639, 0, 633, 628, 0, 0, 0, 618, 620, + 622, 0, 0, 0, 494, 496, 498, 0, 0, 165, + 124, 276, 374, 411, 338, 40, 461, 463, 331, 332, + 333, 334, 330, 0, 0, 466, 241, 0, 0, 561, + 0, 0, 51, 142, 145, 146, 144, 149, 150, 148, + 318, 320, 322, 441, 316, 324, 328, 326, 0, 459, + 516, 504, 506, 510, 508, 514, 512, 500, 400, 207, + 404, 402, 407, 434, 255, 257, 588, 590, 593, 598, + 599, 597, 601, 606, 607, 608, 609, 610, 605, 612, + 614, 616, 165, 44, 0, 0, 0, 0, 159, 0, + 156, 158, 193, 199, 201, 203, 0, 0, 0, 0, + 0, 215, 217, 219, 221, 0, 0, 0, 0, 0, + 192, 0, 171, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 186, 187, 188, 183, 189, 190, 191, + 184, 185, 0, 169, 0, 166, 167, 280, 0, 277, + 278, 378, 0, 375, 376, 415, 0, 412, 413, 342, + 0, 339, 340, 234, 235, 236, 237, 238, 0, 227, + 229, 230, 231, 232, 233, 525, 0, 523, 470, 0, + 467, 468, 245, 0, 242, 243, 0, 0, 0, 0, + 0, 0, 0, 260, 262, 263, 264, 265, 266, 267, + 556, 558, 555, 553, 554, 0, 549, 551, 552, 0, + 645, 0, 643, 53, 445, 0, 442, 443, 501, 519, + 520, 0, 0, 69, 635, 624, 129, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 160, 0, 162, 0, 0, 273, 0, 376, - 365, 0, 413, 404, 0, 0, 333, 0, 0, 224, - 521, 0, 516, 468, 459, 0, 0, 238, 0, 0, - 0, 0, 0, 0, 0, 0, 257, 0, 0, 0, - 542, 557, 0, 0, 636, 55, 0, 54, 0, 434, - 0, 0, 512, 626, 0, 155, 0, 0, 0, 0, - 203, 206, 207, 208, 209, 0, 0, 0, 0, 221, - 222, 210, 211, 212, 170, 0, 166, 0, 277, 0, - 371, 0, 408, 363, 357, 345, 346, 360, 361, 362, - 348, 349, 342, 343, 344, 355, 356, 354, 0, 340, - 347, 358, 359, 350, 351, 352, 353, 337, 226, 537, - 0, 535, 536, 528, 529, 533, 534, 530, 531, 532, - 0, 522, 523, 525, 526, 527, 518, 0, 463, 0, - 242, 266, 267, 268, 269, 270, 271, 259, 0, 0, - 544, 653, 0, 651, 649, 643, 647, 648, 0, 641, - 645, 646, 644, 638, 52, 0, 0, 438, 0, 158, - 193, 194, 195, 196, 192, 198, 200, 202, 214, 216, - 218, 220, 168, 279, 373, 410, 0, 339, 0, 0, - 520, 0, 465, 244, 551, 553, 0, 0, 0, 0, - 640, 56, 440, 496, 341, 0, 539, 524, 0, 650, - 0, 642, 538, 0, 652, 657, 0, 655, 0, 0, - 654, 665, 0, 0, 0, 0, 659, 661, 662, 663, - 664, 656, 0, 0, 0, 0, 0, 658, 0, 667, - 668, 669, 660, 666 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, + 162, 0, 164, 0, 0, 275, 0, 382, 371, 0, + 419, 410, 0, 0, 337, 0, 0, 226, 527, 0, + 522, 474, 465, 0, 0, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 259, 0, 0, 0, 548, 563, + 0, 0, 642, 55, 0, 54, 0, 440, 0, 0, + 518, 632, 0, 157, 0, 0, 0, 0, 205, 208, + 209, 210, 211, 0, 0, 0, 0, 223, 224, 212, + 213, 214, 172, 0, 168, 0, 279, 0, 377, 0, + 414, 369, 361, 362, 363, 349, 350, 366, 367, 368, + 352, 353, 346, 347, 348, 359, 360, 358, 0, 344, + 351, 364, 365, 354, 355, 356, 357, 341, 228, 543, + 0, 541, 542, 534, 535, 539, 540, 536, 537, 538, + 0, 528, 529, 531, 532, 533, 524, 0, 469, 0, + 244, 268, 269, 270, 271, 272, 273, 261, 0, 0, + 550, 659, 0, 657, 655, 649, 653, 654, 0, 647, + 651, 652, 650, 644, 52, 0, 0, 444, 0, 160, + 195, 196, 197, 198, 194, 200, 202, 204, 216, 218, + 220, 222, 170, 281, 379, 416, 0, 343, 0, 0, + 526, 0, 471, 246, 557, 559, 0, 0, 0, 0, + 646, 56, 446, 502, 345, 0, 545, 530, 0, 656, + 0, 648, 544, 0, 658, 663, 0, 661, 0, 0, + 660, 671, 0, 0, 0, 0, 665, 667, 668, 669, + 670, 662, 0, 0, 0, 0, 0, 664, 0, 673, + 674, 675, 666, 672 }; const short Dhcp4Parser::yypgoto_[] = { - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -46, -827, -456, -827, - 176, -827, -827, -827, -827, -827, -827, -524, -827, -827, - -827, -70, -827, -827, -827, 441, -827, -827, -827, -827, - 225, 411, -55, -54, -27, -24, -9, 6, -827, -827, - -827, -827, 9, 11, -827, -827, 230, 408, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, 15, -827, -827, -827, -827, -827, - -827, 158, -827, 5, -827, -597, 28, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -35, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, 19, - -827, -827, -827, -827, -827, -827, -827, -827, -827, 2, - -827, -827, -827, -15, 409, -827, -827, -827, -827, -827, - -827, -827, -3, -827, -827, -827, -827, -827, -827, -826, - -827, -827, -827, 25, -827, -827, -827, 29, 443, -827, - -827, -827, -827, -827, -827, -827, -827, -818, -827, -23, - -827, -17, -827, 12, -827, -827, -827, -827, -827, -827, - -827, 22, -827, -827, -138, -65, -827, -827, -827, -827, - -827, 31, -827, -827, -827, 34, -827, 423, -827, -72, - -827, -827, -827, -827, -827, -66, -827, -827, -827, -827, - -827, -7, -827, -827, -827, 30, -827, -827, -827, 33, - -827, 424, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, 0, -827, -827, -827, 1, 452, -827, - -827, -39, -827, -19, -827, -59, -827, -827, -827, 27, - -827, -827, -827, 24, -827, 444, -58, -827, -52, -827, - -1, -827, 242, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -815, -827, -827, -827, -827, -827, 32, -827, -827, -827, - -126, -827, -827, -827, -827, -827, -827, -827, -827, 20, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - 264, 418, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, -827, -827, - -827, -827, -827, -827, -64, -827, -60, -827, -827, -827, - -827, -827, -827, -827, -827, -827, -827, -827, 294, 414, - -827, -827, -827, -827, -827, -827, -827, 302, 420, -57, - -827, -827, 23, -827, -827, -125, -827, -827, -827, -827, - -827, -827, -146, -827, -827, -161, -827, -827, -827, -827, - -827 + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -44, -847, -483, -847, + 187, -847, -847, -847, -847, -847, -847, -525, -847, -847, + -847, -70, -847, -847, -847, 417, -847, -847, -847, -847, + 200, 373, -54, -24, -5, -4, -1, 11, 14, 17, + -847, -847, -847, -847, 21, 25, -847, -847, 198, 388, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -16, -847, -847, -847, + -847, -847, -847, 123, -847, -31, -847, -603, -30, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -36, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -33, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -47, -847, -847, -847, -38, 378, -847, -847, -847, + -847, -847, -847, -847, -42, -847, -847, -847, -847, -847, + -847, -846, -847, -847, -847, -14, -847, -847, -847, -9, + 420, -847, -847, -847, -847, -847, -847, -847, -847, -845, + -847, 23, -847, 29, -847, 28, -847, -847, -847, -847, + -847, -847, -847, 7, -847, -847, -143, -65, -847, -847, + -847, -847, -847, 31, -847, -847, -847, 36, -847, 426, + -847, -72, -847, -847, -847, -847, -847, -64, -847, -847, + -847, -847, -847, -40, -847, -847, -847, 27, -847, -847, + -847, 34, -847, 419, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -3, -847, -847, -847, 0, + 457, -847, -847, -52, -847, -20, -847, -60, -847, -847, + -847, 35, -847, -847, -847, 38, -847, 447, -8, -847, + -2, -847, 10, -847, 243, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -826, -847, -847, -847, -847, -847, 37, -847, + -847, -847, -132, -847, -847, -847, -847, -847, -847, -847, + -847, 13, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, 262, 418, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + -847, -847, -847, -847, -847, -847, -847, -847, -847, -847, + 292, 413, -847, -847, -847, -847, -847, -847, -847, 310, + 425, -69, -847, -847, 16, -847, -847, -129, -847, -847, + -847, -847, -847, -847, -148, -847, -847, -164, -847, -847, + -847, -847, -847 }; const short @@ -4292,444 +4312,452 @@ namespace isc { namespace dhcp { { -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 38, 39, 40, 69, - 618, 87, 88, 41, 68, 84, 85, 637, 805, 886, - 887, 712, 43, 70, 96, 97, 98, 368, 45, 71, + 626, 87, 88, 41, 68, 84, 85, 643, 813, 894, + 895, 720, 43, 70, 96, 97, 98, 372, 45, 71, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 395, 153, 154, 155, 156, 377, 189, 190, 47, 72, - 191, 417, 192, 418, 640, 193, 419, 643, 194, 157, - 385, 158, 378, 691, 692, 693, 819, 159, 386, 160, - 387, 736, 737, 738, 843, 713, 714, 715, 822, 1004, - 716, 823, 717, 824, 718, 825, 719, 720, 450, 721, - 722, 723, 724, 725, 726, 727, 728, 831, 729, 832, - 730, 833, 731, 834, 732, 733, 161, 403, 760, 761, - 762, 763, 764, 765, 766, 162, 406, 775, 776, 777, - 866, 61, 79, 317, 318, 319, 463, 320, 464, 163, - 407, 784, 785, 786, 787, 788, 789, 790, 791, 164, - 396, 740, 741, 742, 846, 49, 73, 216, 217, 218, - 427, 219, 423, 220, 424, 221, 425, 222, 428, 223, - 431, 224, 430, 165, 402, 624, 226, 166, 399, 752, - 753, 754, 855, 938, 939, 167, 397, 55, 76, 744, - 745, 746, 849, 57, 77, 282, 283, 284, 285, 286, - 287, 288, 449, 289, 453, 290, 452, 291, 292, 454, - 293, 168, 398, 748, 749, 750, 852, 59, 78, 303, - 304, 305, 306, 307, 458, 308, 309, 310, 311, 228, - 426, 807, 808, 809, 888, 51, 74, 241, 242, 243, - 435, 169, 400, 170, 401, 171, 405, 771, 772, 773, - 863, 53, 75, 258, 259, 260, 172, 382, 173, 383, - 174, 384, 264, 445, 812, 891, 265, 439, 266, 440, - 267, 442, 268, 441, 269, 444, 270, 443, 271, 438, - 235, 432, 813, 175, 404, 768, 769, 860, 960, 961, - 962, 963, 964, 1018, 965, 176, 177, 409, 797, 798, - 799, 877, 800, 878, 178, 410, 179, 411, 63, 80, - 337, 338, 339, 340, 468, 341, 469, 342, 343, 471, - 344, 345, 346, 474, 675, 347, 475, 348, 349, 350, - 478, 682, 351, 479, 180, 412, 181, 413, 99, 370, - 100, 371, 101, 372, 182, 376, 67, 82, 359, 360, - 361, 484, 362, 102, 369, 65, 81, 354, 355, 183, - 414, 803, 804, 882, 988, 989, 990, 991, 1028, 992, - 1026, 1046, 1047, 1048, 1055, 1056, 1057, 1062, 1058, 1059, - 1060 + 153, 154, 401, 155, 156, 157, 158, 381, 189, 190, + 47, 72, 191, 421, 192, 422, 646, 193, 423, 649, + 194, 159, 389, 160, 382, 699, 700, 701, 827, 161, + 390, 162, 391, 744, 745, 746, 851, 721, 722, 723, + 830, 1014, 724, 831, 725, 832, 726, 833, 727, 728, + 454, 729, 730, 731, 732, 733, 734, 735, 736, 839, + 737, 840, 738, 841, 739, 842, 740, 741, 163, 409, + 768, 769, 770, 771, 772, 773, 774, 164, 412, 783, + 784, 785, 874, 61, 79, 319, 320, 321, 467, 322, + 468, 165, 413, 792, 793, 794, 795, 796, 797, 798, + 799, 166, 402, 748, 749, 750, 854, 49, 73, 218, + 219, 220, 431, 221, 427, 222, 428, 223, 429, 224, + 432, 225, 435, 226, 434, 167, 408, 632, 228, 168, + 405, 760, 761, 762, 863, 948, 949, 169, 403, 55, + 76, 752, 753, 754, 857, 57, 77, 284, 285, 286, + 287, 288, 289, 290, 453, 291, 457, 292, 456, 293, + 294, 458, 295, 170, 404, 756, 757, 758, 860, 59, + 78, 305, 306, 307, 308, 309, 462, 310, 311, 312, + 313, 230, 430, 815, 816, 817, 896, 51, 74, 243, + 244, 245, 439, 171, 406, 172, 407, 173, 411, 779, + 780, 781, 871, 53, 75, 260, 261, 262, 174, 386, + 175, 387, 176, 388, 266, 449, 820, 899, 267, 443, + 268, 444, 269, 446, 270, 445, 271, 448, 272, 447, + 273, 442, 237, 436, 821, 177, 410, 776, 777, 868, + 970, 971, 972, 973, 974, 1028, 975, 178, 179, 415, + 805, 806, 807, 885, 808, 886, 180, 416, 181, 417, + 63, 80, 341, 342, 343, 344, 472, 345, 473, 346, + 347, 475, 348, 349, 350, 478, 681, 351, 479, 352, + 353, 354, 482, 688, 355, 483, 356, 484, 357, 485, + 99, 374, 100, 375, 101, 376, 182, 380, 67, 82, + 363, 364, 365, 490, 366, 102, 373, 65, 81, 358, + 359, 183, 418, 811, 812, 890, 998, 999, 1000, 1001, + 1038, 1002, 1036, 1056, 1057, 1058, 1065, 1066, 1067, 1072, + 1068, 1069, 1070 }; const unsigned short Dhcp4Parser::yytable_[] = { - 95, 142, 188, 207, 237, 254, 301, 280, 299, 316, - 334, 272, 302, 734, 231, 232, 352, 261, 208, 209, - 353, 233, 83, 262, 356, 650, 31, 89, 32, 933, - 33, 654, 673, 195, 229, 244, 256, 934, 294, 312, - 946, 335, 281, 300, 42, 374, 210, 415, 30, 211, - 375, 238, 416, 196, 230, 245, 257, 239, 295, 313, - 273, 336, 314, 315, 212, 617, 227, 240, 255, 184, - 185, 44, 234, 186, 263, 617, 187, 858, 421, 213, - 859, 433, 214, 422, 215, 225, 434, 46, 107, 108, - 109, 110, 111, 48, 861, 50, 274, 862, 275, 276, - 127, 128, 277, 278, 279, 357, 358, 52, 127, 128, - 778, 779, 780, 781, 782, 783, 314, 315, 115, 116, - 117, 118, 119, 120, 94, 638, 639, 197, 198, 199, - 1051, 125, 54, 1052, 1053, 1054, 127, 128, 792, 793, - 125, 56, 200, 58, 127, 128, 201, 202, 203, 129, - 436, 674, 236, 127, 128, 437, 204, 60, 883, 205, - 132, 884, 90, 103, 465, 204, 104, 206, 205, 466, - 62, 91, 92, 93, 64, 105, 66, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 480, 86, 94, 94, - 933, 481, 34, 35, 36, 37, 124, 94, 934, 482, - 1049, 946, 486, 1050, 483, 274, 141, 487, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 127, 128, 415, - 124, 125, 641, 642, 815, 94, 109, 110, 111, 253, - 810, 126, 482, 94, 127, 128, 486, 816, 421, 129, - 363, 817, 94, 818, 130, 131, 915, 364, 366, 365, - 132, 677, 678, 679, 680, 367, 109, 110, 111, 820, - 133, 373, 379, 134, 821, 380, 124, 125, 274, 447, - 135, 136, 840, 840, 137, 138, 381, 841, 842, 388, - 127, 128, 981, 389, 982, 983, 681, 274, 296, 275, - 276, 297, 298, 949, 950, 139, 140, 125, 141, 127, - 128, 390, 875, 879, 95, 391, 94, 876, 880, 392, - 127, 128, 755, 756, 757, 758, 393, 759, 488, 489, - 480, 246, 394, 94, 408, 881, 457, 247, 248, 249, - 250, 251, 252, 840, 253, 433, 1016, 465, 1012, 1029, - 1013, 1017, 1023, 436, 1030, 142, 420, 1066, 1032, 429, - 451, 188, 1067, 620, 621, 622, 623, 1000, 1001, 1002, - 1003, 446, 448, 207, 455, 456, 237, 459, 460, 94, - 461, 462, 490, 467, 231, 232, 470, 254, 208, 209, - 472, 233, 195, 473, 476, 477, 485, 280, 94, 261, - 301, 491, 299, 492, 229, 262, 302, 244, 493, 94, - 494, 495, 196, 497, 498, 499, 210, 503, 256, 211, - 334, 500, 501, 238, 230, 502, 352, 245, 294, 239, - 353, 504, 281, 312, 212, 356, 227, 300, 257, 240, - 505, 506, 234, 107, 108, 109, 110, 111, 295, 213, - 255, 335, 214, 313, 215, 225, 263, 600, 601, 602, - 507, 508, 509, 510, 511, 516, 515, 512, 513, 514, - 517, 336, 518, 115, 116, 117, 118, 119, 120, 519, - 520, 123, 521, 522, 1033, 523, 125, 274, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 127, - 128, 535, 202, 537, 129, 538, 539, 542, 540, 543, - 544, 204, 545, 546, 205, 547, 549, 548, 606, 550, - 551, 553, 206, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 555, 142, 556, - 557, 669, 558, 559, 188, 560, 561, 562, 564, 565, - 567, 568, 356, 566, 569, 572, 576, 570, 573, 574, - 577, 685, 579, 580, 581, 582, 583, 584, 585, 607, - 794, 586, 334, 587, 588, 195, 589, 590, 352, 591, - 594, 597, 353, 676, 595, 598, 599, 603, 94, 604, - 605, 608, 609, 610, 611, 196, 127, 128, 613, 694, - 612, 795, 614, 335, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 796, 615, 336, 616, 32, 619, 625, 626, 627, - 628, 633, 690, 629, 630, 274, 632, 635, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 634, 636, 644, 645, 647, 652, 139, 140, 684, - 646, 892, 735, 739, 743, 747, 648, 649, 751, 651, - 767, 653, 770, 774, 802, 655, 806, 826, 656, 827, - 828, 657, 829, 830, 658, 94, 835, 836, 837, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 670, - 671, 672, 683, 838, 839, 845, 900, 844, 848, 847, - 850, 851, 853, 854, 857, 856, 865, 631, 864, 868, - 867, 869, 870, 871, 872, 873, 874, 890, 885, 889, - 894, 893, 896, 897, 898, 899, 94, 901, 902, 905, - 906, 907, 903, 904, 908, 978, 909, 979, 994, 995, - 1043, 998, 1014, 910, 1019, 1027, 911, 1015, 1021, 912, - 1020, 999, 913, 971, 972, 1022, 973, 974, 975, 1035, - 976, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1024, 1038, - 1025, 1031, 1040, 1045, 1039, 1036, 207, 1042, 1063, 280, - 301, 1044, 299, 1064, 1065, 923, 302, 231, 232, 1068, - 951, 208, 209, 254, 233, 953, 316, 943, 1069, 1070, - 924, 925, 957, 944, 1071, 261, 1073, 229, 958, 794, - 294, 262, 984, 312, 281, 496, 941, 300, 237, 210, - 932, 955, 211, 686, 256, 952, 536, 230, 926, 541, - 295, 927, 935, 313, 689, 895, 942, 212, 936, 227, - 795, 956, 814, 986, 257, 234, 928, 985, 940, 244, - 916, 969, 213, 954, 945, 214, 255, 215, 225, 959, - 796, 929, 263, 987, 930, 238, 931, 937, 914, 245, - 970, 239, 977, 918, 578, 917, 552, 948, 1034, 947, - 571, 240, 920, 919, 922, 921, 575, 967, 554, 996, - 997, 563, 968, 966, 811, 1037, 801, 688, 592, 980, - 596, 687, 593, 1061, 1041, 1072, 993, 0, 0, 0, + 95, 142, 188, 207, 239, 256, 303, 282, 301, 318, + 338, 274, 360, 233, 304, 742, 89, 943, 944, 208, + 195, 231, 246, 258, 83, 296, 314, 31, 339, 32, + 656, 33, 30, 229, 242, 257, 660, 956, 361, 362, + 42, 283, 302, 109, 110, 111, 625, 44, 679, 209, + 276, 46, 196, 232, 247, 259, 625, 297, 315, 378, + 340, 419, 129, 130, 379, 234, 420, 263, 210, 211, + 86, 235, 212, 264, 184, 185, 316, 317, 186, 866, + 48, 187, 867, 236, 213, 265, 127, 214, 316, 317, + 215, 109, 110, 111, 216, 644, 645, 240, 217, 129, + 130, 227, 50, 241, 683, 684, 685, 686, 425, 437, + 248, 52, 127, 426, 438, 54, 249, 250, 251, 252, + 253, 254, 56, 255, 238, 129, 130, 991, 58, 992, + 993, 440, 60, 126, 127, 276, 441, 204, 94, 687, + 205, 469, 62, 129, 130, 486, 470, 129, 130, 126, + 487, 94, 488, 90, 129, 130, 103, 489, 64, 104, + 959, 960, 91, 92, 93, 66, 647, 648, 105, 680, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 94, + 943, 944, 786, 787, 788, 789, 790, 791, 94, 492, + 255, 818, 800, 801, 493, 34, 35, 36, 37, 141, + 956, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 367, 368, 94, 126, 127, 763, 764, 765, + 766, 869, 767, 419, 870, 369, 128, 370, 823, 129, + 130, 371, 94, 488, 131, 377, 94, 492, 824, 132, + 133, 425, 825, 94, 891, 134, 826, 892, 923, 276, + 298, 277, 278, 299, 300, 135, 383, 1059, 136, 828, + 1060, 129, 130, 848, 829, 137, 138, 702, 849, 139, + 140, 275, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 384, + 385, 1061, 848, 141, 1062, 1063, 1064, 850, 107, 108, + 109, 110, 111, 392, 393, 276, 394, 395, 95, 276, + 396, 277, 278, 397, 883, 279, 280, 281, 94, 884, + 398, 129, 130, 399, 494, 495, 400, 414, 115, 116, + 117, 118, 119, 120, 121, 122, 424, 887, 450, 197, + 198, 199, 888, 127, 433, 451, 486, 848, 437, 142, + 94, 889, 1022, 1023, 200, 188, 129, 130, 201, 202, + 203, 131, 452, 455, 1026, 460, 459, 207, 204, 1027, + 239, 205, 134, 195, 461, 469, 465, 233, 463, 206, + 1033, 256, 1039, 208, 440, 231, 464, 1040, 246, 1042, + 1076, 282, 466, 506, 303, 1077, 301, 229, 471, 258, + 242, 474, 304, 476, 477, 196, 94, 480, 481, 296, + 94, 257, 491, 209, 314, 496, 338, 232, 497, 360, + 247, 628, 629, 630, 631, 283, 498, 499, 500, 234, + 302, 259, 210, 211, 339, 235, 212, 1010, 1011, 1012, + 1013, 297, 501, 263, 503, 94, 315, 236, 213, 264, + 504, 214, 505, 507, 215, 608, 609, 610, 216, 508, + 509, 265, 217, 240, 510, 227, 340, 511, 512, 241, + 107, 108, 109, 110, 111, 513, 514, 520, 515, 516, + 524, 517, 518, 1043, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 519, 525, + 115, 116, 117, 118, 119, 120, 121, 122, 521, 523, + 125, 522, 526, 527, 528, 127, 276, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 129, 130, + 540, 202, 541, 131, 543, 544, 142, 545, 360, 675, + 204, 546, 188, 205, 548, 549, 550, 551, 552, 553, + 554, 206, 129, 130, 555, 556, 557, 559, 561, 562, + 195, 693, 563, 564, 565, 566, 567, 568, 802, 570, + 338, 571, 572, 573, 574, 575, 578, 576, 582, 583, + 586, 579, 580, 585, 587, 588, 803, 589, 339, 590, + 591, 592, 196, 593, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 594, 595, 596, + 597, 598, 599, 336, 337, 602, 603, 94, 804, 605, + 340, 606, 614, 607, 611, 612, 613, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 698, 627, 32, + 633, 94, 634, 635, 636, 682, 650, 637, 638, 640, + 641, 642, 651, 652, 653, 654, 655, 657, 658, 659, + 661, 662, 663, 664, 665, 666, 667, 668, 692, 669, + 670, 671, 672, 673, 674, 676, 677, 678, 743, 689, + 690, 747, 751, 755, 691, 759, 775, 778, 782, 810, + 814, 834, 835, 836, 837, 838, 843, 844, 845, 846, + 847, 853, 893, 852, 856, 855, 858, 859, 861, 862, + 865, 864, 873, 908, 872, 876, 875, 877, 878, 879, + 880, 881, 882, 898, 909, 897, 639, 902, 901, 900, + 904, 905, 906, 907, 913, 914, 915, 916, 910, 988, + 989, 1005, 911, 1004, 921, 1008, 1031, 912, 1024, 1029, + 1025, 917, 918, 919, 1030, 920, 981, 1032, 982, 983, + 984, 1037, 985, 1045, 986, 1009, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1034, 1035, 1041, 1048, 1050, 1049, 1046, + 1053, 1055, 1052, 1054, 207, 1073, 1074, 282, 303, 1075, + 301, 1078, 542, 931, 233, 502, 304, 1079, 961, 1080, + 208, 256, 231, 963, 318, 296, 694, 1081, 314, 932, + 697, 951, 903, 547, 229, 822, 965, 802, 922, 258, + 994, 283, 924, 950, 302, 1083, 239, 942, 964, 980, + 209, 257, 962, 958, 232, 803, 979, 297, 996, 933, + 315, 987, 926, 952, 246, 925, 234, 584, 966, 210, + 211, 259, 235, 212, 995, 953, 242, 558, 934, 935, + 967, 954, 936, 263, 236, 213, 968, 804, 214, 264, + 997, 215, 957, 955, 937, 216, 247, 938, 969, 217, + 939, 265, 227, 1044, 940, 581, 945, 577, 941, 930, + 928, 947, 946, 927, 929, 1007, 1006, 560, 569, 1047, + 990, 819, 809, 696, 600, 604, 976, 1003, 978, 977, + 1051, 1071, 1082, 601, 0, 0, 0, 695, 0, 240, + 0, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 923, 0, 0, 0, - 0, 951, 0, 0, 0, 0, 953, 0, 943, 984, - 0, 924, 925, 957, 944, 0, 0, 0, 0, 958, - 0, 0, 0, 0, 0, 0, 0, 941, 0, 0, - 0, 932, 955, 0, 0, 0, 952, 0, 0, 926, - 986, 0, 927, 935, 985, 0, 0, 942, 0, 936, - 0, 0, 956, 0, 0, 0, 0, 928, 0, 940, - 987, 0, 0, 0, 954, 945, 0, 0, 0, 0, - 959, 0, 929, 0, 0, 930, 0, 931, 937 + 0, 0, 0, 0, 0, 0, 931, 0, 0, 0, + 0, 961, 0, 0, 0, 0, 963, 0, 0, 994, + 0, 0, 932, 0, 951, 0, 0, 0, 0, 965, + 0, 0, 0, 0, 0, 0, 950, 996, 0, 0, + 942, 964, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 0, 933, 995, 0, 0, 952, 0, 0, 0, + 0, 966, 0, 0, 0, 0, 0, 0, 953, 997, + 0, 934, 935, 967, 954, 936, 0, 0, 0, 968, + 0, 0, 0, 0, 0, 0, 955, 937, 0, 0, + 938, 969, 0, 939, 0, 0, 0, 940, 0, 945, + 0, 941, 0, 0, 947, 946 }; const short Dhcp4Parser::yycheck_[] = { 70, 71, 72, 73, 74, 75, 78, 77, 78, 79, - 80, 76, 78, 610, 73, 73, 80, 75, 73, 73, - 80, 73, 68, 75, 81, 549, 5, 10, 7, 855, - 9, 555, 18, 72, 73, 74, 75, 855, 77, 78, - 855, 80, 77, 78, 7, 3, 73, 3, 0, 73, - 8, 74, 8, 72, 73, 74, 75, 74, 77, 78, - 34, 80, 109, 110, 73, 521, 73, 74, 75, 15, - 16, 7, 73, 19, 75, 531, 22, 3, 3, 73, - 6, 3, 73, 8, 73, 73, 8, 7, 26, 27, - 28, 29, 30, 7, 3, 7, 70, 6, 72, 73, - 82, 83, 76, 77, 78, 12, 13, 7, 82, 83, - 112, 113, 114, 115, 116, 117, 109, 110, 56, 57, - 58, 59, 60, 61, 171, 17, 18, 65, 66, 67, - 148, 69, 7, 151, 152, 153, 82, 83, 120, 121, - 69, 7, 80, 7, 82, 83, 84, 85, 86, 87, - 3, 137, 81, 82, 83, 8, 94, 7, 3, 97, - 98, 6, 145, 11, 3, 94, 14, 105, 97, 8, - 7, 154, 155, 156, 7, 23, 7, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 3, 171, 171, 171, - 1016, 8, 171, 172, 173, 174, 68, 171, 1016, 3, - 3, 1016, 3, 6, 8, 70, 146, 8, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 82, 83, 3, - 68, 69, 20, 21, 8, 171, 28, 29, 30, 106, - 107, 79, 3, 171, 82, 83, 3, 8, 3, 87, - 6, 8, 171, 8, 92, 93, 843, 3, 8, 4, - 98, 139, 140, 141, 142, 3, 28, 29, 30, 3, - 108, 4, 4, 111, 8, 4, 68, 69, 70, 3, - 118, 119, 3, 3, 122, 123, 4, 8, 8, 4, - 82, 83, 147, 4, 149, 150, 174, 70, 71, 72, - 73, 74, 75, 95, 96, 143, 144, 69, 146, 82, - 83, 4, 3, 3, 374, 4, 171, 8, 8, 4, - 82, 83, 99, 100, 101, 102, 4, 104, 364, 365, - 3, 93, 4, 171, 4, 8, 3, 99, 100, 101, - 102, 103, 104, 3, 106, 3, 3, 3, 8, 3, - 8, 8, 8, 3, 8, 415, 4, 3, 8, 4, - 4, 421, 8, 88, 89, 90, 91, 35, 36, 37, - 38, 8, 8, 433, 4, 8, 436, 4, 4, 171, - 8, 3, 171, 4, 433, 433, 4, 447, 433, 433, - 4, 433, 421, 4, 4, 4, 4, 457, 171, 447, - 462, 4, 462, 4, 433, 447, 462, 436, 4, 171, - 4, 4, 421, 4, 4, 4, 433, 4, 447, 433, - 480, 174, 174, 436, 433, 174, 480, 436, 457, 436, - 480, 4, 457, 462, 433, 482, 433, 462, 447, 436, - 4, 4, 433, 26, 27, 28, 29, 30, 457, 433, - 447, 480, 433, 462, 433, 433, 447, 493, 494, 495, - 4, 4, 172, 172, 172, 4, 172, 174, 173, 173, - 4, 480, 4, 56, 57, 58, 59, 60, 61, 4, - 4, 64, 4, 4, 998, 4, 69, 70, 4, 4, - 4, 4, 4, 172, 4, 4, 4, 4, 4, 82, - 83, 4, 85, 4, 87, 4, 4, 4, 174, 4, - 4, 94, 4, 4, 97, 4, 4, 172, 171, 4, - 4, 4, 105, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 4, 598, 4, - 4, 577, 4, 4, 604, 4, 4, 4, 4, 4, - 4, 4, 599, 172, 4, 4, 4, 174, 174, 174, - 4, 597, 174, 4, 4, 172, 4, 172, 172, 171, - 630, 4, 632, 4, 174, 604, 174, 4, 632, 4, - 4, 4, 632, 138, 172, 7, 7, 7, 171, 7, - 7, 171, 7, 7, 5, 604, 82, 83, 5, 34, - 171, 630, 5, 632, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 630, 5, 632, 5, 7, 171, 5, 5, 5, - 5, 171, 24, 7, 7, 70, 7, 5, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 171, 5, 171, 171, 5, 7, 143, 144, 5, - 171, 8, 7, 7, 7, 7, 171, 171, 7, 171, - 7, 171, 7, 7, 7, 171, 7, 4, 171, 4, - 4, 171, 4, 4, 171, 171, 4, 4, 4, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 4, 4, 3, 172, 6, 3, 6, - 6, 3, 6, 3, 3, 6, 3, 531, 6, 3, - 6, 4, 4, 4, 4, 4, 4, 3, 171, 6, - 4, 6, 4, 4, 4, 4, 171, 174, 172, 4, - 4, 4, 174, 172, 4, 4, 172, 4, 6, 3, - 5, 4, 8, 172, 4, 4, 172, 8, 3, 172, - 8, 171, 174, 172, 172, 8, 172, 172, 172, 4, - 172, 171, 171, 171, 171, 171, 171, 171, 171, 4, - 171, 171, 4, 7, 172, 174, 846, 171, 4, 849, - 852, 171, 852, 4, 4, 855, 852, 846, 846, 4, - 860, 846, 846, 863, 846, 860, 866, 855, 174, 172, - 855, 855, 860, 855, 172, 863, 171, 846, 860, 879, - 849, 863, 882, 852, 849, 374, 855, 852, 888, 846, - 855, 860, 846, 598, 863, 860, 415, 846, 855, 421, - 849, 855, 855, 852, 604, 820, 855, 846, 855, 846, - 879, 860, 684, 882, 863, 846, 855, 882, 855, 888, - 845, 866, 846, 860, 855, 846, 863, 846, 846, 860, - 879, 855, 863, 882, 855, 888, 855, 855, 840, 888, - 868, 888, 875, 848, 465, 846, 433, 858, 1016, 857, - 457, 888, 851, 849, 854, 852, 462, 863, 436, 888, - 890, 447, 865, 861, 652, 1021, 632, 603, 480, 879, - 486, 599, 482, 1049, 1029, 1066, 883, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 80, 76, 81, 73, 78, 618, 10, 863, 863, 73, + 72, 73, 74, 75, 68, 77, 78, 5, 80, 7, + 555, 9, 0, 73, 74, 75, 561, 863, 12, 13, + 7, 77, 78, 28, 29, 30, 529, 7, 18, 73, + 72, 7, 72, 73, 74, 75, 539, 77, 78, 3, + 80, 3, 84, 85, 8, 73, 8, 75, 73, 73, + 173, 73, 73, 75, 15, 16, 111, 112, 19, 3, + 7, 22, 6, 73, 73, 75, 71, 73, 111, 112, + 73, 28, 29, 30, 73, 17, 18, 74, 73, 84, + 85, 73, 7, 74, 141, 142, 143, 144, 3, 3, + 95, 7, 71, 8, 8, 7, 101, 102, 103, 104, + 105, 106, 7, 108, 83, 84, 85, 149, 7, 151, + 152, 3, 7, 70, 71, 72, 8, 96, 173, 176, + 99, 3, 7, 84, 85, 3, 8, 84, 85, 70, + 8, 173, 3, 147, 84, 85, 11, 8, 7, 14, + 97, 98, 156, 157, 158, 7, 20, 21, 23, 139, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 173, + 1026, 1026, 114, 115, 116, 117, 118, 119, 173, 3, + 108, 109, 122, 123, 8, 173, 174, 175, 176, 148, + 1026, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 6, 3, 173, 70, 71, 101, 102, 103, + 104, 3, 106, 3, 6, 4, 81, 8, 8, 84, + 85, 3, 173, 3, 89, 4, 173, 3, 8, 94, + 95, 3, 8, 173, 3, 100, 8, 6, 851, 72, + 73, 74, 75, 76, 77, 110, 4, 3, 113, 3, + 6, 84, 85, 3, 8, 120, 121, 34, 8, 124, + 125, 34, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 4, + 4, 150, 3, 148, 153, 154, 155, 8, 26, 27, + 28, 29, 30, 4, 4, 72, 4, 4, 378, 72, + 4, 74, 75, 4, 3, 78, 79, 80, 173, 8, + 4, 84, 85, 4, 368, 369, 4, 4, 56, 57, + 58, 59, 60, 61, 62, 63, 4, 3, 8, 67, + 68, 69, 8, 71, 4, 3, 3, 3, 3, 419, + 173, 8, 8, 8, 82, 425, 84, 85, 86, 87, + 88, 89, 8, 4, 3, 8, 4, 437, 96, 8, + 440, 99, 100, 425, 3, 3, 8, 437, 4, 107, + 8, 451, 3, 437, 3, 437, 4, 8, 440, 8, + 3, 461, 3, 176, 466, 8, 466, 437, 4, 451, + 440, 4, 466, 4, 4, 425, 173, 4, 4, 461, + 173, 451, 4, 437, 466, 173, 486, 437, 4, 488, + 440, 90, 91, 92, 93, 461, 4, 4, 4, 437, + 466, 451, 437, 437, 486, 437, 437, 35, 36, 37, + 38, 461, 4, 451, 4, 173, 466, 437, 437, 451, + 4, 437, 4, 176, 437, 499, 500, 501, 437, 176, + 4, 451, 437, 440, 4, 437, 486, 4, 4, 440, + 26, 27, 28, 29, 30, 4, 4, 176, 174, 174, + 4, 174, 174, 1008, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 174, 4, + 56, 57, 58, 59, 60, 61, 62, 63, 175, 174, + 66, 175, 4, 4, 4, 71, 72, 4, 4, 4, + 4, 4, 4, 4, 4, 174, 4, 4, 84, 85, + 4, 87, 4, 89, 4, 4, 606, 4, 607, 583, + 96, 176, 612, 99, 4, 4, 4, 4, 4, 4, + 174, 107, 84, 85, 4, 4, 4, 4, 4, 4, + 612, 605, 4, 4, 4, 4, 4, 4, 638, 4, + 640, 4, 174, 4, 4, 4, 4, 176, 4, 4, + 4, 176, 176, 176, 4, 174, 638, 4, 640, 174, + 174, 4, 612, 4, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 176, 176, 4, + 4, 4, 4, 145, 146, 4, 174, 173, 638, 4, + 640, 7, 173, 7, 7, 7, 7, 173, 173, 7, + 7, 5, 173, 5, 5, 5, 5, 24, 173, 7, + 5, 173, 5, 5, 5, 140, 173, 7, 7, 7, + 5, 5, 173, 173, 5, 173, 173, 173, 7, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 5, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 7, 173, + 173, 7, 7, 7, 173, 7, 7, 7, 7, 7, + 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 3, 173, 6, 3, 6, 6, 3, 6, 3, + 3, 6, 3, 174, 6, 3, 6, 4, 4, 4, + 4, 4, 4, 3, 176, 6, 539, 4, 6, 8, + 4, 4, 4, 4, 4, 4, 4, 4, 174, 4, + 4, 3, 176, 6, 176, 4, 3, 174, 8, 4, + 8, 174, 174, 174, 8, 174, 174, 8, 174, 174, + 174, 4, 174, 4, 174, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 4, 4, 174, 176, + 5, 7, 173, 173, 854, 4, 4, 857, 860, 4, + 860, 4, 419, 863, 854, 378, 860, 176, 868, 174, + 854, 871, 854, 868, 874, 857, 606, 174, 860, 863, + 612, 863, 828, 425, 854, 692, 868, 887, 848, 871, + 890, 857, 853, 863, 860, 173, 896, 863, 868, 876, + 854, 871, 868, 866, 854, 887, 874, 857, 890, 863, + 860, 883, 856, 863, 896, 854, 854, 469, 868, 854, + 854, 871, 854, 854, 890, 863, 896, 437, 863, 863, + 868, 863, 863, 871, 854, 854, 868, 887, 854, 871, + 890, 854, 865, 863, 863, 854, 896, 863, 868, 854, + 863, 871, 854, 1026, 863, 466, 863, 461, 863, 862, + 859, 863, 863, 857, 860, 898, 896, 440, 451, 1031, + 887, 658, 640, 611, 486, 492, 869, 891, 873, 871, + 1039, 1059, 1076, 488, -1, -1, -1, 607, -1, 896, + -1, -1, -1, -1, -1, 896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1016, -1, -1, -1, - -1, 1021, -1, -1, -1, -1, 1021, -1, 1016, 1029, - -1, 1016, 1016, 1021, 1016, -1, -1, -1, -1, 1021, - -1, -1, -1, -1, -1, -1, -1, 1016, -1, -1, - -1, 1016, 1021, -1, -1, -1, 1021, -1, -1, 1016, - 1029, -1, 1016, 1016, 1029, -1, -1, 1016, -1, 1016, - -1, -1, 1021, -1, -1, -1, -1, 1016, -1, 1016, - 1029, -1, -1, -1, 1021, 1016, -1, -1, -1, -1, - 1021, -1, 1016, -1, -1, 1016, -1, 1016, 1016 + -1, -1, -1, -1, -1, -1, 1026, -1, -1, -1, + -1, 1031, -1, -1, -1, -1, 1031, -1, -1, 1039, + -1, -1, 1026, -1, 1026, -1, -1, -1, -1, 1031, + -1, -1, -1, -1, -1, -1, 1026, 1039, -1, -1, + 1026, 1031, -1, -1, -1, 1031, -1, -1, -1, -1, + -1, -1, 1026, 1039, -1, -1, 1026, -1, -1, -1, + -1, 1031, -1, -1, -1, -1, -1, -1, 1026, 1039, + -1, 1026, 1026, 1031, 1026, 1026, -1, -1, -1, 1031, + -1, -1, -1, -1, -1, -1, 1026, 1026, -1, -1, + 1026, 1031, -1, 1026, -1, -1, -1, 1026, -1, 1026, + -1, 1026, -1, -1, 1026, 1026 }; const unsigned short Dhcp4Parser::yystos_[] = { - 0, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 0, 5, 7, 9, 171, 172, 173, 174, 191, 192, - 193, 198, 7, 207, 7, 213, 7, 233, 7, 330, - 7, 410, 7, 426, 7, 362, 7, 368, 7, 392, - 7, 306, 7, 483, 7, 530, 7, 521, 199, 194, - 208, 214, 234, 331, 411, 427, 363, 369, 393, 307, - 484, 531, 522, 191, 200, 201, 171, 196, 197, 10, - 145, 154, 155, 156, 171, 206, 209, 210, 211, 513, - 515, 517, 528, 11, 14, 23, 25, 26, 27, 28, + 0, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 0, 5, 7, 9, 173, 174, 175, 176, 193, 194, + 195, 200, 7, 209, 7, 215, 7, 237, 7, 334, + 7, 414, 7, 430, 7, 366, 7, 372, 7, 396, + 7, 310, 7, 487, 7, 534, 7, 525, 201, 196, + 210, 216, 238, 335, 415, 431, 367, 373, 397, 311, + 488, 535, 526, 193, 202, 203, 173, 198, 199, 10, + 147, 156, 157, 158, 173, 208, 211, 212, 213, 517, + 519, 521, 532, 11, 14, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 68, 69, 79, 82, 83, 87, - 92, 93, 98, 108, 111, 118, 119, 122, 123, 143, - 144, 146, 206, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 226, 227, 228, 229, 244, 246, 252, - 254, 291, 300, 314, 324, 348, 352, 360, 386, 416, - 418, 420, 431, 433, 435, 458, 470, 471, 479, 481, - 509, 511, 519, 534, 15, 16, 19, 22, 206, 231, - 232, 235, 237, 240, 243, 416, 418, 65, 66, 67, - 80, 84, 85, 86, 94, 97, 105, 206, 217, 218, - 219, 220, 221, 222, 227, 228, 332, 333, 334, 336, - 338, 340, 342, 344, 346, 348, 351, 386, 404, 416, - 418, 420, 431, 433, 435, 455, 81, 206, 344, 346, - 386, 412, 413, 414, 416, 418, 93, 99, 100, 101, - 102, 103, 104, 106, 206, 386, 416, 418, 428, 429, - 430, 431, 433, 435, 437, 441, 443, 445, 447, 449, - 451, 453, 360, 34, 70, 72, 73, 76, 77, 78, - 206, 272, 370, 371, 372, 373, 374, 375, 376, 378, - 380, 382, 383, 385, 416, 418, 71, 74, 75, 206, - 272, 374, 380, 394, 395, 396, 397, 398, 400, 401, - 402, 403, 416, 418, 109, 110, 206, 308, 309, 310, - 312, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 206, 416, 418, 485, 486, 487, - 488, 490, 492, 493, 495, 496, 497, 500, 502, 503, - 504, 507, 509, 511, 532, 533, 534, 12, 13, 523, - 524, 525, 527, 6, 3, 4, 8, 3, 212, 529, - 514, 516, 518, 4, 3, 8, 520, 230, 247, 4, - 4, 4, 432, 434, 436, 245, 253, 255, 4, 4, - 4, 4, 4, 4, 4, 225, 325, 361, 387, 353, - 417, 419, 349, 292, 459, 421, 301, 315, 4, 472, - 480, 482, 510, 512, 535, 3, 8, 236, 238, 241, - 4, 3, 8, 337, 339, 341, 405, 335, 343, 4, - 347, 345, 456, 3, 8, 415, 3, 8, 454, 442, - 444, 448, 446, 452, 450, 438, 8, 3, 8, 377, - 273, 4, 381, 379, 384, 4, 8, 3, 399, 4, - 4, 8, 3, 311, 313, 3, 8, 4, 489, 491, - 4, 494, 4, 4, 498, 501, 4, 4, 505, 508, - 3, 8, 3, 8, 526, 4, 3, 8, 191, 191, - 171, 4, 4, 4, 4, 4, 210, 4, 4, 4, - 174, 174, 174, 4, 4, 4, 4, 4, 4, 172, - 172, 172, 174, 173, 173, 172, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 172, - 4, 4, 4, 4, 4, 4, 216, 4, 4, 4, - 174, 232, 4, 4, 4, 4, 4, 4, 172, 4, - 4, 4, 333, 4, 413, 4, 4, 4, 4, 4, - 4, 4, 4, 430, 4, 4, 172, 4, 4, 4, - 174, 372, 4, 174, 174, 396, 4, 4, 309, 174, - 4, 4, 172, 4, 172, 172, 4, 4, 174, 174, - 4, 4, 486, 533, 4, 172, 524, 4, 7, 7, - 191, 191, 191, 7, 7, 7, 171, 171, 171, 7, - 7, 5, 171, 5, 5, 5, 5, 193, 195, 171, - 88, 89, 90, 91, 350, 5, 5, 5, 5, 7, - 7, 195, 7, 171, 171, 5, 5, 202, 17, 18, - 239, 20, 21, 242, 171, 171, 171, 5, 171, 171, - 202, 171, 7, 171, 202, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 191, - 171, 171, 171, 18, 137, 499, 138, 139, 140, 141, - 142, 174, 506, 171, 5, 191, 215, 532, 523, 231, - 24, 248, 249, 250, 34, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 206, 260, 261, 262, 265, 267, 269, 271, - 272, 274, 275, 276, 277, 278, 279, 280, 281, 283, - 285, 287, 289, 290, 260, 7, 256, 257, 258, 7, - 326, 327, 328, 7, 364, 365, 366, 7, 388, 389, - 390, 7, 354, 355, 356, 99, 100, 101, 102, 104, - 293, 294, 295, 296, 297, 298, 299, 7, 460, 461, - 7, 422, 423, 424, 7, 302, 303, 304, 112, 113, - 114, 115, 116, 117, 316, 317, 318, 319, 320, 321, - 322, 323, 120, 121, 206, 416, 418, 473, 474, 475, - 477, 485, 7, 536, 537, 203, 7, 406, 407, 408, - 107, 437, 439, 457, 256, 8, 8, 8, 8, 251, - 3, 8, 263, 266, 268, 270, 4, 4, 4, 4, - 4, 282, 284, 286, 288, 4, 4, 4, 4, 4, - 3, 8, 8, 259, 6, 3, 329, 6, 3, 367, - 6, 3, 391, 6, 3, 357, 6, 3, 3, 6, - 462, 3, 6, 425, 6, 3, 305, 6, 3, 4, - 4, 4, 4, 4, 4, 3, 8, 476, 478, 3, - 8, 8, 538, 3, 6, 171, 204, 205, 409, 6, - 3, 440, 8, 6, 4, 249, 4, 4, 4, 4, - 172, 174, 172, 174, 172, 4, 4, 4, 4, 172, - 172, 172, 172, 174, 261, 260, 258, 332, 328, 370, - 366, 394, 390, 206, 217, 218, 219, 220, 221, 222, - 227, 228, 272, 324, 342, 344, 346, 348, 358, 359, - 386, 416, 418, 431, 433, 435, 455, 356, 294, 95, - 96, 206, 272, 360, 386, 416, 418, 431, 433, 435, - 463, 464, 465, 466, 467, 469, 461, 428, 424, 308, - 304, 172, 172, 172, 172, 172, 172, 317, 4, 4, - 474, 147, 149, 150, 206, 272, 416, 418, 539, 540, - 541, 542, 544, 537, 6, 3, 412, 408, 4, 171, - 35, 36, 37, 38, 264, 171, 171, 171, 171, 171, - 171, 171, 8, 8, 8, 8, 3, 8, 468, 4, - 8, 3, 8, 8, 171, 171, 545, 4, 543, 3, - 8, 171, 8, 202, 359, 4, 174, 465, 4, 172, - 4, 540, 171, 5, 171, 7, 546, 547, 548, 3, - 6, 148, 151, 152, 153, 549, 550, 551, 553, 554, - 555, 547, 552, 4, 4, 4, 3, 8, 4, 174, - 172, 172, 550, 171 + 61, 62, 63, 64, 65, 66, 70, 71, 81, 84, + 85, 89, 94, 95, 100, 110, 113, 120, 121, 124, + 125, 148, 208, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 230, 231, 232, 233, 248, + 250, 256, 258, 295, 304, 318, 328, 352, 356, 364, + 390, 420, 422, 424, 435, 437, 439, 462, 474, 475, + 483, 485, 523, 538, 15, 16, 19, 22, 208, 235, + 236, 239, 241, 244, 247, 420, 422, 67, 68, 69, + 82, 86, 87, 88, 96, 99, 107, 208, 219, 220, + 221, 222, 223, 224, 225, 226, 231, 232, 336, 337, + 338, 340, 342, 344, 346, 348, 350, 352, 355, 390, + 408, 420, 422, 424, 435, 437, 439, 459, 83, 208, + 348, 350, 390, 416, 417, 418, 420, 422, 95, 101, + 102, 103, 104, 105, 106, 108, 208, 390, 420, 422, + 432, 433, 434, 435, 437, 439, 441, 445, 447, 449, + 451, 453, 455, 457, 364, 34, 72, 74, 75, 78, + 79, 80, 208, 276, 374, 375, 376, 377, 378, 379, + 380, 382, 384, 386, 387, 389, 420, 422, 73, 76, + 77, 208, 276, 378, 384, 398, 399, 400, 401, 402, + 404, 405, 406, 407, 420, 422, 111, 112, 208, 312, + 313, 314, 316, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 145, 146, 208, 420, + 422, 489, 490, 491, 492, 494, 496, 497, 499, 500, + 501, 504, 506, 507, 508, 511, 513, 515, 536, 537, + 538, 12, 13, 527, 528, 529, 531, 6, 3, 4, + 8, 3, 214, 533, 518, 520, 522, 4, 3, 8, + 524, 234, 251, 4, 4, 4, 436, 438, 440, 249, + 257, 259, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 229, 329, 365, 391, 357, 421, 423, 353, 296, + 463, 425, 305, 319, 4, 476, 484, 486, 539, 3, + 8, 240, 242, 245, 4, 3, 8, 341, 343, 345, + 409, 339, 347, 4, 351, 349, 460, 3, 8, 419, + 3, 8, 458, 446, 448, 452, 450, 456, 454, 442, + 8, 3, 8, 381, 277, 4, 385, 383, 388, 4, + 8, 3, 403, 4, 4, 8, 3, 315, 317, 3, + 8, 4, 493, 495, 4, 498, 4, 4, 502, 505, + 4, 4, 509, 512, 514, 516, 3, 8, 3, 8, + 530, 4, 3, 8, 193, 193, 173, 4, 4, 4, + 4, 4, 212, 4, 4, 4, 176, 176, 176, 4, + 4, 4, 4, 4, 4, 174, 174, 174, 174, 174, + 176, 175, 175, 174, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 174, 4, 4, + 4, 4, 218, 4, 4, 4, 176, 236, 4, 4, + 4, 4, 4, 4, 174, 4, 4, 4, 337, 4, + 417, 4, 4, 4, 4, 4, 4, 4, 4, 434, + 4, 4, 174, 4, 4, 4, 176, 376, 4, 176, + 176, 400, 4, 4, 313, 176, 4, 4, 174, 4, + 174, 174, 4, 4, 176, 176, 4, 4, 4, 4, + 490, 537, 4, 174, 528, 4, 7, 7, 193, 193, + 193, 7, 7, 7, 173, 173, 173, 7, 7, 5, + 173, 5, 5, 5, 5, 195, 197, 173, 90, 91, + 92, 93, 354, 5, 5, 5, 5, 7, 7, 197, + 7, 5, 5, 204, 17, 18, 243, 20, 21, 246, + 173, 173, 173, 5, 173, 173, 204, 173, 7, 173, + 204, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 193, 173, 173, 173, 18, + 139, 503, 140, 141, 142, 143, 144, 176, 510, 173, + 173, 173, 5, 193, 217, 536, 527, 235, 24, 252, + 253, 254, 34, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 208, 264, 265, 266, 269, 271, 273, 275, 276, 278, + 279, 280, 281, 282, 283, 284, 285, 287, 289, 291, + 293, 294, 264, 7, 260, 261, 262, 7, 330, 331, + 332, 7, 368, 369, 370, 7, 392, 393, 394, 7, + 358, 359, 360, 101, 102, 103, 104, 106, 297, 298, + 299, 300, 301, 302, 303, 7, 464, 465, 7, 426, + 427, 428, 7, 306, 307, 308, 114, 115, 116, 117, + 118, 119, 320, 321, 322, 323, 324, 325, 326, 327, + 122, 123, 208, 420, 422, 477, 478, 479, 481, 489, + 7, 540, 541, 205, 7, 410, 411, 412, 109, 441, + 443, 461, 260, 8, 8, 8, 8, 255, 3, 8, + 267, 270, 272, 274, 4, 4, 4, 4, 4, 286, + 288, 290, 292, 4, 4, 4, 4, 4, 3, 8, + 8, 263, 6, 3, 333, 6, 3, 371, 6, 3, + 395, 6, 3, 361, 6, 3, 3, 6, 466, 3, + 6, 429, 6, 3, 309, 6, 3, 4, 4, 4, + 4, 4, 4, 3, 8, 480, 482, 3, 8, 8, + 542, 3, 6, 173, 206, 207, 413, 6, 3, 444, + 8, 6, 4, 253, 4, 4, 4, 4, 174, 176, + 174, 176, 174, 4, 4, 4, 4, 174, 174, 174, + 174, 176, 265, 264, 262, 336, 332, 374, 370, 398, + 394, 208, 219, 220, 221, 222, 223, 224, 225, 226, + 231, 232, 276, 328, 346, 348, 350, 352, 362, 363, + 390, 420, 422, 435, 437, 439, 459, 360, 298, 97, + 98, 208, 276, 364, 390, 420, 422, 435, 437, 439, + 467, 468, 469, 470, 471, 473, 465, 432, 428, 312, + 308, 174, 174, 174, 174, 174, 174, 321, 4, 4, + 478, 149, 151, 152, 208, 276, 420, 422, 543, 544, + 545, 546, 548, 541, 6, 3, 416, 412, 4, 173, + 35, 36, 37, 38, 268, 173, 173, 173, 173, 173, + 173, 173, 8, 8, 8, 8, 3, 8, 472, 4, + 8, 3, 8, 8, 173, 173, 549, 4, 547, 3, + 8, 173, 8, 204, 363, 4, 176, 469, 4, 174, + 4, 544, 173, 5, 173, 7, 550, 551, 552, 3, + 6, 150, 153, 154, 155, 553, 554, 555, 557, 558, + 559, 551, 556, 4, 4, 4, 3, 8, 4, 176, + 174, 174, 554, 173 }; const unsigned short Dhcp4Parser::yyr1_[] = { - 0, 175, 177, 176, 178, 176, 179, 176, 180, 176, - 181, 176, 182, 176, 183, 176, 184, 176, 185, 176, - 186, 176, 187, 176, 188, 176, 189, 176, 190, 176, - 191, 191, 191, 191, 191, 191, 191, 192, 194, 193, - 195, 196, 196, 197, 197, 199, 198, 200, 200, 201, - 201, 203, 202, 204, 204, 205, 205, 206, 208, 207, - 209, 209, 210, 210, 210, 210, 210, 210, 212, 211, - 214, 213, 215, 215, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 217, 218, 219, 220, 221, 222, - 223, 225, 224, 226, 227, 228, 230, 229, 231, 231, - 232, 232, 232, 232, 232, 232, 232, 234, 233, 236, - 235, 238, 237, 239, 239, 241, 240, 242, 242, 243, - 245, 244, 247, 246, 248, 248, 249, 251, 250, 253, - 252, 255, 254, 256, 256, 257, 257, 259, 258, 260, - 260, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, - 261, 263, 262, 264, 264, 264, 264, 266, 265, 268, - 267, 270, 269, 271, 273, 272, 274, 275, 276, 277, - 278, 279, 280, 282, 281, 284, 283, 286, 285, 288, - 287, 289, 290, 292, 291, 293, 293, 294, 294, 294, - 294, 294, 295, 296, 297, 298, 299, 301, 300, 302, - 302, 303, 303, 305, 304, 307, 306, 308, 308, 308, - 309, 309, 311, 310, 313, 312, 315, 314, 316, 316, - 317, 317, 317, 317, 317, 317, 318, 319, 320, 321, - 322, 323, 325, 324, 326, 326, 327, 327, 329, 328, - 331, 330, 332, 332, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 335, 334, 337, 336, 339, 338, 341, 340, 343, - 342, 345, 344, 347, 346, 349, 348, 350, 350, 350, - 350, 351, 353, 352, 354, 354, 355, 355, 357, 356, - 358, 358, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 361, 360, 363, 362, 364, 364, - 365, 365, 367, 366, 369, 368, 370, 370, 371, 371, - 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, - 373, 374, 375, 377, 376, 379, 378, 381, 380, 382, - 384, 383, 385, 387, 386, 388, 388, 389, 389, 391, - 390, 393, 392, 394, 394, 395, 395, 396, 396, 396, - 396, 396, 396, 396, 396, 396, 397, 399, 398, 400, - 401, 402, 403, 405, 404, 406, 406, 407, 407, 409, - 408, 411, 410, 412, 412, 413, 413, 413, 413, 413, - 413, 413, 415, 414, 417, 416, 419, 418, 421, 420, - 422, 422, 423, 423, 425, 424, 427, 426, 428, 428, - 429, 429, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 432, 431, 434, - 433, 436, 435, 438, 437, 440, 439, 442, 441, 444, - 443, 446, 445, 448, 447, 450, 449, 452, 451, 454, - 453, 456, 455, 457, 457, 459, 458, 460, 460, 462, - 461, 463, 463, 464, 464, 465, 465, 465, 465, 465, - 465, 465, 465, 465, 465, 465, 466, 468, 467, 469, - 470, 472, 471, 473, 473, 474, 474, 474, 474, 474, - 476, 475, 478, 477, 480, 479, 482, 481, 484, 483, - 485, 485, 486, 486, 486, 486, 486, 486, 486, 486, - 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, - 487, 489, 488, 491, 490, 492, 494, 493, 495, 496, - 498, 497, 499, 499, 501, 500, 502, 503, 505, 504, - 506, 506, 506, 506, 506, 508, 507, 510, 509, 512, - 511, 514, 513, 516, 515, 518, 517, 520, 519, 522, - 521, 523, 523, 524, 524, 526, 525, 527, 529, 528, - 531, 530, 532, 532, 533, 535, 534, 536, 536, 538, - 537, 539, 539, 540, 540, 540, 540, 540, 540, 540, - 541, 543, 542, 545, 544, 546, 546, 548, 547, 549, - 549, 550, 550, 550, 550, 552, 551, 553, 554, 555 + 0, 177, 179, 178, 180, 178, 181, 178, 182, 178, + 183, 178, 184, 178, 185, 178, 186, 178, 187, 178, + 188, 178, 189, 178, 190, 178, 191, 178, 192, 178, + 193, 193, 193, 193, 193, 193, 193, 194, 196, 195, + 197, 198, 198, 199, 199, 201, 200, 202, 202, 203, + 203, 205, 204, 206, 206, 207, 207, 208, 210, 209, + 211, 211, 212, 212, 212, 212, 212, 212, 214, 213, + 216, 215, 217, 217, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 229, 228, 230, 231, 232, 234, 233, + 235, 235, 236, 236, 236, 236, 236, 236, 236, 238, + 237, 240, 239, 242, 241, 243, 243, 245, 244, 246, + 246, 247, 249, 248, 251, 250, 252, 252, 253, 255, + 254, 257, 256, 259, 258, 260, 260, 261, 261, 263, + 262, 264, 264, 265, 265, 265, 265, 265, 265, 265, + 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, + 265, 265, 265, 267, 266, 268, 268, 268, 268, 270, + 269, 272, 271, 274, 273, 275, 277, 276, 278, 279, + 280, 281, 282, 283, 284, 286, 285, 288, 287, 290, + 289, 292, 291, 293, 294, 296, 295, 297, 297, 298, + 298, 298, 298, 298, 299, 300, 301, 302, 303, 305, + 304, 306, 306, 307, 307, 309, 308, 311, 310, 312, + 312, 312, 313, 313, 315, 314, 317, 316, 319, 318, + 320, 320, 321, 321, 321, 321, 321, 321, 322, 323, + 324, 325, 326, 327, 329, 328, 330, 330, 331, 331, + 333, 332, 335, 334, 336, 336, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 339, 338, 341, 340, 343, + 342, 345, 344, 347, 346, 349, 348, 351, 350, 353, + 352, 354, 354, 354, 354, 355, 357, 356, 358, 358, + 359, 359, 361, 360, 362, 362, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 365, 364, 367, 366, 368, 368, 369, 369, 371, 370, + 373, 372, 374, 374, 375, 375, 376, 376, 376, 376, + 376, 376, 376, 376, 376, 376, 377, 378, 379, 381, + 380, 383, 382, 385, 384, 386, 388, 387, 389, 391, + 390, 392, 392, 393, 393, 395, 394, 397, 396, 398, + 398, 399, 399, 400, 400, 400, 400, 400, 400, 400, + 400, 400, 401, 403, 402, 404, 405, 406, 407, 409, + 408, 410, 410, 411, 411, 413, 412, 415, 414, 416, + 416, 417, 417, 417, 417, 417, 417, 417, 419, 418, + 421, 420, 423, 422, 425, 424, 426, 426, 427, 427, + 429, 428, 431, 430, 432, 432, 433, 433, 434, 434, + 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, + 434, 434, 434, 436, 435, 438, 437, 440, 439, 442, + 441, 444, 443, 446, 445, 448, 447, 450, 449, 452, + 451, 454, 453, 456, 455, 458, 457, 460, 459, 461, + 461, 463, 462, 464, 464, 466, 465, 467, 467, 468, + 468, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 470, 472, 471, 473, 474, 476, 475, 477, + 477, 478, 478, 478, 478, 478, 480, 479, 482, 481, + 484, 483, 486, 485, 488, 487, 489, 489, 490, 490, + 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, + 490, 490, 490, 490, 490, 490, 491, 493, 492, 495, + 494, 496, 498, 497, 499, 500, 502, 501, 503, 503, + 505, 504, 506, 507, 509, 508, 510, 510, 510, 510, + 510, 512, 511, 514, 513, 516, 515, 518, 517, 520, + 519, 522, 521, 524, 523, 526, 525, 527, 527, 528, + 528, 530, 529, 531, 533, 532, 535, 534, 536, 536, + 537, 539, 538, 540, 540, 542, 541, 543, 543, 544, + 544, 544, 544, 544, 544, 544, 545, 547, 546, 549, + 548, 550, 550, 552, 551, 553, 553, 554, 554, 554, + 554, 556, 555, 557, 558, 559 }; const unsigned char @@ -4747,61 +4775,62 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, - 3, 0, 4, 3, 3, 3, 0, 6, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 1, 1, 0, 4, 1, 1, 3, - 0, 6, 0, 6, 1, 3, 1, 0, 4, 0, - 6, 0, 6, 0, 1, 1, 3, 0, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 0, 4, 3, 3, 3, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 1, 1, 0, 4, 1, + 1, 3, 0, 6, 0, 6, 1, 3, 1, 0, + 4, 0, 6, 0, 6, 0, 1, 1, 3, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, - 3, 3, 3, 0, 4, 0, 4, 0, 4, 0, - 4, 3, 3, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, - 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, - 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 1, 1, 0, + 4, 0, 4, 0, 4, 3, 0, 4, 3, 3, + 3, 3, 3, 3, 3, 0, 4, 0, 4, 0, + 4, 0, 4, 3, 3, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 1, 1, 1, - 1, 3, 0, 6, 0, 1, 1, 3, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 1, 1, 1, 1, 3, 0, 6, 0, 1, + 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 6, 0, 4, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 0, 4, 0, 4, 0, 4, 1, - 0, 4, 3, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 1, 3, 3, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 0, 6, - 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 0, 6, 0, 4, 0, 1, 1, 3, 0, 4, + 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, + 4, 0, 4, 0, 4, 1, 0, 4, 3, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 3, 3, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 1, 1, 0, 6, 1, 3, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, - 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 0, 4, 0, 4, 0, 4, 0, 6, 1, + 1, 0, 6, 1, 3, 0, 4, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 3, 3, 0, 6, 1, + 3, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 4, 3, 0, 4, 3, 3, - 0, 4, 1, 1, 0, 4, 3, 3, 0, 4, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 6, 0, - 4, 1, 3, 1, 1, 0, 6, 3, 0, 6, - 0, 4, 1, 3, 1, 0, 6, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, - 3, 1, 1, 1, 1, 0, 4, 3, 3, 3 + 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, + 4, 3, 0, 4, 3, 3, 0, 4, 1, 1, + 0, 4, 3, 3, 0, 4, 1, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 6, 0, 4, 1, 3, 1, + 1, 0, 6, 3, 0, 6, 0, 4, 1, 3, + 1, 0, 6, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, + 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, + 1, 0, 4, 3, 3, 3 }; @@ -4826,17 +4855,18 @@ namespace isc { namespace dhcp { "\"connect-timeout\"", "\"contact-points\"", "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"", "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"request-timeout\"", "\"tcp-keepalive\"", - "\"tcp-nodelay\"", "\"valid-lifetime\"", "\"renew-timer\"", - "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", - "\"t2-percent\"", "\"decline-probation-period\"", "\"server-tag\"", - "\"subnet4\"", "\"4o6-interface\"", "\"4o6-interface-id\"", - "\"4o6-subnet\"", "\"option-def\"", "\"option-data\"", "\"name\"", - "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", "\"always-send\"", - "\"record-types\"", "\"encapsulate\"", "\"array\"", - "\"shared-networks\"", "\"pools\"", "\"pool\"", "\"user-context\"", - "\"comment\"", "\"subnet\"", "\"interface\"", "\"id\"", - "\"reservation-mode\"", "\"disabled\"", "\"out-of-pool\"", "\"global\"", - "\"all\"", "\"host-reservation-identifiers\"", "\"client-classes\"", + "\"tcp-nodelay\"", "\"valid-lifetime\"", "\"min-valid-lifetime\"", + "\"max-valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"", + "\"calculate-tee-times\"", "\"t1-percent\"", "\"t2-percent\"", + "\"decline-probation-period\"", "\"server-tag\"", "\"subnet4\"", + "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"", + "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", + "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"", + "\"encapsulate\"", "\"array\"", "\"shared-networks\"", "\"pools\"", + "\"pool\"", "\"user-context\"", "\"comment\"", "\"subnet\"", + "\"interface\"", "\"id\"", "\"reservation-mode\"", "\"disabled\"", + "\"out-of-pool\"", "\"global\"", "\"all\"", + "\"host-reservation-identifiers\"", "\"client-classes\"", "\"require-client-classes\"", "\"test\"", "\"only-if-required\"", "\"client-class\"", "\"reservations\"", "\"duid\"", "\"hw-address\"", "\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"flex-id\"", @@ -4868,7 +4898,8 @@ namespace isc { namespace dhcp { "not_empty_list", "list_strings", "$@17", "list_strings_content", "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@18", "global_objects", "global_object", "dhcp4_object", "$@19", "sub_dhcp4", - "$@20", "global_params", "global_param", "valid_lifetime", "renew_timer", + "$@20", "global_params", "global_param", "valid_lifetime", + "min_valid_lifetime", "max_valid_lifetime", "renew_timer", "rebind_timer", "calculate_tee_times", "t1_percent", "t2_percent", "decline_probation_period", "server_tag", "$@21", "echo_client_id", "match_client_id", "authoritative", "interfaces_config", "$@22", @@ -4957,73 +4988,74 @@ namespace isc { namespace dhcp { const unsigned short Dhcp4Parser::yyrline_[] = { - 0, 262, 262, 262, 263, 263, 264, 264, 265, 265, - 266, 266, 267, 267, 268, 268, 269, 269, 270, 270, - 271, 271, 272, 272, 273, 273, 274, 274, 275, 275, - 283, 284, 285, 286, 287, 288, 289, 292, 297, 297, - 308, 311, 312, 315, 319, 326, 326, 333, 334, 337, - 341, 348, 348, 355, 356, 359, 363, 374, 384, 384, - 400, 401, 405, 406, 407, 408, 409, 410, 413, 413, - 428, 428, 437, 438, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 485, 490, 495, 500, 505, 510, - 515, 520, 520, 528, 533, 538, 544, 544, 555, 556, - 559, 560, 561, 562, 563, 564, 565, 568, 568, 577, - 577, 587, 587, 594, 595, 598, 598, 605, 607, 611, - 617, 617, 629, 629, 639, 640, 642, 644, 644, 662, - 662, 674, 674, 684, 685, 688, 689, 692, 692, 702, - 703, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 728, 728, 735, 736, 737, 738, 741, 741, 749, - 749, 757, 757, 765, 770, 770, 778, 783, 788, 793, - 798, 803, 808, 813, 813, 821, 821, 829, 829, 837, - 837, 845, 850, 855, 855, 865, 866, 869, 870, 871, - 872, 873, 876, 881, 886, 891, 896, 901, 901, 911, - 912, 915, 916, 919, 919, 929, 929, 939, 940, 941, - 944, 945, 948, 948, 956, 956, 964, 964, 975, 976, - 979, 980, 981, 982, 983, 984, 987, 992, 997, 1002, - 1007, 1012, 1020, 1020, 1033, 1034, 1037, 1038, 1045, 1045, - 1071, 1071, 1082, 1083, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 0, 264, 264, 264, 265, 265, 266, 266, 267, 267, + 268, 268, 269, 269, 270, 270, 271, 271, 272, 272, + 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, + 285, 286, 287, 288, 289, 290, 291, 294, 299, 299, + 310, 313, 314, 317, 321, 328, 328, 335, 336, 339, + 343, 350, 350, 357, 358, 361, 365, 376, 386, 386, + 402, 403, 407, 408, 409, 410, 411, 412, 415, 415, + 430, 430, 439, 440, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 487, 492, 497, 502, 507, 512, + 517, 522, 527, 532, 532, 540, 545, 550, 556, 556, + 567, 568, 571, 572, 573, 574, 575, 576, 577, 580, + 580, 589, 589, 599, 599, 606, 607, 610, 610, 617, + 619, 623, 629, 629, 641, 641, 651, 652, 654, 656, + 656, 674, 674, 686, 686, 696, 697, 700, 701, 704, + 704, 714, 715, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 740, 740, 747, 748, 749, 750, 753, + 753, 761, 761, 769, 769, 777, 782, 782, 790, 795, + 800, 805, 810, 815, 820, 825, 825, 833, 833, 841, + 841, 849, 849, 857, 862, 867, 867, 877, 878, 881, + 882, 883, 884, 885, 888, 893, 898, 903, 908, 913, + 913, 923, 924, 927, 928, 931, 931, 941, 941, 951, + 952, 953, 956, 957, 960, 960, 968, 968, 976, 976, + 987, 988, 991, 992, 993, 994, 995, 996, 999, 1004, + 1009, 1014, 1019, 1024, 1032, 1032, 1045, 1046, 1049, 1050, + 1057, 1057, 1083, 1083, 1094, 1095, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1116, 1116, 1124, 1124, 1132, 1132, 1140, 1140, 1148, - 1148, 1156, 1156, 1164, 1164, 1174, 1174, 1181, 1182, 1183, - 1184, 1187, 1194, 1194, 1205, 1206, 1210, 1211, 1214, 1214, - 1222, 1223, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, - 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, - 1244, 1245, 1246, 1247, 1254, 1254, 1267, 1267, 1276, 1277, - 1280, 1281, 1286, 1286, 1301, 1301, 1315, 1316, 1319, 1320, - 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, - 1335, 1337, 1342, 1344, 1344, 1352, 1352, 1360, 1360, 1368, - 1370, 1370, 1378, 1387, 1387, 1399, 1400, 1405, 1406, 1411, - 1411, 1423, 1423, 1435, 1436, 1441, 1442, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1458, 1460, 1460, 1468, - 1470, 1472, 1477, 1485, 1485, 1497, 1498, 1501, 1502, 1505, - 1505, 1515, 1515, 1525, 1526, 1529, 1530, 1531, 1532, 1533, - 1534, 1535, 1538, 1538, 1546, 1546, 1571, 1571, 1601, 1601, - 1611, 1612, 1615, 1616, 1619, 1619, 1628, 1628, 1637, 1638, - 1641, 1642, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1663, 1663, 1671, - 1671, 1679, 1679, 1687, 1687, 1695, 1695, 1705, 1705, 1713, - 1713, 1721, 1721, 1729, 1729, 1737, 1737, 1745, 1745, 1753, - 1753, 1766, 1766, 1776, 1777, 1783, 1783, 1793, 1794, 1797, - 1797, 1807, 1808, 1811, 1812, 1815, 1816, 1817, 1818, 1819, - 1820, 1821, 1822, 1823, 1824, 1825, 1828, 1830, 1830, 1838, - 1847, 1854, 1854, 1864, 1865, 1868, 1869, 1870, 1871, 1872, - 1875, 1875, 1883, 1883, 1894, 1894, 1932, 1932, 1944, 1944, - 1954, 1955, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, - 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, - 1978, 1983, 1983, 1991, 1991, 1999, 2004, 2004, 2012, 2017, - 2022, 2022, 2030, 2031, 2034, 2034, 2042, 2047, 2052, 2052, - 2060, 2063, 2066, 2069, 2072, 2078, 2078, 2086, 2086, 2094, - 2094, 2105, 2105, 2112, 2112, 2119, 2119, 2126, 2126, 2137, - 2137, 2147, 2148, 2152, 2153, 2156, 2156, 2166, 2176, 2176, - 2186, 2186, 2197, 2198, 2202, 2206, 2206, 2218, 2219, 2223, - 2223, 2231, 2232, 2235, 2236, 2237, 2238, 2239, 2240, 2241, - 2244, 2249, 2249, 2257, 2257, 2267, 2268, 2271, 2271, 2279, - 2280, 2283, 2284, 2285, 2286, 2289, 2289, 2297, 2302, 2307 + 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + 1123, 1124, 1125, 1126, 1127, 1130, 1130, 1138, 1138, 1146, + 1146, 1154, 1154, 1162, 1162, 1170, 1170, 1178, 1178, 1188, + 1188, 1195, 1196, 1197, 1198, 1201, 1208, 1208, 1219, 1220, + 1224, 1225, 1228, 1228, 1236, 1237, 1240, 1241, 1242, 1243, + 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, + 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, + 1270, 1270, 1283, 1283, 1292, 1293, 1296, 1297, 1302, 1302, + 1317, 1317, 1331, 1332, 1335, 1336, 1339, 1340, 1341, 1342, + 1343, 1344, 1345, 1346, 1347, 1348, 1351, 1353, 1358, 1360, + 1360, 1368, 1368, 1376, 1376, 1384, 1386, 1386, 1394, 1403, + 1403, 1415, 1416, 1421, 1422, 1427, 1427, 1439, 1439, 1451, + 1452, 1457, 1458, 1463, 1464, 1465, 1466, 1467, 1468, 1469, + 1470, 1471, 1474, 1476, 1476, 1484, 1486, 1488, 1493, 1501, + 1501, 1513, 1514, 1517, 1518, 1521, 1521, 1531, 1531, 1541, + 1542, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1554, 1554, + 1562, 1562, 1587, 1587, 1617, 1617, 1627, 1628, 1631, 1632, + 1635, 1635, 1644, 1644, 1653, 1654, 1657, 1658, 1662, 1663, + 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, + 1674, 1675, 1676, 1679, 1679, 1687, 1687, 1695, 1695, 1703, + 1703, 1711, 1711, 1721, 1721, 1729, 1729, 1737, 1737, 1745, + 1745, 1753, 1753, 1761, 1761, 1769, 1769, 1782, 1782, 1792, + 1793, 1799, 1799, 1809, 1810, 1813, 1813, 1823, 1824, 1827, + 1828, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, + 1840, 1841, 1844, 1846, 1846, 1854, 1863, 1870, 1870, 1880, + 1881, 1884, 1885, 1886, 1887, 1888, 1891, 1891, 1899, 1899, + 1910, 1910, 1948, 1948, 1960, 1960, 1970, 1971, 1974, 1975, + 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, + 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1999, 1999, 2007, + 2007, 2015, 2020, 2020, 2028, 2033, 2038, 2038, 2046, 2047, + 2050, 2050, 2058, 2063, 2068, 2068, 2076, 2079, 2082, 2085, + 2088, 2094, 2094, 2102, 2102, 2110, 2110, 2121, 2121, 2128, + 2128, 2135, 2135, 2142, 2142, 2153, 2153, 2163, 2164, 2168, + 2169, 2172, 2172, 2182, 2192, 2192, 2202, 2202, 2213, 2214, + 2218, 2222, 2222, 2234, 2235, 2239, 2239, 2247, 2248, 2251, + 2252, 2253, 2254, 2255, 2256, 2257, 2260, 2265, 2265, 2273, + 2273, 2283, 2284, 2287, 2287, 2295, 2296, 2299, 2300, 2301, + 2302, 2305, 2305, 2313, 2318, 2323 }; // Print the state stack on the debug stream. @@ -5058,9 +5090,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5062 "dhcp4_parser.cc" +#line 5094 "dhcp4_parser.cc" -#line 2312 "dhcp4_parser.yy" +#line 2328 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 5517a2e372..6fdade1faf 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -507,124 +507,126 @@ namespace isc { namespace dhcp { TOKEN_TCP_KEEPALIVE = 309, TOKEN_TCP_NODELAY = 310, TOKEN_VALID_LIFETIME = 311, - TOKEN_RENEW_TIMER = 312, - TOKEN_REBIND_TIMER = 313, - TOKEN_CALCULATE_TEE_TIMES = 314, - TOKEN_T1_PERCENT = 315, - TOKEN_T2_PERCENT = 316, - TOKEN_DECLINE_PROBATION_PERIOD = 317, - TOKEN_SERVER_TAG = 318, - TOKEN_SUBNET4 = 319, - TOKEN_SUBNET_4O6_INTERFACE = 320, - TOKEN_SUBNET_4O6_INTERFACE_ID = 321, - TOKEN_SUBNET_4O6_SUBNET = 322, - TOKEN_OPTION_DEF = 323, - TOKEN_OPTION_DATA = 324, - TOKEN_NAME = 325, - TOKEN_DATA = 326, - TOKEN_CODE = 327, - TOKEN_SPACE = 328, - TOKEN_CSV_FORMAT = 329, - TOKEN_ALWAYS_SEND = 330, - TOKEN_RECORD_TYPES = 331, - TOKEN_ENCAPSULATE = 332, - TOKEN_ARRAY = 333, - TOKEN_SHARED_NETWORKS = 334, - TOKEN_POOLS = 335, - TOKEN_POOL = 336, - TOKEN_USER_CONTEXT = 337, - TOKEN_COMMENT = 338, - TOKEN_SUBNET = 339, - TOKEN_INTERFACE = 340, - TOKEN_ID = 341, - TOKEN_RESERVATION_MODE = 342, - TOKEN_DISABLED = 343, - TOKEN_OUT_OF_POOL = 344, - TOKEN_GLOBAL = 345, - TOKEN_ALL = 346, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 347, - TOKEN_CLIENT_CLASSES = 348, - TOKEN_REQUIRE_CLIENT_CLASSES = 349, - TOKEN_TEST = 350, - TOKEN_ONLY_IF_REQUIRED = 351, - TOKEN_CLIENT_CLASS = 352, - TOKEN_RESERVATIONS = 353, - TOKEN_DUID = 354, - TOKEN_HW_ADDRESS = 355, - TOKEN_CIRCUIT_ID = 356, - TOKEN_CLIENT_ID = 357, - TOKEN_HOSTNAME = 358, - TOKEN_FLEX_ID = 359, - TOKEN_RELAY = 360, - TOKEN_IP_ADDRESS = 361, - TOKEN_IP_ADDRESSES = 362, - TOKEN_HOOKS_LIBRARIES = 363, - TOKEN_LIBRARY = 364, - TOKEN_PARAMETERS = 365, - TOKEN_EXPIRED_LEASES_PROCESSING = 366, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 367, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 368, - TOKEN_HOLD_RECLAIMED_TIME = 369, - TOKEN_MAX_RECLAIM_LEASES = 370, - TOKEN_MAX_RECLAIM_TIME = 371, - TOKEN_UNWARNED_RECLAIM_CYCLES = 372, - TOKEN_DHCP4O6_PORT = 373, - TOKEN_CONTROL_SOCKET = 374, - TOKEN_SOCKET_TYPE = 375, - TOKEN_SOCKET_NAME = 376, - TOKEN_DHCP_QUEUE_CONTROL = 377, - TOKEN_DHCP_DDNS = 378, - TOKEN_ENABLE_UPDATES = 379, - TOKEN_QUALIFYING_SUFFIX = 380, - TOKEN_SERVER_IP = 381, - TOKEN_SERVER_PORT = 382, - TOKEN_SENDER_IP = 383, - TOKEN_SENDER_PORT = 384, - TOKEN_MAX_QUEUE_SIZE = 385, - TOKEN_NCR_PROTOCOL = 386, - TOKEN_NCR_FORMAT = 387, - TOKEN_OVERRIDE_NO_UPDATE = 388, - TOKEN_OVERRIDE_CLIENT_UPDATE = 389, - TOKEN_REPLACE_CLIENT_NAME = 390, - TOKEN_GENERATED_PREFIX = 391, - TOKEN_TCP = 392, - TOKEN_JSON = 393, - TOKEN_WHEN_PRESENT = 394, - TOKEN_NEVER = 395, - TOKEN_ALWAYS = 396, - TOKEN_WHEN_NOT_PRESENT = 397, - TOKEN_HOSTNAME_CHAR_SET = 398, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 399, - TOKEN_LOGGING = 400, - TOKEN_LOGGERS = 401, - TOKEN_OUTPUT_OPTIONS = 402, - TOKEN_OUTPUT = 403, - TOKEN_DEBUGLEVEL = 404, - TOKEN_SEVERITY = 405, - TOKEN_FLUSH = 406, - TOKEN_MAXSIZE = 407, - TOKEN_MAXVER = 408, - TOKEN_DHCP6 = 409, - TOKEN_DHCPDDNS = 410, - TOKEN_CONTROL_AGENT = 411, - TOKEN_TOPLEVEL_JSON = 412, - TOKEN_TOPLEVEL_DHCP4 = 413, - TOKEN_SUB_DHCP4 = 414, - TOKEN_SUB_INTERFACES4 = 415, - TOKEN_SUB_SUBNET4 = 416, - TOKEN_SUB_POOL4 = 417, - TOKEN_SUB_RESERVATION = 418, - TOKEN_SUB_OPTION_DEFS = 419, - TOKEN_SUB_OPTION_DEF = 420, - TOKEN_SUB_OPTION_DATA = 421, - TOKEN_SUB_HOOKS_LIBRARY = 422, - TOKEN_SUB_DHCP_DDNS = 423, - TOKEN_SUB_LOGGING = 424, - TOKEN_SUB_CONFIG_CONTROL = 425, - TOKEN_STRING = 426, - TOKEN_INTEGER = 427, - TOKEN_FLOAT = 428, - TOKEN_BOOLEAN = 429 + TOKEN_MIN_VALID_LIFETIME = 312, + TOKEN_MAX_VALID_LIFETIME = 313, + TOKEN_RENEW_TIMER = 314, + TOKEN_REBIND_TIMER = 315, + TOKEN_CALCULATE_TEE_TIMES = 316, + TOKEN_T1_PERCENT = 317, + TOKEN_T2_PERCENT = 318, + TOKEN_DECLINE_PROBATION_PERIOD = 319, + TOKEN_SERVER_TAG = 320, + TOKEN_SUBNET4 = 321, + TOKEN_SUBNET_4O6_INTERFACE = 322, + TOKEN_SUBNET_4O6_INTERFACE_ID = 323, + TOKEN_SUBNET_4O6_SUBNET = 324, + TOKEN_OPTION_DEF = 325, + TOKEN_OPTION_DATA = 326, + TOKEN_NAME = 327, + TOKEN_DATA = 328, + TOKEN_CODE = 329, + TOKEN_SPACE = 330, + TOKEN_CSV_FORMAT = 331, + TOKEN_ALWAYS_SEND = 332, + TOKEN_RECORD_TYPES = 333, + TOKEN_ENCAPSULATE = 334, + TOKEN_ARRAY = 335, + TOKEN_SHARED_NETWORKS = 336, + TOKEN_POOLS = 337, + TOKEN_POOL = 338, + TOKEN_USER_CONTEXT = 339, + TOKEN_COMMENT = 340, + TOKEN_SUBNET = 341, + TOKEN_INTERFACE = 342, + TOKEN_ID = 343, + TOKEN_RESERVATION_MODE = 344, + TOKEN_DISABLED = 345, + TOKEN_OUT_OF_POOL = 346, + TOKEN_GLOBAL = 347, + TOKEN_ALL = 348, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 349, + TOKEN_CLIENT_CLASSES = 350, + TOKEN_REQUIRE_CLIENT_CLASSES = 351, + TOKEN_TEST = 352, + TOKEN_ONLY_IF_REQUIRED = 353, + TOKEN_CLIENT_CLASS = 354, + TOKEN_RESERVATIONS = 355, + TOKEN_DUID = 356, + TOKEN_HW_ADDRESS = 357, + TOKEN_CIRCUIT_ID = 358, + TOKEN_CLIENT_ID = 359, + TOKEN_HOSTNAME = 360, + TOKEN_FLEX_ID = 361, + TOKEN_RELAY = 362, + TOKEN_IP_ADDRESS = 363, + TOKEN_IP_ADDRESSES = 364, + TOKEN_HOOKS_LIBRARIES = 365, + TOKEN_LIBRARY = 366, + TOKEN_PARAMETERS = 367, + TOKEN_EXPIRED_LEASES_PROCESSING = 368, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 369, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 370, + TOKEN_HOLD_RECLAIMED_TIME = 371, + TOKEN_MAX_RECLAIM_LEASES = 372, + TOKEN_MAX_RECLAIM_TIME = 373, + TOKEN_UNWARNED_RECLAIM_CYCLES = 374, + TOKEN_DHCP4O6_PORT = 375, + TOKEN_CONTROL_SOCKET = 376, + TOKEN_SOCKET_TYPE = 377, + TOKEN_SOCKET_NAME = 378, + TOKEN_DHCP_QUEUE_CONTROL = 379, + TOKEN_DHCP_DDNS = 380, + TOKEN_ENABLE_UPDATES = 381, + TOKEN_QUALIFYING_SUFFIX = 382, + TOKEN_SERVER_IP = 383, + TOKEN_SERVER_PORT = 384, + TOKEN_SENDER_IP = 385, + TOKEN_SENDER_PORT = 386, + TOKEN_MAX_QUEUE_SIZE = 387, + TOKEN_NCR_PROTOCOL = 388, + TOKEN_NCR_FORMAT = 389, + TOKEN_OVERRIDE_NO_UPDATE = 390, + TOKEN_OVERRIDE_CLIENT_UPDATE = 391, + TOKEN_REPLACE_CLIENT_NAME = 392, + TOKEN_GENERATED_PREFIX = 393, + TOKEN_TCP = 394, + TOKEN_JSON = 395, + TOKEN_WHEN_PRESENT = 396, + TOKEN_NEVER = 397, + TOKEN_ALWAYS = 398, + TOKEN_WHEN_NOT_PRESENT = 399, + TOKEN_HOSTNAME_CHAR_SET = 400, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 401, + TOKEN_LOGGING = 402, + TOKEN_LOGGERS = 403, + TOKEN_OUTPUT_OPTIONS = 404, + TOKEN_OUTPUT = 405, + TOKEN_DEBUGLEVEL = 406, + TOKEN_SEVERITY = 407, + TOKEN_FLUSH = 408, + TOKEN_MAXSIZE = 409, + TOKEN_MAXVER = 410, + TOKEN_DHCP6 = 411, + TOKEN_DHCPDDNS = 412, + TOKEN_CONTROL_AGENT = 413, + TOKEN_TOPLEVEL_JSON = 414, + TOKEN_TOPLEVEL_DHCP4 = 415, + TOKEN_SUB_DHCP4 = 416, + TOKEN_SUB_INTERFACES4 = 417, + TOKEN_SUB_SUBNET4 = 418, + TOKEN_SUB_POOL4 = 419, + TOKEN_SUB_RESERVATION = 420, + TOKEN_SUB_OPTION_DEFS = 421, + TOKEN_SUB_OPTION_DEF = 422, + TOKEN_SUB_OPTION_DATA = 423, + TOKEN_SUB_HOOKS_LIBRARY = 424, + TOKEN_SUB_DHCP_DDNS = 425, + TOKEN_SUB_LOGGING = 426, + TOKEN_SUB_CONFIG_CONTROL = 427, + TOKEN_STRING = 428, + TOKEN_INTEGER = 429, + TOKEN_FLOAT = 430, + TOKEN_BOOLEAN = 431 }; }; @@ -766,30 +768,30 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.template destroy< ElementPtr > (); break; - case 174: // "boolean" + case 176: // "boolean" value.template destroy< bool > (); break; - case 173: // "floating point" + case 175: // "floating point" value.template destroy< double > (); break; - case 172: // "integer" + case 174: // "integer" value.template destroy< int64_t > (); break; - case 171: // "constant string" + case 173: // "constant string" value.template destroy< std::string > (); break; @@ -872,13 +874,13 @@ switch (yytype) symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_DHCP_SOCKET_TYPE || tok == token::TOKEN_RAW || tok == token::TOKEN_UDP || tok == token::TOKEN_OUTBOUND_INTERFACE || tok == token::TOKEN_SAME_AS_INBOUND || tok == token::TOKEN_USE_ROUTING || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_ECHO_CLIENT_ID || tok == token::TOKEN_MATCH_CLIENT_ID || tok == token::TOKEN_AUTHORITATIVE || tok == token::TOKEN_NEXT_SERVER || tok == token::TOKEN_SERVER_HOSTNAME || tok == token::TOKEN_BOOT_FILE_NAME || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET4 || tok == token::TOKEN_SUBNET_4O6_INTERFACE || tok == token::TOKEN_SUBNET_4O6_INTERFACE_ID || tok == token::TOKEN_SUBNET_4O6_SUBNET || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_ID || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_CIRCUIT_ID || tok == token::TOKEN_CLIENT_ID || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP4 || tok == token::TOKEN_SUB_DHCP4 || tok == token::TOKEN_SUB_INTERFACES4 || tok == token::TOKEN_SUB_SUBNET4 || tok == token::TOKEN_SUB_POOL4 || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #endif #if 201103L <= YY_CPLUSPLUS @@ -1795,6 +1797,36 @@ switch (yytype) return symbol_type (token::TOKEN_VALID_LIFETIME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MIN_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAX_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -3871,12 +3903,12 @@ switch (yytype) enum { yyeof_ = 0, - yylast_ = 1028, ///< Last index in yytable_. - yynnts_ = 381, ///< Number of nonterminal symbols. + yylast_ = 1055, ///< Last index in yytable_. + yynnts_ = 383, ///< Number of nonterminal symbols. yyfinal_ = 30, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 175 ///< Number of tokens. + yyntokens_ = 177 ///< Number of tokens. }; @@ -3936,9 +3968,10 @@ switch (yytype) 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174 + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176 }; - const unsigned user_token_number_max_ = 429; + const unsigned user_token_number_max_ = 431; const token_number_type undef_token_ = 2; if (static_cast (t) <= yyeof_) @@ -3959,30 +3992,30 @@ switch (yytype) { switch (this->type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.move< ElementPtr > (std::move (that.value)); break; - case 174: // "boolean" + case 176: // "boolean" value.move< bool > (std::move (that.value)); break; - case 173: // "floating point" + case 175: // "floating point" value.move< double > (std::move (that.value)); break; - case 172: // "integer" + case 174: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 171: // "constant string" + case 173: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -4001,30 +4034,30 @@ switch (yytype) { switch (this->type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 174: // "boolean" + case 176: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 173: // "floating point" + case 175: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 172: // "integer" + case 174: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 171: // "constant string" + case 173: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -4050,30 +4083,30 @@ switch (yytype) super_type::move (s); switch (this->type_get ()) { - case 191: // value - case 195: // map_value - case 239: // socket_type - case 242: // outbound_interface_value - case 264: // db_type - case 350: // hr_mode - case 499: // ncr_protocol_value - case 506: // replace_client_name_value + case 193: // value + case 197: // map_value + case 243: // socket_type + case 246: // outbound_interface_value + case 268: // db_type + case 354: // hr_mode + case 503: // ncr_protocol_value + case 510: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 174: // "boolean" + case 176: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 173: // "floating point" + case 175: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 172: // "integer" + case 174: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 171: // "constant string" + case 173: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -4158,14 +4191,14 @@ switch (yytype) 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429 + 425, 426, 427, 428, 429, 430, 431 }; return token_type (yytoken_number_[type]); } #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 4169 "dhcp4_parser.h" +#line 4202 "dhcp4_parser.h" diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index ce67957dc7..52d84cb093 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 186 -#define YY_END_OF_BUFFER 187 +#define YY_NUM_RULES 190 +#define YY_END_OF_BUFFER 191 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,178 +700,186 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1544] = +static const flex_int16_t yy_accept[1615] = { 0, - 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, - 187, 185, 10, 11, 185, 1, 179, 176, 179, 179, - 185, 178, 177, 185, 185, 185, 185, 185, 172, 173, - 185, 185, 185, 174, 175, 5, 5, 5, 185, 185, - 185, 10, 11, 0, 0, 168, 0, 0, 0, 0, + 183, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 191, 189, 10, 11, 189, 1, 183, 180, 183, 183, + 189, 182, 181, 189, 189, 189, 189, 189, 176, 177, + 189, 189, 189, 178, 179, 5, 5, 5, 189, 189, + 189, 10, 11, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 179, - 179, 0, 178, 179, 3, 2, 6, 0, 179, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 183, + 183, 0, 182, 183, 3, 2, 6, 0, 183, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 146, 0, 0, 147, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, + 0, 0, 0, 0, 150, 0, 0, 151, 0, 0, - 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 182, 0, 181, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 186, - 180, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 0, 28, 0, 27, 0, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, + 0, 185, 184, 0, 0, 0, 0, 0, 0, 0, + 149, 0, 0, 28, 0, 27, 0, 0, 109, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 0, 0, 31, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 0, 0, 0, 0, 0, 83, - 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 0, 0, 0, 0, 187, 184, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 0, 0, 31, 0, 0, + 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, + 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 92, 0, 59, 0, 0, 0, 0, + 96, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 154, 51, 0, 56, 0, 0, + 0, 0, 0, 0, 169, 37, 0, 34, 0, 33, + 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, + 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 53, 0, 0, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 125, 150, 51, 0, - 56, 0, 0, 0, 0, 0, 0, 165, 37, 0, - 34, 0, 33, 0, 0, 0, 138, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 149, + 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 117, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, + 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 147, 118, 0, 0, + 0, 0, 0, 0, 122, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, - 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 143, 114, 0, 0, 0, 0, 118, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, + 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 57, 90, 0, + 0, 0, 133, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 86, 0, 0, 0, 129, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 148, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 139, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 135, 152, 0, 40, 0, 144, 0, 0, - 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 144, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 135, 0, 120, 0, + 20, 0, 0, 0, 84, 0, 0, 0, 0, 146, + 54, 0, 92, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, + 0, 0, 0, 115, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 131, 148, 0, 40, 0, - 140, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 0, 0, 0, 80, 0, 0, 0, 0, 142, 54, - 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, - 0, 0, 111, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 84, 0, 0, 0, 0, 0, 0, 64, - 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, - 0, 81, 103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, - 0, 17, 0, 15, 0, 162, 161, 0, 69, 0, - 0, 0, 0, 0, 30, 0, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 85, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, + 0, 0, 0, 0, 0, 0, 17, 0, 15, 0, + 166, 165, 0, 69, 0, 0, 0, 0, 0, 30, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 101, 0, 132, 43, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 103, 79, 0, 0, + 140, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 97, 0, 171, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 95, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97, 0, 128, 43, 0, 61, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 99, 75, 0, - 0, 136, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 0, 0, 93, 0, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - - 0, 0, 68, 0, 0, 0, 0, 122, 47, 0, - 0, 0, 70, 160, 38, 0, 0, 12, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, - 44, 18, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 73, 0, 0, 0, 0, 62, 0, 0, 89, - 0, 0, 0, 0, 0, 141, 0, 0, 0, 46, + 0, 0, 42, 0, 0, 68, 0, 0, 0, 0, + 126, 47, 0, 0, 0, 70, 164, 38, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 45, 0, 0, 44, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, + + 0, 0, 0, 62, 0, 0, 93, 0, 0, 0, + 0, 0, 145, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 0, 0, 0, 79, 0, 36, - 0, 48, 0, 0, 0, 0, 0, 0, 24, 0, - - 0, 0, 0, 0, 0, 157, 0, 126, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 0, 67, 0, 0, 0, 83, 0, + 36, 0, 48, 0, 0, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, + 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 25, 39, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 0, 0, 0, 0, 0, 160, 0, 77, 0, 76, + 0, 21, 72, 0, 0, 0, 0, 0, 65, 0, + 114, 0, 0, 94, 0, 0, 159, 0, 0, 0, + 71, 0, 0, 0, 66, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 39, 0, 0, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 21, 72, - 0, 0, 0, 0, 0, 65, 0, 110, 0, 0, - 90, 0, 0, 155, 0, 0, 71, 0, 0, 66, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, + 0, 74, 73, 22, 0, 112, 127, 0, 0, 0, + 0, 0, 0, 157, 162, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 22, 0, 108, 123, 0, 0, 0, 0, - 0, 0, 153, 158, 76, 0, 0, 0, 0, 152, - 0, 0, 26, 0, 0, 0, 0, 0, 109, 0, - 0, 154, 0 + 156, 0, 0, 26, 0, 0, 0, 0, 0, 113, + 0, 0, 158, 0 } ; static const YY_CHAR yy_ec[256] = @@ -918,374 +926,390 @@ static const YY_CHAR yy_meta[74] = 3, 3, 3 } ; -static const flex_int16_t yy_base[1556] = +static const flex_int16_t yy_base[1627] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 1944, 1945, 34, 1940, 145, 0, 207, 1945, 214, 221, - 13, 228, 1945, 1920, 118, 25, 2, 6, 1945, 1945, - 73, 11, 17, 1945, 1945, 1945, 104, 1928, 1881, 0, - 1918, 108, 1935, 24, 256, 1945, 67, 1877, 1883, 1903, + 2016, 2017, 34, 2012, 145, 0, 207, 2017, 214, 221, + 13, 228, 2017, 1992, 118, 25, 2, 6, 2017, 2017, + 73, 11, 17, 2017, 2017, 2017, 104, 2000, 1953, 0, + 1990, 108, 2007, 24, 256, 2017, 67, 1949, 1955, 1975, 84, 75, 189, 88, 226, 91, 89, 284, 196, 206, - 219, 191, 210, 197, 60, 242, 1884, 278, 230, 298, - 275, 305, 1867, 212, 306, 345, 314, 1886, 0, 367, - 374, 389, 404, 396, 1945, 0, 1945, 411, 418, 314, - 322, 292, 345, 399, 331, 1945, 1883, 1924, 1945, 331, - - 1945, 431, 398, 1870, 1880, 1921, 408, 10, 327, 1874, - 401, 408, 405, 411, 248, 1919, 0, 484, 407, 1861, - 1866, 1868, 392, 1864, 1853, 1854, 401, 1870, 1853, 1862, - 411, 314, 411, 1856, 1854, 235, 1843, 1901, 403, 1846, - 1899, 1839, 1862, 1859, 1859, 1853, 404, 1846, 1839, 1844, - 1838, 416, 1849, 1842, 1833, 1832, 1846, 399, 1884, 1831, - 421, 1843, 1846, 1830, 480, 1831, 454, 1843, 1840, 1841, - 1839, 1874, 1873, 426, 1819, 1824, 1820, 1812, 1829, 1821, - 0, 431, 448, 443, 450, 449, 465, 1820, 1945, 0, - 497, 1811, 1814, 1945, 452, 486, 1945, 1868, 1821, 496, - - 1866, 497, 1865, 490, 1864, 1945, 536, 1863, 502, 1822, - 1819, 1816, 1815, 1806, 506, 1857, 1851, 1815, 1794, 1802, - 1808, 1796, 1810, 1806, 1807, 1807, 1802, 1794, 1796, 1780, - 1784, 1797, 1799, 1796, 1788, 1778, 1781, 1795, 1945, 1781, - 1789, 1792, 1773, 1772, 1824, 1771, 1781, 1821, 508, 1780, - 1768, 1779, 1817, 528, 1821, 1756, 1771, 518, 1761, 1777, - 1758, 1760, 1756, 1762, 1753, 1752, 1765, 1758, 1760, 1764, - 1763, 1757, 509, 1764, 1759, 1751, 1741, 1756, 1751, 1755, - 513, 1753, 1739, 1745, 1752, 1740, 1737, 1736, 562, 1731, - 1745, 1744, 1747, 1729, 1737, 531, 1945, 1945, 547, 1945, - - 1945, 1724, 0, 535, 1726, 572, 550, 1782, 1945, 1733, - 553, 1945, 1780, 1945, 1774, 603, 1945, 552, 1714, 1717, - 1723, 1775, 1730, 1725, 1728, 1723, 80, 1945, 1725, 585, - 1723, 1720, 1721, 584, 1725, 1765, 1713, 1708, 1705, 1701, - 1703, 1754, 1711, 1700, 1716, 1750, 1696, 596, 1709, 1709, - 1692, 1693, 1706, 1693, 1703, 1698, 1705, 1700, 1685, 441, - 1694, 1697, 1692, 1688, 1738, 326, 569, 1945, 1732, 1682, - 1681, 1674, 1676, 1680, 1669, 1676, 1681, 530, 1728, 1681, - 549, 1678, 1682, 1680, 1669, 1669, 1681, 547, 1656, 1657, - 1678, 558, 1660, 1657, 1671, 1674, 1669, 1655, 1667, 1666, - - 1665, 1664, 1663, 1662, 555, 1705, 1704, 1703, 1645, 627, - 1658, 1945, 1945, 1657, 0, 573, 1645, 1698, 1697, 1653, - 1695, 1945, 1641, 1693, 1945, 581, 647, 603, 1692, 1640, - 1631, 1945, 1636, 1642, 1645, 1628, 1643, 1630, 1629, 1945, - 1639, 1630, 1627, 1639, 574, 1624, 1626, 1945, 1632, 1617, - 1619, 1630, 1628, 1623, 635, 1630, 1618, 1611, 1662, 1945, - 1609, 1625, 1659, 1663, 1619, 1613, 1615, 1616, 1618, 1652, - 1603, 1598, 1597, 1599, 1592, 1607, 1585, 1592, 1597, 1647, - 1945, 1592, 1588, 1644, 1595, 1589, 1596, 1581, 1591, 1594, - 1583, 1582, 1577, 1945, 1634, 1945, 1576, 1575, 1568, 1585, - - 1624, 1569, 1574, 1583, 1577, 1571, 1580, 637, 1617, 1579, - 1562, 1562, 1557, 1553, 1559, 1564, 1557, 1565, 1569, 1552, - 1610, 1550, 1551, 1550, 1562, 1551, 1945, 1945, 1945, 1551, - 1945, 1561, 1597, 1557, 0, 1600, 1548, 1945, 1945, 1545, - 1945, 1551, 1945, 623, 622, 670, 1945, 1556, 1590, 1535, - 1588, 1533, 1532, 1531, 1538, 1531, 1539, 1542, 1541, 1525, - 1540, 1522, 1569, 1536, 1574, 1518, 1520, 1532, 1532, 1531, - 1945, 1516, 1513, 1571, 1526, 1518, 1524, 1515, 1523, 1945, - 1508, 1519, 1523, 1505, 1519, 576, 1501, 1495, 1500, 1497, - 1512, 1513, 1510, 1553, 1508, 1945, 1494, 1496, 1945, 1504, - - 1543, 1542, 16, 1503, 1486, 1487, 1492, 1483, 1945, 1497, - 1483, 671, 1475, 1496, 1493, 1485, 1530, 1482, 1489, 1527, - 1945, 1473, 1471, 1485, 1469, 1483, 1486, 1520, 1519, 1518, - 1517, 1462, 1515, 1514, 1945, 629, 1476, 1475, 1472, 1472, - 1470, 1459, 1461, 1945, 1945, 1506, 1452, 1509, 621, 618, - 1450, 1448, 1464, 1505, 639, 1499, 1459, 1497, 1496, 1448, - 1442, 1437, 1492, 1452, 1442, 1450, 1488, 1449, 1431, 1439, - 1441, 1445, 1482, 1486, 1441, 1440, 1945, 1441, 1434, 1423, - 1436, 1439, 1434, 1429, 1434, 1431, 1430, 1426, 1432, 1427, - 1470, 1469, 1411, 1407, 609, 1466, 1945, 1465, 1412, 1404, - - 1457, 1418, 1405, 1945, 1405, 1414, 1413, 1413, 1397, 1454, - 1395, 1408, 1945, 1400, 1392, 1401, 1394, 1405, 1382, 1386, - 1439, 1401, 1383, 1381, 1392, 20, 130, 266, 274, 309, - 630, 348, 638, 419, 479, 641, 1945, 534, 506, 542, - 573, 594, 610, 619, 625, 634, 683, 1945, 690, 666, - 654, 655, 650, 1945, 648, 663, 660, 646, 653, 652, - 650, 669, 666, 667, 657, 670, 656, 656, 662, 718, - 664, 680, 663, 717, 672, 1945, 683, 683, 676, 687, - 685, 730, 672, 674, 689, 690, 678, 737, 694, 680, - 683, 1945, 1945, 699, 698, 703, 691, 1945, 1945, 705, - - 692, 690, 708, 695, 695, 746, 696, 754, 755, 1945, - 700, 714, 714, 759, 707, 709, 703, 763, 716, 706, - 707, 703, 713, 717, 728, 712, 730, 725, 727, 720, - 722, 723, 735, 725, 740, 781, 738, 743, 720, 1945, - 732, 733, 747, 737, 784, 732, 747, 747, 1945, 766, - 774, 743, 792, 758, 746, 741, 742, 754, 761, 750, - 751, 747, 765, 757, 752, 805, 811, 768, 759, 1945, - 771, 756, 772, 762, 775, 769, 817, 783, 767, 768, - 1945, 784, 787, 770, 772, 830, 773, 1945, 790, 793, - 773, 792, 832, 790, 786, 781, 799, 798, 784, 799, - - 791, 787, 805, 790, 1945, 1945, 798, 845, 798, 1945, - 806, 801, 854, 1945, 803, 808, 852, 804, 805, 817, - 811, 815, 813, 811, 822, 867, 811, 816, 870, 871, - 815, 827, 1945, 815, 823, 821, 818, 819, 828, 840, - 824, 838, 839, 840, 856, 861, 843, 830, 832, 832, - 852, 851, 842, 831, 848, 855, 898, 840, 900, 847, - 851, 1945, 898, 847, 865, 862, 902, 851, 869, 870, - 856, 864, 875, 855, 870, 877, 919, 920, 1945, 873, - 922, 923, 874, 884, 886, 870, 871, 878, 887, 932, - 879, 878, 895, 936, 886, 890, 888, 886, 941, 942, - - 892, 944, 940, 898, 1945, 903, 896, 887, 906, 900, - 895, 905, 902, 907, 903, 915, 1945, 899, 901, 1945, - 1945, 901, 961, 900, 919, 920, 965, 966, 920, 905, - 926, 908, 913, 920, 953, 944, 976, 933, 920, 922, - 939, 934, 938, 983, 931, 935, 1945, 932, 1945, 946, - 944, 947, 931, 932, 992, 945, 950, 937, 948, 941, - 947, 943, 961, 962, 964, 1945, 1945, 962, 1945, 964, - 1945, 949, 950, 969, 959, 1011, 964, 1008, 972, 1945, - 964, 956, 1017, 1945, 1018, 965, 972, 1016, 1945, 1945, - 974, 1945, 965, 965, 968, 982, 987, 970, 981, 1030, - - 987, 988, 989, 1029, 985, 1036, 989, 1038, 1945, 985, - 1040, 1041, 1945, 1945, 981, 1043, 1002, 986, 998, 988, - 1018, 1049, 1945, 1006, 1051, 998, 1013, 1049, 1001, 1945, - 997, 1013, 1001, 1019, 1007, 1007, 1062, 1019, 1945, 1021, - 1020, 1022, 1015, 1024, 1025, 1022, 1012, 1015, 1015, 1074, - 1021, 1077, 1078, 1021, 1080, 1945, 1016, 1031, 1024, 1084, - 1037, 1945, 1945, 1033, 1044, 1029, 1046, 1032, 1093, 1094, - 1039, 1049, 1098, 1055, 1945, 1047, 1047, 1049, 1051, 1104, - 1047, 1945, 1048, 1945, 1050, 1945, 1945, 1064, 1945, 1058, - 1110, 1059, 1112, 1092, 1945, 1109, 1945, 1057, 1065, 1059, - - 1056, 1059, 1062, 1062, 1058, 1064, 1124, 1072, 1945, 1068, - 1127, 1080, 1071, 1086, 1086, 1089, 1089, 1086, 1130, 1093, - 1945, 1085, 1945, 1945, 1095, 1945, 1096, 1097, 1094, 1138, - 1945, 1087, 1087, 1093, 1092, 1104, 1104, 1945, 1945, 1145, - 1092, 1945, 1109, 1094, 1094, 1096, 1102, 1945, 1157, 1099, - 1109, 1160, 1121, 1945, 1118, 1945, 1137, 1105, 1165, 1166, - 1123, 1128, 1110, 1170, 1171, 1172, 1125, 1945, 1115, 1175, - 1945, 1113, 1172, 1135, 1131, 1175, 1123, 1128, 1126, 1185, - 1141, 1187, 1188, 1149, 1139, 1133, 1149, 1194, 1136, 1153, - 1138, 1153, 1137, 1195, 1196, 1197, 1144, 1199, 1162, 1945, - - 1162, 1149, 1945, 1160, 1209, 1179, 1163, 1945, 1945, 1154, - 1165, 1214, 1945, 1945, 1945, 1161, 1159, 1945, 1217, 1163, - 1214, 1157, 1162, 1223, 1171, 1181, 1182, 1945, 1227, 1180, - 1945, 1945, 1171, 1186, 1174, 1189, 1945, 1228, 1194, 1187, - 1188, 1197, 1180, 1186, 1188, 1242, 1202, 1201, 1193, 1247, - 1196, 1945, 1249, 1198, 1251, 1193, 1945, 1200, 1200, 1945, - 1204, 1199, 1198, 1258, 1211, 1945, 1255, 1206, 1203, 1945, - 1217, 1220, 1265, 1218, 1267, 1208, 1210, 1218, 1208, 1224, - 1225, 1219, 1235, 1945, 1225, 1277, 1236, 1945, 1274, 1945, - 1236, 1945, 1276, 1277, 1232, 1240, 1231, 1238, 1945, 1235, - - 1240, 1238, 1290, 1291, 1234, 1945, 1249, 1945, 1239, 1251, - 1252, 1297, 1239, 1247, 1241, 1249, 1262, 1945, 1239, 1262, - 1247, 1247, 1252, 1308, 1256, 1268, 1259, 1268, 1270, 1274, - 1945, 1945, 1315, 1258, 1274, 1318, 1319, 1945, 1315, 1277, - 1274, 1279, 1266, 1325, 1262, 1327, 1280, 1285, 1945, 1330, - 1287, 1288, 1333, 1290, 1293, 1945, 1336, 1297, 1945, 1945, - 1279, 1339, 1286, 1341, 1284, 1945, 1301, 1945, 1292, 1288, - 1945, 1288, 1290, 1945, 1295, 1305, 1945, 1291, 1303, 1945, - 1299, 1945, 1309, 1303, 1311, 1308, 1299, 1353, 1300, 1308, - 1317, 1310, 1305, 1306, 1321, 1366, 1313, 1320, 1307, 1322, - - 1327, 1372, 1329, 1374, 1375, 1318, 1945, 1334, 1325, 1339, - 1335, 1328, 1945, 1382, 1945, 1945, 1383, 1384, 1339, 1338, - 1339, 1329, 1945, 1945, 1945, 1389, 1331, 1347, 1392, 1945, - 1388, 1337, 1945, 1336, 1338, 1349, 1398, 1347, 1945, 1356, - 1401, 1945, 1945, 1407, 1412, 1417, 1422, 1427, 1432, 1437, - 1440, 1414, 1419, 1421, 1434 + 219, 191, 210, 197, 60, 242, 1956, 278, 287, 298, + 294, 313, 1939, 212, 318, 350, 328, 1958, 0, 379, + 400, 417, 424, 429, 2017, 0, 2017, 393, 407, 269, + 299, 301, 406, 418, 304, 2017, 1955, 1996, 2017, 293, + + 2017, 442, 312, 1942, 1952, 1993, 421, 10, 345, 1946, + 319, 338, 336, 369, 248, 1991, 0, 495, 413, 1933, + 1938, 1940, 332, 1936, 1925, 1926, 410, 1942, 1925, 1934, + 418, 340, 226, 1928, 1926, 405, 1915, 1973, 448, 1918, + 1971, 1911, 1934, 1931, 1931, 1925, 411, 1918, 1916, 1910, + 1915, 1909, 421, 1920, 1913, 1904, 1903, 1917, 408, 1955, + 1902, 413, 1914, 1917, 1901, 491, 1902, 423, 1914, 1911, + 1912, 1910, 1945, 1944, 434, 1890, 1895, 1891, 1883, 1900, + 1892, 0, 451, 460, 434, 460, 468, 476, 1891, 2017, + 0, 481, 1882, 1885, 2017, 464, 474, 2017, 1939, 1892, + + 504, 1937, 507, 1936, 497, 1935, 2017, 544, 1934, 517, + 1893, 1890, 1887, 1886, 1877, 514, 1928, 1922, 1886, 1865, + 1873, 1879, 1867, 1881, 1877, 1878, 1878, 1873, 1865, 1867, + 1851, 1855, 1868, 1870, 1867, 1859, 1849, 1852, 1866, 2017, + 1852, 1860, 1863, 1844, 1843, 1895, 1842, 1852, 1892, 519, + 1851, 1890, 1838, 1849, 1887, 524, 1891, 1826, 1841, 358, + 1831, 1847, 1828, 1830, 1826, 1832, 1823, 1822, 1835, 1828, + 1830, 1834, 1833, 1827, 220, 1834, 1829, 1821, 1811, 1826, + 1821, 1825, 482, 1823, 1809, 1815, 1822, 1810, 1807, 1806, + 486, 1801, 1815, 1814, 1817, 1799, 1807, 537, 2017, 2017, + + 539, 2017, 2017, 1794, 0, 506, 1796, 579, 548, 1852, + 2017, 1803, 545, 2017, 1850, 2017, 1844, 595, 2017, 536, + 1784, 1787, 1793, 1845, 1800, 1795, 1798, 1793, 80, 2017, + 1795, 593, 1793, 1790, 1791, 323, 1795, 1835, 1783, 1778, + 1775, 1771, 1773, 1824, 1781, 1770, 1786, 1820, 1766, 596, + 1779, 1779, 1762, 1763, 1776, 1763, 1773, 1768, 1775, 1770, + 1755, 563, 1764, 1767, 1762, 322, 1758, 1808, 566, 553, + 2017, 1802, 1752, 1751, 1744, 1746, 1750, 1739, 1746, 1751, + 575, 1798, 1751, 578, 1748, 1752, 1750, 1739, 1739, 1751, + 570, 1726, 1727, 1748, 581, 1730, 1727, 1741, 1744, 1739, + + 1725, 1737, 1736, 1735, 1734, 1733, 1732, 476, 1775, 1774, + 1773, 1715, 641, 1728, 2017, 2017, 1727, 0, 598, 1715, + 1768, 1767, 1723, 1765, 2017, 1711, 1763, 2017, 604, 652, + 617, 1762, 1710, 1701, 2017, 1706, 1712, 1715, 1698, 1713, + 1700, 1699, 2017, 1709, 1700, 1697, 1709, 552, 1694, 1696, + 2017, 1702, 1687, 1689, 1700, 1698, 1693, 643, 1700, 1688, + 1681, 1732, 2017, 1679, 1695, 1729, 1733, 1689, 1683, 1685, + 1686, 1688, 1722, 1673, 1668, 1667, 1669, 1665, 1661, 1676, + 1679, 1653, 1660, 1665, 1658, 1674, 1713, 2017, 1658, 1654, + 1710, 1661, 1655, 1662, 1647, 1657, 1660, 1649, 1648, 1643, + + 2017, 1700, 2017, 1642, 1641, 1634, 1651, 1690, 1635, 1640, + 1649, 1643, 1637, 1646, 645, 1683, 1645, 1628, 1628, 1623, + 1619, 1625, 1630, 1623, 1631, 1635, 1618, 1676, 1616, 1617, + 1616, 1628, 1617, 2017, 2017, 2017, 1617, 2017, 1627, 1663, + 1623, 0, 1666, 1614, 2017, 2017, 1611, 2017, 1617, 2017, + 604, 622, 676, 2017, 1622, 1656, 1601, 1654, 1599, 1598, + 1597, 1604, 1597, 1605, 1608, 1607, 1591, 1606, 1588, 1635, + 1602, 1640, 1584, 1586, 1598, 1598, 1597, 2017, 1582, 1579, + 1637, 1592, 1584, 1590, 1581, 1589, 2017, 1574, 1585, 1589, + 1571, 1585, 536, 1567, 1561, 1566, 1563, 1578, 1577, 1578, + + 1568, 1574, 1617, 1572, 1571, 1563, 2017, 1556, 1558, 2017, + 1566, 1605, 1604, 16, 1565, 1548, 1549, 1554, 1545, 2017, + 1559, 1545, 677, 1537, 1558, 1555, 1547, 1592, 1544, 1551, + 1589, 2017, 1535, 1533, 1547, 1531, 1545, 1548, 1582, 1581, + 1580, 1579, 1524, 1577, 1576, 2017, 597, 1538, 1537, 1534, + 1534, 1532, 1521, 1523, 2017, 2017, 1568, 1514, 1571, 621, + 621, 1512, 1510, 1526, 1567, 641, 1561, 1521, 1559, 1558, + 1510, 1504, 1499, 1554, 1514, 1504, 1512, 1550, 1511, 1493, + 1501, 1503, 1507, 1544, 1548, 1503, 1502, 2017, 1503, 1496, + 1485, 1498, 1501, 1496, 1491, 1496, 1493, 1492, 1488, 1494, + + 1489, 1532, 1531, 1473, 1484, 1468, 634, 1479, 1526, 2017, + 1525, 1479, 1475, 1470, 1462, 1515, 1476, 1463, 2017, 1463, + 1472, 1471, 1471, 1455, 1512, 77, 245, 2017, 348, 430, + 460, 456, 534, 530, 575, 639, 611, 596, 606, 619, + 663, 673, 682, 630, 648, 643, 657, 652, 637, 649, + 650, 2017, 704, 661, 662, 653, 666, 669, 660, 666, + 675, 716, 2017, 712, 688, 675, 676, 671, 2017, 669, + 684, 681, 667, 674, 673, 671, 690, 687, 688, 678, + 691, 677, 676, 682, 738, 684, 700, 683, 737, 692, + 2017, 702, 702, 696, 707, 705, 750, 692, 694, 709, + + 710, 698, 757, 714, 700, 703, 2017, 2017, 719, 718, + 719, 724, 712, 723, 2017, 2017, 723, 725, 729, 716, + 714, 732, 719, 719, 770, 720, 778, 779, 2017, 724, + 738, 738, 783, 731, 733, 727, 787, 740, 730, 731, + 727, 737, 741, 752, 736, 754, 749, 751, 744, 746, + 747, 759, 749, 764, 805, 762, 767, 744, 2017, 756, + 757, 771, 761, 808, 756, 771, 771, 2017, 790, 798, + 767, 816, 782, 770, 765, 766, 778, 785, 774, 775, + 771, 789, 781, 776, 829, 835, 792, 783, 2017, 795, + 780, 796, 786, 799, 793, 841, 807, 791, 792, 2017, + + 808, 811, 794, 796, 854, 797, 2017, 814, 817, 797, + 816, 804, 857, 815, 811, 860, 809, 862, 809, 827, + 826, 812, 827, 819, 815, 833, 818, 2017, 2017, 826, + 873, 826, 2017, 834, 829, 882, 2017, 831, 836, 880, + 832, 833, 845, 839, 843, 841, 839, 850, 895, 839, + 844, 898, 899, 843, 855, 2017, 843, 851, 849, 846, + 847, 856, 868, 852, 866, 867, 869, 885, 890, 872, + 858, 860, 860, 880, 879, 870, 859, 876, 883, 926, + 868, 928, 875, 879, 2017, 926, 875, 893, 890, 930, + 879, 897, 898, 884, 892, 901, 883, 898, 905, 947, + + 948, 2017, 901, 950, 951, 902, 912, 914, 898, 900, + 900, 907, 916, 910, 905, 912, 964, 911, 910, 927, + 968, 918, 922, 920, 918, 973, 974, 924, 976, 972, + 930, 2017, 935, 928, 919, 938, 932, 927, 937, 934, + 939, 935, 947, 2017, 931, 933, 2017, 2017, 933, 993, + 932, 952, 953, 998, 999, 952, 937, 958, 940, 945, + 952, 985, 976, 1008, 965, 952, 954, 971, 966, 970, + 1015, 963, 967, 2017, 964, 2017, 978, 976, 979, 963, + 964, 1024, 977, 982, 969, 980, 973, 979, 975, 993, + 994, 996, 2017, 2017, 994, 2017, 996, 2017, 981, 982, + + 1001, 991, 1043, 1000, 997, 1041, 1005, 1000, 1005, 1002, + 2017, 1000, 992, 1053, 2017, 1054, 1001, 1008, 1052, 2017, + 2017, 1010, 2017, 1001, 1001, 1004, 1018, 1023, 1006, 1017, + 1066, 1023, 1024, 1025, 1065, 1021, 1072, 1025, 1074, 2017, + 1021, 1076, 1077, 2017, 2017, 1017, 1079, 1038, 1022, 1034, + 1024, 1054, 1085, 2017, 1042, 1087, 1034, 1049, 1085, 1037, + 2017, 1033, 1049, 1037, 1055, 1043, 1043, 1098, 1055, 2017, + 1057, 1056, 1058, 1051, 1060, 1061, 1058, 1048, 1051, 1051, + 1110, 1057, 1113, 1114, 1057, 1116, 2017, 1074, 1053, 1068, + 1061, 1076, 1079, 1079, 1125, 1078, 2017, 2017, 1075, 1085, + + 1070, 1087, 1073, 1134, 1135, 1079, 1089, 1138, 1095, 2017, + 1087, 1087, 1089, 1091, 1144, 1087, 2017, 1088, 2017, 1090, + 2017, 2017, 1104, 2017, 1098, 1150, 1099, 1152, 1132, 2017, + 1149, 2017, 1097, 1105, 1099, 1096, 1099, 1102, 1102, 1098, + 1104, 1164, 1112, 2017, 1108, 1167, 1120, 1111, 1126, 1126, + 1129, 1129, 1126, 1170, 1133, 2017, 1125, 2017, 2017, 1135, + 2017, 1175, 1137, 1138, 1135, 1179, 1141, 1181, 1143, 2017, + 1131, 1131, 1137, 1136, 1148, 1148, 2017, 2017, 1189, 1136, + 2017, 1153, 1138, 1138, 1140, 1146, 2017, 1201, 1143, 1153, + 1204, 1165, 2017, 1162, 2017, 1181, 1149, 1209, 1210, 1167, + + 1172, 1154, 1214, 1215, 1216, 1169, 2017, 1159, 1219, 2017, + 1157, 1216, 1179, 1175, 1219, 1167, 1172, 1170, 1229, 1185, + 1231, 1181, 1233, 1195, 1184, 1178, 1179, 1188, 1181, 1197, + 1242, 1184, 1201, 1186, 1201, 1185, 1243, 1244, 1245, 1192, + 1247, 1210, 2017, 1210, 1197, 2017, 1208, 1257, 1227, 1211, + 2017, 2017, 1202, 1213, 1262, 2017, 2017, 2017, 1209, 1207, + 2017, 1265, 1211, 1262, 1205, 1210, 1271, 1219, 1229, 1230, + 2017, 1275, 1228, 2017, 1229, 2017, 1220, 1235, 1223, 1233, + 1234, 1235, 1241, 2017, 1280, 1248, 1241, 1242, 1251, 1233, + 1239, 1241, 1295, 1254, 1253, 1245, 1299, 1248, 2017, 1301, + + 1250, 1303, 1245, 2017, 1252, 1252, 2017, 1256, 1251, 1250, + 1310, 1263, 2017, 1307, 1258, 1255, 2017, 1269, 1271, 1273, + 1318, 1271, 1268, 1276, 1270, 1323, 1264, 1266, 1274, 1264, + 1280, 1281, 1275, 1291, 2017, 1281, 1333, 1292, 2017, 1330, + 2017, 1292, 2017, 1332, 1333, 1288, 1296, 1287, 1294, 2017, + 1291, 1296, 1294, 1346, 1347, 1304, 1291, 2017, 1306, 1307, + 1308, 1309, 2017, 1299, 1311, 1312, 1357, 1299, 1307, 1301, + 1309, 1322, 2017, 1299, 1322, 1307, 1307, 1312, 1368, 1316, + 1328, 1319, 1328, 1330, 1334, 2017, 2017, 1316, 1376, 1319, + 1378, 1320, 1380, 1338, 1382, 1383, 2017, 1379, 1341, 1338, + + 1343, 1330, 1389, 1326, 1391, 1344, 1349, 2017, 1394, 1351, + 1352, 1397, 1354, 1357, 1352, 2017, 1401, 2017, 1354, 2017, + 1363, 2017, 2017, 1345, 1405, 1352, 1407, 1350, 2017, 1367, + 2017, 1358, 1354, 2017, 1354, 1356, 2017, 1361, 1371, 1364, + 2017, 1365, 1359, 1371, 2017, 1367, 2017, 1377, 1371, 1379, + 1376, 1367, 1421, 1368, 1376, 1385, 1386, 1387, 1380, 1375, + 1376, 1391, 1436, 1383, 1390, 1377, 1392, 1397, 1442, 1443, + 1444, 1401, 1446, 1447, 1390, 2017, 1406, 1397, 1411, 1407, + 1400, 2017, 2017, 2017, 1454, 2017, 2017, 1455, 1456, 1411, + 1410, 1411, 1401, 2017, 2017, 2017, 1461, 1403, 1419, 1464, + + 2017, 1460, 1409, 2017, 1408, 1410, 1421, 1470, 1419, 2017, + 1428, 1473, 2017, 2017, 1479, 1484, 1489, 1494, 1499, 1504, + 1509, 1512, 1486, 1491, 1493, 1506 } ; -static const flex_int16_t yy_def[1556] = +static const flex_int16_t yy_def[1627] = { 0, - 1544, 1544, 1545, 1545, 1544, 1544, 1544, 1544, 1544, 1544, - 1543, 1543, 1543, 1543, 1543, 1546, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1547, - 1543, 1543, 1543, 1548, 15, 1543, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1549, 45, 45, + 1615, 1615, 1616, 1616, 1615, 1615, 1615, 1615, 1615, 1615, + 1614, 1614, 1614, 1614, 1614, 1617, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1618, + 1614, 1614, 1614, 1619, 15, 1614, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1546, 1543, - 1543, 1543, 1543, 1543, 1543, 1550, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1547, 1543, 1548, + 45, 45, 45, 45, 45, 45, 45, 45, 1617, 1614, + 1614, 1614, 1614, 1614, 1614, 1621, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1618, 1614, 1619, - 1543, 1543, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1551, 45, 1549, 45, 45, + 1614, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1622, 45, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1550, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1552, - 45, 45, 45, 1543, 45, 45, 1543, 45, 45, 45, + 45, 1621, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1623, 45, 45, 45, 1614, 45, 45, 1614, 45, 45, - 45, 45, 45, 45, 1551, 1543, 1549, 45, 45, 45, + 45, 45, 45, 45, 45, 1622, 1614, 1620, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1543, 1543, 1543, 1543, 1543, + 45, 45, 45, 45, 45, 45, 45, 1614, 1614, 1614, - 1543, 1543, 1553, 45, 45, 45, 45, 45, 1543, 45, - 45, 1543, 45, 1543, 45, 1549, 1543, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 1614, 1614, 1614, 1614, 1624, 45, 45, 45, 45, 45, + 1614, 45, 45, 1614, 45, 1614, 45, 1620, 1614, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1543, 1543, 1543, 1554, 45, 45, 45, 45, 45, - 45, 1543, 45, 45, 1543, 45, 1549, 45, 45, 45, - 45, 1543, 45, 45, 45, 45, 45, 45, 45, 1543, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 1614, 1614, 1614, 1625, 45, 45, + 45, 45, 45, 45, 1614, 45, 45, 1614, 45, 1620, + 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, + 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1543, 45, 1543, 45, 45, 45, 45, + 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1614, 1614, 1614, 45, 1614, 45, 45, + 1614, 1626, 45, 45, 1614, 1614, 45, 1614, 45, 1614, + 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 1543, 1543, 45, - 1543, 45, 45, 1543, 1555, 45, 45, 1543, 1543, 45, - 1543, 45, 1543, 45, 45, 45, 1543, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, + 45, 45, 45, 45, 1614, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1543, 45, 45, 1543, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, - 45, 45, 45, 1543, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1614, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, - 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, + 45, 45, 45, 45, 1614, 1614, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, - 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1543, 1543, 45, 45, 45, 45, 1543, 1543, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1614, 1614, 45, + 45, 45, 1614, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1543, 1543, 45, 45, 45, 1543, - 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, + 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1614, 45, 45, 1614, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1614, 1614, 45, 1614, 45, 1614, 45, 45, - 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 45, 1543, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 1543, 45, + 1614, 45, 45, 45, 1614, 45, 45, 45, 45, 1614, + 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 1614, 1614, 45, 45, 45, 45, 45, + 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1543, 1543, 45, 1543, 45, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1543, - 45, 45, 45, 1543, 45, 45, 45, 45, 1543, 1543, - 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, - 45, 45, 1543, 1543, 45, 45, 45, 45, 45, 45, - 45, 45, 1543, 45, 45, 45, 45, 45, 45, 1543, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 1614, 45, 1614, 45, + 1614, 1614, 45, 1614, 45, 45, 45, 45, 45, 1614, + 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1614, 45, 1614, 1614, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 1614, 1614, 45, 45, + 1614, 45, 45, 45, 45, 45, 1614, 45, 45, 45, + 45, 45, 1614, 45, 1614, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, - 45, 1543, 1543, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, - 45, 1543, 45, 1543, 45, 1543, 1543, 45, 1543, 45, - 45, 45, 45, 45, 1543, 45, 1543, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 45, 1543, 1543, 45, 1543, 45, 45, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 1543, 1543, 45, - 45, 1543, 45, 45, 45, 45, 45, 1543, 45, 45, - 45, 45, 45, 1543, 45, 1543, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, - 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, - - 45, 45, 1543, 45, 45, 45, 45, 1543, 1543, 45, - 45, 45, 1543, 1543, 1543, 45, 45, 1543, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, - 1543, 1543, 45, 45, 45, 45, 1543, 45, 45, 45, + 45, 45, 1614, 45, 45, 1614, 45, 45, 45, 45, + 1614, 1614, 45, 45, 45, 1614, 1614, 1614, 45, 45, + 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1614, 45, 45, 1614, 45, 1614, 45, 45, 45, 45, + 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1614, 45, + + 45, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, + 45, 45, 1614, 45, 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1543, 45, 45, 45, 45, 1543, 45, 45, 1543, - 45, 45, 45, 45, 45, 1543, 45, 45, 45, 1543, + 45, 45, 45, 45, 1614, 45, 45, 45, 1614, 45, + 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 1614, + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, + 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1614, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1614, 1614, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1614, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 1614, 45, 45, + 45, 45, 45, 45, 45, 1614, 45, 1614, 45, 1614, + 45, 1614, 1614, 45, 45, 45, 45, 45, 1614, 45, + 1614, 45, 45, 1614, 45, 45, 1614, 45, 45, 45, + 1614, 45, 45, 45, 1614, 45, 1614, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1543, 45, 45, 45, 1543, 45, 1543, - 45, 1543, 45, 45, 45, 45, 45, 45, 1543, 45, - - 45, 45, 45, 45, 45, 1543, 45, 1543, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1543, 1543, 45, 45, 45, 45, 45, 1543, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, - 45, 45, 45, 45, 45, 1543, 45, 45, 1543, 1543, - 45, 45, 45, 45, 45, 1543, 45, 1543, 45, 45, - 1543, 45, 45, 1543, 45, 45, 1543, 45, 45, 1543, - 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1614, 45, 45, 45, 45, + 45, 1614, 1614, 1614, 45, 1614, 1614, 45, 45, 45, + 45, 45, 45, 1614, 1614, 1614, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, - 45, 45, 1543, 45, 1543, 1543, 45, 45, 45, 45, - 45, 45, 1543, 1543, 1543, 45, 45, 45, 45, 1543, - 45, 45, 1543, 45, 45, 45, 45, 45, 1543, 45, - 45, 1543, 0, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543 + 1614, 45, 45, 1614, 45, 45, 45, 45, 45, 1614, + 45, 45, 1614, 0, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614 } ; -static const flex_int16_t yy_nxt[2019] = +static const flex_int16_t yy_nxt[2091] = { 0, - 1543, 13, 14, 13, 1543, 15, 16, 1543, 17, 18, + 1614, 13, 14, 13, 1614, 15, 16, 1614, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 704, 37, 14, 37, 86, 25, 26, 38, 101, - 825, 27, 37, 14, 37, 42, 28, 42, 38, 91, - 92, 29, 196, 30, 13, 14, 13, 90, 91, 25, + 85, 719, 37, 14, 37, 86, 25, 26, 38, 101, + 1614, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 92, 29, 197, 30, 13, 14, 13, 90, 91, 25, 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, - 705, 13, 14, 13, 33, 40, 102, 91, 92, 196, + 720, 13, 14, 13, 33, 40, 102, 91, 92, 197, 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 13, 14, 13, 90, 39, 103, 25, 26, 13, 14, 13, 27, 39, 42, 107, 42, 28, 42, 108, 42, 41, 29, 111, 30, 114, 115, 93, 136, - 41, 25, 31, 103, 137, 437, 88, 138, 88, 107, + 41, 25, 31, 103, 137, 440, 88, 138, 88, 107, 32, 89, 89, 89, 89, 89, 33, 111, 108, 114, - 826, 115, 438, 34, 35, 44, 44, 44, 45, 45, + 830, 115, 441, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 48, 49, 50, 51, 45, 52, 53, 54, 45, 45, 45, @@ -1297,221 +1321,228 @@ static const flex_int16_t yy_nxt[2019] = 81, 81, 81, 81, 81, 80, 103, 83, 83, 83, 83, 83, 107, 82, 84, 84, 84, 84, 84, 80, 82, 83, 83, 83, 83, 83, 134, 82, 110, 131, - 112, 121, 119, 135, 82, 107, 82, 164, 120, 132, - 113, 165, 122, 82, 126, 123, 133, 124, 127, 125, - 82, 128, 129, 112, 204, 147, 827, 82, 45, 148, + 112, 121, 119, 135, 82, 107, 82, 165, 120, 132, + 113, 166, 122, 82, 126, 123, 133, 124, 127, 125, + 82, 128, 129, 112, 205, 231, 390, 82, 45, 391, 45, 45, 45, 45, 130, 45, 45, 45, 113, 117, - 139, 234, 45, 45, 235, 45, 45, 204, 236, 149, + 139, 232, 45, 45, 831, 45, 45, 205, 101, 183, 140, 45, 141, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 111, 153, 45, 143, 144, 184, - 45, 145, 197, 154, 45, 155, 101, 146, 828, 114, - 156, 157, 45, 150, 182, 151, 45, 152, 45, 118, - 158, 166, 183, 159, 160, 167, 829, 184, 168, 172, - 173, 228, 114, 198, 161, 169, 170, 162, 184, 112, - 182, 171, 178, 102, 229, 182, 482, 179, 183, 113, - 84, 84, 84, 84, 84, 80, 483, 81, 81, 81, - 81, 81, 174, 82, 175, 832, 187, 88, 176, 88, - - 82, 185, 89, 89, 89, 89, 89, 113, 239, 84, - 84, 84, 84, 84, 177, 80, 82, 83, 83, 83, - 83, 83, 82, 82, 89, 89, 89, 89, 89, 183, - 82, 89, 89, 89, 89, 89, 100, 191, 195, 200, - 213, 201, 202, 100, 203, 82, 191, 219, 220, 214, - 215, 248, 240, 82, 200, 186, 225, 221, 226, 201, - 230, 260, 261, 208, 195, 191, 296, 200, 201, 298, - 202, 203, 249, 100, 209, 227, 231, 100, 297, 297, - 264, 100, 254, 265, 266, 296, 289, 307, 836, 100, - 270, 298, 298, 100, 296, 100, 190, 207, 207, 207, - - 207, 207, 475, 476, 297, 300, 207, 207, 207, 207, - 207, 207, 280, 299, 301, 307, 281, 308, 360, 304, - 282, 315, 311, 313, 304, 271, 272, 273, 371, 207, - 207, 207, 207, 207, 207, 494, 274, 837, 275, 840, - 276, 277, 304, 278, 308, 311, 313, 318, 315, 316, - 316, 316, 316, 316, 311, 841, 324, 412, 316, 316, - 316, 316, 316, 316, 325, 387, 396, 312, 388, 326, - 327, 361, 405, 412, 362, 416, 421, 367, 372, 397, - 412, 316, 316, 316, 316, 316, 316, 424, 418, 419, - 440, 842, 416, 495, 445, 441, 413, 420, 498, 421, - - 446, 460, 499, 424, 416, 506, 461, 511, 536, 507, - 525, 512, 544, 526, 545, 424, 427, 427, 427, 427, - 427, 428, 561, 688, 689, 427, 427, 427, 427, 427, - 427, 484, 531, 843, 737, 562, 536, 532, 536, 544, - 571, 545, 621, 844, 750, 572, 738, 622, 427, 427, - 427, 427, 427, 427, 462, 649, 650, 749, 845, 463, - 45, 45, 45, 45, 45, 796, 546, 750, 797, 45, - 45, 45, 45, 45, 45, 645, 713, 846, 847, 848, - 651, 714, 649, 830, 650, 749, 755, 756, 849, 757, - 831, 833, 45, 45, 45, 45, 45, 45, 834, 838, - - 850, 851, 835, 852, 853, 839, 854, 855, 856, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, - 715, 868, 869, 870, 871, 872, 873, 874, 875, 851, - 876, 877, 878, 879, 880, 881, 883, 884, 885, 886, - 882, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 899, 901, 902, 903, 900, 904, 905, - 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, - 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, - 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, - 937, 938, 939, 940, 941, 930, 942, 943, 944, 945, - - 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 967, 968, 946, 969, 970, 945, 971, 972, 973, - 974, 975, 976, 977, 978, 979, 982, 983, 984, 985, - 980, 986, 987, 988, 989, 990, 991, 992, 993, 994, - 995, 996, 997, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 998, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, - 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1037, 1036, 981, 1038, 1039, 1040, 1041, 1042, 1043, + 45, 45, 45, 45, 111, 183, 45, 143, 144, 184, + 45, 145, 147, 448, 45, 102, 148, 146, 185, 449, + 149, 185, 45, 151, 154, 152, 45, 153, 45, 118, + 198, 192, 155, 114, 156, 184, 150, 201, 159, 157, + 158, 160, 161, 167, 173, 174, 185, 168, 374, 188, + 169, 202, 162, 203, 112, 163, 114, 170, 171, 192, + 214, 199, 485, 172, 113, 201, 179, 229, 486, 215, + 216, 180, 84, 84, 84, 84, 84, 175, 202, 176, + + 230, 203, 204, 177, 832, 82, 89, 89, 89, 89, + 89, 80, 113, 81, 81, 81, 81, 81, 375, 178, + 89, 89, 89, 89, 89, 88, 82, 88, 82, 204, + 89, 89, 89, 89, 89, 80, 183, 83, 83, 83, + 83, 83, 84, 84, 84, 84, 84, 100, 184, 82, + 82, 196, 192, 240, 100, 82, 220, 221, 249, 201, + 300, 235, 186, 226, 236, 227, 222, 202, 237, 209, + 262, 263, 266, 82, 187, 267, 268, 196, 82, 250, + 210, 282, 228, 300, 100, 283, 298, 256, 100, 284, + 299, 314, 100, 833, 291, 298, 408, 241, 299, 309, + + 100, 272, 300, 306, 100, 310, 100, 191, 208, 208, + 208, 208, 208, 834, 298, 835, 299, 208, 208, 208, + 208, 208, 208, 301, 302, 303, 306, 309, 317, 362, + 313, 532, 310, 315, 533, 399, 273, 274, 275, 306, + 208, 208, 208, 208, 208, 208, 419, 276, 400, 277, + 313, 278, 279, 313, 280, 317, 315, 318, 318, 318, + 318, 318, 320, 415, 326, 415, 318, 318, 318, 318, + 318, 318, 327, 370, 424, 419, 419, 328, 329, 427, + 501, 836, 363, 699, 700, 364, 415, 427, 416, 318, + 318, 318, 318, 318, 318, 421, 422, 424, 443, 837, + + 568, 463, 752, 444, 423, 431, 464, 427, 430, 430, + 430, 430, 430, 569, 753, 491, 489, 430, 430, 430, + 430, 430, 430, 478, 479, 480, 490, 505, 513, 481, + 518, 506, 514, 543, 519, 551, 660, 552, 502, 838, + 430, 430, 430, 430, 430, 430, 538, 765, 578, 839, + 632, 539, 543, 579, 465, 633, 661, 764, 840, 466, + 841, 543, 551, 660, 552, 45, 45, 45, 45, 45, + 765, 842, 843, 844, 45, 45, 45, 45, 45, 45, + 553, 656, 728, 845, 661, 764, 662, 729, 770, 771, + 812, 772, 846, 813, 847, 848, 849, 45, 45, 45, + + 45, 45, 45, 850, 851, 852, 855, 856, 857, 859, + 860, 861, 853, 862, 858, 863, 854, 864, 865, 866, + 867, 868, 869, 870, 871, 872, 730, 873, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 870, 897, 898, 899, 900, 902, 903, 904, 905, + 901, 906, 907, 908, 909, 910, 911, 912, 913, 914, + 915, 916, 917, 918, 919, 920, 921, 922, 924, 925, + 926, 923, 927, 928, 929, 930, 931, 932, 933, 934, + 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, + + 945, 946, 947, 948, 949, 950, 951, 952, 954, 955, + 956, 957, 958, 959, 960, 961, 962, 963, 964, 953, + 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 969, 992, 993, + 968, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1005, 1006, 1007, 1008, 1003, 1009, 1010, 1011, 1012, 1013, + 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, + 1024, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, + 1035, 1025, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1035, 1036, - 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1073, - 1074, 1075, 1070, 1076, 1077, 1078, 1079, 1080, 1081, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1113, 1114, 1072, 1115, 1116, 1117, 1118, 1119, 1120, 1121, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1004, 1061, 1062, + 1064, 1063, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1062, 1063, 1090, + 1091, 1092, 1093, 1094, 1095, 1096, 1098, 1100, 1101, 1102, + 1097, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, - 1142, 1143, 1121, 1144, 1145, 1146, 1147, 1148, 1122, 1149, - 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, - 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1199, 1200, 1201, - 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, - 1222, 1194, 1223, 1224, 1225, 1226, 1227, 1228, 1230, 1231, - 1232, 1233, 1180, 1234, 1235, 1229, 1236, 1237, 1238, 1239, - - 1198, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, - 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, - 1279, 1257, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1099, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, + 1171, 1172, 1173, 1174, 1152, 1175, 1176, 1177, 1178, 1179, + 1153, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, + 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1212, 1213, 1214, 1216, 1217, 1218, 1219, + 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 1232, 1234, 1235, 1236, 1237, 1238, 1239, 1240, + + 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, + 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1229, 1258, 1259, + 1260, 1261, 1262, 1263, 1264, 1266, 1267, 1268, 1215, 1269, + 1270, 1271, 1265, 1272, 1273, 1274, 1233, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1330, 1331, 1332, 1333, 1306, 1334, 1335, 1336, 1337, - - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1362, 1363, 1364, 1365, 1361, 1366, 1367, - 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, - 1378, 1379, 1380, 1353, 1381, 1382, 1383, 1384, 1329, 1385, - 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, - 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, - - 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, - 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, - 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, - 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, - 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, - 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, - - 1536, 1537, 1538, 1539, 1540, 1541, 1542, 12, 12, 12, - 12, 12, 36, 36, 36, 36, 36, 79, 303, 79, - 79, 79, 98, 415, 98, 535, 98, 100, 100, 100, - 100, 100, 116, 116, 116, 116, 116, 181, 100, 181, - 181, 181, 205, 205, 205, 824, 823, 822, 821, 820, - 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, - 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, - 799, 798, 795, 794, 793, 792, 791, 790, 789, 788, - 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, - 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, - - 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, - 754, 753, 752, 751, 748, 747, 746, 745, 744, 743, - 742, 741, 740, 739, 736, 735, 734, 733, 732, 731, - 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, - 720, 719, 718, 717, 716, 712, 711, 710, 709, 708, - 707, 706, 703, 702, 701, 700, 699, 698, 697, 696, - 695, 694, 693, 692, 691, 690, 687, 686, 685, 684, - 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, - 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, - - 653, 652, 648, 647, 646, 645, 644, 643, 642, 641, - 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, - 630, 629, 628, 627, 626, 625, 624, 623, 620, 619, - 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, - 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, - 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 575, 574, 573, 570, 569, 568, 567, - 566, 565, 564, 563, 560, 559, 558, 557, 556, 555, - 554, 553, 552, 551, 550, 549, 548, 547, 543, 542, - - 541, 540, 539, 538, 537, 534, 533, 530, 529, 528, - 527, 524, 523, 522, 521, 520, 519, 518, 517, 516, - 515, 514, 513, 510, 509, 508, 505, 504, 503, 502, - 501, 500, 497, 496, 493, 492, 491, 490, 489, 488, - 487, 486, 485, 481, 480, 479, 478, 477, 474, 473, - 472, 471, 470, 469, 468, 467, 466, 465, 464, 459, - 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, - 448, 447, 444, 443, 442, 439, 436, 435, 434, 433, - 432, 431, 430, 429, 426, 425, 423, 422, 417, 414, - 411, 410, 409, 408, 407, 406, 404, 403, 402, 401, - - 400, 399, 398, 395, 394, 393, 392, 391, 390, 389, - 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, - 376, 375, 374, 373, 370, 369, 368, 366, 365, 364, - 363, 359, 358, 357, 356, 355, 354, 353, 352, 351, - 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, - 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, - 330, 329, 328, 323, 322, 321, 320, 319, 317, 206, - 314, 312, 310, 309, 306, 305, 302, 295, 294, 293, - 292, 291, 290, 288, 287, 286, 285, 284, 283, 279, - 269, 268, 267, 263, 262, 259, 258, 257, 256, 255, - - 253, 252, 251, 250, 247, 246, 245, 244, 243, 242, - 241, 238, 237, 233, 232, 224, 223, 222, 218, 217, - 216, 212, 211, 210, 206, 199, 194, 193, 192, 189, - 188, 180, 163, 142, 106, 105, 104, 43, 99, 97, - 96, 87, 43, 1543, 11, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543 + 1318, 1296, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, + + 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, + 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, + 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, + 1367, 1368, 1369, 1370, 1371, 1373, 1374, 1375, 1376, 1349, + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, + 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, + 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, + 1407, 1409, 1410, 1411, 1412, 1408, 1413, 1414, 1415, 1416, + 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1427, 1400, 1372, 1428, 1429, 1430, 1431, 1432, 1433, 1434, + + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, + 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, + 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, + 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, + 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, + 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, + 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, + 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, + + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, + 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, + 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, + 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, + 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, + 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 12, + 12, 12, 12, 12, 36, 36, 36, 36, 36, 79, + 305, 79, 79, 79, 98, 418, 98, 542, 98, 100, + + 100, 100, 100, 100, 116, 116, 116, 116, 116, 182, + 100, 182, 182, 182, 206, 206, 206, 829, 828, 827, + 826, 825, 824, 823, 822, 821, 820, 819, 818, 817, + 816, 815, 814, 811, 810, 809, 808, 807, 806, 805, + 804, 803, 802, 801, 800, 799, 798, 797, 796, 795, + 794, 793, 792, 791, 790, 789, 788, 787, 786, 785, + 784, 783, 782, 781, 780, 779, 778, 777, 776, 775, + 774, 773, 769, 768, 767, 766, 763, 762, 761, 760, + 759, 758, 757, 756, 755, 754, 751, 750, 749, 748, + 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, + + 737, 736, 735, 734, 733, 732, 731, 727, 726, 725, + 724, 723, 722, 721, 718, 717, 716, 715, 714, 713, + 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, + 702, 701, 698, 697, 696, 695, 694, 693, 692, 691, + 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, + 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, + 670, 669, 668, 667, 666, 665, 664, 663, 659, 658, + 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, + 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, + 637, 636, 635, 634, 631, 630, 629, 628, 627, 626, + + 625, 624, 623, 622, 621, 620, 619, 618, 617, 616, + 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, + 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, + 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, + 585, 584, 583, 582, 581, 580, 577, 576, 575, 574, + 573, 572, 571, 570, 567, 566, 565, 564, 563, 562, + 561, 560, 559, 558, 557, 556, 555, 554, 550, 549, + 548, 547, 546, 545, 544, 541, 540, 537, 536, 535, + 534, 531, 530, 529, 528, 527, 526, 525, 524, 523, + 522, 521, 520, 517, 516, 515, 512, 511, 510, 509, + + 508, 507, 504, 503, 500, 499, 498, 497, 496, 495, + 494, 493, 492, 488, 487, 484, 483, 482, 477, 476, + 475, 474, 473, 472, 471, 470, 469, 468, 467, 462, + 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, + 451, 450, 447, 446, 445, 442, 439, 438, 437, 436, + 435, 434, 433, 432, 429, 428, 426, 425, 420, 417, + 414, 413, 412, 411, 410, 409, 407, 406, 405, 404, + 403, 402, 401, 398, 397, 396, 395, 394, 393, 392, + 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, + 379, 378, 377, 376, 373, 372, 371, 369, 368, 367, + + 366, 365, 361, 360, 359, 358, 357, 356, 355, 354, + 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, + 343, 342, 341, 340, 339, 338, 337, 336, 335, 334, + 333, 332, 331, 330, 325, 324, 323, 322, 321, 319, + 207, 316, 314, 312, 311, 308, 307, 304, 297, 296, + 295, 294, 293, 292, 290, 289, 288, 287, 286, 285, + 281, 271, 270, 269, 265, 264, 261, 260, 259, 258, + 257, 255, 254, 253, 252, 251, 248, 247, 246, 245, + 244, 243, 242, 239, 238, 234, 233, 225, 224, 223, + 219, 218, 217, 213, 212, 211, 207, 200, 195, 194, + + 193, 190, 189, 181, 164, 142, 106, 105, 104, 43, + 99, 97, 96, 87, 43, 1614, 11, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614 } ; -static const flex_int16_t yy_chk[2019] = +static const flex_int16_t yy_chk[2091] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 603, 3, 3, 3, 21, 1, 1, 3, 44, - 726, 1, 4, 4, 4, 13, 1, 13, 4, 27, + 21, 614, 3, 3, 3, 21, 1, 1, 3, 44, + 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, 108, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 603, 8, 8, 8, 1, 8, 44, 27, 28, 108, + 614, 8, 8, 8, 1, 8, 44, 27, 28, 108, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 47, 2, 2, 10, 10, 10, 2, 6, 37, 51, 37, 2, 42, 52, 42, 9, 2, 54, 2, 56, 57, 31, 65, - 10, 2, 2, 47, 65, 327, 25, 65, 25, 51, + 10, 2, 2, 47, 65, 329, 25, 65, 25, 51, 2, 25, 25, 25, 25, 25, 2, 54, 52, 56, - 727, 57, 327, 2, 2, 15, 15, 15, 15, 15, + 726, 57, 329, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1525,199 +1556,206 @@ static const flex_int16_t yy_chk[2019] = 19, 22, 22, 22, 22, 22, 64, 20, 53, 62, 55, 60, 59, 64, 22, 63, 17, 74, 59, 62, 55, 74, 60, 19, 61, 60, 63, 60, 61, 60, - 20, 61, 61, 55, 115, 69, 728, 22, 45, 69, + 20, 61, 61, 55, 115, 133, 275, 22, 45, 275, 45, 45, 45, 45, 61, 45, 45, 45, 55, 58, - 66, 136, 45, 45, 136, 45, 58, 115, 136, 69, + 66, 133, 45, 45, 727, 45, 58, 115, 100, 90, 66, 45, 66, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 70, 71, 58, 68, 68, 92, - 58, 68, 109, 71, 58, 71, 100, 68, 729, 77, - 71, 71, 58, 70, 90, 70, 58, 70, 58, 58, - 72, 75, 91, 72, 72, 75, 730, 92, 75, 76, - 76, 132, 77, 109, 72, 75, 75, 72, 95, 76, - 90, 75, 77, 100, 132, 93, 366, 77, 91, 76, - 80, 80, 80, 80, 80, 81, 366, 81, 81, 81, - 81, 81, 76, 80, 76, 732, 95, 82, 76, 82, - - 81, 93, 82, 82, 82, 82, 82, 76, 139, 84, - 84, 84, 84, 84, 76, 83, 80, 83, 83, 83, - 83, 83, 84, 81, 88, 88, 88, 88, 88, 94, - 83, 89, 89, 89, 89, 89, 102, 103, 107, 111, - 123, 112, 113, 102, 114, 84, 119, 127, 127, 123, - 123, 147, 139, 83, 152, 94, 131, 127, 131, 174, - 133, 158, 158, 119, 107, 103, 182, 111, 112, 184, - 113, 114, 147, 102, 119, 131, 133, 102, 183, 186, - 161, 102, 152, 161, 161, 185, 174, 195, 734, 102, - 165, 187, 184, 102, 182, 102, 102, 118, 118, 118, - - 118, 118, 360, 360, 183, 186, 118, 118, 118, 118, - 118, 118, 167, 185, 187, 195, 167, 196, 249, 191, - 167, 204, 200, 202, 209, 165, 165, 165, 258, 118, - 118, 118, 118, 118, 118, 378, 165, 735, 165, 738, - 165, 165, 191, 165, 196, 200, 202, 209, 204, 207, - 207, 207, 207, 207, 254, 739, 215, 296, 207, 207, - 207, 207, 207, 207, 215, 273, 281, 289, 273, 215, - 215, 249, 289, 299, 249, 304, 307, 254, 258, 281, - 296, 207, 207, 207, 207, 207, 207, 311, 306, 306, - 330, 740, 318, 378, 334, 330, 299, 306, 381, 307, - - 334, 348, 381, 367, 304, 388, 348, 392, 416, 388, - 405, 392, 426, 405, 426, 311, 316, 316, 316, 316, - 316, 318, 445, 586, 586, 316, 316, 316, 316, 316, - 316, 367, 410, 741, 636, 445, 416, 410, 428, 426, - 455, 426, 508, 742, 650, 455, 636, 508, 316, 316, - 316, 316, 316, 316, 348, 544, 545, 649, 743, 348, - 427, 427, 427, 427, 427, 695, 428, 650, 695, 427, - 427, 427, 427, 427, 427, 546, 612, 744, 745, 746, - 546, 612, 544, 731, 545, 649, 655, 655, 747, 655, - 731, 733, 427, 427, 427, 427, 427, 427, 733, 736, - - 749, 750, 733, 751, 752, 736, 753, 755, 756, 757, - 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, - 612, 768, 769, 770, 771, 772, 773, 774, 775, 750, - 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, - 782, 787, 788, 789, 790, 791, 794, 795, 796, 797, - 800, 801, 802, 803, 804, 805, 806, 803, 807, 808, - 809, 811, 812, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, - 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, - 841, 842, 843, 844, 845, 833, 846, 847, 848, 850, - - 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 868, 869, 871, - 872, 873, 874, 851, 875, 876, 850, 877, 878, 879, - 880, 882, 883, 884, 885, 886, 887, 889, 890, 891, - 886, 892, 893, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 903, 904, 907, 908, 909, 911, 912, 913, - 915, 916, 917, 903, 918, 919, 920, 921, 922, 923, - 924, 925, 926, 927, 928, 929, 930, 931, 932, 934, - 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, - 945, 947, 946, 886, 948, 949, 950, 951, 952, 953, - - 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, - 965, 966, 967, 968, 969, 970, 971, 972, 945, 946, - 973, 974, 975, 976, 977, 978, 980, 981, 982, 983, - 984, 985, 981, 986, 987, 988, 989, 990, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, - 1003, 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1018, 1019, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 982, 1029, 1030, 1031, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, - 1046, 1048, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - - 1058, 1059, 1035, 1060, 1061, 1062, 1063, 1064, 1036, 1065, - 1068, 1070, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - 1081, 1082, 1083, 1085, 1086, 1087, 1088, 1091, 1093, 1094, - 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1110, 1111, 1112, 1115, 1116, 1117, - 1118, 1119, 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, - 1129, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1121, 1152, 1153, 1154, 1155, 1157, 1158, 1159, 1160, - 1161, 1164, 1104, 1165, 1166, 1158, 1167, 1168, 1169, 1170, - - 1125, 1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1180, - 1181, 1183, 1185, 1188, 1190, 1191, 1192, 1193, 1194, 1196, - 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, - 1208, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, - 1219, 1194, 1220, 1222, 1225, 1227, 1228, 1229, 1230, 1232, - 1233, 1234, 1235, 1236, 1237, 1240, 1241, 1243, 1244, 1245, - 1246, 1247, 1249, 1250, 1251, 1252, 1253, 1255, 1257, 1258, - 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1269, - 1270, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1279, - 1280, 1281, 1282, 1283, 1284, 1257, 1285, 1286, 1287, 1288, - - 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, - 1299, 1301, 1302, 1304, 1305, 1306, 1307, 1310, 1311, 1312, - 1316, 1317, 1319, 1320, 1321, 1322, 1323, 1319, 1324, 1325, - 1326, 1327, 1329, 1330, 1333, 1334, 1335, 1336, 1338, 1339, - 1340, 1341, 1342, 1306, 1343, 1344, 1345, 1346, 1280, 1347, - 1348, 1349, 1350, 1351, 1353, 1354, 1355, 1356, 1358, 1359, - 1361, 1362, 1363, 1364, 1365, 1367, 1368, 1369, 1371, 1372, - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, - 1383, 1385, 1386, 1387, 1389, 1391, 1393, 1394, 1395, 1396, - 1397, 1398, 1400, 1401, 1402, 1403, 1404, 1405, 1407, 1409, - - 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1419, 1420, - 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, - 1433, 1434, 1435, 1436, 1437, 1439, 1440, 1441, 1442, 1443, - 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, 1453, 1454, - 1455, 1457, 1458, 1461, 1462, 1463, 1464, 1465, 1467, 1469, - 1470, 1472, 1473, 1475, 1476, 1478, 1479, 1481, 1483, 1484, - 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, - 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, - 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1514, 1517, 1518, - 1519, 1520, 1521, 1522, 1526, 1527, 1528, 1529, 1531, 1532, - - 1534, 1535, 1536, 1537, 1538, 1540, 1541, 1544, 1544, 1544, - 1544, 1544, 1545, 1545, 1545, 1545, 1545, 1546, 1552, 1546, - 1546, 1546, 1547, 1553, 1547, 1554, 1547, 1548, 1548, 1548, - 1548, 1548, 1549, 1549, 1549, 1549, 1549, 1550, 1555, 1550, - 1550, 1550, 1551, 1551, 1551, 725, 724, 723, 722, 721, - 720, 719, 718, 717, 716, 715, 714, 712, 711, 710, - 709, 708, 707, 706, 705, 703, 702, 701, 700, 699, - 698, 696, 694, 693, 692, 691, 690, 689, 688, 687, - 686, 685, 684, 683, 682, 681, 680, 679, 678, 676, - 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, - - 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, - 654, 653, 652, 651, 648, 647, 646, 643, 642, 641, - 640, 639, 638, 637, 634, 633, 632, 631, 630, 629, - 628, 627, 626, 625, 624, 623, 622, 620, 619, 618, - 617, 616, 615, 614, 613, 611, 610, 608, 607, 606, - 605, 604, 602, 601, 600, 598, 597, 595, 594, 593, - 592, 591, 590, 589, 588, 587, 585, 584, 583, 582, - 581, 579, 578, 577, 576, 575, 574, 573, 572, 570, - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, - - 549, 548, 542, 540, 537, 536, 534, 533, 532, 530, - 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, - 516, 515, 514, 513, 512, 511, 510, 509, 507, 506, - 505, 504, 503, 502, 501, 500, 499, 498, 497, 495, - 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, - 483, 482, 480, 479, 478, 477, 476, 475, 474, 473, - 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, - 462, 461, 459, 458, 457, 456, 454, 453, 452, 451, - 450, 449, 447, 446, 444, 443, 442, 441, 439, 438, - 437, 436, 435, 434, 433, 431, 430, 429, 424, 423, - - 421, 420, 419, 418, 417, 414, 411, 409, 408, 407, - 406, 404, 403, 402, 401, 400, 399, 398, 397, 396, - 395, 394, 393, 391, 390, 389, 387, 386, 385, 384, - 383, 382, 380, 379, 377, 376, 375, 374, 373, 372, - 371, 370, 369, 365, 364, 363, 362, 361, 359, 358, - 357, 356, 355, 354, 353, 352, 351, 350, 349, 347, - 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, - 336, 335, 333, 332, 331, 329, 326, 325, 324, 323, - 322, 321, 320, 319, 315, 313, 310, 308, 305, 302, - 295, 294, 293, 292, 291, 290, 288, 287, 286, 285, - - 284, 283, 282, 280, 279, 278, 277, 276, 275, 274, - 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, - 262, 261, 260, 259, 257, 256, 255, 253, 252, 251, - 250, 248, 247, 246, 245, 244, 243, 242, 241, 240, - 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, - 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, - 218, 217, 216, 214, 213, 212, 211, 210, 208, 205, - 203, 201, 199, 198, 193, 192, 188, 180, 179, 178, - 177, 176, 175, 173, 172, 171, 170, 169, 168, 166, - 164, 163, 162, 160, 159, 157, 156, 155, 154, 153, - - 151, 150, 149, 148, 146, 145, 144, 143, 142, 141, - 140, 138, 137, 135, 134, 130, 129, 128, 126, 125, - 124, 122, 121, 120, 116, 110, 106, 105, 104, 98, - 97, 78, 73, 67, 50, 49, 48, 43, 41, 39, - 38, 24, 14, 11, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, - 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543 + 45, 45, 45, 45, 70, 90, 58, 68, 68, 91, + 58, 68, 69, 336, 58, 100, 69, 68, 92, 336, + 69, 95, 58, 70, 71, 70, 58, 70, 58, 58, + 109, 103, 71, 77, 71, 91, 69, 111, 72, 71, + 71, 72, 72, 75, 76, 76, 92, 75, 260, 95, + 75, 112, 72, 113, 76, 72, 77, 75, 75, 103, + 123, 109, 366, 75, 76, 111, 77, 132, 366, 123, + 123, 77, 80, 80, 80, 80, 80, 76, 112, 76, + + 132, 113, 114, 76, 729, 80, 88, 88, 88, 88, + 88, 81, 76, 81, 81, 81, 81, 81, 260, 76, + 89, 89, 89, 89, 89, 82, 81, 82, 80, 114, + 82, 82, 82, 82, 82, 83, 93, 83, 83, 83, + 83, 83, 84, 84, 84, 84, 84, 102, 94, 81, + 83, 107, 119, 139, 102, 84, 127, 127, 147, 153, + 185, 136, 93, 131, 136, 131, 127, 175, 136, 119, + 159, 159, 162, 83, 94, 162, 162, 107, 84, 147, + 119, 168, 131, 185, 102, 168, 183, 153, 102, 168, + 184, 291, 102, 730, 175, 186, 291, 139, 187, 196, + + 102, 166, 188, 192, 102, 197, 102, 102, 118, 118, + 118, 118, 118, 731, 183, 732, 184, 118, 118, 118, + 118, 118, 118, 186, 187, 188, 192, 196, 205, 250, + 201, 408, 197, 203, 408, 283, 166, 166, 166, 210, + 118, 118, 118, 118, 118, 118, 306, 166, 283, 166, + 256, 166, 166, 201, 166, 205, 203, 208, 208, 208, + 208, 208, 210, 298, 216, 301, 208, 208, 208, 208, + 208, 208, 216, 256, 309, 306, 320, 216, 216, 313, + 381, 733, 250, 593, 593, 250, 298, 370, 301, 208, + 208, 208, 208, 208, 208, 308, 308, 309, 332, 734, + + 448, 350, 647, 332, 308, 320, 350, 313, 318, 318, + 318, 318, 318, 448, 647, 370, 369, 318, 318, 318, + 318, 318, 318, 362, 362, 362, 369, 384, 391, 362, + 395, 384, 391, 419, 395, 429, 551, 429, 381, 735, + 318, 318, 318, 318, 318, 318, 413, 661, 458, 736, + 515, 413, 431, 458, 350, 515, 552, 660, 737, 350, + 738, 419, 429, 551, 429, 430, 430, 430, 430, 430, + 661, 739, 740, 741, 430, 430, 430, 430, 430, 430, + 431, 553, 623, 742, 552, 660, 553, 623, 666, 666, + 707, 666, 743, 707, 744, 745, 746, 430, 430, 430, + + 430, 430, 430, 746, 747, 748, 749, 750, 751, 753, + 754, 755, 748, 756, 751, 757, 748, 758, 759, 760, + 761, 762, 764, 765, 766, 767, 623, 768, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 792, + 793, 765, 794, 795, 796, 797, 798, 799, 800, 801, + 797, 802, 803, 804, 805, 806, 809, 810, 811, 812, + 813, 814, 817, 818, 819, 820, 821, 822, 823, 824, + 825, 822, 826, 827, 828, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + + 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, + 855, 856, 857, 858, 860, 861, 862, 863, 864, 852, + 865, 866, 867, 869, 870, 871, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 890, 891, 892, 893, 870, 894, 895, + 869, 896, 897, 898, 899, 901, 902, 903, 904, 905, + 906, 908, 909, 910, 905, 911, 912, 913, 914, 915, + 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, + 926, 927, 930, 931, 932, 934, 935, 936, 938, 939, + 940, 926, 941, 942, 943, 944, 945, 946, 947, 948, + + 949, 950, 951, 952, 953, 954, 955, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 905, 967, 968, + 970, 969, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 984, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 995, 996, 968, 969, 997, + 998, 999, 1000, 1001, 1003, 1004, 1005, 1006, 1007, 1008, + 1004, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, + 1028, 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1042, 1043, 1045, 1046, 1049, 1050, 1051, + + 1005, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 1075, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1086, 1062, 1087, 1088, 1089, 1090, 1091, + 1063, 1092, 1095, 1097, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1106, 1107, 1108, 1109, 1110, 1112, 1113, 1114, 1116, + 1117, 1118, 1119, 1122, 1124, 1125, 1126, 1127, 1128, 1129, + 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, + 1141, 1142, 1143, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1163, 1164, + + 1165, 1166, 1167, 1168, 1169, 1171, 1172, 1173, 1174, 1175, + 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1152, 1183, 1184, + 1185, 1186, 1188, 1189, 1190, 1191, 1192, 1193, 1135, 1194, + 1195, 1196, 1190, 1199, 1200, 1201, 1156, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1211, 1212, 1213, 1214, 1215, + 1216, 1218, 1220, 1223, 1225, 1226, 1227, 1228, 1229, 1231, + 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, + 1243, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, + 1254, 1229, 1255, 1257, 1260, 1262, 1263, 1264, 1265, 1266, + 1267, 1268, 1269, 1271, 1272, 1273, 1274, 1275, 1276, 1279, + + 1280, 1282, 1283, 1284, 1285, 1286, 1288, 1289, 1290, 1291, + 1292, 1294, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, + 1304, 1305, 1306, 1308, 1309, 1311, 1312, 1313, 1314, 1315, + 1316, 1317, 1318, 1318, 1319, 1320, 1321, 1322, 1323, 1296, + 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1344, + 1345, 1347, 1348, 1349, 1350, 1353, 1354, 1355, 1359, 1360, + 1362, 1363, 1364, 1365, 1366, 1362, 1367, 1368, 1369, 1370, + 1372, 1373, 1375, 1377, 1378, 1379, 1380, 1381, 1382, 1383, + 1385, 1349, 1319, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + + 1393, 1394, 1395, 1396, 1397, 1398, 1400, 1401, 1402, 1403, + 1405, 1406, 1408, 1409, 1410, 1411, 1412, 1414, 1415, 1416, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1436, 1437, 1438, + 1440, 1442, 1444, 1445, 1446, 1447, 1448, 1449, 1451, 1452, + 1453, 1454, 1455, 1456, 1457, 1459, 1460, 1461, 1462, 1464, + 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1474, 1475, + 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, + 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1498, + 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509, + + 1510, 1511, 1512, 1513, 1514, 1515, 1517, 1519, 1521, 1524, + 1525, 1526, 1527, 1528, 1530, 1532, 1533, 1535, 1536, 1538, + 1539, 1540, 1542, 1543, 1544, 1546, 1548, 1549, 1550, 1551, + 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, + 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, + 1572, 1573, 1574, 1575, 1577, 1578, 1579, 1580, 1581, 1585, + 1588, 1589, 1590, 1591, 1592, 1593, 1597, 1598, 1599, 1600, + 1602, 1603, 1605, 1606, 1607, 1608, 1609, 1611, 1612, 1615, + 1615, 1615, 1615, 1615, 1616, 1616, 1616, 1616, 1616, 1617, + 1623, 1617, 1617, 1617, 1618, 1624, 1618, 1625, 1618, 1619, + + 1619, 1619, 1619, 1619, 1620, 1620, 1620, 1620, 1620, 1621, + 1626, 1621, 1621, 1621, 1622, 1622, 1622, 725, 724, 723, + 722, 721, 720, 718, 717, 716, 715, 714, 713, 712, + 711, 709, 708, 706, 705, 704, 703, 702, 701, 700, + 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, + 689, 687, 686, 685, 684, 683, 682, 681, 680, 679, + 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, + 668, 667, 665, 664, 663, 662, 659, 658, 657, 654, + 653, 652, 651, 650, 649, 648, 645, 644, 643, 642, + 641, 640, 639, 638, 637, 636, 635, 634, 633, 631, + + 630, 629, 628, 627, 626, 625, 624, 622, 621, 619, + 618, 617, 616, 615, 613, 612, 611, 609, 608, 606, + 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, + 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, + 583, 582, 581, 580, 579, 577, 576, 575, 574, 573, + 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, + 562, 561, 560, 559, 558, 557, 556, 555, 549, 547, + 544, 543, 541, 540, 539, 537, 533, 532, 531, 530, + 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, + 519, 518, 517, 516, 514, 513, 512, 511, 510, 509, + + 508, 507, 506, 505, 504, 502, 500, 499, 498, 497, + 496, 495, 494, 493, 492, 491, 490, 489, 487, 486, + 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, + 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, + 465, 464, 462, 461, 460, 459, 457, 456, 455, 454, + 453, 452, 450, 449, 447, 446, 445, 444, 442, 441, + 440, 439, 438, 437, 436, 434, 433, 432, 427, 426, + 424, 423, 422, 421, 420, 417, 414, 412, 411, 410, + 409, 407, 406, 405, 404, 403, 402, 401, 400, 399, + 398, 397, 396, 394, 393, 392, 390, 389, 388, 387, + + 386, 385, 383, 382, 380, 379, 378, 377, 376, 375, + 374, 373, 372, 368, 367, 365, 364, 363, 361, 360, + 359, 358, 357, 356, 355, 354, 353, 352, 351, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, + 338, 337, 335, 334, 333, 331, 328, 327, 326, 325, + 324, 323, 322, 321, 317, 315, 312, 310, 307, 304, + 297, 296, 295, 294, 293, 292, 290, 289, 288, 287, + 286, 285, 284, 282, 281, 280, 279, 278, 277, 276, + 274, 273, 272, 271, 270, 269, 268, 267, 266, 265, + 264, 263, 262, 261, 259, 258, 257, 255, 254, 253, + + 252, 251, 249, 248, 247, 246, 245, 244, 243, 242, + 241, 239, 238, 237, 236, 235, 234, 233, 232, 231, + 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, + 220, 219, 218, 217, 215, 214, 213, 212, 211, 209, + 206, 204, 202, 200, 199, 194, 193, 189, 181, 180, + 179, 178, 177, 176, 174, 173, 172, 171, 170, 169, + 167, 165, 164, 163, 161, 160, 158, 157, 156, 155, + 154, 152, 151, 150, 149, 148, 146, 145, 144, 143, + 142, 141, 140, 138, 137, 135, 134, 130, 129, 128, + 126, 125, 124, 122, 121, 120, 116, 110, 106, 105, + + 104, 98, 97, 78, 73, 67, 50, 49, 48, 43, + 41, 39, 38, 24, 14, 11, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, + 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614 } ; static yy_state_type yy_last_accepting_state; @@ -1726,28 +1764,28 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[186] = +static const flex_int16_t yy_rule_linenum[190] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 181, 186, 193, 202, 211, 220, 229, 238, 247, 256, 265, - 274, 283, 292, 301, 310, 320, 330, 340, 350, 360, - 370, 380, 389, 399, 409, 419, 429, 438, 447, 456, - 465, 474, 483, 492, 501, 510, 519, 528, 537, 546, - 555, 568, 577, 586, 595, 604, 615, 626, 637, 648, - 660, 671, 682, 693, 704, 715, 726, 737, 748, 759, - 770, 781, 792, 803, 814, 825, 834, 843, 853, 862, - 871, 886, 902, 911, 920, 929, 938, 947, 956, 965, - 974, 983, 992, 1014, 1036, 1045, 1055, 1065, 1074, 1084, - - 1095, 1104, 1113, 1122, 1131, 1140, 1150, 1159, 1168, 1177, - 1188, 1199, 1210, 1219, 1229, 1238, 1247, 1256, 1265, 1275, - 1284, 1293, 1303, 1315, 1328, 1337, 1346, 1356, 1366, 1375, - 1386, 1396, 1405, 1415, 1425, 1434, 1443, 1452, 1461, 1471, - 1480, 1490, 1499, 1508, 1517, 1526, 1535, 1544, 1553, 1562, - 1571, 1580, 1589, 1598, 1607, 1616, 1625, 1634, 1643, 1652, - 1661, 1670, 1679, 1688, 1697, 1706, 1715, 1725, 1824, 1829, - 1834, 1839, 1840, 1841, 1842, 1843, 1844, 1846, 1864, 1877, - 1882, 1886, 1888, 1890, 1892 + 274, 283, 292, 301, 310, 319, 328, 338, 348, 358, + 368, 378, 387, 397, 407, 417, 427, 436, 445, 454, + 463, 472, 481, 490, 499, 508, 517, 526, 535, 544, + 553, 566, 575, 584, 593, 602, 613, 624, 635, 646, + 658, 669, 680, 691, 702, 713, 724, 735, 746, 757, + 768, 779, 790, 801, 812, 823, 834, 845, 856, 867, + 876, 885, 895, 904, 913, 928, 944, 953, 962, 971, + 980, 989, 998, 1007, 1016, 1025, 1034, 1056, 1078, 1087, + + 1097, 1107, 1116, 1126, 1137, 1146, 1155, 1164, 1173, 1182, + 1192, 1201, 1210, 1219, 1230, 1241, 1252, 1261, 1271, 1280, + 1289, 1298, 1307, 1317, 1326, 1335, 1345, 1357, 1370, 1379, + 1388, 1398, 1408, 1417, 1428, 1438, 1447, 1457, 1467, 1476, + 1485, 1494, 1503, 1513, 1522, 1532, 1541, 1550, 1559, 1568, + 1577, 1586, 1595, 1604, 1613, 1622, 1631, 1640, 1649, 1658, + 1667, 1676, 1685, 1694, 1703, 1712, 1721, 1730, 1739, 1748, + 1757, 1767, 1866, 1871, 1876, 1881, 1882, 1883, 1884, 1885, + 1886, 1888, 1906, 1919, 1924, 1928, 1930, 1932, 1934 } ; /* The intent behind this definition is that it'll catch @@ -1800,7 +1838,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 1803 "dhcp6_lexer.cc" +#line 1841 "dhcp6_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -1826,8 +1864,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 1829 "dhcp6_lexer.cc" -#line 1830 "dhcp6_lexer.cc" +#line 1867 "dhcp6_lexer.cc" +#line 1868 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2159,7 +2197,7 @@ YY_DECL } -#line 2162 "dhcp6_lexer.cc" +#line 2200 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2188,13 +2226,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1544 ) + if ( yy_current_state >= 1615 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1543 ); + while ( yy_current_state != 1614 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2213,13 +2251,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 186 ) + else if ( yy_act < 190 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 186 ) + else if ( yy_act == 190 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 187 ) + else if ( yy_act == 191 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2484,7 +2522,6 @@ YY_RULE_SETUP #line 310 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::DHCP_DDNS: return isc::dhcp::Dhcp6Parser::make_HOSTNAME_CHAR_SET(driver.loc_); default: @@ -2494,10 +2531,9 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 320 "dhcp6_lexer.ll" +#line 319 "dhcp6_lexer.ll" { switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::DHCP_DDNS: return isc::dhcp::Dhcp6Parser::make_HOSTNAME_CHAR_REPLACEMENT(driver.loc_); default: @@ -2507,7 +2543,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 330 "dhcp6_lexer.ll" +#line 328 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) { @@ -2520,7 +2556,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 340 "dhcp6_lexer.ll" +#line 338 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) { @@ -2533,7 +2569,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 350 "dhcp6_lexer.ll" +#line 348 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) { @@ -2546,7 +2582,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 360 "dhcp6_lexer.ll" +#line 358 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2559,7 +2595,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 370 "dhcp6_lexer.ll" +#line 368 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2572,7 +2608,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 380 "dhcp6_lexer.ll" +#line 378 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME: @@ -2584,7 +2620,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 389 "dhcp6_lexer.ll" +#line 387 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2597,7 +2633,7 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 399 "dhcp6_lexer.ll" +#line 397 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2610,7 +2646,7 @@ YY_RULE_SETUP YY_BREAK case 35: YY_RULE_SETUP -#line 409 "dhcp6_lexer.ll" +#line 407 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2623,7 +2659,7 @@ YY_RULE_SETUP YY_BREAK case 36: YY_RULE_SETUP -#line 419 "dhcp6_lexer.ll" +#line 417 "dhcp6_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) { @@ -2636,7 +2672,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 429 "dhcp6_lexer.ll" +#line 427 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -2648,7 +2684,7 @@ YY_RULE_SETUP YY_BREAK case 38: YY_RULE_SETUP -#line 438 "dhcp6_lexer.ll" +#line 436 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2660,7 +2696,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 447 "dhcp6_lexer.ll" +#line 445 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2672,7 +2708,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 456 "dhcp6_lexer.ll" +#line 454 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::INTERFACES_CONFIG: @@ -2684,7 +2720,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 465 "dhcp6_lexer.ll" +#line 463 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::INTERFACES_CONFIG: @@ -2696,7 +2732,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 474 "dhcp6_lexer.ll" +#line 472 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2708,7 +2744,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 483 "dhcp6_lexer.ll" +#line 481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SANITY_CHECKS: @@ -2720,7 +2756,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 492 "dhcp6_lexer.ll" +#line 490 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2732,7 +2768,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 501 "dhcp6_lexer.ll" +#line 499 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2744,7 +2780,7 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 510 "dhcp6_lexer.ll" +#line 508 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2756,7 +2792,7 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP -#line 519 "dhcp6_lexer.ll" +#line 517 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -2768,7 +2804,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 528 "dhcp6_lexer.ll" +#line 526 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG_CONTROL: @@ -2780,7 +2816,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 537 "dhcp6_lexer.ll" +#line 535 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG_CONTROL: @@ -2792,7 +2828,7 @@ YY_RULE_SETUP YY_BREAK case 50: YY_RULE_SETUP -#line 546 "dhcp6_lexer.ll" +#line 544 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOSTS_DATABASE: @@ -2804,7 +2840,7 @@ YY_RULE_SETUP YY_BREAK case 51: YY_RULE_SETUP -#line 555 "dhcp6_lexer.ll" +#line 553 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2820,7 +2856,7 @@ YY_RULE_SETUP YY_BREAK case 52: YY_RULE_SETUP -#line 568 "dhcp6_lexer.ll" +#line 566 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2832,7 +2868,7 @@ YY_RULE_SETUP YY_BREAK case 53: YY_RULE_SETUP -#line 577 "dhcp6_lexer.ll" +#line 575 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2844,7 +2880,7 @@ YY_RULE_SETUP YY_BREAK case 54: YY_RULE_SETUP -#line 586 "dhcp6_lexer.ll" +#line 584 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2856,7 +2892,7 @@ YY_RULE_SETUP YY_BREAK case 55: YY_RULE_SETUP -#line 595 "dhcp6_lexer.ll" +#line 593 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_TYPE: @@ -2868,7 +2904,7 @@ YY_RULE_SETUP YY_BREAK case 56: YY_RULE_SETUP -#line 604 "dhcp6_lexer.ll" +#line 602 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2882,7 +2918,7 @@ YY_RULE_SETUP YY_BREAK case 57: YY_RULE_SETUP -#line 615 "dhcp6_lexer.ll" +#line 613 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2896,7 +2932,7 @@ YY_RULE_SETUP YY_BREAK case 58: YY_RULE_SETUP -#line 626 "dhcp6_lexer.ll" +#line 624 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2910,7 +2946,7 @@ YY_RULE_SETUP YY_BREAK case 59: YY_RULE_SETUP -#line 637 "dhcp6_lexer.ll" +#line 635 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2924,7 +2960,7 @@ YY_RULE_SETUP YY_BREAK case 60: YY_RULE_SETUP -#line 648 "dhcp6_lexer.ll" +#line 646 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2939,7 +2975,7 @@ YY_RULE_SETUP YY_BREAK case 61: YY_RULE_SETUP -#line 660 "dhcp6_lexer.ll" +#line 658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2953,7 +2989,7 @@ YY_RULE_SETUP YY_BREAK case 62: YY_RULE_SETUP -#line 671 "dhcp6_lexer.ll" +#line 669 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2967,7 +3003,7 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 682 "dhcp6_lexer.ll" +#line 680 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2981,7 +3017,7 @@ YY_RULE_SETUP YY_BREAK case 64: YY_RULE_SETUP -#line 693 "dhcp6_lexer.ll" +#line 691 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -2995,7 +3031,7 @@ YY_RULE_SETUP YY_BREAK case 65: YY_RULE_SETUP -#line 704 "dhcp6_lexer.ll" +#line 702 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3009,7 +3045,7 @@ YY_RULE_SETUP YY_BREAK case 66: YY_RULE_SETUP -#line 715 "dhcp6_lexer.ll" +#line 713 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3023,7 +3059,7 @@ YY_RULE_SETUP YY_BREAK case 67: YY_RULE_SETUP -#line 726 "dhcp6_lexer.ll" +#line 724 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3037,7 +3073,7 @@ YY_RULE_SETUP YY_BREAK case 68: YY_RULE_SETUP -#line 737 "dhcp6_lexer.ll" +#line 735 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3051,7 +3087,7 @@ YY_RULE_SETUP YY_BREAK case 69: YY_RULE_SETUP -#line 748 "dhcp6_lexer.ll" +#line 746 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3065,7 +3101,7 @@ YY_RULE_SETUP YY_BREAK case 70: YY_RULE_SETUP -#line 759 "dhcp6_lexer.ll" +#line 757 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3079,7 +3115,7 @@ YY_RULE_SETUP YY_BREAK case 71: YY_RULE_SETUP -#line 770 "dhcp6_lexer.ll" +#line 768 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3093,7 +3129,7 @@ YY_RULE_SETUP YY_BREAK case 72: YY_RULE_SETUP -#line 781 "dhcp6_lexer.ll" +#line 779 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3107,7 +3143,35 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 792 "dhcp6_lexer.ll" +#line 790 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_MIN_PREFERRED_LIFETIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_); + } +} + YY_BREAK +case 74: +YY_RULE_SETUP +#line 801 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_MAX_PREFERRED_LIFETIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_); + } +} + YY_BREAK +case 75: +YY_RULE_SETUP +#line 812 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3119,9 +3183,37 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 76: +YY_RULE_SETUP +#line 823 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_MIN_VALID_LIFETIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_); + } +} + YY_BREAK +case 77: +YY_RULE_SETUP +#line 834 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_MAX_VALID_LIFETIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_); + } +} + YY_BREAK +case 78: YY_RULE_SETUP -#line 803 "dhcp6_lexer.ll" +#line 845 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3133,9 +3225,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 79: YY_RULE_SETUP -#line 814 "dhcp6_lexer.ll" +#line 856 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3147,9 +3239,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 80: YY_RULE_SETUP -#line 825 "dhcp6_lexer.ll" +#line 867 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3159,9 +3251,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 81: YY_RULE_SETUP -#line 834 "dhcp6_lexer.ll" +#line 876 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3171,9 +3263,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 82: YY_RULE_SETUP -#line 843 "dhcp6_lexer.ll" +#line 885 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3184,9 +3276,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 83: YY_RULE_SETUP -#line 853 "dhcp6_lexer.ll" +#line 895 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3196,9 +3288,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 84: YY_RULE_SETUP -#line 862 "dhcp6_lexer.ll" +#line 904 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3208,9 +3300,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 85: YY_RULE_SETUP -#line 871 "dhcp6_lexer.ll" +#line 913 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3226,9 +3318,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 86: YY_RULE_SETUP -#line 886 "dhcp6_lexer.ll" +#line 928 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3245,9 +3337,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 87: YY_RULE_SETUP -#line 902 "dhcp6_lexer.ll" +#line 944 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3257,9 +3349,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 88: YY_RULE_SETUP -#line 911 "dhcp6_lexer.ll" +#line 953 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3269,9 +3361,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 89: YY_RULE_SETUP -#line 920 "dhcp6_lexer.ll" +#line 962 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3281,9 +3373,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 90: YY_RULE_SETUP -#line 929 "dhcp6_lexer.ll" +#line 971 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3293,9 +3385,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 91: YY_RULE_SETUP -#line 938 "dhcp6_lexer.ll" +#line 980 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3305,9 +3397,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 92: YY_RULE_SETUP -#line 947 "dhcp6_lexer.ll" +#line 989 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3317,9 +3409,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 93: YY_RULE_SETUP -#line 956 "dhcp6_lexer.ll" +#line 998 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3329,9 +3421,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 94: YY_RULE_SETUP -#line 965 "dhcp6_lexer.ll" +#line 1007 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3341,9 +3433,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 95: YY_RULE_SETUP -#line 974 "dhcp6_lexer.ll" +#line 1016 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3353,9 +3445,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 96: YY_RULE_SETUP -#line 983 "dhcp6_lexer.ll" +#line 1025 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -3365,9 +3457,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 97: YY_RULE_SETUP -#line 992 "dhcp6_lexer.ll" +#line 1034 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3390,9 +3482,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 98: YY_RULE_SETUP -#line 1014 "dhcp6_lexer.ll" +#line 1056 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3415,9 +3507,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 99: YY_RULE_SETUP -#line 1036 "dhcp6_lexer.ll" +#line 1078 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3427,9 +3519,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 100: YY_RULE_SETUP -#line 1045 "dhcp6_lexer.ll" +#line 1087 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3440,9 +3532,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 101: YY_RULE_SETUP -#line 1055 "dhcp6_lexer.ll" +#line 1097 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3453,9 +3545,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 102: YY_RULE_SETUP -#line 1065 "dhcp6_lexer.ll" +#line 1107 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3465,9 +3557,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 103: YY_RULE_SETUP -#line 1074 "dhcp6_lexer.ll" +#line 1116 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3478,9 +3570,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 104: YY_RULE_SETUP -#line 1084 "dhcp6_lexer.ll" +#line 1126 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3492,9 +3584,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 105: YY_RULE_SETUP -#line 1095 "dhcp6_lexer.ll" +#line 1137 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3504,9 +3596,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 106: YY_RULE_SETUP -#line 1104 "dhcp6_lexer.ll" +#line 1146 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3516,9 +3608,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 107: YY_RULE_SETUP -#line 1113 "dhcp6_lexer.ll" +#line 1155 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3528,9 +3620,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 108: YY_RULE_SETUP -#line 1122 "dhcp6_lexer.ll" +#line 1164 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3540,9 +3632,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 109: YY_RULE_SETUP -#line 1131 "dhcp6_lexer.ll" +#line 1173 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -3552,9 +3644,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 110: YY_RULE_SETUP -#line 1140 "dhcp6_lexer.ll" +#line 1182 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3565,9 +3657,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 111: YY_RULE_SETUP -#line 1150 "dhcp6_lexer.ll" +#line 1192 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3577,9 +3669,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 112: YY_RULE_SETUP -#line 1159 "dhcp6_lexer.ll" +#line 1201 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3589,9 +3681,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 113: YY_RULE_SETUP -#line 1168 "dhcp6_lexer.ll" +#line 1210 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3601,9 +3693,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 114: YY_RULE_SETUP -#line 1177 "dhcp6_lexer.ll" +#line 1219 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3615,9 +3707,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 115: YY_RULE_SETUP -#line 1188 "dhcp6_lexer.ll" +#line 1230 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3629,9 +3721,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 116: YY_RULE_SETUP -#line 1199 "dhcp6_lexer.ll" +#line 1241 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3643,9 +3735,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 117: YY_RULE_SETUP -#line 1210 "dhcp6_lexer.ll" +#line 1252 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3655,9 +3747,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 118: YY_RULE_SETUP -#line 1219 "dhcp6_lexer.ll" +#line 1261 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3668,9 +3760,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 119: YY_RULE_SETUP -#line 1229 "dhcp6_lexer.ll" +#line 1271 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3680,9 +3772,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 120: YY_RULE_SETUP -#line 1238 "dhcp6_lexer.ll" +#line 1280 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3692,9 +3784,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 121: YY_RULE_SETUP -#line 1247 "dhcp6_lexer.ll" +#line 1289 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3704,9 +3796,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 122: YY_RULE_SETUP -#line 1256 "dhcp6_lexer.ll" +#line 1298 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3716,9 +3808,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 123: YY_RULE_SETUP -#line 1265 "dhcp6_lexer.ll" +#line 1307 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3728,9 +3820,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 124: YY_RULE_SETUP -#line 1275 "dhcp6_lexer.ll" +#line 1317 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3740,9 +3832,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 125: YY_RULE_SETUP -#line 1284 "dhcp6_lexer.ll" +#line 1326 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3752,9 +3844,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 126: YY_RULE_SETUP -#line 1293 "dhcp6_lexer.ll" +#line 1335 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3765,9 +3857,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 127: YY_RULE_SETUP -#line 1303 "dhcp6_lexer.ll" +#line 1345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3780,9 +3872,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 128: YY_RULE_SETUP -#line 1315 "dhcp6_lexer.ll" +#line 1357 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3796,9 +3888,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 129: YY_RULE_SETUP -#line 1328 "dhcp6_lexer.ll" +#line 1370 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3808,9 +3900,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 130: YY_RULE_SETUP -#line 1337 "dhcp6_lexer.ll" +#line 1379 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3820,9 +3912,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 131: YY_RULE_SETUP -#line 1346 "dhcp6_lexer.ll" +#line 1388 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3833,9 +3925,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 132: YY_RULE_SETUP -#line 1356 "dhcp6_lexer.ll" +#line 1398 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3846,9 +3938,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 133: YY_RULE_SETUP -#line 1366 "dhcp6_lexer.ll" +#line 1408 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3858,9 +3950,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 134: YY_RULE_SETUP -#line 1375 "dhcp6_lexer.ll" +#line 1417 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -3872,9 +3964,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 135: YY_RULE_SETUP -#line 1386 "dhcp6_lexer.ll" +#line 1428 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3885,9 +3977,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 136: YY_RULE_SETUP -#line 1396 "dhcp6_lexer.ll" +#line 1438 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3897,9 +3989,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 137: YY_RULE_SETUP -#line 1405 "dhcp6_lexer.ll" +#line 1447 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3910,9 +4002,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 138: YY_RULE_SETUP -#line 1415 "dhcp6_lexer.ll" +#line 1457 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3923,9 +4015,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 139: YY_RULE_SETUP -#line 1425 "dhcp6_lexer.ll" +#line 1467 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3935,9 +4027,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 140: YY_RULE_SETUP -#line 1434 "dhcp6_lexer.ll" +#line 1476 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3947,9 +4039,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 141: YY_RULE_SETUP -#line 1443 "dhcp6_lexer.ll" +#line 1485 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3959,9 +4051,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 142: YY_RULE_SETUP -#line 1452 "dhcp6_lexer.ll" +#line 1494 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3971,9 +4063,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 143: YY_RULE_SETUP -#line 1461 "dhcp6_lexer.ll" +#line 1503 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3984,9 +4076,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 144: YY_RULE_SETUP -#line 1471 "dhcp6_lexer.ll" +#line 1513 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -3996,9 +4088,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 145: YY_RULE_SETUP -#line 1480 "dhcp6_lexer.ll" +#line 1522 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4008,9 +4100,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 146: YY_RULE_SETUP -#line 1490 "dhcp6_lexer.ll" +#line 1532 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4020,9 +4112,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 147: YY_RULE_SETUP -#line 1499 "dhcp6_lexer.ll" +#line 1541 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4032,9 +4124,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 148: YY_RULE_SETUP -#line 1508 "dhcp6_lexer.ll" +#line 1550 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4044,9 +4136,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 149: YY_RULE_SETUP -#line 1517 "dhcp6_lexer.ll" +#line 1559 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4056,9 +4148,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 150: YY_RULE_SETUP -#line 1526 "dhcp6_lexer.ll" +#line 1568 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4068,9 +4160,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 151: YY_RULE_SETUP -#line 1535 "dhcp6_lexer.ll" +#line 1577 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4080,9 +4172,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 152: YY_RULE_SETUP -#line 1544 "dhcp6_lexer.ll" +#line 1586 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4092,9 +4184,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 153: YY_RULE_SETUP -#line 1553 "dhcp6_lexer.ll" +#line 1595 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4104,9 +4196,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 154: YY_RULE_SETUP -#line 1562 "dhcp6_lexer.ll" +#line 1604 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4116,9 +4208,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 155: YY_RULE_SETUP -#line 1571 "dhcp6_lexer.ll" +#line 1613 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4128,9 +4220,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 156: YY_RULE_SETUP -#line 1580 "dhcp6_lexer.ll" +#line 1622 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4140,9 +4232,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 157: YY_RULE_SETUP -#line 1589 "dhcp6_lexer.ll" +#line 1631 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4152,9 +4244,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 158: YY_RULE_SETUP -#line 1598 "dhcp6_lexer.ll" +#line 1640 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4164,9 +4256,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 159: YY_RULE_SETUP -#line 1607 "dhcp6_lexer.ll" +#line 1649 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4176,9 +4268,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 160: YY_RULE_SETUP -#line 1616 "dhcp6_lexer.ll" +#line 1658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4188,9 +4280,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 161: YY_RULE_SETUP -#line 1625 "dhcp6_lexer.ll" +#line 1667 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4200,9 +4292,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 162: YY_RULE_SETUP -#line 1634 "dhcp6_lexer.ll" +#line 1676 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4212,9 +4304,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 163: YY_RULE_SETUP -#line 1643 "dhcp6_lexer.ll" +#line 1685 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4224,9 +4316,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 164: YY_RULE_SETUP -#line 1652 "dhcp6_lexer.ll" +#line 1694 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4236,9 +4328,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 165: YY_RULE_SETUP -#line 1661 "dhcp6_lexer.ll" +#line 1703 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4248,9 +4340,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 166: YY_RULE_SETUP -#line 1670 "dhcp6_lexer.ll" +#line 1712 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4260,9 +4352,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 167: YY_RULE_SETUP -#line 1679 "dhcp6_lexer.ll" +#line 1721 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4272,9 +4364,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 168: YY_RULE_SETUP -#line 1688 "dhcp6_lexer.ll" +#line 1730 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4284,9 +4376,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 169: YY_RULE_SETUP -#line 1697 "dhcp6_lexer.ll" +#line 1739 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4296,9 +4388,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 170: YY_RULE_SETUP -#line 1706 "dhcp6_lexer.ll" +#line 1748 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4308,9 +4400,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 171: YY_RULE_SETUP -#line 1715 "dhcp6_lexer.ll" +#line 1757 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4320,9 +4412,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 172: YY_RULE_SETUP -#line 1725 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -4422,65 +4514,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 169: -/* rule 169 can match eol */ +case 173: +/* rule 173 can match eol */ YY_RULE_SETUP -#line 1824 "dhcp6_lexer.ll" +#line 1866 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 170: -/* rule 170 can match eol */ +case 174: +/* rule 174 can match eol */ YY_RULE_SETUP -#line 1829 "dhcp6_lexer.ll" +#line 1871 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 171: +case 175: YY_RULE_SETUP -#line 1834 "dhcp6_lexer.ll" +#line 1876 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 172: +case 176: YY_RULE_SETUP -#line 1839 "dhcp6_lexer.ll" +#line 1881 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 173: +case 177: YY_RULE_SETUP -#line 1840 "dhcp6_lexer.ll" +#line 1882 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 174: +case 178: YY_RULE_SETUP -#line 1841 "dhcp6_lexer.ll" +#line 1883 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 175: +case 179: YY_RULE_SETUP -#line 1842 "dhcp6_lexer.ll" +#line 1884 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 176: +case 180: YY_RULE_SETUP -#line 1843 "dhcp6_lexer.ll" +#line 1885 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 177: +case 181: YY_RULE_SETUP -#line 1844 "dhcp6_lexer.ll" +#line 1886 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 178: +case 182: YY_RULE_SETUP -#line 1846 "dhcp6_lexer.ll" +#line 1888 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4499,9 +4591,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 179: +case 183: YY_RULE_SETUP -#line 1864 "dhcp6_lexer.ll" +#line 1906 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4515,43 +4607,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 180: +case 184: YY_RULE_SETUP -#line 1877 "dhcp6_lexer.ll" +#line 1919 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 181: +case 185: YY_RULE_SETUP -#line 1882 "dhcp6_lexer.ll" +#line 1924 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 182: +case 186: YY_RULE_SETUP -#line 1886 "dhcp6_lexer.ll" +#line 1928 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 183: +case 187: YY_RULE_SETUP -#line 1888 "dhcp6_lexer.ll" +#line 1930 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 184: +case 188: YY_RULE_SETUP -#line 1890 "dhcp6_lexer.ll" +#line 1932 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 185: +case 189: YY_RULE_SETUP -#line 1892 "dhcp6_lexer.ll" +#line 1934 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1894 "dhcp6_lexer.ll" +#line 1936 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -4575,12 +4667,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 186: +case 190: YY_RULE_SETUP -#line 1917 "dhcp6_lexer.ll" +#line 1959 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 4583 "dhcp6_lexer.cc" +#line 4675 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -4899,7 +4991,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1544 ) + if ( yy_current_state >= 1615 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -4932,11 +5024,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1544 ) + if ( yy_current_state >= 1615 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1543); + yy_is_jam = (yy_current_state == 1614); return yy_is_jam ? 0 : yy_current_state; } @@ -5685,7 +5777,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 1917 "dhcp6_lexer.ll" +#line 1959 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 0bd927b957..1e6f19687e 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -251,29 +251,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 180: // "boolean" + case 184: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 179: // "floating point" + case 183: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 178: // "integer" + case 182: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 177: // "constant string" + case 181: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -292,29 +292,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 180: // "boolean" + case 184: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 179: // "floating point" + case 183: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 178: // "integer" + case 182: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 177: // "constant string" + case 181: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -333,29 +333,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 180: // "boolean" + case 184: // "boolean" value.move< bool > (that.value); break; - case 179: // "floating point" + case 183: // "floating point" value.move< double > (that.value); break; - case 178: // "integer" + case 182: // "integer" value.move< int64_t > (that.value); break; - case 177: // "constant string" + case 181: // "constant string" value.move< std::string > (that.value); break; @@ -398,68 +398,68 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 177: // "constant string" -#line 256 "dhcp6_parser.yy" + case 181: // "constant string" +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 405 "dhcp6_parser.cc" break; - case 178: // "integer" -#line 256 "dhcp6_parser.yy" + case 182: // "integer" +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 411 "dhcp6_parser.cc" break; - case 179: // "floating point" -#line 256 "dhcp6_parser.yy" + case 183: // "floating point" +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 417 "dhcp6_parser.cc" break; - case 180: // "boolean" -#line 256 "dhcp6_parser.yy" + case 184: // "boolean" +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 423 "dhcp6_parser.cc" break; - case 198: // value -#line 256 "dhcp6_parser.yy" + case 202: // value +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 429 "dhcp6_parser.cc" break; - case 202: // map_value -#line 256 "dhcp6_parser.yy" + case 206: // map_value +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 435 "dhcp6_parser.cc" break; - case 259: // db_type -#line 256 "dhcp6_parser.yy" + case 267: // db_type +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 441 "dhcp6_parser.cc" break; - case 352: // hr_mode -#line 256 "dhcp6_parser.yy" + case 360: // hr_mode +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 447 "dhcp6_parser.cc" break; - case 488: // duid_type -#line 256 "dhcp6_parser.yy" + case 496: // duid_type +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 453 "dhcp6_parser.cc" break; - case 523: // ncr_protocol_value -#line 256 "dhcp6_parser.yy" + case 531: // ncr_protocol_value +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 459 "dhcp6_parser.cc" break; - case 530: // replace_client_name_value -#line 256 "dhcp6_parser.yy" + case 538: // replace_client_name_value +#line 260 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 465 "dhcp6_parser.cc" break; @@ -678,29 +678,29 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value yylhs.value.emplace< ElementPtr > (); break; - case 180: // "boolean" + case 184: // "boolean" yylhs.value.emplace< bool > (); break; - case 179: // "floating point" + case 183: // "floating point" yylhs.value.emplace< double > (); break; - case 178: // "integer" + case 182: // "integer" yylhs.value.emplace< int64_t > (); break; - case 177: // "constant string" + case 181: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -725,139 +725,139 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 265 "dhcp6_parser.yy" +#line 269 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 731 "dhcp6_parser.cc" break; case 4: -#line 266 "dhcp6_parser.yy" +#line 270 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 737 "dhcp6_parser.cc" break; case 6: -#line 267 "dhcp6_parser.yy" +#line 271 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 743 "dhcp6_parser.cc" break; case 8: -#line 268 "dhcp6_parser.yy" +#line 272 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 749 "dhcp6_parser.cc" break; case 10: -#line 269 "dhcp6_parser.yy" +#line 273 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 755 "dhcp6_parser.cc" break; case 12: -#line 270 "dhcp6_parser.yy" +#line 274 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 761 "dhcp6_parser.cc" break; case 14: -#line 271 "dhcp6_parser.yy" +#line 275 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 767 "dhcp6_parser.cc" break; case 16: -#line 272 "dhcp6_parser.yy" +#line 276 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 773 "dhcp6_parser.cc" break; case 18: -#line 273 "dhcp6_parser.yy" +#line 277 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 779 "dhcp6_parser.cc" break; case 20: -#line 274 "dhcp6_parser.yy" +#line 278 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 785 "dhcp6_parser.cc" break; case 22: -#line 275 "dhcp6_parser.yy" +#line 279 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 791 "dhcp6_parser.cc" break; case 24: -#line 276 "dhcp6_parser.yy" +#line 280 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 797 "dhcp6_parser.cc" break; case 26: -#line 277 "dhcp6_parser.yy" +#line 281 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 803 "dhcp6_parser.cc" break; case 28: -#line 278 "dhcp6_parser.yy" +#line 282 "dhcp6_parser.yy" { ctx.ctx_ = ctx.LOGGING; } #line 809 "dhcp6_parser.cc" break; case 30: -#line 279 "dhcp6_parser.yy" +#line 283 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 815 "dhcp6_parser.cc" break; case 32: -#line 287 "dhcp6_parser.yy" +#line 291 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 821 "dhcp6_parser.cc" break; case 33: -#line 288 "dhcp6_parser.yy" +#line 292 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 827 "dhcp6_parser.cc" break; case 34: -#line 289 "dhcp6_parser.yy" +#line 293 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 833 "dhcp6_parser.cc" break; case 35: -#line 290 "dhcp6_parser.yy" +#line 294 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 839 "dhcp6_parser.cc" break; case 36: -#line 291 "dhcp6_parser.yy" +#line 295 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 845 "dhcp6_parser.cc" break; case 37: -#line 292 "dhcp6_parser.yy" +#line 296 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 851 "dhcp6_parser.cc" break; case 38: -#line 293 "dhcp6_parser.yy" +#line 297 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 857 "dhcp6_parser.cc" break; case 39: -#line 296 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -866,7 +866,7 @@ namespace isc { namespace dhcp { break; case 40: -#line 301 "dhcp6_parser.yy" +#line 305 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -877,7 +877,7 @@ namespace isc { namespace dhcp { break; case 41: -#line 306 "dhcp6_parser.yy" +#line 310 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -887,13 +887,13 @@ namespace isc { namespace dhcp { break; case 42: -#line 312 "dhcp6_parser.yy" +#line 316 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 893 "dhcp6_parser.cc" break; case 45: -#line 319 "dhcp6_parser.yy" +#line 323 "dhcp6_parser.yy" { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); @@ -902,7 +902,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 323 "dhcp6_parser.yy" +#line 327 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -912,7 +912,7 @@ namespace isc { namespace dhcp { break; case 47: -#line 330 "dhcp6_parser.yy" +#line 334 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -921,7 +921,7 @@ namespace isc { namespace dhcp { break; case 48: -#line 333 "dhcp6_parser.yy" +#line 337 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -929,7 +929,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 341 "dhcp6_parser.yy" +#line 345 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -938,7 +938,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 345 "dhcp6_parser.yy" +#line 349 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -947,7 +947,7 @@ namespace isc { namespace dhcp { break; case 53: -#line 352 "dhcp6_parser.yy" +#line 356 "dhcp6_parser.yy" { // List parsing about to start } @@ -955,7 +955,7 @@ namespace isc { namespace dhcp { break; case 54: -#line 354 "dhcp6_parser.yy" +#line 358 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -964,7 +964,7 @@ namespace isc { namespace dhcp { break; case 57: -#line 363 "dhcp6_parser.yy" +#line 367 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -973,7 +973,7 @@ namespace isc { namespace dhcp { break; case 58: -#line 367 "dhcp6_parser.yy" +#line 371 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -982,7 +982,7 @@ namespace isc { namespace dhcp { break; case 59: -#line 378 "dhcp6_parser.yy" +#line 382 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -993,7 +993,7 @@ namespace isc { namespace dhcp { break; case 60: -#line 388 "dhcp6_parser.yy" +#line 392 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1004,7 +1004,7 @@ namespace isc { namespace dhcp { break; case 61: -#line 393 "dhcp6_parser.yy" +#line 397 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1017,7 +1017,7 @@ namespace isc { namespace dhcp { break; case 70: -#line 416 "dhcp6_parser.yy" +#line 420 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1030,7 +1030,7 @@ namespace isc { namespace dhcp { break; case 71: -#line 423 "dhcp6_parser.yy" +#line 427 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1040,7 +1040,7 @@ namespace isc { namespace dhcp { break; case 72: -#line 431 "dhcp6_parser.yy" +#line 435 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1050,7 +1050,7 @@ namespace isc { namespace dhcp { break; case 73: -#line 435 "dhcp6_parser.yy" +#line 439 "dhcp6_parser.yy" { // No global parameter is required // parsing completed @@ -1058,16 +1058,16 @@ namespace isc { namespace dhcp { #line 1059 "dhcp6_parser.cc" break; - case 115: -#line 487 "dhcp6_parser.yy" + case 117: +#line 493 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 1067 "dhcp6_parser.cc" break; - case 116: -#line 489 "dhcp6_parser.yy" + case 118: +#line 495 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); @@ -1076,8 +1076,8 @@ namespace isc { namespace dhcp { #line 1077 "dhcp6_parser.cc" break; - case 117: -#line 495 "dhcp6_parser.yy" + case 119: +#line 501 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); @@ -1085,545 +1085,581 @@ namespace isc { namespace dhcp { #line 1086 "dhcp6_parser.cc" break; - case 118: -#line 500 "dhcp6_parser.yy" + case 120: +#line 506 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("valid-lifetime", prf); + ctx.stack_.back()->set("min-preferred-lifetime", prf); } #line 1095 "dhcp6_parser.cc" break; - case 119: -#line 505 "dhcp6_parser.yy" + case 121: +#line 511 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("renew-timer", prf); + ctx.stack_.back()->set("max-preferred-lifetime", prf); } #line 1104 "dhcp6_parser.cc" break; - case 120: -#line 510 "dhcp6_parser.yy" + case 122: +#line 516 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("rebind-timer", prf); + ctx.stack_.back()->set("valid-lifetime", prf); } #line 1113 "dhcp6_parser.cc" break; - case 121: -#line 515 "dhcp6_parser.yy" + case 123: +#line 521 "dhcp6_parser.yy" + { + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("min-valid-lifetime", prf); +} +#line 1122 "dhcp6_parser.cc" + break; + + case 124: +#line 526 "dhcp6_parser.yy" + { + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-valid-lifetime", prf); +} +#line 1131 "dhcp6_parser.cc" + break; + + case 125: +#line 531 "dhcp6_parser.yy" + { + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("renew-timer", prf); +} +#line 1140 "dhcp6_parser.cc" + break; + + case 126: +#line 536 "dhcp6_parser.yy" + { + ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("rebind-timer", prf); +} +#line 1149 "dhcp6_parser.cc" + break; + + case 127: +#line 541 "dhcp6_parser.yy" { ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("calculate-tee-times", ctt); } -#line 1122 "dhcp6_parser.cc" +#line 1158 "dhcp6_parser.cc" break; - case 122: -#line 520 "dhcp6_parser.yy" + case 128: +#line 546 "dhcp6_parser.yy" { ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t1-percent", t1); } -#line 1131 "dhcp6_parser.cc" +#line 1167 "dhcp6_parser.cc" break; - case 123: -#line 525 "dhcp6_parser.yy" + case 129: +#line 551 "dhcp6_parser.yy" { ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("t2-percent", t2); } -#line 1140 "dhcp6_parser.cc" +#line 1176 "dhcp6_parser.cc" break; - case 124: -#line 530 "dhcp6_parser.yy" + case 130: +#line 556 "dhcp6_parser.yy" { ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1149 "dhcp6_parser.cc" +#line 1185 "dhcp6_parser.cc" break; - case 125: -#line 535 "dhcp6_parser.yy" + case 131: +#line 561 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1157 "dhcp6_parser.cc" +#line 1193 "dhcp6_parser.cc" break; - case 126: -#line 537 "dhcp6_parser.yy" + case 132: +#line 563 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1167 "dhcp6_parser.cc" +#line 1203 "dhcp6_parser.cc" break; - case 127: -#line 543 "dhcp6_parser.yy" + case 133: +#line 569 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1178 "dhcp6_parser.cc" +#line 1214 "dhcp6_parser.cc" break; - case 128: -#line 548 "dhcp6_parser.yy" + case 134: +#line 574 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1188 "dhcp6_parser.cc" +#line 1224 "dhcp6_parser.cc" break; - case 129: -#line 554 "dhcp6_parser.yy" + case 135: +#line 580 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1198 "dhcp6_parser.cc" +#line 1234 "dhcp6_parser.cc" break; - case 130: -#line 558 "dhcp6_parser.yy" + case 136: +#line 584 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed } -#line 1207 "dhcp6_parser.cc" +#line 1243 "dhcp6_parser.cc" break; - case 138: -#line 574 "dhcp6_parser.yy" + case 144: +#line 600 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1218 "dhcp6_parser.cc" +#line 1254 "dhcp6_parser.cc" break; - case 139: -#line 579 "dhcp6_parser.yy" + case 145: +#line 605 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1227 "dhcp6_parser.cc" +#line 1263 "dhcp6_parser.cc" break; - case 140: -#line 584 "dhcp6_parser.yy" + case 146: +#line 610 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1236 "dhcp6_parser.cc" +#line 1272 "dhcp6_parser.cc" break; - case 141: -#line 590 "dhcp6_parser.yy" + case 147: +#line 616 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1247 "dhcp6_parser.cc" +#line 1283 "dhcp6_parser.cc" break; - case 142: -#line 595 "dhcp6_parser.yy" + case 148: +#line 621 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1258 "dhcp6_parser.cc" +#line 1294 "dhcp6_parser.cc" break; - case 143: -#line 602 "dhcp6_parser.yy" + case 149: +#line 628 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1269 "dhcp6_parser.cc" +#line 1305 "dhcp6_parser.cc" break; - case 144: -#line 607 "dhcp6_parser.yy" + case 150: +#line 633 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 1280 "dhcp6_parser.cc" +#line 1316 "dhcp6_parser.cc" break; - case 145: -#line 614 "dhcp6_parser.yy" + case 151: +#line 640 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1291 "dhcp6_parser.cc" +#line 1327 "dhcp6_parser.cc" break; - case 146: -#line 619 "dhcp6_parser.yy" + case 152: +#line 645 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1300 "dhcp6_parser.cc" +#line 1336 "dhcp6_parser.cc" break; - case 151: -#line 632 "dhcp6_parser.yy" + case 157: +#line 658 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1310 "dhcp6_parser.cc" +#line 1346 "dhcp6_parser.cc" break; - case 152: -#line 636 "dhcp6_parser.yy" + case 158: +#line 662 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1320 "dhcp6_parser.cc" +#line 1356 "dhcp6_parser.cc" break; - case 175: -#line 668 "dhcp6_parser.yy" + case 181: +#line 694 "dhcp6_parser.yy" { ctx.enter(ctx.DATABASE_TYPE); } -#line 1328 "dhcp6_parser.cc" +#line 1364 "dhcp6_parser.cc" break; - case 176: -#line 670 "dhcp6_parser.yy" + case 182: +#line 696 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1337 "dhcp6_parser.cc" +#line 1373 "dhcp6_parser.cc" break; - case 177: -#line 675 "dhcp6_parser.yy" + case 183: +#line 701 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1343 "dhcp6_parser.cc" +#line 1379 "dhcp6_parser.cc" break; - case 178: -#line 676 "dhcp6_parser.yy" + case 184: +#line 702 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1349 "dhcp6_parser.cc" +#line 1385 "dhcp6_parser.cc" break; - case 179: -#line 677 "dhcp6_parser.yy" + case 185: +#line 703 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1355 "dhcp6_parser.cc" +#line 1391 "dhcp6_parser.cc" break; - case 180: -#line 678 "dhcp6_parser.yy" + case 186: +#line 704 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1361 "dhcp6_parser.cc" +#line 1397 "dhcp6_parser.cc" break; - case 181: -#line 681 "dhcp6_parser.yy" + case 187: +#line 707 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1369 "dhcp6_parser.cc" +#line 1405 "dhcp6_parser.cc" break; - case 182: -#line 683 "dhcp6_parser.yy" + case 188: +#line 709 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1379 "dhcp6_parser.cc" +#line 1415 "dhcp6_parser.cc" break; - case 183: -#line 689 "dhcp6_parser.yy" + case 189: +#line 715 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1387 "dhcp6_parser.cc" +#line 1423 "dhcp6_parser.cc" break; - case 184: -#line 691 "dhcp6_parser.yy" + case 190: +#line 717 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1397 "dhcp6_parser.cc" +#line 1433 "dhcp6_parser.cc" break; - case 185: -#line 697 "dhcp6_parser.yy" + case 191: +#line 723 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1405 "dhcp6_parser.cc" +#line 1441 "dhcp6_parser.cc" break; - case 186: -#line 699 "dhcp6_parser.yy" + case 192: +#line 725 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1415 "dhcp6_parser.cc" +#line 1451 "dhcp6_parser.cc" break; - case 187: -#line 705 "dhcp6_parser.yy" + case 193: +#line 731 "dhcp6_parser.yy" { ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1424 "dhcp6_parser.cc" +#line 1460 "dhcp6_parser.cc" break; - case 188: -#line 710 "dhcp6_parser.yy" + case 194: +#line 736 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1432 "dhcp6_parser.cc" +#line 1468 "dhcp6_parser.cc" break; - case 189: -#line 712 "dhcp6_parser.yy" + case 195: +#line 738 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1442 "dhcp6_parser.cc" +#line 1478 "dhcp6_parser.cc" break; - case 190: -#line 718 "dhcp6_parser.yy" + case 196: +#line 744 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1451 "dhcp6_parser.cc" +#line 1487 "dhcp6_parser.cc" break; - case 191: -#line 723 "dhcp6_parser.yy" + case 197: +#line 749 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1460 "dhcp6_parser.cc" +#line 1496 "dhcp6_parser.cc" break; - case 192: -#line 728 "dhcp6_parser.yy" + case 198: +#line 754 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1469 "dhcp6_parser.cc" +#line 1505 "dhcp6_parser.cc" break; - case 193: -#line 733 "dhcp6_parser.yy" + case 199: +#line 759 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1478 "dhcp6_parser.cc" +#line 1514 "dhcp6_parser.cc" break; - case 194: -#line 738 "dhcp6_parser.yy" + case 200: +#line 764 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1487 "dhcp6_parser.cc" +#line 1523 "dhcp6_parser.cc" break; - case 195: -#line 743 "dhcp6_parser.yy" + case 201: +#line 769 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1496 "dhcp6_parser.cc" +#line 1532 "dhcp6_parser.cc" break; - case 196: -#line 748 "dhcp6_parser.yy" + case 202: +#line 774 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1505 "dhcp6_parser.cc" +#line 1541 "dhcp6_parser.cc" break; - case 197: -#line 753 "dhcp6_parser.yy" + case 203: +#line 779 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1514 "dhcp6_parser.cc" +#line 1550 "dhcp6_parser.cc" break; - case 198: -#line 758 "dhcp6_parser.yy" + case 204: +#line 784 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1522 "dhcp6_parser.cc" +#line 1558 "dhcp6_parser.cc" break; - case 199: -#line 760 "dhcp6_parser.yy" + case 205: +#line 786 "dhcp6_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1532 "dhcp6_parser.cc" +#line 1568 "dhcp6_parser.cc" break; - case 200: -#line 766 "dhcp6_parser.yy" + case 206: +#line 792 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1541 "dhcp6_parser.cc" +#line 1577 "dhcp6_parser.cc" break; - case 201: -#line 771 "dhcp6_parser.yy" + case 207: +#line 797 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1549 "dhcp6_parser.cc" +#line 1585 "dhcp6_parser.cc" break; - case 202: -#line 773 "dhcp6_parser.yy" + case 208: +#line 799 "dhcp6_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1559 "dhcp6_parser.cc" +#line 1595 "dhcp6_parser.cc" break; - case 203: -#line 779 "dhcp6_parser.yy" + case 209: +#line 805 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1567 "dhcp6_parser.cc" +#line 1603 "dhcp6_parser.cc" break; - case 204: -#line 781 "dhcp6_parser.yy" + case 210: +#line 807 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1577 "dhcp6_parser.cc" +#line 1613 "dhcp6_parser.cc" break; - case 205: -#line 787 "dhcp6_parser.yy" + case 211: +#line 813 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1585 "dhcp6_parser.cc" +#line 1621 "dhcp6_parser.cc" break; - case 206: -#line 789 "dhcp6_parser.yy" + case 212: +#line 815 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1595 "dhcp6_parser.cc" +#line 1631 "dhcp6_parser.cc" break; - case 207: -#line 795 "dhcp6_parser.yy" + case 213: +#line 821 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1606 "dhcp6_parser.cc" +#line 1642 "dhcp6_parser.cc" break; - case 208: -#line 800 "dhcp6_parser.yy" + case 214: +#line 826 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1615 "dhcp6_parser.cc" +#line 1651 "dhcp6_parser.cc" break; - case 212: -#line 810 "dhcp6_parser.yy" + case 218: +#line 836 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1623 "dhcp6_parser.cc" +#line 1659 "dhcp6_parser.cc" break; - case 213: -#line 812 "dhcp6_parser.yy" + case 219: +#line 838 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1639,307 +1675,307 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1643 "dhcp6_parser.cc" +#line 1679 "dhcp6_parser.cc" break; - case 214: -#line 828 "dhcp6_parser.yy" + case 220: +#line 854 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1654 "dhcp6_parser.cc" +#line 1690 "dhcp6_parser.cc" break; - case 215: -#line 833 "dhcp6_parser.yy" + case 221: +#line 859 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1663 "dhcp6_parser.cc" +#line 1699 "dhcp6_parser.cc" break; - case 220: -#line 846 "dhcp6_parser.yy" + case 226: +#line 872 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1672 "dhcp6_parser.cc" +#line 1708 "dhcp6_parser.cc" break; - case 221: -#line 851 "dhcp6_parser.yy" + case 227: +#line 877 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1681 "dhcp6_parser.cc" +#line 1717 "dhcp6_parser.cc" break; - case 222: -#line 856 "dhcp6_parser.yy" + case 228: +#line 882 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1692 "dhcp6_parser.cc" +#line 1728 "dhcp6_parser.cc" break; - case 223: -#line 861 "dhcp6_parser.yy" + case 229: +#line 887 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1701 "dhcp6_parser.cc" +#line 1737 "dhcp6_parser.cc" break; - case 229: -#line 875 "dhcp6_parser.yy" + case 235: +#line 901 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1710 "dhcp6_parser.cc" +#line 1746 "dhcp6_parser.cc" break; - case 230: -#line 880 "dhcp6_parser.yy" + case 236: +#line 906 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 1719 "dhcp6_parser.cc" +#line 1755 "dhcp6_parser.cc" break; - case 231: -#line 887 "dhcp6_parser.yy" + case 237: +#line 913 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1730 "dhcp6_parser.cc" +#line 1766 "dhcp6_parser.cc" break; - case 232: -#line 892 "dhcp6_parser.yy" + case 238: +#line 918 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1739 "dhcp6_parser.cc" +#line 1775 "dhcp6_parser.cc" break; - case 233: -#line 897 "dhcp6_parser.yy" + case 239: +#line 923 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1750 "dhcp6_parser.cc" +#line 1786 "dhcp6_parser.cc" break; - case 234: -#line 902 "dhcp6_parser.yy" + case 240: +#line 928 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1759 "dhcp6_parser.cc" +#line 1795 "dhcp6_parser.cc" break; - case 239: -#line 915 "dhcp6_parser.yy" + case 245: +#line 941 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1769 "dhcp6_parser.cc" +#line 1805 "dhcp6_parser.cc" break; - case 240: -#line 919 "dhcp6_parser.yy" + case 246: +#line 945 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1779 "dhcp6_parser.cc" +#line 1815 "dhcp6_parser.cc" break; - case 241: -#line 925 "dhcp6_parser.yy" + case 247: +#line 951 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1789 "dhcp6_parser.cc" +#line 1825 "dhcp6_parser.cc" break; - case 242: -#line 929 "dhcp6_parser.yy" + case 248: +#line 955 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1799 "dhcp6_parser.cc" +#line 1835 "dhcp6_parser.cc" break; - case 248: -#line 944 "dhcp6_parser.yy" + case 254: +#line 970 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1807 "dhcp6_parser.cc" +#line 1843 "dhcp6_parser.cc" break; - case 249: -#line 946 "dhcp6_parser.yy" + case 255: +#line 972 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1817 "dhcp6_parser.cc" +#line 1853 "dhcp6_parser.cc" break; - case 250: -#line 952 "dhcp6_parser.yy" + case 256: +#line 978 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1825 "dhcp6_parser.cc" +#line 1861 "dhcp6_parser.cc" break; - case 251: -#line 954 "dhcp6_parser.yy" + case 257: +#line 980 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1834 "dhcp6_parser.cc" +#line 1870 "dhcp6_parser.cc" break; - case 252: -#line 960 "dhcp6_parser.yy" + case 258: +#line 986 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1845 "dhcp6_parser.cc" +#line 1881 "dhcp6_parser.cc" break; - case 253: -#line 965 "dhcp6_parser.yy" + case 259: +#line 991 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1855 "dhcp6_parser.cc" +#line 1891 "dhcp6_parser.cc" break; - case 262: -#line 983 "dhcp6_parser.yy" + case 268: +#line 1009 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1864 "dhcp6_parser.cc" +#line 1900 "dhcp6_parser.cc" break; - case 263: -#line 988 "dhcp6_parser.yy" + case 269: +#line 1014 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 1873 "dhcp6_parser.cc" +#line 1909 "dhcp6_parser.cc" break; - case 264: -#line 993 "dhcp6_parser.yy" + case 270: +#line 1019 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1882 "dhcp6_parser.cc" +#line 1918 "dhcp6_parser.cc" break; - case 265: -#line 998 "dhcp6_parser.yy" + case 271: +#line 1024 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1891 "dhcp6_parser.cc" +#line 1927 "dhcp6_parser.cc" break; - case 266: -#line 1003 "dhcp6_parser.yy" + case 272: +#line 1029 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1900 "dhcp6_parser.cc" +#line 1936 "dhcp6_parser.cc" break; - case 267: -#line 1008 "dhcp6_parser.yy" + case 273: +#line 1034 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1909 "dhcp6_parser.cc" +#line 1945 "dhcp6_parser.cc" break; - case 268: -#line 1016 "dhcp6_parser.yy" + case 274: +#line 1042 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 1920 "dhcp6_parser.cc" +#line 1956 "dhcp6_parser.cc" break; - case 269: -#line 1021 "dhcp6_parser.yy" + case 275: +#line 1047 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1929 "dhcp6_parser.cc" +#line 1965 "dhcp6_parser.cc" break; - case 274: -#line 1041 "dhcp6_parser.yy" + case 280: +#line 1067 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1939 "dhcp6_parser.cc" +#line 1975 "dhcp6_parser.cc" break; - case 275: -#line 1045 "dhcp6_parser.yy" + case 281: +#line 1071 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1961,267 +1997,267 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1965 "dhcp6_parser.cc" +#line 2001 "dhcp6_parser.cc" break; - case 276: -#line 1067 "dhcp6_parser.yy" + case 282: +#line 1093 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1975 "dhcp6_parser.cc" +#line 2011 "dhcp6_parser.cc" break; - case 277: -#line 1071 "dhcp6_parser.yy" + case 283: +#line 1097 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1985 "dhcp6_parser.cc" +#line 2021 "dhcp6_parser.cc" break; - case 303: -#line 1108 "dhcp6_parser.yy" + case 313: +#line 1138 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 1993 "dhcp6_parser.cc" +#line 2029 "dhcp6_parser.cc" break; - case 304: -#line 1110 "dhcp6_parser.yy" + case 314: +#line 1140 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2003 "dhcp6_parser.cc" +#line 2039 "dhcp6_parser.cc" break; - case 305: -#line 1116 "dhcp6_parser.yy" + case 315: +#line 1146 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2011 "dhcp6_parser.cc" +#line 2047 "dhcp6_parser.cc" break; - case 306: -#line 1118 "dhcp6_parser.yy" + case 316: +#line 1148 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2021 "dhcp6_parser.cc" +#line 2057 "dhcp6_parser.cc" break; - case 307: -#line 1124 "dhcp6_parser.yy" + case 317: +#line 1154 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2029 "dhcp6_parser.cc" +#line 2065 "dhcp6_parser.cc" break; - case 308: -#line 1126 "dhcp6_parser.yy" + case 318: +#line 1156 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2039 "dhcp6_parser.cc" +#line 2075 "dhcp6_parser.cc" break; - case 309: -#line 1132 "dhcp6_parser.yy" + case 319: +#line 1162 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2047 "dhcp6_parser.cc" +#line 2083 "dhcp6_parser.cc" break; - case 310: -#line 1134 "dhcp6_parser.yy" + case 320: +#line 1164 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2057 "dhcp6_parser.cc" +#line 2093 "dhcp6_parser.cc" break; - case 311: -#line 1140 "dhcp6_parser.yy" + case 321: +#line 1170 "dhcp6_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2068 "dhcp6_parser.cc" +#line 2104 "dhcp6_parser.cc" break; - case 312: -#line 1145 "dhcp6_parser.yy" + case 322: +#line 1175 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2077 "dhcp6_parser.cc" +#line 2113 "dhcp6_parser.cc" break; - case 313: -#line 1150 "dhcp6_parser.yy" + case 323: +#line 1180 "dhcp6_parser.yy" { ctx.enter(ctx.RESERVATION_MODE); } -#line 2085 "dhcp6_parser.cc" +#line 2121 "dhcp6_parser.cc" break; - case 314: -#line 1152 "dhcp6_parser.yy" + case 324: +#line 1182 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2094 "dhcp6_parser.cc" +#line 2130 "dhcp6_parser.cc" break; - case 315: -#line 1157 "dhcp6_parser.yy" + case 325: +#line 1187 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2100 "dhcp6_parser.cc" +#line 2136 "dhcp6_parser.cc" break; - case 316: -#line 1158 "dhcp6_parser.yy" + case 326: +#line 1188 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2106 "dhcp6_parser.cc" +#line 2142 "dhcp6_parser.cc" break; - case 317: -#line 1159 "dhcp6_parser.yy" + case 327: +#line 1189 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2112 "dhcp6_parser.cc" +#line 2148 "dhcp6_parser.cc" break; - case 318: -#line 1160 "dhcp6_parser.yy" + case 328: +#line 1190 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2118 "dhcp6_parser.cc" +#line 2154 "dhcp6_parser.cc" break; - case 319: -#line 1163 "dhcp6_parser.yy" + case 329: +#line 1193 "dhcp6_parser.yy" { ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2127 "dhcp6_parser.cc" +#line 2163 "dhcp6_parser.cc" break; - case 320: -#line 1168 "dhcp6_parser.yy" + case 330: +#line 1198 "dhcp6_parser.yy" { ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2136 "dhcp6_parser.cc" +#line 2172 "dhcp6_parser.cc" break; - case 321: -#line 1176 "dhcp6_parser.yy" + case 331: +#line 1206 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2147 "dhcp6_parser.cc" +#line 2183 "dhcp6_parser.cc" break; - case 322: -#line 1181 "dhcp6_parser.yy" + case 332: +#line 1211 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2156 "dhcp6_parser.cc" +#line 2192 "dhcp6_parser.cc" break; - case 327: -#line 1196 "dhcp6_parser.yy" + case 337: +#line 1226 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2166 "dhcp6_parser.cc" +#line 2202 "dhcp6_parser.cc" break; - case 328: -#line 1200 "dhcp6_parser.yy" + case 338: +#line 1230 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 2174 "dhcp6_parser.cc" +#line 2210 "dhcp6_parser.cc" break; - case 351: -#line 1234 "dhcp6_parser.yy" + case 365: +#line 1268 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2185 "dhcp6_parser.cc" +#line 2221 "dhcp6_parser.cc" break; - case 352: -#line 1239 "dhcp6_parser.yy" + case 366: +#line 1273 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2194 "dhcp6_parser.cc" +#line 2230 "dhcp6_parser.cc" break; - case 353: -#line 1247 "dhcp6_parser.yy" + case 367: +#line 1281 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2203 "dhcp6_parser.cc" +#line 2239 "dhcp6_parser.cc" break; - case 354: -#line 1250 "dhcp6_parser.yy" + case 368: +#line 1284 "dhcp6_parser.yy" { // parsing completed } -#line 2211 "dhcp6_parser.cc" +#line 2247 "dhcp6_parser.cc" break; - case 359: -#line 1266 "dhcp6_parser.yy" + case 373: +#line 1300 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2221 "dhcp6_parser.cc" +#line 2257 "dhcp6_parser.cc" break; - case 360: -#line 1270 "dhcp6_parser.yy" + case 374: +#line 1304 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2229,21 +2265,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2233 "dhcp6_parser.cc" +#line 2269 "dhcp6_parser.cc" break; - case 361: -#line 1281 "dhcp6_parser.yy" + case 375: +#line 1315 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2243 "dhcp6_parser.cc" +#line 2279 "dhcp6_parser.cc" break; - case 362: -#line 1285 "dhcp6_parser.yy" + case 376: +#line 1319 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2251,280 +2287,280 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2255 "dhcp6_parser.cc" +#line 2291 "dhcp6_parser.cc" break; - case 378: -#line 1317 "dhcp6_parser.yy" + case 392: +#line 1351 "dhcp6_parser.yy" { ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2264 "dhcp6_parser.cc" +#line 2300 "dhcp6_parser.cc" break; - case 380: -#line 1324 "dhcp6_parser.yy" + case 394: +#line 1358 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2272 "dhcp6_parser.cc" +#line 2308 "dhcp6_parser.cc" break; - case 381: -#line 1326 "dhcp6_parser.yy" + case 395: +#line 1360 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2282 "dhcp6_parser.cc" +#line 2318 "dhcp6_parser.cc" break; - case 382: -#line 1332 "dhcp6_parser.yy" + case 396: +#line 1366 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2290 "dhcp6_parser.cc" +#line 2326 "dhcp6_parser.cc" break; - case 383: -#line 1334 "dhcp6_parser.yy" + case 397: +#line 1368 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 2300 "dhcp6_parser.cc" +#line 2336 "dhcp6_parser.cc" break; - case 384: -#line 1340 "dhcp6_parser.yy" + case 398: +#line 1374 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2308 "dhcp6_parser.cc" +#line 2344 "dhcp6_parser.cc" break; - case 385: -#line 1342 "dhcp6_parser.yy" + case 399: +#line 1376 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2318 "dhcp6_parser.cc" +#line 2354 "dhcp6_parser.cc" break; - case 387: -#line 1350 "dhcp6_parser.yy" + case 401: +#line 1384 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2326 "dhcp6_parser.cc" +#line 2362 "dhcp6_parser.cc" break; - case 388: -#line 1352 "dhcp6_parser.yy" + case 402: +#line 1386 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2336 "dhcp6_parser.cc" +#line 2372 "dhcp6_parser.cc" break; - case 389: -#line 1358 "dhcp6_parser.yy" + case 403: +#line 1392 "dhcp6_parser.yy" { ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2345 "dhcp6_parser.cc" +#line 2381 "dhcp6_parser.cc" break; - case 390: -#line 1367 "dhcp6_parser.yy" + case 404: +#line 1401 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2356 "dhcp6_parser.cc" +#line 2392 "dhcp6_parser.cc" break; - case 391: -#line 1372 "dhcp6_parser.yy" + case 405: +#line 1406 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2365 "dhcp6_parser.cc" +#line 2401 "dhcp6_parser.cc" break; - case 396: -#line 1391 "dhcp6_parser.yy" + case 410: +#line 1425 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2375 "dhcp6_parser.cc" +#line 2411 "dhcp6_parser.cc" break; - case 397: -#line 1395 "dhcp6_parser.yy" + case 411: +#line 1429 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2384 "dhcp6_parser.cc" +#line 2420 "dhcp6_parser.cc" break; - case 398: -#line 1403 "dhcp6_parser.yy" + case 412: +#line 1437 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2394 "dhcp6_parser.cc" +#line 2430 "dhcp6_parser.cc" break; - case 399: -#line 1407 "dhcp6_parser.yy" + case 413: +#line 1441 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 2403 "dhcp6_parser.cc" +#line 2439 "dhcp6_parser.cc" break; - case 414: -#line 1440 "dhcp6_parser.yy" + case 428: +#line 1474 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2411 "dhcp6_parser.cc" +#line 2447 "dhcp6_parser.cc" break; - case 415: -#line 1442 "dhcp6_parser.yy" + case 429: +#line 1476 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2421 "dhcp6_parser.cc" +#line 2457 "dhcp6_parser.cc" break; - case 418: -#line 1452 "dhcp6_parser.yy" + case 432: +#line 1486 "dhcp6_parser.yy" { ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2430 "dhcp6_parser.cc" +#line 2466 "dhcp6_parser.cc" break; - case 419: -#line 1457 "dhcp6_parser.yy" + case 433: +#line 1491 "dhcp6_parser.yy" { ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2439 "dhcp6_parser.cc" +#line 2475 "dhcp6_parser.cc" break; - case 420: -#line 1465 "dhcp6_parser.yy" + case 434: +#line 1499 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2450 "dhcp6_parser.cc" +#line 2486 "dhcp6_parser.cc" break; - case 421: -#line 1470 "dhcp6_parser.yy" + case 435: +#line 1504 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2459 "dhcp6_parser.cc" +#line 2495 "dhcp6_parser.cc" break; - case 426: -#line 1485 "dhcp6_parser.yy" + case 440: +#line 1519 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2469 "dhcp6_parser.cc" +#line 2505 "dhcp6_parser.cc" break; - case 427: -#line 1489 "dhcp6_parser.yy" + case 441: +#line 1523 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2479 "dhcp6_parser.cc" +#line 2515 "dhcp6_parser.cc" break; - case 428: -#line 1495 "dhcp6_parser.yy" + case 442: +#line 1529 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2489 "dhcp6_parser.cc" +#line 2525 "dhcp6_parser.cc" break; - case 429: -#line 1499 "dhcp6_parser.yy" + case 443: +#line 1533 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 2498 "dhcp6_parser.cc" +#line 2534 "dhcp6_parser.cc" break; - case 439: -#line 1517 "dhcp6_parser.yy" + case 453: +#line 1551 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2506 "dhcp6_parser.cc" +#line 2542 "dhcp6_parser.cc" break; - case 440: -#line 1519 "dhcp6_parser.yy" + case 454: +#line 1553 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2516 "dhcp6_parser.cc" +#line 2552 "dhcp6_parser.cc" break; - case 441: -#line 1525 "dhcp6_parser.yy" + case 455: +#line 1559 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2524 "dhcp6_parser.cc" +#line 2560 "dhcp6_parser.cc" break; - case 442: -#line 1527 "dhcp6_parser.yy" + case 456: +#line 1561 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -2547,19 +2583,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2551 "dhcp6_parser.cc" +#line 2587 "dhcp6_parser.cc" break; - case 443: -#line 1550 "dhcp6_parser.yy" + case 457: +#line 1584 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2559 "dhcp6_parser.cc" +#line 2595 "dhcp6_parser.cc" break; - case 444: -#line 1552 "dhcp6_parser.yy" + case 458: +#line 1586 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -2584,41 +2620,41 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2588 "dhcp6_parser.cc" +#line 2624 "dhcp6_parser.cc" break; - case 445: -#line 1580 "dhcp6_parser.yy" + case 459: +#line 1614 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 2599 "dhcp6_parser.cc" +#line 2635 "dhcp6_parser.cc" break; - case 446: -#line 1585 "dhcp6_parser.yy" + case 460: +#line 1619 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2608 "dhcp6_parser.cc" +#line 2644 "dhcp6_parser.cc" break; - case 451: -#line 1600 "dhcp6_parser.yy" + case 465: +#line 1634 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2618 "dhcp6_parser.cc" +#line 2654 "dhcp6_parser.cc" break; - case 452: -#line 1604 "dhcp6_parser.yy" + case 466: +#line 1638 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2626,21 +2662,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2630 "dhcp6_parser.cc" +#line 2666 "dhcp6_parser.cc" break; - case 453: -#line 1612 "dhcp6_parser.yy" + case 467: +#line 1646 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2640 "dhcp6_parser.cc" +#line 2676 "dhcp6_parser.cc" break; - case 454: -#line 1616 "dhcp6_parser.yy" + case 468: +#line 1650 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2648,544 +2684,544 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2652 "dhcp6_parser.cc" +#line 2688 "dhcp6_parser.cc" break; - case 468: -#line 1641 "dhcp6_parser.yy" + case 482: +#line 1675 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2660 "dhcp6_parser.cc" +#line 2696 "dhcp6_parser.cc" break; - case 469: -#line 1643 "dhcp6_parser.yy" + case 483: +#line 1677 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2670 "dhcp6_parser.cc" +#line 2706 "dhcp6_parser.cc" break; - case 470: -#line 1649 "dhcp6_parser.yy" + case 484: +#line 1683 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 2679 "dhcp6_parser.cc" +#line 2715 "dhcp6_parser.cc" break; - case 471: -#line 1654 "dhcp6_parser.yy" + case 485: +#line 1688 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2687 "dhcp6_parser.cc" +#line 2723 "dhcp6_parser.cc" break; - case 472: -#line 1656 "dhcp6_parser.yy" + case 486: +#line 1690 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 2697 "dhcp6_parser.cc" +#line 2733 "dhcp6_parser.cc" break; - case 473: -#line 1662 "dhcp6_parser.yy" + case 487: +#line 1696 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 2706 "dhcp6_parser.cc" +#line 2742 "dhcp6_parser.cc" break; - case 474: -#line 1667 "dhcp6_parser.yy" + case 488: +#line 1701 "dhcp6_parser.yy" { ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 2715 "dhcp6_parser.cc" +#line 2751 "dhcp6_parser.cc" break; - case 475: -#line 1675 "dhcp6_parser.yy" + case 489: +#line 1709 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2726 "dhcp6_parser.cc" +#line 2762 "dhcp6_parser.cc" break; - case 476: -#line 1680 "dhcp6_parser.yy" + case 490: +#line 1714 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2735 "dhcp6_parser.cc" +#line 2771 "dhcp6_parser.cc" break; - case 481: -#line 1693 "dhcp6_parser.yy" + case 495: +#line 1727 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2745 "dhcp6_parser.cc" +#line 2781 "dhcp6_parser.cc" break; - case 482: -#line 1697 "dhcp6_parser.yy" + case 496: +#line 1731 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2754 "dhcp6_parser.cc" +#line 2790 "dhcp6_parser.cc" break; - case 483: -#line 1702 "dhcp6_parser.yy" + case 497: +#line 1736 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2764 "dhcp6_parser.cc" +#line 2800 "dhcp6_parser.cc" break; - case 484: -#line 1706 "dhcp6_parser.yy" + case 498: +#line 1740 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 2773 "dhcp6_parser.cc" +#line 2809 "dhcp6_parser.cc" break; - case 500: -#line 1733 "dhcp6_parser.yy" + case 514: +#line 1767 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2784 "dhcp6_parser.cc" +#line 2820 "dhcp6_parser.cc" break; - case 501: -#line 1738 "dhcp6_parser.yy" + case 515: +#line 1772 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2793 "dhcp6_parser.cc" +#line 2829 "dhcp6_parser.cc" break; - case 502: -#line 1743 "dhcp6_parser.yy" + case 516: +#line 1777 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2804 "dhcp6_parser.cc" +#line 2840 "dhcp6_parser.cc" break; - case 503: -#line 1748 "dhcp6_parser.yy" + case 517: +#line 1782 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2813 "dhcp6_parser.cc" +#line 2849 "dhcp6_parser.cc" break; - case 504: -#line 1753 "dhcp6_parser.yy" + case 518: +#line 1787 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2821 "dhcp6_parser.cc" +#line 2857 "dhcp6_parser.cc" break; - case 505: -#line 1755 "dhcp6_parser.yy" + case 519: +#line 1789 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2831 "dhcp6_parser.cc" +#line 2867 "dhcp6_parser.cc" break; - case 506: -#line 1761 "dhcp6_parser.yy" + case 520: +#line 1795 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2839 "dhcp6_parser.cc" +#line 2875 "dhcp6_parser.cc" break; - case 507: -#line 1763 "dhcp6_parser.yy" + case 521: +#line 1797 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 2849 "dhcp6_parser.cc" +#line 2885 "dhcp6_parser.cc" break; - case 508: -#line 1769 "dhcp6_parser.yy" + case 522: +#line 1803 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2857 "dhcp6_parser.cc" +#line 2893 "dhcp6_parser.cc" break; - case 509: -#line 1771 "dhcp6_parser.yy" + case 523: +#line 1805 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2867 "dhcp6_parser.cc" +#line 2903 "dhcp6_parser.cc" break; - case 510: -#line 1777 "dhcp6_parser.yy" + case 524: +#line 1811 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2875 "dhcp6_parser.cc" +#line 2911 "dhcp6_parser.cc" break; - case 511: -#line 1779 "dhcp6_parser.yy" + case 525: +#line 1813 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 2885 "dhcp6_parser.cc" +#line 2921 "dhcp6_parser.cc" break; - case 512: -#line 1785 "dhcp6_parser.yy" + case 526: +#line 1819 "dhcp6_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2896 "dhcp6_parser.cc" +#line 2932 "dhcp6_parser.cc" break; - case 513: -#line 1790 "dhcp6_parser.yy" + case 527: +#line 1824 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2905 "dhcp6_parser.cc" +#line 2941 "dhcp6_parser.cc" break; - case 514: -#line 1798 "dhcp6_parser.yy" + case 528: +#line 1832 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2916 "dhcp6_parser.cc" +#line 2952 "dhcp6_parser.cc" break; - case 515: -#line 1803 "dhcp6_parser.yy" + case 529: +#line 1837 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2925 "dhcp6_parser.cc" +#line 2961 "dhcp6_parser.cc" break; - case 518: -#line 1812 "dhcp6_parser.yy" + case 532: +#line 1846 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2933 "dhcp6_parser.cc" +#line 2969 "dhcp6_parser.cc" break; - case 519: -#line 1814 "dhcp6_parser.yy" + case 533: +#line 1848 "dhcp6_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 2943 "dhcp6_parser.cc" +#line 2979 "dhcp6_parser.cc" break; - case 520: -#line 1823 "dhcp6_parser.yy" + case 534: +#line 1857 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2954 "dhcp6_parser.cc" +#line 2990 "dhcp6_parser.cc" break; - case 521: -#line 1828 "dhcp6_parser.yy" + case 535: +#line 1862 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2963 "dhcp6_parser.cc" +#line 2999 "dhcp6_parser.cc" break; - case 524: -#line 1837 "dhcp6_parser.yy" + case 538: +#line 1871 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2973 "dhcp6_parser.cc" +#line 3009 "dhcp6_parser.cc" break; - case 525: -#line 1841 "dhcp6_parser.yy" + case 539: +#line 1875 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2983 "dhcp6_parser.cc" +#line 3019 "dhcp6_parser.cc" break; - case 538: -#line 1866 "dhcp6_parser.yy" + case 552: +#line 1900 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 2991 "dhcp6_parser.cc" +#line 3027 "dhcp6_parser.cc" break; - case 539: -#line 1868 "dhcp6_parser.yy" + case 553: +#line 1902 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3001 "dhcp6_parser.cc" +#line 3037 "dhcp6_parser.cc" break; - case 540: -#line 1874 "dhcp6_parser.yy" + case 554: +#line 1908 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3010 "dhcp6_parser.cc" +#line 3046 "dhcp6_parser.cc" break; - case 541: -#line 1882 "dhcp6_parser.yy" + case 555: +#line 1916 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3021 "dhcp6_parser.cc" +#line 3057 "dhcp6_parser.cc" break; - case 542: -#line 1887 "dhcp6_parser.yy" + case 556: +#line 1921 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3032 "dhcp6_parser.cc" +#line 3068 "dhcp6_parser.cc" break; - case 554: -#line 1909 "dhcp6_parser.yy" + case 568: +#line 1943 "dhcp6_parser.yy" { ctx.enter(ctx.DUID_TYPE); } -#line 3040 "dhcp6_parser.cc" +#line 3076 "dhcp6_parser.cc" break; - case 555: -#line 1911 "dhcp6_parser.yy" + case 569: +#line 1945 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3049 "dhcp6_parser.cc" +#line 3085 "dhcp6_parser.cc" break; - case 556: -#line 1916 "dhcp6_parser.yy" + case 570: +#line 1950 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3055 "dhcp6_parser.cc" +#line 3091 "dhcp6_parser.cc" break; - case 557: -#line 1917 "dhcp6_parser.yy" + case 571: +#line 1951 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3061 "dhcp6_parser.cc" +#line 3097 "dhcp6_parser.cc" break; - case 558: -#line 1918 "dhcp6_parser.yy" + case 572: +#line 1952 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3067 "dhcp6_parser.cc" +#line 3103 "dhcp6_parser.cc" break; - case 559: -#line 1921 "dhcp6_parser.yy" + case 573: +#line 1955 "dhcp6_parser.yy" { ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3076 "dhcp6_parser.cc" +#line 3112 "dhcp6_parser.cc" break; - case 560: -#line 1926 "dhcp6_parser.yy" + case 574: +#line 1960 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3084 "dhcp6_parser.cc" +#line 3120 "dhcp6_parser.cc" break; - case 561: -#line 1928 "dhcp6_parser.yy" + case 575: +#line 1962 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3094 "dhcp6_parser.cc" +#line 3130 "dhcp6_parser.cc" break; - case 562: -#line 1934 "dhcp6_parser.yy" + case 576: +#line 1968 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3103 "dhcp6_parser.cc" +#line 3139 "dhcp6_parser.cc" break; - case 563: -#line 1939 "dhcp6_parser.yy" + case 577: +#line 1973 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3112 "dhcp6_parser.cc" +#line 3148 "dhcp6_parser.cc" break; - case 564: -#line 1946 "dhcp6_parser.yy" + case 578: +#line 1980 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3121 "dhcp6_parser.cc" +#line 3157 "dhcp6_parser.cc" break; - case 565: -#line 1953 "dhcp6_parser.yy" + case 579: +#line 1987 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3132 "dhcp6_parser.cc" +#line 3168 "dhcp6_parser.cc" break; - case 566: -#line 1958 "dhcp6_parser.yy" + case 580: +#line 1992 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3141 "dhcp6_parser.cc" +#line 3177 "dhcp6_parser.cc" break; - case 574: -#line 1974 "dhcp6_parser.yy" + case 588: +#line 2008 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3149 "dhcp6_parser.cc" +#line 3185 "dhcp6_parser.cc" break; - case 575: -#line 1976 "dhcp6_parser.yy" + case 589: +#line 2010 "dhcp6_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3159 "dhcp6_parser.cc" +#line 3195 "dhcp6_parser.cc" break; - case 576: -#line 1982 "dhcp6_parser.yy" + case 590: +#line 2016 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3167 "dhcp6_parser.cc" +#line 3203 "dhcp6_parser.cc" break; - case 577: -#line 1984 "dhcp6_parser.yy" + case 591: +#line 2018 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3177 "dhcp6_parser.cc" +#line 3213 "dhcp6_parser.cc" break; - case 578: -#line 1992 "dhcp6_parser.yy" + case 592: +#line 2026 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3185 "dhcp6_parser.cc" +#line 3221 "dhcp6_parser.cc" break; - case 579: -#line 1994 "dhcp6_parser.yy" + case 593: +#line 2028 "dhcp6_parser.yy" { ElementPtr qc = yystack_[0].value.as < ElementPtr > (); ctx.stack_.back()->set("dhcp-queue-control", qc); @@ -3221,626 +3257,626 @@ namespace isc { namespace dhcp { ctx.leave(); } -#line 3225 "dhcp6_parser.cc" +#line 3261 "dhcp6_parser.cc" break; - case 580: -#line 2032 "dhcp6_parser.yy" + case 594: +#line 2066 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3236 "dhcp6_parser.cc" +#line 3272 "dhcp6_parser.cc" break; - case 581: -#line 2037 "dhcp6_parser.yy" + case 595: +#line 2071 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3247 "dhcp6_parser.cc" +#line 3283 "dhcp6_parser.cc" break; - case 582: -#line 2044 "dhcp6_parser.yy" + case 596: +#line 2078 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3257 "dhcp6_parser.cc" +#line 3293 "dhcp6_parser.cc" break; - case 583: -#line 2048 "dhcp6_parser.yy" + case 597: +#line 2082 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3267 "dhcp6_parser.cc" +#line 3303 "dhcp6_parser.cc" break; - case 604: -#line 2078 "dhcp6_parser.yy" + case 618: +#line 2112 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3276 "dhcp6_parser.cc" +#line 3312 "dhcp6_parser.cc" break; - case 605: -#line 2083 "dhcp6_parser.yy" + case 619: +#line 2117 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3284 "dhcp6_parser.cc" +#line 3320 "dhcp6_parser.cc" break; - case 606: -#line 2085 "dhcp6_parser.yy" + case 620: +#line 2119 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3294 "dhcp6_parser.cc" +#line 3330 "dhcp6_parser.cc" break; - case 607: -#line 2091 "dhcp6_parser.yy" + case 621: +#line 2125 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3302 "dhcp6_parser.cc" +#line 3338 "dhcp6_parser.cc" break; - case 608: -#line 2093 "dhcp6_parser.yy" + case 622: +#line 2127 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 3312 "dhcp6_parser.cc" +#line 3348 "dhcp6_parser.cc" break; - case 609: -#line 2099 "dhcp6_parser.yy" + case 623: +#line 2133 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3321 "dhcp6_parser.cc" +#line 3357 "dhcp6_parser.cc" break; - case 610: -#line 2104 "dhcp6_parser.yy" + case 624: +#line 2138 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3329 "dhcp6_parser.cc" +#line 3365 "dhcp6_parser.cc" break; - case 611: -#line 2106 "dhcp6_parser.yy" + case 625: +#line 2140 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 3339 "dhcp6_parser.cc" +#line 3375 "dhcp6_parser.cc" break; - case 612: -#line 2112 "dhcp6_parser.yy" + case 626: +#line 2146 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3348 "dhcp6_parser.cc" +#line 3384 "dhcp6_parser.cc" break; - case 613: -#line 2117 "dhcp6_parser.yy" + case 627: +#line 2151 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3357 "dhcp6_parser.cc" +#line 3393 "dhcp6_parser.cc" break; - case 614: -#line 2122 "dhcp6_parser.yy" + case 628: +#line 2156 "dhcp6_parser.yy" { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3365 "dhcp6_parser.cc" +#line 3401 "dhcp6_parser.cc" break; - case 615: -#line 2124 "dhcp6_parser.yy" + case 629: +#line 2158 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3374 "dhcp6_parser.cc" +#line 3410 "dhcp6_parser.cc" break; - case 616: -#line 2130 "dhcp6_parser.yy" + case 630: +#line 2164 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3380 "dhcp6_parser.cc" +#line 3416 "dhcp6_parser.cc" break; - case 617: -#line 2131 "dhcp6_parser.yy" + case 631: +#line 2165 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3386 "dhcp6_parser.cc" +#line 3422 "dhcp6_parser.cc" break; - case 618: -#line 2134 "dhcp6_parser.yy" + case 632: +#line 2168 "dhcp6_parser.yy" { ctx.enter(ctx.NCR_FORMAT); } -#line 3394 "dhcp6_parser.cc" +#line 3430 "dhcp6_parser.cc" break; - case 619: -#line 2136 "dhcp6_parser.yy" + case 633: +#line 2170 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3404 "dhcp6_parser.cc" +#line 3440 "dhcp6_parser.cc" break; - case 620: -#line 2142 "dhcp6_parser.yy" + case 634: +#line 2176 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3413 "dhcp6_parser.cc" +#line 3449 "dhcp6_parser.cc" break; - case 621: -#line 2147 "dhcp6_parser.yy" + case 635: +#line 2181 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3422 "dhcp6_parser.cc" +#line 3458 "dhcp6_parser.cc" break; - case 622: -#line 2152 "dhcp6_parser.yy" + case 636: +#line 2186 "dhcp6_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3430 "dhcp6_parser.cc" +#line 3466 "dhcp6_parser.cc" break; - case 623: -#line 2154 "dhcp6_parser.yy" + case 637: +#line 2188 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3439 "dhcp6_parser.cc" +#line 3475 "dhcp6_parser.cc" break; - case 624: -#line 2160 "dhcp6_parser.yy" + case 638: +#line 2194 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3447 "dhcp6_parser.cc" +#line 3483 "dhcp6_parser.cc" break; - case 625: -#line 2163 "dhcp6_parser.yy" + case 639: +#line 2197 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3455 "dhcp6_parser.cc" +#line 3491 "dhcp6_parser.cc" break; - case 626: -#line 2166 "dhcp6_parser.yy" + case 640: +#line 2200 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3463 "dhcp6_parser.cc" +#line 3499 "dhcp6_parser.cc" break; - case 627: -#line 2169 "dhcp6_parser.yy" + case 641: +#line 2203 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3471 "dhcp6_parser.cc" +#line 3507 "dhcp6_parser.cc" break; - case 628: -#line 2172 "dhcp6_parser.yy" + case 642: +#line 2206 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3480 "dhcp6_parser.cc" +#line 3516 "dhcp6_parser.cc" break; - case 629: -#line 2178 "dhcp6_parser.yy" + case 643: +#line 2212 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3488 "dhcp6_parser.cc" +#line 3524 "dhcp6_parser.cc" break; - case 630: -#line 2180 "dhcp6_parser.yy" + case 644: +#line 2214 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3498 "dhcp6_parser.cc" +#line 3534 "dhcp6_parser.cc" break; - case 631: -#line 2186 "dhcp6_parser.yy" + case 645: +#line 2220 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3506 "dhcp6_parser.cc" +#line 3542 "dhcp6_parser.cc" break; - case 632: -#line 2188 "dhcp6_parser.yy" + case 646: +#line 2222 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3516 "dhcp6_parser.cc" +#line 3552 "dhcp6_parser.cc" break; - case 633: -#line 2194 "dhcp6_parser.yy" + case 647: +#line 2228 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3524 "dhcp6_parser.cc" +#line 3560 "dhcp6_parser.cc" break; - case 634: -#line 2196 "dhcp6_parser.yy" + case 648: +#line 2230 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3534 "dhcp6_parser.cc" +#line 3570 "dhcp6_parser.cc" break; - case 635: -#line 2204 "dhcp6_parser.yy" + case 649: +#line 2238 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3542 "dhcp6_parser.cc" +#line 3578 "dhcp6_parser.cc" break; - case 636: -#line 2206 "dhcp6_parser.yy" + case 650: +#line 2240 "dhcp6_parser.yy" { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3551 "dhcp6_parser.cc" +#line 3587 "dhcp6_parser.cc" break; - case 637: -#line 2211 "dhcp6_parser.yy" + case 651: +#line 2245 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3559 "dhcp6_parser.cc" +#line 3595 "dhcp6_parser.cc" break; - case 638: -#line 2213 "dhcp6_parser.yy" + case 652: +#line 2247 "dhcp6_parser.yy" { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3568 "dhcp6_parser.cc" +#line 3604 "dhcp6_parser.cc" break; - case 639: -#line 2218 "dhcp6_parser.yy" + case 653: +#line 2252 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3576 "dhcp6_parser.cc" +#line 3612 "dhcp6_parser.cc" break; - case 640: -#line 2220 "dhcp6_parser.yy" + case 654: +#line 2254 "dhcp6_parser.yy" { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3585 "dhcp6_parser.cc" +#line 3621 "dhcp6_parser.cc" break; - case 641: -#line 2227 "dhcp6_parser.yy" + case 655: +#line 2261 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3596 "dhcp6_parser.cc" +#line 3632 "dhcp6_parser.cc" break; - case 642: -#line 2232 "dhcp6_parser.yy" + case 656: +#line 2266 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3606 "dhcp6_parser.cc" +#line 3642 "dhcp6_parser.cc" break; - case 643: -#line 2238 "dhcp6_parser.yy" + case 657: +#line 2272 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3616 "dhcp6_parser.cc" +#line 3652 "dhcp6_parser.cc" break; - case 644: -#line 2242 "dhcp6_parser.yy" + case 658: +#line 2276 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 3625 "dhcp6_parser.cc" +#line 3661 "dhcp6_parser.cc" break; - case 649: -#line 2257 "dhcp6_parser.yy" + case 663: +#line 2291 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3636 "dhcp6_parser.cc" +#line 3672 "dhcp6_parser.cc" break; - case 650: -#line 2262 "dhcp6_parser.yy" + case 664: +#line 2296 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3645 "dhcp6_parser.cc" +#line 3681 "dhcp6_parser.cc" break; - case 651: -#line 2267 "dhcp6_parser.yy" + case 665: +#line 2301 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 3654 "dhcp6_parser.cc" +#line 3690 "dhcp6_parser.cc" break; - case 652: -#line 2277 "dhcp6_parser.yy" + case 666: +#line 2311 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3665 "dhcp6_parser.cc" +#line 3701 "dhcp6_parser.cc" break; - case 653: -#line 2282 "dhcp6_parser.yy" + case 667: +#line 2316 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3674 "dhcp6_parser.cc" +#line 3710 "dhcp6_parser.cc" break; - case 654: -#line 2287 "dhcp6_parser.yy" + case 668: +#line 2321 "dhcp6_parser.yy" { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3684 "dhcp6_parser.cc" +#line 3720 "dhcp6_parser.cc" break; - case 655: -#line 2291 "dhcp6_parser.yy" + case 669: +#line 2325 "dhcp6_parser.yy" { // parsing completed } -#line 3692 "dhcp6_parser.cc" +#line 3728 "dhcp6_parser.cc" break; - case 659: -#line 2307 "dhcp6_parser.yy" + case 673: +#line 2341 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3703 "dhcp6_parser.cc" +#line 3739 "dhcp6_parser.cc" break; - case 660: -#line 2312 "dhcp6_parser.yy" + case 674: +#line 2346 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3712 "dhcp6_parser.cc" +#line 3748 "dhcp6_parser.cc" break; - case 663: -#line 2324 "dhcp6_parser.yy" + case 677: +#line 2358 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3722 "dhcp6_parser.cc" +#line 3758 "dhcp6_parser.cc" break; - case 664: -#line 2328 "dhcp6_parser.yy" + case 678: +#line 2362 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 3730 "dhcp6_parser.cc" +#line 3766 "dhcp6_parser.cc" break; - case 674: -#line 2345 "dhcp6_parser.yy" + case 688: +#line 2379 "dhcp6_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3739 "dhcp6_parser.cc" +#line 3775 "dhcp6_parser.cc" break; - case 675: -#line 2350 "dhcp6_parser.yy" + case 689: +#line 2384 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3747 "dhcp6_parser.cc" +#line 3783 "dhcp6_parser.cc" break; - case 676: -#line 2352 "dhcp6_parser.yy" + case 690: +#line 2386 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3757 "dhcp6_parser.cc" +#line 3793 "dhcp6_parser.cc" break; - case 677: -#line 2358 "dhcp6_parser.yy" + case 691: +#line 2392 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3768 "dhcp6_parser.cc" +#line 3804 "dhcp6_parser.cc" break; - case 678: -#line 2363 "dhcp6_parser.yy" + case 692: +#line 2397 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3777 "dhcp6_parser.cc" +#line 3813 "dhcp6_parser.cc" break; - case 681: -#line 2372 "dhcp6_parser.yy" + case 695: +#line 2406 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3787 "dhcp6_parser.cc" +#line 3823 "dhcp6_parser.cc" break; - case 682: -#line 2376 "dhcp6_parser.yy" + case 696: +#line 2410 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 3795 "dhcp6_parser.cc" +#line 3831 "dhcp6_parser.cc" break; - case 689: -#line 2390 "dhcp6_parser.yy" + case 703: +#line 2424 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3803 "dhcp6_parser.cc" +#line 3839 "dhcp6_parser.cc" break; - case 690: -#line 2392 "dhcp6_parser.yy" + case 704: +#line 2426 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3813 "dhcp6_parser.cc" +#line 3849 "dhcp6_parser.cc" break; - case 691: -#line 2398 "dhcp6_parser.yy" + case 705: +#line 2432 "dhcp6_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 3822 "dhcp6_parser.cc" +#line 3858 "dhcp6_parser.cc" break; - case 692: -#line 2403 "dhcp6_parser.yy" + case 706: +#line 2437 "dhcp6_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 3831 "dhcp6_parser.cc" +#line 3867 "dhcp6_parser.cc" break; - case 693: -#line 2408 "dhcp6_parser.yy" + case 707: +#line 2442 "dhcp6_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 3840 "dhcp6_parser.cc" +#line 3876 "dhcp6_parser.cc" break; -#line 3844 "dhcp6_parser.cc" +#line 3880 "dhcp6_parser.cc" default: break; @@ -4111,126 +4147,128 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -855; + const short Dhcp6Parser::yypact_ninf_ = -873; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 317, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, 46, 70, 63, 65, - 71, 100, 169, 170, 201, 212, 217, 245, 270, 271, - 280, 298, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, 70, -33, 32, 74, 27, 216, 249, 229, - 377, 149, 76, 398, -10, 391, 105, 138, -855, 252, - 303, 311, 305, 313, -855, -855, -855, -855, -855, 321, - -855, 37, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, 322, 330, 331, 343, 347, 351, - 365, 367, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, 368, - -855, -855, -855, -855, -855, -855, -855, 73, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, 375, -855, - 127, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, 385, 397, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, 133, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, 137, -855, -855, -855, - -855, -855, 407, -855, 428, 438, -855, -855, -855, -855, - -855, -855, 160, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - 346, 378, -855, -855, -855, -855, -855, -855, -855, -855, - 440, -855, -855, 442, -855, -855, -855, 447, -855, -855, - 451, 457, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, 461, 462, -855, -855, -855, - -855, 460, 466, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, 171, -855, -855, -855, 468, - -855, -855, 490, -855, 491, 492, -855, -855, 493, 494, - -855, -855, -855, -855, -855, 172, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, 181, -855, -855, -855, 495, 182, -855, -855, - -855, -855, 70, 70, -855, 323, 497, 498, 499, 500, - 501, -855, 32, -855, 502, 504, 507, 508, 509, 510, - 337, 339, 340, 356, 336, 354, 357, 360, 531, 537, - 538, 539, 544, 545, 546, 547, 548, 549, 551, 552, - 553, 554, 555, 556, 557, 384, 559, 562, 563, 567, - 570, 572, 74, -855, 573, 399, 27, -855, 574, 576, - 577, 578, 579, 406, 405, 582, 583, 584, 216, -855, - 588, 249, -855, 590, 418, 593, 420, 421, 229, -855, - 596, 597, 598, 599, 600, 601, 602, -855, 377, -855, - 603, 604, 431, 606, 607, 608, 433, -855, 76, 612, - 439, 441, -855, 398, 614, 616, -18, -855, 443, 618, - 620, 448, 621, 449, 450, 625, 626, 452, 453, 630, - 631, 391, -855, 105, -855, 632, 459, 138, -855, -855, - -855, 634, 633, 635, 70, 70, 70, -855, 464, 636, - 637, 638, 639, 642, -855, -855, -855, -855, -855, -855, - -855, -855, 471, 644, 645, 647, 646, 477, 33, 650, - 651, 652, 653, 654, 655, 657, 658, 659, 660, -855, - 661, 646, 662, 482, 487, 665, -855, 666, -855, -855, - 667, 668, 488, 503, 505, -855, -855, 666, 506, 669, - -855, 511, -855, 512, -855, 513, -855, -855, -855, 666, - 666, 666, 514, 515, 516, 517, -855, 518, 519, -855, - 520, 521, 522, -855, -855, 523, -855, -855, -855, 524, - 70, -855, -855, 525, 526, -855, 527, -855, -855, 24, - 496, -855, -855, 26, 528, -855, -855, 670, -855, -855, - 70, 74, 105, -855, -855, -855, -855, 138, 27, 200, - 200, 671, -855, 672, 674, 677, -855, -855, -855, -855, - -855, -855, -855, -855, 678, -27, 70, 324, 585, 679, - 680, 699, 163, 36, 18, -855, 391, -855, -855, 700, - -855, -855, 701, 702, -855, -855, -855, -855, -855, -44, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, 671, -855, 191, 195, 202, 208, -855, -855, - -855, -855, 673, 706, 707, 708, 709, -855, 710, 711, - -855, -855, -855, 712, 713, 714, -855, 276, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, 278, -855, - 715, 716, -855, -855, 717, 719, -855, -855, 718, 722, - -855, -855, 720, 724, -855, -855, 723, 725, -855, -855, - -855, 126, -855, -855, -855, 726, -855, -855, -855, 180, - -855, -855, -855, -855, 301, -855, -855, -855, 214, -855, - -855, 727, 728, -855, -855, 729, 731, -855, 732, 733, - 734, 735, 736, 737, 309, -855, -855, -855, -855, -855, - -855, -855, -855, -855, 738, 739, 740, -855, -855, -855, - -855, 316, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, 334, -855, -855, -855, 338, -855, 251, - -855, 543, -855, 741, 742, -855, -855, 743, 745, -855, - -855, -855, 744, -855, 747, -855, -855, -855, -855, 746, - 750, 751, 752, 568, 550, 580, 571, 581, 753, 586, - 587, 756, 757, 758, 589, 591, 592, 200, -855, -855, - 200, -855, 671, 216, -855, 672, 76, -855, 674, 398, - -855, 677, 284, -855, 678, -27, -855, -855, 324, -855, - 759, 585, -855, 10, 679, -855, 377, -855, 680, -10, - -855, 699, 595, 605, 609, 610, 611, 613, 163, -855, - 762, 764, 615, 617, 619, 36, -855, 766, 767, 18, - -855, -855, 355, 700, -855, -855, 768, 772, 249, -855, - 701, 229, -855, 702, 773, -855, -855, 221, 623, 624, - 627, -855, -855, -855, -855, -855, 629, -855, -855, 640, - 641, 675, -855, -855, -855, -855, 341, -855, 342, -855, - 770, -855, 771, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - 350, -855, -855, -855, -855, -855, -855, -855, -855, 686, - -855, -855, 776, -855, -855, -855, -855, -855, 774, 778, - -855, -855, -855, -855, -855, 777, -855, 358, -855, -855, - -855, -855, -855, -855, -855, -855, 318, 697, -855, -855, - -855, -855, 703, 704, -855, -855, 780, -855, -855, -855, - -855, -855, 362, -855, -855, -855, -855, -855, -855, 705, - 379, -855, 388, -855, 721, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, 284, -855, -855, 782, 648, -855, 10, -855, -855, - -855, -855, -855, -855, -855, -855, -855, 786, 643, 788, - 355, -855, -855, -855, -855, -855, -855, 730, -855, -855, - 789, -855, 748, -855, -855, 769, -855, -855, 263, -855, - -52, 769, -855, -855, 792, 794, 803, 400, -855, -855, - -855, -855, -855, -855, 805, 749, 656, 754, -52, -855, - 760, -855, -855, -855, -855, -855 + 486, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, 38, 36, 33, 47, + 49, 62, 114, 118, 149, 161, 162, 175, 195, 199, + 203, 205, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 36, -133, 24, 181, 42, 448, 81, 72, + 59, 31, 61, 261, -57, 214, 40, 127, -873, 235, + 253, 299, 257, 281, -873, -873, -873, -873, -873, 313, + -873, 41, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, 338, 339, 355, 357, 367, 368, + 369, 371, 377, 383, 387, 395, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, 404, -873, -873, -873, -873, -873, 84, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 405, -873, 172, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, 406, 409, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 178, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, 182, -873, -873, -873, -873, -873, + 411, -873, 414, 417, -873, -873, -873, -873, -873, -873, + 251, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, 298, 382, + -873, -873, -873, -873, -873, -873, -873, -873, 333, -873, + -873, 418, -873, -873, -873, 428, -873, -873, 393, 400, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, 432, 433, -873, -873, -873, -873, 435, + 437, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, 273, -873, -873, -873, 440, -873, -873, + 444, -873, 449, 450, -873, -873, 452, 454, -873, -873, + -873, -873, -873, -873, -873, 279, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 290, -873, -873, -873, 456, 292, -873, -873, + -873, -873, 36, 36, -873, 271, 457, 462, 465, 467, + 469, -873, 24, -873, 470, 472, 473, 474, 480, 481, + 259, 304, 305, 306, 307, 320, 321, 322, 328, 334, + 340, 329, 501, 503, 504, 505, 506, 515, 516, 517, + 518, 528, 529, 530, 531, 532, 533, 534, 535, 358, + 537, 538, 540, 541, 181, -873, 544, 365, 42, -873, + 546, 547, 548, 549, 552, 375, 374, 555, 556, 557, + 448, -873, 559, 81, -873, 560, 384, 561, 385, 386, + 72, -873, 566, 567, 568, 569, 570, 571, 572, -873, + 59, -873, 573, 574, 401, 575, 577, 578, 402, -873, + 61, 580, 407, 408, -873, 261, 581, 585, 112, -873, + 410, 589, 591, 415, 594, 420, 421, 595, 596, 412, + 423, 600, 605, 606, 607, 214, -873, 40, -873, 608, + 431, 127, -873, -873, -873, 610, 609, 611, 36, 36, + 36, -873, 434, 612, 613, 615, 617, 620, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + 436, 621, 622, 623, 624, 451, 341, 625, 628, 629, + 662, 663, 668, 671, 672, 673, 674, -873, 675, 624, + 676, 679, -873, 680, -873, -873, 681, 683, 497, 498, + 508, -873, -873, 680, 510, 685, -873, 512, -873, 513, + -873, 514, -873, -873, -873, 680, 680, 680, 519, 520, + 521, 522, -873, 523, 524, -873, 525, 526, 527, -873, + -873, 536, -873, -873, -873, 539, 36, -873, -873, 542, + 543, -873, 545, -873, -873, 170, 550, -873, -873, 23, + 551, 553, 554, -873, -873, 691, -873, -873, 36, 181, + 40, -873, -873, -873, -873, 127, 42, 74, 74, 692, + -873, 702, 703, 704, -873, -873, -873, -873, -873, -873, + -873, -873, 705, -52, 36, 29, 626, 706, 707, 708, + 135, 121, 132, -873, 214, 709, -873, -873, 711, 714, + -873, -873, -873, -873, -873, -65, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + 692, -873, 293, 301, 302, 311, -873, -873, -873, -873, + 718, 721, 723, 724, 725, -873, 726, 727, -873, -873, + -873, 729, 732, 733, -873, 323, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, 324, -873, 734, 735, + -873, -873, 736, 738, -873, -873, 737, 741, -873, -873, + 739, 743, -873, -873, 742, 744, -873, -873, -873, 93, + -873, -873, -873, 745, -873, -873, -873, 188, -873, -873, + -873, -873, 325, -873, -873, -873, 260, -873, -873, 746, + 747, -873, -873, 748, 750, -873, 751, 752, 753, 754, + 755, 756, 326, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 757, 758, 759, -873, -873, -873, -873, 327, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, 336, -873, -873, -873, 337, -873, 280, -873, 558, + -873, 760, 761, -873, -873, 762, 764, -873, -873, -873, + 763, -873, 766, -873, -873, -873, -873, 765, 770, 771, + 772, 583, 565, 588, 593, 597, 774, 598, 599, 778, + 779, 780, 603, 604, 614, 74, -873, -873, 74, -873, + 692, 448, -873, 702, 61, -873, 703, 261, -873, 704, + 592, -873, 705, -52, -873, -873, 29, -873, 783, 626, + -873, 107, 706, -873, 59, -873, 707, -57, -873, 708, + 618, 619, 627, 630, 631, 632, 135, -873, 784, 785, + 633, 634, 636, 121, -873, 786, 787, 132, -873, -873, + -4, 709, -873, -873, 788, 789, 81, -873, 711, 72, + -873, 714, 791, -873, -873, 458, 616, 638, 641, -873, + -873, -873, -873, -873, 643, -873, -873, 644, 646, 651, + -873, -873, -873, -873, 360, -873, 362, -873, 794, -873, + 795, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 366, -873, -873, -873, -873, -873, -873, -873, + -873, 653, -873, -873, 792, -873, -873, -873, -873, -873, + 796, 790, -873, -873, -873, -873, -873, 797, -873, 380, + -873, -873, -873, -873, -873, -873, -873, -873, -40, 655, + -873, -873, -873, -873, 658, 664, -873, -873, 802, -873, + -873, -873, -873, -873, 381, -873, -873, -873, -873, -873, + -873, 665, 390, -873, 397, -873, 666, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, 592, -873, -873, 803, 684, -873, 107, + -873, -873, -873, -873, -873, -873, -873, -873, -873, 804, + 667, 806, -4, -873, -873, -873, -873, -873, -873, 669, + -873, -873, 847, -873, 686, -873, -873, 849, -873, -873, + 291, -873, 117, 849, -873, -873, 807, 853, 860, 399, + -873, -873, -873, -873, -873, -873, 869, 694, 713, 716, + 117, -873, 710, -873, -873, -873, -873, -873 }; const unsigned short @@ -4240,160 +4278,163 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 47, 40, 36, 35, 32, 33, 34, - 39, 3, 37, 38, 60, 5, 72, 7, 129, 9, - 276, 11, 428, 13, 453, 15, 483, 17, 353, 19, - 361, 21, 398, 23, 241, 25, 582, 27, 654, 29, - 643, 31, 49, 43, 0, 0, 0, 0, 0, 0, - 485, 0, 363, 400, 0, 0, 0, 0, 51, 0, - 50, 0, 0, 44, 70, 652, 635, 637, 639, 0, - 69, 0, 62, 64, 66, 67, 68, 65, 115, 641, - 127, 141, 143, 145, 0, 0, 0, 0, 0, 0, - 0, 0, 125, 268, 351, 390, 441, 443, 313, 321, - 214, 231, 222, 207, 520, 475, 233, 252, 541, 0, - 565, 578, 580, 631, 633, 659, 114, 0, 74, 76, - 77, 78, 79, 80, 108, 109, 110, 81, 106, 84, - 85, 86, 87, 103, 88, 90, 89, 94, 95, 82, - 107, 83, 92, 93, 101, 102, 104, 91, 96, 97, - 98, 99, 100, 112, 113, 105, 111, 138, 0, 137, - 0, 131, 133, 134, 135, 136, 420, 445, 303, 305, - 307, 0, 0, 311, 309, 514, 302, 280, 281, 282, - 283, 299, 300, 301, 0, 278, 287, 288, 289, 292, - 293, 295, 290, 291, 284, 285, 297, 298, 286, 294, - 296, 439, 438, 434, 435, 433, 0, 430, 432, 436, - 437, 468, 0, 471, 0, 0, 467, 461, 462, 460, - 465, 466, 0, 455, 457, 458, 463, 464, 459, 512, - 500, 502, 504, 506, 508, 510, 499, 496, 497, 498, - 0, 486, 487, 491, 492, 489, 493, 494, 495, 490, - 0, 380, 188, 0, 384, 382, 387, 0, 376, 377, - 0, 364, 365, 367, 379, 368, 369, 370, 386, 371, - 372, 373, 374, 375, 414, 0, 0, 412, 413, 416, - 417, 0, 401, 402, 404, 405, 406, 407, 408, 409, - 410, 411, 248, 250, 245, 0, 243, 246, 247, 0, - 605, 607, 0, 610, 0, 0, 614, 618, 0, 0, - 622, 629, 603, 601, 602, 0, 584, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 0, 656, 658, 649, 0, 0, 645, 647, - 648, 48, 0, 0, 41, 0, 0, 0, 0, 0, + 39, 3, 37, 38, 60, 5, 72, 7, 135, 9, + 282, 11, 442, 13, 467, 15, 497, 17, 367, 19, + 375, 21, 412, 23, 247, 25, 596, 27, 668, 29, + 657, 31, 49, 43, 0, 0, 0, 0, 0, 0, + 499, 0, 377, 414, 0, 0, 0, 0, 51, 0, + 50, 0, 0, 44, 70, 666, 649, 651, 653, 0, + 69, 0, 62, 64, 66, 67, 68, 65, 117, 655, + 133, 147, 149, 151, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 274, 365, 404, + 455, 457, 323, 331, 220, 237, 228, 213, 534, 489, + 239, 258, 555, 0, 579, 592, 594, 673, 116, 0, + 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 112, 113, 114, 85, 110, 88, 89, 90, 91, 107, + 92, 94, 93, 98, 99, 86, 111, 87, 96, 97, + 105, 106, 108, 95, 100, 101, 102, 103, 104, 109, + 115, 144, 0, 143, 0, 137, 139, 140, 141, 142, + 434, 459, 313, 315, 317, 0, 0, 321, 319, 528, + 312, 286, 287, 288, 289, 290, 291, 292, 293, 309, + 310, 311, 0, 284, 297, 298, 299, 302, 303, 305, + 300, 301, 294, 295, 307, 308, 296, 304, 306, 453, + 452, 448, 449, 447, 0, 444, 446, 450, 451, 482, + 0, 485, 0, 0, 481, 475, 476, 474, 479, 480, + 0, 469, 471, 472, 477, 478, 473, 526, 514, 516, + 518, 520, 522, 524, 513, 510, 511, 512, 0, 500, + 501, 505, 506, 503, 507, 508, 509, 504, 0, 394, + 194, 0, 398, 396, 401, 0, 390, 391, 0, 378, + 379, 381, 393, 382, 383, 384, 400, 385, 386, 387, + 388, 389, 428, 0, 0, 426, 427, 430, 431, 0, + 415, 416, 418, 419, 420, 421, 422, 423, 424, 425, + 254, 256, 251, 0, 249, 252, 253, 0, 619, 621, + 0, 624, 0, 0, 628, 632, 0, 0, 636, 643, + 645, 647, 617, 615, 616, 0, 598, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 0, 670, 672, 663, 0, 0, 659, 661, + 662, 48, 0, 0, 41, 0, 0, 0, 0, 0, 0, 59, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 73, 0, 0, 0, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 0, 0, 429, 0, 0, 0, 0, 0, 0, 454, - 0, 0, 0, 0, 0, 0, 0, 484, 0, 354, - 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, - 0, 0, 399, 0, 0, 0, 0, 242, 0, 0, + 0, 0, 0, 0, 0, 73, 0, 0, 0, 136, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 283, 0, 0, 443, 0, 0, 0, 0, 0, + 0, 468, 0, 0, 0, 0, 0, 0, 0, 498, + 0, 368, 0, 0, 0, 0, 0, 0, 0, 376, + 0, 0, 0, 0, 413, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 583, 0, 655, 0, 0, 0, 644, 52, - 45, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 117, 118, 119, 120, 121, 122, - 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, - 0, 0, 0, 0, 0, 0, 75, 0, 140, 132, - 0, 0, 0, 0, 0, 319, 320, 0, 0, 0, - 279, 0, 431, 0, 470, 0, 473, 474, 456, 0, - 0, 0, 0, 0, 0, 0, 488, 0, 0, 378, - 0, 0, 0, 389, 366, 0, 418, 419, 403, 0, - 0, 244, 604, 0, 0, 609, 0, 612, 613, 0, - 0, 620, 621, 0, 0, 585, 657, 0, 651, 646, - 0, 0, 0, 636, 638, 640, 116, 0, 0, 0, - 0, 147, 126, 270, 355, 392, 42, 442, 444, 315, - 316, 317, 318, 314, 323, 0, 49, 0, 0, 0, - 477, 235, 0, 0, 0, 579, 0, 632, 634, 0, - 53, 139, 422, 447, 304, 306, 308, 312, 310, 0, - 440, 469, 472, 513, 501, 503, 505, 507, 509, 511, - 381, 189, 385, 383, 388, 415, 249, 251, 606, 608, - 611, 616, 617, 615, 619, 624, 625, 626, 627, 628, - 623, 630, 147, 46, 0, 0, 0, 0, 175, 181, - 183, 185, 0, 0, 0, 0, 0, 198, 0, 0, - 201, 203, 205, 0, 0, 0, 174, 0, 153, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 167, - 168, 169, 170, 165, 166, 171, 172, 173, 0, 151, - 0, 148, 149, 274, 0, 271, 272, 359, 0, 356, - 357, 396, 0, 393, 394, 327, 0, 324, 325, 220, - 221, 0, 216, 218, 219, 0, 229, 230, 226, 0, - 224, 227, 228, 212, 0, 209, 211, 524, 0, 522, - 481, 0, 478, 479, 239, 0, 236, 237, 0, 0, - 0, 0, 0, 0, 0, 254, 256, 257, 258, 259, - 260, 261, 554, 560, 0, 0, 0, 553, 550, 551, - 552, 0, 543, 545, 548, 546, 547, 549, 574, 576, - 573, 571, 572, 0, 567, 569, 570, 0, 663, 0, - 661, 55, 426, 0, 423, 424, 451, 0, 448, 449, - 518, 517, 0, 516, 0, 71, 653, 642, 128, 0, + 0, 0, 0, 0, 0, 0, 597, 0, 669, 0, + 0, 0, 658, 52, 45, 0, 0, 0, 0, 0, + 0, 63, 0, 0, 0, 0, 0, 0, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 142, 144, - 0, 146, 0, 0, 269, 0, 363, 352, 0, 400, - 391, 0, 0, 322, 0, 0, 215, 232, 0, 223, - 0, 0, 208, 526, 0, 521, 485, 476, 0, 0, - 234, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 0, 0, 0, 0, 0, 0, 542, 0, 0, 0, - 566, 581, 0, 0, 660, 57, 0, 56, 0, 421, - 0, 0, 446, 0, 0, 515, 650, 0, 0, 0, - 0, 187, 190, 191, 192, 193, 0, 200, 194, 0, - 0, 0, 195, 196, 197, 154, 0, 150, 0, 273, - 0, 358, 0, 395, 350, 342, 344, 335, 336, 347, - 348, 349, 331, 332, 333, 334, 340, 341, 339, 343, - 0, 329, 337, 345, 346, 338, 326, 217, 225, 0, - 210, 538, 0, 536, 537, 533, 534, 535, 0, 527, - 528, 530, 531, 532, 523, 0, 480, 0, 238, 262, - 263, 264, 265, 266, 267, 255, 0, 0, 559, 562, - 563, 544, 0, 0, 568, 677, 0, 675, 673, 667, - 671, 672, 0, 665, 669, 670, 668, 662, 54, 0, - 0, 425, 0, 450, 0, 177, 178, 179, 180, 176, - 182, 184, 186, 199, 202, 204, 206, 152, 275, 360, - 397, 0, 328, 213, 0, 0, 525, 0, 482, 240, - 556, 557, 558, 555, 561, 575, 577, 0, 0, 0, - 0, 664, 58, 427, 452, 519, 330, 0, 540, 529, - 0, 674, 0, 666, 539, 0, 676, 681, 0, 679, - 0, 0, 678, 689, 0, 0, 0, 0, 683, 685, - 686, 687, 688, 680, 0, 0, 0, 0, 0, 682, - 0, 691, 692, 693, 684, 690 + 0, 0, 0, 0, 0, 0, 0, 578, 0, 0, + 0, 0, 75, 0, 146, 138, 0, 0, 0, 0, + 0, 329, 330, 0, 0, 0, 285, 0, 445, 0, + 484, 0, 487, 488, 470, 0, 0, 0, 0, 0, + 0, 0, 502, 0, 0, 392, 0, 0, 0, 403, + 380, 0, 432, 433, 417, 0, 0, 250, 618, 0, + 0, 623, 0, 626, 627, 0, 0, 634, 635, 0, + 0, 0, 0, 599, 671, 0, 665, 660, 0, 0, + 0, 650, 652, 654, 118, 0, 0, 0, 0, 153, + 132, 276, 369, 406, 42, 456, 458, 325, 326, 327, + 328, 324, 333, 0, 49, 0, 0, 0, 491, 241, + 0, 0, 0, 593, 0, 0, 53, 145, 436, 461, + 314, 316, 318, 322, 320, 0, 454, 483, 486, 527, + 515, 517, 519, 521, 523, 525, 395, 195, 399, 397, + 402, 429, 255, 257, 620, 622, 625, 630, 631, 629, + 633, 638, 639, 640, 641, 642, 637, 644, 646, 648, + 153, 46, 0, 0, 0, 0, 181, 187, 189, 191, + 0, 0, 0, 0, 0, 204, 0, 0, 207, 209, + 211, 0, 0, 0, 180, 0, 159, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, + 176, 171, 172, 177, 178, 179, 0, 157, 0, 154, + 155, 280, 0, 277, 278, 373, 0, 370, 371, 410, + 0, 407, 408, 337, 0, 334, 335, 226, 227, 0, + 222, 224, 225, 0, 235, 236, 232, 0, 230, 233, + 234, 218, 0, 215, 217, 538, 0, 536, 495, 0, + 492, 493, 245, 0, 242, 243, 0, 0, 0, 0, + 0, 0, 0, 260, 262, 263, 264, 265, 266, 267, + 568, 574, 0, 0, 0, 567, 564, 565, 566, 0, + 557, 559, 562, 560, 561, 563, 588, 590, 587, 585, + 586, 0, 581, 583, 584, 0, 677, 0, 675, 55, + 440, 0, 437, 438, 465, 0, 462, 463, 532, 531, + 0, 530, 0, 71, 667, 656, 134, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 150, 0, 152, + 0, 0, 275, 0, 377, 366, 0, 414, 405, 0, + 0, 332, 0, 0, 221, 238, 0, 229, 0, 0, + 214, 540, 0, 535, 499, 490, 0, 0, 240, 0, + 0, 0, 0, 0, 0, 0, 0, 259, 0, 0, + 0, 0, 0, 0, 556, 0, 0, 0, 580, 595, + 0, 0, 674, 57, 0, 56, 0, 435, 0, 0, + 460, 0, 0, 529, 664, 0, 0, 0, 0, 193, + 196, 197, 198, 199, 0, 206, 200, 0, 0, 0, + 201, 202, 203, 160, 0, 156, 0, 279, 0, 372, + 0, 409, 364, 352, 353, 354, 356, 357, 358, 345, + 346, 361, 362, 363, 341, 342, 343, 344, 350, 351, + 349, 355, 0, 339, 347, 359, 360, 348, 336, 223, + 231, 0, 216, 552, 0, 550, 551, 547, 548, 549, + 0, 541, 542, 544, 545, 546, 537, 0, 494, 0, + 244, 268, 269, 270, 271, 272, 273, 261, 0, 0, + 573, 576, 577, 558, 0, 0, 582, 691, 0, 689, + 687, 681, 685, 686, 0, 679, 683, 684, 682, 676, + 54, 0, 0, 439, 0, 464, 0, 183, 184, 185, + 186, 182, 188, 190, 192, 205, 208, 210, 212, 158, + 281, 374, 411, 0, 338, 219, 0, 0, 539, 0, + 496, 246, 570, 571, 572, 569, 575, 589, 591, 0, + 0, 0, 0, 678, 58, 441, 466, 533, 340, 0, + 554, 543, 0, 688, 0, 680, 553, 0, 690, 695, + 0, 693, 0, 0, 692, 703, 0, 0, 0, 0, + 697, 699, 700, 701, 702, 694, 0, 0, 0, 0, + 0, 696, 0, 705, 706, 707, 698, 704 }; const short Dhcp6Parser::yypgoto_[] = { - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, 41, -855, -457, - -855, 273, -855, -855, -855, -855, 194, -855, -459, -855, - -855, -855, -74, -855, -855, -855, 434, -855, -855, -855, - -855, 220, 410, -855, -855, -70, -46, -40, -36, -22, - -17, -14, -855, -855, -855, -855, -855, -855, -855, 231, - 413, -855, -855, -855, -855, -855, -855, -855, -855, -855, - 187, -855, 11, -855, -602, 17, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -21, -855, -630, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -4, -855, - -855, -855, -855, -855, 4, -621, -855, -855, -855, -855, - 0, -855, -855, -855, -855, -855, -855, -855, -855, -9, - -855, -855, -855, -8, 419, -855, -855, -855, -855, -855, - -855, -855, -12, -855, -855, -855, -855, -855, -855, -854, - -855, -855, -855, 19, -855, -855, -855, 30, 467, -855, - -855, -849, -855, -847, -855, -11, -855, -5, -855, 3, - -855, -855, -855, -846, -855, -855, -855, -855, 13, -855, - -855, -161, 823, -855, -855, -855, -855, -855, 28, -855, - -855, -855, 34, -855, 444, -855, -69, -855, -855, -855, - -855, -855, -66, -855, -855, -855, -855, -855, -58, -855, - -855, -855, 35, -855, -855, -855, 29, -855, 436, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -19, -855, -855, -855, -15, 473, -855, -855, -53, -855, - -29, -855, -855, -855, -855, -855, -6, -855, -855, -855, - -16, 470, -855, -855, -855, -855, -855, -855, -855, -62, - -855, -855, -855, 21, -855, -855, -855, 25, -855, 472, - 265, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -843, -855, -855, -855, -855, -855, - -855, -855, 39, -855, -855, -855, -145, -855, -855, -855, - -855, -855, -855, -855, 16, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, 9, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, 288, 445, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, -855, -855, -855, -855, - -855, -855, -73, -855, -51, -855, -855, -855, -855, -855, - -855, -855, -855, -855, -855, -855, 325, 446, -855, -855, - -855, -855, -855, -855, -855, 326, 454, -48, -855, -855, - 12, -855, -855, -141, -855, -855, -855, -855, -855, -855, - -160, -855, -855, -178, -855, -855, -855, -855, -855 + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -5, -873, -493, + -873, 240, -873, -873, -873, -873, 232, -873, -502, -873, + -873, -873, -74, -873, -873, -873, 495, -873, -873, -873, + -873, 277, 455, -873, -873, -70, -58, -38, -31, -30, + -20, -17, 1, 9, 12, 13, -873, -873, -873, -873, + -873, -873, -873, 266, 478, -873, -873, -873, -873, -873, + -873, -873, -873, -873, 197, -873, 20, -873, -620, 32, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -46, -873, -648, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 11, -873, -873, -873, -873, -873, 18, -639, + -873, -873, -873, -873, 17, -873, -873, -873, -873, -873, + -873, -873, -873, 5, -873, -873, -873, 10, 438, -873, + -873, -873, -873, -873, -873, -873, 2, -873, -873, -873, + -873, -873, -873, -872, -873, -873, -873, 37, -873, -873, + -873, 44, 479, -873, -873, -870, -873, -869, -873, 15, + -873, 19, -873, 14, -873, -873, -873, -868, -873, -873, + -873, -873, 30, -873, -873, -150, 855, -873, -873, -873, + -873, -873, 43, -873, -873, -873, 46, -873, 461, -873, + -69, -873, -873, -873, -873, -873, -68, -873, -873, -873, + -873, -873, -3, -873, -873, -873, 39, -873, -873, -873, + 45, -873, 459, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -11, -873, -873, -873, -1, 494, + -873, -873, -56, -873, -15, -873, -873, -873, -873, -873, + -2, -873, -873, -873, 3, 488, -873, -873, -873, -873, + -873, -873, -873, -60, -873, -873, -873, 34, -873, -873, + -873, 48, -873, 483, 276, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -867, -873, + -873, -873, -873, -873, -873, -873, 51, -873, -873, -873, + -135, -873, -873, -873, -873, -873, -873, -873, 22, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, 21, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, 295, 464, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + -873, -873, -873, -873, -873, -873, -873, -873, -873, -873, + 331, 445, -873, -873, -873, -873, -873, -873, -873, 330, + 460, -61, -873, -873, 16, -873, -873, -132, -873, -873, + -873, -873, -873, -873, -152, -873, -873, -168, -873, -873, + -873, -873, -873 }; const short @@ -4401,461 +4442,473 @@ namespace isc { namespace dhcp { { -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 88, 41, 42, - 73, 627, 92, 93, 43, 72, 89, 90, 651, 831, - 926, 927, 716, 45, 74, 101, 102, 103, 376, 47, - 75, 147, 148, 149, 384, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 398, 159, 386, 49, 76, 190, - 191, 192, 424, 193, 160, 387, 161, 388, 162, 389, - 740, 741, 742, 870, 717, 718, 719, 849, 1049, 720, - 850, 721, 851, 722, 852, 723, 724, 461, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 858, 734, 735, - 861, 736, 862, 737, 863, 163, 409, 774, 775, 776, - 890, 164, 406, 761, 762, 763, 764, 165, 408, 769, - 770, 771, 772, 166, 407, 167, 412, 785, 786, 787, - 899, 65, 84, 325, 326, 327, 474, 328, 475, 168, - 413, 794, 795, 796, 797, 798, 799, 800, 801, 169, - 399, 744, 745, 746, 873, 51, 77, 214, 215, 216, - 430, 217, 431, 218, 432, 219, 436, 220, 435, 170, - 404, 633, 222, 223, 171, 405, 756, 757, 758, 882, - 980, 981, 172, 400, 59, 81, 748, 749, 750, 876, - 61, 82, 290, 291, 292, 293, 294, 295, 296, 460, - 297, 464, 298, 463, 299, 300, 465, 301, 173, 401, - 752, 753, 754, 879, 63, 83, 311, 312, 313, 314, - 315, 469, 316, 317, 318, 319, 225, 428, 833, 834, - 835, 928, 53, 78, 236, 237, 238, 440, 174, 402, - 175, 403, 228, 429, 837, 838, 839, 931, 55, 79, - 252, 253, 254, 443, 255, 256, 445, 257, 258, 176, - 411, 781, 782, 783, 896, 57, 80, 270, 271, 272, - 273, 451, 274, 452, 275, 453, 276, 454, 277, 455, - 278, 456, 279, 450, 230, 437, 842, 843, 934, 177, - 410, 778, 779, 893, 998, 999, 1000, 1001, 1002, 1064, - 1003, 178, 414, 811, 812, 813, 910, 1073, 814, 815, - 911, 816, 817, 179, 180, 416, 823, 824, 825, 917, - 826, 918, 181, 417, 182, 418, 67, 85, 345, 346, - 347, 348, 479, 349, 480, 350, 351, 482, 352, 353, - 354, 485, 683, 355, 486, 356, 357, 358, 489, 690, - 359, 490, 183, 419, 184, 420, 104, 378, 105, 379, - 106, 380, 185, 385, 71, 87, 367, 368, 369, 495, - 370, 107, 377, 69, 86, 362, 363, 186, 421, 829, - 830, 922, 1032, 1033, 1034, 1035, 1079, 1036, 1077, 1098, - 1099, 1100, 1107, 1108, 1109, 1114, 1110, 1111, 1112 + 73, 645, 92, 93, 43, 72, 89, 90, 667, 849, + 944, 945, 734, 45, 74, 101, 102, 103, 386, 47, + 75, 149, 150, 151, 394, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 412, 165, + 396, 49, 76, 194, 195, 196, 436, 197, 166, 397, + 167, 398, 168, 399, 758, 759, 760, 888, 735, 736, + 737, 867, 1071, 738, 868, 739, 869, 740, 870, 741, + 742, 473, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 876, 752, 753, 879, 754, 880, 755, 881, 169, + 423, 792, 793, 794, 908, 170, 420, 779, 780, 781, + 782, 171, 422, 787, 788, 789, 790, 172, 421, 173, + 426, 803, 804, 805, 917, 65, 84, 333, 334, 335, + 486, 336, 487, 174, 427, 812, 813, 814, 815, 816, + 817, 818, 819, 175, 413, 762, 763, 764, 891, 51, + 77, 222, 223, 224, 442, 225, 443, 226, 444, 227, + 448, 228, 447, 176, 418, 651, 230, 231, 177, 419, + 774, 775, 776, 900, 1002, 1003, 178, 414, 59, 81, + 766, 767, 768, 894, 61, 82, 298, 299, 300, 301, + 302, 303, 304, 472, 305, 476, 306, 475, 307, 308, + 477, 309, 179, 415, 770, 771, 772, 897, 63, 83, + 319, 320, 321, 322, 323, 481, 324, 325, 326, 327, + 233, 440, 851, 852, 853, 946, 53, 78, 244, 245, + 246, 452, 180, 416, 181, 417, 236, 441, 855, 856, + 857, 949, 55, 79, 260, 261, 262, 455, 263, 264, + 457, 265, 266, 182, 425, 799, 800, 801, 914, 57, + 80, 278, 279, 280, 281, 463, 282, 464, 283, 465, + 284, 466, 285, 467, 286, 468, 287, 462, 238, 449, + 860, 861, 952, 183, 424, 796, 797, 911, 1020, 1021, + 1022, 1023, 1024, 1086, 1025, 184, 428, 829, 830, 831, + 928, 1095, 832, 833, 929, 834, 835, 185, 186, 430, + 841, 842, 843, 935, 844, 936, 187, 431, 188, 432, + 67, 85, 355, 356, 357, 358, 491, 359, 492, 360, + 361, 494, 362, 363, 364, 497, 699, 365, 498, 366, + 367, 368, 501, 706, 369, 502, 370, 503, 371, 504, + 104, 388, 105, 389, 106, 390, 189, 395, 71, 87, + 377, 378, 379, 509, 380, 107, 387, 69, 86, 372, + 373, 190, 433, 847, 848, 940, 1054, 1055, 1056, 1057, + 1101, 1058, 1099, 1120, 1121, 1122, 1129, 1130, 1131, 1136, + 1132, 1133, 1134 }; const unsigned short Dhcp6Parser::yytable_[] = { - 100, 146, 189, 206, 232, 246, 266, 207, 288, 307, - 324, 342, 360, 808, 309, 229, 768, 310, 738, 224, - 235, 249, 267, 194, 226, 239, 250, 268, 973, 302, - 320, 208, 343, 974, 361, 975, 979, 209, 364, 985, - 382, 210, 94, 187, 188, 383, 32, 195, 227, 240, - 251, 269, 260, 303, 321, 211, 344, 802, 40, 840, - 212, 289, 308, 213, 125, 282, 703, 233, 247, 626, - 44, 759, 46, 234, 248, 33, 422, 34, 48, 35, - 221, 423, 126, 127, 626, 108, 109, 322, 323, 110, - 126, 127, 111, 112, 113, 322, 323, 281, 657, 126, - 127, 1103, 991, 992, 1104, 1105, 1106, 50, 126, 127, - 663, 664, 665, 629, 630, 631, 632, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 885, - 426, 282, 886, 283, 284, 427, 438, 285, 286, 287, - 441, 439, 818, 819, 91, 442, 126, 127, 126, 127, - 760, 365, 366, 128, 803, 804, 805, 806, 129, 130, - 131, 132, 133, 448, 134, 681, 682, 99, 449, 135, - 685, 686, 687, 688, 476, 491, 52, 54, 136, 477, - 492, 137, 95, 888, 493, 497, 889, 99, 138, 494, - 498, 96, 97, 98, 422, 99, 139, 140, 493, 845, - 141, 142, 124, 846, 99, 497, 689, 973, 56, 99, - 847, 426, 974, 99, 975, 979, 848, 894, 985, 58, - 895, 698, 143, 144, 60, 145, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 1045, 1046, 1047, 1048, 36, 37, 38, - 39, 99, 62, 99, 923, 282, 145, 924, 371, 114, - 115, 116, 117, 118, 119, 120, 1101, 768, 956, 1102, - 125, 788, 789, 790, 791, 792, 793, 64, 66, 867, - 196, 867, 197, 125, 868, 808, 869, 68, 126, 127, - 198, 199, 200, 201, 202, 128, 241, 242, 243, 244, - 245, 126, 127, 125, 891, 70, 372, 203, 100, 892, - 204, 135, 908, 374, 231, 373, 375, 909, 205, 915, - 203, 126, 127, 204, 916, 381, 390, 114, 115, 116, - 117, 118, 119, 120, 391, 392, 123, 919, 125, 282, - 203, 491, 920, 204, 867, 438, 921, 393, 146, 1057, - 1058, 394, 189, 1061, 457, 395, 126, 127, 1062, 199, - 200, 476, 202, 128, 206, 1080, 1069, 232, 207, 396, - 1081, 397, 415, 194, 246, 203, 229, 99, 204, 425, - 224, 458, 441, 235, 266, 226, 205, 1083, 239, 433, - 249, 448, 208, 99, 288, 250, 1084, 195, 209, 307, - 267, 434, 210, 1118, 309, 268, 99, 310, 1119, 227, - 282, 444, 240, 499, 500, 302, 211, 342, 360, 251, - 320, 212, 759, 766, 213, 767, 99, 126, 127, 269, - 233, 125, 446, 1070, 1071, 1072, 234, 247, 343, 303, - 361, 221, 447, 248, 321, 364, 462, 289, 459, 126, - 127, 466, 308, 282, 304, 283, 284, 305, 306, 467, - 468, 99, 344, 126, 127, 470, 471, 259, 472, 473, - 126, 127, 478, 260, 261, 262, 263, 264, 265, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 481, 483, 484, 487, 488, 496, - 501, 502, 503, 504, 505, 506, 508, 1025, 509, 1026, - 1027, 510, 511, 512, 513, 514, 518, 515, 516, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 99, 519, 517, 522, 520, 146, 521, 143, - 144, 523, 524, 525, 189, 613, 614, 615, 526, 527, - 528, 529, 530, 531, 99, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 364, 194, 541, 542, 99, 807, - 820, 543, 342, 360, 544, 99, 545, 547, 550, 548, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 195, - 809, 821, 561, 343, 563, 361, 564, 565, 566, 567, - 569, 570, 571, 572, 573, 574, 575, 577, 578, 579, - 580, 581, 582, 583, 810, 822, 585, 344, 589, 586, - 590, 587, 593, 592, 594, 596, 595, 597, 598, 599, - 600, 677, 601, 602, 603, 604, 607, 608, 610, 684, - 611, 616, 612, 617, 618, 619, 620, 621, 622, 623, - 624, 693, 625, 34, 628, 634, 635, 636, 637, 647, - 639, 638, 640, 641, 648, 654, 642, 643, 644, 646, - 649, 650, 652, 653, 773, 692, 659, 853, 739, 743, - 655, 747, 656, 658, 751, 755, 777, 780, 660, 661, - 662, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 678, 679, 680, 691, 784, 828, 832, 836, - 854, 855, 856, 857, 859, 860, 864, 865, 866, 872, - 925, 871, 875, 874, 877, 878, 880, 881, 884, 883, - 942, 898, 887, 897, 901, 900, 902, 903, 904, 905, - 906, 907, 912, 913, 914, 930, 941, 929, 933, 932, - 937, 944, 935, 936, 938, 939, 940, 946, 943, 945, - 949, 950, 951, 989, 947, 948, 1016, 952, 1017, 953, - 1022, 1023, 954, 1009, 1038, 1039, 1097, 1044, 1059, 1060, - 1065, 1067, 1066, 1010, 1078, 1068, 1087, 1011, 1012, 1013, - 1090, 1014, 1092, 1018, 1095, 1019, 1115, 1020, 1116, 206, - 1050, 1051, 288, 207, 1052, 307, 1053, 1117, 964, 1120, - 309, 229, 965, 310, 645, 224, 507, 1054, 1055, 993, - 226, 1091, 266, 302, 982, 324, 320, 208, 1088, 983, - 765, 694, 546, 209, 1122, 995, 966, 210, 267, 549, - 996, 807, 967, 268, 227, 820, 968, 303, 1028, 697, - 321, 211, 1056, 984, 232, 289, 212, 246, 308, 213, - 969, 972, 809, 1063, 997, 970, 821, 269, 971, 1030, - 235, 976, 994, 249, 1074, 239, 221, 977, 250, 844, - 1075, 1076, 1082, 957, 955, 978, 810, 990, 988, 987, - 822, 1007, 1008, 1031, 959, 591, 1015, 986, 1085, 240, - 1086, 1029, 251, 958, 280, 560, 961, 1094, 962, 588, - 960, 1041, 584, 1040, 562, 1042, 963, 233, 568, 1006, - 247, 1005, 1089, 234, 841, 1096, 248, 1043, 1024, 1121, - 576, 1021, 1123, 1004, 827, 1037, 605, 1125, 695, 1093, - 1124, 1113, 696, 609, 0, 0, 0, 606, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 100, 148, 193, 210, 240, 254, 274, 211, 296, 315, + 332, 352, 40, 826, 317, 318, 786, 237, 756, 212, + 198, 234, 247, 258, 276, 374, 310, 328, 995, 353, + 996, 997, 1001, 1007, 94, 268, 297, 316, 32, 213, + 44, 33, 858, 34, 392, 35, 214, 215, 91, 393, + 777, 644, 330, 331, 46, 290, 48, 216, 191, 192, + 217, 199, 235, 248, 259, 277, 644, 311, 329, 50, + 354, 673, 130, 131, 232, 243, 257, 275, 218, 1092, + 1093, 1094, 289, 679, 680, 681, 219, 434, 128, 220, + 221, 229, 435, 241, 255, 716, 903, 242, 256, 904, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 129, 130, 131, + 290, 52, 291, 292, 99, 54, 293, 294, 295, 778, + 129, 777, 784, 290, 785, 130, 131, 130, 131, 129, + 375, 376, 820, 249, 250, 251, 252, 253, 130, 131, + 239, 721, 1047, 267, 1048, 1049, 56, 130, 131, 268, + 269, 270, 271, 272, 273, 129, 290, 207, 58, 60, + 208, 701, 702, 703, 704, 438, 207, 99, 95, 208, + 439, 450, 62, 130, 131, 453, 451, 96, 97, 98, + 454, 906, 108, 109, 907, 147, 110, 130, 131, 111, + 112, 113, 64, 1013, 1014, 99, 66, 705, 130, 131, + 68, 995, 70, 996, 997, 1001, 1007, 36, 37, 38, + 39, 330, 331, 99, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 99, 381, 99, 821, 822, 823, 824, 806, 807, 808, + 809, 810, 811, 99, 460, 99, 382, 130, 131, 461, + 836, 837, 99, 912, 132, 384, 913, 786, 974, 133, + 134, 135, 136, 137, 1125, 138, 488, 1126, 1127, 1128, + 139, 489, 505, 941, 385, 826, 942, 506, 99, 140, + 130, 131, 141, 507, 1123, 511, 434, 1124, 508, 142, + 512, 863, 99, 383, 507, 511, 469, 143, 144, 864, + 865, 145, 146, 99, 438, 697, 698, 391, 100, 866, + 290, 312, 291, 292, 313, 314, 885, 885, 909, 926, + 933, 886, 887, 910, 927, 934, 147, 130, 131, 937, + 505, 471, 400, 401, 938, 939, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 402, + 148, 403, 99, 885, 193, 450, 350, 351, 1079, 1083, + 1080, 404, 405, 406, 1084, 407, 210, 513, 514, 240, + 211, 408, 198, 488, 1102, 470, 254, 409, 1091, 1103, + 237, 410, 212, 453, 234, 99, 274, 247, 1105, 411, + 460, 479, 1140, 480, 258, 1106, 296, 1141, 429, 437, + 445, 315, 213, 446, 276, 456, 317, 318, 458, 214, + 215, 459, 474, 199, 310, 647, 648, 649, 650, 328, + 216, 352, 478, 217, 297, 235, 482, 483, 248, 316, + 485, 528, 99, 484, 490, 259, 374, 232, 493, 353, + 243, 218, 515, 495, 496, 277, 499, 257, 500, 219, + 510, 516, 220, 221, 229, 311, 517, 275, 241, 518, + 329, 519, 242, 520, 522, 255, 523, 524, 525, 256, + 1067, 1068, 1069, 1070, 526, 527, 529, 530, 531, 532, + 354, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 533, 534, 535, 540, 129, 541, 542, 543, + 544, 539, 536, 631, 632, 633, 200, 537, 201, 545, + 546, 547, 548, 538, 130, 131, 202, 203, 204, 205, + 206, 132, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 207, 560, 561, 208, 139, 563, 564, + 566, 567, 568, 569, 209, 148, 570, 571, 572, 573, + 574, 575, 193, 577, 579, 581, 580, 582, 583, 374, + 585, 586, 587, 588, 589, 590, 591, 593, 594, 596, + 198, 597, 598, 595, 601, 605, 599, 825, 838, 606, + 352, 602, 603, 609, 608, 610, 617, 611, 612, 615, + 616, 693, 613, 614, 619, 827, 839, 618, 353, 620, + 621, 622, 625, 626, 628, 634, 629, 640, 630, 635, + 636, 199, 637, 711, 638, 639, 641, 642, 643, 99, + 652, 34, 646, 653, 654, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 828, 840, 127, 354, + 129, 290, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 655, 130, 131, + 656, 203, 204, 657, 206, 132, 658, 659, 670, 671, + 660, 661, 662, 664, 665, 666, 668, 207, 669, 672, + 208, 674, 675, 676, 677, 678, 710, 700, 209, 757, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 761, + 765, 769, 773, 795, 798, 802, 846, 691, 850, 791, + 692, 854, 871, 694, 695, 872, 696, 873, 874, 875, + 877, 878, 707, 882, 708, 709, 883, 884, 890, 943, + 889, 893, 892, 895, 896, 898, 899, 902, 901, 960, + 916, 905, 915, 919, 918, 920, 921, 922, 923, 924, + 925, 930, 931, 932, 948, 959, 947, 951, 950, 955, + 961, 953, 954, 99, 956, 957, 958, 962, 964, 963, + 965, 966, 967, 968, 969, 970, 971, 1011, 1038, 1039, + 1044, 1045, 1061, 1089, 1060, 1066, 1087, 1072, 972, 663, + 1031, 1032, 1081, 1082, 1088, 1090, 1100, 1109, 1112, 1033, + 1114, 1137, 1034, 1035, 1036, 1040, 1041, 210, 1042, 1073, + 296, 211, 1074, 315, 1075, 1076, 982, 1077, 317, 318, + 983, 237, 1078, 212, 1085, 234, 1096, 1015, 310, 1097, + 274, 328, 984, 332, 1005, 1098, 1104, 1107, 297, 1113, + 1116, 316, 1117, 213, 994, 1018, 1119, 1138, 276, 825, + 214, 215, 985, 838, 1139, 1016, 1050, 1118, 1110, 986, + 987, 216, 240, 1142, 217, 254, 235, 827, 1143, 311, + 988, 839, 329, 989, 1052, 1006, 783, 521, 232, 562, + 247, 1147, 218, 258, 1051, 1144, 1019, 1004, 1145, 277, + 219, 990, 715, 220, 221, 229, 712, 862, 1017, 991, + 975, 275, 992, 993, 1000, 998, 565, 973, 828, 999, + 1012, 1009, 840, 1010, 1030, 1053, 607, 1029, 1037, 576, + 977, 248, 1008, 1108, 259, 976, 288, 1063, 981, 979, + 978, 600, 980, 243, 604, 1062, 257, 578, 584, 1065, + 1028, 859, 1064, 592, 1111, 1043, 627, 1059, 1046, 845, + 713, 241, 1027, 1026, 255, 242, 714, 624, 256, 623, + 1115, 1135, 1146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 964, 0, 0, - 0, 965, 0, 993, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 982, 0, 0, 1028, 0, 983, 995, - 0, 0, 0, 0, 996, 966, 0, 0, 0, 0, - 0, 967, 0, 0, 0, 968, 0, 1030, 0, 0, - 0, 0, 984, 0, 0, 0, 0, 0, 997, 969, - 972, 0, 0, 0, 970, 0, 994, 971, 0, 0, - 976, 1031, 0, 0, 0, 0, 977, 0, 0, 1029, - 0, 0, 0, 0, 978 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, + 0, 0, 0, 983, 0, 1015, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 984, 0, 1005, 1050, 0, + 0, 0, 0, 1018, 0, 0, 0, 994, 0, 0, + 0, 0, 0, 1016, 0, 985, 1052, 0, 0, 0, + 0, 0, 986, 987, 0, 0, 1051, 0, 0, 0, + 0, 0, 0, 988, 0, 0, 989, 0, 1006, 0, + 0, 0, 0, 0, 1019, 0, 0, 0, 0, 0, + 1004, 0, 0, 0, 990, 0, 1017, 1053, 0, 0, + 0, 0, 991, 0, 0, 992, 993, 1000, 998, 0, + 0, 0, 999 }; const short Dhcp6Parser::yycheck_[] = { 74, 75, 76, 77, 78, 79, 80, 77, 82, 83, - 84, 85, 85, 643, 83, 77, 637, 83, 620, 77, - 78, 79, 80, 76, 77, 78, 79, 80, 882, 82, - 83, 77, 85, 882, 85, 882, 882, 77, 86, 882, - 3, 77, 10, 16, 17, 8, 0, 76, 77, 78, - 79, 80, 96, 82, 83, 77, 85, 21, 17, 103, - 77, 82, 83, 77, 54, 55, 30, 78, 79, 526, - 7, 98, 7, 78, 79, 5, 3, 7, 7, 9, - 77, 8, 72, 73, 541, 11, 12, 105, 106, 15, - 72, 73, 18, 19, 20, 105, 106, 21, 557, 72, - 73, 153, 92, 93, 156, 157, 158, 7, 72, 73, - 569, 570, 571, 80, 81, 82, 83, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 3, - 3, 55, 6, 57, 58, 8, 3, 61, 62, 63, - 3, 8, 124, 125, 177, 8, 72, 73, 72, 73, - 177, 13, 14, 79, 118, 119, 120, 121, 84, 85, - 86, 87, 88, 3, 90, 141, 142, 177, 8, 95, - 144, 145, 146, 147, 3, 3, 7, 7, 104, 8, - 8, 107, 150, 3, 3, 3, 6, 177, 114, 8, - 8, 159, 160, 161, 3, 177, 122, 123, 3, 8, - 126, 127, 53, 8, 177, 3, 180, 1061, 7, 177, - 8, 3, 1061, 177, 1061, 1061, 8, 3, 1061, 7, - 6, 21, 148, 149, 7, 151, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 22, 23, 24, 25, 177, 178, 179, - 180, 177, 7, 177, 3, 55, 151, 6, 6, 43, - 44, 45, 46, 47, 48, 49, 3, 888, 870, 6, - 54, 108, 109, 110, 111, 112, 113, 7, 7, 3, - 64, 3, 66, 54, 8, 915, 8, 7, 72, 73, - 74, 75, 76, 77, 78, 79, 67, 68, 69, 70, - 71, 72, 73, 54, 3, 7, 3, 91, 382, 8, - 94, 95, 3, 8, 65, 4, 3, 8, 102, 3, - 91, 72, 73, 94, 8, 4, 4, 43, 44, 45, - 46, 47, 48, 49, 4, 4, 52, 3, 54, 55, - 91, 3, 8, 94, 3, 3, 8, 4, 422, 8, - 8, 4, 426, 3, 8, 4, 72, 73, 8, 75, - 76, 3, 78, 79, 438, 3, 8, 441, 438, 4, - 8, 4, 4, 426, 448, 91, 438, 177, 94, 4, - 438, 3, 3, 441, 458, 438, 102, 8, 441, 4, - 448, 3, 438, 177, 468, 448, 8, 426, 438, 473, - 458, 4, 438, 3, 473, 458, 177, 473, 8, 438, - 55, 4, 441, 372, 373, 468, 438, 491, 491, 448, - 473, 438, 98, 99, 438, 101, 177, 72, 73, 458, - 441, 54, 4, 115, 116, 117, 441, 448, 491, 468, - 491, 438, 4, 448, 473, 493, 4, 468, 8, 72, - 73, 4, 473, 55, 56, 57, 58, 59, 60, 8, - 3, 177, 491, 72, 73, 4, 4, 90, 8, 3, - 72, 73, 4, 96, 97, 98, 99, 100, 101, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 4, 4, 4, 4, 4, 4, - 177, 4, 4, 4, 4, 4, 4, 152, 4, 154, - 155, 4, 4, 4, 4, 178, 180, 178, 178, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 177, 179, 178, 4, 179, 611, 178, 148, - 149, 4, 4, 4, 618, 504, 505, 506, 4, 4, - 4, 4, 4, 4, 177, 4, 4, 4, 4, 4, - 4, 4, 178, 4, 612, 618, 4, 4, 177, 643, - 644, 4, 646, 646, 4, 177, 4, 4, 4, 180, - 4, 4, 4, 4, 178, 180, 4, 4, 4, 618, - 643, 644, 4, 646, 4, 646, 178, 4, 178, 178, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 178, - 4, 4, 4, 180, 643, 644, 4, 646, 4, 180, - 4, 180, 4, 180, 4, 4, 178, 178, 178, 4, - 4, 590, 180, 180, 4, 4, 4, 178, 4, 143, - 7, 177, 7, 7, 7, 7, 7, 5, 177, 5, - 5, 610, 5, 7, 177, 5, 5, 5, 5, 177, - 5, 7, 5, 5, 177, 177, 7, 7, 7, 7, - 5, 5, 5, 5, 89, 5, 7, 4, 7, 7, - 177, 7, 177, 177, 7, 7, 7, 7, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 7, 7, 7, 7, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, - 177, 6, 3, 6, 6, 3, 6, 3, 3, 6, - 180, 3, 6, 6, 3, 6, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 3, 178, 6, 3, 6, - 4, 180, 8, 6, 4, 4, 4, 4, 178, 178, - 4, 4, 4, 4, 178, 178, 4, 178, 4, 178, - 4, 4, 180, 178, 6, 3, 7, 4, 8, 8, - 4, 3, 8, 178, 4, 8, 4, 178, 178, 178, - 4, 178, 4, 178, 5, 178, 4, 178, 4, 873, - 177, 177, 876, 873, 177, 879, 177, 4, 882, 4, - 879, 873, 882, 879, 541, 873, 382, 177, 177, 893, - 873, 178, 896, 876, 882, 899, 879, 873, 180, 882, - 636, 611, 422, 873, 178, 893, 882, 873, 896, 426, - 893, 915, 882, 896, 873, 919, 882, 876, 922, 618, - 879, 873, 177, 882, 928, 876, 873, 931, 879, 873, - 882, 882, 915, 177, 893, 882, 919, 896, 882, 922, - 928, 882, 893, 931, 177, 928, 873, 882, 931, 692, - 177, 177, 177, 872, 867, 882, 915, 891, 888, 885, - 919, 899, 901, 922, 875, 476, 908, 884, 177, 928, - 1061, 922, 931, 873, 81, 438, 878, 177, 879, 473, - 876, 930, 468, 928, 441, 931, 881, 928, 448, 898, - 931, 896, 1067, 928, 659, 177, 931, 933, 919, 180, - 458, 915, 178, 894, 646, 923, 491, 177, 612, 1080, - 1118, 1101, 617, 497, -1, -1, -1, 493, -1, -1, + 84, 85, 17, 661, 83, 83, 655, 77, 638, 77, + 76, 77, 78, 79, 80, 86, 82, 83, 900, 85, + 900, 900, 900, 900, 10, 100, 82, 83, 0, 77, + 7, 5, 107, 7, 3, 9, 77, 77, 181, 8, + 102, 544, 109, 110, 7, 59, 7, 77, 16, 17, + 77, 76, 77, 78, 79, 80, 559, 82, 83, 7, + 85, 573, 76, 77, 77, 78, 79, 80, 77, 119, + 120, 121, 21, 585, 586, 587, 77, 3, 57, 77, + 77, 77, 8, 78, 79, 21, 3, 78, 79, 6, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 58, 76, 77, + 59, 7, 61, 62, 181, 7, 65, 66, 67, 181, + 58, 102, 103, 59, 105, 76, 77, 76, 77, 58, + 13, 14, 21, 71, 72, 73, 74, 75, 76, 77, + 69, 30, 156, 94, 158, 159, 7, 76, 77, 100, + 101, 102, 103, 104, 105, 58, 59, 95, 7, 7, + 98, 148, 149, 150, 151, 3, 95, 181, 154, 98, + 8, 3, 7, 76, 77, 3, 8, 163, 164, 165, + 8, 3, 11, 12, 6, 155, 15, 76, 77, 18, + 19, 20, 7, 96, 97, 181, 7, 184, 76, 77, + 7, 1083, 7, 1083, 1083, 1083, 1083, 181, 182, 183, + 184, 109, 110, 181, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 181, 6, 181, 122, 123, 124, 125, 112, 113, 114, + 115, 116, 117, 181, 3, 181, 3, 76, 77, 8, + 128, 129, 181, 3, 83, 8, 6, 906, 888, 88, + 89, 90, 91, 92, 157, 94, 3, 160, 161, 162, + 99, 8, 3, 3, 3, 933, 6, 8, 181, 108, + 76, 77, 111, 3, 3, 3, 3, 6, 8, 118, + 8, 8, 181, 4, 3, 3, 8, 126, 127, 8, + 8, 130, 131, 181, 3, 145, 146, 4, 392, 8, + 59, 60, 61, 62, 63, 64, 3, 3, 3, 3, + 3, 8, 8, 8, 8, 8, 155, 76, 77, 3, + 3, 8, 4, 4, 8, 8, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 4, + 434, 4, 181, 3, 438, 3, 152, 153, 8, 3, + 8, 4, 4, 4, 8, 4, 450, 382, 383, 453, + 450, 4, 438, 3, 3, 3, 460, 4, 8, 8, + 450, 4, 450, 3, 450, 181, 470, 453, 8, 4, + 3, 8, 3, 3, 460, 8, 480, 8, 4, 4, + 4, 485, 450, 4, 470, 4, 485, 485, 4, 450, + 450, 4, 4, 438, 480, 84, 85, 86, 87, 485, + 450, 505, 4, 450, 480, 450, 4, 4, 453, 485, + 3, 182, 181, 8, 4, 460, 507, 450, 4, 505, + 453, 450, 181, 4, 4, 470, 4, 460, 4, 450, + 4, 4, 450, 450, 450, 480, 4, 470, 453, 4, + 485, 4, 453, 4, 4, 460, 4, 4, 4, 460, + 22, 23, 24, 25, 4, 4, 182, 182, 182, 182, + 505, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 182, 182, 182, 4, 58, 4, 4, 4, + 4, 182, 184, 518, 519, 520, 68, 183, 70, 4, + 4, 4, 4, 183, 76, 77, 78, 79, 80, 81, + 82, 83, 4, 4, 4, 4, 4, 4, 4, 4, + 182, 4, 4, 95, 4, 4, 98, 99, 4, 184, + 4, 4, 4, 4, 106, 629, 4, 182, 184, 4, + 4, 4, 636, 4, 4, 4, 182, 182, 182, 630, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 636, 4, 4, 182, 4, 4, 184, 661, 662, 4, + 664, 184, 184, 4, 184, 4, 184, 182, 4, 4, + 4, 606, 182, 182, 4, 661, 662, 184, 664, 4, + 4, 4, 4, 182, 4, 181, 7, 181, 7, 7, + 7, 636, 7, 628, 7, 5, 5, 5, 5, 181, + 5, 7, 181, 5, 5, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 661, 662, 56, 664, + 58, 59, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 5, 76, 77, + 7, 79, 80, 5, 82, 83, 5, 5, 181, 181, + 7, 7, 7, 7, 5, 5, 5, 95, 5, 181, + 98, 181, 7, 181, 181, 181, 5, 147, 106, 7, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 7, + 7, 7, 7, 7, 7, 7, 7, 181, 7, 93, + 181, 7, 4, 181, 181, 4, 181, 4, 4, 4, + 4, 4, 181, 4, 181, 181, 4, 4, 3, 181, + 6, 3, 6, 6, 3, 6, 3, 3, 6, 184, + 3, 6, 6, 3, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 182, 6, 3, 6, 4, + 182, 8, 6, 181, 4, 4, 4, 184, 4, 182, + 182, 182, 4, 4, 4, 182, 182, 4, 4, 4, + 4, 4, 3, 3, 6, 4, 4, 181, 184, 559, + 182, 182, 8, 8, 8, 8, 4, 4, 4, 182, + 4, 4, 182, 182, 182, 182, 182, 891, 182, 181, + 894, 891, 181, 897, 181, 181, 900, 181, 897, 897, + 900, 891, 181, 891, 181, 891, 181, 911, 894, 181, + 914, 897, 900, 917, 900, 181, 181, 181, 894, 182, + 181, 897, 5, 891, 900, 911, 7, 4, 914, 933, + 891, 891, 900, 937, 4, 911, 940, 181, 184, 900, + 900, 891, 946, 4, 891, 949, 891, 933, 184, 894, + 900, 937, 897, 900, 940, 900, 654, 392, 891, 434, + 946, 181, 891, 949, 940, 182, 911, 900, 182, 914, + 891, 900, 636, 891, 891, 891, 629, 710, 911, 900, + 890, 914, 900, 900, 900, 900, 438, 885, 933, 900, + 909, 903, 937, 906, 919, 940, 488, 917, 926, 450, + 893, 946, 902, 1083, 949, 891, 81, 948, 899, 896, + 894, 480, 897, 946, 485, 946, 949, 453, 460, 951, + 916, 675, 949, 470, 1089, 933, 511, 941, 937, 664, + 630, 946, 914, 912, 949, 946, 635, 507, 949, 505, + 1102, 1123, 1140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1061, -1, -1, - -1, 1061, -1, 1067, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1061, -1, -1, 1080, -1, 1061, 1067, - -1, -1, -1, -1, 1067, 1061, -1, -1, -1, -1, - -1, 1061, -1, -1, -1, 1061, -1, 1080, -1, -1, - -1, -1, 1061, -1, -1, -1, -1, -1, 1067, 1061, - 1061, -1, -1, -1, 1061, -1, 1067, 1061, -1, -1, - 1061, 1080, -1, -1, -1, -1, 1061, -1, -1, 1080, - -1, -1, -1, -1, 1061 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1083, + -1, -1, -1, 1083, -1, 1089, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1083, -1, 1083, 1102, -1, + -1, -1, -1, 1089, -1, -1, -1, 1083, -1, -1, + -1, -1, -1, 1089, -1, 1083, 1102, -1, -1, -1, + -1, -1, 1083, 1083, -1, -1, 1102, -1, -1, -1, + -1, -1, -1, 1083, -1, -1, 1083, -1, 1083, -1, + -1, -1, -1, -1, 1089, -1, -1, -1, -1, -1, + 1083, -1, -1, -1, 1083, -1, 1089, 1102, -1, -1, + -1, -1, 1083, -1, -1, 1083, 1083, 1083, 1083, -1, + -1, -1, 1083 }; const unsigned short Dhcp6Parser::yystos_[] = { - 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 0, 5, 7, 9, 177, 178, 179, 180, - 198, 199, 200, 205, 7, 214, 7, 220, 7, 238, - 7, 336, 7, 413, 7, 429, 7, 446, 7, 365, - 7, 371, 7, 395, 7, 312, 7, 507, 7, 554, - 7, 545, 206, 201, 215, 221, 239, 337, 414, 430, - 447, 366, 372, 396, 313, 508, 555, 546, 198, 207, - 208, 177, 203, 204, 10, 150, 159, 160, 161, 177, - 213, 216, 217, 218, 537, 539, 541, 552, 11, 12, + 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 0, 5, 7, 9, 181, 182, 183, 184, + 202, 203, 204, 209, 7, 218, 7, 224, 7, 246, + 7, 344, 7, 421, 7, 437, 7, 454, 7, 373, + 7, 379, 7, 403, 7, 320, 7, 515, 7, 562, + 7, 553, 210, 205, 219, 225, 247, 345, 422, 438, + 455, 374, 380, 404, 321, 516, 563, 554, 202, 211, + 212, 181, 207, 208, 10, 154, 163, 164, 165, 181, + 217, 220, 221, 222, 545, 547, 549, 560, 11, 12, 15, 18, 19, 20, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 72, 73, 79, 84, - 85, 86, 87, 88, 90, 95, 104, 107, 114, 122, - 123, 126, 127, 148, 149, 151, 213, 222, 223, 224, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 236, - 245, 247, 249, 286, 292, 298, 304, 306, 320, 330, - 350, 355, 363, 389, 419, 421, 440, 470, 482, 494, - 495, 503, 505, 533, 535, 543, 558, 16, 17, 213, - 240, 241, 242, 244, 419, 421, 64, 66, 74, 75, - 76, 77, 78, 91, 94, 102, 213, 226, 227, 228, - 229, 230, 231, 232, 338, 339, 340, 342, 344, 346, - 348, 350, 353, 354, 389, 407, 419, 421, 423, 440, - 465, 65, 213, 346, 348, 389, 415, 416, 417, 419, - 421, 67, 68, 69, 70, 71, 213, 346, 348, 389, - 419, 421, 431, 432, 433, 435, 436, 438, 439, 90, - 96, 97, 98, 99, 100, 101, 213, 389, 419, 421, - 448, 449, 450, 451, 453, 455, 457, 459, 461, 463, - 363, 21, 55, 57, 58, 61, 62, 63, 213, 267, - 373, 374, 375, 376, 377, 378, 379, 381, 383, 385, - 386, 388, 419, 421, 56, 59, 60, 213, 267, 377, - 383, 397, 398, 399, 400, 401, 403, 404, 405, 406, - 419, 421, 105, 106, 213, 314, 315, 316, 318, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 213, 419, 421, 509, 510, 511, 512, 514, - 516, 517, 519, 520, 521, 524, 526, 527, 528, 531, - 533, 535, 556, 557, 558, 13, 14, 547, 548, 549, - 551, 6, 3, 4, 8, 3, 219, 553, 538, 540, - 542, 4, 3, 8, 225, 544, 237, 246, 248, 250, - 4, 4, 4, 4, 4, 4, 4, 4, 235, 331, - 364, 390, 420, 422, 351, 356, 293, 305, 299, 287, - 471, 441, 307, 321, 483, 4, 496, 504, 506, 534, - 536, 559, 3, 8, 243, 4, 3, 8, 408, 424, - 341, 343, 345, 4, 4, 349, 347, 466, 3, 8, - 418, 3, 8, 434, 4, 437, 4, 4, 3, 8, - 464, 452, 454, 456, 458, 460, 462, 8, 3, 8, - 380, 268, 4, 384, 382, 387, 4, 8, 3, 402, - 4, 4, 8, 3, 317, 319, 3, 8, 4, 513, - 515, 4, 518, 4, 4, 522, 525, 4, 4, 529, - 532, 3, 8, 3, 8, 550, 4, 3, 8, 198, - 198, 177, 4, 4, 4, 4, 4, 217, 4, 4, - 4, 4, 4, 4, 178, 178, 178, 178, 180, 179, - 179, 178, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 178, - 4, 4, 4, 4, 4, 4, 223, 4, 180, 241, - 4, 4, 4, 4, 4, 178, 180, 4, 4, 4, - 339, 4, 416, 4, 178, 4, 178, 178, 432, 4, - 4, 4, 4, 4, 4, 4, 450, 4, 4, 178, - 4, 4, 4, 180, 375, 4, 180, 180, 399, 4, - 4, 315, 180, 4, 4, 178, 4, 178, 178, 4, - 4, 180, 180, 4, 4, 510, 557, 4, 178, 548, - 4, 7, 7, 198, 198, 198, 177, 7, 7, 7, - 7, 5, 177, 5, 5, 5, 200, 202, 177, 80, - 81, 82, 83, 352, 5, 5, 5, 5, 7, 5, - 5, 5, 7, 7, 7, 202, 7, 177, 177, 5, - 5, 209, 5, 5, 177, 177, 177, 209, 177, 7, - 177, 177, 177, 209, 209, 209, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 198, 177, 177, - 177, 141, 142, 523, 143, 144, 145, 146, 147, 180, - 530, 177, 5, 198, 222, 556, 547, 240, 21, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 213, 255, 256, 257, - 260, 262, 264, 266, 267, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 279, 280, 282, 284, 255, 7, - 251, 252, 253, 7, 332, 333, 334, 7, 367, 368, - 369, 7, 391, 392, 393, 7, 357, 358, 359, 98, - 177, 294, 295, 296, 297, 207, 99, 101, 296, 300, - 301, 302, 303, 89, 288, 289, 290, 7, 472, 473, - 7, 442, 443, 444, 7, 308, 309, 310, 108, 109, - 110, 111, 112, 113, 322, 323, 324, 325, 326, 327, - 328, 329, 21, 118, 119, 120, 121, 213, 269, 419, - 421, 484, 485, 486, 489, 490, 492, 493, 124, 125, - 213, 419, 421, 497, 498, 499, 501, 509, 7, 560, - 561, 210, 7, 409, 410, 411, 7, 425, 426, 427, - 103, 451, 467, 468, 251, 8, 8, 8, 8, 258, - 261, 263, 265, 4, 4, 4, 4, 4, 278, 4, - 4, 281, 283, 285, 4, 4, 4, 3, 8, 8, - 254, 6, 3, 335, 6, 3, 370, 6, 3, 394, - 6, 3, 360, 6, 3, 3, 6, 6, 3, 6, - 291, 3, 8, 474, 3, 6, 445, 6, 3, 311, - 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, - 487, 491, 4, 4, 4, 3, 8, 500, 502, 3, - 8, 8, 562, 3, 6, 177, 211, 212, 412, 6, - 3, 428, 6, 3, 469, 8, 6, 4, 4, 4, - 4, 178, 180, 178, 180, 178, 4, 178, 178, 4, - 4, 4, 178, 178, 180, 256, 255, 253, 338, 334, - 373, 369, 397, 393, 213, 226, 227, 228, 229, 230, - 231, 232, 267, 330, 342, 344, 346, 348, 350, 354, - 361, 362, 389, 419, 421, 465, 359, 295, 301, 4, - 289, 92, 93, 213, 267, 389, 419, 421, 475, 476, - 477, 478, 479, 481, 473, 448, 444, 314, 310, 178, - 178, 178, 178, 178, 178, 323, 4, 4, 178, 178, - 178, 485, 4, 4, 498, 152, 154, 155, 213, 267, - 419, 421, 563, 564, 565, 566, 568, 561, 6, 3, - 415, 411, 431, 427, 4, 22, 23, 24, 25, 259, - 177, 177, 177, 177, 177, 177, 177, 8, 8, 8, - 8, 3, 8, 177, 480, 4, 8, 3, 8, 8, - 115, 116, 117, 488, 177, 177, 177, 569, 4, 567, - 3, 8, 177, 8, 8, 177, 362, 4, 180, 477, - 4, 178, 4, 564, 177, 5, 177, 7, 570, 571, - 572, 3, 6, 153, 156, 157, 158, 573, 574, 575, - 577, 578, 579, 571, 576, 4, 4, 4, 3, 8, - 4, 180, 178, 178, 574, 177 + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 76, 77, 83, 88, 89, 90, 91, 92, 94, 99, + 108, 111, 118, 126, 127, 130, 131, 155, 217, 226, + 227, 228, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 244, 253, 255, 257, 294, + 300, 306, 312, 314, 328, 338, 358, 363, 371, 397, + 427, 429, 448, 478, 490, 502, 503, 511, 513, 551, + 566, 16, 17, 217, 248, 249, 250, 252, 427, 429, + 68, 70, 78, 79, 80, 81, 82, 95, 98, 106, + 217, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 346, 347, 348, 350, 352, 354, 356, 358, + 361, 362, 397, 415, 427, 429, 431, 448, 473, 69, + 217, 354, 356, 397, 423, 424, 425, 427, 429, 71, + 72, 73, 74, 75, 217, 354, 356, 397, 427, 429, + 439, 440, 441, 443, 444, 446, 447, 94, 100, 101, + 102, 103, 104, 105, 217, 397, 427, 429, 456, 457, + 458, 459, 461, 463, 465, 467, 469, 471, 371, 21, + 59, 61, 62, 65, 66, 67, 217, 275, 381, 382, + 383, 384, 385, 386, 387, 389, 391, 393, 394, 396, + 427, 429, 60, 63, 64, 217, 275, 385, 391, 405, + 406, 407, 408, 409, 411, 412, 413, 414, 427, 429, + 109, 110, 217, 322, 323, 324, 326, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 152, 153, 217, 427, 429, 517, 518, 519, 520, 522, + 524, 525, 527, 528, 529, 532, 534, 535, 536, 539, + 541, 543, 564, 565, 566, 13, 14, 555, 556, 557, + 559, 6, 3, 4, 8, 3, 223, 561, 546, 548, + 550, 4, 3, 8, 229, 552, 245, 254, 256, 258, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 243, 339, 372, 398, 428, 430, 359, 364, + 301, 313, 307, 295, 479, 449, 315, 329, 491, 4, + 504, 512, 514, 567, 3, 8, 251, 4, 3, 8, + 416, 432, 349, 351, 353, 4, 4, 357, 355, 474, + 3, 8, 426, 3, 8, 442, 4, 445, 4, 4, + 3, 8, 472, 460, 462, 464, 466, 468, 470, 8, + 3, 8, 388, 276, 4, 392, 390, 395, 4, 8, + 3, 410, 4, 4, 8, 3, 325, 327, 3, 8, + 4, 521, 523, 4, 526, 4, 4, 530, 533, 4, + 4, 537, 540, 542, 544, 3, 8, 3, 8, 558, + 4, 3, 8, 202, 202, 181, 4, 4, 4, 4, + 4, 221, 4, 4, 4, 4, 4, 4, 182, 182, + 182, 182, 182, 182, 182, 182, 184, 183, 183, 182, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 182, 4, 4, + 4, 4, 227, 4, 184, 249, 4, 4, 4, 4, + 4, 182, 184, 4, 4, 4, 347, 4, 424, 4, + 182, 4, 182, 182, 440, 4, 4, 4, 4, 4, + 4, 4, 458, 4, 4, 182, 4, 4, 4, 184, + 383, 4, 184, 184, 407, 4, 4, 323, 184, 4, + 4, 182, 4, 182, 182, 4, 4, 184, 184, 4, + 4, 4, 4, 518, 565, 4, 182, 556, 4, 7, + 7, 202, 202, 202, 181, 7, 7, 7, 7, 5, + 181, 5, 5, 5, 204, 206, 181, 84, 85, 86, + 87, 360, 5, 5, 5, 5, 7, 5, 5, 5, + 7, 7, 7, 206, 7, 5, 5, 213, 5, 5, + 181, 181, 181, 213, 181, 7, 181, 181, 181, 213, + 213, 213, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 202, 181, 181, 181, 145, 146, 531, + 147, 148, 149, 150, 151, 184, 538, 181, 181, 181, + 5, 202, 226, 564, 555, 248, 21, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 217, 263, 264, 265, 268, 270, + 272, 274, 275, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 287, 288, 290, 292, 263, 7, 259, 260, + 261, 7, 340, 341, 342, 7, 375, 376, 377, 7, + 399, 400, 401, 7, 365, 366, 367, 102, 181, 302, + 303, 304, 305, 211, 103, 105, 304, 308, 309, 310, + 311, 93, 296, 297, 298, 7, 480, 481, 7, 450, + 451, 452, 7, 316, 317, 318, 112, 113, 114, 115, + 116, 117, 330, 331, 332, 333, 334, 335, 336, 337, + 21, 122, 123, 124, 125, 217, 277, 427, 429, 492, + 493, 494, 497, 498, 500, 501, 128, 129, 217, 427, + 429, 505, 506, 507, 509, 517, 7, 568, 569, 214, + 7, 417, 418, 419, 7, 433, 434, 435, 107, 459, + 475, 476, 259, 8, 8, 8, 8, 266, 269, 271, + 273, 4, 4, 4, 4, 4, 286, 4, 4, 289, + 291, 293, 4, 4, 4, 3, 8, 8, 262, 6, + 3, 343, 6, 3, 378, 6, 3, 402, 6, 3, + 368, 6, 3, 3, 6, 6, 3, 6, 299, 3, + 8, 482, 3, 6, 453, 6, 3, 319, 6, 3, + 4, 4, 4, 4, 4, 4, 3, 8, 495, 499, + 4, 4, 4, 3, 8, 508, 510, 3, 8, 8, + 570, 3, 6, 181, 215, 216, 420, 6, 3, 436, + 6, 3, 477, 8, 6, 4, 4, 4, 4, 182, + 184, 182, 184, 182, 4, 182, 182, 4, 4, 4, + 182, 182, 184, 264, 263, 261, 346, 342, 381, 377, + 405, 401, 217, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 275, 338, 350, 352, 354, 356, + 358, 362, 369, 370, 397, 427, 429, 473, 367, 303, + 309, 4, 297, 96, 97, 217, 275, 397, 427, 429, + 483, 484, 485, 486, 487, 489, 481, 456, 452, 322, + 318, 182, 182, 182, 182, 182, 182, 331, 4, 4, + 182, 182, 182, 493, 4, 4, 506, 156, 158, 159, + 217, 275, 427, 429, 571, 572, 573, 574, 576, 569, + 6, 3, 423, 419, 439, 435, 4, 22, 23, 24, + 25, 267, 181, 181, 181, 181, 181, 181, 181, 8, + 8, 8, 8, 3, 8, 181, 488, 4, 8, 3, + 8, 8, 119, 120, 121, 496, 181, 181, 181, 577, + 4, 575, 3, 8, 181, 8, 8, 181, 370, 4, + 184, 485, 4, 182, 4, 572, 181, 5, 181, 7, + 578, 579, 580, 3, 6, 157, 160, 161, 162, 581, + 582, 583, 585, 586, 587, 579, 584, 4, 4, 4, + 3, 8, 4, 184, 182, 182, 582, 181 }; const unsigned short Dhcp6Parser::yyr1_[] = { - 0, 181, 183, 182, 184, 182, 185, 182, 186, 182, - 187, 182, 188, 182, 189, 182, 190, 182, 191, 182, - 192, 182, 193, 182, 194, 182, 195, 182, 196, 182, - 197, 182, 198, 198, 198, 198, 198, 198, 198, 199, - 201, 200, 202, 203, 203, 204, 204, 206, 205, 207, - 207, 208, 208, 210, 209, 211, 211, 212, 212, 213, - 215, 214, 216, 216, 217, 217, 217, 217, 217, 217, - 219, 218, 221, 220, 222, 222, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 225, 224, 226, 227, 228, - 229, 230, 231, 232, 233, 235, 234, 237, 236, 239, - 238, 240, 240, 241, 241, 241, 241, 241, 243, 242, - 244, 246, 245, 248, 247, 250, 249, 251, 251, 252, - 252, 254, 253, 255, 255, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 258, 257, 259, 259, 259, - 259, 261, 260, 263, 262, 265, 264, 266, 268, 267, - 269, 270, 271, 272, 273, 274, 275, 276, 278, 277, - 279, 281, 280, 283, 282, 285, 284, 287, 286, 288, - 288, 289, 291, 290, 293, 292, 294, 294, 295, 295, - 296, 297, 299, 298, 300, 300, 301, 301, 301, 302, - 303, 305, 304, 307, 306, 308, 308, 309, 309, 311, - 310, 313, 312, 314, 314, 314, 315, 315, 317, 316, - 319, 318, 321, 320, 322, 322, 323, 323, 323, 323, - 323, 323, 324, 325, 326, 327, 328, 329, 331, 330, - 332, 332, 333, 333, 335, 334, 337, 336, 338, 338, - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 341, 340, 343, 342, 345, 344, 347, - 346, 349, 348, 351, 350, 352, 352, 352, 352, 353, - 354, 356, 355, 357, 357, 358, 358, 360, 359, 361, - 361, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 364, 363, 366, 365, 367, 367, 368, 368, 370, - 369, 372, 371, 373, 373, 374, 374, 375, 375, 375, - 375, 375, 375, 375, 375, 375, 375, 376, 377, 378, - 380, 379, 382, 381, 384, 383, 385, 387, 386, 388, - 390, 389, 391, 391, 392, 392, 394, 393, 396, 395, - 397, 397, 398, 398, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 400, 402, 401, 403, 404, 405, 406, - 408, 407, 409, 409, 410, 410, 412, 411, 414, 413, - 415, 415, 416, 416, 416, 416, 416, 416, 416, 418, - 417, 420, 419, 422, 421, 424, 423, 425, 425, 426, - 426, 428, 427, 430, 429, 431, 431, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, 434, 433, - 435, 437, 436, 438, 439, 441, 440, 442, 442, 443, - 443, 445, 444, 447, 446, 448, 448, 449, 449, 450, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 452, 451, 454, 453, 456, 455, 458, 457, 460, 459, - 462, 461, 464, 463, 466, 465, 467, 467, 469, 468, - 471, 470, 472, 472, 474, 473, 475, 475, 476, 476, - 477, 477, 477, 477, 477, 477, 477, 478, 480, 479, - 481, 483, 482, 484, 484, 485, 485, 485, 485, 485, - 485, 485, 485, 485, 487, 486, 488, 488, 488, 489, - 491, 490, 492, 493, 494, 496, 495, 497, 497, 498, - 498, 498, 498, 498, 500, 499, 502, 501, 504, 503, - 506, 505, 508, 507, 509, 509, 510, 510, 510, 510, - 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, - 510, 510, 510, 510, 511, 513, 512, 515, 514, 516, - 518, 517, 519, 520, 522, 521, 523, 523, 525, 524, - 526, 527, 529, 528, 530, 530, 530, 530, 530, 532, - 531, 534, 533, 536, 535, 538, 537, 540, 539, 542, - 541, 544, 543, 546, 545, 547, 547, 548, 548, 550, - 549, 551, 553, 552, 555, 554, 556, 556, 557, 559, - 558, 560, 560, 562, 561, 563, 563, 564, 564, 564, - 564, 564, 564, 564, 565, 567, 566, 569, 568, 570, - 570, 572, 571, 573, 573, 574, 574, 574, 574, 576, - 575, 577, 578, 579 + 0, 185, 187, 186, 188, 186, 189, 186, 190, 186, + 191, 186, 192, 186, 193, 186, 194, 186, 195, 186, + 196, 186, 197, 186, 198, 186, 199, 186, 200, 186, + 201, 186, 202, 202, 202, 202, 202, 202, 202, 203, + 205, 204, 206, 207, 207, 208, 208, 210, 209, 211, + 211, 212, 212, 214, 213, 215, 215, 216, 216, 217, + 219, 218, 220, 220, 221, 221, 221, 221, 221, 221, + 223, 222, 225, 224, 226, 226, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 229, 228, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 243, 242, 245, 244, 247, 246, 248, 248, 249, + 249, 249, 249, 249, 251, 250, 252, 254, 253, 256, + 255, 258, 257, 259, 259, 260, 260, 262, 261, 263, + 263, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 266, 265, 267, 267, 267, 267, 269, 268, 271, + 270, 273, 272, 274, 276, 275, 277, 278, 279, 280, + 281, 282, 283, 284, 286, 285, 287, 289, 288, 291, + 290, 293, 292, 295, 294, 296, 296, 297, 299, 298, + 301, 300, 302, 302, 303, 303, 304, 305, 307, 306, + 308, 308, 309, 309, 309, 310, 311, 313, 312, 315, + 314, 316, 316, 317, 317, 319, 318, 321, 320, 322, + 322, 322, 323, 323, 325, 324, 327, 326, 329, 328, + 330, 330, 331, 331, 331, 331, 331, 331, 332, 333, + 334, 335, 336, 337, 339, 338, 340, 340, 341, 341, + 343, 342, 345, 344, 346, 346, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 349, 348, 351, 350, 353, 352, 355, + 354, 357, 356, 359, 358, 360, 360, 360, 360, 361, + 362, 364, 363, 365, 365, 366, 366, 368, 367, 369, + 369, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 372, 371, 374, 373, 375, + 375, 376, 376, 378, 377, 380, 379, 381, 381, 382, + 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 384, 385, 386, 388, 387, 390, 389, 392, 391, + 393, 395, 394, 396, 398, 397, 399, 399, 400, 400, + 402, 401, 404, 403, 405, 405, 406, 406, 407, 407, + 407, 407, 407, 407, 407, 407, 407, 408, 410, 409, + 411, 412, 413, 414, 416, 415, 417, 417, 418, 418, + 420, 419, 422, 421, 423, 423, 424, 424, 424, 424, + 424, 424, 424, 426, 425, 428, 427, 430, 429, 432, + 431, 433, 433, 434, 434, 436, 435, 438, 437, 439, + 439, 440, 440, 440, 440, 440, 440, 440, 440, 440, + 440, 440, 442, 441, 443, 445, 444, 446, 447, 449, + 448, 450, 450, 451, 451, 453, 452, 455, 454, 456, + 456, 457, 457, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 460, 459, 462, 461, 464, 463, + 466, 465, 468, 467, 470, 469, 472, 471, 474, 473, + 475, 475, 477, 476, 479, 478, 480, 480, 482, 481, + 483, 483, 484, 484, 485, 485, 485, 485, 485, 485, + 485, 486, 488, 487, 489, 491, 490, 492, 492, 493, + 493, 493, 493, 493, 493, 493, 493, 493, 495, 494, + 496, 496, 496, 497, 499, 498, 500, 501, 502, 504, + 503, 505, 505, 506, 506, 506, 506, 506, 508, 507, + 510, 509, 512, 511, 514, 513, 516, 515, 517, 517, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 519, 521, + 520, 523, 522, 524, 526, 525, 527, 528, 530, 529, + 531, 531, 533, 532, 534, 535, 537, 536, 538, 538, + 538, 538, 538, 540, 539, 542, 541, 544, 543, 546, + 545, 548, 547, 550, 549, 552, 551, 554, 553, 555, + 555, 556, 556, 558, 557, 559, 561, 560, 563, 562, + 564, 564, 565, 567, 566, 568, 568, 570, 569, 571, + 571, 572, 572, 572, 572, 572, 572, 572, 573, 575, + 574, 577, 576, 578, 578, 580, 579, 581, 581, 582, + 582, 582, 582, 584, 583, 585, 586, 587 }; const unsigned char @@ -4872,23 +4925,24 @@ namespace isc { namespace dhcp { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, - 3, 3, 3, 3, 3, 0, 4, 0, 6, 0, - 4, 1, 3, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 6, 0, 6, 0, 6, 0, 1, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 0, 4, 0, 6, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 0, 4, 3, 0, 6, 0, + 6, 0, 6, 0, 1, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 3, 0, 4, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 4, - 3, 0, 4, 0, 4, 0, 4, 0, 6, 1, - 3, 1, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 0, 6, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 1, 3, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, - 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 0, 4, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 4, 3, 0, 4, 0, + 4, 0, 4, 0, 6, 1, 3, 1, 0, 4, + 0, 6, 1, 3, 1, 1, 1, 1, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 0, 6, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, @@ -4896,41 +4950,41 @@ namespace isc { namespace dhcp { 3, 0, 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 6, 0, 4, 0, 1, 1, 3, 0, - 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 3, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 1, 1, 0, 4, - 0, 6, 1, 3, 0, 4, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 0, 6, 0, 4, 0, + 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 0, 4, 0, 4, 0, 4, + 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 6, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 1, 3, - 0, 4, 3, 3, 3, 0, 6, 1, 3, 1, + 1, 1, 3, 3, 0, 6, 0, 1, 1, 3, + 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, + 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 1, 0, 4, 0, 6, 1, 3, 0, 4, + 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 3, 0, 6, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 1, 3, 0, 4, 3, 3, 3, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 4, 3, - 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, - 3, 3, 0, 4, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 0, 4, 1, 3, 1, 1, 0, - 6, 3, 0, 6, 0, 4, 1, 3, 1, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 0, - 4, 3, 3, 3 + 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 0, 4, 3, 0, 4, 3, 3, 0, 4, + 1, 1, 0, 4, 3, 3, 0, 4, 1, 1, + 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 6, 0, 4, 1, + 3, 1, 1, 0, 6, 3, 0, 6, 0, 4, + 1, 3, 1, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 0, 6, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 1, 0, 4, 3, 3, 3 }; @@ -4951,7 +5005,9 @@ namespace isc { namespace dhcp { "\"connect-timeout\"", "\"contact-points\"", "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"", "\"request-timeout\"", "\"tcp-keepalive\"", - "\"tcp-nodelay\"", "\"preferred-lifetime\"", "\"valid-lifetime\"", + "\"tcp-nodelay\"", "\"preferred-lifetime\"", + "\"min-preferred-lifetime\"", "\"max-preferred-lifetime\"", + "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", "\"t2-percent\"", "\"decline-probation-period\"", "\"server-tag\"", "\"subnet6\"", "\"option-def\"", "\"option-data\"", @@ -4999,21 +5055,23 @@ namespace isc { namespace dhcp { "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@19", "global_objects", "global_object", "dhcp6_object", "$@20", "sub_dhcp6", "$@21", "global_params", "global_param", "data_directory", "$@22", - "preferred_lifetime", "valid_lifetime", "renew_timer", "rebind_timer", - "calculate_tee_times", "t1_percent", "t2_percent", - "decline_probation_period", "server_tag", "$@23", "interfaces_config", - "$@24", "sub_interfaces6", "$@25", "interfaces_config_params", - "interfaces_config_param", "interfaces_list", "$@26", "re_detect", - "lease_database", "$@27", "hosts_database", "$@28", "hosts_databases", - "$@29", "database_list", "not_empty_database_list", "database", "$@30", - "database_map_params", "database_map_param", "database_type", "$@31", - "db_type", "user", "$@32", "password", "$@33", "host", "$@34", "port", - "name", "$@35", "persist", "lfc_interval", "readonly", "connect_timeout", - "reconnect_wait_time", "request_timeout", "tcp_keepalive", "tcp_nodelay", - "contact_points", "$@36", "max_reconnect_tries", "keyspace", "$@37", - "consistency", "$@38", "serial_consistency", "$@39", "sanity_checks", - "$@40", "sanity_checks_params", "sanity_checks_param", "lease_checks", - "$@41", "mac_sources", "$@42", "mac_sources_list", "mac_sources_value", + "preferred_lifetime", "min_preferred_lifetime", "max_preferred_lifetime", + "valid_lifetime", "min_valid_lifetime", "max_valid_lifetime", + "renew_timer", "rebind_timer", "calculate_tee_times", "t1_percent", + "t2_percent", "decline_probation_period", "server_tag", "$@23", + "interfaces_config", "$@24", "sub_interfaces6", "$@25", + "interfaces_config_params", "interfaces_config_param", "interfaces_list", + "$@26", "re_detect", "lease_database", "$@27", "hosts_database", "$@28", + "hosts_databases", "$@29", "database_list", "not_empty_database_list", + "database", "$@30", "database_map_params", "database_map_param", + "database_type", "$@31", "db_type", "user", "$@32", "password", "$@33", + "host", "$@34", "port", "name", "$@35", "persist", "lfc_interval", + "readonly", "connect_timeout", "reconnect_wait_time", "request_timeout", + "tcp_keepalive", "tcp_nodelay", "contact_points", "$@36", + "max_reconnect_tries", "keyspace", "$@37", "consistency", "$@38", + "serial_consistency", "$@39", "sanity_checks", "$@40", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@41", + "mac_sources", "$@42", "mac_sources_list", "mac_sources_value", "duid_id", "string_id", "host_reservation_identifiers", "$@43", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@44", @@ -5091,76 +5149,77 @@ namespace isc { namespace dhcp { const unsigned short Dhcp6Parser::yyrline_[] = { - 0, 265, 265, 265, 266, 266, 267, 267, 268, 268, - 269, 269, 270, 270, 271, 271, 272, 272, 273, 273, - 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, - 279, 279, 287, 288, 289, 290, 291, 292, 293, 296, - 301, 301, 312, 315, 316, 319, 323, 330, 330, 337, - 338, 341, 345, 352, 352, 359, 360, 363, 367, 378, - 388, 388, 403, 404, 408, 409, 410, 411, 412, 413, - 416, 416, 431, 431, 440, 441, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 487, 487, 495, 500, 505, - 510, 515, 520, 525, 530, 535, 535, 543, 543, 554, - 554, 563, 564, 567, 568, 569, 570, 571, 574, 574, - 584, 590, 590, 602, 602, 614, 614, 624, 625, 628, - 629, 632, 632, 642, 643, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 668, 668, 675, 676, 677, - 678, 681, 681, 689, 689, 697, 697, 705, 710, 710, - 718, 723, 728, 733, 738, 743, 748, 753, 758, 758, - 766, 771, 771, 779, 779, 787, 787, 795, 795, 805, - 806, 808, 810, 810, 828, 828, 838, 839, 842, 843, - 846, 851, 856, 856, 866, 867, 870, 871, 872, 875, - 880, 887, 887, 897, 897, 907, 908, 911, 912, 915, - 915, 925, 925, 935, 936, 937, 940, 941, 944, 944, - 952, 952, 960, 960, 971, 972, 975, 976, 977, 978, - 979, 980, 983, 988, 993, 998, 1003, 1008, 1016, 1016, - 1029, 1030, 1033, 1034, 1041, 1041, 1067, 1067, 1078, 1079, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105, 1108, 1108, 1116, 1116, 1124, 1124, 1132, - 1132, 1140, 1140, 1150, 1150, 1157, 1158, 1159, 1160, 1163, - 1168, 1176, 1176, 1187, 1188, 1192, 1193, 1196, 1196, 1204, - 1205, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, - 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, - 1227, 1234, 1234, 1247, 1247, 1256, 1257, 1260, 1261, 1266, - 1266, 1281, 1281, 1295, 1296, 1299, 1300, 1303, 1304, 1305, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1315, 1317, 1322, - 1324, 1324, 1332, 1332, 1340, 1340, 1348, 1350, 1350, 1358, - 1367, 1367, 1379, 1380, 1385, 1386, 1391, 1391, 1403, 1403, - 1415, 1416, 1421, 1422, 1427, 1428, 1429, 1430, 1431, 1432, - 1433, 1434, 1435, 1438, 1440, 1440, 1448, 1450, 1452, 1457, - 1465, 1465, 1477, 1478, 1481, 1482, 1485, 1485, 1495, 1495, - 1504, 1505, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1517, - 1517, 1525, 1525, 1550, 1550, 1580, 1580, 1592, 1593, 1596, - 1597, 1600, 1600, 1612, 1612, 1624, 1625, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1641, 1641, - 1649, 1654, 1654, 1662, 1667, 1675, 1675, 1685, 1686, 1689, - 1690, 1693, 1693, 1702, 1702, 1711, 1712, 1715, 1716, 1720, - 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, - 1733, 1733, 1743, 1743, 1753, 1753, 1761, 1761, 1769, 1769, - 1777, 1777, 1785, 1785, 1798, 1798, 1808, 1809, 1812, 1812, - 1823, 1823, 1833, 1834, 1837, 1837, 1847, 1848, 1851, 1852, - 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1864, 1866, 1866, - 1874, 1882, 1882, 1894, 1895, 1898, 1899, 1900, 1901, 1902, - 1903, 1904, 1905, 1906, 1909, 1909, 1916, 1917, 1918, 1921, - 1926, 1926, 1934, 1939, 1946, 1953, 1953, 1963, 1964, 1967, - 1968, 1969, 1970, 1971, 1974, 1974, 1982, 1982, 1992, 1992, - 2032, 2032, 2044, 2044, 2054, 2055, 2058, 2059, 2060, 2061, - 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, - 2072, 2073, 2074, 2075, 2078, 2083, 2083, 2091, 2091, 2099, - 2104, 2104, 2112, 2117, 2122, 2122, 2130, 2131, 2134, 2134, - 2142, 2147, 2152, 2152, 2160, 2163, 2166, 2169, 2172, 2178, - 2178, 2186, 2186, 2194, 2194, 2204, 2204, 2211, 2211, 2218, - 2218, 2227, 2227, 2238, 2238, 2248, 2249, 2253, 2254, 2257, - 2257, 2267, 2277, 2277, 2287, 2287, 2298, 2299, 2303, 2307, - 2307, 2319, 2320, 2324, 2324, 2332, 2333, 2336, 2337, 2338, - 2339, 2340, 2341, 2342, 2345, 2350, 2350, 2358, 2358, 2368, - 2369, 2372, 2372, 2380, 2381, 2384, 2385, 2386, 2387, 2390, - 2390, 2398, 2403, 2408 + 0, 269, 269, 269, 270, 270, 271, 271, 272, 272, + 273, 273, 274, 274, 275, 275, 276, 276, 277, 277, + 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, + 283, 283, 291, 292, 293, 294, 295, 296, 297, 300, + 305, 305, 316, 319, 320, 323, 327, 334, 334, 341, + 342, 345, 349, 356, 356, 363, 364, 367, 371, 382, + 392, 392, 407, 408, 412, 413, 414, 415, 416, 417, + 420, 420, 435, 435, 444, 445, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 493, 493, 501, + 506, 511, 516, 521, 526, 531, 536, 541, 546, 551, + 556, 561, 561, 569, 569, 580, 580, 589, 590, 593, + 594, 595, 596, 597, 600, 600, 610, 616, 616, 628, + 628, 640, 640, 650, 651, 654, 655, 658, 658, 668, + 669, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 694, 694, 701, 702, 703, 704, 707, 707, 715, + 715, 723, 723, 731, 736, 736, 744, 749, 754, 759, + 764, 769, 774, 779, 784, 784, 792, 797, 797, 805, + 805, 813, 813, 821, 821, 831, 832, 834, 836, 836, + 854, 854, 864, 865, 868, 869, 872, 877, 882, 882, + 892, 893, 896, 897, 898, 901, 906, 913, 913, 923, + 923, 933, 934, 937, 938, 941, 941, 951, 951, 961, + 962, 963, 966, 967, 970, 970, 978, 978, 986, 986, + 997, 998, 1001, 1002, 1003, 1004, 1005, 1006, 1009, 1014, + 1019, 1024, 1029, 1034, 1042, 1042, 1055, 1056, 1059, 1060, + 1067, 1067, 1093, 1093, 1104, 1105, 1109, 1110, 1111, 1112, + 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1138, 1138, 1146, 1146, 1154, 1154, 1162, + 1162, 1170, 1170, 1180, 1180, 1187, 1188, 1189, 1190, 1193, + 1198, 1206, 1206, 1217, 1218, 1222, 1223, 1226, 1226, 1234, + 1235, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1257, 1258, 1259, 1260, 1261, 1268, 1268, 1281, 1281, 1290, + 1291, 1294, 1295, 1300, 1300, 1315, 1315, 1329, 1330, 1333, + 1334, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, + 1346, 1349, 1351, 1356, 1358, 1358, 1366, 1366, 1374, 1374, + 1382, 1384, 1384, 1392, 1401, 1401, 1413, 1414, 1419, 1420, + 1425, 1425, 1437, 1437, 1449, 1450, 1455, 1456, 1461, 1462, + 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1472, 1474, 1474, + 1482, 1484, 1486, 1491, 1499, 1499, 1511, 1512, 1515, 1516, + 1519, 1519, 1529, 1529, 1538, 1539, 1542, 1543, 1544, 1545, + 1546, 1547, 1548, 1551, 1551, 1559, 1559, 1584, 1584, 1614, + 1614, 1626, 1627, 1630, 1631, 1634, 1634, 1646, 1646, 1658, + 1659, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, + 1671, 1672, 1675, 1675, 1683, 1688, 1688, 1696, 1701, 1709, + 1709, 1719, 1720, 1723, 1724, 1727, 1727, 1736, 1736, 1745, + 1746, 1749, 1750, 1754, 1755, 1756, 1757, 1758, 1759, 1760, + 1761, 1762, 1763, 1764, 1767, 1767, 1777, 1777, 1787, 1787, + 1795, 1795, 1803, 1803, 1811, 1811, 1819, 1819, 1832, 1832, + 1842, 1843, 1846, 1846, 1857, 1857, 1867, 1868, 1871, 1871, + 1881, 1882, 1885, 1886, 1889, 1890, 1891, 1892, 1893, 1894, + 1895, 1898, 1900, 1900, 1908, 1916, 1916, 1928, 1929, 1932, + 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1943, 1943, + 1950, 1951, 1952, 1955, 1960, 1960, 1968, 1973, 1980, 1987, + 1987, 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2008, 2008, + 2016, 2016, 2026, 2026, 2066, 2066, 2078, 2078, 2088, 2089, + 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, + 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2112, 2117, + 2117, 2125, 2125, 2133, 2138, 2138, 2146, 2151, 2156, 2156, + 2164, 2165, 2168, 2168, 2176, 2181, 2186, 2186, 2194, 2197, + 2200, 2203, 2206, 2212, 2212, 2220, 2220, 2228, 2228, 2238, + 2238, 2245, 2245, 2252, 2252, 2261, 2261, 2272, 2272, 2282, + 2283, 2287, 2288, 2291, 2291, 2301, 2311, 2311, 2321, 2321, + 2332, 2333, 2337, 2341, 2341, 2353, 2354, 2358, 2358, 2366, + 2367, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2379, 2384, + 2384, 2392, 2392, 2402, 2403, 2406, 2406, 2414, 2415, 2418, + 2419, 2420, 2421, 2424, 2424, 2432, 2437, 2442 }; // Print the state stack on the debug stream. @@ -5195,9 +5254,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5199 "dhcp6_parser.cc" +#line 5258 "dhcp6_parser.cc" -#line 2413 "dhcp6_parser.yy" +#line 2447 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 6b224c4b6b..4c8de5488c 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -493,143 +493,147 @@ namespace isc { namespace dhcp { TOKEN_TCP_KEEPALIVE = 296, TOKEN_TCP_NODELAY = 297, TOKEN_PREFERRED_LIFETIME = 298, - TOKEN_VALID_LIFETIME = 299, - TOKEN_RENEW_TIMER = 300, - TOKEN_REBIND_TIMER = 301, - TOKEN_CALCULATE_TEE_TIMES = 302, - TOKEN_T1_PERCENT = 303, - TOKEN_T2_PERCENT = 304, - TOKEN_DECLINE_PROBATION_PERIOD = 305, - TOKEN_SERVER_TAG = 306, - TOKEN_SUBNET6 = 307, - TOKEN_OPTION_DEF = 308, - TOKEN_OPTION_DATA = 309, - TOKEN_NAME = 310, - TOKEN_DATA = 311, - TOKEN_CODE = 312, - TOKEN_SPACE = 313, - TOKEN_CSV_FORMAT = 314, - TOKEN_ALWAYS_SEND = 315, - TOKEN_RECORD_TYPES = 316, - TOKEN_ENCAPSULATE = 317, - TOKEN_ARRAY = 318, - TOKEN_POOLS = 319, - TOKEN_POOL = 320, - TOKEN_PD_POOLS = 321, - TOKEN_PREFIX = 322, - TOKEN_PREFIX_LEN = 323, - TOKEN_EXCLUDED_PREFIX = 324, - TOKEN_EXCLUDED_PREFIX_LEN = 325, - TOKEN_DELEGATED_LEN = 326, - TOKEN_USER_CONTEXT = 327, - TOKEN_COMMENT = 328, - TOKEN_SUBNET = 329, - TOKEN_INTERFACE = 330, - TOKEN_INTERFACE_ID = 331, - TOKEN_ID = 332, - TOKEN_RAPID_COMMIT = 333, - TOKEN_RESERVATION_MODE = 334, - TOKEN_DISABLED = 335, - TOKEN_OUT_OF_POOL = 336, - TOKEN_GLOBAL = 337, - TOKEN_ALL = 338, - TOKEN_SHARED_NETWORKS = 339, - TOKEN_MAC_SOURCES = 340, - TOKEN_RELAY_SUPPLIED_OPTIONS = 341, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 342, - TOKEN_SANITY_CHECKS = 343, - TOKEN_LEASE_CHECKS = 344, - TOKEN_CLIENT_CLASSES = 345, - TOKEN_REQUIRE_CLIENT_CLASSES = 346, - TOKEN_TEST = 347, - TOKEN_ONLY_IF_REQUIRED = 348, - TOKEN_CLIENT_CLASS = 349, - TOKEN_RESERVATIONS = 350, - TOKEN_IP_ADDRESSES = 351, - TOKEN_PREFIXES = 352, - TOKEN_DUID = 353, - TOKEN_HW_ADDRESS = 354, - TOKEN_HOSTNAME = 355, - TOKEN_FLEX_ID = 356, - TOKEN_RELAY = 357, - TOKEN_IP_ADDRESS = 358, - TOKEN_HOOKS_LIBRARIES = 359, - TOKEN_LIBRARY = 360, - TOKEN_PARAMETERS = 361, - TOKEN_EXPIRED_LEASES_PROCESSING = 362, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 363, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 364, - TOKEN_HOLD_RECLAIMED_TIME = 365, - TOKEN_MAX_RECLAIM_LEASES = 366, - TOKEN_MAX_RECLAIM_TIME = 367, - TOKEN_UNWARNED_RECLAIM_CYCLES = 368, - TOKEN_SERVER_ID = 369, - TOKEN_LLT = 370, - TOKEN_EN = 371, - TOKEN_LL = 372, - TOKEN_IDENTIFIER = 373, - TOKEN_HTYPE = 374, - TOKEN_TIME = 375, - TOKEN_ENTERPRISE_ID = 376, - TOKEN_DHCP4O6_PORT = 377, - TOKEN_CONTROL_SOCKET = 378, - TOKEN_SOCKET_TYPE = 379, - TOKEN_SOCKET_NAME = 380, - TOKEN_DHCP_QUEUE_CONTROL = 381, - TOKEN_DHCP_DDNS = 382, - TOKEN_ENABLE_UPDATES = 383, - TOKEN_QUALIFYING_SUFFIX = 384, - TOKEN_SERVER_IP = 385, - TOKEN_SERVER_PORT = 386, - TOKEN_SENDER_IP = 387, - TOKEN_SENDER_PORT = 388, - TOKEN_MAX_QUEUE_SIZE = 389, - TOKEN_NCR_PROTOCOL = 390, - TOKEN_NCR_FORMAT = 391, - TOKEN_OVERRIDE_NO_UPDATE = 392, - TOKEN_OVERRIDE_CLIENT_UPDATE = 393, - TOKEN_REPLACE_CLIENT_NAME = 394, - TOKEN_GENERATED_PREFIX = 395, - TOKEN_UDP = 396, - TOKEN_TCP = 397, - TOKEN_JSON = 398, - TOKEN_WHEN_PRESENT = 399, - TOKEN_NEVER = 400, - TOKEN_ALWAYS = 401, - TOKEN_WHEN_NOT_PRESENT = 402, - TOKEN_HOSTNAME_CHAR_SET = 403, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 404, - TOKEN_LOGGING = 405, - TOKEN_LOGGERS = 406, - TOKEN_OUTPUT_OPTIONS = 407, - TOKEN_OUTPUT = 408, - TOKEN_DEBUGLEVEL = 409, - TOKEN_SEVERITY = 410, - TOKEN_FLUSH = 411, - TOKEN_MAXSIZE = 412, - TOKEN_MAXVER = 413, - TOKEN_DHCP4 = 414, - TOKEN_DHCPDDNS = 415, - TOKEN_CONTROL_AGENT = 416, - TOKEN_TOPLEVEL_JSON = 417, - TOKEN_TOPLEVEL_DHCP6 = 418, - TOKEN_SUB_DHCP6 = 419, - TOKEN_SUB_INTERFACES6 = 420, - TOKEN_SUB_SUBNET6 = 421, - TOKEN_SUB_POOL6 = 422, - TOKEN_SUB_PD_POOL = 423, - TOKEN_SUB_RESERVATION = 424, - TOKEN_SUB_OPTION_DEFS = 425, - TOKEN_SUB_OPTION_DEF = 426, - TOKEN_SUB_OPTION_DATA = 427, - TOKEN_SUB_HOOKS_LIBRARY = 428, - TOKEN_SUB_DHCP_DDNS = 429, - TOKEN_SUB_LOGGING = 430, - TOKEN_SUB_CONFIG_CONTROL = 431, - TOKEN_STRING = 432, - TOKEN_INTEGER = 433, - TOKEN_FLOAT = 434, - TOKEN_BOOLEAN = 435 + TOKEN_MIN_PREFERRED_LIFETIME = 299, + TOKEN_MAX_PREFERRED_LIFETIME = 300, + TOKEN_VALID_LIFETIME = 301, + TOKEN_MIN_VALID_LIFETIME = 302, + TOKEN_MAX_VALID_LIFETIME = 303, + TOKEN_RENEW_TIMER = 304, + TOKEN_REBIND_TIMER = 305, + TOKEN_CALCULATE_TEE_TIMES = 306, + TOKEN_T1_PERCENT = 307, + TOKEN_T2_PERCENT = 308, + TOKEN_DECLINE_PROBATION_PERIOD = 309, + TOKEN_SERVER_TAG = 310, + TOKEN_SUBNET6 = 311, + TOKEN_OPTION_DEF = 312, + TOKEN_OPTION_DATA = 313, + TOKEN_NAME = 314, + TOKEN_DATA = 315, + TOKEN_CODE = 316, + TOKEN_SPACE = 317, + TOKEN_CSV_FORMAT = 318, + TOKEN_ALWAYS_SEND = 319, + TOKEN_RECORD_TYPES = 320, + TOKEN_ENCAPSULATE = 321, + TOKEN_ARRAY = 322, + TOKEN_POOLS = 323, + TOKEN_POOL = 324, + TOKEN_PD_POOLS = 325, + TOKEN_PREFIX = 326, + TOKEN_PREFIX_LEN = 327, + TOKEN_EXCLUDED_PREFIX = 328, + TOKEN_EXCLUDED_PREFIX_LEN = 329, + TOKEN_DELEGATED_LEN = 330, + TOKEN_USER_CONTEXT = 331, + TOKEN_COMMENT = 332, + TOKEN_SUBNET = 333, + TOKEN_INTERFACE = 334, + TOKEN_INTERFACE_ID = 335, + TOKEN_ID = 336, + TOKEN_RAPID_COMMIT = 337, + TOKEN_RESERVATION_MODE = 338, + TOKEN_DISABLED = 339, + TOKEN_OUT_OF_POOL = 340, + TOKEN_GLOBAL = 341, + TOKEN_ALL = 342, + TOKEN_SHARED_NETWORKS = 343, + TOKEN_MAC_SOURCES = 344, + TOKEN_RELAY_SUPPLIED_OPTIONS = 345, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 346, + TOKEN_SANITY_CHECKS = 347, + TOKEN_LEASE_CHECKS = 348, + TOKEN_CLIENT_CLASSES = 349, + TOKEN_REQUIRE_CLIENT_CLASSES = 350, + TOKEN_TEST = 351, + TOKEN_ONLY_IF_REQUIRED = 352, + TOKEN_CLIENT_CLASS = 353, + TOKEN_RESERVATIONS = 354, + TOKEN_IP_ADDRESSES = 355, + TOKEN_PREFIXES = 356, + TOKEN_DUID = 357, + TOKEN_HW_ADDRESS = 358, + TOKEN_HOSTNAME = 359, + TOKEN_FLEX_ID = 360, + TOKEN_RELAY = 361, + TOKEN_IP_ADDRESS = 362, + TOKEN_HOOKS_LIBRARIES = 363, + TOKEN_LIBRARY = 364, + TOKEN_PARAMETERS = 365, + TOKEN_EXPIRED_LEASES_PROCESSING = 366, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 367, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 368, + TOKEN_HOLD_RECLAIMED_TIME = 369, + TOKEN_MAX_RECLAIM_LEASES = 370, + TOKEN_MAX_RECLAIM_TIME = 371, + TOKEN_UNWARNED_RECLAIM_CYCLES = 372, + TOKEN_SERVER_ID = 373, + TOKEN_LLT = 374, + TOKEN_EN = 375, + TOKEN_LL = 376, + TOKEN_IDENTIFIER = 377, + TOKEN_HTYPE = 378, + TOKEN_TIME = 379, + TOKEN_ENTERPRISE_ID = 380, + TOKEN_DHCP4O6_PORT = 381, + TOKEN_CONTROL_SOCKET = 382, + TOKEN_SOCKET_TYPE = 383, + TOKEN_SOCKET_NAME = 384, + TOKEN_DHCP_QUEUE_CONTROL = 385, + TOKEN_DHCP_DDNS = 386, + TOKEN_ENABLE_UPDATES = 387, + TOKEN_QUALIFYING_SUFFIX = 388, + TOKEN_SERVER_IP = 389, + TOKEN_SERVER_PORT = 390, + TOKEN_SENDER_IP = 391, + TOKEN_SENDER_PORT = 392, + TOKEN_MAX_QUEUE_SIZE = 393, + TOKEN_NCR_PROTOCOL = 394, + TOKEN_NCR_FORMAT = 395, + TOKEN_OVERRIDE_NO_UPDATE = 396, + TOKEN_OVERRIDE_CLIENT_UPDATE = 397, + TOKEN_REPLACE_CLIENT_NAME = 398, + TOKEN_GENERATED_PREFIX = 399, + TOKEN_UDP = 400, + TOKEN_TCP = 401, + TOKEN_JSON = 402, + TOKEN_WHEN_PRESENT = 403, + TOKEN_NEVER = 404, + TOKEN_ALWAYS = 405, + TOKEN_WHEN_NOT_PRESENT = 406, + TOKEN_HOSTNAME_CHAR_SET = 407, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 408, + TOKEN_LOGGING = 409, + TOKEN_LOGGERS = 410, + TOKEN_OUTPUT_OPTIONS = 411, + TOKEN_OUTPUT = 412, + TOKEN_DEBUGLEVEL = 413, + TOKEN_SEVERITY = 414, + TOKEN_FLUSH = 415, + TOKEN_MAXSIZE = 416, + TOKEN_MAXVER = 417, + TOKEN_DHCP4 = 418, + TOKEN_DHCPDDNS = 419, + TOKEN_CONTROL_AGENT = 420, + TOKEN_TOPLEVEL_JSON = 421, + TOKEN_TOPLEVEL_DHCP6 = 422, + TOKEN_SUB_DHCP6 = 423, + TOKEN_SUB_INTERFACES6 = 424, + TOKEN_SUB_SUBNET6 = 425, + TOKEN_SUB_POOL6 = 426, + TOKEN_SUB_PD_POOL = 427, + TOKEN_SUB_RESERVATION = 428, + TOKEN_SUB_OPTION_DEFS = 429, + TOKEN_SUB_OPTION_DEF = 430, + TOKEN_SUB_OPTION_DATA = 431, + TOKEN_SUB_HOOKS_LIBRARY = 432, + TOKEN_SUB_DHCP_DDNS = 433, + TOKEN_SUB_LOGGING = 434, + TOKEN_SUB_CONFIG_CONTROL = 435, + TOKEN_STRING = 436, + TOKEN_INTEGER = 437, + TOKEN_FLOAT = 438, + TOKEN_BOOLEAN = 439 }; }; @@ -771,29 +775,29 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.template destroy< ElementPtr > (); break; - case 180: // "boolean" + case 184: // "boolean" value.template destroy< bool > (); break; - case 179: // "floating point" + case 183: // "floating point" value.template destroy< double > (); break; - case 178: // "integer" + case 182: // "integer" value.template destroy< int64_t > (); break; - case 177: // "constant string" + case 181: // "constant string" value.template destroy< std::string > (); break; @@ -876,13 +880,13 @@ switch (yytype) symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) { - YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); + YYASSERT (tok == token::TOKEN_END || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_DHCP6 || tok == token::TOKEN_DATA_DIRECTORY || tok == token::TOKEN_CONFIG_CONTROL || tok == token::TOKEN_CONFIG_DATABASES || tok == token::TOKEN_CONFIG_FETCH_WAIT_TIME || tok == token::TOKEN_INTERFACES_CONFIG || tok == token::TOKEN_INTERFACES || tok == token::TOKEN_RE_DETECT || tok == token::TOKEN_LEASE_DATABASE || tok == token::TOKEN_HOSTS_DATABASE || tok == token::TOKEN_HOSTS_DATABASES || tok == token::TOKEN_TYPE || tok == token::TOKEN_MEMFILE || tok == token::TOKEN_MYSQL || tok == token::TOKEN_POSTGRESQL || tok == token::TOKEN_CQL || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_HOST || tok == token::TOKEN_PORT || tok == token::TOKEN_PERSIST || tok == token::TOKEN_LFC_INTERVAL || tok == token::TOKEN_READONLY || tok == token::TOKEN_CONNECT_TIMEOUT || tok == token::TOKEN_CONTACT_POINTS || tok == token::TOKEN_MAX_RECONNECT_TRIES || tok == token::TOKEN_RECONNECT_WAIT_TIME || tok == token::TOKEN_KEYSPACE || tok == token::TOKEN_CONSISTENCY || tok == token::TOKEN_SERIAL_CONSISTENCY || tok == token::TOKEN_REQUEST_TIMEOUT || tok == token::TOKEN_TCP_KEEPALIVE || tok == token::TOKEN_TCP_NODELAY || tok == token::TOKEN_PREFERRED_LIFETIME || tok == token::TOKEN_MIN_PREFERRED_LIFETIME || tok == token::TOKEN_MAX_PREFERRED_LIFETIME || tok == token::TOKEN_VALID_LIFETIME || tok == token::TOKEN_MIN_VALID_LIFETIME || tok == token::TOKEN_MAX_VALID_LIFETIME || tok == token::TOKEN_RENEW_TIMER || tok == token::TOKEN_REBIND_TIMER || tok == token::TOKEN_CALCULATE_TEE_TIMES || tok == token::TOKEN_T1_PERCENT || tok == token::TOKEN_T2_PERCENT || tok == token::TOKEN_DECLINE_PROBATION_PERIOD || tok == token::TOKEN_SERVER_TAG || tok == token::TOKEN_SUBNET6 || tok == token::TOKEN_OPTION_DEF || tok == token::TOKEN_OPTION_DATA || tok == token::TOKEN_NAME || tok == token::TOKEN_DATA || tok == token::TOKEN_CODE || tok == token::TOKEN_SPACE || tok == token::TOKEN_CSV_FORMAT || tok == token::TOKEN_ALWAYS_SEND || tok == token::TOKEN_RECORD_TYPES || tok == token::TOKEN_ENCAPSULATE || tok == token::TOKEN_ARRAY || tok == token::TOKEN_POOLS || tok == token::TOKEN_POOL || tok == token::TOKEN_PD_POOLS || tok == token::TOKEN_PREFIX || tok == token::TOKEN_PREFIX_LEN || tok == token::TOKEN_EXCLUDED_PREFIX || tok == token::TOKEN_EXCLUDED_PREFIX_LEN || tok == token::TOKEN_DELEGATED_LEN || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_SUBNET || tok == token::TOKEN_INTERFACE || tok == token::TOKEN_INTERFACE_ID || tok == token::TOKEN_ID || tok == token::TOKEN_RAPID_COMMIT || tok == token::TOKEN_RESERVATION_MODE || tok == token::TOKEN_DISABLED || tok == token::TOKEN_OUT_OF_POOL || tok == token::TOKEN_GLOBAL || tok == token::TOKEN_ALL || tok == token::TOKEN_SHARED_NETWORKS || tok == token::TOKEN_MAC_SOURCES || tok == token::TOKEN_RELAY_SUPPLIED_OPTIONS || tok == token::TOKEN_HOST_RESERVATION_IDENTIFIERS || tok == token::TOKEN_SANITY_CHECKS || tok == token::TOKEN_LEASE_CHECKS || tok == token::TOKEN_CLIENT_CLASSES || tok == token::TOKEN_REQUIRE_CLIENT_CLASSES || tok == token::TOKEN_TEST || tok == token::TOKEN_ONLY_IF_REQUIRED || tok == token::TOKEN_CLIENT_CLASS || tok == token::TOKEN_RESERVATIONS || tok == token::TOKEN_IP_ADDRESSES || tok == token::TOKEN_PREFIXES || tok == token::TOKEN_DUID || tok == token::TOKEN_HW_ADDRESS || tok == token::TOKEN_HOSTNAME || tok == token::TOKEN_FLEX_ID || tok == token::TOKEN_RELAY || tok == token::TOKEN_IP_ADDRESS || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_EXPIRED_LEASES_PROCESSING || tok == token::TOKEN_RECLAIM_TIMER_WAIT_TIME || tok == token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME || tok == token::TOKEN_HOLD_RECLAIMED_TIME || tok == token::TOKEN_MAX_RECLAIM_LEASES || tok == token::TOKEN_MAX_RECLAIM_TIME || tok == token::TOKEN_UNWARNED_RECLAIM_CYCLES || tok == token::TOKEN_SERVER_ID || tok == token::TOKEN_LLT || tok == token::TOKEN_EN || tok == token::TOKEN_LL || tok == token::TOKEN_IDENTIFIER || tok == token::TOKEN_HTYPE || tok == token::TOKEN_TIME || tok == token::TOKEN_ENTERPRISE_ID || tok == token::TOKEN_DHCP4O6_PORT || tok == token::TOKEN_CONTROL_SOCKET || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_DHCP_QUEUE_CONTROL || tok == token::TOKEN_DHCP_DDNS || tok == token::TOKEN_ENABLE_UPDATES || tok == token::TOKEN_QUALIFYING_SUFFIX || tok == token::TOKEN_SERVER_IP || tok == token::TOKEN_SERVER_PORT || tok == token::TOKEN_SENDER_IP || tok == token::TOKEN_SENDER_PORT || tok == token::TOKEN_MAX_QUEUE_SIZE || tok == token::TOKEN_NCR_PROTOCOL || tok == token::TOKEN_NCR_FORMAT || tok == token::TOKEN_OVERRIDE_NO_UPDATE || tok == token::TOKEN_OVERRIDE_CLIENT_UPDATE || tok == token::TOKEN_REPLACE_CLIENT_NAME || tok == token::TOKEN_GENERATED_PREFIX || tok == token::TOKEN_UDP || tok == token::TOKEN_TCP || tok == token::TOKEN_JSON || tok == token::TOKEN_WHEN_PRESENT || tok == token::TOKEN_NEVER || tok == token::TOKEN_ALWAYS || tok == token::TOKEN_WHEN_NOT_PRESENT || tok == token::TOKEN_HOSTNAME_CHAR_SET || tok == token::TOKEN_HOSTNAME_CHAR_REPLACEMENT || tok == token::TOKEN_LOGGING || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_DHCP4 || tok == token::TOKEN_DHCPDDNS || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_TOPLEVEL_JSON || tok == token::TOKEN_TOPLEVEL_DHCP6 || tok == token::TOKEN_SUB_DHCP6 || tok == token::TOKEN_SUB_INTERFACES6 || tok == token::TOKEN_SUB_SUBNET6 || tok == token::TOKEN_SUB_POOL6 || tok == token::TOKEN_SUB_PD_POOL || tok == token::TOKEN_SUB_RESERVATION || tok == token::TOKEN_SUB_OPTION_DEFS || tok == token::TOKEN_SUB_OPTION_DEF || tok == token::TOKEN_SUB_OPTION_DATA || tok == token::TOKEN_SUB_HOOKS_LIBRARY || tok == token::TOKEN_SUB_DHCP_DDNS || tok == token::TOKEN_SUB_LOGGING || tok == token::TOKEN_SUB_CONFIG_CONTROL); } #endif #if 201103L <= YY_CPLUSPLUS @@ -1604,6 +1608,36 @@ switch (yytype) return symbol_type (token::TOKEN_PREFERRED_LIFETIME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MIN_PREFERRED_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MIN_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_PREFERRED_LIFETIME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAX_PREFERRED_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MAX_PREFERRED_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_PREFERRED_LIFETIME, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -1619,6 +1653,36 @@ switch (yytype) return symbol_type (token::TOKEN_VALID_LIFETIME, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MIN_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MIN_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MIN_VALID_LIFETIME, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAX_VALID_LIFETIME (location_type l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, std::move (l)); + } +#else + static + symbol_type + make_MAX_VALID_LIFETIME (const location_type& l) + { + return symbol_type (token::TOKEN_MAX_VALID_LIFETIME, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -3965,12 +4029,12 @@ switch (yytype) enum { yyeof_ = 0, - yylast_ = 1064, ///< Last index in yytable_. - yynnts_ = 399, ///< Number of nonterminal symbols. + yylast_ = 1102, ///< Last index in yytable_. + yynnts_ = 403, ///< Number of nonterminal symbols. yyfinal_ = 32, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 181 ///< Number of tokens. + yyntokens_ = 185 ///< Number of tokens. }; @@ -4031,9 +4095,9 @@ switch (yytype) 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180 + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184 }; - const unsigned user_token_number_max_ = 435; + const unsigned user_token_number_max_ = 439; const token_number_type undef_token_ = 2; if (static_cast (t) <= yyeof_) @@ -4054,29 +4118,29 @@ switch (yytype) { switch (this->type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.move< ElementPtr > (std::move (that.value)); break; - case 180: // "boolean" + case 184: // "boolean" value.move< bool > (std::move (that.value)); break; - case 179: // "floating point" + case 183: // "floating point" value.move< double > (std::move (that.value)); break; - case 178: // "integer" + case 182: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 177: // "constant string" + case 181: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -4095,29 +4159,29 @@ switch (yytype) { switch (this->type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 180: // "boolean" + case 184: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 179: // "floating point" + case 183: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 178: // "integer" + case 182: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 177: // "constant string" + case 181: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -4143,29 +4207,29 @@ switch (yytype) super_type::move (s); switch (this->type_get ()) { - case 198: // value - case 202: // map_value - case 259: // db_type - case 352: // hr_mode - case 488: // duid_type - case 523: // ncr_protocol_value - case 530: // replace_client_name_value + case 202: // value + case 206: // map_value + case 267: // db_type + case 360: // hr_mode + case 496: // duid_type + case 531: // ncr_protocol_value + case 538: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 180: // "boolean" + case 184: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 179: // "floating point" + case 183: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 178: // "integer" + case 182: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 177: // "constant string" + case 181: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -4251,14 +4315,14 @@ switch (yytype) 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435 + 435, 436, 437, 438, 439 }; return token_type (yytoken_number_[type]); } #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 4262 "dhcp6_parser.h" +#line 4326 "dhcp6_parser.h"