]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#897,!505] regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Mon, 9 Sep 2019 13:14:45 +0000 (13:14 +0000)
committerFrancis Dupont <fdupont@isc.org>
Mon, 9 Sep 2019 13:14:45 +0000 (13:14 +0000)
12 files changed:
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/location.hh
src/bin/dhcp4/position.hh
src/bin/dhcp4/stack.hh
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/location.hh
src/bin/dhcp6/position.hh
src/bin/dhcp6/stack.hh

index 5801017ad41f6a9a2d0f65d6bec6c293cd4d0621..415666405ac5cb333ccf0caab1da1774a755fae1 100644 (file)
@@ -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 185
-#define YY_END_OF_BUFFER 186
+#define YY_NUM_RULES 186
+#define YY_END_OF_BUFFER 187
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1597] =
+static const flex_int16_t yy_accept[1614] =
     {   0,
-      178,  178,    0,    0,    0,    0,    0,    0,    0,    0,
-      186,  184,   10,   11,  184,    1,  178,  175,  178,  178,
-      184,  177,  176,  184,  184,  184,  184,  184,  171,  172,
-      184,  184,  184,  173,  174,    5,    5,    5,  184,  184,
-      184,   10,   11,    0,    0,  167,    0,    0,    0,    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,
         0,    0,    0,    0,    0,    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,
-      178,  178,    0,  177,  178,    3,    2,    6,    0,  178,
+      179,  179,    0,  178,  179,    3,    2,    6,    0,  179,
         0,    0,    0,    0,    0,    0,    4,    0,    0,    9,
 
-        0,  168,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  170,    0,    0,    0,
+        0,  169,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  171,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -724,160 +724,162 @@ static const flex_int16_t yy_accept[1597] =
         0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
         8,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,  169,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  170,    0,    0,    0,    0,
         0,    0,    0,    0,    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,    0,    0,    0,    0,    0,    0,   74,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    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,  181,    0,  180,
+        0,    0,    0,    0,    0,    0,  184,  182,    0,  181,
 
-      179,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  147,    0,  146,    0,    0,   79,    0,    0,    0,
+      180,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  148,    0,  147,    0,    0,   80,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       35,    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,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   76,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   77,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   17,    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,   18,    0,
-        0,    0,    0,  182,  179,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  148,    0,    0,  150,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   80,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
+        0,    0,    0,    0,  183,  180,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  149,    0,    0,  151,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       81,    0,    0,    0,    0,    0,    0,    0,   66,    0,
+        0,    0,    0,    0,  102,    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,    0,    0,   65,    0,    0,    0,
-        0,    0,  101,    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,    0,    0,   64,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
 
-       39,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       69,    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,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
-       31,    0,    0,   36,    0,    0,    0,    0,    0,    0,
-        0,    0,   12,  155,    0,  152,    0,  151,    0,    0,
-        0,  111,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   99,   31,    0,    0,   36,    0,    0,    0,    0,
+        0,    0,    0,    0,   12,  156,    0,  153,    0,  152,
+        0,    0,    0,    0,  112,    0,    0,    0,    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,    0,    0,    0,   91,
         0,    0,    0,    0,    0,    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,   67,    0,    0,    0,
-        0,    0,    0,    0,    0,  112,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    7,
-        0,    0,  153,    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,   68,
+        0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  108,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    7,    0,    0,  154,    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,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
         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,   88,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       93,    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,    0,    0,
-        0,    0,    0,    0,   71,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   85,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,   70,    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,  105,    0,
+        0,    0,   86,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   71,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,  117,   86,    0,    0,    0,    0,    0,
-        0,   91,   32,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   93,   40,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  118,   87,
+        0,    0,    0,    0,    0,    0,   92,   32,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+       94,   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,    0,   61,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   60,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  156,    0,    0,    0,    0,
+      157,    0,    0,    0,    0,    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,  106,
+        0,    0,    0,    0,    0,   76,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,   43,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  107,    0,    0,    0,    0,
+        0,   43,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    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,   37,    0,    0,    0,   30,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       94,    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,    0,    0,    0,
-        0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  130,    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,  131,    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,   73,    0,    0,
         0,    0,    0,    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,  135,
-        0,    0,    0,  133,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  160,    0,
-        0,    0,    0,    0,    0,    0,  104,    0,    0,    0,
-        0,    0,    0,    0,    0,  108,   89,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  102,   22,    0,  113,    0,    0,    0,    0,
+        0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  136,    0,    0,    0,
+      134,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  161,    0,    0,    0,    0,
+        0,    0,    0,    0,  105,    0,    0,    0,    0,    0,
+        0,    0,    0,  109,   90,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,  139,    0,    0,
-        0,    0,   62,    0,    0,    0,    0,    0,  116,   34,
+      103,   22,    0,  114,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,  140,    0,    0,    0,    0,
+       63,    0,    0,    0,    0,    0,  117,   34,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   60,    0,    0,    0,   84,   85,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   67,    0,    0,    0,    0,    0,    0,    0,    0,
+       44,    0,    0,    0,    0,    0,    0,    0,    0,  111,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   59,    0,    0,    0,
-       83,   84,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   66,    0,    0,    0,    0,    0,    0,    0,
-        0,   44,    0,    0,    0,    0,    0,    0,    0,    0,
-      110,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  164,    0,   63,   77,    0,    0,    0,    0,
-
-        0,    0,    0,    0,    0,   56,    0,    0,    0,    0,
-        0,    0,    0,  136,    0,    0,  134,    0,  128,  127,
-        0,   49,    0,   21,    0,    0,    0,    0,    0,  149,
-        0,    0,    0,   97,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  125,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  114,   15,    0,   41,
-        0,    0,    0,    0,    0,    0,    0,    0,  138,    0,
-        0,    0,    0,    0,    0,   57,    0,    0,  109,    0,
-        0,    0,    0,  100,    0,    0,    0,    0,    0,    0,
-        0,   69,    0,  158,    0,  157,    0,  163,    0,    0,
 
+        0,  165,    0,   64,   78,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   56,    0,    0,    0,    0,    0,
+        0,    0,  137,    0,    0,  135,    0,  129,  128,    0,
+       49,    0,   21,    0,    0,    0,    0,    0,  150,    0,
+        0,    0,    0,   98,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  126,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  115,   15,    0,   41,
+        0,    0,    0,    0,    0,    0,    0,    0,  139,    0,
+        0,    0,    0,    0,    0,   57,    0,    0,  110,    0,
+        0,    0,    0,  101,    0,    0,    0,    0,    0,    0,
+
+        0,   70,    0,  159,    0,  158,    0,    0,  164,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    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,  166,    0,   95,   27,    0,    0,    0,   50,
-      126,    0,    0,    0,  161,  131,    0,    0,    0,    0,
-        0,    0,    0,    0,   25,    0,    0,   24,    0,  137,
-        0,    0,    0,   52,    0,    0,    0,    0,   87,    0,
+        0,    0,    0,    0,   14,    0,    0,    0,   48,    0,
+        0,    0,    0,    0,  167,    0,   96,   27,    0,    0,
+        0,   50,  127,    0,    0,    0,  162,  132,    0,    0,
+        0,    0,    0,    0,    0,    0,   25,    0,    0,   24,
+        0,  138,    0,    0,    0,   52,    0,    0,    0,    0,
+
+       88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   53,    0,    0,    0,    0,
+        0,    0,   42,    0,    0,    0,    0,    0,    0,    0,
+      116,    0,    0,    0,   26,    0,  163,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,    0,    0,   53,    0,    0,    0,    0,    0,   42,
-        0,    0,    0,    0,    0,    0,    0,  115,    0,    0,
-        0,   26,    0,  162,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   47,    0,    0,
-       20,    0,  165,   61,    0,  159,  154,    0,   28,    0,
-        0,    0,   16,    0,    0,  143,    0,    0,    0,    0,
-        0,    0,  123,    0,    0,    0,   99,    0,    0,    0,
-        0,    0,    0,    0,    0,   74,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  144,   13,    0,
-        0,    0,    0,    0,    0,    0,  132,    0,    0,    0,
-
-        0,    0,    0,    0,    0,    0,  129,    0,    0,    0,
-        0,    0,  122,    0,   55,   54,   19,    0,  140,    0,
-        0,    0,    0,   45,    0,   82,    0,    0,    0,    0,
-      121,    0,    0,   51,    0,    0,   46,  142,    0,    0,
+       47,    0,    0,   20,    0,  166,   62,    0,  160,  155,
+        0,    0,   28,    0,    0,    0,   16,    0,    0,  144,
+        0,    0,    0,    0,    0,    0,  124,    0,    0,    0,
+      100,    0,    0,    0,    0,    0,    0,    0,    0,   75,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,  145,   13,    0,    0,    0,    0,    0,    0,
+        0,  133,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  130,    0,    0,    0,    0,    0,  123,    0,
+       55,   54,   19,    0,  141,    0,    0,    0,    0,   45,
+        0,   58,   83,    0,    0,    0,    0,  122,    0,    0,
+       51,    0,    0,   46,  143,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       29,    0,    0,    0,    0,    0,  141,    0,   96,    0,
-        0,    0,    0,    0,    0,  119,  124,   58,    0,    0,
-        0,    0,  118,    0,    0,  145,    0,    0,    0,    0,
-        0,   81,    0,    0,  120,    0
+        0,    0,    0,    0,    0,    0,    0,   29,    0,    0,
+        0,    0,    0,  142,    0,   97,    0,    0,    0,    0,
+        0,    0,  120,  125,   59,    0,    0,    0,    0,  119,
 
+        0,    0,  146,    0,    0,    0,    0,    0,   82,    0,
+        0,  121,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -924,377 +926,381 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1609] =
+static const flex_int16_t yy_base[1626] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     1997, 1998,   34, 1993,  145,    0,  207, 1998,  214,  221,
-       13,  228, 1998, 1973,  118,   25,    2,    6, 1998, 1998,
-       73,   11,   17, 1998, 1998, 1998,  104, 1981, 1934,    0,
-     1971,  108, 1988,   24,  262, 1998, 1930,   67, 1929, 1935,
-       84,   75, 1927,   88,  226,   91,   89,  290,  196, 1926,
-      206,  285,  206,  210,  219,   60,  223, 1935,  247,  290,
-      315,  303,  231, 1918,  297,  321,  343,  324, 1937,    0,
-      380,  387,  401,  408,  424, 1998,    0, 1998,  429,  438,
-      216,  249,  220,  315,  335,  266, 1998, 1934, 1975, 1998,
-
-      342, 1998,  421, 1962,  312, 1920, 1930,  400,   10, 1925,
-      361,  323,  370,  387,  359, 1970,    0,  474,  392, 1912,
-     1909, 1913, 1915, 1908, 1916,  412, 1912, 1901, 1902,   78,
-     1918, 1901, 1910, 1910,   95, 1901,  400, 1902, 1900,  405,
-     1948, 1952, 1892, 1945, 1885, 1908, 1905, 1905, 1899,  310,
-     1892, 1890, 1884, 1889, 1883,  436, 1894, 1887, 1878, 1877,
-     1891,  413, 1877,  419, 1893, 1870,  470,  191,  400, 1891,
-     1888, 1889, 1887, 1922, 1921,  451, 1867, 1869,  472, 1861,
-     1878, 1870,    0,  471,  462,  446,  472,  473,  487, 1869,
-     1998,    0, 1914,  492, 1859, 1862,  475,  481, 1870,  499,
-
-     1915,  501, 1914,  509, 1913, 1998,  555, 1912,  519, 1871,
-     1863, 1850, 1866, 1865, 1862, 1861, 1852,  493, 1903, 1897,
-     1861, 1840, 1848, 1843, 1857, 1853, 1841, 1853, 1853, 1844,
-     1828, 1832, 1845, 1847, 1844, 1836, 1826, 1844, 1998, 1839,
-     1842, 1823, 1822, 1874, 1821, 1831, 1834,  483, 1830, 1869,
-     1817, 1828, 1866, 1811, 1869, 1804, 1819,  498, 1809, 1825,
-     1806, 1804, 1804, 1810, 1801, 1800, 1807, 1857, 1813, 1812,
-     1806,  486, 1813, 1808, 1800, 1790, 1805, 1804, 1799, 1803,
-      322, 1801, 1787, 1793, 1800, 1788, 1785, 1784,  542, 1779,
-     1793, 1836, 1795,  366, 1786,  527, 1998, 1998,  534, 1998,
-
-     1998, 1773,    0,  241,  515, 1775,  549,  536, 1831, 1782,
-      525, 1998, 1829, 1998, 1823,  593, 1998,  521, 1763, 1772,
-     1820, 1764, 1763, 1769, 1821, 1776, 1771, 1774, 1769,  530,
-     1998, 1771, 1815, 1768, 1765,  578, 1771, 1811, 1805, 1758,
-     1753, 1750, 1801, 1758, 1747, 1763, 1797, 1743,  586, 1757,
-     1742, 1755, 1742, 1752, 1747, 1754, 1749, 1745,  560, 1743,
-     1746, 1741, 1727, 1736, 1786,  513, 1780, 1998, 1779, 1729,
-     1728, 1727, 1720, 1722, 1726, 1715, 1732, 1727,  549, 1774,
-     1727, 1724, 1998, 1727, 1716, 1716, 1728,  531, 1703, 1704,
-     1725,  546, 1707, 1758, 1703, 1717, 1720, 1715, 1701, 1713,
-
-     1712, 1711, 1710, 1709, 1708,  556, 1751, 1750, 1998, 1692,
-     1691,  618, 1704, 1998, 1998, 1703,    0, 1692, 1684,  562,
-     1689, 1742, 1741, 1697, 1739, 1998, 1685, 1737, 1998,  596,
-      644,  589, 1736, 1678, 1689, 1682, 1684, 1672, 1998, 1677,
-     1683, 1686, 1669, 1684, 1671, 1670, 1998, 1672, 1669,  584,
-     1667, 1669, 1998, 1677, 1674, 1659, 1672, 1667,  625, 1674,
-     1662, 1655, 1706, 1998, 1653, 1669, 1703, 1664, 1661, 1662,
-     1664, 1698, 1649, 1644, 1643, 1694, 1638,  587, 1657, 1631,
-     1638, 1643, 1653, 1692, 1998, 1637, 1633, 1631, 1640, 1634,
-     1641, 1625, 1625, 1635, 1638, 1627, 1623, 1621, 1998, 1678,
-
-     1998, 1620, 1631, 1616, 1621, 1630, 1624, 1618, 1627, 1669,
-     1663, 1625, 1608, 1608, 1603, 1623, 1598, 1604, 1609, 1602,
-     1610, 1614, 1597, 1655, 1595, 1596, 1595, 1607, 1596, 1998,
-     1998, 1596, 1594, 1998, 1605, 1641, 1601,    0, 1585, 1602,
-     1642, 1590, 1998, 1998, 1587, 1998, 1593, 1998,  554,  600,
-      643, 1998, 1590, 1589, 1596, 1576, 1629, 1574, 1627, 1572,
-     1571, 1570, 1577, 1570, 1582, 1581, 1581, 1563, 1568, 1609,
-     1576, 1568, 1613, 1557, 1573, 1572, 1998, 1557, 1554, 1612,
-     1567, 1559, 1565, 1556, 1564, 1549, 1565, 1547, 1561,  603,
-     1543, 1537, 1542, 1557, 1554, 1555, 1534, 1544, 1550, 1593,
-
-     1548, 1540, 1998, 1533, 1535, 1544, 1542, 1581, 1580, 1531,
-       16, 1540, 1523, 1524, 1527, 1520, 1998, 1534, 1513, 1532,
-     1524, 1569, 1521, 1528, 1566, 1998, 1511, 1525, 1509, 1523,
-     1526, 1507, 1559, 1558, 1557, 1556, 1501, 1554, 1553, 1998,
-      328, 1515, 1514, 1511, 1511, 1509, 1492, 1497, 1499, 1998,
-     1505, 1495, 1998, 1542, 1488, 1545,  601,  629, 1486, 1484,
-     1491, 1482, 1535,  626, 1539,  627, 1533, 1493, 1531, 1530,
-     1482, 1472, 1527, 1478, 1486, 1487, 1523, 1484, 1478, 1465,
-     1473, 1518, 1522, 1477, 1476, 1998, 1477, 1470, 1459, 1472,
-     1475, 1470, 1471, 1468, 1467, 1463, 1469, 1464, 1507, 1506,
-
-     1454, 1444,  624, 1498, 1454, 1501, 1998, 1500, 1451, 1446,
-     1438, 1439, 1490, 1451, 1438,  171, 1998,  223,  340,  361,
-      384,  489,  504,  535,  578,  586,  594,  600,  662,  629,
-      617,  629,  674,  675,  676,  623,  678,  648,  643,  650,
-      646,  631,  643,  644, 1998,  699,  656,  658,  649,  662,
-      664,  649,  656,  662,  654,  668,  673,  714, 1998,  710,
-      686,  673,  678,  675,  676,  673,  671,  680, 1998,  670,
-      685,  682,  668,  675,  674,  672,  691,  688,  678,  676,
-      675,  686,  682,  738,  695,  685,  701,  691, 1998,  701,
-      702,  695,  706,  704,  749,  691,  693,  708,  695,  755,
-
-      712,  698,  701, 1998, 1998,  711,  716,  721,  709,  719,
-      721, 1998, 1998,  722,  726,  713,  707,  712,  730,  717,
-      767,  718,  770,  719,  777, 1998, 1998,  722,  726,  721,
-      781,  734,  724,  725,  721,  734,  745,  729,  747,  742,
-      743,  745,  738,  740,  741,  742,  742,  744,  759,  800,
-      757,  762,  739, 1998,  751,  752,  766,  756,  803,  761,
-      751,  766,  767,  754,  768, 1998,  787,  795,  764,  759,
-      814,  815,  778,  782,  823,  771,  766,  767,  779,  786,
-      775,  776,  772,  781,  776,  834,  791,  792,  783, 1998,
-      785,  797,  782,  799,  793,  840,  806,  790,  791, 1998,
-
-      807,  810,  793,  852,  795, 1998,  812,  815,  795,  813,
-      853,  811,  807,  804,  857,  858,  805,  823,  822,  823,
-      809,  824,  816,  823,  813,  831,  816, 1998,  824,  830,
-      877, 1998,  826,  831,  875,  826,  838,  832,  837,  835,
-      833,  835,  845,  890,  834,  839,  835,  894,  838,  850,
-     1998,  838,  846,  844,  841,  842,  851,  863,  847,  852,
-      862,  863,  868,  909,  867,  883,  888,  870,  867,  863,
-      858,  918,  861, 1998,  861,  881,  880,  871,  860,  877,
-      884,  927,  928,  875, 1998,  925,  872,  875,  874,  894,
-      891,  896,  897,  883,  891,  902,  882,  897,  904,  946,
-
-     1998,  947,  948,  899,  909,  911,  900,  896,  903,  912,
-      900,  907,  908,  960,  907,  905,  907,  924,  965,  915,
-      914,  920,  918,  916,  971,  972,  968, 1998,  930,  923,
-      914,  933,  921,  931,  928,  933,  929,  942,  942, 1998,
-      926,  928,  928, 1998,  929,  989,  928,  947,  949,  994,
-      995,  948,  933,  954,  953,  937,  942,  960, 1998,  950,
-      983,  974, 1006,  946,  968,  965, 1998,  952,  954,  971,
-      966,  970, 1015,  963,  967, 1998, 1998,  977,  977, 1015,
-      962, 1017,  964, 1024,  967,  978,  971,  977,  973,  991,
-      992,  994, 1998, 1998,  993, 1998,  978,  979,  998,  988,
-
-      981,  993, 1037, 1001,  990,  997,  998, 1998,  996, 1048,
-      989, 1050, 1998, 1051,  993,  999, 1006, 1050, 1998, 1998,
-      998, 1000, 1014, 1019, 1002, 1061, 1018, 1019, 1020, 1060,
-     1012, 1017, 1068, 1021, 1017, 1071, 1998, 1018, 1073, 1074,
-     1998, 1998, 1014, 1076, 1035, 1078, 1020, 1032, 1037, 1023,
-     1053, 1084, 1998, 1041, 1034, 1043, 1088, 1035, 1050, 1086,
-     1038, 1998, 1034, 1050, 1055, 1042, 1038, 1098, 1051, 1056,
-     1998, 1057, 1050, 1059, 1060, 1057, 1047, 1050, 1050, 1055,
-     1110, 1112, 1055, 1114, 1110, 1051, 1066, 1060, 1063, 1076,
-     1077, 1123, 1998, 1076, 1998, 1998, 1082, 1074, 1084, 1069,
-
-     1070, 1131, 1076, 1086, 1135, 1998, 1083, 1083, 1085, 1087,
-     1140, 1081, 1084, 1998, 1085, 1104, 1998, 1088, 1998, 1998,
-     1102, 1998, 1096, 1998, 1148, 1097, 1150, 1151, 1131, 1998,
-     1153, 1110, 1151, 1998, 1099, 1107, 1101, 1098, 1101, 1104,
-     1104, 1105, 1112, 1102, 1998, 1124, 1110, 1111, 1126, 1126,
-     1129, 1129, 1126, 1171, 1133, 1125, 1998, 1998, 1135, 1998,
-     1132, 1137, 1138, 1135, 1179, 1127, 1142, 1143, 1998, 1131,
-     1132, 1132, 1138, 1137, 1148, 1998, 1189, 1136, 1998, 1137,
-     1137, 1139, 1145, 1998, 1147, 1201, 1143, 1151, 1154, 1205,
-     1166, 1998, 1163, 1998, 1160, 1998, 1183, 1998, 1210, 1152,
-
-     1212, 1213, 1170, 1175, 1157, 1217, 1218, 1171, 1161, 1166,
-     1222, 1223, 1219, 1182, 1178, 1222, 1170, 1175, 1173, 1232,
-     1188, 1234, 1192, 1237, 1198, 1187, 1181, 1241, 1183, 1184,
-     1200, 1200, 1246, 1188, 1205, 1204, 1188, 1246, 1247, 1194,
-     1249, 1212, 1213, 1998, 1213, 1214, 1201, 1998, 1212, 1261,
-     1219, 1232, 1998, 1216, 1998, 1998, 1207, 1218, 1267, 1998,
-     1998, 1214, 1212, 1226, 1998, 1998, 1216, 1267, 1210, 1215,
-     1275, 1223, 1233, 1234, 1998, 1279, 1232, 1998, 1281, 1998,
-     1224, 1239, 1227, 1998, 1237, 1238, 1244, 1248, 1998, 1284,
-     1252, 1245, 1254, 1236, 1243, 1297, 1256, 1255, 1300, 1248,
-
-     1302, 1303, 1252, 1998, 1305, 1306, 1255, 1308, 1250, 1998,
-     1257, 1257, 1312, 1256, 1255, 1315, 1268, 1998, 1312, 1263,
-     1260, 1998, 1274, 1998, 1277, 1322, 1275, 1272, 1273, 1326,
-     1285, 1268, 1270, 1267, 1283, 1284, 1293, 1998, 1283, 1335,
-     1998, 1294, 1998, 1998, 1332, 1998, 1998, 1294, 1998, 1334,
-     1335, 1290, 1998, 1288, 1295, 1998, 1292, 1297, 1295, 1347,
-     1348, 1291, 1998, 1306, 1307, 1308, 1998, 1309, 1299, 1311,
-     1356, 1298, 1306, 1307, 1320, 1998, 1297, 1320, 1305, 1305,
-     1310, 1366, 1325, 1316, 1325, 1327, 1331, 1998, 1998, 1372,
-     1315, 1374, 1375, 1376, 1334, 1378, 1998, 1374, 1336, 1337,
-
-     1324, 1383, 1320, 1385, 1338, 1343, 1998, 1344, 1345, 1390,
-     1347, 1350, 1998, 1393, 1998, 1998, 1998, 1354, 1998, 1336,
-     1396, 1397, 1340, 1998, 1357, 1998, 1348, 1344, 1344, 1346,
-     1998, 1351, 1361, 1998, 1347, 1359, 1998, 1998, 1364, 1358,
-     1366, 1363, 1354, 1408, 1355, 1363, 1372, 1365, 1360, 1375,
-     1420, 1367, 1374, 1361, 1376, 1381, 1426, 1383, 1428, 1371,
-     1998, 1387, 1378, 1392, 1388, 1381, 1998, 1435, 1998, 1436,
-     1437, 1392, 1391, 1392, 1382, 1998, 1998, 1998, 1442, 1384,
-     1400, 1445, 1998, 1441, 1390, 1998, 1389, 1391, 1402, 1451,
-     1400, 1998, 1409, 1454, 1998, 1998, 1460, 1465, 1470, 1475,
-
-     1480, 1485, 1490, 1493, 1467, 1472, 1474, 1487
+     2013, 2014,   34, 2009,  145,    0,  207, 2014,  214,  221,
+       13,  228, 2014, 1989,  118,   25,    2,    6, 2014, 2014,
+       73,   11,   17, 2014, 2014, 2014,  104, 1997, 1950,    0,
+     1987,  108, 2004,   24,  262, 2014, 1946,   67, 1945, 1951,
+       84,   75, 1943,   88,  226,   91,   89,  290,  196, 1942,
+      206,  285,  206,  210,  219,   60,  223, 1951,  247,  290,
+      315,  303,  231, 1934,  297,  321,  343,  324, 1953,    0,
+      380,  387,  401,  408,  424, 2014,    0, 2014,  429,  438,
+      216,  249,  220,  315,  335,  266, 2014, 1950, 1991, 2014,
+
+      342, 2014,  421, 1978,  312, 1936, 1946,  400,   10, 1941,
+      361,  323,  370,  387,  359, 1986,    0,  474,  392, 1928,
+     1925, 1929, 1931, 1924, 1932,  412, 1928, 1917, 1918,   78,
+     1934, 1917, 1926, 1926,   95, 1917,  400, 1918, 1916,  405,
+     1964, 1968, 1908, 1961, 1901, 1924, 1921, 1921, 1915,  310,
+     1908, 1906, 1900, 1905, 1899,  436, 1910, 1903, 1894, 1893,
+     1907,  413, 1893,  419, 1909, 1886,  470,  191,  400, 1907,
+     1904, 1905, 1903, 1938, 1937,  451, 1883, 1885,  472, 1877,
+     1894, 1886,    0,  471,  462,  446,  472,  473,  487, 1885,
+     2014,    0, 1930,  492, 1875, 1878,  475,  481, 1886,  499,
+
+     1931,  501, 1930,  509, 1929, 2014,  555,  488,  519, 1888,
+     1880, 1867, 1883, 1882, 1879, 1878, 1869,  493, 1920, 1914,
+     1878, 1857, 1865, 1860, 1874, 1870, 1858, 1870, 1870, 1861,
+     1845, 1849, 1862, 1864, 1861, 1853, 1843, 1861, 2014, 1856,
+     1859, 1840, 1839, 1891, 1838, 1848, 1851,  499, 1847, 1886,
+     1834, 1845, 1883, 1828, 1886, 1821, 1836,  498, 1826, 1842,
+     1823, 1821, 1821, 1827, 1818, 1817, 1824, 1874, 1830, 1829,
+     1823,  486, 1830, 1825, 1817, 1807, 1822, 1821, 1816, 1820,
+      322, 1818, 1804, 1810, 1817, 1805, 1802, 1801,  544, 1796,
+     1810, 1853, 1812,  366, 1803,  526, 2014, 2014,  527, 2014,
+
+     2014, 1790,    0,  241,  515, 1792,  569,  534, 1848, 1799,
+      512, 2014, 1846, 2014, 1840,  593, 2014, 1782,  519, 1779,
+     1788, 1836, 1780, 1779, 1785, 1837, 1792, 1787, 1790, 1785,
+      528, 2014, 1787, 1831, 1784, 1781,  577, 1787, 1827, 1821,
+     1774, 1769, 1766, 1817, 1774, 1763, 1779, 1813, 1759,  586,
+     1773, 1758, 1771, 1758, 1768, 1763, 1770, 1765, 1761,  560,
+     1759, 1762, 1757, 1743, 1752, 1802,  539, 1796, 2014, 1795,
+     1745, 1744, 1743, 1736, 1738, 1742, 1731, 1748, 1743,  561,
+     1790, 1743, 1740, 2014, 1743, 1732, 1732, 1744,  565, 1719,
+     1720, 1741,  576, 1723, 1774, 1719, 1733, 1736, 1731, 1717,
+
+     1729, 1728, 1727, 1726, 1725, 1724,  537, 1767, 1766, 2014,
+     1708, 1707,  623, 1720, 2014, 2014, 1719,    0, 1708, 1700,
+      595, 1705, 1758, 1757, 1713, 1755, 2014, 1701, 1753, 2014,
+      601,  649, 1747,  615, 1751, 1693, 1704, 1697, 1699, 1687,
+     2014, 1692, 1698, 1701, 1684, 1699, 1686, 1685, 2014, 1687,
+     1684,  550, 1682, 1684, 2014, 1692, 1689, 1674, 1687, 1682,
+      626, 1689, 1677, 1670, 1721, 2014, 1668, 1684, 1718, 1679,
+     1676, 1677, 1679, 1713, 1664, 1659, 1658, 1709, 1653,  586,
+     1672, 1646, 1653, 1658, 1668, 1707, 2014, 1652, 1648, 1646,
+     1655, 1649, 1656, 1640, 1640, 1650, 1653, 1642, 1638, 1636,
+
+     2014, 1693, 2014, 1635, 1646, 1631, 1636, 1645, 1639, 1633,
+     1642, 1684, 1678, 1640, 1623, 1623, 1618, 1638, 1613, 1619,
+     1624, 1617, 1625, 1629, 1612, 1670, 1610, 1611, 1610, 1622,
+     1611, 2014, 2014, 1611, 1609, 2014, 1620, 1656, 1616,    0,
+     1600, 1617, 1657, 1605, 2014, 2014, 1602, 2014, 1608, 2014,
+      620,  619, 1595,  641, 2014, 1604, 1603, 1610, 1590, 1643,
+     1588, 1641, 1586, 1585, 1584, 1591, 1584, 1596, 1595, 1595,
+     1577, 1582, 1623, 1590, 1582, 1627, 1571, 1587, 1586, 2014,
+     1571, 1568, 1626, 1581, 1573, 1579, 1570, 1578, 1563, 1579,
+     1561, 1575,  600, 1557, 1551, 1556, 1571, 1568, 1569, 1548,
+
+     1558, 1564, 1607, 1562, 1554, 2014, 1547, 1549, 1558, 1556,
+     1595, 1594, 1545,   16, 1554, 1537, 1538, 1541, 1534, 2014,
+     1548, 1527, 1546, 1538, 1583, 1535, 1542, 1580, 2014, 1525,
+     1539, 1523, 1537, 1540, 1521, 1573, 1572, 1571, 1570, 1515,
+     1568, 1567, 2014,  328, 1529, 1528, 1525, 1525, 1523, 1506,
+     1511, 1513, 2014, 1519, 1509, 2014, 1556, 1502, 1559,  618,
+      588, 1499, 1499, 1497, 1504, 1495, 1548,  630, 1552,  620,
+     1546, 1506, 1544, 1543, 1495, 1485, 1540, 1491, 1499, 1500,
+     1536, 1497, 1491, 1478, 1486, 1531, 1535, 1490, 1489, 2014,
+     1490, 1483, 1472, 1485, 1488, 1483, 1484, 1481, 1480, 1476,
+
+     1482, 1477, 1520, 1519, 1467, 1457,  601, 1511, 1467, 1514,
+     2014, 1513, 1464, 1459, 1451, 1452,   20,  171,  222,  341,
+     2014,  351,  383,  445,  513,  558,  592,  549,  602,  609,
+      600,  616,  674,  638,  622,  634,  678,  679,  680,  627,
+      682,  646,  647,  654,  650,  635,  647,  648, 2014,  703,
+      660,  662,  653,  666,  668,  653,  660,  666,  658,  672,
+      677,  718, 2014,  714,  690,  681,  678,  683,  680,  681,
+      678,  676,  685, 2014,  675,  690,  687,  673,  680,  679,
+      677,  696,  693,  683,  681,  680,  691,  687,  743,  700,
+      690,  706,  696, 2014,  707,  707,  700,  711,  709,  754,
+
+      696,  698,  713,  700,  760,  717,  703,  706, 2014, 2014,
+      716,  721,  726,  714,  724,  726, 2014, 2014,  727,  731,
+      718,  712,  717,  735,  722,  772,  723,  775,  724,  782,
+     2014, 2014,  727,  731,  726,  786,  739,  729,  730,  726,
+      739,  750,  734,  752,  747,  748,  750,  743,  745,  746,
+      747,  747,  749,  764,  805,  762,  767,  744, 2014,  756,
+      757,  771,  761,  808,  766,  756,  771,  772,  759,  773,
+     2014,  792,  800,  763,  770,  765,  820,  821,  784,  788,
+      829,  777,  772,  773,  785,  792,  781,  782,  778,  787,
+      782,  840,  797,  798,  789, 2014,  792,  803,  789,  805,
+
+      799,  846,  812,  796,  797, 2014,  813,  816,  799,  858,
+      801, 2014,  818,  821,  801,  819,  859,  817,  813,  810,
+      863,  864,  811,  829,  828,  829,  815,  830,  822,  829,
+      819,  837,  822, 2014,  830,  836,  883, 2014,  832,  837,
+      881,  832,  844,  838,  843,  841,  839,  841,  851,  896,
+      840,  845,  841,  900,  844,  856, 2014,  844,  852,  850,
+      847,  848,  857,  869,  853,  858,  868,  869,  874,  915,
+      873,  889,  894,  871,  878,  874,  870,  865,  925,  868,
+     2014,  868,  888,  887,  878,  867,  884,  891,  934,  935,
+      882, 2014,  932,  879,  882,  881,  901,  898,  903,  904,
+
+      890,  900,  909,  889,  904,  911,  953, 2014,  954,  955,
+      906,  916,  918,  907,  903,  910,  919,  907,  914,  915,
+      967,  914,  912,  914,  931,  972,  922,  921,  927,  925,
+      923,  978,  979,  975, 2014,  937,  930,  921,  940,  928,
+      938,  935,  940,  936,  949,  949, 2014,  933,  935,  935,
+     2014,  936,  996,  935,  954,  956, 1001, 1002,  955,  940,
+      961,  960,  944,  949,  967, 2014,  957,  990,  981,  971,
+     1014,  954,  976,  973, 2014,  960,  962,  979,  974,  978,
+     1023,  971,  975, 2014, 2014,  985,  985, 1023,  970, 1025,
+      972, 1032,  975,  987,  979,  985,  981,  999, 1001, 1002,
+
+     2014, 2014, 1001, 2014,  986,  987, 1006,  996,  989, 1001,
+     1045, 1009,  998, 1005, 1006, 2014, 1004, 1056,  997, 1058,
+     2014, 1059, 1001, 1007, 1014, 1058, 2014, 2014, 1006, 1008,
+     1022, 1027, 1010, 1069, 1026, 1027, 1028, 1068, 1020, 1025,
+     1076, 1029, 1025, 1079, 2014, 1026, 1081, 1082, 2014, 2014,
+     1022, 1084, 1043, 1086, 1028, 1040, 1045, 1031, 1061, 1092,
+     1088, 2014, 1050, 1043, 1052, 1097, 1044, 1059, 1095, 1047,
+     2014, 1043, 1059, 1064, 1051, 1047, 1107, 1060, 1065, 2014,
+     1066, 1059, 1068, 1069, 1066, 1056, 1059, 1059, 1064, 1120,
+     1121, 1064, 1123, 1119, 1060, 1076, 1069, 1072, 1085, 1086,
+
+     1132, 2014, 1085, 2014, 2014, 1090, 1083, 1093, 1078, 1079,
+     1140, 1085, 1095, 1144, 2014, 1092, 1092, 1094, 1096, 1149,
+     1090, 1093, 2014, 1094, 1113, 2014, 1097, 2014, 2014, 1111,
+     2014, 1105, 2014, 1157, 1106, 1159, 1160, 1140, 2014, 1111,
+     1163, 1121, 1161, 2014, 1109, 1117, 1111, 1108, 1111, 1114,
+     1114, 1115, 1122, 1112, 2014, 1134, 1120, 1121, 1136, 1136,
+     1139, 1139, 1137, 1181, 1143, 1135, 2014, 2014, 1145, 2014,
+     1142, 1147, 1148, 1145, 1189, 1137, 1152, 1153, 2014, 1141,
+     1142, 1142, 1148, 1147, 1158, 2014, 1199, 1146, 2014, 1147,
+     1147, 1149, 1155, 2014, 1157, 1211, 1153, 1161, 1164, 1215,
+
+     1176, 2014, 1173, 2014, 1170, 2014, 1193, 1176, 2014, 1221,
+     1163, 1223, 1224, 1181, 1186, 1168, 1228, 1229, 1182, 1172,
+     1177, 1233, 1234, 1230, 1193, 1189, 1233, 1181, 1186, 1184,
+     1243, 1199, 1245, 1204, 1248, 1209, 1198, 1192, 1252, 1194,
+     1195, 1211, 1211, 1257, 1199, 1216, 1215, 1199, 1257, 1258,
+     1205, 1260, 1223, 1224, 2014, 1224, 1225, 1212, 2014, 1223,
+     1272, 1230, 1243, 1235, 2014, 1228, 2014, 2014, 1219, 1230,
+     1279, 2014, 2014, 1226, 1224, 1238, 2014, 2014, 1228, 1279,
+     1222, 1227, 1287, 1235, 1245, 1246, 2014, 1291, 1244, 2014,
+     1293, 2014, 1236, 1251, 1239, 2014, 1249, 1250, 1256, 1260,
+
+     2014, 1298, 1264, 1257, 1266, 1248, 1255, 1309, 1268, 1267,
+     1312, 1260, 1314, 1315, 1264, 2014, 1317, 1318, 1261, 1268,
+     1321, 1263, 2014, 1270, 1270, 1325, 1269, 1268, 1328, 1281,
+     2014, 1325, 1276, 1273, 2014, 1287, 2014, 1290, 1335, 1288,
+     1285, 1286, 1339, 1298, 1281, 1283, 1280, 1296, 1297, 1306,
+     2014, 1296, 1348, 2014, 1307, 2014, 2014, 1345, 2014, 2014,
+     1307, 1308, 2014, 1348, 1349, 1304, 2014, 1302, 1309, 2014,
+     1306, 1311, 1309, 1361, 1362, 1305, 2014, 1320, 1321, 1322,
+     2014, 1323, 1313, 1325, 1370, 1312, 1320, 1321, 1334, 2014,
+     1311, 1334, 1319, 1320, 1320, 1325, 1381, 1340, 1331, 1340,
+
+     1342, 1346, 2014, 2014, 1387, 1330, 1389, 1390, 1391, 1349,
+     1393, 2014, 1389, 1351, 1352, 1339, 1398, 1335, 1400, 1401,
+     1354, 1359, 2014, 1360, 1361, 1406, 1363, 1366, 2014, 1409,
+     2014, 2014, 2014, 1370, 2014, 1352, 1412, 1413, 1356, 2014,
+     1373, 2014, 2014, 1364, 1360, 1360, 1362, 2014, 1367, 1377,
+     2014, 1363, 1375, 2014, 2014, 1380, 1374, 1382, 1379, 1370,
+     1424, 1371, 1379, 1388, 1381, 1376, 1391, 1436, 1383, 1390,
+     1377, 1392, 1397, 1442, 1399, 1444, 1387, 2014, 1403, 1394,
+     1408, 1404, 1397, 2014, 1451, 2014, 1452, 1453, 1408, 1407,
+     1408, 1398, 2014, 2014, 2014, 1458, 1400, 1416, 1461, 2014,
+
+     1457, 1406, 2014, 1405, 1407, 1418, 1467, 1416, 2014, 1425,
+     1470, 2014, 2014, 1476, 1481, 1486, 1491, 1496, 1501, 1506,
+     1509, 1483, 1488, 1490, 1503
     } ;
 
-static const flex_int16_t yy_def[1609] =
+static const flex_int16_t yy_def[1626] =
     {   0,
-     1597, 1597, 1598, 1598, 1597, 1597, 1597, 1597, 1597, 1597,
-     1596, 1596, 1596, 1596, 1596, 1599, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1600,
-     1596, 1596, 1596, 1601,   15, 1596,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1602,   45,   45,
+     1614, 1614, 1615, 1615, 1614, 1614, 1614, 1614, 1614, 1614,
+     1613, 1613, 1613, 1613, 1613, 1616, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1617,
+     1613, 1613, 1613, 1618,   15, 1613,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1619,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1599,
-     1596, 1596, 1596, 1596, 1596, 1596, 1603, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1600, 1596,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1616,
+     1613, 1613, 1613, 1613, 1613, 1613, 1620, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1617, 1613,
 
-     1601, 1596, 1596,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1604,   45, 1602,   45,   45,
+     1618, 1613, 1613,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1621,   45, 1619,   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,   45, 1603, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1605,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1620, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1622,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45, 1604, 1596, 1602,   45,   45,   45,
+       45,   45,   45,   45, 1621, 1613, 1619,   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, 1596,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   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, 1596, 1596, 1596, 1596, 1596,
+       45,   45,   45,   45,   45, 1613, 1613, 1613, 1613, 1613,
 
-     1596, 1596, 1606,   45,   45,   45,   45,   45,   45,   45,
-       45, 1596,   45, 1596,   45, 1602, 1596,   45,   45,   45,
+     1613, 1613, 1623,   45,   45,   45,   45,   45,   45,   45,
+       45, 1613,   45, 1613,   45, 1619, 1613,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1596,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1613,   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, 1596,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1596,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1613,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
-       45,   45,   45, 1596, 1596, 1596, 1607,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596,   45,   45, 1596,   45,
-     1602,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45, 1596,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
+       45,   45,   45,   45, 1613, 1613, 1613, 1624,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45, 1613,
+       45, 1619,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1596,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
 
-     1596,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45, 1613,   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, 1596,
-     1596,   45,   45, 1596,   45,   45, 1596, 1608,   45,   45,
-       45,   45, 1596, 1596,   45, 1596,   45, 1596,   45,   45,
-       45, 1596,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1613, 1613,   45,   45, 1613,   45,   45, 1613, 1625,
+       45,   45,   45,   45, 1613, 1613,   45, 1613,   45, 1613,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45, 1596,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1596,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1596,
-       45,   45, 1596,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1613,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1613,   45,   45, 1613,   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, 1596,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1596,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
+       45,   45, 1613,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1613,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1613,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1596, 1596,   45,   45,   45,   45,   45,
-       45, 1596, 1596,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596, 1596,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613, 1613,
+       45,   45,   45,   45,   45,   45, 1613, 1613,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613, 1613,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1596,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1596,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45, 1596,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+       45, 1613,   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, 1596,   45,   45,
-       45, 1596,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1613,   45,   45,   45, 1613,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1596,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1596,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1613,   45,   45,   45,   45,   45,   45,   45,   45,
 
-     1596,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1613,   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, 1596,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1596,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596, 1596,   45,   45,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
+       45,   45,   45, 1613, 1613,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1596, 1596,   45, 1596,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45, 1596,   45,   45,
-       45,   45, 1596,   45,   45,   45,   45,   45, 1596, 1596,
+     1613, 1613,   45, 1613,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45, 1613, 1613,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45, 1613, 1613,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1613,   45,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-     1596, 1596,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1596,   45,   45,   45,   45,   45,   45,   45,
-       45, 1596,   45,   45,   45,   45,   45,   45,   45,   45,
-     1596,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1596,   45, 1596, 1596,   45,   45,   45,   45,
-
-       45,   45,   45,   45,   45, 1596,   45,   45,   45,   45,
-       45,   45,   45, 1596,   45,   45, 1596,   45, 1596, 1596,
-       45, 1596,   45, 1596,   45,   45,   45,   45,   45, 1596,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1596,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1596, 1596,   45, 1596,
-       45,   45,   45,   45,   45,   45,   45,   45, 1596,   45,
-       45,   45,   45,   45,   45, 1596,   45,   45, 1596,   45,
-       45,   45,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45, 1596,   45, 1596,   45, 1596,   45, 1596,   45,   45,
 
+       45, 1613,   45, 1613, 1613,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
+       45,   45, 1613,   45,   45, 1613,   45, 1613, 1613,   45,
+     1613,   45, 1613,   45,   45,   45,   45,   45, 1613,   45,
+       45,   45,   45, 1613,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613, 1613,   45, 1613,
+       45,   45,   45,   45,   45,   45,   45,   45, 1613,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45, 1613,   45,
+       45,   45,   45, 1613,   45,   45,   45,   45,   45,   45,
+
+       45, 1613,   45, 1613,   45, 1613,   45,   45, 1613,   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, 1596,   45,   45,   45, 1596,   45,   45,
-       45,   45, 1596,   45, 1596, 1596,   45,   45,   45, 1596,
-     1596,   45,   45,   45, 1596, 1596,   45,   45,   45,   45,
-       45,   45,   45,   45, 1596,   45,   45, 1596,   45, 1596,
-       45,   45,   45, 1596,   45,   45,   45,   45, 1596,   45,
+       45,   45,   45,   45, 1613,   45,   45,   45, 1613,   45,
+       45,   45,   45,   45, 1613,   45, 1613, 1613,   45,   45,
+       45, 1613, 1613,   45,   45,   45, 1613, 1613,   45,   45,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45, 1613,
+       45, 1613,   45,   45,   45, 1613,   45,   45,   45,   45,
+
+     1613,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1613,   45,   45,   45,   45,
+       45,   45, 1613,   45,   45,   45,   45,   45,   45,   45,
+     1613,   45,   45,   45, 1613,   45, 1613,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-       45,   45,   45, 1596,   45,   45,   45,   45,   45, 1596,
-       45,   45,   45,   45,   45,   45,   45, 1596,   45,   45,
-       45, 1596,   45, 1596,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1596,   45,   45,
-     1596,   45, 1596, 1596,   45, 1596, 1596,   45, 1596,   45,
-       45,   45, 1596,   45,   45, 1596,   45,   45,   45,   45,
-       45,   45, 1596,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45,   45,   45,   45, 1596,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1596, 1596,   45,
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-
-       45,   45,   45,   45,   45,   45, 1596,   45,   45,   45,
-       45,   45, 1596,   45, 1596, 1596, 1596,   45, 1596,   45,
-       45,   45,   45, 1596,   45, 1596,   45,   45,   45,   45,
-     1596,   45,   45, 1596,   45,   45, 1596, 1596,   45,   45,
+     1613,   45,   45, 1613,   45, 1613, 1613,   45, 1613, 1613,
+       45,   45, 1613,   45,   45,   45, 1613,   45,   45, 1613,
+       45,   45,   45,   45,   45,   45, 1613,   45,   45,   45,
+     1613,   45,   45,   45,   45,   45,   45,   45,   45, 1613,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45, 1613, 1613,   45,   45,   45,   45,   45,   45,
+       45, 1613,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1613,   45,   45,   45,   45,   45, 1613,   45,
+     1613, 1613, 1613,   45, 1613,   45,   45,   45,   45, 1613,
+       45, 1613, 1613,   45,   45,   45,   45, 1613,   45,   45,
+     1613,   45,   45, 1613, 1613,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1596,   45,   45,   45,   45,   45, 1596,   45, 1596,   45,
-       45,   45,   45,   45,   45, 1596, 1596, 1596,   45,   45,
-       45,   45, 1596,   45,   45, 1596,   45,   45,   45,   45,
-       45, 1596,   45,   45, 1596,    0, 1596, 1596, 1596, 1596,
+       45,   45,   45,   45,   45,   45,   45, 1613,   45,   45,
+       45,   45,   45, 1613,   45, 1613,   45,   45,   45,   45,
+       45,   45, 1613, 1613, 1613,   45,   45,   45,   45, 1613,
 
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596
+       45,   45, 1613,   45,   45,   45,   45,   45, 1613,   45,
+       45, 1613,    0, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613
     } ;
 
-static const flex_int16_t yy_nxt[2072] =
+static const flex_int16_t yy_nxt[2088] =
     {   0,
-     1596,   13,   14,   13, 1596,   15,   16, 1596,   17,   18,
+     1613,   13,   14,   13, 1613,   15,   16, 1613,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       86,  717,   37,   14,   37,   87,   25,   26,   38,  102,
-     1596,   27,   37,   14,   37,   42,   28,   42,   38,   92,
+       86,  721,   37,   14,   37,   87,   25,   26,   38,  102,
+      823,   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,
-      718,   13,   14,   13,   33,   40,  103,   92,   93,  198,
+      722,   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,
@@ -1311,222 +1317,223 @@ static const flex_int16_t yy_nxt[2072] =
        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,  821,
+       78,   79,   57,   45,   45,   45,   45,   45,   81,  824,
        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,  184,   83,  278,  279,
       112,  123,  119,  134,   83,  108,   83,  186,  120,  124,
       113,  121,  125,   83,  135,  126,  137,  127,  138,  128,
        83,  142,  184,  112,  136,  139,  162,   83,   45,  185,
-      163,  143,  822,  144,   45,  186,   45,   45,  113,   45,
-      164,   45,   45,   45,  418,  117,  146,  147,   45,   45,
+      163,  143,  825,  144,   45,  186,   45,   45,  113,   45,
+      164,   45,   45,   45,  419,  117,  146,  147,   45,   45,
 
-      148,   45,   45,  186,  419,  185,  149,   45,   45,   45,
+      148,   45,   45,  186,  420,  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,  189,   45,  745,  130,  150,   45,  131,  132,  151,
-       45,  111,  166,  152,  746,  184,  167,  102,   45,  114,
+      129,  189,   45,  749,  130,  150,   45,  131,  132,  151,
+       45,  111,  166,  152,  750,  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,  397,  411,  113,  248,  194,
-      171,  172,  180,  201,  103,  204,  173,  181,  398,  823,
+      169,  187,  179,  170,  247,  398,  412,  113,  248,  194,
+      171,  172,  180,  201,  103,  204,  173,  181,  399,  826,
       176,  188,  177,   85,   85,   85,   85,   85,   81,  200,
 
        82,   82,   82,   82,   82,  113,   83,  202,  204,   89,
-      824,   89,  178,   83,   90,   90,   90,   90,   90,   81,
-      203,   84,   84,   84,   84,   84,  101,  200,  412,   83,
-      197,  194,  825,  101,   83,  202,   83,   85,   85,   85,
+      827,   89,  178,   83,   90,   90,   90,   90,   90,   81,
+      203,   84,   84,   84,   84,   84,  101,  200,  413,   83,
+      197,  194,  828,  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,  280,  209,
       216,  235,  281,  101,  236,  232,  282,  101,  237,  217,
       218,  101,  298,   83,  200,  260,  261,  262,  264,  101,
       269,  265,  266,  101,  201,  101,  192,  207,  207,  207,
-      207,  207,  297,  359,  826,  298,  207,  207,  207,  207,
+      207,  207,  297,  317,  829,  298,  207,  207,  207,  207,
 
-      207,  207,  200,  297,  254,  203,  296,  296,  371,  827,
+      207,  207,  200,  297,  254,  203,  296,  296,  372,  360,
       308,  289,  309,  298,  305,  270,  271,  272,  297,  207,
       207,  207,  207,  207,  207,  311,  273,  313,  274,  300,
       275,  276,  292,  277,  296,  299,  301,  305,  308,  309,
-      315,  305,  387,  327,  372,  388,  360,  312,  311,  361,
-      313,  328,  406,  414,  499,  420,  329,  330,  373,  428,
-      414,  420,  425,  486,  318,  422,  423,  315,  316,  316,
-      316,  316,  316,  487,  424,  444,  414,  316,  316,  316,
-      316,  316,  316,  415,  420,  425,  657,  428,  450,  508,
-      432,  464,  445,  509,  451,  513,  465,  541,  828,  514,
-
-      316,  316,  316,  316,  316,  316,  431,  431,  431,  431,
-      431,  528,  500,  657,  529,  431,  431,  431,  431,  431,
-      431,  477,  478,  534,  541,  541,  479,  549,  535,  550,
-      577,  829,  567,  830,  658,  578,  596,  760,  431,  431,
-      431,  431,  431,  431,  466,  568,  597,  569,  653,  467,
-      696,  697,  551,  659,  549,  761,  550,   45,   45,   45,
-       45,   45,  658,  831,  832,  760,   45,   45,   45,   45,
-       45,   45,  833,  767,  770,  771,  834,  772,  761,  768,
-      808,  835,  836,  809,  837,  838,  839,  840,  841,   45,
-       45,   45,   45,   45,   45,  842,  843,  845,  846,  847,
-
-      850,  851,  852,  844,  854,  855,  848,  856,  853,  857,
-      849,  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,
-      887,  888,  889,  890,  891,  892,  893,  894,  895,  868,
-      896,  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,  923,  924,  925,  922,
-      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,  980,  981,  982,  983,  984,  985,
-      986,  987,  988,  989,  967,  990,  991,  966,  992,  993,
-      994,  995,  996,  997,  998,  999, 1000, 1001, 1003, 1004,
-     1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
-     1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1025,
-     1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1024,
-     1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
-
-     1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
-     1055, 1056, 1057, 1058, 1059, 1002, 1060, 1061, 1063, 1062,
-     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
-     1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
-     1084, 1085, 1086, 1087, 1088, 1061, 1062, 1089, 1090, 1091,
-     1092, 1093, 1094, 1096, 1098, 1099, 1100, 1095, 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, 1129, 1130, 1131, 1132,
-     1133, 1134, 1135, 1136, 1137, 1138, 1139, 1097, 1140, 1141,
-
-     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, 1151, 1174, 1175, 1176, 1177, 1178, 1152, 1179,
-     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, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
-     1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230,
-     1231, 1232, 1233, 1234, 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, 1211, 1265, 1266, 1267, 1268, 1269, 1270,
-     1264, 1271, 1272, 1273, 1274, 1275, 1276, 1235, 1277, 1278,
-     1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
-     1289, 1290, 1291, 1292, 1293, 1294, 1296, 1297, 1298, 1299,
-     1295, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
-     1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
-     1297, 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, 1372, 1373, 1374, 1375, 1377, 1378,
-     1379, 1352, 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,
-     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, 1376, 1406, 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,
-       12,   12,   12,   12,   12,   36,   36,   36,   36,   36,
-       80,  303,   80,   80,   80,   99,  417,   99,  538,   99,
-      101,  101,  101,  101,  101,  116,  116,  116,  116,  116,
-      183,  101,  183,  183,  183,  205,  205,  205,  820,  819,
-
-      818,  817,  816,  815,  814,  813,  812,  811,  810,  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,  766,  765,  764,  763,  762,
-      759,  758,  757,  756,  755,  754,  753,  752,  751,  750,
-      749,  748,  747,  744,  743,  742,  741,  740,  739,  738,
-      737,  736,  735,  734,  733,  732,  731,  730,  729,  728,
-      727,  726,  725,  724,  723,  722,  721,  720,  719,  716,
-      715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
-
-      705,  704,  703,  702,  701,  700,  699,  698,  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,  662,  661,  660,  656,  655,  654,  653,  652,  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,  595,  594,  593,  592,  591,  590,  589,
-      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
-      576,  575,  574,  573,  572,  571,  570,  566,  565,  564,
-      563,  562,  561,  560,  559,  558,  557,  556,  555,  554,
-      553,  552,  548,  547,  546,  545,  544,  543,  542,  540,
-      539,  537,  536,  533,  532,  531,  530,  527,  526,  525,
-      524,  523,  522,  521,  520,  519,  518,  517,  516,  515,
-      512,  511,  510,  507,  506,  505,  504,  503,  502,  501,
-      498,  497,  496,  495,  494,  493,  492,  491,  490,  489,
-      488,  485,  484,  483,  482,  481,  480,  476,  475,  474,
-
-      473,  472,  471,  470,  469,  468,  463,  462,  461,  460,
-      459,  458,  457,  456,  455,  454,  453,  452,  449,  448,
-      447,  446,  443,  442,  441,  440,  439,  438,  437,  436,
-      435,  434,  433,  430,  429,  427,  426,  421,  416,  413,
-      410,  409,  408,  407,  405,  404,  403,  402,  401,  400,
-      399,  396,  395,  394,  393,  392,  391,  390,  389,  386,
-      385,  384,  383,  382,  381,  380,  379,  378,  377,  376,
-      375,  374,  370,  369,  368,  367,  366,  365,  364,  363,
-      362,  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,  326,
-      325,  324,  323,  322,  321,  320,  319,  317,  206,  314,
-      312,  310,  307,  306,  304,  302,  295,  294,  293,  291,
-      290,  288,  287,  286,  285,  284,  283,  268,  267,  263,
-      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, 1596,   11, 1596, 1596,
-
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596
+      315,  305,  388,  328,  373,  389,  429,  318,  311,  312,
+      313,  329,  415,  415,  407,  421,  330,  331,  374,  421,
+      426,  830,  361,  831,  319,  362,  501,  315,  316,  316,
+      316,  316,  316,  446,  429,  415,  416,  316,  316,  316,
+      316,  316,  316,  426,  421,  423,  424,  452,  434,  488,
+      447,  466,  530,  453,  425,  531,  467,  832,  570,  489,
+
+      316,  316,  316,  316,  316,  316,  432,  432,  432,  432,
+      432,  571,  833,  572,  765,  432,  432,  432,  432,  432,
+      432,  479,  480,  510,  502,  515,  481,  511,  536,  516,
+      543,  580,  551,  537,  552,  599,  581,  765,  432,  432,
+      432,  432,  432,  432,  468,  600,  656,  700,  701,  469,
+      543,  663,  660,  661,  764,  834,  835,  813,  543,  551,
+      814,  552,   45,   45,   45,   45,   45,  775,  776,  836,
+      777,   45,   45,   45,   45,   45,   45,  772,  554,  660,
+      837,  661,  764,  773,  838,  839,  840,  841,  842,  843,
+      844,  845,  846,  847,   45,   45,   45,   45,   45,   45,
+
+      848,  850,  851,  852,  855,  856,  857,  849,  859,  860,
+      853,  861,  858,  862,  854,  863,  864,  865,  866,  867,
+      868,  869,  870,  871,  872,  873,  874,  875,  876,  877,
+      878,  879,  880,  881,  882,  883,  884,  885,  886,  887,
+      888,  889,  890,  891,  892,  893,  894,  895,  896,  897,
+      898,  899,  900,  873,  901,  902,  903,  904,  905,  906,
+      908,  909,  910,  911,  907,  912,  913,  914,  915,  916,
+      917,  918,  919,  920,  921,  922,  923,  924,  925,  926,
+      927,  929,  930,  931,  928,  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,  980,  981,  982,  983,  984,  985,  986,
+      987,  988,  989,  990,  991,  992,  993,  994,  995,  973,
+      996,  997,  972,  998,  999, 1000, 1001, 1002, 1003, 1004,
+     1005, 1006, 1007, 1008, 1010, 1011, 1012, 1013, 1014, 1015,
+     1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
+     1026, 1027, 1028, 1029, 1030, 1032, 1033, 1034, 1035, 1036,
+     1037, 1038, 1039, 1040, 1041, 1031, 1042, 1043, 1044, 1045,
+
+     1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
+     1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
+     1066, 1009, 1067, 1068, 1070, 1069, 1071, 1072, 1073, 1074,
+     1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
+     1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
+     1095, 1068, 1069, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
+     1104, 1106, 1107, 1108, 1103, 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,
+
+     1144, 1145, 1146, 1147, 1105, 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, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1159,
+     1182, 1183, 1184, 1185, 1186, 1160, 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, 1215, 1216, 1217, 1218, 1219, 1221,
+     1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
+     1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241,
+
+     1242, 1243, 1244, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
+     1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
+     1263, 1264, 1265, 1266, 1238, 1267, 1268, 1269, 1270, 1271,
+     1272, 1220, 1273, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
+     1274, 1282, 1283, 1284, 1285, 1286, 1245, 1287, 1288, 1289,
+     1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
+     1300, 1301, 1302, 1303, 1304, 1306, 1307, 1308, 1309, 1305,
+     1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
+     1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1307,
+     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, 1372, 1373, 1374, 1375, 1376, 1377, 1378,
+     1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1389,
+     1390, 1363, 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, 1388, 1418, 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,   12,   12,   12,   12,
+       12,   36,   36,   36,   36,   36,   80,  303,   80,   80,
+       80,   99,  418,   99,  540,   99,  101,  101,  101,  101,
+
+      101,  116,  116,  116,  116,  116,  183,  101,  183,  183,
+      183,  205,  205,  205,  822,  821,  820,  819,  818,  817,
+      816,  815,  812,  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,  774,  771,  770,
+      769,  768,  767,  766,  763,  762,  761,  760,  759,  758,
+      757,  756,  755,  754,  753,  752,  751,  748,  747,  746,
+      745,  744,  743,  742,  741,  740,  739,  738,  737,  736,
+      735,  734,  733,  732,  731,  730,  729,  728,  727,  726,
+
+      725,  724,  723,  720,  719,  718,  717,  716,  715,  714,
+      713,  712,  711,  710,  709,  708,  707,  706,  705,  704,
+      703,  702,  699,  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,  662,  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,  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,  598,  597,
+      596,  595,  594,  593,  592,  591,  590,  589,  588,  587,
+      586,  585,  584,  583,  582,  579,  578,  577,  576,  575,
+      574,  573,  569,  568,  567,  566,  565,  564,  563,  562,
+      561,  560,  559,  558,  557,  556,  555,  553,  550,  549,
+      548,  547,  546,  545,  544,  542,  541,  539,  538,  535,
+      534,  533,  532,  529,  528,  527,  526,  525,  524,  523,
+      522,  521,  520,  519,  518,  517,  514,  513,  512,  509,
+      508,  507,  506,  505,  504,  503,  500,  499,  498,  497,
+
+      496,  495,  494,  493,  492,  491,  490,  487,  486,  485,
+      484,  483,  482,  478,  477,  476,  475,  474,  473,  472,
+      471,  470,  465,  464,  463,  462,  461,  460,  459,  458,
+      457,  456,  455,  454,  451,  450,  449,  448,  445,  444,
+      443,  442,  441,  440,  439,  438,  437,  436,  435,  433,
+      431,  430,  428,  427,  422,  417,  414,  411,  410,  409,
+      408,  406,  405,  404,  403,  402,  401,  400,  397,  396,
+      395,  394,  393,  392,  391,  390,  387,  386,  385,  384,
+      383,  382,  381,  380,  379,  378,  377,  376,  375,  371,
+      370,  369,  368,  367,  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,  327,  326,  325,  324,
+      323,  322,  321,  320,  206,  314,  312,  310,  307,  306,
+      304,  302,  295,  294,  293,  291,  290,  288,  287,  286,
+      285,  284,  283,  268,  267,  263,  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, 1613,   11, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613
     } ;
 
-static const flex_int16_t yy_chk[2072] =
+static const flex_int16_t yy_chk[2088] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  611,    3,    3,    3,   21,    1,    1,    3,   44,
-        0,    1,    4,    4,    4,   13,    1,   13,    4,   27,
+       21,  614,    3,    3,    3,   21,    1,    1,    3,   44,
+      717,    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,
-      611,    8,    8,    8,    1,    8,   44,   27,   28,  109,
+      614,    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,
@@ -1543,211 +1550,212 @@ static const flex_int16_t yy_chk[2072] =
        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,  718,
        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,  168,  168,
        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,  718,   67,   45,   93,   45,   45,   55,   45,
+       73,   67,  719,   67,   45,   93,   45,   45,   55,   45,
        73,   45,   45,   45,  304,   58,   69,   69,   45,   45,
 
        69,   45,   58,   96,  304,   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,  641,   62,   70,   58,   62,   62,   70,
-       58,   71,   75,   70,  641,   94,   75,  101,   58,   78,
+       62,   96,   58,  644,   62,   70,   58,   62,   62,   70,
+       58,   71,   75,   70,  644,   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,  281,  294,   77,  150,  105,
-       76,   76,   78,  112,  101,  115,   76,   78,  281,  719,
+       76,   76,   78,  112,  101,  115,   76,   78,  281,  720,
        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,
+      722,   83,   77,   82,   83,   83,   83,   83,   83,   84,
       114,   84,   84,   84,   84,   84,  103,  111,  294,   81,
-      108,  119,  721,  103,   84,  113,   82,   85,   85,   85,
+      108,  119,  723,  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,  169,  119,
       126,  140,  169,  103,  140,  137,  169,  103,  140,  126,
       126,  103,  186,   85,  156,  162,  162,  162,  164,  103,
       167,  164,  164,  103,  176,  103,  103,  118,  118,  118,
-      118,  118,  185,  248,  722,  186,  118,  118,  118,  118,
+      118,  118,  185,  208,  724,  186,  118,  118,  118,  118,
 
-      118,  118,  156,  188,  156,  179,  184,  187,  258,  723,
+      118,  118,  156,  188,  156,  179,  184,  187,  258,  248,
       197,  176,  198,  189,  194,  167,  167,  167,  185,  118,
       118,  118,  118,  118,  118,  200,  167,  202,  167,  188,
       167,  167,  179,  167,  184,  187,  189,  194,  197,  198,
-      204,  209,  272,  218,  258,  272,  248,  289,  200,  248,
-      202,  218,  289,  296,  379,  305,  218,  218,  258,  311,
-      299,  318,  308,  366,  209,  307,  307,  204,  207,  207,
-      207,  207,  207,  366,  307,  330,  296,  207,  207,  207,
-      207,  207,  207,  299,  305,  308,  549,  311,  336,  388,
-      318,  349,  330,  388,  336,  392,  349,  420,  724,  392,
+      204,  209,  272,  218,  258,  272,  311,  208,  200,  289,
+      202,  218,  296,  299,  289,  305,  218,  218,  258,  319,
+      308,  725,  248,  726,  209,  248,  380,  204,  207,  207,
+      207,  207,  207,  331,  311,  296,  299,  207,  207,  207,
+      207,  207,  207,  308,  305,  307,  307,  337,  319,  367,
+      331,  350,  407,  337,  307,  407,  350,  727,  452,  367,
 
       207,  207,  207,  207,  207,  207,  316,  316,  316,  316,
-      316,  406,  379,  549,  406,  316,  316,  316,  316,  316,
-      316,  359,  359,  412,  432,  420,  359,  430,  412,  430,
-      459,  725,  450,  726,  550,  459,  478,  657,  316,  316,
-      316,  316,  316,  316,  349,  450,  478,  450,  551,  349,
-      590,  590,  432,  551,  430,  658,  430,  431,  431,  431,
-      431,  431,  550,  727,  728,  657,  431,  431,  431,  431,
-      431,  431,  729,  664,  666,  666,  730,  666,  658,  664,
-      703,  731,  732,  703,  733,  734,  735,  736,  737,  431,
-      431,  431,  431,  431,  431,  738,  739,  740,  741,  741,
-
-      742,  743,  744,  739,  746,  747,  741,  748,  744,  749,
-      741,  750,  751,  752,  753,  754,  755,  756,  757,  758,
-      760,  761,  762,  763,  764,  765,  766,  767,  768,  770,
-      771,  772,  773,  774,  775,  776,  777,  778,  779,  780,
-      781,  782,  783,  784,  785,  786,  787,  788,  790,  761,
-      791,  792,  793,  794,  795,  796,  797,  798,  799,  795,
-      800,  801,  802,  803,  806,  807,  808,  809,  810,  811,
-      814,  815,  816,  817,  818,  819,  820,  821,  822,  819,
-      823,  824,  825,  828,  829,  830,  831,  832,  833,  834,
+      316,  452,  728,  452,  661,  316,  316,  316,  316,  316,
+      316,  360,  360,  389,  380,  393,  360,  389,  413,  393,
+      421,  461,  431,  413,  431,  480,  461,  661,  316,  316,
+      316,  316,  316,  316,  350,  480,  554,  593,  593,  350,
+      434,  554,  551,  552,  660,  729,  730,  707,  421,  431,
+      707,  431,  432,  432,  432,  432,  432,  670,  670,  731,
+      670,  432,  432,  432,  432,  432,  432,  668,  434,  551,
+      732,  552,  660,  668,  733,  734,  735,  736,  737,  738,
+      739,  740,  741,  742,  432,  432,  432,  432,  432,  432,
+
+      743,  744,  745,  745,  746,  747,  748,  743,  750,  751,
+      745,  752,  748,  753,  745,  754,  755,  756,  757,  758,
+      759,  760,  761,  762,  764,  765,  766,  767,  768,  769,
+      770,  771,  772,  773,  775,  776,  777,  778,  779,  780,
+      781,  782,  783,  784,  785,  786,  787,  788,  789,  790,
+      791,  792,  793,  765,  795,  796,  797,  798,  799,  800,
+      801,  802,  803,  804,  800,  805,  806,  807,  808,  811,
+      812,  813,  814,  815,  816,  819,  820,  821,  822,  823,
+      824,  825,  826,  827,  824,  828,  829,  830,  833,  834,
       835,  836,  837,  838,  839,  840,  841,  842,  843,  844,
 
-      845,  846,  847,  848,  849,  850,  851,  852,  853,  855,
-      856,  857,  858,  859,  860,  861,  862,  863,  864,  865,
-      867,  868,  869,  870,  871,  872,  873,  874,  875,  876,
+      845,  846,  847,  848,  849,  850,  851,  852,  853,  854,
+      855,  856,  857,  858,  860,  861,  862,  863,  864,  865,
+      866,  867,  868,  869,  870,  872,  873,  874,  875,  876,
       877,  878,  879,  880,  881,  882,  883,  884,  885,  886,
-      887,  888,  889,  891,  868,  892,  893,  867,  894,  895,
-      896,  897,  898,  899,  901,  902,  903,  904,  905,  907,
-      908,  909,  910,  911,  912,  913,  914,  915,  916,  917,
+      887,  888,  889,  890,  891,  892,  893,  894,  895,  873,
+      897,  898,  872,  899,  900,  901,  902,  903,  904,  905,
+      907,  908,  909,  910,  911,  913,  914,  915,  916,  917,
       918,  919,  920,  921,  922,  923,  924,  925,  926,  927,
-      929,  930,  931,  933,  934,  935,  936,  937,  938,  926,
-      939,  940,  941,  942,  943,  944,  945,  946,  947,  948,
-
-      949,  950,  952,  953,  954,  955,  956,  957,  958,  959,
-      960,  961,  962,  963,  964,  904,  965,  966,  968,  967,
-      969,  970,  971,  972,  973,  975,  976,  977,  978,  979,
-      980,  981,  982,  983,  984,  986,  987,  988,  989,  990,
-      991,  992,  993,  994,  995,  966,  967,  996,  997,  998,
-      999, 1000, 1002, 1003, 1004, 1005, 1006, 1002, 1007, 1008,
-     1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
-     1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1029,
-     1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
-     1041, 1042, 1043, 1045, 1046, 1047, 1048, 1003, 1049, 1050,
-
-     1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1060, 1061,
-     1062, 1063, 1064, 1065, 1066, 1068, 1069, 1070, 1071, 1072,
-     1073, 1074, 1075, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
-     1085, 1086, 1061, 1087, 1088, 1089, 1090, 1091, 1062, 1092,
-     1095, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
-     1106, 1107, 1109, 1110, 1111, 1112, 1114, 1115, 1116, 1117,
-     1118, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129,
-     1130, 1131, 1132, 1133, 1134, 1135, 1136, 1138, 1139, 1140,
-     1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
-     1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1163, 1164,
-
-     1165, 1166, 1167, 1168, 1169, 1170, 1172, 1173, 1174, 1175,
-     1176, 1177, 1178, 1179, 1180, 1181, 1151, 1182, 1183, 1184,
-     1185, 1186, 1187, 1130, 1188, 1189, 1190, 1191, 1192, 1194,
-     1187, 1197, 1198, 1199, 1200, 1201, 1202, 1157, 1203, 1204,
-     1205, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1215, 1216,
-     1218, 1221, 1223, 1225, 1226, 1227, 1228, 1229, 1231, 1232,
-     1227, 1233, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242,
-     1243, 1244, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
-     1229, 1254, 1255, 1256, 1259, 1261, 1262, 1263, 1264, 1265,
-     1266, 1267, 1268, 1270, 1271, 1272, 1273, 1274, 1275, 1277,
-
-     1278, 1280, 1281, 1282, 1283, 1285, 1286, 1287, 1288, 1289,
-     1290, 1291, 1293, 1295, 1297, 1299, 1300, 1301, 1302, 1303,
-     1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
-     1314, 1315, 1316, 1317, 1318, 1319, 1319, 1320, 1321, 1322,
-     1323, 1297, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
-     1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
-     1342, 1343, 1345, 1346, 1347, 1349, 1350, 1351, 1352, 1354,
-     1357, 1358, 1359, 1362, 1363, 1364, 1367, 1368, 1369, 1370,
-     1371, 1372, 1373, 1374, 1376, 1377, 1379, 1381, 1382, 1383,
-     1385, 1386, 1387, 1388, 1390, 1320, 1352, 1391, 1392, 1393,
-
-     1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
-     1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1415,
-     1416, 1417, 1419, 1420, 1421, 1423, 1425, 1426, 1427, 1428,
-     1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1439,
-     1440, 1442, 1445, 1448, 1450, 1451, 1452, 1454, 1455, 1457,
-     1458, 1459, 1460, 1461, 1462, 1464, 1465, 1466, 1468, 1469,
-     1470, 1471, 1472, 1473, 1474, 1475, 1477, 1478, 1479, 1480,
-     1481, 1482, 1483, 1484, 1485, 1486, 1487, 1490, 1491, 1492,
-     1493, 1494, 1495, 1496, 1498, 1499, 1500, 1501, 1502, 1503,
-     1504, 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1514, 1518,
-
-     1520, 1521, 1522, 1523, 1525, 1527, 1528, 1529, 1530, 1532,
-     1533, 1535, 1536, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
-     1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
-     1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566,
-     1568, 1570, 1571, 1572, 1573, 1574, 1575, 1579, 1580, 1581,
-     1582, 1584, 1585, 1587, 1588, 1589, 1590, 1591, 1593, 1594,
-     1597, 1597, 1597, 1597, 1597, 1598, 1598, 1598, 1598, 1598,
-     1599, 1605, 1599, 1599, 1599, 1600, 1606, 1600, 1607, 1600,
-     1601, 1601, 1601, 1601, 1601, 1602, 1602, 1602, 1602, 1602,
-     1603, 1608, 1603, 1603, 1603, 1604, 1604, 1604,  715,  714,
-
-      713,  712,  711,  710,  709,  708,  706,  705,  704,  702,
-      701,  700,  699,  698,  697,  696,  695,  694,  693,  692,
-      691,  690,  689,  688,  687,  685,  684,  683,  682,  681,
-      680,  679,  678,  677,  676,  675,  674,  673,  672,  671,
-      670,  669,  668,  667,  665,  663,  662,  661,  660,  659,
-      656,  655,  654,  652,  651,  649,  648,  647,  646,  645,
-      644,  643,  642,  639,  638,  637,  636,  635,  634,  633,
-      632,  631,  630,  629,  628,  627,  625,  624,  623,  622,
-      621,  620,  619,  618,  616,  615,  614,  613,  612,  610,
-      609,  608,  607,  606,  605,  604,  602,  601,  600,  599,
-
-      598,  597,  596,  595,  594,  593,  592,  591,  589,  588,
-      587,  586,  585,  584,  583,  582,  581,  580,  579,  578,
-      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
-      566,  565,  564,  563,  562,  561,  560,  559,  558,  557,
-      556,  555,  554,  553,  547,  545,  542,  541,  540,  539,
-      537,  536,  535,  533,  532,  529,  528,  527,  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,  500,  498,  497,  496,  495,  494,  493,
-      492,  491,  490,  489,  488,  487,  486,  484,  483,  482,
-
-      481,  480,  479,  477,  476,  475,  474,  473,  472,  471,
-      470,  469,  468,  467,  466,  465,  463,  462,  461,  460,
-      458,  457,  456,  455,  454,  452,  451,  449,  448,  446,
-      445,  444,  443,  442,  441,  440,  438,  437,  436,  435,
-      434,  433,  428,  427,  425,  424,  423,  422,  421,  419,
-      418,  416,  413,  411,  410,  408,  407,  405,  404,  403,
-      402,  401,  400,  399,  398,  397,  396,  395,  394,  393,
-      391,  390,  389,  387,  386,  385,  384,  382,  381,  380,
-      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
-      367,  365,  364,  363,  362,  361,  360,  358,  357,  356,
-
-      355,  354,  353,  352,  351,  350,  348,  347,  346,  345,
-      344,  343,  342,  341,  340,  339,  338,  337,  335,  334,
-      333,  332,  329,  328,  327,  326,  325,  324,  323,  322,
-      321,  320,  319,  315,  313,  310,  309,  306,  302,  295,
-      293,  292,  291,  290,  288,  287,  286,  285,  284,  283,
-      282,  280,  279,  278,  277,  276,  275,  274,  273,  271,
-      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, 1596, 1596, 1596,
-
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596, 1596,
-     1596
+      928,  929,  930,  931,  932,  933,  935,  936,  937,  939,
+      940,  941,  942,  943,  944,  932,  945,  946,  947,  948,
+
+      949,  950,  951,  952,  953,  954,  955,  956,  958,  959,
+      960,  961,  962,  963,  964,  965,  966,  967,  968,  969,
+      970,  910,  971,  972,  974,  973,  975,  976,  977,  978,
+      979,  980,  982,  983,  984,  985,  986,  987,  988,  989,
+      990,  991,  993,  994,  995,  996,  997,  998,  999, 1000,
+     1001,  972,  973, 1002, 1003, 1004, 1005, 1006, 1007, 1009,
+     1010, 1011, 1012, 1013, 1009, 1014, 1015, 1016, 1017, 1018,
+     1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
+     1029, 1030, 1031, 1032, 1033, 1034, 1036, 1037, 1038, 1039,
+     1040, 1041, 1042, 1043, 1044, 1045, 1046, 1048, 1049, 1050,
+
+     1052, 1053, 1054, 1055, 1010, 1056, 1057, 1058, 1059, 1060,
+     1061, 1062, 1063, 1064, 1065, 1067, 1068, 1069, 1070, 1071,
+     1072, 1073, 1074, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
+     1083, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1068,
+     1094, 1095, 1096, 1097, 1098, 1069, 1099, 1100, 1103, 1105,
+     1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
+     1117, 1118, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1129,
+     1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
+     1140, 1141, 1142, 1143, 1144, 1146, 1147, 1148, 1151, 1152,
+     1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1163,
+
+     1164, 1165, 1166, 1167, 1168, 1169, 1170, 1172, 1173, 1174,
+     1175, 1176, 1177, 1178, 1179, 1181, 1182, 1183, 1184, 1185,
+     1186, 1187, 1188, 1189, 1159, 1190, 1191, 1192, 1193, 1194,
+     1195, 1138, 1196, 1197, 1198, 1199, 1200, 1201, 1203, 1206,
+     1196, 1207, 1208, 1209, 1210, 1211, 1166, 1212, 1213, 1214,
+     1216, 1217, 1218, 1219, 1220, 1221, 1222, 1224, 1225, 1227,
+     1230, 1232, 1234, 1235, 1236, 1237, 1238, 1240, 1241, 1236,
+     1242, 1243, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
+     1253, 1254, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1238,
+     1263, 1264, 1265, 1266, 1269, 1271, 1272, 1273, 1274, 1275,
+
+     1276, 1277, 1278, 1280, 1281, 1282, 1283, 1284, 1285, 1287,
+     1288, 1290, 1291, 1292, 1293, 1295, 1296, 1297, 1298, 1299,
+     1300, 1301, 1303, 1305, 1307, 1308, 1310, 1311, 1312, 1313,
+     1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
+     1324, 1325, 1326, 1327, 1328, 1329, 1330, 1330, 1331, 1332,
+     1333, 1307, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
+     1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
+     1352, 1353, 1354, 1356, 1357, 1358, 1360, 1361, 1362, 1363,
+     1364, 1366, 1369, 1370, 1371, 1374, 1375, 1376, 1379, 1380,
+     1381, 1382, 1383, 1384, 1385, 1386, 1388, 1389, 1391, 1393,
+
+     1394, 1395, 1397, 1398, 1399, 1400, 1331, 1363, 1402, 1403,
+     1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
+     1414, 1415, 1417, 1418, 1419, 1420, 1421, 1422, 1424, 1425,
+     1426, 1427, 1428, 1429, 1430, 1432, 1433, 1434, 1436, 1438,
+     1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448,
+     1449, 1450, 1452, 1453, 1455, 1458, 1461, 1462, 1464, 1465,
+     1466, 1468, 1469, 1471, 1472, 1473, 1474, 1475, 1476, 1478,
+     1479, 1480, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
+     1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
+     1501, 1502, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1513,
+
+     1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1524,
+     1525, 1526, 1527, 1528, 1530, 1534, 1536, 1537, 1538, 1539,
+     1541, 1544, 1545, 1546, 1547, 1549, 1550, 1552, 1553, 1556,
+     1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566,
+     1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
+     1577, 1579, 1580, 1581, 1582, 1583, 1585, 1587, 1588, 1589,
+     1590, 1591, 1592, 1596, 1597, 1598, 1599, 1601, 1602, 1604,
+     1605, 1606, 1607, 1608, 1610, 1611, 1614, 1614, 1614, 1614,
+     1614, 1615, 1615, 1615, 1615, 1615, 1616, 1622, 1616, 1616,
+     1616, 1617, 1623, 1617, 1624, 1617, 1618, 1618, 1618, 1618,
+
+     1618, 1619, 1619, 1619, 1619, 1619, 1620, 1625, 1620, 1620,
+     1620, 1621, 1621, 1621,  716,  715,  714,  713,  712,  710,
+      709,  708,  706,  705,  704,  703,  702,  701,  700,  699,
+      698,  697,  696,  695,  694,  693,  692,  691,  689,  688,
+      687,  686,  685,  684,  683,  682,  681,  680,  679,  678,
+      677,  676,  675,  674,  673,  672,  671,  669,  667,  666,
+      665,  664,  663,  662,  659,  658,  657,  655,  654,  652,
+      651,  650,  649,  648,  647,  646,  645,  642,  641,  640,
+      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
+      628,  627,  626,  625,  624,  623,  622,  621,  619,  618,
+
+      617,  616,  615,  613,  612,  611,  610,  609,  608,  607,
+      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
+      595,  594,  592,  591,  590,  589,  588,  587,  586,  585,
+      584,  583,  582,  581,  579,  578,  577,  576,  575,  574,
+      573,  572,  571,  570,  569,  568,  567,  566,  565,  564,
+      563,  562,  561,  560,  559,  558,  557,  556,  553,  549,
+      547,  544,  543,  542,  541,  539,  538,  537,  535,  534,
+      531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
+      521,  520,  519,  518,  517,  516,  515,  514,  513,  512,
+      511,  510,  509,  508,  507,  506,  505,  504,  502,  500,
+
+      499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
+      489,  488,  486,  485,  484,  483,  482,  481,  479,  478,
+      477,  476,  475,  474,  473,  472,  471,  470,  469,  468,
+      467,  465,  464,  463,  462,  460,  459,  458,  457,  456,
+      454,  453,  451,  450,  448,  447,  446,  445,  444,  443,
+      442,  440,  439,  438,  437,  436,  435,  433,  429,  428,
+      426,  425,  424,  423,  422,  420,  419,  417,  414,  412,
+      411,  409,  408,  406,  405,  404,  403,  402,  401,  400,
+      399,  398,  397,  396,  395,  394,  392,  391,  390,  388,
+      387,  386,  385,  383,  382,  381,  379,  378,  377,  376,
+
+      375,  374,  373,  372,  371,  370,  368,  366,  365,  364,
+      363,  362,  361,  359,  358,  357,  356,  355,  354,  353,
+      352,  351,  349,  348,  347,  346,  345,  344,  343,  342,
+      341,  340,  339,  338,  336,  335,  334,  333,  330,  329,
+      328,  327,  326,  325,  324,  323,  322,  321,  320,  318,
+      315,  313,  310,  309,  306,  302,  295,  293,  292,  291,
+      290,  288,  287,  286,  285,  284,  283,  282,  280,  279,
+      278,  277,  276,  275,  274,  273,  271,  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,  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, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+     1613, 1613, 1613, 1613, 1613, 1613, 1613
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1756,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[185] =
+static const flex_int16_t yy_rule_linenum[186] =
     {   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,  594,  605,  616,  627,  638,  649,  658,  667,
-      677,  686,  696,  710,  726,  735,  744,  753,  762,  783,
-      804,  813,  823,  832,  843,  852,  861,  870,  879,  888,
-      898,  907,  918,  929,  941,  950,  960,  969,  978,  987,
-      996, 1005, 1014, 1023, 1032, 1042, 1053, 1065, 1074, 1083,
-
-     1093, 1103, 1113, 1123, 1133, 1143, 1152, 1162, 1171, 1180,
-     1189, 1198, 1208, 1218, 1227, 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, 1589, 1599, 1608, 1617, 1626, 1635, 1644,
-     1653, 1662, 1673, 1684, 1697, 1710, 1725, 1824, 1829, 1834,
-     1839, 1840, 1841, 1842, 1843, 1844, 1846, 1864, 1877, 1882,
-     1886, 1888, 1890, 1892
+      574,  585,  594,  605,  616,  627,  638,  649,  660,  669,
+      678,  688,  697,  707,  721,  737,  746,  755,  764,  773,
+      794,  815,  824,  834,  843,  854,  863,  872,  881,  890,
+      899,  909,  918,  929,  940,  952,  961,  971,  980,  989,
+      998, 1007, 1016, 1025, 1034, 1043, 1053, 1064, 1076, 1085,
+
+     1094, 1104, 1114, 1124, 1134, 1144, 1154, 1163, 1173, 1182,
+     1191, 1200, 1209, 1219, 1229, 1238, 1248, 1257, 1266, 1275,
+     1284, 1293, 1302, 1311, 1320, 1329, 1338, 1347, 1356, 1365,
+     1374, 1383, 1392, 1401, 1410, 1419, 1428, 1437, 1446, 1455,
+     1464, 1473, 1482, 1491, 1500, 1510, 1520, 1530, 1540, 1550,
+     1560, 1570, 1580, 1590, 1600, 1610, 1619, 1628, 1637, 1646,
+     1655, 1664, 1673, 1684, 1695, 1708, 1721, 1736, 1835, 1840,
+     1845, 1850, 1851, 1852, 1853, 1854, 1855, 1857, 1875, 1888,
+     1893, 1897, 1899, 1901, 1903
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1830,7 +1838,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 1833 "dhcp4_lexer.cc"
+#line 1841 "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
@@ -1856,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 1859 "dhcp4_lexer.cc"
-#line 1860 "dhcp4_lexer.cc"
+#line 1867 "dhcp4_lexer.cc"
+#line 1868 "dhcp4_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2187,7 +2195,7 @@ YY_DECL
     }
 
 
-#line 2190 "dhcp4_lexer.cc"
+#line 2198 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2216,13 +2224,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 >= 1597 )
+                               if ( yy_current_state >= 1614 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1596 );
+               while ( yy_current_state != 1613 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2241,13 +2249,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 < 185 )
+                       else if ( yy_act < 186 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 185 )
+                       else if ( yy_act == 186 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 186 )
+                       else if ( yy_act == 187 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2950,6 +2958,20 @@ YY_RULE_SETUP
 case 58:
 YY_RULE_SETUP
 #line 649 "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_ALLOW_STATIC_LEASES(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp4Parser::make_STRING("allow-static-leases", driver.loc_);
+    }
+}
+       YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 660 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2959,9 +2981,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 59:
+case 60:
 YY_RULE_SETUP
-#line 658 "dhcp4_lexer.ll"
+#line 669 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2971,9 +2993,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 60:
+case 61:
 YY_RULE_SETUP
-#line 667 "dhcp4_lexer.ll"
+#line 678 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2984,9 +3006,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 61:
+case 62:
 YY_RULE_SETUP
-#line 677 "dhcp4_lexer.ll"
+#line 688 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2996,9 +3018,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 62:
+case 63:
 YY_RULE_SETUP
-#line 686 "dhcp4_lexer.ll"
+#line 697 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3009,9 +3031,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 63:
+case 64:
 YY_RULE_SETUP
-#line 696 "dhcp4_lexer.ll"
+#line 707 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3026,9 +3048,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 64:
+case 65:
 YY_RULE_SETUP
-#line 710 "dhcp4_lexer.ll"
+#line 721 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -3045,9 +3067,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 65:
+case 66:
 YY_RULE_SETUP
-#line 726 "dhcp4_lexer.ll"
+#line 737 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3057,9 +3079,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 66:
+case 67:
 YY_RULE_SETUP
-#line 735 "dhcp4_lexer.ll"
+#line 746 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3069,9 +3091,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 67:
+case 68:
 YY_RULE_SETUP
-#line 744 "dhcp4_lexer.ll"
+#line 755 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3081,9 +3103,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 68:
+case 69:
 YY_RULE_SETUP
-#line 753 "dhcp4_lexer.ll"
+#line 764 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -3093,9 +3115,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 69:
+case 70:
 YY_RULE_SETUP
-#line 762 "dhcp4_lexer.ll"
+#line 773 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3117,9 +3139,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 70:
+case 71:
 YY_RULE_SETUP
-#line 783 "dhcp4_lexer.ll"
+#line 794 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3141,9 +3163,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 71:
+case 72:
 YY_RULE_SETUP
-#line 804 "dhcp4_lexer.ll"
+#line 815 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3153,9 +3175,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 72:
+case 73:
 YY_RULE_SETUP
-#line 813 "dhcp4_lexer.ll"
+#line 824 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3166,9 +3188,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 73:
+case 74:
 YY_RULE_SETUP
-#line 823 "dhcp4_lexer.ll"
+#line 834 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3178,9 +3200,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 74:
+case 75:
 YY_RULE_SETUP
-#line 832 "dhcp4_lexer.ll"
+#line 843 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3192,9 +3214,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 75:
+case 76:
 YY_RULE_SETUP
-#line 843 "dhcp4_lexer.ll"
+#line 854 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3204,9 +3226,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 76:
+case 77:
 YY_RULE_SETUP
-#line 852 "dhcp4_lexer.ll"
+#line 863 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3216,9 +3238,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 77:
+case 78:
 YY_RULE_SETUP
-#line 861 "dhcp4_lexer.ll"
+#line 872 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3228,9 +3250,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 870 "dhcp4_lexer.ll"
+#line 881 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3240,9 +3262,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 879 "dhcp4_lexer.ll"
+#line 890 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -3252,9 +3274,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 888 "dhcp4_lexer.ll"
+#line 899 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3265,9 +3287,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 898 "dhcp4_lexer.ll"
+#line 909 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3277,9 +3299,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 907 "dhcp4_lexer.ll"
+#line 918 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3291,9 +3313,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 918 "dhcp4_lexer.ll"
+#line 929 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3305,9 +3327,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 929 "dhcp4_lexer.ll"
+#line 940 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3319,9 +3341,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 941 "dhcp4_lexer.ll"
+#line 952 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3331,9 +3353,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 950 "dhcp4_lexer.ll"
+#line 961 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3344,9 +3366,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 960 "dhcp4_lexer.ll"
+#line 971 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3356,9 +3378,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 969 "dhcp4_lexer.ll"
+#line 980 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3368,9 +3390,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 978 "dhcp4_lexer.ll"
+#line 989 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3380,9 +3402,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 987 "dhcp4_lexer.ll"
+#line 998 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3392,9 +3414,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 996 "dhcp4_lexer.ll"
+#line 1007 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3404,9 +3426,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 1005 "dhcp4_lexer.ll"
+#line 1016 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3416,9 +3438,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1014 "dhcp4_lexer.ll"
+#line 1025 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -3428,9 +3450,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1023 "dhcp4_lexer.ll"
+#line 1034 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -3440,9 +3462,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1032 "dhcp4_lexer.ll"
+#line 1043 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3453,9 +3475,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1042 "dhcp4_lexer.ll"
+#line 1053 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3467,9 +3489,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1053 "dhcp4_lexer.ll"
+#line 1064 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3482,9 +3504,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1065 "dhcp4_lexer.ll"
+#line 1076 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3494,9 +3516,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1074 "dhcp4_lexer.ll"
+#line 1085 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3506,9 +3528,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1083 "dhcp4_lexer.ll"
+#line 1094 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3519,9 +3541,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1093 "dhcp4_lexer.ll"
+#line 1104 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3532,9 +3554,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1103 "dhcp4_lexer.ll"
+#line 1114 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3545,9 +3567,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1113 "dhcp4_lexer.ll"
+#line 1124 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3558,9 +3580,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1123 "dhcp4_lexer.ll"
+#line 1134 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3571,9 +3593,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1133 "dhcp4_lexer.ll"
+#line 1144 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3584,9 +3606,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1143 "dhcp4_lexer.ll"
+#line 1154 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3596,9 +3618,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1152 "dhcp4_lexer.ll"
+#line 1163 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3609,9 +3631,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1162 "dhcp4_lexer.ll"
+#line 1173 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3621,9 +3643,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1171 "dhcp4_lexer.ll"
+#line 1182 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3633,9 +3655,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1180 "dhcp4_lexer.ll"
+#line 1191 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3645,9 +3667,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1189 "dhcp4_lexer.ll"
+#line 1200 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3657,9 +3679,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1198 "dhcp4_lexer.ll"
+#line 1209 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3670,9 +3692,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1208 "dhcp4_lexer.ll"
+#line 1219 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3683,9 +3705,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1218 "dhcp4_lexer.ll"
+#line 1229 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3695,9 +3717,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1227 "dhcp4_lexer.ll"
+#line 1238 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3707,9 +3729,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1237 "dhcp4_lexer.ll"
+#line 1248 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3719,9 +3741,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1246 "dhcp4_lexer.ll"
+#line 1257 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3731,9 +3753,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1255 "dhcp4_lexer.ll"
+#line 1266 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3743,9 +3765,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1264 "dhcp4_lexer.ll"
+#line 1275 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3755,9 +3777,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1273 "dhcp4_lexer.ll"
+#line 1284 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3767,9 +3789,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1282 "dhcp4_lexer.ll"
+#line 1293 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3779,9 +3801,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1291 "dhcp4_lexer.ll"
+#line 1302 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3791,9 +3813,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1300 "dhcp4_lexer.ll"
+#line 1311 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3803,9 +3825,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1309 "dhcp4_lexer.ll"
+#line 1320 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3815,9 +3837,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1318 "dhcp4_lexer.ll"
+#line 1329 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3827,9 +3849,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1327 "dhcp4_lexer.ll"
+#line 1338 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3839,9 +3861,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1336 "dhcp4_lexer.ll"
+#line 1347 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3851,9 +3873,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1345 "dhcp4_lexer.ll"
+#line 1356 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3863,9 +3885,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1354 "dhcp4_lexer.ll"
+#line 1365 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3875,9 +3897,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1363 "dhcp4_lexer.ll"
+#line 1374 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3887,9 +3909,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1372 "dhcp4_lexer.ll"
+#line 1383 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3899,9 +3921,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1381 "dhcp4_lexer.ll"
+#line 1392 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3911,9 +3933,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1390 "dhcp4_lexer.ll"
+#line 1401 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3923,9 +3945,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1399 "dhcp4_lexer.ll"
+#line 1410 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3935,9 +3957,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1408 "dhcp4_lexer.ll"
+#line 1419 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3947,9 +3969,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1417 "dhcp4_lexer.ll"
+#line 1428 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3959,9 +3981,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1426 "dhcp4_lexer.ll"
+#line 1437 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3971,9 +3993,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1435 "dhcp4_lexer.ll"
+#line 1446 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3983,9 +4005,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1444 "dhcp4_lexer.ll"
+#line 1455 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3995,9 +4017,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1453 "dhcp4_lexer.ll"
+#line 1464 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4007,9 +4029,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1462 "dhcp4_lexer.ll"
+#line 1473 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4019,9 +4041,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1471 "dhcp4_lexer.ll"
+#line 1482 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4031,9 +4053,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1480 "dhcp4_lexer.ll"
+#line 1491 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -4043,9 +4065,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1489 "dhcp4_lexer.ll"
+#line 1500 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4056,9 +4078,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1499 "dhcp4_lexer.ll"
+#line 1510 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4069,9 +4091,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1509 "dhcp4_lexer.ll"
+#line 1520 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4082,9 +4104,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1519 "dhcp4_lexer.ll"
+#line 1530 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -4095,9 +4117,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1529 "dhcp4_lexer.ll"
+#line 1540 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -4108,9 +4130,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1539 "dhcp4_lexer.ll"
+#line 1550 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4121,9 +4143,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1549 "dhcp4_lexer.ll"
+#line 1560 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4134,9 +4156,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1559 "dhcp4_lexer.ll"
+#line 1570 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4147,9 +4169,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1569 "dhcp4_lexer.ll"
+#line 1580 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4160,9 +4182,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1579 "dhcp4_lexer.ll"
+#line 1590 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4173,9 +4195,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1589 "dhcp4_lexer.ll"
+#line 1600 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -4186,9 +4208,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1599 "dhcp4_lexer.ll"
+#line 1610 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4198,9 +4220,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1608 "dhcp4_lexer.ll"
+#line 1619 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4210,9 +4232,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1617 "dhcp4_lexer.ll"
+#line 1628 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -4222,9 +4244,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1626 "dhcp4_lexer.ll"
+#line 1637 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4234,9 +4256,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1635 "dhcp4_lexer.ll"
+#line 1646 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4246,9 +4268,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1644 "dhcp4_lexer.ll"
+#line 1655 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -4258,9 +4280,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1653 "dhcp4_lexer.ll"
+#line 1664 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4270,9 +4292,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1662 "dhcp4_lexer.ll"
+#line 1673 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4284,9 +4306,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1673 "dhcp4_lexer.ll"
+#line 1684 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4298,9 +4320,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1684 "dhcp4_lexer.ll"
+#line 1695 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4314,9 +4336,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1697 "dhcp4_lexer.ll"
+#line 1708 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4330,9 +4352,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1710 "dhcp4_lexer.ll"
+#line 1721 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -4346,9 +4368,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1725 "dhcp4_lexer.ll"
+#line 1736 "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.
@@ -4448,65 +4470,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 168:
-/* rule 168 can match eol */
+case 169:
+/* rule 169 can match eol */
 YY_RULE_SETUP
-#line 1824 "dhcp4_lexer.ll"
+#line 1835 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 169:
-/* rule 169 can match eol */
+case 170:
+/* rule 170 can match eol */
 YY_RULE_SETUP
-#line 1829 "dhcp4_lexer.ll"
+#line 1840 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1834 "dhcp4_lexer.ll"
+#line 1845 "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 171:
+case 172:
 YY_RULE_SETUP
-#line 1839 "dhcp4_lexer.ll"
+#line 1850 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1840 "dhcp4_lexer.ll"
+#line 1851 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1841 "dhcp4_lexer.ll"
+#line 1852 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1842 "dhcp4_lexer.ll"
+#line 1853 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 175:
+case 176:
 YY_RULE_SETUP
-#line 1843 "dhcp4_lexer.ll"
+#line 1854 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 176:
+case 177:
 YY_RULE_SETUP
-#line 1844 "dhcp4_lexer.ll"
+#line 1855 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1846 "dhcp4_lexer.ll"
+#line 1857 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4525,9 +4547,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 178:
+case 179:
 YY_RULE_SETUP
-#line 1864 "dhcp4_lexer.ll"
+#line 1875 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4541,43 +4563,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1877 "dhcp4_lexer.ll"
+#line 1888 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1882 "dhcp4_lexer.ll"
+#line 1893 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 1886 "dhcp4_lexer.ll"
+#line 1897 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 1888 "dhcp4_lexer.ll"
+#line 1899 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 1890 "dhcp4_lexer.ll"
+#line 1901 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 1892 "dhcp4_lexer.ll"
+#line 1903 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1894 "dhcp4_lexer.ll"
+#line 1905 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4601,12 +4623,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 1917 "dhcp4_lexer.ll"
+#line 1928 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4609 "dhcp4_lexer.cc"
+#line 4631 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -4925,7 +4947,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 >= 1597 )
+                       if ( yy_current_state >= 1614 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -4958,11 +4980,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 >= 1597 )
+               if ( yy_current_state >= 1614 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1596);
+       yy_is_jam = (yy_current_state == 1613);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5711,7 +5733,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1917 "dhcp4_lexer.ll"
+#line 1928 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index ad1c54974ef4e7fe5b10d4c1fa1af71d3a247f36..459bdda7b7273b7d4aebf22a43a03e701e7b93b0 100644 (file)
@@ -251,30 +251,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 175: // "constant string"
+      case 176: // "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 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 175: // "constant string"
+      case 176: // "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 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -401,74 +401,74 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-      case 175: // "constant string"
-#line 257 "dhcp4_parser.yy"
+      case 176: // "constant string"
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < std::string > (); }
 #line 408 "dhcp4_parser.cc"
         break;
 
-      case 176: // "integer"
-#line 257 "dhcp4_parser.yy"
+      case 177: // "integer"
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < int64_t > (); }
 #line 414 "dhcp4_parser.cc"
         break;
 
-      case 177: // "floating point"
-#line 257 "dhcp4_parser.yy"
+      case 178: // "floating point"
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < double > (); }
 #line 420 "dhcp4_parser.cc"
         break;
 
-      case 178: // "boolean"
-#line 257 "dhcp4_parser.yy"
+      case 179: // "boolean"
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < bool > (); }
 #line 426 "dhcp4_parser.cc"
         break;
 
-      case 195: // value
-#line 257 "dhcp4_parser.yy"
+      case 196: // value
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 432 "dhcp4_parser.cc"
         break;
 
-      case 199: // map_value
-#line 257 "dhcp4_parser.yy"
+      case 200: // map_value
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 438 "dhcp4_parser.cc"
         break;
 
-      case 245: // socket_type
-#line 257 "dhcp4_parser.yy"
+      case 247: // socket_type
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 444 "dhcp4_parser.cc"
         break;
 
-      case 248: // outbound_interface_value
-#line 257 "dhcp4_parser.yy"
+      case 250: // outbound_interface_value
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 450 "dhcp4_parser.cc"
         break;
 
-      case 270: // db_type
-#line 257 "dhcp4_parser.yy"
+      case 272: // db_type
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 456 "dhcp4_parser.cc"
         break;
 
-      case 357: // hr_mode
-#line 257 "dhcp4_parser.yy"
+      case 359: // hr_mode
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 462 "dhcp4_parser.cc"
         break;
 
-      case 506: // ncr_protocol_value
-#line 257 "dhcp4_parser.yy"
+      case 508: // ncr_protocol_value
+#line 258 "dhcp4_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 468 "dhcp4_parser.cc"
         break;
 
-      case 513: // replace_client_name_value
-#line 257 "dhcp4_parser.yy"
+      case 515: // replace_client_name_value
+#line 258 "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 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -735,133 +735,133 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 266 "dhcp4_parser.yy"
+#line 267 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 741 "dhcp4_parser.cc"
     break;
 
   case 4:
-#line 267 "dhcp4_parser.yy"
+#line 268 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.CONFIG; }
 #line 747 "dhcp4_parser.cc"
     break;
 
   case 6:
-#line 268 "dhcp4_parser.yy"
+#line 269 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.DHCP4; }
 #line 753 "dhcp4_parser.cc"
     break;
 
   case 8:
-#line 269 "dhcp4_parser.yy"
+#line 270 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 759 "dhcp4_parser.cc"
     break;
 
   case 10:
-#line 270 "dhcp4_parser.yy"
+#line 271 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.SUBNET4; }
 #line 765 "dhcp4_parser.cc"
     break;
 
   case 12:
-#line 271 "dhcp4_parser.yy"
+#line 272 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.POOLS; }
 #line 771 "dhcp4_parser.cc"
     break;
 
   case 14:
-#line 272 "dhcp4_parser.yy"
+#line 273 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 777 "dhcp4_parser.cc"
     break;
 
   case 16:
-#line 273 "dhcp4_parser.yy"
+#line 274 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.DHCP4; }
 #line 783 "dhcp4_parser.cc"
     break;
 
   case 18:
-#line 274 "dhcp4_parser.yy"
+#line 275 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 789 "dhcp4_parser.cc"
     break;
 
   case 20:
-#line 275 "dhcp4_parser.yy"
+#line 276 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 795 "dhcp4_parser.cc"
     break;
 
   case 22:
-#line 276 "dhcp4_parser.yy"
+#line 277 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 801 "dhcp4_parser.cc"
     break;
 
   case 24:
-#line 277 "dhcp4_parser.yy"
+#line 278 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 807 "dhcp4_parser.cc"
     break;
 
   case 26:
-#line 278 "dhcp4_parser.yy"
+#line 279 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.LOGGING; }
 #line 813 "dhcp4_parser.cc"
     break;
 
   case 28:
-#line 279 "dhcp4_parser.yy"
+#line 280 "dhcp4_parser.yy"
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 819 "dhcp4_parser.cc"
     break;
 
   case 30:
-#line 287 "dhcp4_parser.yy"
+#line 288 "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 288 "dhcp4_parser.yy"
+#line 289 "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 289 "dhcp4_parser.yy"
+#line 290 "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 290 "dhcp4_parser.yy"
+#line 291 "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 291 "dhcp4_parser.yy"
+#line 292 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 849 "dhcp4_parser.cc"
     break;
 
   case 35:
-#line 292 "dhcp4_parser.yy"
+#line 293 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 855 "dhcp4_parser.cc"
     break;
 
   case 36:
-#line 293 "dhcp4_parser.yy"
+#line 294 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 861 "dhcp4_parser.cc"
     break;
 
   case 37:
-#line 296 "dhcp4_parser.yy"
+#line 297 "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 301 "dhcp4_parser.yy"
+#line 302 "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 306 "dhcp4_parser.yy"
+#line 307 "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 312 "dhcp4_parser.yy"
+#line 313 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 897 "dhcp4_parser.cc"
     break;
 
   case 43:
-#line 319 "dhcp4_parser.yy"
+#line 320 "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 323 "dhcp4_parser.yy"
+#line 324 "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 330 "dhcp4_parser.yy"
+#line 331 "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 333 "dhcp4_parser.yy"
+#line 334 "dhcp4_parser.yy"
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -933,7 +933,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 49:
-#line 341 "dhcp4_parser.yy"
+#line 342 "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 345 "dhcp4_parser.yy"
+#line 346 "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 352 "dhcp4_parser.yy"
+#line 353 "dhcp4_parser.yy"
     {
     // List parsing about to start
 }
@@ -959,7 +959,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52:
-#line 354 "dhcp4_parser.yy"
+#line 355 "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 363 "dhcp4_parser.yy"
+#line 364 "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 367 "dhcp4_parser.yy"
+#line 368 "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 378 "dhcp4_parser.yy"
+#line 379 "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 388 "dhcp4_parser.yy"
+#line 389 "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 393 "dhcp4_parser.yy"
+#line 394 "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 417 "dhcp4_parser.yy"
+#line 418 "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 424 "dhcp4_parser.yy"
+#line 425 "dhcp4_parser.yy"
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1044,7 +1044,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 70:
-#line 432 "dhcp4_parser.yy"
+#line 433 "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 436 "dhcp4_parser.yy"
+#line 437 "dhcp4_parser.yy"
     {
     // No global parameter is required
     // parsing completed
@@ -1062,8 +1062,8 @@ namespace isc { namespace dhcp {
 #line 1063 "dhcp4_parser.cc"
     break;
 
-  case 116:
-#line 491 "dhcp4_parser.yy"
+  case 117:
+#line 493 "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);
@@ -1071,8 +1071,8 @@ namespace isc { namespace dhcp {
 #line 1072 "dhcp4_parser.cc"
     break;
 
-  case 117:
-#line 496 "dhcp4_parser.yy"
+  case 118:
+#line 498 "dhcp4_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);
@@ -1080,8 +1080,8 @@ namespace isc { namespace dhcp {
 #line 1081 "dhcp4_parser.cc"
     break;
 
-  case 118:
-#line 501 "dhcp4_parser.yy"
+  case 119:
+#line 503 "dhcp4_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);
@@ -1089,8 +1089,8 @@ namespace isc { namespace dhcp {
 #line 1090 "dhcp4_parser.cc"
     break;
 
-  case 119:
-#line 506 "dhcp4_parser.yy"
+  case 120:
+#line 508 "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);
@@ -1098,8 +1098,8 @@ namespace isc { namespace dhcp {
 #line 1099 "dhcp4_parser.cc"
     break;
 
-  case 120:
-#line 511 "dhcp4_parser.yy"
+  case 121:
+#line 513 "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);
@@ -1107,270 +1107,279 @@ namespace isc { namespace dhcp {
 #line 1108 "dhcp4_parser.cc"
     break;
 
-  case 121:
-#line 516 "dhcp4_parser.yy"
+  case 122:
+#line 518 "dhcp4_parser.yy"
+    {
+    ElementPtr asl(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("allow-static-leases", asl);
+}
+#line 1117 "dhcp4_parser.cc"
+    break;
+
+  case 123:
+#line 523 "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);
 }
-#line 1117 "dhcp4_parser.cc"
+#line 1126 "dhcp4_parser.cc"
     break;
 
-  case 122:
-#line 521 "dhcp4_parser.yy"
+  case 124:
+#line 528 "dhcp4_parser.yy"
     {
     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"
+#line 1135 "dhcp4_parser.cc"
     break;
 
-  case 123:
-#line 526 "dhcp4_parser.yy"
+  case 125:
+#line 533 "dhcp4_parser.yy"
     {
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t2-percent", t2);
 }
-#line 1135 "dhcp4_parser.cc"
+#line 1144 "dhcp4_parser.cc"
     break;
 
-  case 124:
-#line 531 "dhcp4_parser.yy"
+  case 126:
+#line 538 "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"
+#line 1153 "dhcp4_parser.cc"
     break;
 
-  case 125:
-#line 536 "dhcp4_parser.yy"
+  case 127:
+#line 543 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1152 "dhcp4_parser.cc"
+#line 1161 "dhcp4_parser.cc"
     break;
 
-  case 126:
-#line 538 "dhcp4_parser.yy"
+  case 128:
+#line 545 "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 1162 "dhcp4_parser.cc"
+#line 1171 "dhcp4_parser.cc"
     break;
 
-  case 127:
-#line 544 "dhcp4_parser.yy"
+  case 129:
+#line 551 "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 1171 "dhcp4_parser.cc"
+#line 1180 "dhcp4_parser.cc"
     break;
 
-  case 128:
-#line 549 "dhcp4_parser.yy"
+  case 130:
+#line 556 "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 1180 "dhcp4_parser.cc"
+#line 1189 "dhcp4_parser.cc"
     break;
 
-  case 129:
-#line 554 "dhcp4_parser.yy"
+  case 131:
+#line 561 "dhcp4_parser.yy"
     {
     ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("authoritative", prf);
 }
-#line 1189 "dhcp4_parser.cc"
+#line 1198 "dhcp4_parser.cc"
     break;
 
-  case 130:
-#line 560 "dhcp4_parser.yy"
+  case 132:
+#line 567 "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 1200 "dhcp4_parser.cc"
+#line 1209 "dhcp4_parser.cc"
     break;
 
-  case 131:
-#line 565 "dhcp4_parser.yy"
+  case 133:
+#line 572 "dhcp4_parser.yy"
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1210 "dhcp4_parser.cc"
+#line 1219 "dhcp4_parser.cc"
     break;
 
-  case 141:
-#line 584 "dhcp4_parser.yy"
+  case 143:
+#line 591 "dhcp4_parser.yy"
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1220 "dhcp4_parser.cc"
+#line 1229 "dhcp4_parser.cc"
     break;
 
-  case 142:
-#line 588 "dhcp4_parser.yy"
+  case 144:
+#line 595 "dhcp4_parser.yy"
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1229 "dhcp4_parser.cc"
+#line 1238 "dhcp4_parser.cc"
     break;
 
-  case 143:
-#line 593 "dhcp4_parser.yy"
+  case 145:
+#line 600 "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 1240 "dhcp4_parser.cc"
+#line 1249 "dhcp4_parser.cc"
     break;
 
-  case 144:
-#line 598 "dhcp4_parser.yy"
+  case 146:
+#line 605 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1249 "dhcp4_parser.cc"
+#line 1258 "dhcp4_parser.cc"
     break;
 
-  case 145:
-#line 603 "dhcp4_parser.yy"
+  case 147:
+#line 610 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
 }
-#line 1257 "dhcp4_parser.cc"
+#line 1266 "dhcp4_parser.cc"
     break;
 
-  case 146:
-#line 605 "dhcp4_parser.yy"
+  case 148:
+#line 612 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1266 "dhcp4_parser.cc"
+#line 1275 "dhcp4_parser.cc"
     break;
 
-  case 147:
-#line 610 "dhcp4_parser.yy"
+  case 149:
+#line 617 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
-#line 1272 "dhcp4_parser.cc"
+#line 1281 "dhcp4_parser.cc"
     break;
 
-  case 148:
-#line 611 "dhcp4_parser.yy"
+  case 150:
+#line 618 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
-#line 1278 "dhcp4_parser.cc"
+#line 1287 "dhcp4_parser.cc"
     break;
 
-  case 149:
-#line 614 "dhcp4_parser.yy"
+  case 151:
+#line 621 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.OUTBOUND_INTERFACE);
 }
-#line 1286 "dhcp4_parser.cc"
+#line 1295 "dhcp4_parser.cc"
     break;
 
-  case 150:
-#line 616 "dhcp4_parser.yy"
+  case 152:
+#line 623 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1295 "dhcp4_parser.cc"
+#line 1304 "dhcp4_parser.cc"
     break;
 
-  case 151:
-#line 621 "dhcp4_parser.yy"
+  case 153:
+#line 628 "dhcp4_parser.yy"
     {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
-#line 1303 "dhcp4_parser.cc"
+#line 1312 "dhcp4_parser.cc"
     break;
 
-  case 152:
-#line 623 "dhcp4_parser.yy"
+  case 154:
+#line 630 "dhcp4_parser.yy"
     {
     yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
-#line 1311 "dhcp4_parser.cc"
+#line 1320 "dhcp4_parser.cc"
     break;
 
-  case 153:
-#line 627 "dhcp4_parser.yy"
+  case 155:
+#line 634 "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 1320 "dhcp4_parser.cc"
+#line 1329 "dhcp4_parser.cc"
     break;
 
-  case 154:
-#line 633 "dhcp4_parser.yy"
+  case 156:
+#line 640 "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 1331 "dhcp4_parser.cc"
+#line 1340 "dhcp4_parser.cc"
     break;
 
-  case 155:
-#line 638 "dhcp4_parser.yy"
+  case 157:
+#line 645 "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 1342 "dhcp4_parser.cc"
+#line 1351 "dhcp4_parser.cc"
     break;
 
-  case 156:
-#line 645 "dhcp4_parser.yy"
+  case 158:
+#line 652 "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 1353 "dhcp4_parser.cc"
+#line 1362 "dhcp4_parser.cc"
     break;
 
-  case 157:
-#line 650 "dhcp4_parser.yy"
+  case 159:
+#line 657 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1362 "dhcp4_parser.cc"
+#line 1371 "dhcp4_parser.cc"
     break;
 
-  case 161:
-#line 660 "dhcp4_parser.yy"
+  case 163:
+#line 667 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1370 "dhcp4_parser.cc"
+#line 1379 "dhcp4_parser.cc"
     break;
 
-  case 162:
-#line 662 "dhcp4_parser.yy"
+  case 164:
+#line 669 "dhcp4_parser.yy"
     {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1386,622 +1395,622 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1390 "dhcp4_parser.cc"
+#line 1399 "dhcp4_parser.cc"
     break;
 
-  case 163:
-#line 678 "dhcp4_parser.yy"
+  case 165:
+#line 685 "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 1401 "dhcp4_parser.cc"
+#line 1410 "dhcp4_parser.cc"
     break;
 
-  case 164:
-#line 683 "dhcp4_parser.yy"
+  case 166:
+#line 690 "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 1412 "dhcp4_parser.cc"
+#line 1421 "dhcp4_parser.cc"
     break;
 
-  case 165:
-#line 690 "dhcp4_parser.yy"
+  case 167:
+#line 697 "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 1423 "dhcp4_parser.cc"
+#line 1432 "dhcp4_parser.cc"
     break;
 
-  case 166:
-#line 695 "dhcp4_parser.yy"
+  case 168:
+#line 702 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1432 "dhcp4_parser.cc"
+#line 1441 "dhcp4_parser.cc"
     break;
 
-  case 171:
-#line 708 "dhcp4_parser.yy"
+  case 173:
+#line 715 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1442 "dhcp4_parser.cc"
+#line 1451 "dhcp4_parser.cc"
     break;
 
-  case 172:
-#line 712 "dhcp4_parser.yy"
+  case 174:
+#line 719 "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 1452 "dhcp4_parser.cc"
+#line 1461 "dhcp4_parser.cc"
     break;
 
-  case 196:
-#line 745 "dhcp4_parser.yy"
+  case 198:
+#line 752 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1460 "dhcp4_parser.cc"
+#line 1469 "dhcp4_parser.cc"
     break;
 
-  case 197:
-#line 747 "dhcp4_parser.yy"
+  case 199:
+#line 754 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1469 "dhcp4_parser.cc"
+#line 1478 "dhcp4_parser.cc"
     break;
 
-  case 198:
-#line 752 "dhcp4_parser.yy"
+  case 200:
+#line 759 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1475 "dhcp4_parser.cc"
+#line 1484 "dhcp4_parser.cc"
     break;
 
-  case 199:
-#line 753 "dhcp4_parser.yy"
+  case 201:
+#line 760 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1481 "dhcp4_parser.cc"
+#line 1490 "dhcp4_parser.cc"
     break;
 
-  case 200:
-#line 754 "dhcp4_parser.yy"
+  case 202:
+#line 761 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1487 "dhcp4_parser.cc"
+#line 1496 "dhcp4_parser.cc"
     break;
 
-  case 201:
-#line 755 "dhcp4_parser.yy"
+  case 203:
+#line 762 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1493 "dhcp4_parser.cc"
+#line 1502 "dhcp4_parser.cc"
     break;
 
-  case 202:
-#line 758 "dhcp4_parser.yy"
+  case 204:
+#line 765 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1501 "dhcp4_parser.cc"
+#line 1510 "dhcp4_parser.cc"
     break;
 
-  case 203:
-#line 760 "dhcp4_parser.yy"
+  case 205:
+#line 767 "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 1511 "dhcp4_parser.cc"
+#line 1520 "dhcp4_parser.cc"
     break;
 
-  case 204:
-#line 766 "dhcp4_parser.yy"
+  case 206:
+#line 773 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1519 "dhcp4_parser.cc"
+#line 1528 "dhcp4_parser.cc"
     break;
 
-  case 205:
-#line 768 "dhcp4_parser.yy"
+  case 207:
+#line 775 "dhcp4_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 1529 "dhcp4_parser.cc"
+#line 1538 "dhcp4_parser.cc"
     break;
 
-  case 206:
-#line 774 "dhcp4_parser.yy"
+  case 208:
+#line 781 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1537 "dhcp4_parser.cc"
+#line 1546 "dhcp4_parser.cc"
     break;
 
-  case 207:
-#line 776 "dhcp4_parser.yy"
+  case 209:
+#line 783 "dhcp4_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 1547 "dhcp4_parser.cc"
+#line 1556 "dhcp4_parser.cc"
     break;
 
-  case 208:
-#line 782 "dhcp4_parser.yy"
+  case 210:
+#line 789 "dhcp4_parser.yy"
     {
     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"
+#line 1565 "dhcp4_parser.cc"
     break;
 
-  case 209:
-#line 787 "dhcp4_parser.yy"
+  case 211:
+#line 794 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1564 "dhcp4_parser.cc"
+#line 1573 "dhcp4_parser.cc"
     break;
 
-  case 210:
-#line 789 "dhcp4_parser.yy"
+  case 212:
+#line 796 "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();
 }
-#line 1574 "dhcp4_parser.cc"
+#line 1583 "dhcp4_parser.cc"
     break;
 
-  case 211:
-#line 795 "dhcp4_parser.yy"
+  case 213:
+#line 802 "dhcp4_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1583 "dhcp4_parser.cc"
+#line 1592 "dhcp4_parser.cc"
     break;
 
-  case 212:
-#line 800 "dhcp4_parser.yy"
+  case 214:
+#line 807 "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);
 }
-#line 1592 "dhcp4_parser.cc"
+#line 1601 "dhcp4_parser.cc"
     break;
 
-  case 213:
-#line 805 "dhcp4_parser.yy"
+  case 215:
+#line 812 "dhcp4_parser.yy"
     {
     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"
+#line 1610 "dhcp4_parser.cc"
     break;
 
-  case 214:
-#line 810 "dhcp4_parser.yy"
+  case 216:
+#line 817 "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);
 }
-#line 1610 "dhcp4_parser.cc"
+#line 1619 "dhcp4_parser.cc"
     break;
 
-  case 215:
-#line 815 "dhcp4_parser.yy"
+  case 217:
+#line 822 "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);
 }
-#line 1619 "dhcp4_parser.cc"
+#line 1628 "dhcp4_parser.cc"
     break;
 
-  case 216:
-#line 820 "dhcp4_parser.yy"
+  case 218:
+#line 827 "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);
 }
-#line 1628 "dhcp4_parser.cc"
+#line 1637 "dhcp4_parser.cc"
     break;
 
-  case 217:
-#line 825 "dhcp4_parser.yy"
+  case 219:
+#line 832 "dhcp4_parser.yy"
     {
     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"
+#line 1646 "dhcp4_parser.cc"
     break;
 
-  case 218:
-#line 830 "dhcp4_parser.yy"
+  case 220:
+#line 837 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1645 "dhcp4_parser.cc"
+#line 1654 "dhcp4_parser.cc"
     break;
 
-  case 219:
-#line 832 "dhcp4_parser.yy"
+  case 221:
+#line 839 "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();
 }
-#line 1655 "dhcp4_parser.cc"
+#line 1664 "dhcp4_parser.cc"
     break;
 
-  case 220:
-#line 838 "dhcp4_parser.yy"
+  case 222:
+#line 845 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1663 "dhcp4_parser.cc"
+#line 1672 "dhcp4_parser.cc"
     break;
 
-  case 221:
-#line 840 "dhcp4_parser.yy"
+  case 223:
+#line 847 "dhcp4_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 1673 "dhcp4_parser.cc"
+#line 1682 "dhcp4_parser.cc"
     break;
 
-  case 222:
-#line 846 "dhcp4_parser.yy"
+  case 224:
+#line 853 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1681 "dhcp4_parser.cc"
+#line 1690 "dhcp4_parser.cc"
     break;
 
-  case 223:
-#line 848 "dhcp4_parser.yy"
+  case 225:
+#line 855 "dhcp4_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 1691 "dhcp4_parser.cc"
+#line 1700 "dhcp4_parser.cc"
     break;
 
-  case 224:
-#line 854 "dhcp4_parser.yy"
+  case 226:
+#line 861 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1699 "dhcp4_parser.cc"
+#line 1708 "dhcp4_parser.cc"
     break;
 
-  case 225:
-#line 856 "dhcp4_parser.yy"
+  case 227:
+#line 863 "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.leave();
 }
-#line 1709 "dhcp4_parser.cc"
+#line 1718 "dhcp4_parser.cc"
     break;
 
-  case 226:
-#line 862 "dhcp4_parser.yy"
+  case 228:
+#line 869 "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);
 }
-#line 1718 "dhcp4_parser.cc"
+#line 1727 "dhcp4_parser.cc"
     break;
 
-  case 227:
-#line 867 "dhcp4_parser.yy"
+  case 229:
+#line 874 "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);
 }
-#line 1727 "dhcp4_parser.cc"
+#line 1736 "dhcp4_parser.cc"
     break;
 
-  case 228:
-#line 872 "dhcp4_parser.yy"
+  case 230:
+#line 879 "dhcp4_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-row-errors", n);
 }
-#line 1736 "dhcp4_parser.cc"
+#line 1745 "dhcp4_parser.cc"
     break;
 
-  case 229:
-#line 878 "dhcp4_parser.yy"
+  case 231:
+#line 885 "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);
 }
-#line 1747 "dhcp4_parser.cc"
+#line 1756 "dhcp4_parser.cc"
     break;
 
-  case 230:
-#line 883 "dhcp4_parser.yy"
+  case 232:
+#line 890 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1756 "dhcp4_parser.cc"
+#line 1765 "dhcp4_parser.cc"
     break;
 
-  case 238:
-#line 899 "dhcp4_parser.yy"
+  case 240:
+#line 906 "dhcp4_parser.yy"
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1765 "dhcp4_parser.cc"
+#line 1774 "dhcp4_parser.cc"
     break;
 
-  case 239:
-#line 904 "dhcp4_parser.yy"
+  case 241:
+#line 911 "dhcp4_parser.yy"
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1774 "dhcp4_parser.cc"
+#line 1783 "dhcp4_parser.cc"
     break;
 
-  case 240:
-#line 909 "dhcp4_parser.yy"
+  case 242:
+#line 916 "dhcp4_parser.yy"
     {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
 }
-#line 1783 "dhcp4_parser.cc"
+#line 1792 "dhcp4_parser.cc"
     break;
 
-  case 241:
-#line 914 "dhcp4_parser.yy"
+  case 243:
+#line 921 "dhcp4_parser.yy"
     {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
 }
-#line 1792 "dhcp4_parser.cc"
+#line 1801 "dhcp4_parser.cc"
     break;
 
-  case 242:
-#line 919 "dhcp4_parser.yy"
+  case 244:
+#line 926 "dhcp4_parser.yy"
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1801 "dhcp4_parser.cc"
+#line 1810 "dhcp4_parser.cc"
     break;
 
-  case 243:
-#line 924 "dhcp4_parser.yy"
+  case 245:
+#line 931 "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 1812 "dhcp4_parser.cc"
+#line 1821 "dhcp4_parser.cc"
     break;
 
-  case 244:
-#line 929 "dhcp4_parser.yy"
+  case 246:
+#line 936 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1821 "dhcp4_parser.cc"
+#line 1830 "dhcp4_parser.cc"
     break;
 
-  case 249:
-#line 942 "dhcp4_parser.yy"
+  case 251:
+#line 949 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1831 "dhcp4_parser.cc"
+#line 1840 "dhcp4_parser.cc"
     break;
 
-  case 250:
-#line 946 "dhcp4_parser.yy"
+  case 252:
+#line 953 "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 1841 "dhcp4_parser.cc"
+#line 1850 "dhcp4_parser.cc"
     break;
 
-  case 251:
-#line 952 "dhcp4_parser.yy"
+  case 253:
+#line 959 "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 1851 "dhcp4_parser.cc"
+#line 1860 "dhcp4_parser.cc"
     break;
 
-  case 252:
-#line 956 "dhcp4_parser.yy"
+  case 254:
+#line 963 "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 1861 "dhcp4_parser.cc"
+#line 1870 "dhcp4_parser.cc"
     break;
 
-  case 258:
-#line 971 "dhcp4_parser.yy"
+  case 260:
+#line 978 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1869 "dhcp4_parser.cc"
+#line 1878 "dhcp4_parser.cc"
     break;
 
-  case 259:
-#line 973 "dhcp4_parser.yy"
+  case 261:
+#line 980 "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 1879 "dhcp4_parser.cc"
+#line 1888 "dhcp4_parser.cc"
     break;
 
-  case 260:
-#line 979 "dhcp4_parser.yy"
+  case 262:
+#line 986 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1887 "dhcp4_parser.cc"
+#line 1896 "dhcp4_parser.cc"
     break;
 
-  case 261:
-#line 981 "dhcp4_parser.yy"
+  case 263:
+#line 988 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1896 "dhcp4_parser.cc"
+#line 1905 "dhcp4_parser.cc"
     break;
 
-  case 262:
-#line 987 "dhcp4_parser.yy"
+  case 264:
+#line 994 "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 1907 "dhcp4_parser.cc"
+#line 1916 "dhcp4_parser.cc"
     break;
 
-  case 263:
-#line 992 "dhcp4_parser.yy"
+  case 265:
+#line 999 "dhcp4_parser.yy"
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1917 "dhcp4_parser.cc"
+#line 1926 "dhcp4_parser.cc"
     break;
 
-  case 272:
-#line 1010 "dhcp4_parser.yy"
+  case 274:
+#line 1017 "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 1926 "dhcp4_parser.cc"
+#line 1935 "dhcp4_parser.cc"
     break;
 
-  case 273:
-#line 1015 "dhcp4_parser.yy"
+  case 275:
+#line 1022 "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 1935 "dhcp4_parser.cc"
+#line 1944 "dhcp4_parser.cc"
     break;
 
-  case 274:
-#line 1020 "dhcp4_parser.yy"
+  case 276:
+#line 1027 "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 1944 "dhcp4_parser.cc"
+#line 1953 "dhcp4_parser.cc"
     break;
 
-  case 275:
-#line 1025 "dhcp4_parser.yy"
+  case 277:
+#line 1032 "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 1953 "dhcp4_parser.cc"
+#line 1962 "dhcp4_parser.cc"
     break;
 
-  case 276:
-#line 1030 "dhcp4_parser.yy"
+  case 278:
+#line 1037 "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 1962 "dhcp4_parser.cc"
+#line 1971 "dhcp4_parser.cc"
     break;
 
-  case 277:
-#line 1035 "dhcp4_parser.yy"
+  case 279:
+#line 1042 "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 1971 "dhcp4_parser.cc"
+#line 1980 "dhcp4_parser.cc"
     break;
 
-  case 278:
-#line 1043 "dhcp4_parser.yy"
+  case 280:
+#line 1050 "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 1982 "dhcp4_parser.cc"
+#line 1991 "dhcp4_parser.cc"
     break;
 
-  case 279:
-#line 1048 "dhcp4_parser.yy"
+  case 281:
+#line 1055 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1991 "dhcp4_parser.cc"
+#line 2000 "dhcp4_parser.cc"
     break;
 
-  case 284:
-#line 1068 "dhcp4_parser.yy"
+  case 286:
+#line 1075 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2001 "dhcp4_parser.cc"
+#line 2010 "dhcp4_parser.cc"
     break;
 
-  case 285:
-#line 1072 "dhcp4_parser.yy"
+  case 287:
+#line 1079 "dhcp4_parser.yy"
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2023,294 +2032,294 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2027 "dhcp4_parser.cc"
+#line 2036 "dhcp4_parser.cc"
     break;
 
-  case 286:
-#line 1094 "dhcp4_parser.yy"
+  case 288:
+#line 1101 "dhcp4_parser.yy"
     {
     // Parse the subnet4 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2037 "dhcp4_parser.cc"
+#line 2046 "dhcp4_parser.cc"
     break;
 
-  case 287:
-#line 1098 "dhcp4_parser.yy"
+  case 289:
+#line 1105 "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 2047 "dhcp4_parser.cc"
+#line 2056 "dhcp4_parser.cc"
     break;
 
-  case 319:
-#line 1141 "dhcp4_parser.yy"
+  case 322:
+#line 1149 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2055 "dhcp4_parser.cc"
+#line 2064 "dhcp4_parser.cc"
     break;
 
-  case 320:
-#line 1143 "dhcp4_parser.yy"
+  case 323:
+#line 1151 "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 2065 "dhcp4_parser.cc"
+#line 2074 "dhcp4_parser.cc"
     break;
 
-  case 321:
-#line 1149 "dhcp4_parser.yy"
+  case 324:
+#line 1157 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2073 "dhcp4_parser.cc"
+#line 2082 "dhcp4_parser.cc"
     break;
 
-  case 322:
-#line 1151 "dhcp4_parser.yy"
+  case 325:
+#line 1159 "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 2083 "dhcp4_parser.cc"
+#line 2092 "dhcp4_parser.cc"
     break;
 
-  case 323:
-#line 1157 "dhcp4_parser.yy"
+  case 326:
+#line 1165 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2091 "dhcp4_parser.cc"
+#line 2100 "dhcp4_parser.cc"
     break;
 
-  case 324:
-#line 1159 "dhcp4_parser.yy"
+  case 327:
+#line 1167 "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 2101 "dhcp4_parser.cc"
+#line 2110 "dhcp4_parser.cc"
     break;
 
-  case 325:
-#line 1165 "dhcp4_parser.yy"
+  case 328:
+#line 1173 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2109 "dhcp4_parser.cc"
+#line 2118 "dhcp4_parser.cc"
     break;
 
-  case 326:
-#line 1167 "dhcp4_parser.yy"
+  case 329:
+#line 1175 "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 2119 "dhcp4_parser.cc"
+#line 2128 "dhcp4_parser.cc"
     break;
 
-  case 327:
-#line 1173 "dhcp4_parser.yy"
+  case 330:
+#line 1181 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2127 "dhcp4_parser.cc"
+#line 2136 "dhcp4_parser.cc"
     break;
 
-  case 328:
-#line 1175 "dhcp4_parser.yy"
+  case 331:
+#line 1183 "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 2137 "dhcp4_parser.cc"
+#line 2146 "dhcp4_parser.cc"
     break;
 
-  case 329:
-#line 1181 "dhcp4_parser.yy"
+  case 332:
+#line 1189 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2145 "dhcp4_parser.cc"
+#line 2154 "dhcp4_parser.cc"
     break;
 
-  case 330:
-#line 1183 "dhcp4_parser.yy"
+  case 333:
+#line 1191 "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 2155 "dhcp4_parser.cc"
+#line 2164 "dhcp4_parser.cc"
     break;
 
-  case 331:
-#line 1189 "dhcp4_parser.yy"
+  case 334:
+#line 1197 "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 2166 "dhcp4_parser.cc"
+#line 2175 "dhcp4_parser.cc"
     break;
 
-  case 332:
-#line 1194 "dhcp4_parser.yy"
+  case 335:
+#line 1202 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2175 "dhcp4_parser.cc"
+#line 2184 "dhcp4_parser.cc"
     break;
 
-  case 333:
-#line 1199 "dhcp4_parser.yy"
+  case 336:
+#line 1207 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2183 "dhcp4_parser.cc"
+#line 2192 "dhcp4_parser.cc"
     break;
 
-  case 334:
-#line 1201 "dhcp4_parser.yy"
+  case 337:
+#line 1209 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2192 "dhcp4_parser.cc"
+#line 2201 "dhcp4_parser.cc"
     break;
 
-  case 335:
-#line 1206 "dhcp4_parser.yy"
+  case 338:
+#line 1214 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2198 "dhcp4_parser.cc"
+#line 2207 "dhcp4_parser.cc"
     break;
 
-  case 336:
-#line 1207 "dhcp4_parser.yy"
+  case 339:
+#line 1215 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2204 "dhcp4_parser.cc"
+#line 2213 "dhcp4_parser.cc"
     break;
 
-  case 337:
-#line 1208 "dhcp4_parser.yy"
+  case 340:
+#line 1216 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2210 "dhcp4_parser.cc"
+#line 2219 "dhcp4_parser.cc"
     break;
 
-  case 338:
-#line 1209 "dhcp4_parser.yy"
+  case 341:
+#line 1217 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2216 "dhcp4_parser.cc"
+#line 2225 "dhcp4_parser.cc"
     break;
 
-  case 339:
-#line 1212 "dhcp4_parser.yy"
+  case 342:
+#line 1220 "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 2225 "dhcp4_parser.cc"
+#line 2234 "dhcp4_parser.cc"
     break;
 
-  case 340:
-#line 1219 "dhcp4_parser.yy"
+  case 343:
+#line 1227 "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 2236 "dhcp4_parser.cc"
+#line 2245 "dhcp4_parser.cc"
     break;
 
-  case 341:
-#line 1224 "dhcp4_parser.yy"
+  case 344:
+#line 1232 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2245 "dhcp4_parser.cc"
+#line 2254 "dhcp4_parser.cc"
     break;
 
-  case 346:
-#line 1239 "dhcp4_parser.yy"
+  case 349:
+#line 1247 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2255 "dhcp4_parser.cc"
+#line 2264 "dhcp4_parser.cc"
     break;
 
-  case 347:
-#line 1243 "dhcp4_parser.yy"
+  case 350:
+#line 1251 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 2263 "dhcp4_parser.cc"
+#line 2272 "dhcp4_parser.cc"
     break;
 
-  case 374:
-#line 1281 "dhcp4_parser.yy"
+  case 378:
+#line 1290 "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 2274 "dhcp4_parser.cc"
+#line 2283 "dhcp4_parser.cc"
     break;
 
-  case 375:
-#line 1286 "dhcp4_parser.yy"
+  case 379:
+#line 1295 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2283 "dhcp4_parser.cc"
+#line 2292 "dhcp4_parser.cc"
     break;
 
-  case 376:
-#line 1294 "dhcp4_parser.yy"
+  case 380:
+#line 1303 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2292 "dhcp4_parser.cc"
+#line 2301 "dhcp4_parser.cc"
     break;
 
-  case 377:
-#line 1297 "dhcp4_parser.yy"
+  case 381:
+#line 1306 "dhcp4_parser.yy"
     {
     // parsing completed
 }
-#line 2300 "dhcp4_parser.cc"
+#line 2309 "dhcp4_parser.cc"
     break;
 
-  case 382:
-#line 1313 "dhcp4_parser.yy"
+  case 386:
+#line 1322 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2310 "dhcp4_parser.cc"
+#line 2319 "dhcp4_parser.cc"
     break;
 
-  case 383:
-#line 1317 "dhcp4_parser.yy"
+  case 387:
+#line 1326 "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));
@@ -2318,21 +2327,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2322 "dhcp4_parser.cc"
+#line 2331 "dhcp4_parser.cc"
     break;
 
-  case 384:
-#line 1328 "dhcp4_parser.yy"
+  case 388:
+#line 1337 "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 2332 "dhcp4_parser.cc"
+#line 2341 "dhcp4_parser.cc"
     break;
 
-  case 385:
-#line 1332 "dhcp4_parser.yy"
+  case 389:
+#line 1341 "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));
@@ -2340,281 +2349,281 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2344 "dhcp4_parser.cc"
+#line 2353 "dhcp4_parser.cc"
     break;
 
-  case 401:
-#line 1364 "dhcp4_parser.yy"
+  case 405:
+#line 1373 "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 2353 "dhcp4_parser.cc"
+#line 2362 "dhcp4_parser.cc"
     break;
 
-  case 403:
-#line 1371 "dhcp4_parser.yy"
+  case 407:
+#line 1380 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2361 "dhcp4_parser.cc"
+#line 2370 "dhcp4_parser.cc"
     break;
 
-  case 404:
-#line 1373 "dhcp4_parser.yy"
+  case 408:
+#line 1382 "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 2371 "dhcp4_parser.cc"
+#line 2380 "dhcp4_parser.cc"
     break;
 
-  case 405:
-#line 1379 "dhcp4_parser.yy"
+  case 409:
+#line 1388 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2379 "dhcp4_parser.cc"
+#line 2388 "dhcp4_parser.cc"
     break;
 
-  case 406:
-#line 1381 "dhcp4_parser.yy"
+  case 410:
+#line 1390 "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 2389 "dhcp4_parser.cc"
+#line 2398 "dhcp4_parser.cc"
     break;
 
-  case 407:
-#line 1387 "dhcp4_parser.yy"
+  case 411:
+#line 1396 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2397 "dhcp4_parser.cc"
+#line 2406 "dhcp4_parser.cc"
     break;
 
-  case 408:
-#line 1389 "dhcp4_parser.yy"
+  case 412:
+#line 1398 "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 2407 "dhcp4_parser.cc"
+#line 2416 "dhcp4_parser.cc"
     break;
 
-  case 410:
-#line 1397 "dhcp4_parser.yy"
+  case 414:
+#line 1406 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2415 "dhcp4_parser.cc"
+#line 2424 "dhcp4_parser.cc"
     break;
 
-  case 411:
-#line 1399 "dhcp4_parser.yy"
+  case 415:
+#line 1408 "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 2425 "dhcp4_parser.cc"
+#line 2434 "dhcp4_parser.cc"
     break;
 
-  case 412:
-#line 1405 "dhcp4_parser.yy"
+  case 416:
+#line 1414 "dhcp4_parser.yy"
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2434 "dhcp4_parser.cc"
+#line 2443 "dhcp4_parser.cc"
     break;
 
-  case 413:
-#line 1414 "dhcp4_parser.yy"
+  case 417:
+#line 1423 "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 2445 "dhcp4_parser.cc"
+#line 2454 "dhcp4_parser.cc"
     break;
 
-  case 414:
-#line 1419 "dhcp4_parser.yy"
+  case 418:
+#line 1428 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2454 "dhcp4_parser.cc"
+#line 2463 "dhcp4_parser.cc"
     break;
 
-  case 419:
-#line 1438 "dhcp4_parser.yy"
+  case 423:
+#line 1447 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2464 "dhcp4_parser.cc"
+#line 2473 "dhcp4_parser.cc"
     break;
 
-  case 420:
-#line 1442 "dhcp4_parser.yy"
+  case 424:
+#line 1451 "dhcp4_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2473 "dhcp4_parser.cc"
+#line 2482 "dhcp4_parser.cc"
     break;
 
-  case 421:
-#line 1450 "dhcp4_parser.yy"
+  case 425:
+#line 1459 "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 2483 "dhcp4_parser.cc"
+#line 2492 "dhcp4_parser.cc"
     break;
 
-  case 422:
-#line 1454 "dhcp4_parser.yy"
+  case 426:
+#line 1463 "dhcp4_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2492 "dhcp4_parser.cc"
+#line 2501 "dhcp4_parser.cc"
     break;
 
-  case 437:
-#line 1487 "dhcp4_parser.yy"
+  case 441:
+#line 1496 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2500 "dhcp4_parser.cc"
+#line 2509 "dhcp4_parser.cc"
     break;
 
-  case 438:
-#line 1489 "dhcp4_parser.yy"
+  case 442:
+#line 1498 "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 2510 "dhcp4_parser.cc"
+#line 2519 "dhcp4_parser.cc"
     break;
 
-  case 441:
-#line 1499 "dhcp4_parser.yy"
+  case 445:
+#line 1508 "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 2519 "dhcp4_parser.cc"
+#line 2528 "dhcp4_parser.cc"
     break;
 
-  case 442:
-#line 1504 "dhcp4_parser.yy"
+  case 446:
+#line 1513 "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 2528 "dhcp4_parser.cc"
+#line 2537 "dhcp4_parser.cc"
     break;
 
-  case 443:
-#line 1512 "dhcp4_parser.yy"
+  case 447:
+#line 1521 "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 2539 "dhcp4_parser.cc"
+#line 2548 "dhcp4_parser.cc"
     break;
 
-  case 444:
-#line 1517 "dhcp4_parser.yy"
+  case 448:
+#line 1526 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2548 "dhcp4_parser.cc"
+#line 2557 "dhcp4_parser.cc"
     break;
 
-  case 449:
-#line 1532 "dhcp4_parser.yy"
+  case 453:
+#line 1541 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2558 "dhcp4_parser.cc"
+#line 2567 "dhcp4_parser.cc"
     break;
 
-  case 450:
-#line 1536 "dhcp4_parser.yy"
+  case 454:
+#line 1545 "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 2568 "dhcp4_parser.cc"
+#line 2577 "dhcp4_parser.cc"
     break;
 
-  case 451:
-#line 1542 "dhcp4_parser.yy"
+  case 455:
+#line 1551 "dhcp4_parser.yy"
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2578 "dhcp4_parser.cc"
+#line 2587 "dhcp4_parser.cc"
     break;
 
-  case 452:
-#line 1546 "dhcp4_parser.yy"
+  case 456:
+#line 1555 "dhcp4_parser.yy"
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2588 "dhcp4_parser.cc"
+#line 2597 "dhcp4_parser.cc"
     break;
 
-  case 462:
-#line 1565 "dhcp4_parser.yy"
+  case 466:
+#line 1574 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2596 "dhcp4_parser.cc"
+#line 2605 "dhcp4_parser.cc"
     break;
 
-  case 463:
-#line 1567 "dhcp4_parser.yy"
+  case 467:
+#line 1576 "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 2606 "dhcp4_parser.cc"
+#line 2615 "dhcp4_parser.cc"
     break;
 
-  case 464:
-#line 1573 "dhcp4_parser.yy"
+  case 468:
+#line 1582 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2614 "dhcp4_parser.cc"
+#line 2623 "dhcp4_parser.cc"
     break;
 
-  case 465:
-#line 1575 "dhcp4_parser.yy"
+  case 469:
+#line 1584 "dhcp4_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2637,19 +2646,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2641 "dhcp4_parser.cc"
+#line 2650 "dhcp4_parser.cc"
     break;
 
-  case 466:
-#line 1598 "dhcp4_parser.yy"
+  case 470:
+#line 1607 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2649 "dhcp4_parser.cc"
+#line 2658 "dhcp4_parser.cc"
     break;
 
-  case 467:
-#line 1600 "dhcp4_parser.yy"
+  case 471:
+#line 1609 "dhcp4_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2674,449 +2683,449 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2678 "dhcp4_parser.cc"
+#line 2687 "dhcp4_parser.cc"
     break;
 
-  case 468:
-#line 1628 "dhcp4_parser.yy"
+  case 472:
+#line 1637 "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 2689 "dhcp4_parser.cc"
+#line 2698 "dhcp4_parser.cc"
     break;
 
-  case 469:
-#line 1633 "dhcp4_parser.yy"
+  case 473:
+#line 1642 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2698 "dhcp4_parser.cc"
+#line 2707 "dhcp4_parser.cc"
     break;
 
-  case 474:
-#line 1646 "dhcp4_parser.yy"
+  case 478:
+#line 1655 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2708 "dhcp4_parser.cc"
+#line 2717 "dhcp4_parser.cc"
     break;
 
-  case 475:
-#line 1650 "dhcp4_parser.yy"
+  case 479:
+#line 1659 "dhcp4_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2717 "dhcp4_parser.cc"
+#line 2726 "dhcp4_parser.cc"
     break;
 
-  case 476:
-#line 1655 "dhcp4_parser.yy"
+  case 480:
+#line 1664 "dhcp4_parser.yy"
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2727 "dhcp4_parser.cc"
+#line 2736 "dhcp4_parser.cc"
     break;
 
-  case 477:
-#line 1659 "dhcp4_parser.yy"
+  case 481:
+#line 1668 "dhcp4_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2736 "dhcp4_parser.cc"
+#line 2745 "dhcp4_parser.cc"
     break;
 
-  case 497:
-#line 1690 "dhcp4_parser.yy"
+  case 501:
+#line 1699 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2744 "dhcp4_parser.cc"
+#line 2753 "dhcp4_parser.cc"
     break;
 
-  case 498:
-#line 1692 "dhcp4_parser.yy"
+  case 502:
+#line 1701 "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 2754 "dhcp4_parser.cc"
+#line 2763 "dhcp4_parser.cc"
     break;
 
-  case 499:
-#line 1698 "dhcp4_parser.yy"
+  case 503:
+#line 1707 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2762 "dhcp4_parser.cc"
+#line 2771 "dhcp4_parser.cc"
     break;
 
-  case 500:
-#line 1700 "dhcp4_parser.yy"
+  case 504:
+#line 1709 "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 2772 "dhcp4_parser.cc"
+#line 2781 "dhcp4_parser.cc"
     break;
 
-  case 501:
-#line 1706 "dhcp4_parser.yy"
+  case 505:
+#line 1715 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2780 "dhcp4_parser.cc"
+#line 2789 "dhcp4_parser.cc"
     break;
 
-  case 502:
-#line 1708 "dhcp4_parser.yy"
+  case 506:
+#line 1717 "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 2790 "dhcp4_parser.cc"
+#line 2799 "dhcp4_parser.cc"
     break;
 
-  case 503:
-#line 1714 "dhcp4_parser.yy"
+  case 507:
+#line 1723 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2798 "dhcp4_parser.cc"
+#line 2807 "dhcp4_parser.cc"
     break;
 
-  case 504:
-#line 1716 "dhcp4_parser.yy"
+  case 508:
+#line 1725 "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 2808 "dhcp4_parser.cc"
+#line 2817 "dhcp4_parser.cc"
     break;
 
-  case 505:
-#line 1722 "dhcp4_parser.yy"
+  case 509:
+#line 1731 "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 2819 "dhcp4_parser.cc"
+#line 2828 "dhcp4_parser.cc"
     break;
 
-  case 506:
-#line 1727 "dhcp4_parser.yy"
+  case 510:
+#line 1736 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2828 "dhcp4_parser.cc"
+#line 2837 "dhcp4_parser.cc"
     break;
 
-  case 507:
-#line 1732 "dhcp4_parser.yy"
+  case 511:
+#line 1741 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2836 "dhcp4_parser.cc"
+#line 2845 "dhcp4_parser.cc"
     break;
 
-  case 508:
-#line 1734 "dhcp4_parser.yy"
+  case 512:
+#line 1743 "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 2846 "dhcp4_parser.cc"
+#line 2855 "dhcp4_parser.cc"
     break;
 
-  case 509:
-#line 1740 "dhcp4_parser.yy"
+  case 513:
+#line 1749 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2854 "dhcp4_parser.cc"
+#line 2863 "dhcp4_parser.cc"
     break;
 
-  case 510:
-#line 1742 "dhcp4_parser.yy"
+  case 514:
+#line 1751 "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 2864 "dhcp4_parser.cc"
+#line 2873 "dhcp4_parser.cc"
     break;
 
-  case 511:
-#line 1748 "dhcp4_parser.yy"
+  case 515:
+#line 1757 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2872 "dhcp4_parser.cc"
+#line 2881 "dhcp4_parser.cc"
     break;
 
-  case 512:
-#line 1750 "dhcp4_parser.yy"
+  case 516:
+#line 1759 "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 2882 "dhcp4_parser.cc"
+#line 2891 "dhcp4_parser.cc"
     break;
 
-  case 513:
-#line 1756 "dhcp4_parser.yy"
+  case 517:
+#line 1765 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2890 "dhcp4_parser.cc"
+#line 2899 "dhcp4_parser.cc"
     break;
 
-  case 514:
-#line 1758 "dhcp4_parser.yy"
+  case 518:
+#line 1767 "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 2900 "dhcp4_parser.cc"
+#line 2909 "dhcp4_parser.cc"
     break;
 
-  case 515:
-#line 1764 "dhcp4_parser.yy"
+  case 519:
+#line 1773 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2908 "dhcp4_parser.cc"
+#line 2917 "dhcp4_parser.cc"
     break;
 
-  case 516:
-#line 1766 "dhcp4_parser.yy"
+  case 520:
+#line 1775 "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 2918 "dhcp4_parser.cc"
+#line 2927 "dhcp4_parser.cc"
     break;
 
-  case 517:
-#line 1772 "dhcp4_parser.yy"
+  case 521:
+#line 1781 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2926 "dhcp4_parser.cc"
+#line 2935 "dhcp4_parser.cc"
     break;
 
-  case 518:
-#line 1774 "dhcp4_parser.yy"
+  case 522:
+#line 1783 "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 2936 "dhcp4_parser.cc"
+#line 2945 "dhcp4_parser.cc"
     break;
 
-  case 519:
-#line 1780 "dhcp4_parser.yy"
+  case 523:
+#line 1789 "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 2947 "dhcp4_parser.cc"
+#line 2956 "dhcp4_parser.cc"
     break;
 
-  case 520:
-#line 1785 "dhcp4_parser.yy"
+  case 524:
+#line 1794 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2956 "dhcp4_parser.cc"
+#line 2965 "dhcp4_parser.cc"
     break;
 
-  case 521:
-#line 1793 "dhcp4_parser.yy"
+  case 525:
+#line 1802 "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 2967 "dhcp4_parser.cc"
+#line 2976 "dhcp4_parser.cc"
     break;
 
-  case 522:
-#line 1798 "dhcp4_parser.yy"
+  case 526:
+#line 1807 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2976 "dhcp4_parser.cc"
+#line 2985 "dhcp4_parser.cc"
     break;
 
-  case 525:
-#line 1810 "dhcp4_parser.yy"
+  case 529:
+#line 1819 "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 2987 "dhcp4_parser.cc"
+#line 2996 "dhcp4_parser.cc"
     break;
 
-  case 526:
-#line 1815 "dhcp4_parser.yy"
+  case 530:
+#line 1824 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2996 "dhcp4_parser.cc"
+#line 3005 "dhcp4_parser.cc"
     break;
 
-  case 529:
-#line 1824 "dhcp4_parser.yy"
+  case 533:
+#line 1833 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3006 "dhcp4_parser.cc"
+#line 3015 "dhcp4_parser.cc"
     break;
 
-  case 530:
-#line 1828 "dhcp4_parser.yy"
+  case 534:
+#line 1837 "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 3016 "dhcp4_parser.cc"
+#line 3025 "dhcp4_parser.cc"
     break;
 
-  case 547:
-#line 1857 "dhcp4_parser.yy"
+  case 551:
+#line 1866 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3024 "dhcp4_parser.cc"
+#line 3033 "dhcp4_parser.cc"
     break;
 
-  case 548:
-#line 1859 "dhcp4_parser.yy"
+  case 552:
+#line 1868 "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 3034 "dhcp4_parser.cc"
+#line 3043 "dhcp4_parser.cc"
     break;
 
-  case 549:
-#line 1865 "dhcp4_parser.yy"
+  case 553:
+#line 1874 "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 3043 "dhcp4_parser.cc"
+#line 3052 "dhcp4_parser.cc"
     break;
 
-  case 550:
-#line 1874 "dhcp4_parser.yy"
+  case 554:
+#line 1883 "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 3052 "dhcp4_parser.cc"
+#line 3061 "dhcp4_parser.cc"
     break;
 
-  case 551:
-#line 1881 "dhcp4_parser.yy"
+  case 555:
+#line 1890 "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 3063 "dhcp4_parser.cc"
+#line 3072 "dhcp4_parser.cc"
     break;
 
-  case 552:
-#line 1886 "dhcp4_parser.yy"
+  case 556:
+#line 1895 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3072 "dhcp4_parser.cc"
+#line 3081 "dhcp4_parser.cc"
     break;
 
-  case 560:
-#line 1902 "dhcp4_parser.yy"
+  case 564:
+#line 1911 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3080 "dhcp4_parser.cc"
+#line 3089 "dhcp4_parser.cc"
     break;
 
-  case 561:
-#line 1904 "dhcp4_parser.yy"
+  case 565:
+#line 1913 "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 3090 "dhcp4_parser.cc"
+#line 3099 "dhcp4_parser.cc"
     break;
 
-  case 562:
-#line 1910 "dhcp4_parser.yy"
+  case 566:
+#line 1919 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3098 "dhcp4_parser.cc"
+#line 3107 "dhcp4_parser.cc"
     break;
 
-  case 563:
-#line 1912 "dhcp4_parser.yy"
+  case 567:
+#line 1921 "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 3108 "dhcp4_parser.cc"
+#line 3117 "dhcp4_parser.cc"
     break;
 
-  case 564:
-#line 1921 "dhcp4_parser.yy"
+  case 568:
+#line 1930 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3116 "dhcp4_parser.cc"
+#line 3125 "dhcp4_parser.cc"
     break;
 
-  case 565:
-#line 1923 "dhcp4_parser.yy"
+  case 569:
+#line 1932 "dhcp4_parser.yy"
     {
     ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3150,644 +3159,644 @@ namespace isc { namespace dhcp {
 
     ctx.leave();
 }
-#line 3154 "dhcp4_parser.cc"
+#line 3163 "dhcp4_parser.cc"
     break;
 
-  case 566:
-#line 1959 "dhcp4_parser.yy"
+  case 570:
+#line 1968 "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 3165 "dhcp4_parser.cc"
+#line 3174 "dhcp4_parser.cc"
     break;
 
-  case 567:
-#line 1964 "dhcp4_parser.yy"
+  case 571:
+#line 1973 "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 3176 "dhcp4_parser.cc"
+#line 3185 "dhcp4_parser.cc"
     break;
 
-  case 568:
-#line 1971 "dhcp4_parser.yy"
+  case 572:
+#line 1980 "dhcp4_parser.yy"
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3186 "dhcp4_parser.cc"
+#line 3195 "dhcp4_parser.cc"
     break;
 
-  case 569:
-#line 1975 "dhcp4_parser.yy"
+  case 573:
+#line 1984 "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 3196 "dhcp4_parser.cc"
+#line 3205 "dhcp4_parser.cc"
     break;
 
-  case 590:
-#line 2005 "dhcp4_parser.yy"
+  case 594:
+#line 2014 "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 3205 "dhcp4_parser.cc"
+#line 3214 "dhcp4_parser.cc"
     break;
 
-  case 591:
-#line 2010 "dhcp4_parser.yy"
+  case 595:
+#line 2019 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3213 "dhcp4_parser.cc"
+#line 3222 "dhcp4_parser.cc"
     break;
 
-  case 592:
-#line 2012 "dhcp4_parser.yy"
+  case 596:
+#line 2021 "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 3223 "dhcp4_parser.cc"
+#line 3232 "dhcp4_parser.cc"
     break;
 
-  case 593:
-#line 2018 "dhcp4_parser.yy"
+  case 597:
+#line 2027 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3231 "dhcp4_parser.cc"
+#line 3240 "dhcp4_parser.cc"
     break;
 
-  case 594:
-#line 2020 "dhcp4_parser.yy"
+  case 598:
+#line 2029 "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 3241 "dhcp4_parser.cc"
+#line 3250 "dhcp4_parser.cc"
     break;
 
-  case 595:
-#line 2026 "dhcp4_parser.yy"
+  case 599:
+#line 2035 "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 3250 "dhcp4_parser.cc"
+#line 3259 "dhcp4_parser.cc"
     break;
 
-  case 596:
-#line 2031 "dhcp4_parser.yy"
+  case 600:
+#line 2040 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3258 "dhcp4_parser.cc"
+#line 3267 "dhcp4_parser.cc"
     break;
 
-  case 597:
-#line 2033 "dhcp4_parser.yy"
+  case 601:
+#line 2042 "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 3268 "dhcp4_parser.cc"
+#line 3277 "dhcp4_parser.cc"
     break;
 
-  case 598:
-#line 2039 "dhcp4_parser.yy"
+  case 602:
+#line 2048 "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 3277 "dhcp4_parser.cc"
+#line 3286 "dhcp4_parser.cc"
     break;
 
-  case 599:
-#line 2044 "dhcp4_parser.yy"
+  case 603:
+#line 2053 "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 3286 "dhcp4_parser.cc"
+#line 3295 "dhcp4_parser.cc"
     break;
 
-  case 600:
-#line 2049 "dhcp4_parser.yy"
+  case 604:
+#line 2058 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3294 "dhcp4_parser.cc"
+#line 3303 "dhcp4_parser.cc"
     break;
 
-  case 601:
-#line 2051 "dhcp4_parser.yy"
+  case 605:
+#line 2060 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3303 "dhcp4_parser.cc"
+#line 3312 "dhcp4_parser.cc"
     break;
 
-  case 602:
-#line 2057 "dhcp4_parser.yy"
+  case 606:
+#line 2066 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3309 "dhcp4_parser.cc"
+#line 3318 "dhcp4_parser.cc"
     break;
 
-  case 603:
-#line 2058 "dhcp4_parser.yy"
+  case 607:
+#line 2067 "dhcp4_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3315 "dhcp4_parser.cc"
+#line 3324 "dhcp4_parser.cc"
     break;
 
-  case 604:
-#line 2061 "dhcp4_parser.yy"
+  case 608:
+#line 2070 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3323 "dhcp4_parser.cc"
+#line 3332 "dhcp4_parser.cc"
     break;
 
-  case 605:
-#line 2063 "dhcp4_parser.yy"
+  case 609:
+#line 2072 "dhcp4_parser.yy"
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3333 "dhcp4_parser.cc"
+#line 3342 "dhcp4_parser.cc"
     break;
 
-  case 606:
-#line 2069 "dhcp4_parser.yy"
+  case 610:
+#line 2078 "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 3342 "dhcp4_parser.cc"
+#line 3351 "dhcp4_parser.cc"
     break;
 
-  case 607:
-#line 2074 "dhcp4_parser.yy"
+  case 611:
+#line 2083 "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 3351 "dhcp4_parser.cc"
+#line 3360 "dhcp4_parser.cc"
     break;
 
-  case 608:
-#line 2079 "dhcp4_parser.yy"
+  case 612:
+#line 2088 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3359 "dhcp4_parser.cc"
+#line 3368 "dhcp4_parser.cc"
     break;
 
-  case 609:
-#line 2081 "dhcp4_parser.yy"
+  case 613:
+#line 2090 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3368 "dhcp4_parser.cc"
+#line 3377 "dhcp4_parser.cc"
     break;
 
-  case 610:
-#line 2087 "dhcp4_parser.yy"
+  case 614:
+#line 2096 "dhcp4_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3376 "dhcp4_parser.cc"
+#line 3385 "dhcp4_parser.cc"
     break;
 
-  case 611:
-#line 2090 "dhcp4_parser.yy"
+  case 615:
+#line 2099 "dhcp4_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3384 "dhcp4_parser.cc"
+#line 3393 "dhcp4_parser.cc"
     break;
 
-  case 612:
-#line 2093 "dhcp4_parser.yy"
+  case 616:
+#line 2102 "dhcp4_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3392 "dhcp4_parser.cc"
+#line 3401 "dhcp4_parser.cc"
     break;
 
-  case 613:
-#line 2096 "dhcp4_parser.yy"
+  case 617:
+#line 2105 "dhcp4_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3400 "dhcp4_parser.cc"
+#line 3409 "dhcp4_parser.cc"
     break;
 
-  case 614:
-#line 2099 "dhcp4_parser.yy"
+  case 618:
+#line 2108 "dhcp4_parser.yy"
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3409 "dhcp4_parser.cc"
+#line 3418 "dhcp4_parser.cc"
     break;
 
-  case 615:
-#line 2105 "dhcp4_parser.yy"
+  case 619:
+#line 2114 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3417 "dhcp4_parser.cc"
+#line 3426 "dhcp4_parser.cc"
     break;
 
-  case 616:
-#line 2107 "dhcp4_parser.yy"
+  case 620:
+#line 2116 "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 3427 "dhcp4_parser.cc"
+#line 3436 "dhcp4_parser.cc"
     break;
 
-  case 617:
-#line 2113 "dhcp4_parser.yy"
+  case 621:
+#line 2122 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3435 "dhcp4_parser.cc"
+#line 3444 "dhcp4_parser.cc"
     break;
 
-  case 618:
-#line 2115 "dhcp4_parser.yy"
+  case 622:
+#line 2124 "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 3445 "dhcp4_parser.cc"
+#line 3454 "dhcp4_parser.cc"
     break;
 
-  case 619:
-#line 2121 "dhcp4_parser.yy"
+  case 623:
+#line 2130 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3453 "dhcp4_parser.cc"
+#line 3462 "dhcp4_parser.cc"
     break;
 
-  case 620:
-#line 2123 "dhcp4_parser.yy"
+  case 624:
+#line 2132 "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 3463 "dhcp4_parser.cc"
+#line 3472 "dhcp4_parser.cc"
     break;
 
-  case 621:
-#line 2132 "dhcp4_parser.yy"
+  case 625:
+#line 2141 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3471 "dhcp4_parser.cc"
+#line 3480 "dhcp4_parser.cc"
     break;
 
-  case 622:
-#line 2134 "dhcp4_parser.yy"
+  case 626:
+#line 2143 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3480 "dhcp4_parser.cc"
+#line 3489 "dhcp4_parser.cc"
     break;
 
-  case 623:
-#line 2139 "dhcp4_parser.yy"
+  case 627:
+#line 2148 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3488 "dhcp4_parser.cc"
+#line 3497 "dhcp4_parser.cc"
     break;
 
-  case 624:
-#line 2141 "dhcp4_parser.yy"
+  case 628:
+#line 2150 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3497 "dhcp4_parser.cc"
+#line 3506 "dhcp4_parser.cc"
     break;
 
-  case 625:
-#line 2146 "dhcp4_parser.yy"
+  case 629:
+#line 2155 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3505 "dhcp4_parser.cc"
+#line 3514 "dhcp4_parser.cc"
     break;
 
-  case 626:
-#line 2148 "dhcp4_parser.yy"
+  case 630:
+#line 2157 "dhcp4_parser.yy"
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3514 "dhcp4_parser.cc"
+#line 3523 "dhcp4_parser.cc"
     break;
 
-  case 627:
-#line 2153 "dhcp4_parser.yy"
+  case 631:
+#line 2162 "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 3525 "dhcp4_parser.cc"
+#line 3534 "dhcp4_parser.cc"
     break;
 
-  case 628:
-#line 2158 "dhcp4_parser.yy"
+  case 632:
+#line 2167 "dhcp4_parser.yy"
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3535 "dhcp4_parser.cc"
+#line 3544 "dhcp4_parser.cc"
     break;
 
-  case 629:
-#line 2164 "dhcp4_parser.yy"
+  case 633:
+#line 2173 "dhcp4_parser.yy"
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3545 "dhcp4_parser.cc"
+#line 3554 "dhcp4_parser.cc"
     break;
 
-  case 630:
-#line 2168 "dhcp4_parser.yy"
+  case 634:
+#line 2177 "dhcp4_parser.yy"
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3554 "dhcp4_parser.cc"
+#line 3563 "dhcp4_parser.cc"
     break;
 
-  case 635:
-#line 2183 "dhcp4_parser.yy"
+  case 639:
+#line 2192 "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 3565 "dhcp4_parser.cc"
+#line 3574 "dhcp4_parser.cc"
     break;
 
-  case 636:
-#line 2188 "dhcp4_parser.yy"
+  case 640:
+#line 2197 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3574 "dhcp4_parser.cc"
+#line 3583 "dhcp4_parser.cc"
     break;
 
-  case 637:
-#line 2193 "dhcp4_parser.yy"
+  case 641:
+#line 2202 "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 3583 "dhcp4_parser.cc"
+#line 3592 "dhcp4_parser.cc"
     break;
 
-  case 638:
-#line 2203 "dhcp4_parser.yy"
+  case 642:
+#line 2212 "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 3594 "dhcp4_parser.cc"
+#line 3603 "dhcp4_parser.cc"
     break;
 
-  case 639:
-#line 2208 "dhcp4_parser.yy"
+  case 643:
+#line 2217 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3603 "dhcp4_parser.cc"
+#line 3612 "dhcp4_parser.cc"
     break;
 
-  case 640:
-#line 2213 "dhcp4_parser.yy"
+  case 644:
+#line 2222 "dhcp4_parser.yy"
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3613 "dhcp4_parser.cc"
+#line 3622 "dhcp4_parser.cc"
     break;
 
-  case 641:
-#line 2217 "dhcp4_parser.yy"
+  case 645:
+#line 2226 "dhcp4_parser.yy"
     {
     // parsing completed
 }
-#line 3621 "dhcp4_parser.cc"
+#line 3630 "dhcp4_parser.cc"
     break;
 
-  case 645:
-#line 2233 "dhcp4_parser.yy"
+  case 649:
+#line 2242 "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 3632 "dhcp4_parser.cc"
+#line 3641 "dhcp4_parser.cc"
     break;
 
-  case 646:
-#line 2238 "dhcp4_parser.yy"
+  case 650:
+#line 2247 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3641 "dhcp4_parser.cc"
+#line 3650 "dhcp4_parser.cc"
     break;
 
-  case 649:
-#line 2250 "dhcp4_parser.yy"
+  case 653:
+#line 2259 "dhcp4_parser.yy"
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3651 "dhcp4_parser.cc"
+#line 3660 "dhcp4_parser.cc"
     break;
 
-  case 650:
-#line 2254 "dhcp4_parser.yy"
+  case 654:
+#line 2263 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3659 "dhcp4_parser.cc"
+#line 3668 "dhcp4_parser.cc"
     break;
 
-  case 660:
-#line 2271 "dhcp4_parser.yy"
+  case 664:
+#line 2280 "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 3668 "dhcp4_parser.cc"
+#line 3677 "dhcp4_parser.cc"
     break;
 
-  case 661:
-#line 2276 "dhcp4_parser.yy"
+  case 665:
+#line 2285 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3676 "dhcp4_parser.cc"
+#line 3685 "dhcp4_parser.cc"
     break;
 
-  case 662:
-#line 2278 "dhcp4_parser.yy"
+  case 666:
+#line 2287 "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 3686 "dhcp4_parser.cc"
+#line 3695 "dhcp4_parser.cc"
     break;
 
-  case 663:
-#line 2284 "dhcp4_parser.yy"
+  case 667:
+#line 2293 "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 3697 "dhcp4_parser.cc"
+#line 3706 "dhcp4_parser.cc"
     break;
 
-  case 664:
-#line 2289 "dhcp4_parser.yy"
+  case 668:
+#line 2298 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3706 "dhcp4_parser.cc"
+#line 3715 "dhcp4_parser.cc"
     break;
 
-  case 667:
-#line 2298 "dhcp4_parser.yy"
+  case 671:
+#line 2307 "dhcp4_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3716 "dhcp4_parser.cc"
+#line 3725 "dhcp4_parser.cc"
     break;
 
-  case 668:
-#line 2302 "dhcp4_parser.yy"
+  case 672:
+#line 2311 "dhcp4_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3724 "dhcp4_parser.cc"
+#line 3733 "dhcp4_parser.cc"
     break;
 
-  case 676:
-#line 2317 "dhcp4_parser.yy"
+  case 680:
+#line 2326 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3732 "dhcp4_parser.cc"
+#line 3741 "dhcp4_parser.cc"
     break;
 
-  case 677:
-#line 2319 "dhcp4_parser.yy"
+  case 681:
+#line 2328 "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 3742 "dhcp4_parser.cc"
+#line 3751 "dhcp4_parser.cc"
     break;
 
-  case 678:
-#line 2325 "dhcp4_parser.yy"
+  case 682:
+#line 2334 "dhcp4_parser.yy"
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3751 "dhcp4_parser.cc"
+#line 3760 "dhcp4_parser.cc"
     break;
 
-  case 679:
-#line 2330 "dhcp4_parser.yy"
+  case 683:
+#line 2339 "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 3760 "dhcp4_parser.cc"
+#line 3769 "dhcp4_parser.cc"
     break;
 
-  case 680:
-#line 2335 "dhcp4_parser.yy"
+  case 684:
+#line 2344 "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 3769 "dhcp4_parser.cc"
+#line 3778 "dhcp4_parser.cc"
     break;
 
-  case 681:
-#line 2340 "dhcp4_parser.yy"
+  case 685:
+#line 2349 "dhcp4_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3777 "dhcp4_parser.cc"
+#line 3786 "dhcp4_parser.cc"
     break;
 
-  case 682:
-#line 2342 "dhcp4_parser.yy"
+  case 686:
+#line 2351 "dhcp4_parser.yy"
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
     ctx.leave();
 }
-#line 3787 "dhcp4_parser.cc"
+#line 3796 "dhcp4_parser.cc"
     break;
 
 
-#line 3791 "dhcp4_parser.cc"
+#line 3800 "dhcp4_parser.cc"
 
             default:
               break;
@@ -4058,123 +4067,124 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -832;
+  const short Dhcp4Parser::yypact_ninf_ = -845;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     363,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,    29,    21,    25,    53,   108,
-     128,   135,   137,   160,   162,   171,   184,   199,   203,   228,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,    21,  -123,
-      17,   122,    71,   226,   173,   233,    10,    41,   287,   -50,
-     478,    89,   147,  -832,   254,   275,   225,   285,   296,  -832,
-    -832,  -832,  -832,  -832,   304,  -832,    62,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   316,   317,   318,  -832,
-    -832,  -832,  -832,  -832,  -832,   326,   327,   328,   352,   353,
-     354,   377,   380,   384,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,   392,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,    68,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,   395,  -832,    70,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,   402,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,    80,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,    86,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,   292,   404,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,   401,  -832,
-    -832,   407,  -832,  -832,  -832,   408,  -832,  -832,   405,   412,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,   416,   417,  -832,  -832,  -832,  -832,   411,
-     420,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,   115,  -832,  -832,  -832,   425,  -832,  -832,
-     434,  -832,   454,   455,  -832,  -832,   457,   460,  -832,  -832,
-    -832,  -832,  -832,   116,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-     126,  -832,  -832,  -832,   461,   129,  -832,  -832,  -832,  -832,
-      21,    21,  -832,   291,   463,   464,   466,   467,   477,  -832,
-      17,  -832,   479,   480,   481,   308,   311,   312,   487,   488,
-     489,   490,   491,   492,   321,   322,   323,   330,   331,   324,
-     332,   333,   335,   500,   504,   509,   510,   512,   513,   514,
-     515,   516,   517,   518,   535,   536,   366,   539,   541,   542,
-     543,   544,   545,   122,  -832,   546,   547,   549,   376,    71,
-    -832,   551,   552,   553,   554,   555,   556,   386,   561,   562,
-     563,   226,  -832,   564,   173,  -832,   565,   567,   569,   570,
-     572,   573,   575,   576,  -832,   233,  -832,   577,   579,   409,
-     580,   582,   583,   410,  -832,    41,   585,   413,   414,  -832,
-     287,   589,   590,    90,  -832,   418,   593,   594,   423,   596,
-     426,   428,   614,   615,   442,   444,   622,   623,   478,  -832,
-      89,  -832,   624,   453,   147,  -832,  -832,  -832,   626,   625,
-     627,    21,    21,    21,  -832,   628,   629,   630,  -832,  -832,
-    -832,   456,   458,   465,   631,   632,   636,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   468,   637,   639,   640,
-     641,   642,   472,   276,   643,   645,   646,   647,   648,  -832,
-     649,   642,   650,   483,   484,   655,  -832,   656,   274,   230,
-    -832,  -832,   493,   494,   495,   657,   496,   497,  -832,   656,
-     498,   658,  -832,   499,  -832,   656,   501,   502,   503,   505,
-     506,   507,   508,  -832,   511,   519,  -832,   520,   521,   522,
-    -832,  -832,   523,  -832,  -832,  -832,   524,    21,  -832,  -832,
-     525,   526,  -832,   527,  -832,  -832,    26,   534,  -832,  -832,
-      -4,   528,  -832,  -832,   659,  -832,  -832,    21,   122,    89,
-    -832,  -832,  -832,   147,    71,   660,  -832,  -832,  -832,    57,
-      57,   672,  -832,   678,   680,   681,   682,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,   117,   683,   684,   685,   260,
-     180,  -832,   478,  -832,  -832,   686,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,   697,  -832,  -832,
-    -832,  -832,   172,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,   672,  -832,   165,   187,   197,   222,
-    -832,   223,  -832,  -832,  -832,  -832,  -832,  -832,   662,   663,
-     701,   702,   703,  -832,  -832,  -832,  -832,   704,   705,   706,
-     707,   708,   709,  -832,   231,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   234,  -832,   710,   651,
-    -832,  -832,   711,   712,  -832,  -832,   713,   715,  -832,  -832,
-     714,   718,  -832,  -832,   716,   720,  -832,  -832,  -832,  -832,
-    -832,  -832,    45,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-      74,  -832,  -832,   719,   721,  -832,  -832,   722,   723,  -832,
-     725,   726,   727,   728,   729,   730,   264,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,   271,
-    -832,  -832,  -832,   272,  -832,   125,  -832,   560,  -832,   731,
-     724,  -832,  -832,  -832,  -832,   732,   733,  -832,  -832,  -832,
-    -832,   734,   660,  -832,   737,   738,   739,   740,   538,   485,
-     571,   558,   574,   741,   742,   744,   745,   578,   581,   584,
-     586,   587,   588,    57,  -832,  -832,    57,  -832,   672,   226,
-    -832,   678,    41,  -832,   680,   287,  -832,   681,   415,  -832,
-     682,   117,  -832,   142,   683,  -832,   233,  -832,   684,   -50,
-    -832,   685,   591,   592,   595,   597,   598,   599,   260,  -832,
-     747,   748,   180,  -832,  -832,   191,   686,  -832,  -832,   749,
-     750,   173,  -832,   697,   752,  -832,  -832,   601,  -832,   356,
-     602,   603,   604,  -832,  -832,  -832,  -832,  -832,   605,   606,
-     607,   608,  -832,  -832,  -832,  -832,  -832,  -832,  -832,   298,
-    -832,   299,  -832,   751,  -832,   753,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,   325,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   754,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   755,   763,  -832,  -832,
-    -832,  -832,  -832,   761,  -832,   342,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,   609,   610,  -832,  -832,   766,  -832,
-    -832,  -832,  -832,  -832,   343,  -832,  -832,  -832,  -832,  -832,
-    -832,   611,   344,  -832,   656,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,   415,  -832,   768,   612,  -832,   142,  -832,  -832,
-    -832,  -832,   783,   618,   784,   191,  -832,  -832,  -832,  -832,
-    -832,   616,  -832,  -832,   791,  -832,   644,  -832,  -832,   790,
-    -832,  -832,   140,  -832,     7,   790,  -832,  -832,   798,   807,
-     808,  -832,   346,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-     813,   661,   652,   666,   832,     7,  -832,   670,  -832,  -832,
-    -832,   673,  -832,  -832,  -832
+     320,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,    71,    21,    37,    68,    89,
+     116,   143,   168,   185,   196,   200,   231,   295,   298,   319,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,    21,  -125,
+      17,   156,    61,   449,    51,   204,   172,   174,    86,   -51,
+     482,   113,   253,  -845,   290,   316,   294,   323,   330,  -845,
+    -845,  -845,  -845,  -845,   331,  -845,    44,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,   340,   341,   342,  -845,
+    -845,  -845,  -845,  -845,  -845,   343,   344,   345,   347,   348,
+     349,   350,   351,   352,   354,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   356,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,    62,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,   357,  -845,    70,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   358,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,    78,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+      90,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,   359,   361,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,   360,  -845,  -845,   362,  -845,  -845,  -845,   365,  -845,
+    -845,   363,   367,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,   368,   369,  -845,  -845,
+    -845,  -845,   366,   373,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,   118,  -845,  -845,  -845,
+     375,  -845,  -845,   377,  -845,   378,   379,  -845,  -845,   380,
+     381,  -845,  -845,  -845,  -845,  -845,   119,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,   127,  -845,  -845,  -845,   384,   148,  -845,
+    -845,  -845,  -845,    21,    21,  -845,   189,   388,   391,   392,
+     393,   394,  -845,    17,  -845,   396,   399,   401,   233,   234,
+     236,   406,   407,   412,   413,   415,   419,   247,   248,   250,
+     265,   268,   254,   267,   199,   269,   271,   445,   458,   459,
+     461,   462,   464,   466,   467,   468,   470,   476,   492,   493,
+     321,   495,   496,   497,   498,   499,   500,   156,  -845,   501,
+     511,   512,   338,    61,  -845,   517,   519,   520,   521,   522,
+     523,   353,   524,   525,   527,   449,  -845,   528,    51,  -845,
+     530,   537,   538,   540,   541,   544,   548,   549,  -845,   204,
+    -845,   550,   551,   382,   552,   556,   557,   383,  -845,   174,
+     559,   385,   386,  -845,    86,   563,   566,   160,  -845,   395,
+     567,   568,   402,   569,   404,   405,   572,   574,   409,   410,
+     580,   581,   482,  -845,   113,  -845,   582,   414,   253,  -845,
+    -845,  -845,   586,   585,   587,    21,    21,    21,  -845,   588,
+     589,   590,  -845,  -845,  -845,   417,   422,   423,   600,   602,
+     618,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,   448,   622,   626,   636,   637,   638,   471,   230,   639,
+     641,   645,   646,   647,  -845,   648,   638,   649,   477,   481,
+     654,  -845,   655,   300,   309,  -845,  -845,   487,   489,   491,
+     663,   494,   502,  -845,   655,   503,   662,  -845,   504,  -845,
+     655,   505,   506,   507,   509,   510,   513,   514,  -845,   515,
+     516,  -845,   518,   526,   529,  -845,  -845,   531,  -845,  -845,
+    -845,   532,    21,  -845,  -845,   533,   534,  -845,   535,  -845,
+    -845,    14,   545,  -845,  -845,   -26,   536,  -845,  -845,   666,
+    -845,  -845,    21,   156,   113,  -845,  -845,  -845,   253,    61,
+     628,  -845,  -845,  -845,    60,    60,   665,  -845,   667,   668,
+     670,   681,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+     181,   686,   688,   689,    23,     4,  -845,   482,  -845,  -845,
+     690,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,   691,  -845,  -845,  -845,  -845,   232,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   665,
+    -845,   166,   187,   188,   222,  -845,   223,  -845,  -845,  -845,
+    -845,  -845,  -845,   695,   696,   697,   699,   700,  -845,  -845,
+    -845,  -845,   702,   709,   710,   711,   712,   713,  -845,   237,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,   238,  -845,   714,   715,  -845,  -845,   716,   718,  -845,
+    -845,   717,   721,  -845,  -845,   719,   723,  -845,  -845,   722,
+     724,  -845,  -845,  -845,  -845,  -845,  -845,    42,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,   151,  -845,  -845,   725,   726,
+    -845,  -845,   727,   729,  -845,   730,   731,   732,   733,   734,
+     735,   256,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,   264,  -845,  -845,  -845,   272,  -845,
+     165,  -845,   543,  -845,   736,   737,  -845,  -845,  -845,  -845,
+     738,   739,  -845,  -845,  -845,  -845,   740,   628,  -845,   743,
+     744,   745,   746,   553,   562,   576,   564,   577,   748,   751,
+     752,   753,   583,   584,   591,   592,   579,   593,    60,  -845,
+    -845,    60,  -845,   665,   449,  -845,   667,   174,  -845,   668,
+      86,  -845,   670,   575,  -845,   681,   181,  -845,    59,   686,
+    -845,   204,  -845,   688,   -51,  -845,   689,   594,   595,   596,
+     597,   598,   599,    23,  -845,   755,   758,     4,  -845,  -845,
+     183,   690,  -845,  -845,   757,   761,    51,  -845,   691,   762,
+    -845,  -845,   601,  -845,   303,   603,   604,   605,  -845,  -845,
+    -845,  -845,  -845,   606,   607,   608,   609,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,   273,  -845,   285,  -845,   759,  -845,
+     770,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+     289,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,   782,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,   779,   785,  -845,  -845,  -845,  -845,  -845,   781,
+    -845,   291,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+     614,   615,  -845,  -845,   788,  -845,  -845,  -845,  -845,  -845,
+     292,  -845,  -845,  -845,  -845,  -845,  -845,   617,   312,  -845,
+     655,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   575,  -845,
+     791,   620,  -845,    59,  -845,  -845,  -845,  -845,   792,   624,
+     798,   183,  -845,  -845,  -845,  -845,  -845,   631,  -845,  -845,
+     760,  -845,   640,  -845,  -845,   810,  -845,  -845,   198,  -845,
+      54,   810,  -845,  -845,   818,   820,   829,  -845,   313,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,   837,   671,   675,   676,
+     840,    54,  -845,   684,  -845,  -845,  -845,   693,  -845,  -845,
+    -845
   };
 
   const unsigned short
@@ -4184,156 +4194,157 @@ 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,   141,     9,   286,    11,
-     451,    13,   476,    15,   376,    17,   384,    19,   421,    21,
-     251,    23,   568,    25,   640,    27,   629,    29,    47,    41,
-       0,     0,     0,     0,     0,   478,     0,   386,   423,     0,
+      35,    36,    58,     5,    70,     7,   143,     9,   288,    11,
+     455,    13,   480,    15,   380,    17,   388,    19,   425,    21,
+     253,    23,   572,    25,   644,    27,   633,    29,    47,    41,
+       0,     0,     0,     0,     0,   482,     0,   390,   427,     0,
        0,     0,     0,    49,     0,    48,     0,     0,    42,    68,
-     638,   621,   623,   625,     0,    67,     0,    60,    62,    64,
-      65,    66,    63,   627,   130,   156,     0,     0,     0,   497,
-     499,   501,   154,   163,   165,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   125,   278,   374,   413,   340,   464,
-     466,   333,   229,   525,   468,   243,   262,     0,   551,   564,
-     566,   617,   619,   645,   115,     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,   113,   114,   106,   112,   143,   145,
-     149,     0,   140,     0,   132,   134,   135,   136,   137,   138,
-     139,   321,   323,   325,   443,   319,   327,     0,   331,   329,
-     521,   318,   290,   291,   292,   293,   294,   315,   316,   317,
-     305,   306,     0,   288,   297,   310,   311,   312,   298,   300,
-     301,   303,   299,   295,   296,   313,   314,   302,   307,   308,
-     309,   304,   462,   461,   457,   458,   456,     0,   453,   455,
-     459,   460,   519,   507,   509,   513,   511,   517,   515,   503,
-     496,   490,   494,   495,     0,   479,   480,   491,   492,   493,
-     487,   482,   488,   484,   485,   486,   489,   483,     0,   403,
-     209,     0,   407,   405,   410,     0,   399,   400,     0,   387,
-     388,   390,   402,   391,   392,   393,   409,   394,   395,   396,
-     397,   398,   437,     0,     0,   435,   436,   439,   440,     0,
-     424,   425,   427,   428,   429,   430,   431,   432,   433,   434,
-     258,   260,   255,     0,   253,   256,   257,     0,   591,   593,
-       0,   596,     0,     0,   600,   604,     0,     0,   608,   615,
-     589,   587,   588,     0,   570,   572,   573,   574,   575,   576,
-     577,   578,   579,   580,   581,   582,   583,   584,   585,   586,
-       0,   642,   644,   635,     0,     0,   631,   633,   634,    46,
-       0,     0,    39,     0,     0,     0,     0,     0,     0,    57,
-       0,    59,     0,     0,     0,     0,     0,     0,     0,     0,
+     642,   625,   627,   629,     0,    67,     0,    60,    62,    64,
+      65,    66,    63,   631,   132,   158,     0,     0,     0,   501,
+     503,   505,   156,   165,   167,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   127,   280,   378,   417,   343,
+     468,   470,   336,   231,   529,   472,   245,   264,     0,   555,
+     568,   570,   621,   623,   649,   116,     0,    72,    74,    75,
+      76,    77,    78,   115,   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,   113,   114,   106,   112,
+     145,   147,   151,     0,   142,     0,   134,   136,   137,   138,
+     139,   140,   141,   324,   326,   328,   447,   322,   330,     0,
+     334,   332,   525,   321,   292,   293,   294,   295,   296,   320,
+     317,   318,   319,   307,   308,     0,   290,   299,   312,   313,
+     314,   300,   302,   303,   305,   301,   297,   298,   315,   316,
+     304,   309,   310,   311,   306,   466,   465,   461,   462,   460,
+       0,   457,   459,   463,   464,   523,   511,   513,   517,   515,
+     521,   519,   507,   500,   494,   498,   499,     0,   483,   484,
+     495,   496,   497,   491,   486,   492,   488,   489,   490,   493,
+     487,     0,   407,   211,     0,   411,   409,   414,     0,   403,
+     404,     0,   391,   392,   394,   406,   395,   396,   397,   413,
+     398,   399,   400,   401,   402,   441,     0,     0,   439,   440,
+     443,   444,     0,   428,   429,   431,   432,   433,   434,   435,
+     436,   437,   438,   260,   262,   257,     0,   255,   258,   259,
+       0,   595,   597,     0,   600,     0,     0,   604,   608,     0,
+       0,   612,   619,   593,   591,   592,     0,   574,   576,   577,
+     578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
+     588,   589,   590,     0,   646,   648,   639,     0,     0,   635,
+     637,   638,    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,     0,     0,     0,     0,     0,     0,     0,    71,     0,
+       0,     0,     0,     0,   144,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   289,     0,     0,   456,
+       0,     0,     0,     0,     0,     0,     0,     0,   481,     0,
+     381,     0,     0,     0,     0,     0,     0,     0,   389,     0,
+       0,     0,     0,   426,     0,     0,     0,     0,   254,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    71,     0,     0,     0,     0,     0,
-     142,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   287,     0,     0,   452,     0,     0,     0,     0,
-       0,     0,     0,     0,   477,     0,   377,     0,     0,     0,
-       0,     0,     0,     0,   385,     0,     0,     0,     0,   422,
-       0,     0,     0,     0,   252,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   569,
-       0,   641,     0,     0,     0,   630,    50,    43,     0,     0,
-       0,     0,     0,     0,    61,     0,     0,     0,   127,   128,
-     129,     0,     0,     0,     0,     0,     0,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   550,
-       0,     0,     0,     0,     0,     0,    73,     0,     0,     0,
-     153,   133,     0,     0,     0,     0,     0,     0,   339,     0,
-       0,     0,   289,     0,   454,     0,     0,     0,     0,     0,
-       0,     0,     0,   481,     0,     0,   401,     0,     0,     0,
-     412,   389,     0,   441,   442,   426,     0,     0,   254,   590,
-       0,     0,   595,     0,   598,   599,     0,     0,   606,   607,
-       0,     0,   571,   643,     0,   637,   632,     0,     0,     0,
-     622,   624,   626,     0,     0,     0,   498,   500,   502,     0,
-       0,   167,   126,   280,   378,   415,   342,    40,   465,   467,
-     335,   336,   337,   338,   334,     0,     0,   470,   245,     0,
-       0,   565,     0,   618,   620,     0,    51,   144,   147,   148,
-     146,   151,   152,   150,   322,   324,   326,   445,   320,   328,
-     332,   330,     0,   463,   520,   508,   510,   514,   512,   518,
-     516,   504,   404,   210,   408,   406,   411,   438,   259,   261,
-     592,   594,   597,   602,   603,   601,   605,   610,   611,   612,
-     613,   614,   609,   616,   167,    44,     0,     0,     0,     0,
-     161,     0,   158,   160,   196,   202,   204,   206,     0,     0,
-       0,     0,     0,   218,   220,   222,   224,     0,     0,     0,
-       0,     0,     0,   195,     0,   173,   175,   176,   177,   178,
-     179,   180,   181,   182,   183,   184,   188,   189,   190,   185,
-     191,   192,   193,   186,   187,   194,     0,   171,     0,   168,
-     169,   284,     0,   281,   282,   382,     0,   379,   380,   419,
-       0,   416,   417,   346,     0,   343,   344,   238,   239,   240,
-     241,   242,     0,   231,   233,   234,   235,   236,   237,   529,
-       0,   527,   474,     0,   471,   472,   249,     0,   246,   247,
-       0,     0,     0,     0,     0,     0,     0,   264,   266,   267,
-     268,   269,   270,   271,   560,   562,   559,   557,   558,     0,
-     553,   555,   556,     0,   649,     0,   647,    53,   449,     0,
-     446,   447,   505,   523,   524,     0,     0,    69,   639,   628,
-     131,     0,     0,   157,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   573,     0,   645,     0,     0,     0,   634,
+      50,    43,     0,     0,     0,     0,     0,     0,    61,     0,
+       0,     0,   129,   130,   131,     0,     0,     0,     0,     0,
+       0,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   554,     0,     0,     0,     0,     0,
+       0,    73,     0,     0,     0,   155,   135,     0,     0,     0,
+       0,     0,     0,   342,     0,     0,     0,   291,     0,   458,
+       0,     0,     0,     0,     0,     0,     0,     0,   485,     0,
+       0,   405,     0,     0,     0,   416,   393,     0,   445,   446,
+     430,     0,     0,   256,   594,     0,     0,   599,     0,   602,
+     603,     0,     0,   610,   611,     0,     0,   575,   647,     0,
+     641,   636,     0,     0,     0,   626,   628,   630,     0,     0,
+       0,   502,   504,   506,     0,     0,   169,   128,   282,   382,
+     419,   345,    40,   469,   471,   338,   339,   340,   341,   337,
+       0,     0,   474,   247,     0,     0,   569,     0,   622,   624,
+       0,    51,   146,   149,   150,   148,   153,   154,   152,   325,
+     327,   329,   449,   323,   331,   335,   333,     0,   467,   524,
+     512,   514,   518,   516,   522,   520,   508,   408,   212,   412,
+     410,   415,   442,   261,   263,   596,   598,   601,   606,   607,
+     605,   609,   614,   615,   616,   617,   618,   613,   620,   169,
+      44,     0,     0,     0,     0,   163,     0,   160,   162,   198,
+     204,   206,   208,     0,     0,     0,     0,     0,   220,   222,
+     224,   226,     0,     0,     0,     0,     0,     0,   197,     0,
+     175,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     186,   190,   191,   192,   187,   193,   194,   195,   188,   189,
+     196,     0,   173,     0,   170,   171,   286,     0,   283,   284,
+     386,     0,   383,   384,   423,     0,   420,   421,   349,     0,
+     346,   347,   240,   241,   242,   243,   244,     0,   233,   235,
+     236,   237,   238,   239,   533,     0,   531,   478,     0,   475,
+     476,   251,     0,   248,   249,     0,     0,     0,     0,     0,
+       0,     0,   266,   268,   269,   270,   271,   272,   273,   564,
+     566,   563,   561,   562,     0,   557,   559,   560,     0,   653,
+       0,   651,    53,   453,     0,   450,   451,   509,   527,   528,
+       0,     0,    69,   643,   632,   133,     0,     0,   159,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   155,   164,     0,   166,     0,     0,
-     279,     0,   386,   375,     0,   423,   414,     0,     0,   341,
-       0,     0,   230,   531,     0,   526,   478,   469,     0,     0,
-     244,     0,     0,     0,     0,     0,     0,     0,     0,   263,
-       0,     0,     0,   552,   567,     0,     0,   646,    55,     0,
-      54,     0,   444,     0,     0,   522,   636,     0,   159,     0,
-       0,     0,     0,   208,   211,   212,   213,   214,     0,     0,
-       0,     0,   226,   227,   215,   216,   217,   228,   174,     0,
-     170,     0,   283,     0,   381,     0,   418,   373,   365,   366,
-     367,   353,   354,   370,   371,   372,   356,   357,   350,   351,
-     352,   363,   364,   362,     0,   348,   355,   368,   369,   358,
-     359,   360,   361,   345,   232,   547,     0,   545,   546,   538,
-     539,   543,   544,   540,   541,   542,     0,   532,   533,   535,
-     536,   537,   528,     0,   473,     0,   248,   272,   273,   274,
-     275,   276,   277,   265,     0,     0,   554,   663,     0,   661,
-     659,   653,   657,   658,     0,   651,   655,   656,   654,   648,
-      52,     0,     0,   448,     0,   162,   198,   199,   200,   201,
-     197,   203,   205,   207,   219,   221,   223,   225,   172,   285,
-     383,   420,     0,   347,     0,     0,   530,     0,   475,   250,
-     561,   563,     0,     0,     0,     0,   650,    56,   450,   506,
-     349,     0,   549,   534,     0,   660,     0,   652,   548,     0,
-     662,   667,     0,   665,     0,     0,   664,   676,     0,     0,
-       0,   681,     0,   669,   671,   672,   673,   674,   675,   666,
-       0,     0,     0,     0,     0,     0,   668,     0,   678,   679,
-     680,     0,   670,   677,   682
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   157,
+     166,     0,   168,     0,     0,   281,     0,   390,   379,     0,
+     427,   418,     0,     0,   344,     0,     0,   232,   535,     0,
+     530,   482,   473,     0,     0,   246,     0,     0,     0,     0,
+       0,     0,     0,     0,   265,     0,     0,     0,   556,   571,
+       0,     0,   650,    55,     0,    54,     0,   448,     0,     0,
+     526,   640,     0,   161,     0,     0,     0,     0,   210,   213,
+     214,   215,   216,     0,     0,     0,     0,   228,   229,   217,
+     218,   219,   230,   176,     0,   172,     0,   285,     0,   385,
+       0,   422,   377,   368,   369,   370,   356,   357,   376,   373,
+     374,   375,   359,   360,   353,   354,   355,   366,   367,   365,
+       0,   351,   358,   371,   372,   361,   362,   363,   364,   348,
+     234,   551,     0,   549,   550,   542,   543,   547,   548,   544,
+     545,   546,     0,   536,   537,   539,   540,   541,   532,     0,
+     477,     0,   250,   274,   275,   276,   277,   278,   279,   267,
+       0,     0,   558,   667,     0,   665,   663,   657,   661,   662,
+       0,   655,   659,   660,   658,   652,    52,     0,     0,   452,
+       0,   164,   200,   201,   202,   203,   199,   205,   207,   209,
+     221,   223,   225,   227,   174,   287,   387,   424,     0,   350,
+       0,     0,   534,     0,   479,   252,   565,   567,     0,     0,
+       0,     0,   654,    56,   454,   510,   352,     0,   553,   538,
+       0,   664,     0,   656,   552,     0,   666,   671,     0,   669,
+       0,     0,   668,   680,     0,     0,     0,   685,     0,   673,
+     675,   676,   677,   678,   679,   670,     0,     0,     0,     0,
+       0,     0,   672,     0,   682,   683,   684,     0,   674,   681,
+     686
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,   -46,  -832,  -491,  -832,
-     306,  -832,  -832,  -832,  -832,  -832,  -832,  -534,  -832,  -832,
-    -832,   -70,  -832,  -832,  -832,   475,  -832,  -832,  -832,  -832,
-     256,   462,   -55,   -54,   -27,   -24,    -9,     6,     9,    11,
-    -832,  -832,  -832,  -832,    12,    19,  -832,  -832,   269,   459,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,    54,  -832,  -832,  -832,
-    -832,  -832,  -832,   195,  -832,    33,  -832,  -607,    39,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,   -35,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,    24,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,    16,  -832,  -832,  -832,    14,   427,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,    13,  -832,  -832,  -832,  -832,
-    -832,  -832,  -831,  -832,  -832,  -832,    37,  -832,  -832,  -832,
-      40,   469,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -823,  -832,   -17,  -832,    -5,  -832,    22,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,    32,  -832,  -832,  -129,   -65,  -832,
-    -832,  -832,  -832,  -832,    42,  -832,  -832,  -832,    43,  -832,
-     439,  -832,   -72,  -832,  -832,  -832,  -832,  -832,   -66,  -832,
-    -832,  -832,  -832,  -832,    -7,  -832,  -832,  -832,    44,  -832,
-    -832,  -832,    47,  -832,   437,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,     5,  -832,  -832,  -832,
-       8,   470,  -832,  -832,   -39,  -832,   -19,  -832,   -59,  -832,
-    -832,  -832,    35,  -832,  -832,  -832,    46,  -832,   471,   -58,
-    -832,   -52,  -832,    -1,  -832,   253,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -821,  -832,  -832,  -832,  -832,  -832,    49,
-    -832,  -832,  -832,  -121,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,    27,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,   278,   429,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,   -64,  -832,   -60,
-    -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-    -832,   305,   430,  -832,  -832,  -832,  -832,  -832,  -832,  -832,
-     319,   431,   -57,  -832,  -832,    31,  -832,  -832,  -120,  -832,
-    -832,  -832,  -832,  -832,  -832,  -136,  -832,  -832,  -155,  -832,
-    -832,  -832,  -832,  -832,  -832,  -832
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,   -46,  -845,  -486,  -845,
+     301,  -845,  -845,  -845,  -845,  -845,  -845,  -539,  -845,  -845,
+    -845,   -70,  -845,  -845,  -845,   508,  -845,  -845,  -845,  -845,
+     277,   469,   -55,   -54,   -27,   -24,    -9,     6,     9,    11,
+      12,  -845,  -845,  -845,  -845,    19,    22,  -845,  -845,   274,
+     465,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,    57,  -845,  -845,
+    -845,  -845,  -845,  -845,   201,  -845,    39,  -845,  -612,    45,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+     -35,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,    28,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,    20,  -845,  -845,  -845,    25,   428,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,    15,  -845,  -845,  -845,
+    -845,  -845,  -845,  -844,  -845,  -845,  -845,    41,  -845,  -845,
+    -845,    46,   472,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -836,  -845,   -17,  -845,    -5,  -845,    24,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,    36,  -845,  -845,  -126,   -65,
+    -845,  -845,  -845,  -845,  -845,    47,  -845,  -845,  -845,    48,
+    -845,   444,  -845,   -72,  -845,  -845,  -845,  -845,  -845,   -66,
+    -845,  -845,  -845,  -845,  -845,    -7,  -845,  -845,  -845,    49,
+    -845,  -845,  -845,    50,  -845,   440,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,    10,  -845,  -845,
+    -845,    13,   474,  -845,  -845,   -39,  -845,   -19,  -845,   -59,
+    -845,  -845,  -845,    40,  -845,  -845,  -845,    43,  -845,   473,
+     -58,  -845,   -52,  -845,    -1,  -845,   258,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -833,  -845,  -845,  -845,  -845,  -845,
+      52,  -845,  -845,  -845,  -117,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,    30,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,   281,   437,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,   -64,  -845,
+     -60,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,  -845,   315,   432,  -845,  -845,  -845,  -845,  -845,  -845,
+    -845,   322,   441,   -57,  -845,  -845,    33,  -845,  -845,  -114,
+    -845,  -845,  -845,  -845,  -845,  -845,  -133,  -845,  -845,  -152,
+    -845,  -845,  -845,  -845,  -845,  -845,  -845
   };
 
   const short
@@ -4341,454 +4352,457 @@ namespace isc { namespace dhcp {
   {
       -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    38,    39,    40,    69,
-     628,    87,    88,    41,    68,    84,    85,   647,   817,   899,
-     900,   723,    43,    70,    96,    97,    98,   374,    45,    71,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   403,   157,   158,   159,   160,   383,   193,   194,
-      47,    72,   195,   425,   196,   426,   650,   197,   427,   653,
-     198,   161,   391,   162,   384,   701,   702,   703,   831,   163,
-     392,   164,   393,   748,   749,   750,   856,   724,   725,   726,
-     834,  1020,   727,   835,   728,   836,   729,   837,   730,   731,
-     458,   732,   733,   734,   735,   736,   737,   738,   739,   843,
-     740,   844,   741,   845,   742,   846,   743,   744,   745,   165,
-     411,   772,   773,   774,   775,   776,   777,   778,   166,   414,
-     787,   788,   789,   879,    61,    79,   323,   324,   325,   471,
-     326,   472,   167,   415,   796,   797,   798,   799,   800,   801,
-     802,   803,   168,   404,   752,   753,   754,   859,    49,    73,
-     222,   223,   224,   435,   225,   431,   226,   432,   227,   433,
-     228,   436,   229,   439,   230,   438,   169,   410,   634,   232,
-     170,   407,   764,   765,   766,   868,   954,   955,   171,   405,
-      55,    76,   756,   757,   758,   862,    57,    77,   288,   289,
-     290,   291,   292,   293,   294,   457,   295,   461,   296,   460,
-     297,   298,   462,   299,   172,   406,   760,   761,   762,   865,
-      59,    78,   309,   310,   311,   312,   313,   466,   314,   315,
-     316,   317,   234,   434,   819,   820,   821,   901,    51,    74,
-     247,   248,   249,   443,   173,   408,   174,   409,   175,   413,
-     783,   784,   785,   876,    53,    75,   264,   265,   266,   176,
-     388,   177,   389,   178,   390,   270,   453,   824,   904,   271,
-     447,   272,   448,   273,   450,   274,   449,   275,   452,   276,
-     451,   277,   446,   241,   440,   825,   179,   412,   780,   781,
-     873,   976,   977,   978,   979,   980,  1034,   981,   180,   181,
-     417,   809,   810,   811,   890,   812,   891,   182,   418,   183,
-     419,    63,    80,   343,   344,   345,   346,   476,   347,   477,
-     348,   349,   479,   350,   351,   352,   482,   685,   353,   483,
-     354,   355,   356,   486,   692,   357,   487,   184,   420,   185,
-     421,    99,   376,   100,   377,   101,   378,   186,   382,    67,
-      82,   365,   366,   367,   492,   368,   102,   375,    65,    81,
-     360,   361,   187,   422,   815,   816,   895,  1004,  1005,  1006,
-    1007,  1044,  1008,  1042,  1062,  1063,  1064,  1072,  1073,  1074,
-    1080,  1075,  1076,  1077,  1078,  1084
+     633,    87,    88,    41,    68,    84,    85,   652,   822,   904,
+     905,   728,    43,    70,    96,    97,    98,   377,    45,    71,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   407,   159,   160,   161,   162,   386,   195,
+     196,    47,    72,   197,   429,   198,   430,   655,   199,   431,
+     658,   200,   163,   394,   164,   387,   706,   707,   708,   836,
+     165,   395,   166,   396,   753,   754,   755,   861,   729,   730,
+     731,   839,  1026,   732,   840,   733,   841,   734,   842,   735,
+     736,   462,   737,   738,   739,   740,   741,   742,   743,   744,
+     848,   745,   849,   746,   850,   747,   851,   748,   749,   750,
+     167,   415,   777,   778,   779,   780,   781,   782,   783,   168,
+     418,   792,   793,   794,   884,    61,    79,   326,   327,   328,
+     475,   329,   476,   169,   419,   801,   802,   803,   804,   805,
+     806,   807,   808,   170,   408,   757,   758,   759,   864,    49,
+      73,   225,   226,   227,   439,   228,   435,   229,   436,   230,
+     437,   231,   440,   232,   443,   233,   442,   171,   414,   639,
+     235,   172,   411,   769,   770,   771,   873,   960,   961,   173,
+     409,    55,    76,   761,   762,   763,   867,    57,    77,   291,
+     292,   293,   294,   295,   296,   297,   461,   298,   465,   299,
+     464,   300,   301,   466,   302,   174,   410,   765,   766,   767,
+     870,    59,    78,   312,   313,   314,   315,   316,   470,   317,
+     318,   319,   320,   237,   438,   824,   825,   826,   906,    51,
+      74,   250,   251,   252,   447,   175,   412,   176,   413,   177,
+     417,   788,   789,   790,   881,    53,    75,   267,   268,   269,
+     178,   391,   179,   392,   180,   393,   273,   457,   829,   909,
+     274,   451,   275,   452,   276,   454,   277,   453,   278,   456,
+     279,   455,   280,   450,   244,   444,   830,   181,   416,   785,
+     786,   878,   982,   983,   984,   985,   986,  1040,   987,   182,
+     183,   421,   814,   815,   816,   895,   817,   896,   184,   422,
+     185,   423,    63,    80,   346,   347,   348,   349,   480,   350,
+     481,   351,   352,   483,   353,   354,   355,   486,   690,   356,
+     487,   357,   358,   359,   490,   697,   360,   491,   186,   424,
+     187,   425,    99,   379,   100,   380,   101,   381,   188,   385,
+      67,    82,   368,   369,   370,   496,   371,   102,   378,    65,
+      81,   363,   364,   189,   426,   820,   821,   900,  1010,  1011,
+    1012,  1013,  1050,  1014,  1048,  1068,  1069,  1070,  1078,  1079,
+    1080,  1086,  1081,  1082,  1083,  1084,  1090
   };
 
   const unsigned short
   Dhcp4Parser::yytable_[] =
   {
-      95,   144,   192,   211,   243,   260,   307,   286,   305,   322,
-     340,   278,   308,   746,   237,   238,   358,   267,   212,   213,
-     359,   239,    83,   268,   362,   660,    31,    89,    32,    30,
-      33,   664,    42,   199,   235,   250,   262,   949,   300,   318,
-     627,   341,   287,   306,   683,   950,   214,   962,   871,   215,
-     627,   872,    86,   200,   236,   251,   263,   244,   301,   319,
-      44,   342,   320,   321,   216,   380,   233,   246,   261,   245,
-     381,   423,   240,   429,   269,   279,   424,   874,   430,   217,
-     875,   126,   218,   441,   219,   220,   188,   189,   442,   444,
-     190,   704,   221,   191,   445,   231,   705,   706,   707,   708,
-     709,   710,   711,   712,   713,   714,   715,   716,   717,   718,
-     719,   720,   721,   722,   280,    46,   281,   282,   473,   488,
-     283,   284,   285,   474,   489,    94,   129,   130,   896,   490,
-     280,   897,   494,   103,   491,    48,   104,   495,   687,   688,
-     689,   690,    50,  1065,    52,   105,  1066,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   129,   130,  1067,   363,
-     364,  1068,  1069,  1070,  1071,    90,   684,    54,   423,    56,
-     109,   110,   111,   827,   691,    91,    92,    93,    58,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     490,    60,    94,   126,   127,   828,    34,    35,    36,    37,
-     494,   949,   320,   321,   128,   829,    62,   129,   130,   950,
-      64,   962,   131,   126,   127,   280,    94,   132,   133,   767,
-     768,   769,   770,   134,   771,   429,   832,   129,   130,   371,
-     830,   833,    94,   135,   853,    66,   136,   853,   143,   854,
-     965,   966,   855,   137,   138,   127,    94,   139,   140,   929,
-     651,   652,   107,   108,   109,   110,   111,   242,   129,   130,
-     369,   109,   110,   111,   280,   129,   130,   888,   141,   142,
-     208,   143,   889,   209,   892,   488,   129,   130,   370,   893,
-     894,   259,   822,   115,   116,   117,   118,   119,   120,   121,
-     122,   648,   649,   372,   201,   202,   203,    94,   127,   373,
-     454,   853,   441,   804,   805,   127,  1028,  1029,   379,   204,
-      95,   129,   130,   205,   206,   207,   131,    94,   129,   130,
-     385,   386,   387,   208,   496,   497,   209,   134,  1032,   252,
-     394,   395,   396,  1033,   210,   253,   254,   255,   256,   257,
-     258,   997,   259,   998,   999,   473,  1045,   444,    94,  1085,
-    1039,  1046,  1048,   144,  1086,    94,   397,   398,   399,   192,
-     280,   302,   281,   282,   303,   304,    94,   630,   631,   632,
-     633,   211,   129,   130,   243,   790,   791,   792,   793,   794,
-     795,   400,   237,   238,   401,   260,   212,   213,   402,   239,
-     199,  1016,  1017,  1018,  1019,   286,   416,   267,   307,   428,
-     305,    94,   235,   268,   308,   250,   437,   455,    94,   456,
-     200,   459,   463,   464,   214,   465,   262,   215,   340,   469,
-     467,   468,   236,   470,   358,   251,   300,   244,   359,   475,
-     287,   318,   216,   362,   233,   306,   263,   246,   478,   245,
-     240,   107,   108,   109,   110,   111,   301,   217,   261,   341,
-     218,   319,   219,   220,   269,   610,   611,   612,   480,   481,
-     221,   484,    94,   231,   485,   493,   498,   499,   500,   342,
-     501,   502,   115,   116,   117,   118,   119,   120,   121,   122,
-    1049,   503,   125,   505,   506,   507,   508,   127,   280,   509,
-     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
-     129,   130,   522,   206,   526,   131,   520,   521,   527,   523,
-     524,   525,   208,   528,   529,   209,   530,   531,   532,   533,
-     534,   535,   536,   210,     1,     2,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,   144,   537,
-     538,   679,   539,   540,   192,   541,   542,   543,   544,   545,
-     547,   548,   362,   549,   550,   552,   553,   554,   555,   556,
-     557,   695,   558,   129,   130,   559,   560,   561,   563,   565,
-     806,   566,   340,   567,   568,   199,   569,   570,   358,   571,
-     572,   574,   359,   575,   577,   576,   578,   579,   580,   582,
-      94,   583,   584,   586,   587,   200,   589,   590,   591,   592,
-     593,   807,   594,   341,   595,   327,   328,   329,   330,   331,
-     332,   333,   334,   335,   336,   337,   338,   339,   596,   597,
-     598,   808,   599,   342,   141,   142,   600,   601,   604,   605,
-     607,   616,   608,   617,   609,   613,   614,   615,   619,   620,
-     618,   621,   623,   622,   624,   625,   626,   629,   635,    32,
-     636,   637,   638,    94,   858,   639,   640,   642,   643,   644,
-     645,   646,   657,   914,   694,   662,   838,   839,   654,   655,
-     656,   658,   659,   661,   663,   686,   665,   666,   667,   747,
-     668,   669,   670,   671,   700,   751,   672,   755,   759,   763,
-     779,   782,   786,   814,   673,   674,   675,   676,   677,   678,
-     680,   681,   682,   693,   818,   840,   841,   842,   847,   848,
-     849,   850,   851,   852,   913,   861,   857,   860,   864,   863,
-     866,   867,   869,   870,   878,   877,   881,   903,   880,   882,
-     883,   884,   885,   886,   887,   898,   916,   902,   907,   906,
-     905,   909,   910,   911,   912,   918,   919,   915,   920,   921,
-     917,   994,   995,  1011,   922,  1010,  1014,   923,  1035,  1030,
-     924,  1031,   925,  1036,   927,   926,  1037,   987,   988,  1038,
-    1043,   989,  1051,   990,   991,   992,  1015,  1021,  1022,  1023,
-    1024,  1025,  1026,  1027,  1040,  1041,  1047,  1054,  1056,   211,
-    1052,  1058,   286,   307,  1055,   305,  1059,  1061,   937,   308,
-     237,   238,  1081,   967,   212,   213,   260,   239,   969,   322,
-     959,  1082,  1083,   938,   939,   973,   960,  1087,   267,  1060,
-     235,   974,   806,   300,   268,  1000,   318,   287,  1089,   957,
-     306,   243,   214,   948,   971,   215,  1091,   262,   968,  1088,
-     236,   940,  1090,   301,   941,  1093,   319,   641,  1094,   958,
-     216,   951,   233,   807,   972,   504,  1002,   263,   240,   942,
-    1001,   956,   250,   952,   696,   217,   970,   961,   218,   261,
-     219,   220,   975,   808,   943,   269,  1003,   944,   221,   945,
-     946,   231,   251,   699,   244,   546,   908,   947,   551,   826,
-     953,   930,   928,   985,   246,   964,   245,   986,   932,   931,
-     588,   993,   963,  1050,   581,   933,   934,   585,  1013,  1012,
-     562,   936,   935,   984,   564,   823,  1053,   602,   698,   996,
-     813,   603,   983,   982,   606,  1057,   573,  1009,   697,  1079,
-    1092,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      95,   145,   194,   213,   246,   263,   310,   289,   308,   325,
+     343,   281,   311,   751,   240,   241,   361,   270,   214,   215,
+     362,   242,    83,   271,   365,   665,    31,    89,    32,   955,
+      33,   669,   688,   201,   238,   253,   265,   956,   303,   321,
+     968,   344,   290,   309,    42,   876,   216,   383,   877,   217,
+     632,    86,   384,   202,   239,   254,   266,   247,   304,   322,
+     632,   345,   323,   324,   218,   427,   236,   249,   264,   248,
+     428,    30,   243,   433,   272,    44,   190,   191,   434,   219,
+     192,   445,   220,   193,   221,   222,   446,   109,   110,   111,
+     130,   131,   223,   448,   709,   224,    46,   234,   449,   710,
+     711,   712,   713,   714,   715,   716,   717,   718,   719,   720,
+     721,   722,   723,   724,   725,   726,   727,   692,   693,   694,
+     695,   477,   492,    48,   128,    94,   478,   493,   809,   810,
+     494,   127,   128,   283,   283,   495,   245,   130,   131,   795,
+     796,   797,   798,   799,   800,   130,   131,   130,   131,   210,
+      50,   498,   211,   696,   879,   689,   499,   880,   971,   972,
+     283,   305,   284,   285,   306,   307,    90,   103,   901,   427,
+     104,   902,   130,   131,   832,    52,    91,    92,    93,   105,
+      94,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     494,   498,    54,    94,   955,   833,   834,    34,    35,    36,
+      37,  1071,   956,    56,  1072,   968,  1073,    58,   282,  1074,
+    1075,  1076,  1077,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,   433,   837,    94,   127,   128,
+     835,   838,   109,   110,   111,    94,    94,    94,    60,   129,
+     858,   858,   130,   131,   127,   859,   860,   132,   283,   934,
+     284,   285,   133,   134,   286,   287,   288,   283,   135,   893,
+     130,   131,    94,   144,   894,   366,   367,   897,   136,   130,
+     131,   137,   898,   323,   324,   492,   858,   128,   138,   139,
+     899,  1034,   140,   141,   772,   773,   774,   775,   445,   776,
+     130,   131,  1038,  1035,   477,  1051,   372,  1039,   374,  1045,
+    1052,   255,    62,   142,   143,    64,   144,   256,   257,   258,
+     259,   260,   261,    95,   262,   448,  1091,   653,   654,   373,
+    1054,  1092,   635,   636,   637,   638,    66,   500,   501,   656,
+     657,   375,    94,   376,  1003,   382,  1004,  1005,  1022,  1023,
+    1024,  1025,   262,   827,   388,   389,   390,   397,   398,   399,
+      94,   400,   401,   402,   403,   404,   405,   145,   406,    94,
+     420,   432,   441,   194,   459,   502,   463,   458,   460,   467,
+     469,   468,   471,   472,   473,   213,   474,   528,   246,   479,
+      94,   482,   484,   485,   488,   489,   240,   241,   497,   263,
+     214,   215,   503,   242,   201,   504,   505,   506,   507,   289,
+     509,   270,   310,   510,   308,   511,   238,   271,   311,   253,
+     515,   516,   512,   513,   202,   514,   517,   518,   216,   519,
+     265,   217,   343,   520,   521,   522,   239,   523,   361,   254,
+     303,   247,   362,   526,   290,   321,   218,   365,   236,   309,
+     266,   249,   524,   248,   243,   525,   527,   529,   530,   531,
+     304,   219,   264,   344,   220,   322,   221,   222,   272,   615,
+     616,   617,   532,   533,   223,   534,   535,   224,   536,   234,
+     537,   538,   539,   345,   540,   107,   108,   109,   110,   111,
+     541,  1055,     1,     2,     3,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,    13,    14,   542,   543,   544,   545,
+     546,   547,   548,   549,   550,   552,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   553,   554,   555,   203,   204,
+     205,   557,   128,   558,   559,   560,   561,   562,   564,   565,
+     563,   566,   568,   206,   570,   130,   131,   207,   208,   209,
+     132,   571,   572,   145,   573,   574,   684,   210,   575,   194,
+     211,   135,   576,   577,   579,   580,   582,   365,   212,   581,
+     583,   584,   585,   587,   588,   589,   700,   591,   130,   131,
+     592,   595,   596,   598,   594,   811,   601,   343,   602,   597,
+     201,   599,   600,   361,   605,   606,   609,   362,   603,   604,
+     612,   610,   613,   621,   614,   618,   619,   620,   622,   623,
+     202,   107,   108,   109,   110,   111,   812,   624,   344,   625,
+     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,   341,   342,   626,   627,    94,   813,   628,   345,   142,
+     143,   629,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   630,   631,   126,   640,    32,   641,   634,   128,   283,
+     642,   643,   705,   648,   644,   645,   647,   649,    94,   650,
+     651,   130,   131,   659,   208,   660,   132,   661,   662,   667,
+     663,   699,   752,   210,   756,   760,   211,   764,   664,   666,
+     668,   670,   671,   672,   212,   673,   674,   691,   768,   675,
+     676,   677,   678,   784,   679,   787,   791,   819,   823,   843,
+     844,   845,   680,   846,   847,   681,   852,   682,   683,   685,
+     686,   687,   698,   853,   854,   855,   856,   857,   863,   903,
+     862,   866,   865,   868,   869,   871,   872,   875,   874,   883,
+     918,   882,   886,   885,   887,   888,   889,   890,   891,   892,
+     908,   919,   907,   921,   912,   911,   910,   914,   915,   916,
+     917,    94,   923,   920,   922,   924,   925,   926,   931,  1000,
+     927,   928,  1001,  1016,  1017,  1065,  1020,  1036,   929,   930,
+     932,   993,   994,   995,   996,   997,   998,  1021,  1037,  1027,
+    1028,  1029,  1030,  1031,  1032,  1033,  1041,  1042,  1043,  1044,
+    1046,  1047,  1049,  1053,   213,  1057,  1060,   289,   310,  1058,
+     308,  1061,  1062,   942,   311,   240,   241,  1064,   973,   214,
+     215,   263,   242,   975,   325,   965,  1066,  1067,   943,   944,
+     979,   966,  1087,   270,  1088,   238,   980,   811,   303,   271,
+    1006,   321,   290,  1089,   963,   309,   246,   216,   954,   977,
+     217,  1093,   265,   974,  1097,   239,   945,   646,   304,   946,
+    1094,   322,  1095,  1096,   964,   218,   957,   236,   812,   978,
+    1099,  1008,   266,   243,   947,  1007,   962,   253,   958,  1100,
+     219,   976,   967,   220,   264,   221,   222,   981,   813,   948,
+     272,  1009,   949,   223,   950,   951,   224,   254,   234,   247,
+     701,   508,   952,   704,   913,   953,   551,   959,   556,   249,
+     831,   248,   935,   933,   970,   593,   992,   937,   999,   991,
+     936,   969,  1056,   586,   590,   938,   939,   567,  1019,  1018,
+     940,   941,   569,   990,   989,   828,  1059,  1002,   818,   607,
+     611,   988,   578,   703,  1015,   608,   702,  1063,  1085,  1098,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   937,     0,     0,     0,     0,   967,     0,     0,
-       0,     0,   969,     0,   959,  1000,     0,   938,   939,   973,
-     960,     0,     0,     0,     0,   974,     0,     0,     0,     0,
-       0,     0,     0,   957,     0,     0,     0,   948,   971,     0,
-       0,     0,   968,     0,     0,   940,  1002,     0,   941,     0,
-    1001,     0,     0,   958,     0,   951,     0,     0,   972,     0,
-       0,     0,     0,   942,     0,   956,  1003,   952,     0,     0,
-     970,   961,     0,     0,     0,     0,   975,     0,   943,     0,
-       0,   944,     0,   945,   946,     0,     0,     0,     0,     0,
-       0,   947,     0,     0,   953
+       0,     0,     0,     0,     0,     0,     0,     0,   942,     0,
+       0,     0,     0,   973,     0,     0,     0,     0,   975,     0,
+     965,  1006,     0,   943,   944,   979,   966,     0,     0,     0,
+       0,   980,     0,     0,     0,     0,     0,     0,     0,   963,
+       0,     0,     0,   954,   977,     0,     0,     0,   974,     0,
+       0,   945,  1008,     0,   946,     0,  1007,     0,     0,   964,
+       0,   957,     0,     0,   978,     0,     0,     0,     0,   947,
+       0,   962,  1009,   958,     0,     0,   976,   967,     0,     0,
+       0,     0,   981,     0,   948,     0,     0,   949,     0,   950,
+     951,     0,     0,     0,     0,     0,     0,   952,     0,     0,
+     953,     0,   959
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
       70,    71,    72,    73,    74,    75,    78,    77,    78,    79,
-      80,    76,    78,   620,    73,    73,    80,    75,    73,    73,
-      80,    73,    68,    75,    81,   559,     5,    10,     7,     0,
-       9,   565,     7,    72,    73,    74,    75,   868,    77,    78,
-     531,    80,    77,    78,    18,   868,    73,   868,     3,    73,
-     541,     6,   175,    72,    73,    74,    75,    74,    77,    78,
-       7,    80,   112,   113,    73,     3,    73,    74,    75,    74,
-       8,     3,    73,     3,    75,    34,     8,     3,     8,    73,
-       6,    71,    73,     3,    73,    73,    15,    16,     8,     3,
-      19,    34,    73,    22,     8,    73,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    73,     7,    75,    76,     3,     3,
-      79,    80,    81,     8,     8,   175,    85,    86,     3,     3,
-      73,     6,     3,    11,     8,     7,    14,     8,   142,   143,
-     144,   145,     7,     3,     7,    23,     6,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    85,    86,   151,    12,
-      13,   154,   155,   156,   157,   148,   140,     7,     3,     7,
-      28,    29,    30,     8,   178,   158,   159,   160,     7,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-       3,     7,   175,    71,    72,     8,   175,   176,   177,   178,
-       3,  1032,   112,   113,    82,     8,     7,    85,    86,  1032,
-       7,  1032,    90,    71,    72,    73,   175,    95,    96,   102,
-     103,   104,   105,   101,   107,     3,     3,    85,    86,     4,
-       8,     8,   175,   111,     3,     7,   114,     3,   149,     8,
-      98,    99,     8,   121,   122,    72,   175,   125,   126,   856,
-      20,    21,    26,    27,    28,    29,    30,    84,    85,    86,
-       6,    28,    29,    30,    73,    85,    86,     3,   146,   147,
-      97,   149,     8,   100,     3,     3,    85,    86,     3,     8,
-       8,   109,   110,    57,    58,    59,    60,    61,    62,    63,
-      64,    17,    18,     8,    68,    69,    70,   175,    72,     3,
-       8,     3,     3,   123,   124,    72,     8,     8,     4,    83,
-     380,    85,    86,    87,    88,    89,    90,   175,    85,    86,
-       4,     4,     4,    97,   370,   371,   100,   101,     3,    96,
-       4,     4,     4,     8,   108,   102,   103,   104,   105,   106,
-     107,   150,   109,   152,   153,     3,     3,     3,   175,     3,
-       8,     8,     8,   423,     8,   175,     4,     4,     4,   429,
-      73,    74,    75,    76,    77,    78,   175,    91,    92,    93,
-      94,   441,    85,    86,   444,   115,   116,   117,   118,   119,
-     120,     4,   441,   441,     4,   455,   441,   441,     4,   441,
-     429,    35,    36,    37,    38,   465,     4,   455,   470,     4,
-     470,   175,   441,   455,   470,   444,     4,     3,   175,     8,
-     429,     4,     4,     8,   441,     3,   455,   441,   488,     8,
-       4,     4,   441,     3,   488,   444,   465,   444,   488,     4,
-     465,   470,   441,   490,   441,   470,   455,   444,     4,   444,
-     441,    26,    27,    28,    29,    30,   465,   441,   455,   488,
-     441,   470,   441,   441,   455,   501,   502,   503,     4,     4,
-     441,     4,   175,   441,     4,     4,   175,     4,     4,   488,
-       4,     4,    57,    58,    59,    60,    61,    62,    63,    64,
-    1014,     4,    67,     4,     4,     4,   178,    72,    73,   178,
-     178,     4,     4,     4,     4,     4,     4,   176,   176,   176,
-      85,    86,   178,    88,     4,    90,   176,   176,     4,   177,
-     177,   176,    97,     4,     4,   100,     4,     4,     4,     4,
-       4,     4,     4,   108,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   608,     4,
-       4,   587,   176,     4,   614,     4,     4,     4,     4,     4,
-       4,     4,   609,     4,   178,     4,     4,     4,     4,     4,
-       4,   607,   176,    85,    86,     4,     4,     4,     4,     4,
-     640,     4,   642,     4,     4,   614,     4,     4,   642,     4,
-       4,     4,   642,     4,     4,   176,     4,     4,   178,     4,
-     175,   178,   178,     4,     4,   614,   178,     4,     4,   176,
-       4,   640,   176,   642,   176,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,     4,     4,
-     178,   640,   178,   642,   146,   147,     4,     4,     4,   176,
-       4,   175,     7,   175,     7,     7,     7,     7,     7,     7,
-     175,     5,     5,   175,     5,     5,     5,   175,     5,     7,
-       5,     5,     5,   175,     3,     7,     7,     7,   175,   175,
-       5,     5,     5,   178,     5,     7,     4,     4,   175,   175,
-     175,   175,   175,   175,   175,   141,   175,   175,   175,     7,
-     175,   175,   175,   175,    24,     7,   175,     7,     7,     7,
-       7,     7,     7,     7,   175,   175,   175,   175,   175,   175,
-     175,   175,   175,   175,     7,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,   176,     3,     6,     6,     3,     6,
-       6,     3,     6,     3,     3,     6,     3,     3,     6,     4,
-       4,     4,     4,     4,     4,   175,   178,     6,     4,     6,
-       8,     4,     4,     4,     4,     4,     4,   176,     4,     4,
-     176,     4,     4,     3,   176,     6,     4,   176,     4,     8,
-     176,     8,   176,     8,   176,   178,     3,   176,   176,     8,
-       4,   176,     4,   176,   176,   176,   175,   175,   175,   175,
-     175,   175,   175,   175,   175,   175,   175,     4,     4,   859,
-     178,   175,   862,   865,   176,   865,     5,     7,   868,   865,
-     859,   859,     4,   873,   859,   859,   876,   859,   873,   879,
-     868,     4,     4,   868,   868,   873,   868,     4,   876,   175,
-     859,   873,   892,   862,   876,   895,   865,   862,   176,   868,
-     865,   901,   859,   868,   873,   859,     4,   876,   873,   178,
-     859,   868,   176,   862,   868,   175,   865,   541,   175,   868,
-     859,   868,   859,   892,   873,   380,   895,   876,   859,   868,
-     895,   868,   901,   868,   608,   859,   873,   868,   859,   876,
-     859,   859,   873,   892,   868,   876,   895,   868,   859,   868,
-     868,   859,   901,   614,   901,   423,   832,   868,   429,   694,
-     868,   858,   853,   879,   901,   871,   901,   881,   861,   859,
-     473,   888,   870,  1032,   465,   862,   864,   470,   903,   901,
-     441,   867,   865,   878,   444,   662,  1037,   488,   613,   892,
-     642,   490,   876,   874,   494,  1045,   455,   896,   609,  1065,
-    1085,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      80,    76,    78,   625,    73,    73,    80,    75,    73,    73,
+      80,    73,    68,    75,    81,   564,     5,    10,     7,   873,
+       9,   570,    18,    72,    73,    74,    75,   873,    77,    78,
+     873,    80,    77,    78,     7,     3,    73,     3,     6,    73,
+     536,   176,     8,    72,    73,    74,    75,    74,    77,    78,
+     546,    80,   113,   114,    73,     3,    73,    74,    75,    74,
+       8,     0,    73,     3,    75,     7,    15,    16,     8,    73,
+      19,     3,    73,    22,    73,    73,     8,    28,    29,    30,
+      86,    87,    73,     3,    34,    73,     7,    73,     8,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,   143,   144,   145,
+     146,     3,     3,     7,    73,   176,     8,     8,   124,   125,
+       3,    72,    73,    74,    74,     8,    85,    86,    87,   116,
+     117,   118,   119,   120,   121,    86,    87,    86,    87,    98,
+       7,     3,   101,   179,     3,   141,     8,     6,    99,   100,
+      74,    75,    76,    77,    78,    79,   149,    11,     3,     3,
+      14,     6,    86,    87,     8,     7,   159,   160,   161,    23,
+     176,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+       3,     3,     7,   176,  1038,     8,     8,   176,   177,   178,
+     179,     3,  1038,     7,     6,  1038,   152,     7,    34,   155,
+     156,   157,   158,    57,    58,    59,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,     3,     3,   176,    72,    73,
+       8,     8,    28,    29,    30,   176,   176,   176,     7,    83,
+       3,     3,    86,    87,    72,     8,     8,    91,    74,   861,
+      76,    77,    96,    97,    80,    81,    82,    74,   102,     3,
+      86,    87,   176,   150,     8,    12,    13,     3,   112,    86,
+      87,   115,     8,   113,   114,     3,     3,    73,   122,   123,
+       8,     8,   126,   127,   103,   104,   105,   106,     3,   108,
+      86,    87,     3,     8,     3,     3,     6,     8,     4,     8,
+       8,    97,     7,   147,   148,     7,   150,   103,   104,   105,
+     106,   107,   108,   383,   110,     3,     3,    17,    18,     3,
+       8,     8,    92,    93,    94,    95,     7,   373,   374,    20,
+      21,     8,   176,     3,   151,     4,   153,   154,    35,    36,
+      37,    38,   110,   111,     4,     4,     4,     4,     4,     4,
+     176,     4,     4,     4,     4,     4,     4,   427,     4,   176,
+       4,     4,     4,   433,     3,   176,     4,     8,     8,     4,
+       3,     8,     4,     4,     8,   445,     3,   178,   448,     4,
+     176,     4,     4,     4,     4,     4,   445,   445,     4,   459,
+     445,   445,     4,   445,   433,     4,     4,     4,     4,   469,
+       4,   459,   474,     4,   474,     4,   445,   459,   474,   448,
+       4,     4,   179,   179,   433,   179,     4,     4,   445,     4,
+     459,   445,   492,     4,   177,   177,   445,   177,   492,   448,
+     469,   448,   492,   179,   469,   474,   445,   494,   445,   474,
+     459,   448,   177,   448,   445,   177,   179,   178,   177,     4,
+     469,   445,   459,   492,   445,   474,   445,   445,   459,   505,
+     506,   507,     4,     4,   445,     4,     4,   445,     4,   445,
+       4,     4,     4,   492,     4,    26,    27,    28,    29,    30,
+       4,  1020,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,     4,     4,   177,     4,
+       4,     4,     4,     4,     4,     4,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,     4,     4,   179,    69,    70,
+      71,     4,    73,     4,     4,     4,     4,     4,     4,     4,
+     177,     4,     4,    84,     4,    86,    87,    88,    89,    90,
+      91,     4,     4,   613,     4,     4,   592,    98,     4,   619,
+     101,   102,     4,     4,     4,     4,     4,   614,   109,   177,
+       4,     4,   179,     4,   179,   179,   612,     4,    86,    87,
+       4,     4,     4,     4,   179,   645,     4,   647,     4,   177,
+     619,   177,   177,   647,     4,     4,     4,   647,   179,   179,
+       4,   177,     7,   176,     7,     7,     7,     7,   176,   176,
+     619,    26,    27,    28,    29,    30,   645,     7,   647,     7,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,     5,   176,   176,   645,     5,   647,   147,
+     148,     5,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,     5,     5,    68,     5,     7,     5,   176,    73,    74,
+       5,     5,    24,   176,     7,     7,     7,   176,   176,     5,
+       5,    86,    87,   176,    89,   176,    91,   176,     5,     7,
+     176,     5,     7,    98,     7,     7,   101,     7,   176,   176,
+     176,   176,   176,   176,   109,   176,   176,   142,     7,   176,
+     176,   176,   176,     7,   176,     7,     7,     7,     7,     4,
+       4,     4,   176,     4,     4,   176,     4,   176,   176,   176,
+     176,   176,   176,     4,     4,     4,     4,     4,     3,   176,
+       6,     3,     6,     6,     3,     6,     3,     3,     6,     3,
+     177,     6,     3,     6,     4,     4,     4,     4,     4,     4,
+       3,   179,     6,   179,     4,     6,     8,     4,     4,     4,
+       4,   176,     4,   177,   177,     4,     4,     4,   179,     4,
+     177,   177,     4,     6,     3,     5,     4,     8,   177,   177,
+     177,   177,   177,   177,   177,   177,   177,   176,     8,   176,
+     176,   176,   176,   176,   176,   176,     4,     8,     3,     8,
+     176,   176,     4,   176,   864,     4,     4,   867,   870,   179,
+     870,   177,     4,   873,   870,   864,   864,   176,   878,   864,
+     864,   881,   864,   878,   884,   873,   176,     7,   873,   873,
+     878,   873,     4,   881,     4,   864,   878,   897,   867,   881,
+     900,   870,   867,     4,   873,   870,   906,   864,   873,   878,
+     864,     4,   881,   878,     4,   864,   873,   546,   867,   873,
+     179,   870,   177,   177,   873,   864,   873,   864,   897,   878,
+     176,   900,   881,   864,   873,   900,   873,   906,   873,   176,
+     864,   878,   873,   864,   881,   864,   864,   878,   897,   873,
+     881,   900,   873,   864,   873,   873,   864,   906,   864,   906,
+     613,   383,   873,   619,   837,   873,   427,   873,   433,   906,
+     699,   906,   863,   858,   876,   477,   886,   866,   893,   884,
+     864,   875,  1038,   469,   474,   867,   869,   445,   908,   906,
+     870,   872,   448,   883,   881,   667,  1043,   897,   647,   492,
+     498,   879,   459,   618,   901,   494,   614,  1051,  1071,  1091,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1032,    -1,    -1,    -1,    -1,  1037,    -1,    -1,
-      -1,    -1,  1037,    -1,  1032,  1045,    -1,  1032,  1032,  1037,
-    1032,    -1,    -1,    -1,    -1,  1037,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  1032,    -1,    -1,    -1,  1032,  1037,    -1,
-      -1,    -1,  1037,    -1,    -1,  1032,  1045,    -1,  1032,    -1,
-    1045,    -1,    -1,  1032,    -1,  1032,    -1,    -1,  1037,    -1,
-      -1,    -1,    -1,  1032,    -1,  1032,  1045,  1032,    -1,    -1,
-    1037,  1032,    -1,    -1,    -1,    -1,  1037,    -1,  1032,    -1,
-      -1,  1032,    -1,  1032,  1032,    -1,    -1,    -1,    -1,    -1,
-      -1,  1032,    -1,    -1,  1032
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1038,    -1,
+      -1,    -1,    -1,  1043,    -1,    -1,    -1,    -1,  1043,    -1,
+    1038,  1051,    -1,  1038,  1038,  1043,  1038,    -1,    -1,    -1,
+      -1,  1043,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1038,
+      -1,    -1,    -1,  1038,  1043,    -1,    -1,    -1,  1043,    -1,
+      -1,  1038,  1051,    -1,  1038,    -1,  1051,    -1,    -1,  1038,
+      -1,  1038,    -1,    -1,  1043,    -1,    -1,    -1,    -1,  1038,
+      -1,  1038,  1051,  1038,    -1,    -1,  1043,  1038,    -1,    -1,
+      -1,    -1,  1043,    -1,  1038,    -1,    -1,  1038,    -1,  1038,
+    1038,    -1,    -1,    -1,    -1,    -1,    -1,  1038,    -1,    -1,
+    1038,    -1,  1038
   };
 
   const unsigned short
   Dhcp4Parser::yystos_[] =
   {
-       0,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-       0,     5,     7,     9,   175,   176,   177,   178,   195,   196,
-     197,   202,     7,   211,     7,   217,     7,   239,     7,   337,
-       7,   417,     7,   433,     7,   369,     7,   375,     7,   399,
-       7,   313,     7,   490,     7,   537,     7,   528,   203,   198,
-     212,   218,   240,   338,   418,   434,   370,   376,   400,   314,
-     491,   538,   529,   195,   204,   205,   175,   200,   201,    10,
-     148,   158,   159,   160,   175,   210,   213,   214,   215,   520,
-     522,   524,   535,    11,    14,    23,    25,    26,    27,    28,
+       0,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+       0,     5,     7,     9,   176,   177,   178,   179,   196,   197,
+     198,   203,     7,   212,     7,   218,     7,   241,     7,   339,
+       7,   419,     7,   435,     7,   371,     7,   377,     7,   401,
+       7,   315,     7,   492,     7,   539,     7,   530,   204,   199,
+     213,   219,   242,   340,   420,   436,   372,   378,   402,   316,
+     493,   540,   531,   196,   205,   206,   176,   201,   202,    10,
+     149,   159,   160,   161,   176,   211,   214,   215,   216,   522,
+     524,   526,   537,    11,    14,    23,    25,    26,    27,    28,
       29,    30,    31,    32,    33,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    71,    72,    82,    85,
-      86,    90,    95,    96,   101,   111,   114,   121,   122,   125,
-     126,   146,   147,   149,   210,   219,   220,   221,   222,   223,
-     224,   225,   226,   227,   228,   229,   230,   232,   233,   234,
-     235,   250,   252,   258,   260,   298,   307,   321,   331,   355,
-     359,   367,   393,   423,   425,   427,   438,   440,   442,   465,
-     477,   478,   486,   488,   516,   518,   526,   541,    15,    16,
-      19,    22,   210,   237,   238,   241,   243,   246,   249,   423,
-     425,    68,    69,    70,    83,    87,    88,    89,    97,   100,
-     108,   210,   221,   222,   223,   224,   225,   226,   227,   228,
-     233,   234,   339,   340,   341,   343,   345,   347,   349,   351,
-     353,   355,   358,   393,   411,   423,   425,   427,   438,   440,
-     442,   462,    84,   210,   351,   353,   393,   419,   420,   421,
-     423,   425,    96,   102,   103,   104,   105,   106,   107,   109,
-     210,   393,   423,   425,   435,   436,   437,   438,   440,   442,
-     444,   448,   450,   452,   454,   456,   458,   460,   367,    34,
-      73,    75,    76,    79,    80,    81,   210,   278,   377,   378,
-     379,   380,   381,   382,   383,   385,   387,   389,   390,   392,
-     423,   425,    74,    77,    78,   210,   278,   381,   387,   401,
-     402,   403,   404,   405,   407,   408,   409,   410,   423,   425,
-     112,   113,   210,   315,   316,   317,   319,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     210,   423,   425,   492,   493,   494,   495,   497,   499,   500,
-     502,   503,   504,   507,   509,   510,   511,   514,   516,   518,
-     539,   540,   541,    12,    13,   530,   531,   532,   534,     6,
-       3,     4,     8,     3,   216,   536,   521,   523,   525,     4,
-       3,     8,   527,   236,   253,     4,     4,     4,   439,   441,
-     443,   251,   259,   261,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   231,   332,   368,   394,   360,   424,   426,
-     356,   299,   466,   428,   308,   322,     4,   479,   487,   489,
-     517,   519,   542,     3,     8,   242,   244,   247,     4,     3,
-       8,   344,   346,   348,   412,   342,   350,     4,   354,   352,
-     463,     3,     8,   422,     3,     8,   461,   449,   451,   455,
-     453,   459,   457,   445,     8,     3,     8,   384,   279,     4,
-     388,   386,   391,     4,     8,     3,   406,     4,     4,     8,
-       3,   318,   320,     3,     8,     4,   496,   498,     4,   501,
-       4,     4,   505,   508,     4,     4,   512,   515,     3,     8,
-       3,     8,   533,     4,     3,     8,   195,   195,   175,     4,
-       4,     4,     4,     4,   214,     4,     4,     4,   178,   178,
-     178,     4,     4,     4,     4,     4,     4,   176,   176,   176,
-     176,   176,   178,   177,   177,   176,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   176,
-       4,     4,     4,     4,     4,     4,   220,     4,     4,     4,
-     178,   238,     4,     4,     4,     4,     4,     4,   176,     4,
-       4,     4,   340,     4,   420,     4,     4,     4,     4,     4,
-       4,     4,     4,   437,     4,     4,   176,     4,     4,     4,
-     178,   379,     4,   178,   178,   403,     4,     4,   316,   178,
-       4,     4,   176,     4,   176,   176,     4,     4,   178,   178,
-       4,     4,   493,   540,     4,   176,   531,     4,     7,     7,
-     195,   195,   195,     7,     7,     7,   175,   175,   175,     7,
-       7,     5,   175,     5,     5,     5,     5,   197,   199,   175,
-      91,    92,    93,    94,   357,     5,     5,     5,     5,     7,
-       7,   199,     7,   175,   175,     5,     5,   206,    17,    18,
-     245,    20,    21,   248,   175,   175,   175,     5,   175,   175,
-     206,   175,     7,   175,   206,   175,   175,   175,   175,   175,
-     175,   175,   175,   175,   175,   175,   175,   175,   175,   195,
-     175,   175,   175,    18,   140,   506,   141,   142,   143,   144,
-     145,   178,   513,   175,     5,   195,   219,   539,   530,   237,
-      24,   254,   255,   256,    34,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,   210,   266,   267,   268,   271,   273,   275,
-     277,   278,   280,   281,   282,   283,   284,   285,   286,   287,
-     289,   291,   293,   295,   296,   297,   266,     7,   262,   263,
-     264,     7,   333,   334,   335,     7,   371,   372,   373,     7,
-     395,   396,   397,     7,   361,   362,   363,   102,   103,   104,
-     105,   107,   300,   301,   302,   303,   304,   305,   306,     7,
-     467,   468,     7,   429,   430,   431,     7,   309,   310,   311,
-     115,   116,   117,   118,   119,   120,   323,   324,   325,   326,
-     327,   328,   329,   330,   123,   124,   210,   423,   425,   480,
-     481,   482,   484,   492,     7,   543,   544,   207,     7,   413,
-     414,   415,   110,   444,   446,   464,   262,     8,     8,     8,
-       8,   257,     3,     8,   269,   272,   274,   276,     4,     4,
-       4,     4,     4,   288,   290,   292,   294,     4,     4,     4,
-       4,     4,     4,     3,     8,     8,   265,     6,     3,   336,
-       6,     3,   374,     6,     3,   398,     6,     3,   364,     6,
-       3,     3,     6,   469,     3,     6,   432,     6,     3,   312,
-       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
-     483,   485,     3,     8,     8,   545,     3,     6,   175,   208,
-     209,   416,     6,     3,   447,     8,     6,     4,   255,     4,
-       4,     4,     4,   176,   178,   176,   178,   176,     4,     4,
-       4,     4,   176,   176,   176,   176,   178,   176,   267,   266,
-     264,   339,   335,   377,   373,   401,   397,   210,   221,   222,
-     223,   224,   225,   226,   227,   228,   233,   234,   278,   331,
-     349,   351,   353,   355,   365,   366,   393,   423,   425,   438,
-     440,   442,   462,   363,   301,    98,    99,   210,   278,   367,
-     393,   423,   425,   438,   440,   442,   470,   471,   472,   473,
-     474,   476,   468,   435,   431,   315,   311,   176,   176,   176,
-     176,   176,   176,   324,     4,     4,   481,   150,   152,   153,
-     210,   278,   423,   425,   546,   547,   548,   549,   551,   544,
-       6,     3,   419,   415,     4,   175,    35,    36,    37,    38,
-     270,   175,   175,   175,   175,   175,   175,   175,     8,     8,
-       8,     8,     3,     8,   475,     4,     8,     3,     8,     8,
-     175,   175,   552,     4,   550,     3,     8,   175,     8,   206,
-     366,     4,   178,   472,     4,   176,     4,   547,   175,     5,
-     175,     7,   553,   554,   555,     3,     6,   151,   154,   155,
-     156,   157,   556,   557,   558,   560,   561,   562,   563,   554,
-     559,     4,     4,     4,   564,     3,     8,     4,   178,   176,
-     176,     4,   557,   175,   175
+      62,    63,    64,    65,    66,    67,    68,    72,    73,    83,
+      86,    87,    91,    96,    97,   102,   112,   115,   122,   123,
+     126,   127,   147,   148,   150,   211,   220,   221,   222,   223,
+     224,   225,   226,   227,   228,   229,   230,   231,   232,   234,
+     235,   236,   237,   252,   254,   260,   262,   300,   309,   323,
+     333,   357,   361,   369,   395,   425,   427,   429,   440,   442,
+     444,   467,   479,   480,   488,   490,   518,   520,   528,   543,
+      15,    16,    19,    22,   211,   239,   240,   243,   245,   248,
+     251,   425,   427,    69,    70,    71,    84,    88,    89,    90,
+      98,   101,   109,   211,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   235,   236,   341,   342,   343,   345,   347,
+     349,   351,   353,   355,   357,   360,   395,   413,   425,   427,
+     429,   440,   442,   444,   464,    85,   211,   353,   355,   395,
+     421,   422,   423,   425,   427,    97,   103,   104,   105,   106,
+     107,   108,   110,   211,   395,   425,   427,   437,   438,   439,
+     440,   442,   444,   446,   450,   452,   454,   456,   458,   460,
+     462,   369,    34,    74,    76,    77,    80,    81,    82,   211,
+     280,   379,   380,   381,   382,   383,   384,   385,   387,   389,
+     391,   392,   394,   425,   427,    75,    78,    79,   211,   280,
+     383,   389,   403,   404,   405,   406,   407,   409,   410,   411,
+     412,   425,   427,   113,   114,   211,   317,   318,   319,   321,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   211,   425,   427,   494,   495,   496,   497,
+     499,   501,   502,   504,   505,   506,   509,   511,   512,   513,
+     516,   518,   520,   541,   542,   543,    12,    13,   532,   533,
+     534,   536,     6,     3,     4,     8,     3,   217,   538,   523,
+     525,   527,     4,     3,     8,   529,   238,   255,     4,     4,
+       4,   441,   443,   445,   253,   261,   263,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,   233,   334,   370,
+     396,   362,   426,   428,   358,   301,   468,   430,   310,   324,
+       4,   481,   489,   491,   519,   521,   544,     3,     8,   244,
+     246,   249,     4,     3,     8,   346,   348,   350,   414,   344,
+     352,     4,   356,   354,   465,     3,     8,   424,     3,     8,
+     463,   451,   453,   457,   455,   461,   459,   447,     8,     3,
+       8,   386,   281,     4,   390,   388,   393,     4,     8,     3,
+     408,     4,     4,     8,     3,   320,   322,     3,     8,     4,
+     498,   500,     4,   503,     4,     4,   507,   510,     4,     4,
+     514,   517,     3,     8,     3,     8,   535,     4,     3,     8,
+     196,   196,   176,     4,     4,     4,     4,     4,   215,     4,
+       4,     4,   179,   179,   179,     4,     4,     4,     4,     4,
+       4,   177,   177,   177,   177,   177,   179,   179,   178,   178,
+     177,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   177,     4,     4,     4,     4,     4,
+       4,   221,     4,     4,     4,   179,   240,     4,     4,     4,
+       4,     4,     4,   177,     4,     4,     4,   342,     4,   422,
+       4,     4,     4,     4,     4,     4,     4,     4,   439,     4,
+       4,   177,     4,     4,     4,   179,   381,     4,   179,   179,
+     405,     4,     4,   318,   179,     4,     4,   177,     4,   177,
+     177,     4,     4,   179,   179,     4,     4,   495,   542,     4,
+     177,   533,     4,     7,     7,   196,   196,   196,     7,     7,
+       7,   176,   176,   176,     7,     7,     5,   176,     5,     5,
+       5,     5,   198,   200,   176,    92,    93,    94,    95,   359,
+       5,     5,     5,     5,     7,     7,   200,     7,   176,   176,
+       5,     5,   207,    17,    18,   247,    20,    21,   250,   176,
+     176,   176,     5,   176,   176,   207,   176,     7,   176,   207,
+     176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
+     176,   176,   176,   176,   196,   176,   176,   176,    18,   141,
+     508,   142,   143,   144,   145,   146,   179,   515,   176,     5,
+     196,   220,   541,   532,   239,    24,   256,   257,   258,    34,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,   211,   268,
+     269,   270,   273,   275,   277,   279,   280,   282,   283,   284,
+     285,   286,   287,   288,   289,   291,   293,   295,   297,   298,
+     299,   268,     7,   264,   265,   266,     7,   335,   336,   337,
+       7,   373,   374,   375,     7,   397,   398,   399,     7,   363,
+     364,   365,   103,   104,   105,   106,   108,   302,   303,   304,
+     305,   306,   307,   308,     7,   469,   470,     7,   431,   432,
+     433,     7,   311,   312,   313,   116,   117,   118,   119,   120,
+     121,   325,   326,   327,   328,   329,   330,   331,   332,   124,
+     125,   211,   425,   427,   482,   483,   484,   486,   494,     7,
+     545,   546,   208,     7,   415,   416,   417,   111,   446,   448,
+     466,   264,     8,     8,     8,     8,   259,     3,     8,   271,
+     274,   276,   278,     4,     4,     4,     4,     4,   290,   292,
+     294,   296,     4,     4,     4,     4,     4,     4,     3,     8,
+       8,   267,     6,     3,   338,     6,     3,   376,     6,     3,
+     400,     6,     3,   366,     6,     3,     3,     6,   471,     3,
+       6,   434,     6,     3,   314,     6,     3,     4,     4,     4,
+       4,     4,     4,     3,     8,   485,   487,     3,     8,     8,
+     547,     3,     6,   176,   209,   210,   418,     6,     3,   449,
+       8,     6,     4,   257,     4,     4,     4,     4,   177,   179,
+     177,   179,   177,     4,     4,     4,     4,   177,   177,   177,
+     177,   179,   177,   269,   268,   266,   341,   337,   379,   375,
+     403,   399,   211,   222,   223,   224,   225,   226,   227,   228,
+     229,   230,   235,   236,   280,   333,   351,   353,   355,   357,
+     367,   368,   395,   425,   427,   440,   442,   444,   464,   365,
+     303,    99,   100,   211,   280,   369,   395,   425,   427,   440,
+     442,   444,   472,   473,   474,   475,   476,   478,   470,   437,
+     433,   317,   313,   177,   177,   177,   177,   177,   177,   326,
+       4,     4,   483,   151,   153,   154,   211,   280,   425,   427,
+     548,   549,   550,   551,   553,   546,     6,     3,   421,   417,
+       4,   176,    35,    36,    37,    38,   272,   176,   176,   176,
+     176,   176,   176,   176,     8,     8,     8,     8,     3,     8,
+     477,     4,     8,     3,     8,     8,   176,   176,   554,     4,
+     552,     3,     8,   176,     8,   207,   368,     4,   179,   474,
+       4,   177,     4,   549,   176,     5,   176,     7,   555,   556,
+     557,     3,     6,   152,   155,   156,   157,   158,   558,   559,
+     560,   562,   563,   564,   565,   556,   561,     4,     4,     4,
+     566,     3,     8,     4,   179,   177,   177,     4,   559,   176,
+     176
   };
 
   const unsigned short
   Dhcp4Parser::yyr1_[] =
   {
-       0,   179,   181,   180,   182,   180,   183,   180,   184,   180,
-     185,   180,   186,   180,   187,   180,   188,   180,   189,   180,
-     190,   180,   191,   180,   192,   180,   193,   180,   194,   180,
-     195,   195,   195,   195,   195,   195,   195,   196,   198,   197,
-     199,   200,   200,   201,   201,   203,   202,   204,   204,   205,
-     205,   207,   206,   208,   208,   209,   209,   210,   212,   211,
-     213,   213,   214,   214,   214,   214,   214,   214,   216,   215,
-     218,   217,   219,   219,   220,   220,   220,   220,   220,   220,
-     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-     220,   220,   220,   220,   220,   220,   220,   220,   220,   220,
-     220,   220,   220,   220,   220,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   231,   230,   232,   233,   234,
-     236,   235,   237,   237,   238,   238,   238,   238,   238,   238,
-     238,   240,   239,   242,   241,   244,   243,   245,   245,   247,
-     246,   248,   248,   249,   251,   250,   253,   252,   254,   254,
-     255,   257,   256,   259,   258,   261,   260,   262,   262,   263,
-     263,   265,   264,   266,   266,   267,   267,   267,   267,   267,
-     267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
-     267,   267,   267,   267,   267,   267,   269,   268,   270,   270,
-     270,   270,   272,   271,   274,   273,   276,   275,   277,   279,
-     278,   280,   281,   282,   283,   284,   285,   286,   288,   287,
-     290,   289,   292,   291,   294,   293,   295,   296,   297,   299,
-     298,   300,   300,   301,   301,   301,   301,   301,   302,   303,
-     304,   305,   306,   308,   307,   309,   309,   310,   310,   312,
-     311,   314,   313,   315,   315,   315,   316,   316,   318,   317,
-     320,   319,   322,   321,   323,   323,   324,   324,   324,   324,
-     324,   324,   325,   326,   327,   328,   329,   330,   332,   331,
-     333,   333,   334,   334,   336,   335,   338,   337,   339,   339,
-     340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
-     340,   340,   340,   340,   340,   340,   340,   340,   340,   340,
-     340,   340,   340,   340,   340,   340,   340,   340,   340,   342,
-     341,   344,   343,   346,   345,   348,   347,   350,   349,   352,
-     351,   354,   353,   356,   355,   357,   357,   357,   357,   358,
-     360,   359,   361,   361,   362,   362,   364,   363,   365,   365,
-     366,   366,   366,   366,   366,   366,   366,   366,   366,   366,
-     366,   366,   366,   366,   366,   366,   366,   366,   366,   366,
-     366,   366,   366,   366,   368,   367,   370,   369,   371,   371,
-     372,   372,   374,   373,   376,   375,   377,   377,   378,   378,
-     379,   379,   379,   379,   379,   379,   379,   379,   379,   379,
-     380,   381,   382,   384,   383,   386,   385,   388,   387,   389,
-     391,   390,   392,   394,   393,   395,   395,   396,   396,   398,
-     397,   400,   399,   401,   401,   402,   402,   403,   403,   403,
-     403,   403,   403,   403,   403,   403,   404,   406,   405,   407,
-     408,   409,   410,   412,   411,   413,   413,   414,   414,   416,
-     415,   418,   417,   419,   419,   420,   420,   420,   420,   420,
-     420,   420,   422,   421,   424,   423,   426,   425,   428,   427,
-     429,   429,   430,   430,   432,   431,   434,   433,   435,   435,
-     436,   436,   437,   437,   437,   437,   437,   437,   437,   437,
-     437,   437,   437,   437,   437,   437,   437,   439,   438,   441,
-     440,   443,   442,   445,   444,   447,   446,   449,   448,   451,
-     450,   453,   452,   455,   454,   457,   456,   459,   458,   461,
-     460,   463,   462,   464,   464,   466,   465,   467,   467,   469,
-     468,   470,   470,   471,   471,   472,   472,   472,   472,   472,
-     472,   472,   472,   472,   472,   472,   473,   475,   474,   476,
-     477,   479,   478,   480,   480,   481,   481,   481,   481,   481,
-     483,   482,   485,   484,   487,   486,   489,   488,   491,   490,
-     492,   492,   493,   493,   493,   493,   493,   493,   493,   493,
-     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
-     494,   496,   495,   498,   497,   499,   501,   500,   502,   503,
-     505,   504,   506,   506,   508,   507,   509,   510,   512,   511,
-     513,   513,   513,   513,   513,   515,   514,   517,   516,   519,
-     518,   521,   520,   523,   522,   525,   524,   527,   526,   529,
-     528,   530,   530,   531,   531,   533,   532,   534,   536,   535,
-     538,   537,   539,   539,   540,   542,   541,   543,   543,   545,
-     544,   546,   546,   547,   547,   547,   547,   547,   547,   547,
-     548,   550,   549,   552,   551,   553,   553,   555,   554,   556,
-     556,   557,   557,   557,   557,   557,   559,   558,   560,   561,
-     562,   564,   563
+       0,   180,   182,   181,   183,   181,   184,   181,   185,   181,
+     186,   181,   187,   181,   188,   181,   189,   181,   190,   181,
+     191,   181,   192,   181,   193,   181,   194,   181,   195,   181,
+     196,   196,   196,   196,   196,   196,   196,   197,   199,   198,
+     200,   201,   201,   202,   202,   204,   203,   205,   205,   206,
+     206,   208,   207,   209,   209,   210,   210,   211,   213,   212,
+     214,   214,   215,   215,   215,   215,   215,   215,   217,   216,
+     219,   218,   220,   220,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   221,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   233,   232,   234,
+     235,   236,   238,   237,   239,   239,   240,   240,   240,   240,
+     240,   240,   240,   242,   241,   244,   243,   246,   245,   247,
+     247,   249,   248,   250,   250,   251,   253,   252,   255,   254,
+     256,   256,   257,   259,   258,   261,   260,   263,   262,   264,
+     264,   265,   265,   267,   266,   268,   268,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   269,   269,
+     269,   269,   269,   269,   269,   269,   269,   269,   271,   270,
+     272,   272,   272,   272,   274,   273,   276,   275,   278,   277,
+     279,   281,   280,   282,   283,   284,   285,   286,   287,   288,
+     290,   289,   292,   291,   294,   293,   296,   295,   297,   298,
+     299,   301,   300,   302,   302,   303,   303,   303,   303,   303,
+     304,   305,   306,   307,   308,   310,   309,   311,   311,   312,
+     312,   314,   313,   316,   315,   317,   317,   317,   318,   318,
+     320,   319,   322,   321,   324,   323,   325,   325,   326,   326,
+     326,   326,   326,   326,   327,   328,   329,   330,   331,   332,
+     334,   333,   335,   335,   336,   336,   338,   337,   340,   339,
+     341,   341,   342,   342,   342,   342,   342,   342,   342,   342,
+     342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
+     342,   342,   342,   342,   342,   342,   342,   342,   342,   342,
+     342,   342,   344,   343,   346,   345,   348,   347,   350,   349,
+     352,   351,   354,   353,   356,   355,   358,   357,   359,   359,
+     359,   359,   360,   362,   361,   363,   363,   364,   364,   366,
+     365,   367,   367,   368,   368,   368,   368,   368,   368,   368,
+     368,   368,   368,   368,   368,   368,   368,   368,   368,   368,
+     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
+     372,   371,   373,   373,   374,   374,   376,   375,   378,   377,
+     379,   379,   380,   380,   381,   381,   381,   381,   381,   381,
+     381,   381,   381,   381,   382,   383,   384,   386,   385,   388,
+     387,   390,   389,   391,   393,   392,   394,   396,   395,   397,
+     397,   398,   398,   400,   399,   402,   401,   403,   403,   404,
+     404,   405,   405,   405,   405,   405,   405,   405,   405,   405,
+     406,   408,   407,   409,   410,   411,   412,   414,   413,   415,
+     415,   416,   416,   418,   417,   420,   419,   421,   421,   422,
+     422,   422,   422,   422,   422,   422,   424,   423,   426,   425,
+     428,   427,   430,   429,   431,   431,   432,   432,   434,   433,
+     436,   435,   437,   437,   438,   438,   439,   439,   439,   439,
+     439,   439,   439,   439,   439,   439,   439,   439,   439,   439,
+     439,   441,   440,   443,   442,   445,   444,   447,   446,   449,
+     448,   451,   450,   453,   452,   455,   454,   457,   456,   459,
+     458,   461,   460,   463,   462,   465,   464,   466,   466,   468,
+     467,   469,   469,   471,   470,   472,   472,   473,   473,   474,
+     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
+     475,   477,   476,   478,   479,   481,   480,   482,   482,   483,
+     483,   483,   483,   483,   485,   484,   487,   486,   489,   488,
+     491,   490,   493,   492,   494,   494,   495,   495,   495,   495,
+     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
+     495,   495,   495,   495,   496,   498,   497,   500,   499,   501,
+     503,   502,   504,   505,   507,   506,   508,   508,   510,   509,
+     511,   512,   514,   513,   515,   515,   515,   515,   515,   517,
+     516,   519,   518,   521,   520,   523,   522,   525,   524,   527,
+     526,   529,   528,   531,   530,   532,   532,   533,   533,   535,
+     534,   536,   538,   537,   540,   539,   541,   541,   542,   544,
+     543,   545,   545,   547,   546,   548,   548,   549,   549,   549,
+     549,   549,   549,   549,   550,   552,   551,   554,   553,   555,
+     555,   557,   556,   558,   558,   559,   559,   559,   559,   559,
+     561,   560,   562,   563,   564,   566,   565
   };
 
   const unsigned char
@@ -4805,64 +4819,64 @@ 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,     1,     3,     3,     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,     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,     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,     3,     3,     3,
+       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,     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,
+       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,     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,     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,     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,     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,     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,
+       1,     0,     4,     0,     4,     0,     4,     0,     4,     0,
        4,     0,     4,     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,     6,     1,     1,     0,
+       6,     1,     3,     0,     4,     0,     1,     1,     3,     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,     1,     0,     4,     3,     3,
-       3,     0,     4
+       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,     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,     1,
+       0,     4,     3,     3,     3,     0,     4
   };
 
 
@@ -4889,16 +4903,17 @@ namespace isc { namespace dhcp {
   "\"reconnect-wait-time\"", "\"request-timeout\"", "\"tcp-keepalive\"",
   "\"tcp-nodelay\"", "\"max-row-errors\"", "\"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\"",
+  "\"rebind-timer\"", "\"allow-static-leases\"", "\"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\"",
@@ -4932,21 +4947,22 @@ namespace isc { namespace dhcp {
   "global_objects", "global_object", "dhcp4_object", "$@19", "sub_dhcp4",
   "$@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",
-  "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
-  "$@23", "interfaces_list", "$@24", "dhcp_socket_type", "$@25",
-  "socket_type", "outbound_interface", "$@26", "outbound_interface_value",
-  "re_detect", "lease_database", "$@27", "sanity_checks", "$@28",
-  "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@29",
-  "hosts_database", "$@30", "hosts_databases", "$@31", "database_list",
-  "not_empty_database_list", "database", "$@32", "database_map_params",
-  "database_map_param", "database_type", "$@33", "db_type", "user", "$@34",
-  "password", "$@35", "host", "$@36", "port", "name", "$@37", "persist",
-  "lfc_interval", "readonly", "connect_timeout", "request_timeout",
-  "tcp_keepalive", "tcp_nodelay", "contact_points", "$@38", "keyspace",
-  "$@39", "consistency", "$@40", "serial_consistency", "$@41",
+  "rebind_timer", "allow_static_leases", "calculate_tee_times",
+  "t1_percent", "t2_percent", "decline_probation_period", "server_tag",
+  "$@21", "echo_client_id", "match_client_id", "authoritative",
+  "interfaces_config", "$@22", "interfaces_config_params",
+  "interfaces_config_param", "sub_interfaces4", "$@23", "interfaces_list",
+  "$@24", "dhcp_socket_type", "$@25", "socket_type", "outbound_interface",
+  "$@26", "outbound_interface_value", "re_detect", "lease_database",
+  "$@27", "sanity_checks", "$@28", "sanity_checks_params",
+  "sanity_checks_param", "lease_checks", "$@29", "hosts_database", "$@30",
+  "hosts_databases", "$@31", "database_list", "not_empty_database_list",
+  "database", "$@32", "database_map_params", "database_map_param",
+  "database_type", "$@33", "db_type", "user", "$@34", "password", "$@35",
+  "host", "$@36", "port", "name", "$@37", "persist", "lfc_interval",
+  "readonly", "connect_timeout", "request_timeout", "tcp_keepalive",
+  "tcp_nodelay", "contact_points", "$@38", "keyspace", "$@39",
+  "consistency", "$@40", "serial_consistency", "$@41",
   "max_reconnect_tries", "reconnect_wait_time", "max_row_errors",
   "host_reservation_identifiers", "$@42",
   "host_reservation_identifiers_list", "host_reservation_identifier",
@@ -5020,75 +5036,75 @@ namespace isc { namespace dhcp {
   const unsigned short
   Dhcp4Parser::yyrline_[] =
   {
-       0,   266,   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,
-     404,   405,   409,   410,   411,   412,   413,   414,   417,   417,
-     432,   432,   441,   442,   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,   485,   486,   487,   488,   491,   496,   501,   506,
-     511,   516,   521,   526,   531,   536,   536,   544,   549,   554,
-     560,   560,   571,   572,   575,   576,   577,   578,   579,   580,
-     581,   584,   584,   593,   593,   603,   603,   610,   611,   614,
-     614,   621,   623,   627,   633,   633,   645,   645,   655,   656,
-     658,   660,   660,   678,   678,   690,   690,   700,   701,   704,
-     705,   708,   708,   718,   719,   722,   723,   724,   725,   726,
-     727,   728,   729,   730,   731,   732,   733,   734,   735,   736,
-     737,   738,   739,   740,   741,   742,   745,   745,   752,   753,
-     754,   755,   758,   758,   766,   766,   774,   774,   782,   787,
-     787,   795,   800,   805,   810,   815,   820,   825,   830,   830,
-     838,   838,   846,   846,   854,   854,   862,   867,   872,   878,
-     878,   888,   889,   892,   893,   894,   895,   896,   899,   904,
-     909,   914,   919,   924,   924,   934,   935,   938,   939,   942,
-     942,   952,   952,   962,   963,   964,   967,   968,   971,   971,
-     979,   979,   987,   987,   998,   999,  1002,  1003,  1004,  1005,
-    1006,  1007,  1010,  1015,  1020,  1025,  1030,  1035,  1043,  1043,
-    1056,  1057,  1060,  1061,  1068,  1068,  1094,  1094,  1105,  1106,
-    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,  1141,
-    1141,  1149,  1149,  1157,  1157,  1165,  1165,  1173,  1173,  1181,
-    1181,  1189,  1189,  1199,  1199,  1206,  1207,  1208,  1209,  1212,
-    1219,  1219,  1230,  1231,  1235,  1236,  1239,  1239,  1247,  1248,
-    1251,  1252,  1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,
-    1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1270,
-    1271,  1272,  1273,  1274,  1281,  1281,  1294,  1294,  1303,  1304,
-    1307,  1308,  1313,  1313,  1328,  1328,  1342,  1343,  1346,  1347,
-    1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,  1358,  1359,
-    1362,  1364,  1369,  1371,  1371,  1379,  1379,  1387,  1387,  1395,
-    1397,  1397,  1405,  1414,  1414,  1426,  1427,  1432,  1433,  1438,
-    1438,  1450,  1450,  1462,  1463,  1468,  1469,  1474,  1475,  1476,
-    1477,  1478,  1479,  1480,  1481,  1482,  1485,  1487,  1487,  1495,
-    1497,  1499,  1504,  1512,  1512,  1524,  1525,  1528,  1529,  1532,
-    1532,  1542,  1542,  1552,  1553,  1556,  1557,  1558,  1559,  1560,
-    1561,  1562,  1565,  1565,  1573,  1573,  1598,  1598,  1628,  1628,
-    1638,  1639,  1642,  1643,  1646,  1646,  1655,  1655,  1664,  1665,
-    1668,  1669,  1673,  1674,  1675,  1676,  1677,  1678,  1679,  1680,
-    1681,  1682,  1683,  1684,  1685,  1686,  1687,  1690,  1690,  1698,
-    1698,  1706,  1706,  1714,  1714,  1722,  1722,  1732,  1732,  1740,
-    1740,  1748,  1748,  1756,  1756,  1764,  1764,  1772,  1772,  1780,
-    1780,  1793,  1793,  1803,  1804,  1810,  1810,  1820,  1821,  1824,
-    1824,  1834,  1835,  1838,  1839,  1842,  1843,  1844,  1845,  1846,
-    1847,  1848,  1849,  1850,  1851,  1852,  1855,  1857,  1857,  1865,
-    1874,  1881,  1881,  1891,  1892,  1895,  1896,  1897,  1898,  1899,
-    1902,  1902,  1910,  1910,  1921,  1921,  1959,  1959,  1971,  1971,
-    1981,  1982,  1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-    1993,  1994,  1995,  1996,  1997,  1998,  1999,  2000,  2001,  2002,
-    2005,  2010,  2010,  2018,  2018,  2026,  2031,  2031,  2039,  2044,
-    2049,  2049,  2057,  2058,  2061,  2061,  2069,  2074,  2079,  2079,
-    2087,  2090,  2093,  2096,  2099,  2105,  2105,  2113,  2113,  2121,
-    2121,  2132,  2132,  2139,  2139,  2146,  2146,  2153,  2153,  2164,
-    2164,  2174,  2175,  2179,  2180,  2183,  2183,  2193,  2203,  2203,
-    2213,  2213,  2224,  2225,  2229,  2233,  2233,  2245,  2246,  2250,
-    2250,  2258,  2259,  2262,  2263,  2264,  2265,  2266,  2267,  2268,
-    2271,  2276,  2276,  2284,  2284,  2294,  2295,  2298,  2298,  2306,
-    2307,  2310,  2311,  2312,  2313,  2314,  2317,  2317,  2325,  2330,
-    2335,  2340,  2340
+       0,   267,   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,   280,   280,
+     288,   289,   290,   291,   292,   293,   294,   297,   302,   302,
+     313,   316,   317,   320,   324,   331,   331,   338,   339,   342,
+     346,   353,   353,   360,   361,   364,   368,   379,   389,   389,
+     405,   406,   410,   411,   412,   413,   414,   415,   418,   418,
+     433,   433,   442,   443,   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,   485,   486,   487,   488,   489,   490,   493,   498,   503,
+     508,   513,   518,   523,   528,   533,   538,   543,   543,   551,
+     556,   561,   567,   567,   578,   579,   582,   583,   584,   585,
+     586,   587,   588,   591,   591,   600,   600,   610,   610,   617,
+     618,   621,   621,   628,   630,   634,   640,   640,   652,   652,
+     662,   663,   665,   667,   667,   685,   685,   697,   697,   707,
+     708,   711,   712,   715,   715,   725,   726,   729,   730,   731,
+     732,   733,   734,   735,   736,   737,   738,   739,   740,   741,
+     742,   743,   744,   745,   746,   747,   748,   749,   752,   752,
+     759,   760,   761,   762,   765,   765,   773,   773,   781,   781,
+     789,   794,   794,   802,   807,   812,   817,   822,   827,   832,
+     837,   837,   845,   845,   853,   853,   861,   861,   869,   874,
+     879,   885,   885,   895,   896,   899,   900,   901,   902,   903,
+     906,   911,   916,   921,   926,   931,   931,   941,   942,   945,
+     946,   949,   949,   959,   959,   969,   970,   971,   974,   975,
+     978,   978,   986,   986,   994,   994,  1005,  1006,  1009,  1010,
+    1011,  1012,  1013,  1014,  1017,  1022,  1027,  1032,  1037,  1042,
+    1050,  1050,  1063,  1064,  1067,  1068,  1075,  1075,  1101,  1101,
+    1112,  1113,  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,
+    1145,  1146,  1149,  1149,  1157,  1157,  1165,  1165,  1173,  1173,
+    1181,  1181,  1189,  1189,  1197,  1197,  1207,  1207,  1214,  1215,
+    1216,  1217,  1220,  1227,  1227,  1238,  1239,  1243,  1244,  1247,
+    1247,  1255,  1256,  1259,  1260,  1261,  1262,  1263,  1264,  1265,
+    1266,  1267,  1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,
+    1276,  1277,  1278,  1279,  1280,  1281,  1282,  1283,  1290,  1290,
+    1303,  1303,  1312,  1313,  1316,  1317,  1322,  1322,  1337,  1337,
+    1351,  1352,  1355,  1356,  1359,  1360,  1361,  1362,  1363,  1364,
+    1365,  1366,  1367,  1368,  1371,  1373,  1378,  1380,  1380,  1388,
+    1388,  1396,  1396,  1404,  1406,  1406,  1414,  1423,  1423,  1435,
+    1436,  1441,  1442,  1447,  1447,  1459,  1459,  1471,  1472,  1477,
+    1478,  1483,  1484,  1485,  1486,  1487,  1488,  1489,  1490,  1491,
+    1494,  1496,  1496,  1504,  1506,  1508,  1513,  1521,  1521,  1533,
+    1534,  1537,  1538,  1541,  1541,  1551,  1551,  1561,  1562,  1565,
+    1566,  1567,  1568,  1569,  1570,  1571,  1574,  1574,  1582,  1582,
+    1607,  1607,  1637,  1637,  1647,  1648,  1651,  1652,  1655,  1655,
+    1664,  1664,  1673,  1674,  1677,  1678,  1682,  1683,  1684,  1685,
+    1686,  1687,  1688,  1689,  1690,  1691,  1692,  1693,  1694,  1695,
+    1696,  1699,  1699,  1707,  1707,  1715,  1715,  1723,  1723,  1731,
+    1731,  1741,  1741,  1749,  1749,  1757,  1757,  1765,  1765,  1773,
+    1773,  1781,  1781,  1789,  1789,  1802,  1802,  1812,  1813,  1819,
+    1819,  1829,  1830,  1833,  1833,  1843,  1844,  1847,  1848,  1851,
+    1852,  1853,  1854,  1855,  1856,  1857,  1858,  1859,  1860,  1861,
+    1864,  1866,  1866,  1874,  1883,  1890,  1890,  1900,  1901,  1904,
+    1905,  1906,  1907,  1908,  1911,  1911,  1919,  1919,  1930,  1930,
+    1968,  1968,  1980,  1980,  1990,  1991,  1994,  1995,  1996,  1997,
+    1998,  1999,  2000,  2001,  2002,  2003,  2004,  2005,  2006,  2007,
+    2008,  2009,  2010,  2011,  2014,  2019,  2019,  2027,  2027,  2035,
+    2040,  2040,  2048,  2053,  2058,  2058,  2066,  2067,  2070,  2070,
+    2078,  2083,  2088,  2088,  2096,  2099,  2102,  2105,  2108,  2114,
+    2114,  2122,  2122,  2130,  2130,  2141,  2141,  2148,  2148,  2155,
+    2155,  2162,  2162,  2173,  2173,  2183,  2184,  2188,  2189,  2192,
+    2192,  2202,  2212,  2212,  2222,  2222,  2233,  2234,  2238,  2242,
+    2242,  2254,  2255,  2259,  2259,  2267,  2268,  2271,  2272,  2273,
+    2274,  2275,  2276,  2277,  2280,  2285,  2285,  2293,  2293,  2303,
+    2304,  2307,  2307,  2315,  2316,  2319,  2320,  2321,  2322,  2323,
+    2326,  2326,  2334,  2339,  2344,  2349,  2349
   };
 
   // Print the state stack on the debug stream.
@@ -5123,9 +5139,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 5127 "dhcp4_parser.cc"
+#line 5143 "dhcp4_parser.cc"
 
-#line 2349 "dhcp4_parser.yy"
+#line 2358 "dhcp4_parser.yy"
 
 
 void
index 48bc394818f7b805f76b947f6bf0928d1ccf570f..4f58c59cf35e8f75c11fd06e53860fcb3b3375be 100644 (file)
@@ -512,123 +512,124 @@ namespace isc { namespace dhcp {
         TOKEN_MAX_VALID_LIFETIME = 314,
         TOKEN_RENEW_TIMER = 315,
         TOKEN_REBIND_TIMER = 316,
-        TOKEN_CALCULATE_TEE_TIMES = 317,
-        TOKEN_T1_PERCENT = 318,
-        TOKEN_T2_PERCENT = 319,
-        TOKEN_DECLINE_PROBATION_PERIOD = 320,
-        TOKEN_SERVER_TAG = 321,
-        TOKEN_SUBNET4 = 322,
-        TOKEN_SUBNET_4O6_INTERFACE = 323,
-        TOKEN_SUBNET_4O6_INTERFACE_ID = 324,
-        TOKEN_SUBNET_4O6_SUBNET = 325,
-        TOKEN_OPTION_DEF = 326,
-        TOKEN_OPTION_DATA = 327,
-        TOKEN_NAME = 328,
-        TOKEN_DATA = 329,
-        TOKEN_CODE = 330,
-        TOKEN_SPACE = 331,
-        TOKEN_CSV_FORMAT = 332,
-        TOKEN_ALWAYS_SEND = 333,
-        TOKEN_RECORD_TYPES = 334,
-        TOKEN_ENCAPSULATE = 335,
-        TOKEN_ARRAY = 336,
-        TOKEN_SHARED_NETWORKS = 337,
-        TOKEN_POOLS = 338,
-        TOKEN_POOL = 339,
-        TOKEN_USER_CONTEXT = 340,
-        TOKEN_COMMENT = 341,
-        TOKEN_SUBNET = 342,
-        TOKEN_INTERFACE = 343,
-        TOKEN_ID = 344,
-        TOKEN_RESERVATION_MODE = 345,
-        TOKEN_DISABLED = 346,
-        TOKEN_OUT_OF_POOL = 347,
-        TOKEN_GLOBAL = 348,
-        TOKEN_ALL = 349,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 350,
-        TOKEN_CLIENT_CLASSES = 351,
-        TOKEN_REQUIRE_CLIENT_CLASSES = 352,
-        TOKEN_TEST = 353,
-        TOKEN_ONLY_IF_REQUIRED = 354,
-        TOKEN_CLIENT_CLASS = 355,
-        TOKEN_RESERVATIONS = 356,
-        TOKEN_DUID = 357,
-        TOKEN_HW_ADDRESS = 358,
-        TOKEN_CIRCUIT_ID = 359,
-        TOKEN_CLIENT_ID = 360,
-        TOKEN_HOSTNAME = 361,
-        TOKEN_FLEX_ID = 362,
-        TOKEN_RELAY = 363,
-        TOKEN_IP_ADDRESS = 364,
-        TOKEN_IP_ADDRESSES = 365,
-        TOKEN_HOOKS_LIBRARIES = 366,
-        TOKEN_LIBRARY = 367,
-        TOKEN_PARAMETERS = 368,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 369,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 370,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 371,
-        TOKEN_HOLD_RECLAIMED_TIME = 372,
-        TOKEN_MAX_RECLAIM_LEASES = 373,
-        TOKEN_MAX_RECLAIM_TIME = 374,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 375,
-        TOKEN_DHCP4O6_PORT = 376,
-        TOKEN_CONTROL_SOCKET = 377,
-        TOKEN_SOCKET_TYPE = 378,
-        TOKEN_SOCKET_NAME = 379,
-        TOKEN_DHCP_QUEUE_CONTROL = 380,
-        TOKEN_DHCP_DDNS = 381,
-        TOKEN_ENABLE_UPDATES = 382,
-        TOKEN_QUALIFYING_SUFFIX = 383,
-        TOKEN_SERVER_IP = 384,
-        TOKEN_SERVER_PORT = 385,
-        TOKEN_SENDER_IP = 386,
-        TOKEN_SENDER_PORT = 387,
-        TOKEN_MAX_QUEUE_SIZE = 388,
-        TOKEN_NCR_PROTOCOL = 389,
-        TOKEN_NCR_FORMAT = 390,
-        TOKEN_OVERRIDE_NO_UPDATE = 391,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 392,
-        TOKEN_REPLACE_CLIENT_NAME = 393,
-        TOKEN_GENERATED_PREFIX = 394,
-        TOKEN_TCP = 395,
-        TOKEN_JSON = 396,
-        TOKEN_WHEN_PRESENT = 397,
-        TOKEN_NEVER = 398,
-        TOKEN_ALWAYS = 399,
-        TOKEN_WHEN_NOT_PRESENT = 400,
-        TOKEN_HOSTNAME_CHAR_SET = 401,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 402,
-        TOKEN_LOGGING = 403,
-        TOKEN_LOGGERS = 404,
-        TOKEN_OUTPUT_OPTIONS = 405,
-        TOKEN_OUTPUT = 406,
-        TOKEN_DEBUGLEVEL = 407,
-        TOKEN_SEVERITY = 408,
-        TOKEN_FLUSH = 409,
-        TOKEN_MAXSIZE = 410,
-        TOKEN_MAXVER = 411,
-        TOKEN_PATTERN = 412,
-        TOKEN_DHCP6 = 413,
-        TOKEN_DHCPDDNS = 414,
-        TOKEN_CONTROL_AGENT = 415,
-        TOKEN_TOPLEVEL_JSON = 416,
-        TOKEN_TOPLEVEL_DHCP4 = 417,
-        TOKEN_SUB_DHCP4 = 418,
-        TOKEN_SUB_INTERFACES4 = 419,
-        TOKEN_SUB_SUBNET4 = 420,
-        TOKEN_SUB_POOL4 = 421,
-        TOKEN_SUB_RESERVATION = 422,
-        TOKEN_SUB_OPTION_DEFS = 423,
-        TOKEN_SUB_OPTION_DEF = 424,
-        TOKEN_SUB_OPTION_DATA = 425,
-        TOKEN_SUB_HOOKS_LIBRARY = 426,
-        TOKEN_SUB_DHCP_DDNS = 427,
-        TOKEN_SUB_LOGGING = 428,
-        TOKEN_SUB_CONFIG_CONTROL = 429,
-        TOKEN_STRING = 430,
-        TOKEN_INTEGER = 431,
-        TOKEN_FLOAT = 432,
-        TOKEN_BOOLEAN = 433
+        TOKEN_ALLOW_STATIC_LEASES = 317,
+        TOKEN_CALCULATE_TEE_TIMES = 318,
+        TOKEN_T1_PERCENT = 319,
+        TOKEN_T2_PERCENT = 320,
+        TOKEN_DECLINE_PROBATION_PERIOD = 321,
+        TOKEN_SERVER_TAG = 322,
+        TOKEN_SUBNET4 = 323,
+        TOKEN_SUBNET_4O6_INTERFACE = 324,
+        TOKEN_SUBNET_4O6_INTERFACE_ID = 325,
+        TOKEN_SUBNET_4O6_SUBNET = 326,
+        TOKEN_OPTION_DEF = 327,
+        TOKEN_OPTION_DATA = 328,
+        TOKEN_NAME = 329,
+        TOKEN_DATA = 330,
+        TOKEN_CODE = 331,
+        TOKEN_SPACE = 332,
+        TOKEN_CSV_FORMAT = 333,
+        TOKEN_ALWAYS_SEND = 334,
+        TOKEN_RECORD_TYPES = 335,
+        TOKEN_ENCAPSULATE = 336,
+        TOKEN_ARRAY = 337,
+        TOKEN_SHARED_NETWORKS = 338,
+        TOKEN_POOLS = 339,
+        TOKEN_POOL = 340,
+        TOKEN_USER_CONTEXT = 341,
+        TOKEN_COMMENT = 342,
+        TOKEN_SUBNET = 343,
+        TOKEN_INTERFACE = 344,
+        TOKEN_ID = 345,
+        TOKEN_RESERVATION_MODE = 346,
+        TOKEN_DISABLED = 347,
+        TOKEN_OUT_OF_POOL = 348,
+        TOKEN_GLOBAL = 349,
+        TOKEN_ALL = 350,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 351,
+        TOKEN_CLIENT_CLASSES = 352,
+        TOKEN_REQUIRE_CLIENT_CLASSES = 353,
+        TOKEN_TEST = 354,
+        TOKEN_ONLY_IF_REQUIRED = 355,
+        TOKEN_CLIENT_CLASS = 356,
+        TOKEN_RESERVATIONS = 357,
+        TOKEN_DUID = 358,
+        TOKEN_HW_ADDRESS = 359,
+        TOKEN_CIRCUIT_ID = 360,
+        TOKEN_CLIENT_ID = 361,
+        TOKEN_HOSTNAME = 362,
+        TOKEN_FLEX_ID = 363,
+        TOKEN_RELAY = 364,
+        TOKEN_IP_ADDRESS = 365,
+        TOKEN_IP_ADDRESSES = 366,
+        TOKEN_HOOKS_LIBRARIES = 367,
+        TOKEN_LIBRARY = 368,
+        TOKEN_PARAMETERS = 369,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 370,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 371,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 372,
+        TOKEN_HOLD_RECLAIMED_TIME = 373,
+        TOKEN_MAX_RECLAIM_LEASES = 374,
+        TOKEN_MAX_RECLAIM_TIME = 375,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 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_TCP = 396,
+        TOKEN_JSON = 397,
+        TOKEN_WHEN_PRESENT = 398,
+        TOKEN_NEVER = 399,
+        TOKEN_ALWAYS = 400,
+        TOKEN_WHEN_NOT_PRESENT = 401,
+        TOKEN_HOSTNAME_CHAR_SET = 402,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 403,
+        TOKEN_LOGGING = 404,
+        TOKEN_LOGGERS = 405,
+        TOKEN_OUTPUT_OPTIONS = 406,
+        TOKEN_OUTPUT = 407,
+        TOKEN_DEBUGLEVEL = 408,
+        TOKEN_SEVERITY = 409,
+        TOKEN_FLUSH = 410,
+        TOKEN_MAXSIZE = 411,
+        TOKEN_MAXVER = 412,
+        TOKEN_PATTERN = 413,
+        TOKEN_DHCP6 = 414,
+        TOKEN_DHCPDDNS = 415,
+        TOKEN_CONTROL_AGENT = 416,
+        TOKEN_TOPLEVEL_JSON = 417,
+        TOKEN_TOPLEVEL_DHCP4 = 418,
+        TOKEN_SUB_DHCP4 = 419,
+        TOKEN_SUB_INTERFACES4 = 420,
+        TOKEN_SUB_SUBNET4 = 421,
+        TOKEN_SUB_POOL4 = 422,
+        TOKEN_SUB_RESERVATION = 423,
+        TOKEN_SUB_OPTION_DEFS = 424,
+        TOKEN_SUB_OPTION_DEF = 425,
+        TOKEN_SUB_OPTION_DATA = 426,
+        TOKEN_SUB_HOOKS_LIBRARY = 427,
+        TOKEN_SUB_DHCP_DDNS = 428,
+        TOKEN_SUB_LOGGING = 429,
+        TOKEN_SUB_CONFIG_CONTROL = 430,
+        TOKEN_STRING = 431,
+        TOKEN_INTEGER = 432,
+        TOKEN_FLOAT = 433,
+        TOKEN_BOOLEAN = 434
       };
     };
 
@@ -770,30 +771,30 @@ namespace isc { namespace dhcp {
         // Type destructor.
 switch (yytype)
     {
-      case 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -876,13 +877,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_MAX_ROW_ERRORS || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_ALLOW_STATIC_LEASES || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_ALLOW_STATIC_LEASES || 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_PATTERN || 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
@@ -1874,6 +1875,21 @@ switch (yytype)
         return symbol_type (token::TOKEN_REBIND_TIMER, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_ALLOW_STATIC_LEASES (location_type l)
+      {
+        return symbol_type (token::TOKEN_ALLOW_STATIC_LEASES, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_ALLOW_STATIC_LEASES (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_ALLOW_STATIC_LEASES, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -3935,12 +3951,12 @@ switch (yytype)
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1054,     ///< Last index in yytable_.
-      yynnts_ = 386,  ///< Number of nonterminal symbols.
+      yylast_ = 1062,     ///< Last index in yytable_.
+      yynnts_ = 387,  ///< Number of nonterminal symbols.
       yyfinal_ = 30, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 179  ///< Number of tokens.
+      yyntokens_ = 180  ///< Number of tokens.
     };
 
 
@@ -4001,9 +4017,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
+     175,   176,   177,   178,   179
     };
-    const unsigned user_token_number_max_ = 433;
+    const unsigned user_token_number_max_ = 434;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -4024,30 +4040,30 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -4066,30 +4082,30 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -4115,30 +4131,30 @@ switch (yytype)
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 195: // value
-      case 199: // map_value
-      case 245: // socket_type
-      case 248: // outbound_interface_value
-      case 270: // db_type
-      case 357: // hr_mode
-      case 506: // ncr_protocol_value
-      case 513: // replace_client_name_value
+      case 196: // value
+      case 200: // map_value
+      case 247: // socket_type
+      case 250: // outbound_interface_value
+      case 272: // db_type
+      case 359: // hr_mode
+      case 508: // ncr_protocol_value
+      case 515: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 178: // "boolean"
+      case 179: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 177: // "floating point"
+      case 178: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 176: // "integer"
+      case 177: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 175: // "constant string"
+      case 176: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -4223,14 +4239,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,   430,   431,   432,   433
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434
     };
     return token_type (yytoken_number_[type]);
   }
 
 #line 14 "dhcp4_parser.yy"
 } } // isc::dhcp
-#line 4234 "dhcp4_parser.h"
+#line 4250 "dhcp4_parser.h"
 
 
 
index f6736dd8a6ba5923c72a3943514fdf465cef259e..32f9226587e6b59260a9154c7f709d8a26935291 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191237
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Locations for Bison parsers in C++
index ab5e530ad47cb3a9d8339b6fd4ed5ebbd96d465f..4ff92e590f72282edf80208dc0d2c3d0fc4d973f 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191237
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index a0044e9db352133091740a69b39b5b4a2deecaaa..fa39e968f956319405cee734223fb9ce2ad0612e 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191237
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index 761fb4c1841e39d3f9418be30fdd35bdfef2196a..2062523fa1fdbcdcfe41d34b211743fc4e912ca1 100644 (file)
@@ -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 192
-#define YY_END_OF_BUFFER 193
+#define YY_NUM_RULES 193
+#define YY_END_OF_BUFFER 194
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -700,21 +700,21 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static const flex_int16_t yy_accept[1631] =
+static const flex_int16_t yy_accept[1648] =
     {   0,
-      185,  185,    0,    0,    0,    0,    0,    0,    0,    0,
-      193,  191,   10,   11,  191,    1,  185,  182,  185,  185,
-      191,  184,  183,  191,  191,  191,  191,  191,  178,  179,
-      191,  191,  191,  180,  181,    5,    5,    5,  191,  191,
-      191,   10,   11,    0,    0,  174,    0,    0,    0,    0,
+      186,  186,    0,    0,    0,    0,    0,    0,    0,    0,
+      194,  192,   10,   11,  192,    1,  186,  183,  186,  186,
+      192,  185,  184,  192,  192,  192,  192,  192,  179,  180,
+      192,  192,  192,  181,  182,    5,    5,    5,  192,  192,
+      192,   10,   11,    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,    1,  185,
-      185,    0,  184,  185,    3,    2,    6,    0,  185,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    1,  186,
+      186,    0,  185,  186,    3,    2,    6,    0,  186,    0,
         0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
 
-      175,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  177,    0,    0,    0,
+      176,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  178,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -722,165 +722,167 @@ static const flex_int16_t yy_accept[1631] =
         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,  152,    0,    0,  153,    0,    0,
+        0,    0,    0,    0,  153,    0,    0,  154,    0,    0,
 
-        0,    0,    0,    0,    0,    0,  176,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  177,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
+        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,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  190,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  191,
 
-      188,    0,  187,  186,    0,    0,    0,    0,    0,    0,
-        0,  151,    0,    0,   28,    0,   27,    0,    0,  110,
+      189,    0,  188,  187,    0,    0,    0,    0,    0,    0,
+        0,  152,    0,    0,   28,    0,   27,    0,    0,  111,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       55,    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,    0,
-        0,  107,    0,    0,    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,    0,    0,    0,    0,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  189,  186,    0,    0,
-        0,    0,    0,    0,    0,    0,   29,    0,    0,   31,
-        0,    0,    0,    0,    0,    0,  111,    0,    0,    0,
-        0,    0,    0,    0,   88,    0,    0,    0,    0,    0,
-        0,    0,  136,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   58,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  190,  187,    0,
+        0,    0,    0,    0,    0,    0,    0,   29,    0,    0,
+       31,    0,    0,    0,    0,    0,    0,    0,  112,    0,
+        0,    0,    0,    0,    0,    0,   89,    0,    0,    0,
+        0,    0,    0,    0,  137,    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,   87,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,   88,    0,    0,    0,    0,    0,    0,    0,    0,
 
-        0,    0,    0,   97,    0,   59,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   98,    0,   59,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  131,  156,   51,    0,
-       56,    0,    0,    0,    0,    0,    0,  171,   37,    0,
-       34,    0,   33,    0,    0,    0,  144,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  132,  157,
+       51,    0,   56,    0,    0,    0,    0,    0,    0,  172,
+       37,    0,   34,    0,   33,    0,    0,    0,    0,  145,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      122,    0,    0,    0,    0,    0,    0,    0,    0,  155,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  123,    0,    0,    0,    0,    0,    0,
+        0,    0,  156,    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,    0,   90,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  145,    0,    0,    0,
+        0,    0,    0,   53,    0,    0,   32,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   91,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      140,    0,    0,    0,    0,    0,    0,    0,    0,    7,
-       35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  141,    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,    0,    0,
-        0,    0,  109,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  110,    0,    0,    0,
 
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  124,    0,    0,    0,    0,
-        0,    0,    0,    0,  121,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   92,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  125,
+        0,    0,    0,    0,    0,    0,    0,    0,  122,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   93,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
-        0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
+        0,    0,  101,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,  119,    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,    0,    0,    0,    0,    0,    0,  139,    0,    0,
 
+        0,    0,  140,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  150,  120,
+        0,    0,    0,    0,    0,    0,    0,  124,   52,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  149,  119,    0,    0,    0,    0,    0,
-        0,    0,  123,   52,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  125,    0,   60,    0,    0,
+      126,    0,   60,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   83,    0,    0,
-        0,    0,    0,    0,    0,    0,  172,    0,    0,    0,
+        0,    0,   84,    0,    0,    0,    0,    0,    0,    0,
+        0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
 
-        0,    0,    0,    0,    0,    0,    0,    0,  138,    0,
-        0,    0,    0,    0,    0,   63,    0,    0,    0,    0,
+        0,    0,    0,  107,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,  139,    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,    0,    0,    0,    0,    0,   57,   91,    0,
-        0,    0,  135,    0,    0,    0,   50,    0,    0,    0,
+        0,    0,    0,   57,   92,    0,    0,    0,  136,    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,  127,    0,    0,    0,    0,
+        0,  128,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  170,    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,  171,    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,    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,  150,   14,    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,  151,   14,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,  141,    0,  126,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  142,    0,  127,    0,    0,    0,    0,    0,
 
-        0,    0,    0,  137,  154,    0,   40,    0,  146,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   20,    0,    0,    0,   85,    0,    0,    0,
-        0,  148,   54,    0,   93,    0,    0,    0,    0,    0,
+        0,  138,  155,    0,   40,    0,  147,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   82,    0,    0,    0,  116,  117,    0,    0,    0,
-        0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
-        0,    0,   64,    0,    0,    0,    0,    0,    0,    0,
-        0,  143,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  112,    0,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   86,
-      108,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   79,    0,    0,    0,    0,    0,    0,   17,
-        0,   15,    0,  168,  167,    0,   69,    0,    0,    0,
-        0,    0,   30,    0,  130,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  165,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  102,    0,
-      134,   43,    0,   61,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,   19,    0,    0,    0,    0,    0,    0,
-      104,   80,    0,    0,  142,    0,    0,    0,    0,    0,
+       20,    0,    0,    0,   86,    0,    0,    0,    0,  149,
+       54,    0,   94,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   83,
+        0,    0,    0,  117,  118,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   90,    0,    0,    0,    0,    0,
+        0,   64,    0,    0,    0,    0,    0,    0,    0,    0,
+      144,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
-      133,    0,    0,    0,    0,    0,   98,    0,  173,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       96,    0,    0,  157,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  113,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   87,  109,
         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,  128,   47,    0,    0,    0,
-       70,  166,   38,    0,    0,   12,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   45,    0,    0,   44,    0,
-       18,    0,    0,    0,   72,    0,    0,    0,    0,  120,
+        0,   79,    0,    0,    0,    0,    0,    0,   17,    0,
+       15,    0,  169,  168,    0,   69,    0,    0,    0,    0,
+        0,   30,    0,    0,  131,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,  166,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,  103,    0,
+      135,   43,    0,   61,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   19,    0,    0,    0,    0,    0,    0,
 
+      105,   80,    0,    0,  143,    0,    0,    0,    0,    0,
+      134,    0,    0,    0,    0,    0,   99,    0,  174,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   76,    0,    0,    0,    0,   62,
-        0,    0,   94,    0,    0,    0,    0,    0,  147,    0,
-        0,    0,   46,    0,    0,    0,    0,    0,    0,    0,
+        0,   97,    0,    0,  158,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       67,    0,    0,    0,   84,    0,   36,    0,   48,    0,
-        0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
-        0,    0,    0,  163,    0,    0,    0,    0,  132,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  105,    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,  169,    0,    0,    0,    0,    0,    0,
-        0,  162,    0,   78,    0,   77,    0,   21,   73,    0,
-        0,    0,    0,    0,   65,    0,  115,    0,    0,   95,
-        0,    0,  161,    0,    0,    0,   71,    0,    0,    0,
-       66,    0,   23,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,   42,    0,
+        0,   68,    0,    0,    0,    0,    0,  129,   47,    0,
+        0,    0,   70,  167,   38,    0,    0,   12,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,   45,    0,    0,
+
+       44,    0,   18,    0,    0,    0,   72,    0,    0,    0,
+        0,  121,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   76,    0,    0,    0,
+        0,    0,   62,    0,    0,   95,    0,    0,    0,    0,
+        0,  148,    0,    0,    0,   46,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   67,    0,    0,    0,   85,    0,   36,
+        0,    0,   48,    0,    0,    0,    0,    0,    0,   24,
+        0,    0,    0,    0,    0,    0,    0,  164,    0,    0,
+        0,    0,  133,    0,    0,    0,    0,    0,    0,    0,
+
+        0,    0,  106,    0,    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,    0,  170,
+        0,    0,    0,    0,    0,    0,    0,  163,    0,   78,
+        0,   77,    0,   21,   73,    0,    0,    0,    0,    0,
+       65,    0,   81,  116,    0,    0,   96,    0,    0,  162,
+        0,    0,    0,   71,    0,    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,   49,    0,    0,    0,    0,    0,   75,   74,   22,
 
-        0,  113,  129,    0,    0,    0,    0,    0,    0,  159,
-      164,   81,    0,    0,    0,    0,  158,    0,    0,   26,
-        0,    0,    0,    0,    0,  114,    0,    0,  160,    0
+        0,    0,    0,    0,    0,    0,    0,    0,   49,    0,
+        0,    0,    0,    0,   75,   74,   22,    0,  114,  130,
+        0,    0,    0,    0,    0,    0,  160,  165,   82,    0,
+        0,    0,    0,  159,    0,    0,   26,    0,    0,    0,
+        0,    0,  115,    0,    0,  161,    0
     } ;
 
 static const YY_CHAR yy_ec[256] =
@@ -927,394 +929,396 @@ static const YY_CHAR yy_meta[74] =
         3,    3,    3
     } ;
 
-static const flex_int16_t yy_base[1643] =
+static const flex_int16_t yy_base[1660] =
     {   0,
         0,   72,   21,   31,   43,   51,   54,   60,   91,   99,
-     2032, 2033,   34, 2028,  145,    0,  207, 2033,  214,  221,
-       13,  228, 2033, 2008,  118,   25,    2,    6, 2033, 2033,
-       73,   11,   17, 2033, 2033, 2033,  104, 2016, 1969,    0,
-     2006,  108, 2023,   24,  256, 2033,   67, 1965, 1971, 1991,
+     2049, 2050,   34, 2045,  145,    0,  207, 2050,  214,  221,
+       13,  228, 2050, 2025,  118,   25,    2,    6, 2050, 2050,
+       73,   11,   17, 2050, 2050, 2050,  104, 2033, 1986,    0,
+     2023,  108, 2040,   24,  256, 2050,   67, 1982, 1988, 2008,
        84,   75,  189,   88,  226,   91,   89,  284,  196,  206,
-      219,  191,  210,  197,   60,  242, 1972,  278,  287,  298,
-      294,  313, 1955,  212,  318,  350,  328, 1974,    0,  379,
-      400,  417,  424,  429, 2033,    0, 2033,  393,  407,  269,
-      299,  301,  406,  418,  304, 2033, 1971, 2012, 2033,  293,
-
-     2033,  442,  312, 1958, 1968, 2009,  421,   10,  345, 1962,
-      319,  338,  336,  369,  248, 2007,    0,  495,  413, 1949,
-     1954, 1956,  332, 1952, 1941, 1942,  410, 1958, 1941, 1950,
-      418,  340,  226, 1944, 1942,  405, 1931, 1989,  448, 1934,
-     1987, 1927, 1950, 1947, 1947, 1941,  411, 1934, 1932, 1926,
-     1931, 1925,  421, 1936, 1929, 1920, 1919, 1933,  408, 1971,
-     1918,  427, 1930, 1933, 1917,  491, 1918,  433, 1930, 1927,
-     1928, 1926, 1961, 1960,  434, 1906, 1911, 1907, 1899, 1916,
-     1908,    0,  440,  446,  434,  450,  468,  467, 1907, 2033,
-        0,  483, 1898, 1901, 2033,  490,  465, 2033, 1955, 1908,
-
-      501, 1953,  506, 1952,  498, 1951, 2033,  544, 1950,  517,
-     1909, 1906, 1903, 1902, 1893,  514, 1944, 1938, 1902, 1881,
-     1889, 1895, 1883, 1897, 1893, 1894, 1894, 1889, 1881, 1883,
-     1867, 1871, 1884, 1886, 1883, 1875, 1865, 1868, 1882, 2033,
-     1868, 1876, 1879, 1860, 1859, 1911, 1858, 1868, 1908,  516,
-     1867, 1906, 1854, 1865, 1903,  537, 1907, 1842, 1857,  358,
-     1847, 1863, 1844, 1842, 1845, 1841, 1847, 1838, 1837, 1850,
-     1843, 1845, 1849, 1848, 1842,  220, 1849, 1844, 1836, 1826,
-     1841, 1836, 1840,  480, 1838, 1824, 1830, 1837, 1825, 1822,
-     1821,  525, 1816, 1830, 1829, 1832, 1814, 1822,  539, 2033,
-
-     2033,  547, 2033, 2033, 1809,    0,  534, 1811,  559,  555,
-     1867, 2033, 1818,  546, 2033, 1865, 2033, 1859,  596, 2033,
-      545, 1799, 1802, 1808, 1860, 1815, 1810, 1813, 1808,   80,
-     2033, 1810,  590, 1808, 1805, 1806,  323, 1810, 1850, 1798,
-     1793, 1790, 1786, 1788, 1839, 1796, 1785, 1801, 1835, 1781,
-      592, 1794, 1794, 1777, 1778, 1791, 1778, 1788, 1783, 1790,
-     1785, 1770,  564, 1779, 1782, 1777,  322, 1773, 1823,  555,
-      565, 2033, 1817, 1767, 1766, 1759, 1761, 1765, 1754, 1771,
-     1760, 1765,  543, 1812, 1765,  534, 1762, 1766, 1764, 1753,
-     1753, 1765,  570, 1740, 1741, 1762,  580, 1744, 1741, 1755,
-
-     1758, 1753, 1739, 1751, 1750, 1749, 1748, 1747, 1746,  476,
-     1789, 1788, 1787, 1729,  626, 1742, 2033, 2033, 1741,    0,
-      572, 1729, 1782, 1781, 1737, 1779, 2033, 1725, 1777, 2033,
-      606,  654,  599, 1776, 1724, 1715, 2033, 1720, 1726, 1729,
-     1712, 1727, 1714, 1713, 2033, 1723, 1714, 1711, 1723,  590,
-     1708, 1710, 2033, 1716, 1701, 1703, 1714, 1712, 1707,  642,
-     1714, 1702, 1695, 1746, 2033, 1693, 1709, 1743, 1747, 1703,
-     1697, 1699, 1700, 1702, 1736, 1687, 1682, 1681, 1683, 1679,
-     1675,  599, 1694, 1668, 1675, 1680, 1673, 1689, 1728, 2033,
-     1673, 1669, 1725, 1676, 1670, 1677, 1662, 1672, 1675, 1664,
-
-     1660, 1662, 1657, 2033, 1714, 2033, 1656, 1655, 1648, 1665,
-     1704, 1649, 1654, 1663, 1657, 1651, 1660,  644, 1697, 1659,
-     1642, 1642, 1637, 1633, 1639, 1644, 1637, 1645, 1649, 1632,
-     1690, 1630, 1631, 1630, 1642, 1631, 2033, 2033, 2033, 1631,
-     2033, 1641, 1677, 1637,    0, 1680, 1628, 2033, 2033, 1625,
-     2033, 1631, 2033,  624,  623,  655, 2033, 1636, 1670, 1615,
-     1668, 1613, 1612, 1611, 1618, 1611, 1619, 1622, 1621, 1605,
-     1620, 1602, 1649, 1616, 1654, 1598, 1600, 1612, 1612, 1611,
-     2033, 1596, 1593, 1651, 1606, 1598, 1604, 1595, 1603, 2033,
-     1588, 1599, 1603, 1585, 1599,  467, 1581, 1575, 1580, 1577,
-
-     1592, 1591, 1592, 1571, 1581, 1587, 1630, 1585, 1584, 1576,
-     2033, 1569, 1571, 2033, 1579, 1618, 1617,   16, 1578, 1561,
-     1562, 1565, 1566, 1557, 2033, 1571, 1557,  677, 1549, 1570,
-     1567, 1559, 1604, 1556, 1563, 1601, 2033, 1547, 1545, 1559,
-     1543, 1557, 1560, 1594, 1593, 1592, 1591, 1536, 1589, 1588,
-     2033,  656, 1550, 1549, 1546, 1546, 1544, 1533, 1535, 2033,
-     2033, 1580, 1526, 1583,  627,  591, 1524, 1522, 1538, 1579,
-      642, 1573, 1533, 1571, 1570, 1522, 1516, 1511, 1566, 1526,
-     1516, 1524, 1562, 1523, 1505, 1513, 1515, 1519, 1556, 1560,
-     1515, 1514, 2033, 1515, 1508, 1497, 1510, 1513, 1508, 1503,
-
-     1508, 1505, 1504, 1500, 1506, 1501, 1544, 1543, 1485, 1496,
-     1480,  542, 1534, 1490, 1537, 2033, 1536, 1490, 1486, 1481,
-     1473, 1526, 1487, 1474, 2033, 1474,   91,  245,  356,  476,
-      553,  648,  596,  623, 2033,  618,  612,  631,  627,  641,
-      624,  630,  685,  649,  633,  633,  652,  696,  697,  698,
-      645,  663,  658,  665,  660,  645,  657,  658, 2033,  712,
-      670,  672,  663,  676,  679,  670,  676,  685,  726, 2033,
-      722,  698,  685,  686,  680, 2033,  678,  693,  690,  676,
-      683,  682,  680,  699,  696,  697,  687,  700,  686,  685,
-      691,  747,  693,  709,  692,  746,  701, 2033,  711,  711,
-
-      704,  716,  714,  759,  701,  703,  718,  719,  707,  766,
-      723,  709,  712, 2033, 2033,  728,  727,  728,  733,  721,
-      731,  733, 2033, 2033,  733,  735,  739,  726,  724,  742,
-      729,  729,  780,  730,  788, 2033,  789, 2033,  734,  748,
-      748,  793,  741,  743,  737,  797,  750,  740,  741,  737,
-      747,  751,  762,  746,  764,  759,  761,  754,  756,  757,
-      769,  759,  774,  815,  772,  777,  754, 2033,  766,  767,
-      781,  771,  818,  766,  781,  781, 2033,  800,  808,  777,
-      826,  792,  780,  775,  776,  788,  795,  784,  785,  781,
-      799,  791,  786,  839,  845,  802,  793, 2033,  805,  790,
-
-      806,  796,  809,  803,  851,  817,  801,  802, 2033,  818,
-      821,  804,  806,  864,  807, 2033,  824,  827,  807,  826,
-      814,  867,  825,  821,  818,  871,  820,  873,  820,  838,
-      837,  823,  838,  830,  826,  844,  829, 2033, 2033,  837,
-      884,  837, 2033,  845,  840,  893, 2033,  842,  847,  891,
-      843,  844,  856,  850,  854,  852,  850,  861,  906,  850,
-      855,  909,  910,  854,  866, 2033,  854,  862,  860,  857,
-      858,  867,  879,  863,  877,  879,  880,  896,  901,  883,
-      869,  871,  871,  891,  890,  881,  870,  887,  894,  937,
-      879,  939,  886,  890, 2033,  937,  886,  904,  901,  941,
-
-      890,  908,  909,  895,  903,  912,  894,  909,  916,  958,
-      959, 2033,  912,  961,  962,  913,  923,  925,  909,  911,
-      911,  918,  927,  915,  922,  917,  924,  976,  923,  922,
-      939,  980,  930,  934,  932,  930,  985,  986,  936,  988,
-      984,  942, 2033,  947,  940,  931,  950,  944,  939,  949,
-      946,  951,  947,  959, 2033,  943,  945, 2033, 2033,  945,
-     1005,  945,  964,  965, 1010, 1011,  964,  949,  970,  952,
-      957,  964,  997,  988, 1020,  977,  964,  966,  983,  978,
-      982, 1027,  975,  979, 2033,  976, 2033,  990,  988,  991,
-      975,  976, 1036,  989,  994,  981,  992,  985,  991,  987,
-
-     1005, 1006, 1008, 2033, 2033, 1006, 2033, 1008, 2033,  993,
-      994, 1013, 1003, 1055, 1012, 1009, 1053, 1017, 1006, 1013,
-     1018, 1015, 2033, 1013, 1005, 1066, 2033, 1067, 1014, 1021,
-     1065, 2033, 2033, 1023, 2033, 1014, 1014, 1017, 1031, 1036,
-     1019, 1030, 1079, 1036, 1037, 1038, 1078, 1034, 1085, 1038,
-     1087, 2033, 1034, 1089, 1090, 2033, 2033, 1030, 1092, 1051,
-     1035, 1047, 1037, 1067, 1098, 2033, 1055, 1100, 1047, 1062,
-     1098, 1050, 2033, 1046, 1062, 1050, 1068, 1056, 1056, 1111,
-     1068, 2033, 1070, 1069, 1071, 1064, 1073, 1074, 1071, 1061,
-     1064, 1064, 1123, 1070, 1126, 1127, 1070, 1129, 2033, 1087,
-
-     1066, 1081, 1074, 1077, 1090, 1094, 1093, 1139, 1093, 2033,
-     2033, 1089, 1099, 1085, 1101, 1087, 1148, 1149, 1093, 1103,
-     1152, 1109, 2033, 1101, 1101, 1103, 1105, 1158, 1101, 2033,
-     1102, 2033, 1104, 2033, 2033, 1118, 2033, 1112, 1164, 1113,
-     1166, 1146, 2033, 1163, 2033, 1111, 1119, 1113, 1110, 1113,
-     1116, 1116, 1112, 1118, 1178, 1126, 2033, 1122, 1181, 1134,
-     1125, 1140, 1140, 1143, 1143, 1140, 1184, 1147, 2033, 1139,
-     2033, 2033, 1149, 2033, 1189, 1151, 1152, 1149, 1193, 1141,
-     1156, 1196, 1158, 2033, 1146, 1146, 1152, 1151, 1163, 1163,
-     2033, 2033, 1204, 1151, 2033, 1168, 1153, 1153, 1155, 1161,
-
-     2033, 1216, 1158, 1168, 1219, 1180, 2033, 1177, 2033, 1196,
-     1164, 1224, 1225, 1182, 1187, 1169, 1229, 1230, 1231, 1184,
-     2033, 1174, 1234, 2033, 1172, 1231, 1194, 1190, 1234, 1182,
-     1187, 1185, 1244, 1200, 1246, 1196, 1248, 1210, 1199, 1193,
-     1253, 1195, 1204, 1197, 1213, 1258, 1200, 1217, 1202, 1217,
-     1201, 1259, 1260, 1261, 1208, 1263, 1226, 2033, 1226, 1213,
-     2033, 1224, 1273, 1244, 1226, 2033, 2033, 1218, 1229, 1278,
-     2033, 2033, 2033, 1225, 1223, 2033, 1281, 1227, 1278, 1221,
-     1226, 1287, 1235, 1245, 1246, 2033, 1291, 1244, 2033, 1245,
-     2033, 1236, 1251, 1239, 2033, 1249, 1250, 1251, 1257, 2033,
-
-     1296, 1264, 1257, 1258, 1267, 1249, 1255, 1257, 1311, 1270,
-     1269, 1261, 1315, 1264, 2033, 1317, 1266, 1319, 1261, 2033,
-     1268, 1268, 2033, 1272, 1267, 1266, 1326, 1279, 2033, 1323,
-     1274, 1271, 2033, 1285, 1287, 1289, 1334, 1287, 1284, 1292,
-     1286, 1339, 1280, 1282, 1290, 1280, 1296, 1297, 1291, 1307,
-     2033, 1297, 1349, 1308, 2033, 1346, 2033, 1308, 2033, 1348,
-     1349, 1304, 1312, 1303, 1310, 2033, 1307, 1312, 1310, 1362,
-     1363, 1320, 1307, 2033, 1322, 1323, 1324, 1325, 2033, 1315,
-     1327, 1328, 1373, 1315, 1323, 1317, 1325, 1338, 2033, 1315,
-     1338, 1323, 1323, 1328, 1384, 1332, 1344, 1335, 1344, 1346,
-
-     1350, 2033, 2033, 1332, 1392, 1335, 1394, 1336, 1396, 1354,
-     1398, 1399, 2033, 1395, 1357, 1354, 1359, 1346, 1405, 1342,
-     1407, 1360, 1365, 2033, 1410, 1367, 1368, 1413, 1370, 1373,
-     1368, 2033, 1417, 2033, 1370, 2033, 1379, 2033, 2033, 1361,
-     1421, 1368, 1423, 1366, 2033, 1383, 2033, 1374, 1370, 2033,
-     1370, 1372, 2033, 1377, 1387, 1380, 2033, 1381, 1375, 1387,
-     2033, 1383, 2033, 1393, 1387, 1395, 1392, 1383, 1437, 1384,
-     1392, 1401, 1402, 1403, 1396, 1391, 1392, 1407, 1452, 1399,
-     1406, 1393, 1408, 1413, 1458, 1459, 1460, 1417, 1462, 1463,
-     1406, 2033, 1422, 1413, 1427, 1423, 1416, 2033, 2033, 2033,
-
-     1470, 2033, 2033, 1471, 1472, 1427, 1426, 1427, 1417, 2033,
-     2033, 2033, 1477, 1419, 1435, 1480, 2033, 1476, 1425, 2033,
-     1424, 1426, 1437, 1486, 1435, 2033, 1444, 1489, 2033, 2033,
-     1495, 1500, 1505, 1510, 1515, 1520, 1525, 1528, 1502, 1507,
-     1509, 1522
+      219,  191,  210,  197,   60,  242, 1989,  278,  287,  298,
+      294,  313, 1972,  212,  318,  350,  328, 1991,    0,  379,
+      400,  417,  424,  429, 2050,    0, 2050,  393,  407,  269,
+      299,  301,  406,  418,  304, 2050, 1988, 2029, 2050,  293,
+
+     2050,  442,  312, 1975, 1985, 2026,  421,   10,  345, 1979,
+      319,  338,  336,  369,  248, 2024,    0,  495,  413, 1966,
+     1971, 1973,  332, 1969, 1958, 1959,  410, 1975, 1958, 1967,
+      418,  340,  226, 1961, 1959,  405, 1948, 2006,  448, 1951,
+     2004, 1944, 1967, 1964, 1964, 1958,  411, 1951, 1949, 1943,
+     1948, 1942,  421, 1953, 1946, 1937, 1936, 1950,  408, 1988,
+     1935,  427, 1947, 1950, 1934,  491, 1935,  433, 1947, 1944,
+     1945, 1943, 1978, 1977,  434, 1923, 1928, 1924, 1916, 1933,
+     1925,    0,  440,  446,  434,  450,  468,  467, 1924, 2050,
+        0,  483, 1915, 1918, 2050,  490,  465, 2050, 1972, 1925,
+
+      501, 1970,  506, 1969,  498, 1968, 2050,  544,  274,  517,
+     1927, 1924, 1921, 1920, 1911,  514, 1962, 1956, 1920, 1899,
+     1907, 1913, 1901, 1915, 1911, 1912, 1912, 1907, 1899, 1901,
+     1885, 1889, 1902, 1904, 1901, 1893, 1883, 1886, 1900, 2050,
+     1886, 1894, 1897, 1878, 1877, 1929, 1876, 1886, 1926,  516,
+     1885, 1924, 1872, 1883, 1921,  537, 1925, 1860, 1875,  358,
+     1865, 1881, 1862, 1860, 1863, 1859, 1865, 1856, 1855, 1868,
+     1861, 1863, 1867, 1866, 1860,  474, 1867, 1862, 1854, 1844,
+     1859, 1854, 1858,  482, 1856, 1842, 1848, 1855, 1843, 1840,
+     1839,  570, 1834, 1848, 1847, 1850, 1832, 1840,  539, 2050,
+
+     2050,  547, 2050, 2050, 1827,    0,  534, 1829,  581,  550,
+     1885, 2050, 1836,  547, 2050, 1883, 2050, 1877,  597, 2050,
+     1819,  547, 1816, 1819, 1825, 1877, 1832, 1827, 1830, 1825,
+       80, 2050, 1827,  590, 1825, 1822, 1823,  372, 1827, 1867,
+     1815, 1810, 1807, 1803, 1805, 1856, 1813, 1802, 1818, 1852,
+     1798,  597, 1811, 1811, 1794, 1795, 1808, 1795, 1805, 1800,
+     1807, 1802, 1787,  565, 1796, 1799, 1794,  568, 1790, 1840,
+      555,  567, 2050, 1834, 1784, 1783, 1776, 1778, 1782, 1771,
+     1788, 1777, 1782,  541, 1829, 1782,  583, 1779, 1783, 1781,
+     1770, 1770, 1782,  575, 1757, 1758, 1779,  586, 1761, 1758,
+
+     1772, 1775, 1770, 1756, 1768, 1767, 1766, 1765, 1764, 1763,
+      476, 1806, 1805, 1804, 1746,  643, 1759, 2050, 2050, 1758,
+        0,  595, 1746, 1799, 1798, 1754, 1796, 2050, 1742, 1794,
+     2050,  607,  655, 1788,  621, 1792, 1740, 1731, 2050, 1736,
+     1742, 1745, 1728, 1743, 1730, 1729, 2050, 1739, 1730, 1727,
+     1739,  593, 1724, 1726, 2050, 1732, 1717, 1719, 1730, 1728,
+     1723,  647, 1730, 1718, 1711, 1762, 2050, 1709, 1725, 1759,
+     1763, 1719, 1713, 1715, 1716, 1718, 1752, 1703, 1698, 1697,
+     1699, 1695, 1691,  559, 1710, 1684, 1691, 1696, 1689, 1705,
+     1744, 2050, 1689, 1685, 1741, 1692, 1686, 1693, 1678, 1688,
+
+     1691, 1680, 1676, 1678, 1673, 2050, 1730, 2050, 1672, 1671,
+     1664, 1681, 1720, 1665, 1670, 1679, 1673, 1667, 1676,  654,
+     1713, 1675, 1658, 1658, 1653, 1649, 1655, 1660, 1653, 1661,
+     1665, 1648, 1706, 1646, 1647, 1646, 1658, 1647, 2050, 2050,
+     2050, 1647, 2050, 1657, 1693, 1653,    0, 1696, 1644, 2050,
+     2050, 1641, 2050, 1647, 2050,  617,  627, 1634,  678, 2050,
+     1651, 1685, 1630, 1683, 1628, 1627, 1626, 1633, 1626, 1634,
+     1637, 1636, 1620, 1635, 1617, 1664, 1631, 1669, 1613, 1615,
+     1627, 1627, 1626, 2050, 1611, 1608, 1666, 1621, 1613, 1619,
+     1610, 1618, 2050, 1603, 1614, 1618, 1600, 1614,  467, 1596,
+
+     1590, 1595, 1592, 1607, 1606, 1607, 1586, 1596, 1602, 1645,
+     1600, 1599, 1591, 2050, 1584, 1586, 2050, 1594, 1633, 1632,
+       16, 1593, 1576, 1577, 1580, 1581, 1572, 2050, 1586, 1572,
+      680, 1564, 1585, 1582, 1574, 1619, 1571, 1578, 1616, 2050,
+     1562, 1560, 1574, 1558, 1572, 1575, 1609, 1608, 1607, 1606,
+     1551, 1604, 1603, 2050,  645, 1565, 1564, 1561, 1561, 1559,
+     1548, 1550, 2050, 2050, 1595, 1541, 1598,  627,  625, 1538,
+     1538, 1536, 1552, 1593,  645, 1587, 1547, 1585, 1584, 1536,
+     1530, 1525, 1580, 1540, 1530, 1538, 1576, 1537, 1519, 1527,
+     1529, 1533, 1570, 1574, 1529, 1528, 2050, 1529, 1522, 1511,
+
+     1524, 1527, 1522, 1517, 1522, 1519, 1518, 1514, 1520, 1515,
+     1558, 1557, 1499, 1510, 1494,  638, 1548, 1504, 1551, 2050,
+     1550, 1504, 1500, 1495, 1487, 1540,   92,  216, 2050,  235,
+      290,  355,  433,  578,  521,  580,  554,  617, 2050,  617,
+      612,  633,  628,  649,  629,  635,  696,  660,  644,  644,
+      657,  701,  702,  703,  650,  668,  663,  670,  666,  649,
+      662,  663, 2050,  717,  675,  676,  668,  682,  684,  675,
+      681,  690,  731, 2050,  727,  703,  694,  691,  692,  686,
+     2050,  684,  699,  696,  682,  689,  688,  686,  705,  702,
+      703,  693,  706,  692,  691,  697,  753,  699,  715,  698,
+
+      752,  707, 2050,  717,  717,  711,  722,  720,  765,  707,
+      709,  724,  725,  713,  772,  729,  715,  718, 2050, 2050,
+      734,  733,  734,  739,  727,  737,  739, 2050, 2050,  739,
+      741,  745,  732,  730,  748,  735,  735,  786,  736,  794,
+     2050,  795, 2050,  740,  754,  754,  799,  747,  749,  743,
+      803,  756,  746,  747,  743,  753,  757,  768,  752,  770,
+      765,  767,  760,  762,  763,  775,  765,  780,  821,  778,
+      783,  760, 2050,  772,  773,  787,  777,  824,  772,  787,
+      787, 2050,  806,  814,  777,  784,  833,  799,  787,  782,
+      783,  795,  802,  791,  792,  788,  806,  798,  793,  846,
+
+      852,  809,  800, 2050,  812,  797,  813,  804,  816,  811,
+      858,  824,  808,  809, 2050,  825,  828,  811,  813,  871,
+      814, 2050,  831,  834,  814,  833,  821,  874,  832,  828,
+      825,  878,  827,  880,  827,  845,  844,  830,  845,  837,
+      833,  851,  836, 2050, 2050,  844,  891,  844, 2050,  852,
+      847,  900, 2050,  849,  854,  898,  850,  851,  863,  857,
+      861,  859,  857,  868,  913,  857,  862,  916,  917,  861,
+      873, 2050,  861,  869,  867,  864,  865,  874,  886,  870,
+      884,  886,  887,  903,  908,  885,  892,  877,  879,  879,
+      899,  898,  889,  878,  895,  902,  945,  887,  947,  894,
+
+      898, 2050,  945,  894,  912,  909,  949,  898,  916,  917,
+      903,  911,  922,  902,  917,  924,  966,  967, 2050,  920,
+      969,  970,  921,  931,  933,  917,  919,  919,  926,  935,
+      923,  930,  925,  932,  984,  931,  930,  947,  988,  938,
+      942,  940,  938,  993,  994,  944,  996,  992,  950, 2050,
+      955,  948,  939,  958,  952,  947,  957,  954,  959,  955,
+      967, 2050,  951,  953, 2050, 2050,  953, 1013,  953,  972,
+      973, 1018, 1019,  972,  957,  978,  960,  965,  972, 1005,
+      996,  986, 1029,  986,  973,  975,  992,  987,  991, 1036,
+      984,  988, 2050,  985, 2050,  999,  997, 1000,  984,  985,
+
+     1045,  998, 1003,  990, 1002,  994, 1000,  996, 1014, 1016,
+     1017, 2050, 2050, 1015, 2050, 1017, 2050, 1002, 1003, 1022,
+     1012, 1064, 1021, 1018, 1062, 1026, 1015, 1022, 1027, 1024,
+     2050, 1022, 1014, 1075, 2050, 1076, 1023, 1030, 1074, 2050,
+     2050, 1032, 2050, 1023, 1023, 1026, 1040, 1045, 1028, 1039,
+     1088, 1045, 1046, 1047, 1087, 1043, 1094, 1047, 1096, 2050,
+     1043, 1098, 1099, 2050, 2050, 1039, 1101, 1060, 1044, 1056,
+     1046, 1076, 1107, 1103, 2050, 1065, 1110, 1057, 1072, 1108,
+     1060, 2050, 1056, 1072, 1060, 1078, 1066, 1066, 1121, 1078,
+     2050, 1080, 1079, 1081, 1074, 1083, 1084, 1081, 1071, 1074,
+
+     1074, 1133, 1081, 1136, 1137, 1080, 1139, 2050, 1097, 1076,
+     1091, 1084, 1087, 1101, 1104, 1103, 1149, 1103, 2050, 2050,
+     1099, 1109, 1095, 1111, 1097, 1158, 1159, 1103, 1113, 1162,
+     1119, 2050, 1111, 1111, 1113, 1115, 1168, 1111, 2050, 1112,
+     2050, 1114, 2050, 2050, 1128, 2050, 1122, 1174, 1123, 1176,
+     1156, 2050, 1127, 1174, 2050, 1122, 1130, 1124, 1121, 1124,
+     1127, 1127, 1123, 1129, 1189, 1137, 2050, 1133, 1192, 1145,
+     1136, 1151, 1151, 1154, 1154, 1151, 1196, 1158, 2050, 1150,
+     2050, 2050, 1160, 2050, 1200, 1162, 1163, 1160, 1204, 1152,
+     1167, 1207, 1169, 2050, 1157, 1157, 1163, 1162, 1174, 1174,
+
+     2050, 2050, 1215, 1162, 2050, 1179, 1164, 1164, 1166, 1172,
+     2050, 1227, 1169, 1179, 1230, 1191, 2050, 1188, 2050, 1207,
+     1190, 1176, 1236, 1237, 1194, 1199, 1181, 1241, 1242, 1243,
+     1196, 2050, 1186, 1246, 2050, 1184, 1243, 1206, 1202, 1246,
+     1194, 1199, 1197, 1256, 1212, 1258, 1208, 1261, 1222, 1211,
+     1205, 1265, 1207, 1216, 1209, 1225, 1270, 1212, 1229, 1214,
+     1229, 1213, 1271, 1272, 1273, 1220, 1275, 1238, 2050, 1238,
+     1225, 2050, 1236, 1285, 1256, 1246, 1240, 2050, 2050, 1231,
+     1242, 1291, 2050, 2050, 2050, 1238, 1236, 2050, 1294, 1240,
+     1291, 1234, 1239, 1300, 1248, 1258, 1259, 2050, 1304, 1257,
+
+     2050, 1258, 2050, 1249, 1264, 1252, 2050, 1262, 1263, 1264,
+     1270, 2050, 1311, 1277, 1270, 1271, 1280, 1262, 1268, 1270,
+     1324, 1283, 1282, 1274, 1328, 1277, 2050, 1330, 1273, 1280,
+     1333, 1275, 2050, 1282, 1282, 2050, 1286, 1281, 1280, 1340,
+     1293, 2050, 1337, 1288, 1285, 2050, 1299, 1301, 1303, 1348,
+     1301, 1298, 1306, 1300, 1353, 1294, 1296, 1304, 1294, 1310,
+     1311, 1305, 1321, 2050, 1311, 1363, 1322, 2050, 1360, 2050,
+     1322, 1323, 2050, 1363, 1364, 1319, 1327, 1318, 1325, 2050,
+     1322, 1327, 1325, 1377, 1378, 1335, 1322, 2050, 1337, 1338,
+     1339, 1340, 2050, 1330, 1342, 1343, 1388, 1330, 1338, 1332,
+
+     1340, 1353, 2050, 1330, 1353, 1338, 1339, 1339, 1344, 1400,
+     1348, 1360, 1351, 1360, 1362, 1366, 2050, 2050, 1348, 1408,
+     1351, 1410, 1352, 1412, 1370, 1414, 1415, 2050, 1411, 1373,
+     1370, 1375, 1362, 1421, 1358, 1423, 1424, 1377, 1382, 2050,
+     1427, 1384, 1385, 1430, 1387, 1390, 1385, 2050, 1434, 2050,
+     1387, 2050, 1396, 2050, 2050, 1378, 1438, 1385, 1440, 1383,
+     2050, 1400, 2050, 2050, 1391, 1387, 2050, 1387, 1389, 2050,
+     1394, 1404, 1397, 2050, 1398, 1392, 1404, 2050, 1400, 2050,
+     1410, 1404, 1412, 1409, 1400, 1454, 1401, 1409, 1418, 1419,
+     1420, 1413, 1408, 1409, 1424, 1469, 1416, 1423, 1410, 1425,
+
+     1430, 1475, 1476, 1477, 1434, 1479, 1480, 1423, 2050, 1439,
+     1430, 1444, 1440, 1433, 2050, 2050, 2050, 1487, 2050, 2050,
+     1488, 1489, 1444, 1443, 1444, 1434, 2050, 2050, 2050, 1494,
+     1436, 1452, 1497, 2050, 1493, 1442, 2050, 1441, 1443, 1454,
+     1503, 1452, 2050, 1461, 1506, 2050, 2050, 1512, 1517, 1522,
+     1527, 1532, 1537, 1542, 1545, 1519, 1524, 1526, 1539
     } ;
 
-static const flex_int16_t yy_def[1643] =
+static const flex_int16_t yy_def[1660] =
     {   0,
-     1631, 1631, 1632, 1632, 1631, 1631, 1631, 1631, 1631, 1631,
-     1630, 1630, 1630, 1630, 1630, 1633, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1634,
-     1630, 1630, 1630, 1635,   15, 1630,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1636,   45,   45,
+     1648, 1648, 1649, 1649, 1648, 1648, 1648, 1648, 1648, 1648,
+     1647, 1647, 1647, 1647, 1647, 1650, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1651,
+     1647, 1647, 1647, 1652,   15, 1647,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1653,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1633, 1630,
-     1630, 1630, 1630, 1630, 1630, 1637, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1634, 1630, 1635,
+       45,   45,   45,   45,   45,   45,   45,   45, 1650, 1647,
+     1647, 1647, 1647, 1647, 1647, 1654, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1651, 1647, 1652,
 
-     1630, 1630,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1638,   45, 1636,   45,   45,
+     1647, 1647,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1655,   45, 1653,   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, 1637, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1639,   45,   45,   45, 1630,   45,   45, 1630,   45,   45,
+       45, 1654, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1656,   45,   45,   45, 1647,   45,   45, 1647,   45,   45,
 
-       45,   45,   45,   45,   45, 1638, 1630, 1636,   45,   45,
+       45,   45,   45,   45,   45, 1655, 1647, 1653,   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, 1630,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
        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, 1630, 1630,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647, 1647,
 
-     1630, 1630, 1630, 1630, 1630, 1640,   45,   45,   45,   45,
-       45, 1630,   45,   45, 1630,   45, 1630,   45, 1636, 1630,
+     1647, 1647, 1647, 1647, 1647, 1657,   45,   45,   45,   45,
+       45, 1647,   45,   45, 1647,   45, 1647,   45, 1653, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   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, 1630,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1647,   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, 1630, 1630, 1630, 1641,
-       45,   45,   45,   45,   45,   45, 1630,   45,   45, 1630,
-       45, 1636,   45,   45,   45,   45, 1630,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1647, 1647, 1647,
+     1658,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+     1647,   45, 1653,   45,   45,   45,   45,   45, 1647,   45,
+       45,   45,   45,   45,   45,   45, 1647,   45,   45,   45,
+       45,   45,   45,   45, 1647,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1647,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1630,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45,   45,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1630,   45, 1630,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45, 1647,   45, 1647,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1630, 1630, 1630,   45,
-     1630,   45,   45, 1630, 1642,   45,   45, 1630, 1630,   45,
-     1630,   45, 1630,   45,   45,   45, 1630,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647, 1647,
+     1647,   45, 1647,   45,   45, 1647, 1659,   45,   45, 1647,
+     1647,   45, 1647,   45, 1647,   45,   45,   45,   45, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45,   45,   45,   45,   45,   45,   45, 1630,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45,   45,   45,   45,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45, 1630,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1630,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45, 1647,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45,   45,   45,   45,   45,   45,   45, 1630,
-     1630,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45,   45,   45,   45,
+       45,   45, 1647, 1647,   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, 1630,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1647,   45,   45,   45,
 
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1630,   45,
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1630,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1630,   45,   45,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45,   45,   45,   45,
+     1647,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647, 1647,
+       45,   45,   45,   45,   45,   45,   45, 1647, 1647,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1630, 1630,   45,   45,   45,   45,   45,
-       45,   45, 1630, 1630,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1630,   45, 1630,   45,   45,
+     1647,   45, 1647,   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, 1630,   45,   45,
-       45,   45,   45,   45,   45,   45, 1630,   45,   45,   45,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   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, 1630,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45, 1630,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1647,   45,   45,   45,   45,   45,
+       45, 1647,   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, 1630, 1630,   45,
-       45,   45, 1630,   45,   45,   45, 1630,   45,   45,   45,
+       45,   45,   45, 1647, 1647,   45,   45,   45, 1647,   45,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
+       45, 1647,   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, 1630,   45,   45,   45,   45,   45,
 
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1630,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45, 1630, 1630,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45, 1647, 1647,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45, 1630,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45, 1647,   45, 1647,   45,   45,   45,   45,   45,
 
-       45,   45,   45, 1630, 1630,   45, 1630,   45, 1630,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45, 1630,   45,   45,   45,
-       45, 1630, 1630,   45, 1630,   45,   45,   45,   45,   45,
+       45, 1647, 1647,   45, 1647,   45, 1647,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1630,   45,   45,   45, 1630, 1630,   45,   45,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
-       45, 1630,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1630,   45,
-
-       45,   45,   45,   45,   45,   45,   45,   45,   45, 1630,
-     1630,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45, 1630,
-       45, 1630,   45, 1630, 1630,   45, 1630,   45,   45,   45,
-       45,   45, 1630,   45, 1630,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45, 1630,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1630,   45,
-     1630, 1630,   45, 1630,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1630,   45,   45,   45,   45,   45,   45,
-     1630, 1630,   45,   45, 1630,   45,   45,   45,   45,   45,
-
-     1630,   45,   45,   45,   45,   45, 1630,   45, 1630,   45,
+     1647,   45,   45,   45, 1647,   45,   45,   45,   45, 1647,
+     1647,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
+       45,   45,   45, 1647, 1647,   45,   45,   45,   45,   45,
+       45,   45,   45,   45, 1647,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45,   45,   45,   45,   45,   45,   45,
+     1647,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45, 1630,   45,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45,   45,   45,   45,   45, 1647,   45,
+     1647,   45, 1647, 1647,   45, 1647,   45,   45,   45,   45,
+       45, 1647,   45,   45, 1647,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1647,   45,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
+     1647, 1647,   45, 1647,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45,   45,   45,   45,
+
+     1647, 1647,   45,   45, 1647,   45,   45,   45,   45,   45,
+     1647,   45,   45,   45,   45,   45, 1647,   45, 1647,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
+       45, 1647,   45,   45, 1647,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45,   45,   45,   45, 1630,   45,   45,
-     1630,   45,   45,   45,   45, 1630, 1630,   45,   45,   45,
-     1630, 1630, 1630,   45,   45, 1630,   45,   45,   45,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45, 1630,   45,
-     1630,   45,   45,   45, 1630,   45,   45,   45,   45, 1630,
-
-       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45,   45, 1630,   45,   45,   45,   45, 1630,
-       45,   45, 1630,   45,   45,   45,   45,   45, 1630,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-     1630,   45,   45,   45, 1630,   45, 1630,   45, 1630,   45,
-       45,   45,   45,   45,   45, 1630,   45,   45,   45,   45,
-       45,   45,   45, 1630,   45,   45,   45,   45, 1630,   45,
-       45,   45,   45,   45,   45,   45,   45,   45, 1630,   45,
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
+       45, 1647,   45,   45,   45,   45,   45, 1647, 1647,   45,
+       45,   45, 1647, 1647, 1647,   45,   45, 1647,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+
+     1647,   45, 1647,   45,   45,   45, 1647,   45,   45,   45,
+       45, 1647,   45,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1647,   45,   45,   45,
+       45,   45, 1647,   45,   45, 1647,   45,   45,   45,   45,
+       45, 1647,   45,   45,   45, 1647,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-
-       45, 1630, 1630,   45,   45,   45,   45,   45,   45,   45,
-       45,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
-       45,   45,   45, 1630,   45,   45,   45,   45,   45,   45,
-       45, 1630,   45, 1630,   45, 1630,   45, 1630, 1630,   45,
-       45,   45,   45,   45, 1630,   45, 1630,   45,   45, 1630,
-       45,   45, 1630,   45,   45,   45, 1630,   45,   45,   45,
-     1630,   45, 1630,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45, 1647,   45,   45,   45, 1647,   45, 1647,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45, 1647,
+       45,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+
+       45,   45, 1647,   45,   45,   45,   45,   45,   45,   45,
+       45,   45,   45,   45,   45,   45, 1647, 1647,   45,   45,
+       45,   45,   45,   45,   45,   45,   45, 1647,   45,   45,
+       45,   45,   45,   45,   45,   45,   45,   45,   45, 1647,
+       45,   45,   45,   45,   45,   45,   45, 1647,   45, 1647,
+       45, 1647,   45, 1647, 1647,   45,   45,   45,   45,   45,
+     1647,   45, 1647, 1647,   45,   45, 1647,   45,   45, 1647,
+       45,   45,   45, 1647,   45,   45,   45, 1647,   45, 1647,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-       45, 1630,   45,   45,   45,   45,   45, 1630, 1630, 1630,
 
-       45, 1630, 1630,   45,   45,   45,   45,   45,   45, 1630,
-     1630, 1630,   45,   45,   45,   45, 1630,   45,   45, 1630,
-       45,   45,   45,   45,   45, 1630,   45,   45, 1630,    0,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630
+       45,   45,   45,   45,   45,   45,   45,   45, 1647,   45,
+       45,   45,   45,   45, 1647, 1647, 1647,   45, 1647, 1647,
+       45,   45,   45,   45,   45,   45, 1647, 1647, 1647,   45,
+       45,   45,   45, 1647,   45,   45, 1647,   45,   45,   45,
+       45,   45, 1647,   45,   45, 1647,    0, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647
     } ;
 
-static const flex_int16_t yy_nxt[2107] =
+static const flex_int16_t yy_nxt[2124] =
     {   0,
-     1630,   13,   14,   13, 1630,   15,   16, 1630,   17,   18,
+     1647,   13,   14,   13, 1647,   15,   16, 1647,   17,   18,
        19,   20,   21,   22,   22,   22,   22,   22,   23,   24,
-       85,  725,   37,   14,   37,   86,   25,   26,   38,  101,
-     1630,   27,   37,   14,   37,   42,   28,   42,   38,   91,
+       85,  729,   37,   14,   37,   86,   25,   26,   38,  101,
+     1647,   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,
-      726,   13,   14,   13,   33,   40,  102,   91,   92,  197,
+      730,   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,  442,   88,  138,   88,  107,
+       41,   25,   31,  103,  137,  444,   88,  138,   88,  107,
        32,   89,   89,   89,   89,   89,   33,  111,  108,  114,
-      833,  115,  443,   34,   35,   44,   44,   44,   45,   45,
+      835,  115,  445,   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,
@@ -1328,123 +1332,123 @@ static const flex_int16_t yy_nxt[2107] =
        82,   83,   83,   83,   83,   83,  134,   82,  110,  131,
       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,  392,   82,   45,  393,
+       82,  128,  129,  112,  205,  231,  836,   82,   45,  320,
        45,   45,   45,   45,  130,   45,   45,   45,  113,  117,
-      139,  232,   45,   45,  834,   45,   45,  205,  101,  183,
+      139,  232,   45,   45,  837,   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,  183,   45,  143,  144,  184,
-       45,  145,  147,  450,   45,  102,  148,  146,  185,  451,
+       45,  145,  147,  321,   45,  102,  148,  146,  185,  838,
       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,  375,  188,
+      158,  160,  161,  167,  173,  174,  185,  168,  376,  188,
       169,  202,  162,  203,  112,  163,  114,  170,  171,  192,
-      214,  199,  487,  172,  113,  201,  179,  229,  488,  215,
+      214,  199,  452,  172,  113,  201,  179,  229,  453,  215,
       216,  180,   84,   84,   84,   84,   84,  175,  202,  176,
 
-      230,  203,  204,  177,  835,   82,   89,   89,   89,   89,
-       89,   80,  113,   81,   81,   81,   81,   81,  376,  178,
+      230,  203,  204,  177,  839,   82,   89,   89,   89,   89,
+       89,   80,  113,   81,   81,   81,   81,   81,  377,  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,
       301,  235,  186,  226,  236,  227,  222,  202,  237,  209,
       262,  263,  264,   82,  187,  299,  300,  196,   82,  250,
-      210,  836,  228,  301,  100,  299,  267,  256,  100,  268,
+      210,  840,  228,  301,  100,  299,  267,  256,  100,  268,
       269,  283,  100,  301,  292,  284,  311,  241,  300,  285,
 
       100,  273,  300,  299,  100,  307,  100,  191,  208,  208,
-      208,  208,  208,  302,  704,  705,  304,  208,  208,  208,
-      208,  208,  208,  311,  303,  310,  363,  314,  307,  318,
-      315,  535,  316,  401,  536,  410,  274,  275,  276,  307,
-      208,  208,  208,  208,  208,  208,  402,  277,  504,  278,
+      208,  208,  208,  302,  708,  709,  304,  208,  208,  208,
+      208,  208,  208,  311,  303,  310,  364,  314,  307,  318,
+      393,  537,  316,  394,  538,  402,  274,  275,  276,  307,
+      208,  208,  208,  208,  208,  208,  506,  277,  403,  278,
       314,  279,  280,  310,  281,  316,  318,  319,  319,  319,
-      319,  319,  321,  314,  327,  417,  319,  319,  319,  319,
-      319,  319,  328,  417,  421,  423,  424,  329,  330,  364,
-      429,  426,  365,  508,  425,  421,  371,  509,  417,  319,
-      319,  319,  319,  319,  319,  445,  418,  465,  819,  429,
-
-      446,  820,  466,  421,  426,  491,  505,  546,  429,  432,
-      432,  432,  432,  432,  433,  492,  837,  772,  432,  432,
-      432,  432,  432,  432,  480,  481,  482,  493,  516,  521,
-      483,  541,  517,  522,  546,  546,  542,  554,  571,  555,
-      772,  432,  432,  432,  432,  432,  432,  581,  603,  637,
-      467,  572,  582,  838,  638,  468,  665,  666,  604,  839,
-      661,  759,  556,  771,  554,  667,  555,   45,   45,   45,
-       45,   45,  840,  760,  841,  842,   45,   45,   45,   45,
-       45,   45,  735,  665,  843,  666,  844,  736,  845,  777,
-      778,  771,  779,  846,  847,  848,  849,  850,  851,   45,
-
-       45,   45,   45,   45,   45,  852,  853,  854,  855,  856,
-      857,  858,  860,  861,  864,  865,  866,  868,  859,  869,
-      862,  870,  867,  871,  863,  872,  737,  873,  874,  875,
-      876,  877,  878,  879,  880,  881,  882,  883,  884,  885,
+      319,  319,  322,  314,  328,  418,  319,  319,  319,  319,
+      319,  319,  329,  418,  422,  315,  427,  330,  331,  365,
+      411,  430,  366,  841,  842,  843,  372,  422,  418,  319,
+      319,  319,  319,  319,  319,  447,  419,  424,  425,  427,
+
+      448,  430,  467,  422,  507,  493,  426,  468,  606,  430,
+      433,  433,  433,  433,  433,  494,  435,  844,  607,  433,
+      433,  433,  433,  433,  433,  482,  483,  484,  489,  495,
+      548,  485,  510,  518,  490,  523,  511,  519,  556,  524,
+      557,  574,  433,  433,  433,  433,  433,  433,  543,  668,
+      763,  776,  584,  544,  575,  469,  548,  585,  548,  640,
+      470,  669,  764,  775,  641,  556,  845,  557,   45,   45,
+       45,   45,   45,  846,  776,  847,  668,   45,   45,   45,
+       45,   45,   45,  664,  559,  739,  848,  849,  671,  669,
+      740,  775,  782,  783,  824,  784,  850,  825,  851,  852,
+
+       45,   45,   45,   45,   45,   45,  853,  854,  855,  856,
+      857,  858,  859,  860,  861,  862,  863,  865,  869,  866,
+      870,  871,  873,  864,  874,  875,  867,  872,  876,  741,
+      868,  877,  878,  879,  880,  881,  882,  883,  884,  885,
       886,  887,  888,  889,  890,  891,  892,  893,  894,  895,
       896,  897,  898,  899,  900,  901,  902,  903,  904,  905,
-      906,  879,  907,  908,  909,  911,  912,  913,  914,  910,
-      915,  916,  917,  918,  919,  920,  921,  922,  923,  924,
-      925,  926,  927,  928,  929,  930,  931,  932,  934,  935,
-      936,  933,  937,  938,  939,  940,  941,  942,  943,  944,
+      906,  907,  908,  909,  910,  911,  884,  912,  913,  914,
+      915,  917,  918,  919,  920,  916,  921,  922,  923,  924,
+      925,  926,  927,  928,  929,  930,  931,  932,  933,  934,
+      935,  936,  937,  938,  940,  941,  942,  939,  943,  944,
 
       945,  946,  947,  948,  949,  950,  951,  952,  953,  954,
-      955,  956,  957,  958,  959,  960,  961,  962,  964,  965,
-      966,  967,  968,  969,  970,  971,  972,  973,  974,  963,
-      975,  976,  977,  978,  979,  980,  981,  982,  983,  984,
+      955,  956,  957,  958,  959,  960,  961,  962,  963,  964,
+      965,  966,  967,  968,  970,  971,  972,  973,  974,  975,
+      976,  977,  978,  979,  980,  969,  981,  982,  983,  984,
       985,  986,  987,  988,  989,  990,  991,  992,  993,  994,
-      995,  996,  997,  998,  999, 1000, 1001,  979, 1002, 1003,
-      978, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
-     1015, 1016, 1017, 1018, 1013, 1019, 1020, 1021, 1022, 1023,
-     1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
-     1034, 1035, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
+      995,  996,  997,  998,  999, 1000, 1001, 1002, 1003, 1004,
+     1005, 1006, 1007,  985, 1008, 1009,  984, 1010, 1011, 1012,
+     1013, 1014, 1015, 1016, 1017, 1018, 1019, 1022, 1023, 1024,
+     1025, 1020, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
+     1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1044,
 
-     1045, 1046, 1036, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
+     1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1043,
      1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
-     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1014, 1071, 1072,
-     1073, 1075, 1074, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
+     1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
+     1074, 1075, 1076, 1077, 1021, 1078, 1079, 1080, 1082, 1081,
      1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
-     1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1073, 1074,
-     1101, 1102, 1103, 1104, 1105, 1106, 1107, 1109, 1111, 1112,
-     1113, 1108, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121,
+     1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
+     1103, 1104, 1105, 1106, 1107, 1080, 1081, 1108, 1109, 1110,
+     1111, 1112, 1113, 1114, 1115, 1117, 1119, 1120, 1121, 1116,
      1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
      1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141,
 
      1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
-     1152, 1110, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160,
+     1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1118,
      1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
      1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
-     1181, 1182, 1183, 1184, 1185, 1186, 1164, 1187, 1188, 1189,
-     1190, 1191, 1165, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
-     1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
+     1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
+     1191, 1192, 1193, 1194, 1172, 1195, 1196, 1197, 1198, 1199,
+     1173, 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, 1226, 1227, 1229,
-     1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
+     1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
+     1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1238, 1239,
 
-     1240, 1241, 1242, 1243, 1244, 1245, 1247, 1248, 1249, 1250,
-     1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
+     1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
+     1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258, 1259, 1260,
      1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
-     1242, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1280,
-     1281, 1228, 1282, 1283, 1284, 1278, 1285, 1286, 1287, 1246,
-     1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
+     1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1251,
+     1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1289, 1290,
+     1237, 1291, 1292, 1293, 1294, 1288, 1295, 1296, 1297, 1256,
      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, 1310, 1333, 1334, 1335, 1336,
+     1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
 
-     1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
+     1338, 1339, 1340, 1341, 1342, 1320, 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,
-     1388, 1389, 1390, 1391, 1364, 1392, 1393, 1394, 1395, 1396,
-     1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
-     1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1417,
-     1416, 1418, 1419, 1420, 1421, 1422, 1423, 1425, 1426, 1427,
-     1428, 1424, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
-
-     1437, 1438, 1439, 1440, 1441, 1442, 1443, 1387, 1416, 1444,
-     1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
-     1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
+     1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
+     1397, 1398, 1400, 1401, 1402, 1375, 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, 1429, 1428, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
+
+     1438, 1439, 1440, 1441, 1437, 1442, 1443, 1444, 1445, 1446,
+     1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1399,
+     1428, 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,
@@ -1462,95 +1466,97 @@ static const flex_int16_t yy_nxt[2107] =
      1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604,
      1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
      1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
-     1625, 1626, 1627, 1628, 1629,   12,   12,   12,   12,   12,
-
-       36,   36,   36,   36,   36,   79,  306,   79,   79,   79,
-       98,  420,   98,  545,   98,  100,  100,  100,  100,  100,
-      116,  116,  116,  116,  116,  182,  100,  182,  182,  182,
-      206,  206,  206,  832,  831,  830,  829,  828,  827,  826,
-      825,  824,  823,  822,  821,  818,  817,  816,  815,  814,
-      813,  812,  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,  776,  775,  774,  773,  770,  769,
-      768,  767,  766,  765,  764,  763,  762,  761,  758,  757,
-
-      756,  755,  754,  753,  752,  751,  750,  749,  748,  747,
-      746,  745,  744,  743,  742,  741,  740,  739,  738,  734,
-      733,  732,  731,  730,  729,  728,  727,  724,  723,  722,
-      721,  720,  719,  718,  717,  716,  715,  714,  713,  712,
-      711,  710,  709,  708,  707,  706,  703,  702,  701,  700,
-      699,  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,  664,  663,  662,  661,  660,  659,  658,  657,
-      656,  655,  654,  653,  652,  651,  650,  649,  648,  647,
-
-      646,  645,  644,  643,  642,  641,  640,  639,  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,
-      602,  601,  600,  599,  598,  597,  596,  595,  594,  593,
-      592,  591,  590,  589,  588,  587,  586,  585,  584,  583,
-      580,  579,  578,  577,  576,  575,  574,  573,  570,  569,
-      568,  567,  566,  565,  564,  563,  562,  561,  560,  559,
-      558,  557,  553,  552,  551,  550,  549,  548,  547,  544,
-      543,  540,  539,  538,  537,  534,  533,  532,  531,  530,
-
-      529,  528,  527,  526,  525,  524,  523,  520,  519,  518,
-      515,  514,  513,  512,  511,  510,  507,  506,  503,  502,
-      501,  500,  499,  498,  497,  496,  495,  494,  490,  489,
-      486,  485,  484,  479,  478,  477,  476,  475,  474,  473,
-      472,  471,  470,  469,  464,  463,  462,  461,  460,  459,
-      458,  457,  456,  455,  454,  453,  452,  449,  448,  447,
-      444,  441,  440,  439,  438,  437,  436,  435,  434,  431,
-      430,  428,  427,  422,  419,  416,  415,  414,  413,  412,
-      411,  409,  408,  407,  406,  405,  404,  403,  400,  399,
-      398,  397,  396,  395,  394,  391,  390,  389,  388,  387,
-
-      386,  385,  384,  383,  382,  381,  380,  379,  378,  377,
-      374,  373,  372,  370,  369,  368,  367,  366,  362,  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,
-      326,  325,  324,  323,  322,  320,  207,  317,  315,  313,
-      312,  309,  308,  305,  298,  297,  296,  295,  294,  293,
-      291,  290,  289,  288,  287,  286,  282,  272,  271,  270,
-      266,  265,  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, 1630,   11, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-
-     1630, 1630, 1630, 1630, 1630, 1630
+     1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634,
+
+     1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644,
+     1645, 1646,   12,   12,   12,   12,   12,   36,   36,   36,
+       36,   36,   79,  306,   79,   79,   79,   98,  421,   98,
+      547,   98,  100,  100,  100,  100,  100,  116,  116,  116,
+      116,  116,  182,  100,  182,  182,  182,  206,  206,  206,
+      834,  833,  832,  831,  830,  829,  828,  827,  826,  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,  797,  796,  795,  794,  793,
+      792,  791,  790,  789,  788,  787,  786,  785,  781,  780,
+
+      779,  778,  777,  774,  773,  772,  771,  770,  769,  768,
+      767,  766,  765,  762,  761,  760,  759,  758,  757,  756,
+      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
+      745,  744,  743,  742,  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,  707,  706,  705,  704,  703,  702,  701,  700,  699,
+      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,  670,  667,  666,
+
+      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
+      655,  654,  653,  652,  651,  650,  649,  648,  647,  646,
+      645,  644,  643,  642,  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,  605,  604,  603,  602,
+      601,  600,  599,  598,  597,  596,  595,  594,  593,  592,
+      591,  590,  589,  588,  587,  586,  583,  582,  581,  580,
+      579,  578,  577,  576,  573,  572,  571,  570,  569,  568,
+      567,  566,  565,  564,  563,  562,  561,  560,  558,  555,
+
+      554,  553,  552,  551,  550,  549,  546,  545,  542,  541,
+      540,  539,  536,  535,  534,  533,  532,  531,  530,  529,
+      528,  527,  526,  525,  522,  521,  520,  517,  516,  515,
+      514,  513,  512,  509,  508,  505,  504,  503,  502,  501,
+      500,  499,  498,  497,  496,  492,  491,  488,  487,  486,
+      481,  480,  479,  478,  477,  476,  475,  474,  473,  472,
+      471,  466,  465,  464,  463,  462,  461,  460,  459,  458,
+      457,  456,  455,  454,  451,  450,  449,  446,  443,  442,
+      441,  440,  439,  438,  437,  436,  434,  432,  431,  429,
+      428,  423,  420,  417,  416,  415,  414,  413,  412,  410,
+
+      409,  408,  407,  406,  405,  404,  401,  400,  399,  398,
+      397,  396,  395,  392,  391,  390,  389,  388,  387,  386,
+      385,  384,  383,  382,  381,  380,  379,  378,  375,  374,
+      373,  371,  370,  369,  368,  367,  363,  362,  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,  327,  326,
+      325,  324,  323,  207,  317,  315,  313,  312,  309,  308,
+      305,  298,  297,  296,  295,  294,  293,  291,  290,  289,
+      288,  287,  286,  282,  272,  271,  270,  266,  265,  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, 1647,   11,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647
     } ;
 
-static const flex_int16_t yy_chk[2107] =
+static const flex_int16_t yy_chk[2124] =
     {   0,
         0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-       21,  618,    3,    3,    3,   21,    1,    1,    3,   44,
+       21,  621,    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,
-      618,    8,    8,    8,    1,    8,   44,   27,   28,  108,
+      621,    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,  330,   25,   65,   25,   51,
+       10,    2,    2,   47,   65,  331,   25,   65,   25,   51,
         2,   25,   25,   25,   25,   25,    2,   54,   52,   56,
-      727,   57,  330,    2,    2,   15,   15,   15,   15,   15,
+      727,   57,  331,    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,
@@ -1564,22 +1570,22 @@ static const flex_int16_t yy_chk[2107] =
        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,  133,  276,   22,   45,  276,
+       20,   61,   61,   55,  115,  133,  728,   22,   45,  209,
        45,   45,   45,   45,   61,   45,   45,   45,   55,   58,
-       66,  133,   45,   45,  728,   45,   58,  115,  100,   90,
+       66,  133,   45,   45,  730,   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,   90,   58,   68,   68,   91,
-       58,   68,   69,  337,   58,  100,   69,   68,   92,  337,
+       58,   68,   69,  209,   58,  100,   69,   68,   92,  731,
        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,  367,   75,   76,  111,   77,  132,  367,  123,
+      123,  109,  338,   75,   76,  111,   77,  132,  338,  123,
       123,   77,   80,   80,   80,   80,   80,   76,  112,   76,
 
-      132,  113,  114,   76,  729,   80,   88,   88,   88,   88,
+      132,  113,  114,   76,  732,   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,
@@ -1587,186 +1593,188 @@ static const flex_int16_t yy_chk[2107] =
        83,  107,  119,  139,  102,   84,  127,  127,  147,  153,
       185,  136,   93,  131,  136,  131,  127,  175,  136,  119,
       159,  159,  159,   83,   94,  183,  184,  107,   84,  147,
-      119,  730,  131,  185,  102,  186,  162,  153,  102,  162,
+      119,  733,  131,  185,  102,  186,  162,  153,  102,  162,
       162,  168,  102,  188,  175,  168,  197,  139,  187,  168,
 
       102,  166,  184,  183,  102,  192,  102,  102,  118,  118,
-      118,  118,  118,  186,  596,  596,  188,  118,  118,  118,
+      118,  118,  118,  186,  599,  599,  188,  118,  118,  118,
       118,  118,  118,  197,  187,  196,  250,  201,  192,  205,
-      292,  410,  203,  284,  410,  292,  166,  166,  166,  210,
-      118,  118,  118,  118,  118,  118,  284,  166,  383,  166,
+      276,  411,  203,  276,  411,  284,  166,  166,  166,  210,
+      118,  118,  118,  118,  118,  118,  384,  166,  284,  166,
       201,  166,  166,  196,  166,  203,  205,  208,  208,  208,
       208,  208,  210,  256,  216,  299,  208,  208,  208,  208,
-      208,  208,  216,  302,  307,  309,  309,  216,  216,  250,
-      314,  310,  250,  386,  309,  321,  256,  386,  299,  208,
-      208,  208,  208,  208,  208,  333,  302,  351,  712,  371,
-
-      333,  712,  351,  307,  310,  370,  383,  421,  314,  319,
-      319,  319,  319,  319,  321,  370,  731,  666,  319,  319,
-      319,  319,  319,  319,  363,  363,  363,  371,  393,  397,
-      363,  415,  393,  397,  433,  421,  415,  431,  450,  431,
-      666,  319,  319,  319,  319,  319,  319,  460,  482,  518,
-      351,  450,  460,  732,  518,  351,  554,  555,  482,  733,
-      556,  652,  433,  665,  431,  556,  431,  432,  432,  432,
-      432,  432,  734,  652,  736,  737,  432,  432,  432,  432,
-      432,  432,  628,  554,  738,  555,  739,  628,  740,  671,
-      671,  665,  671,  741,  742,  743,  744,  745,  746,  432,
-
-      432,  432,  432,  432,  432,  747,  748,  749,  750,  751,
-      752,  753,  754,  755,  756,  757,  758,  760,  753,  761,
-      755,  762,  758,  763,  755,  764,  628,  765,  766,  767,
-      768,  769,  771,  772,  773,  774,  775,  777,  778,  779,
-      780,  781,  782,  783,  784,  785,  786,  787,  788,  789,
-      790,  791,  792,  793,  794,  795,  796,  797,  799,  800,
-      801,  772,  802,  803,  804,  805,  806,  807,  808,  804,
-      809,  810,  811,  812,  813,  816,  817,  818,  819,  820,
-      821,  822,  825,  826,  827,  828,  829,  830,  831,  832,
-      833,  830,  834,  835,  837,  839,  840,  841,  842,  843,
-
-      844,  845,  846,  847,  848,  849,  850,  851,  852,  853,
-      854,  855,  856,  857,  858,  859,  860,  861,  862,  863,
-      864,  865,  866,  867,  869,  870,  871,  872,  873,  861,
-      874,  875,  876,  878,  879,  880,  881,  882,  883,  884,
-      885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
-      895,  896,  897,  899,  900,  901,  902,  879,  903,  904,
-      878,  905,  906,  907,  908,  910,  911,  912,  913,  914,
-      915,  917,  918,  919,  914,  920,  921,  922,  923,  924,
-      925,  926,  927,  928,  929,  930,  931,  932,  933,  934,
-      935,  936,  937,  940,  941,  942,  944,  945,  946,  948,
-
-      949,  950,  936,  951,  952,  953,  954,  955,  956,  957,
-      958,  959,  960,  961,  962,  963,  964,  965,  967,  968,
-      969,  970,  971,  972,  973,  974,  975,  914,  976,  977,
-      978,  980,  979,  981,  982,  983,  984,  985,  986,  987,
-      988,  989,  990,  991,  992,  993,  994,  996,  997,  998,
-      999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,  978,  979,
-     1007, 1008, 1009, 1010, 1011, 1013, 1014, 1015, 1016, 1017,
-     1018, 1014, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026,
-     1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
-     1037, 1038, 1039, 1040, 1041, 1042, 1044, 1045, 1046, 1047,
-
-     1048, 1049, 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1060,
-     1061, 1015, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
-     1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
-     1080, 1081, 1082, 1083, 1084, 1086, 1088, 1089, 1090, 1091,
-     1092, 1093, 1094, 1095, 1096, 1097, 1073, 1098, 1099, 1100,
-     1101, 1102, 1074, 1103, 1106, 1108, 1110, 1111, 1112, 1113,
-     1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1124,
-     1125, 1126, 1128, 1129, 1130, 1131, 1134, 1136, 1137, 1138,
-     1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
-     1149, 1150, 1151, 1153, 1154, 1155, 1158, 1159, 1160, 1161,
-
-     1162, 1163, 1164, 1165, 1167, 1168, 1169, 1170, 1171, 1172,
-     1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1183, 1184,
-     1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
-     1164, 1195, 1196, 1197, 1198, 1200, 1201, 1202, 1203, 1204,
-     1205, 1147, 1206, 1207, 1208, 1202, 1209, 1212, 1213, 1168,
-     1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1224,
-     1225, 1226, 1227, 1228, 1229, 1231, 1233, 1236, 1238, 1239,
-     1240, 1241, 1242, 1244, 1246, 1247, 1248, 1249, 1250, 1251,
-     1252, 1253, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262,
-     1263, 1264, 1265, 1266, 1267, 1242, 1268, 1270, 1273, 1275,
-
-     1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1285, 1286,
-     1287, 1288, 1289, 1290, 1293, 1294, 1296, 1297, 1298, 1299,
-     1300, 1302, 1303, 1304, 1305, 1306, 1308, 1310, 1311, 1312,
-     1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1322, 1323,
-     1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1332, 1333,
-     1334, 1335, 1336, 1337, 1310, 1338, 1339, 1340, 1341, 1342,
-     1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
-     1353, 1354, 1355, 1356, 1357, 1359, 1360, 1362, 1363, 1365,
-     1364, 1368, 1369, 1370, 1374, 1375, 1377, 1378, 1379, 1380,
-     1381, 1377, 1382, 1383, 1384, 1385, 1387, 1388, 1390, 1392,
-
-     1393, 1394, 1396, 1397, 1398, 1399, 1401, 1333, 1364, 1402,
-     1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
-     1413, 1414, 1416, 1417, 1418, 1419, 1421, 1422, 1424, 1425,
-     1426, 1427, 1428, 1430, 1431, 1432, 1434, 1435, 1436, 1437,
-     1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447,
-     1448, 1449, 1450, 1452, 1453, 1454, 1456, 1458, 1460, 1461,
-     1462, 1463, 1464, 1465, 1467, 1468, 1469, 1470, 1471, 1472,
-     1473, 1475, 1476, 1477, 1478, 1480, 1481, 1482, 1483, 1484,
-     1485, 1486, 1487, 1488, 1490, 1491, 1492, 1493, 1494, 1495,
-     1496, 1497, 1498, 1499, 1500, 1501, 1504, 1505, 1506, 1507,
-
-     1508, 1509, 1510, 1511, 1512, 1514, 1515, 1516, 1517, 1518,
-     1519, 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528, 1529,
-     1530, 1531, 1533, 1535, 1537, 1540, 1541, 1542, 1543, 1544,
-     1546, 1548, 1549, 1551, 1552, 1554, 1555, 1556, 1558, 1559,
-     1560, 1562, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571,
-     1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
+      208,  208,  216,  302,  307,  292,  310,  216,  216,  250,
+      292,  314,  250,  734,  735,  736,  256,  322,  299,  208,
+      208,  208,  208,  208,  208,  334,  302,  309,  309,  310,
+
+      334,  372,  352,  307,  384,  371,  309,  352,  484,  314,
+      319,  319,  319,  319,  319,  371,  322,  737,  484,  319,
+      319,  319,  319,  319,  319,  364,  364,  364,  368,  372,
+      422,  364,  387,  394,  368,  398,  387,  394,  432,  398,
+      432,  452,  319,  319,  319,  319,  319,  319,  416,  556,
+      655,  669,  462,  416,  452,  352,  435,  462,  422,  520,
+      352,  557,  655,  668,  520,  432,  738,  432,  433,  433,
+      433,  433,  433,  740,  669,  741,  556,  433,  433,  433,
+      433,  433,  433,  559,  435,  631,  742,  743,  559,  557,
+      631,  668,  675,  675,  716,  675,  744,  716,  745,  746,
+
+      433,  433,  433,  433,  433,  433,  747,  748,  749,  750,
+      751,  752,  753,  754,  755,  756,  757,  758,  760,  759,
+      761,  762,  764,  757,  765,  766,  759,  762,  767,  631,
+      759,  768,  769,  770,  771,  772,  773,  775,  776,  777,
+      778,  779,  780,  782,  783,  784,  785,  786,  787,  788,
+      789,  790,  791,  792,  793,  794,  795,  796,  797,  798,
+      799,  800,  801,  802,  804,  805,  776,  806,  807,  808,
+      809,  810,  811,  812,  813,  809,  814,  815,  816,  817,
+      818,  821,  822,  823,  824,  825,  826,  827,  830,  831,
+      832,  833,  834,  835,  836,  837,  838,  835,  839,  840,
+
+      842,  844,  845,  846,  847,  848,  849,  850,  851,  852,
+      853,  854,  855,  856,  857,  858,  859,  860,  861,  862,
+      863,  864,  865,  866,  867,  868,  869,  870,  871,  872,
+      874,  875,  876,  877,  878,  866,  879,  880,  881,  883,
+      884,  885,  886,  887,  888,  889,  890,  891,  892,  893,
+      894,  895,  896,  897,  898,  899,  900,  901,  902,  903,
+      905,  906,  907,  884,  908,  909,  883,  910,  911,  912,
+      913,  914,  916,  917,  918,  919,  920,  921,  923,  924,
+      925,  920,  926,  927,  928,  929,  930,  931,  932,  933,
+      934,  935,  936,  937,  938,  939,  940,  941,  942,  943,
+
+      946,  947,  948,  950,  951,  952,  954,  955,  956,  942,
+      957,  958,  959,  960,  961,  962,  963,  964,  965,  966,
+      967,  968,  969,  970,  971,  973,  974,  975,  976,  977,
+      978,  979,  980,  981,  920,  982,  983,  984,  986,  985,
+      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,  984,  985, 1013, 1014, 1015,
+     1016, 1017, 1018, 1020, 1021, 1022, 1023, 1024, 1025, 1021,
+     1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
+     1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
+
+     1046, 1047, 1048, 1049, 1051, 1052, 1053, 1054, 1055, 1056,
+     1057, 1058, 1059, 1060, 1061, 1063, 1064, 1067, 1068, 1022,
+     1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
+     1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
+     1089, 1090, 1091, 1092, 1094, 1096, 1097, 1098, 1099, 1100,
+     1101, 1102, 1103, 1104, 1080, 1105, 1106, 1107, 1108, 1109,
+     1081, 1110, 1111, 1114, 1116, 1118, 1119, 1120, 1121, 1122,
+     1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1132, 1133,
+     1134, 1136, 1137, 1138, 1139, 1142, 1144, 1145, 1146, 1147,
+     1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
+
+     1158, 1159, 1161, 1162, 1163, 1166, 1167, 1168, 1169, 1170,
+     1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1180, 1181,
+     1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1192, 1193,
+     1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1172,
+     1203, 1204, 1205, 1206, 1207, 1209, 1210, 1211, 1212, 1213,
+     1155, 1214, 1215, 1216, 1217, 1211, 1218, 1221, 1222, 1177,
+     1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1233,
+     1234, 1235, 1236, 1237, 1238, 1240, 1242, 1245, 1247, 1248,
+     1249, 1250, 1251, 1253, 1254, 1256, 1257, 1258, 1259, 1260,
+     1261, 1262, 1263, 1264, 1265, 1266, 1268, 1269, 1270, 1271,
+
+     1272, 1273, 1274, 1275, 1276, 1251, 1277, 1278, 1280, 1283,
+     1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1295,
+     1296, 1297, 1298, 1299, 1300, 1303, 1304, 1306, 1307, 1308,
+     1309, 1310, 1312, 1313, 1314, 1315, 1316, 1318, 1320, 1321,
+     1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
+     1333, 1334, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
+     1343, 1344, 1345, 1346, 1347, 1320, 1348, 1349, 1350, 1351,
+     1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361,
+     1362, 1363, 1364, 1365, 1366, 1367, 1368, 1370, 1371, 1373,
+     1374, 1376, 1375, 1377, 1380, 1381, 1382, 1386, 1387, 1389,
+
+     1390, 1391, 1392, 1393, 1389, 1394, 1395, 1396, 1397, 1399,
+     1400, 1402, 1404, 1405, 1406, 1408, 1409, 1410, 1411, 1344,
+     1375, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
+     1422, 1423, 1424, 1425, 1426, 1428, 1429, 1430, 1431, 1432,
+     1434, 1435, 1437, 1438, 1439, 1440, 1441, 1443, 1444, 1445,
+     1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456,
+     1457, 1458, 1459, 1460, 1461, 1462, 1463, 1465, 1466, 1467,
+     1469, 1471, 1472, 1474, 1475, 1476, 1477, 1478, 1479, 1481,
+     1482, 1483, 1484, 1485, 1486, 1487, 1489, 1490, 1491, 1492,
+     1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1504,
+
+     1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514,
+     1515, 1516, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526,
+     1527, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537,
+     1538, 1539, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1549,
+     1551, 1553, 1556, 1557, 1558, 1559, 1560, 1562, 1565, 1566,
+     1568, 1569, 1571, 1572, 1573, 1575, 1576, 1577, 1579, 1581,
      1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,
-     1593, 1594, 1595, 1596, 1597, 1601, 1604, 1605, 1606, 1607,
-     1608, 1609, 1613, 1614, 1615, 1616, 1618, 1619, 1621, 1622,
-     1623, 1624, 1625, 1627, 1628, 1631, 1631, 1631, 1631, 1631,
-
-     1632, 1632, 1632, 1632, 1632, 1633, 1639, 1633, 1633, 1633,
-     1634, 1640, 1634, 1641, 1634, 1635, 1635, 1635, 1635, 1635,
-     1636, 1636, 1636, 1636, 1636, 1637, 1642, 1637, 1637, 1637,
-     1638, 1638, 1638,  726,  724,  723,  722,  721,  720,  719,
-      718,  717,  715,  714,  713,  711,  710,  709,  708,  707,
-      706,  705,  704,  703,  702,  701,  700,  699,  698,  697,
-      696,  695,  694,  692,  691,  690,  689,  688,  687,  686,
-      685,  684,  683,  682,  681,  680,  679,  678,  677,  676,
-      675,  674,  673,  672,  670,  669,  668,  667,  664,  663,
-      662,  659,  658,  657,  656,  655,  654,  653,  650,  649,
-
-      648,  647,  646,  645,  644,  643,  642,  641,  640,  639,
-      638,  636,  635,  634,  633,  632,  631,  630,  629,  627,
-      626,  624,  623,  622,  621,  620,  619,  617,  616,  615,
-      613,  612,  610,  609,  608,  607,  606,  605,  604,  603,
-      602,  601,  600,  599,  598,  597,  595,  594,  593,  592,
-      591,  589,  588,  587,  586,  585,  584,  583,  582,  580,
-      579,  578,  577,  576,  575,  574,  573,  572,  571,  570,
-      569,  568,  567,  566,  565,  564,  563,  562,  561,  560,
-      559,  558,  552,  550,  547,  546,  544,  543,  542,  540,
-      536,  535,  534,  533,  532,  531,  530,  529,  528,  527,
-
-      526,  525,  524,  523,  522,  521,  520,  519,  517,  516,
-      515,  514,  513,  512,  511,  510,  509,  508,  507,  505,
-      503,  502,  501,  500,  499,  498,  497,  496,  495,  494,
-      493,  492,  491,  489,  488,  487,  486,  485,  484,  483,
-      481,  480,  479,  478,  477,  476,  475,  474,  473,  472,
-      471,  470,  469,  468,  467,  466,  464,  463,  462,  461,
-      459,  458,  457,  456,  455,  454,  452,  451,  449,  448,
-      447,  446,  444,  443,  442,  441,  440,  439,  438,  436,
-      435,  434,  429,  428,  426,  425,  424,  423,  422,  419,
-      416,  414,  413,  412,  411,  409,  408,  407,  406,  405,
-
-      404,  403,  402,  401,  400,  399,  398,  396,  395,  394,
-      392,  391,  390,  389,  388,  387,  385,  384,  382,  381,
-      380,  379,  378,  377,  376,  375,  374,  373,  369,  368,
-      366,  365,  364,  362,  361,  360,  359,  358,  357,  356,
-      355,  354,  353,  352,  350,  349,  348,  347,  346,  345,
-      344,  343,  342,  341,  340,  339,  338,  336,  335,  334,
-      332,  329,  328,  327,  326,  325,  324,  323,  322,  318,
-      316,  313,  311,  308,  305,  298,  297,  296,  295,  294,
-      293,  291,  290,  289,  288,  287,  286,  285,  283,  282,
-      281,  280,  279,  278,  277,  275,  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, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-     1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
-
-     1630, 1630, 1630, 1630, 1630, 1630
+     1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601,
+     1602, 1603, 1604, 1605, 1606, 1607, 1608, 1610, 1611, 1612,
+     1613, 1614, 1618, 1621, 1622, 1623, 1624, 1625, 1626, 1630,
+
+     1631, 1632, 1633, 1635, 1636, 1638, 1639, 1640, 1641, 1642,
+     1644, 1645, 1648, 1648, 1648, 1648, 1648, 1649, 1649, 1649,
+     1649, 1649, 1650, 1656, 1650, 1650, 1650, 1651, 1657, 1651,
+     1658, 1651, 1652, 1652, 1652, 1652, 1652, 1653, 1653, 1653,
+     1653, 1653, 1654, 1659, 1654, 1654, 1654, 1655, 1655, 1655,
+      726,  725,  724,  723,  722,  721,  719,  718,  717,  715,
+      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
+      704,  703,  702,  701,  700,  699,  698,  696,  695,  694,
+      693,  692,  691,  690,  689,  688,  687,  686,  685,  684,
+      683,  682,  681,  680,  679,  678,  677,  676,  674,  673,
+
+      672,  671,  670,  667,  666,  665,  662,  661,  660,  659,
+      658,  657,  656,  653,  652,  651,  650,  649,  648,  647,
+      646,  645,  644,  643,  642,  641,  639,  638,  637,  636,
+      635,  634,  633,  632,  630,  629,  627,  626,  625,  624,
+      623,  622,  620,  619,  618,  616,  615,  613,  612,  611,
+      610,  609,  608,  607,  606,  605,  604,  603,  602,  601,
+      600,  598,  597,  596,  595,  594,  592,  591,  590,  589,
+      588,  587,  586,  585,  583,  582,  581,  580,  579,  578,
+      577,  576,  575,  574,  573,  572,  571,  570,  569,  568,
+      567,  566,  565,  564,  563,  562,  561,  558,  554,  552,
+
+      549,  548,  546,  545,  544,  542,  538,  537,  536,  535,
+      534,  533,  532,  531,  530,  529,  528,  527,  526,  525,
+      524,  523,  522,  521,  519,  518,  517,  516,  515,  514,
+      513,  512,  511,  510,  509,  507,  505,  504,  503,  502,
+      501,  500,  499,  498,  497,  496,  495,  494,  493,  491,
+      490,  489,  488,  487,  486,  485,  483,  482,  481,  480,
+      479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
+      469,  468,  466,  465,  464,  463,  461,  460,  459,  458,
+      457,  456,  454,  453,  451,  450,  449,  448,  446,  445,
+      444,  443,  442,  441,  440,  438,  437,  436,  434,  430,
+
+      429,  427,  426,  425,  424,  423,  420,  417,  415,  414,
+      413,  412,  410,  409,  408,  407,  406,  405,  404,  403,
+      402,  401,  400,  399,  397,  396,  395,  393,  392,  391,
+      390,  389,  388,  386,  385,  383,  382,  381,  380,  379,
+      378,  377,  376,  375,  374,  370,  369,  367,  366,  365,
+      363,  362,  361,  360,  359,  358,  357,  356,  355,  354,
+      353,  351,  350,  349,  348,  347,  346,  345,  344,  343,
+      342,  341,  340,  339,  337,  336,  335,  333,  330,  329,
+      328,  327,  326,  325,  324,  323,  321,  318,  316,  313,
+      311,  308,  305,  298,  297,  296,  295,  294,  293,  291,
+
+      290,  289,  288,  287,  286,  285,  283,  282,  281,  280,
+      279,  278,  277,  275,  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,  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, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+     1647, 1647, 1647
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -1775,7 +1783,7 @@ static char *yy_last_accepting_cpos;
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static const flex_int16_t yy_rule_linenum[192] =
+static const flex_int16_t yy_rule_linenum[193] =
     {   0,
       149,  151,  153,  158,  159,  164,  165,  166,  178,  181,
       186,  193,  202,  211,  220,  229,  238,  247,  256,  265,
@@ -1785,19 +1793,19 @@ static const flex_int16_t yy_rule_linenum[192] =
       555,  568,  577,  586,  595,  604,  615,  626,  637,  648,
       660,  671,  682,  693,  704,  715,  726,  737,  748,  759,
       770,  781,  790,  801,  812,  823,  834,  845,  856,  867,
-      878,  887,  896,  906,  915,  924,  939,  955,  964,  973,
-      982,  991, 1000, 1009, 1018, 1027, 1036, 1045, 1067, 1089,
-
-     1098, 1108, 1118, 1127, 1137, 1148, 1157, 1166, 1175, 1184,
-     1193, 1203, 1212, 1221, 1230, 1241, 1252, 1263, 1272, 1282,
-     1291, 1300, 1309, 1318, 1327, 1336, 1345, 1354, 1364, 1376,
-     1389, 1398, 1407, 1417, 1427, 1436, 1447, 1457, 1466, 1476,
-     1486, 1495, 1504, 1513, 1522, 1532, 1541, 1551, 1560, 1569,
-     1578, 1587, 1596, 1605, 1614, 1623, 1632, 1641, 1650, 1659,
-     1668, 1677, 1686, 1695, 1704, 1713, 1722, 1731, 1740, 1749,
-     1758, 1767, 1776, 1786, 1885, 1890, 1895, 1900, 1901, 1902,
-     1903, 1904, 1905, 1907, 1925, 1938, 1943, 1947, 1949, 1951,
-     1953
+      878,  889,  898,  907,  917,  926,  935,  950,  966,  975,
+      984,  993, 1002, 1011, 1020, 1029, 1038, 1047, 1056, 1078,
+
+     1100, 1109, 1119, 1129, 1138, 1148, 1159, 1168, 1177, 1186,
+     1195, 1204, 1214, 1223, 1232, 1241, 1252, 1263, 1274, 1283,
+     1293, 1302, 1311, 1320, 1329, 1338, 1347, 1356, 1365, 1375,
+     1387, 1400, 1409, 1418, 1428, 1438, 1447, 1458, 1468, 1477,
+     1487, 1497, 1506, 1515, 1524, 1533, 1543, 1552, 1562, 1571,
+     1580, 1589, 1598, 1607, 1616, 1625, 1634, 1643, 1652, 1661,
+     1670, 1679, 1688, 1697, 1706, 1715, 1724, 1733, 1742, 1751,
+     1760, 1769, 1778, 1787, 1797, 1896, 1901, 1906, 1911, 1912,
+     1913, 1914, 1915, 1916, 1918, 1936, 1949, 1954, 1958, 1960,
+     1962, 1964
 
     } ;
 
@@ -1851,7 +1859,7 @@ using namespace isc::dhcp;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
-#line 1854 "dhcp6_lexer.cc"
+#line 1862 "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
@@ -1877,8 +1885,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 1880 "dhcp6_lexer.cc"
-#line 1881 "dhcp6_lexer.cc"
+#line 1888 "dhcp6_lexer.cc"
+#line 1889 "dhcp6_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -2210,7 +2218,7 @@ YY_DECL
     }
 
 
-#line 2213 "dhcp6_lexer.cc"
+#line 2221 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2239,13 +2247,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 >= 1631 )
+                               if ( yy_current_state >= 1648 )
                                        yy_c = yy_meta[yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1630 );
+               while ( yy_current_state != 1647 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -2264,13 +2272,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 < 192 )
+                       else if ( yy_act < 193 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], yytext );
-                       else if ( yy_act == 192 )
+                       else if ( yy_act == 193 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         yytext );
-                       else if ( yy_act == 193 )
+                       else if ( yy_act == 194 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -3269,6 +3277,20 @@ YY_RULE_SETUP
 case 81:
 YY_RULE_SETUP
 #line 878 "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_ALLOW_STATIC_LEASES(driver.loc_);
+    default:
+        return isc::dhcp::Dhcp6Parser::make_STRING("allow-static-leases", driver.loc_);
+    }
+}
+       YY_BREAK
+case 82:
+YY_RULE_SETUP
+#line 889 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3278,9 +3300,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 887 "dhcp6_lexer.ll"
+#line 898 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3290,9 +3312,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 896 "dhcp6_lexer.ll"
+#line 907 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3303,9 +3325,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 906 "dhcp6_lexer.ll"
+#line 917 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3315,9 +3337,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 915 "dhcp6_lexer.ll"
+#line 926 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3327,9 +3349,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 924 "dhcp6_lexer.ll"
+#line 935 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3345,9 +3367,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 939 "dhcp6_lexer.ll"
+#line 950 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -3364,9 +3386,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 955 "dhcp6_lexer.ll"
+#line 966 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3376,9 +3398,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 964 "dhcp6_lexer.ll"
+#line 975 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3388,9 +3410,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 973 "dhcp6_lexer.ll"
+#line 984 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3400,9 +3422,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 91:
+case 92:
 YY_RULE_SETUP
-#line 982 "dhcp6_lexer.ll"
+#line 993 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3412,9 +3434,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 991 "dhcp6_lexer.ll"
+#line 1002 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3424,9 +3446,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 1000 "dhcp6_lexer.ll"
+#line 1011 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3436,9 +3458,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 1009 "dhcp6_lexer.ll"
+#line 1020 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3448,9 +3470,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 95:
+case 96:
 YY_RULE_SETUP
-#line 1018 "dhcp6_lexer.ll"
+#line 1029 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3460,9 +3482,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 96:
+case 97:
 YY_RULE_SETUP
-#line 1027 "dhcp6_lexer.ll"
+#line 1038 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -3472,9 +3494,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 97:
+case 98:
 YY_RULE_SETUP
-#line 1036 "dhcp6_lexer.ll"
+#line 1047 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -3484,9 +3506,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 98:
+case 99:
 YY_RULE_SETUP
-#line 1045 "dhcp6_lexer.ll"
+#line 1056 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3509,9 +3531,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 99:
+case 100:
 YY_RULE_SETUP
-#line 1067 "dhcp6_lexer.ll"
+#line 1078 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3534,9 +3556,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 100:
+case 101:
 YY_RULE_SETUP
-#line 1089 "dhcp6_lexer.ll"
+#line 1100 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3546,9 +3568,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 101:
+case 102:
 YY_RULE_SETUP
-#line 1098 "dhcp6_lexer.ll"
+#line 1109 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3559,9 +3581,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 102:
+case 103:
 YY_RULE_SETUP
-#line 1108 "dhcp6_lexer.ll"
+#line 1119 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3572,9 +3594,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 103:
+case 104:
 YY_RULE_SETUP
-#line 1118 "dhcp6_lexer.ll"
+#line 1129 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3584,9 +3606,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 104:
+case 105:
 YY_RULE_SETUP
-#line 1127 "dhcp6_lexer.ll"
+#line 1138 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3597,9 +3619,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 105:
+case 106:
 YY_RULE_SETUP
-#line 1137 "dhcp6_lexer.ll"
+#line 1148 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3611,9 +3633,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 106:
+case 107:
 YY_RULE_SETUP
-#line 1148 "dhcp6_lexer.ll"
+#line 1159 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3623,9 +3645,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 107:
+case 108:
 YY_RULE_SETUP
-#line 1157 "dhcp6_lexer.ll"
+#line 1168 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3635,9 +3657,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 108:
+case 109:
 YY_RULE_SETUP
-#line 1166 "dhcp6_lexer.ll"
+#line 1177 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3647,9 +3669,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 109:
+case 110:
 YY_RULE_SETUP
-#line 1175 "dhcp6_lexer.ll"
+#line 1186 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3659,9 +3681,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 110:
+case 111:
 YY_RULE_SETUP
-#line 1184 "dhcp6_lexer.ll"
+#line 1195 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3671,9 +3693,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 111:
+case 112:
 YY_RULE_SETUP
-#line 1193 "dhcp6_lexer.ll"
+#line 1204 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3684,9 +3706,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 112:
+case 113:
 YY_RULE_SETUP
-#line 1203 "dhcp6_lexer.ll"
+#line 1214 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3696,9 +3718,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 113:
+case 114:
 YY_RULE_SETUP
-#line 1212 "dhcp6_lexer.ll"
+#line 1223 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3708,9 +3730,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 114:
+case 115:
 YY_RULE_SETUP
-#line 1221 "dhcp6_lexer.ll"
+#line 1232 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3720,9 +3742,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 115:
+case 116:
 YY_RULE_SETUP
-#line 1230 "dhcp6_lexer.ll"
+#line 1241 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3734,9 +3756,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 116:
+case 117:
 YY_RULE_SETUP
-#line 1241 "dhcp6_lexer.ll"
+#line 1252 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3748,9 +3770,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 117:
+case 118:
 YY_RULE_SETUP
-#line 1252 "dhcp6_lexer.ll"
+#line 1263 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3762,9 +3784,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 118:
+case 119:
 YY_RULE_SETUP
-#line 1263 "dhcp6_lexer.ll"
+#line 1274 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3774,9 +3796,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 119:
+case 120:
 YY_RULE_SETUP
-#line 1272 "dhcp6_lexer.ll"
+#line 1283 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3787,9 +3809,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 120:
+case 121:
 YY_RULE_SETUP
-#line 1282 "dhcp6_lexer.ll"
+#line 1293 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3799,9 +3821,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 121:
+case 122:
 YY_RULE_SETUP
-#line 1291 "dhcp6_lexer.ll"
+#line 1302 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3811,9 +3833,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 122:
+case 123:
 YY_RULE_SETUP
-#line 1300 "dhcp6_lexer.ll"
+#line 1311 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3823,9 +3845,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 123:
+case 124:
 YY_RULE_SETUP
-#line 1309 "dhcp6_lexer.ll"
+#line 1320 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3835,9 +3857,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 124:
+case 125:
 YY_RULE_SETUP
-#line 1318 "dhcp6_lexer.ll"
+#line 1329 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3847,9 +3869,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 125:
+case 126:
 YY_RULE_SETUP
-#line 1327 "dhcp6_lexer.ll"
+#line 1338 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3859,9 +3881,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 126:
+case 127:
 YY_RULE_SETUP
-#line 1336 "dhcp6_lexer.ll"
+#line 1347 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3871,9 +3893,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 127:
+case 128:
 YY_RULE_SETUP
-#line 1345 "dhcp6_lexer.ll"
+#line 1356 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3883,9 +3905,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 128:
+case 129:
 YY_RULE_SETUP
-#line 1354 "dhcp6_lexer.ll"
+#line 1365 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3896,9 +3918,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 129:
+case 130:
 YY_RULE_SETUP
-#line 1364 "dhcp6_lexer.ll"
+#line 1375 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3911,9 +3933,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 130:
+case 131:
 YY_RULE_SETUP
-#line 1376 "dhcp6_lexer.ll"
+#line 1387 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3927,9 +3949,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 131:
+case 132:
 YY_RULE_SETUP
-#line 1389 "dhcp6_lexer.ll"
+#line 1400 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3939,9 +3961,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 132:
+case 133:
 YY_RULE_SETUP
-#line 1398 "dhcp6_lexer.ll"
+#line 1409 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3951,9 +3973,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 133:
+case 134:
 YY_RULE_SETUP
-#line 1407 "dhcp6_lexer.ll"
+#line 1418 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3964,9 +3986,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 134:
+case 135:
 YY_RULE_SETUP
-#line 1417 "dhcp6_lexer.ll"
+#line 1428 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3977,9 +3999,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 135:
+case 136:
 YY_RULE_SETUP
-#line 1427 "dhcp6_lexer.ll"
+#line 1438 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3989,9 +4011,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 136:
+case 137:
 YY_RULE_SETUP
-#line 1436 "dhcp6_lexer.ll"
+#line 1447 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -4003,9 +4025,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 137:
+case 138:
 YY_RULE_SETUP
-#line 1447 "dhcp6_lexer.ll"
+#line 1458 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4016,9 +4038,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 138:
+case 139:
 YY_RULE_SETUP
-#line 1457 "dhcp6_lexer.ll"
+#line 1468 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -4028,9 +4050,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 139:
+case 140:
 YY_RULE_SETUP
-#line 1466 "dhcp6_lexer.ll"
+#line 1477 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4041,9 +4063,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 140:
+case 141:
 YY_RULE_SETUP
-#line 1476 "dhcp6_lexer.ll"
+#line 1487 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4054,9 +4076,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 141:
+case 142:
 YY_RULE_SETUP
-#line 1486 "dhcp6_lexer.ll"
+#line 1497 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -4066,9 +4088,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 142:
+case 143:
 YY_RULE_SETUP
-#line 1495 "dhcp6_lexer.ll"
+#line 1506 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4078,9 +4100,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 143:
+case 144:
 YY_RULE_SETUP
-#line 1504 "dhcp6_lexer.ll"
+#line 1515 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4090,9 +4112,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 144:
+case 145:
 YY_RULE_SETUP
-#line 1513 "dhcp6_lexer.ll"
+#line 1524 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -4102,9 +4124,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 145:
+case 146:
 YY_RULE_SETUP
-#line 1522 "dhcp6_lexer.ll"
+#line 1533 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -4115,9 +4137,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 146:
+case 147:
 YY_RULE_SETUP
-#line 1532 "dhcp6_lexer.ll"
+#line 1543 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -4127,9 +4149,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 147:
+case 148:
 YY_RULE_SETUP
-#line 1541 "dhcp6_lexer.ll"
+#line 1552 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4139,9 +4161,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 148:
+case 149:
 YY_RULE_SETUP
-#line 1551 "dhcp6_lexer.ll"
+#line 1562 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4151,9 +4173,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 149:
+case 150:
 YY_RULE_SETUP
-#line 1560 "dhcp6_lexer.ll"
+#line 1571 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -4163,9 +4185,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 150:
+case 151:
 YY_RULE_SETUP
-#line 1569 "dhcp6_lexer.ll"
+#line 1580 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4175,9 +4197,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 151:
+case 152:
 YY_RULE_SETUP
-#line 1578 "dhcp6_lexer.ll"
+#line 1589 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4187,9 +4209,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 152:
+case 153:
 YY_RULE_SETUP
-#line 1587 "dhcp6_lexer.ll"
+#line 1598 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4199,9 +4221,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 153:
+case 154:
 YY_RULE_SETUP
-#line 1596 "dhcp6_lexer.ll"
+#line 1607 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -4211,9 +4233,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 154:
+case 155:
 YY_RULE_SETUP
-#line 1605 "dhcp6_lexer.ll"
+#line 1616 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4223,9 +4245,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 155:
+case 156:
 YY_RULE_SETUP
-#line 1614 "dhcp6_lexer.ll"
+#line 1625 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4235,9 +4257,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 156:
+case 157:
 YY_RULE_SETUP
-#line 1623 "dhcp6_lexer.ll"
+#line 1634 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4247,9 +4269,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 157:
+case 158:
 YY_RULE_SETUP
-#line 1632 "dhcp6_lexer.ll"
+#line 1643 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -4259,9 +4281,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 158:
+case 159:
 YY_RULE_SETUP
-#line 1641 "dhcp6_lexer.ll"
+#line 1652 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4271,9 +4293,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 159:
+case 160:
 YY_RULE_SETUP
-#line 1650 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4283,9 +4305,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 160:
+case 161:
 YY_RULE_SETUP
-#line 1659 "dhcp6_lexer.ll"
+#line 1670 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4295,9 +4317,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 161:
+case 162:
 YY_RULE_SETUP
-#line 1668 "dhcp6_lexer.ll"
+#line 1679 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4307,9 +4329,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 162:
+case 163:
 YY_RULE_SETUP
-#line 1677 "dhcp6_lexer.ll"
+#line 1688 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4319,9 +4341,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 163:
+case 164:
 YY_RULE_SETUP
-#line 1686 "dhcp6_lexer.ll"
+#line 1697 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4331,9 +4353,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 164:
+case 165:
 YY_RULE_SETUP
-#line 1695 "dhcp6_lexer.ll"
+#line 1706 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -4343,9 +4365,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 165:
+case 166:
 YY_RULE_SETUP
-#line 1704 "dhcp6_lexer.ll"
+#line 1715 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4355,9 +4377,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 166:
+case 167:
 YY_RULE_SETUP
-#line 1713 "dhcp6_lexer.ll"
+#line 1724 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4367,9 +4389,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 167:
+case 168:
 YY_RULE_SETUP
-#line 1722 "dhcp6_lexer.ll"
+#line 1733 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4379,9 +4401,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 168:
+case 169:
 YY_RULE_SETUP
-#line 1731 "dhcp6_lexer.ll"
+#line 1742 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -4391,9 +4413,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 169:
+case 170:
 YY_RULE_SETUP
-#line 1740 "dhcp6_lexer.ll"
+#line 1751 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4403,9 +4425,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 170:
+case 171:
 YY_RULE_SETUP
-#line 1749 "dhcp6_lexer.ll"
+#line 1760 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -4415,9 +4437,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 171:
+case 172:
 YY_RULE_SETUP
-#line 1758 "dhcp6_lexer.ll"
+#line 1769 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4427,9 +4449,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 172:
+case 173:
 YY_RULE_SETUP
-#line 1767 "dhcp6_lexer.ll"
+#line 1778 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4439,9 +4461,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 173:
+case 174:
 YY_RULE_SETUP
-#line 1776 "dhcp6_lexer.ll"
+#line 1787 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -4451,9 +4473,9 @@ YY_RULE_SETUP
     }
 }
        YY_BREAK
-case 174:
+case 175:
 YY_RULE_SETUP
-#line 1786 "dhcp6_lexer.ll"
+#line 1797 "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.
@@ -4553,65 +4575,65 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
 }
        YY_BREAK
-case 175:
-/* rule 175 can match eol */
+case 176:
+/* rule 176 can match eol */
 YY_RULE_SETUP
-#line 1885 "dhcp6_lexer.ll"
+#line 1896 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
 }
        YY_BREAK
-case 176:
-/* rule 176 can match eol */
+case 177:
+/* rule 177 can match eol */
 YY_RULE_SETUP
-#line 1890 "dhcp6_lexer.ll"
+#line 1901 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
 }
        YY_BREAK
-case 177:
+case 178:
 YY_RULE_SETUP
-#line 1895 "dhcp6_lexer.ll"
+#line 1906 "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 178:
+case 179:
 YY_RULE_SETUP
-#line 1900 "dhcp6_lexer.ll"
+#line 1911 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 179:
+case 180:
 YY_RULE_SETUP
-#line 1901 "dhcp6_lexer.ll"
+#line 1912 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
-case 180:
+case 181:
 YY_RULE_SETUP
-#line 1902 "dhcp6_lexer.ll"
+#line 1913 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 181:
+case 182:
 YY_RULE_SETUP
-#line 1903 "dhcp6_lexer.ll"
+#line 1914 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
-case 182:
+case 183:
 YY_RULE_SETUP
-#line 1904 "dhcp6_lexer.ll"
+#line 1915 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
-case 183:
+case 184:
 YY_RULE_SETUP
-#line 1905 "dhcp6_lexer.ll"
+#line 1916 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
-case 184:
+case 185:
 YY_RULE_SETUP
-#line 1907 "dhcp6_lexer.ll"
+#line 1918 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4630,9 +4652,9 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
 }
        YY_BREAK
-case 185:
+case 186:
 YY_RULE_SETUP
-#line 1925 "dhcp6_lexer.ll"
+#line 1936 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4646,43 +4668,43 @@ YY_RULE_SETUP
     return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
 }
        YY_BREAK
-case 186:
+case 187:
 YY_RULE_SETUP
-#line 1938 "dhcp6_lexer.ll"
+#line 1949 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
 }
        YY_BREAK
-case 187:
+case 188:
 YY_RULE_SETUP
-#line 1943 "dhcp6_lexer.ll"
+#line 1954 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
-case 188:
+case 189:
 YY_RULE_SETUP
-#line 1947 "dhcp6_lexer.ll"
+#line 1958 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
-case 189:
+case 190:
 YY_RULE_SETUP
-#line 1949 "dhcp6_lexer.ll"
+#line 1960 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
-case 190:
+case 191:
 YY_RULE_SETUP
-#line 1951 "dhcp6_lexer.ll"
+#line 1962 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
-case 191:
+case 192:
 YY_RULE_SETUP
-#line 1953 "dhcp6_lexer.ll"
+#line 1964 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1955 "dhcp6_lexer.ll"
+#line 1966 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4706,12 +4728,12 @@ case YY_STATE_EOF(INITIAL):
     BEGIN(DIR_EXIT);
 }
        YY_BREAK
-case 192:
+case 193:
 YY_RULE_SETUP
-#line 1978 "dhcp6_lexer.ll"
+#line 1989 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4714 "dhcp6_lexer.cc"
+#line 4736 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5030,7 +5052,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 >= 1631 )
+                       if ( yy_current_state >= 1648 )
                                yy_c = yy_meta[yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -5063,11 +5085,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 >= 1631 )
+               if ( yy_current_state >= 1648 )
                        yy_c = yy_meta[yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
-       yy_is_jam = (yy_current_state == 1630);
+       yy_is_jam = (yy_current_state == 1647);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -5816,7 +5838,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1978 "dhcp6_lexer.ll"
+#line 1989 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index c28c7d15ad84cb9c2cce0523c2f6641cf935db19..48a42168dc4974edc2005aedf1c33d6b8cb59b77 100644 (file)
@@ -251,29 +251,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 183: // "constant string"
+      case 184: // "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 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 183: // "constant string"
+      case 184: // "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 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -398,68 +398,68 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-      case 183: // "constant string"
-#line 262 "dhcp6_parser.yy"
+      case 184: // "constant string"
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < std::string > (); }
 #line 405 "dhcp6_parser.cc"
         break;
 
-      case 184: // "integer"
-#line 262 "dhcp6_parser.yy"
+      case 185: // "integer"
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < int64_t > (); }
 #line 411 "dhcp6_parser.cc"
         break;
 
-      case 185: // "floating point"
-#line 262 "dhcp6_parser.yy"
+      case 186: // "floating point"
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < double > (); }
 #line 417 "dhcp6_parser.cc"
         break;
 
-      case 186: // "boolean"
-#line 262 "dhcp6_parser.yy"
+      case 187: // "boolean"
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < bool > (); }
 #line 423 "dhcp6_parser.cc"
         break;
 
-      case 204: // value
-#line 262 "dhcp6_parser.yy"
+      case 205: // value
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 429 "dhcp6_parser.cc"
         break;
 
-      case 208: // map_value
-#line 262 "dhcp6_parser.yy"
+      case 209: // map_value
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 435 "dhcp6_parser.cc"
         break;
 
-      case 269: // db_type
-#line 262 "dhcp6_parser.yy"
+      case 271: // db_type
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 441 "dhcp6_parser.cc"
         break;
 
-      case 363: // hr_mode
-#line 262 "dhcp6_parser.yy"
+      case 365: // hr_mode
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 447 "dhcp6_parser.cc"
         break;
 
-      case 499: // duid_type
-#line 262 "dhcp6_parser.yy"
+      case 501: // duid_type
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 453 "dhcp6_parser.cc"
         break;
 
-      case 534: // ncr_protocol_value
-#line 262 "dhcp6_parser.yy"
+      case 536: // ncr_protocol_value
+#line 263 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
 #line 459 "dhcp6_parser.cc"
         break;
 
-      case 541: // replace_client_name_value
-#line 262 "dhcp6_parser.yy"
+      case 543: // replace_client_name_value
+#line 263 "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 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -725,139 +725,139 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 271 "dhcp6_parser.yy"
+#line 272 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 731 "dhcp6_parser.cc"
     break;
 
   case 4:
-#line 272 "dhcp6_parser.yy"
+#line 273 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.CONFIG; }
 #line 737 "dhcp6_parser.cc"
     break;
 
   case 6:
-#line 273 "dhcp6_parser.yy"
+#line 274 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP6; }
 #line 743 "dhcp6_parser.cc"
     break;
 
   case 8:
-#line 274 "dhcp6_parser.yy"
+#line 275 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 749 "dhcp6_parser.cc"
     break;
 
   case 10:
-#line 275 "dhcp6_parser.yy"
+#line 276 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.SUBNET6; }
 #line 755 "dhcp6_parser.cc"
     break;
 
   case 12:
-#line 276 "dhcp6_parser.yy"
+#line 277 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.POOLS; }
 #line 761 "dhcp6_parser.cc"
     break;
 
   case 14:
-#line 277 "dhcp6_parser.yy"
+#line 278 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.PD_POOLS; }
 #line 767 "dhcp6_parser.cc"
     break;
 
   case 16:
-#line 278 "dhcp6_parser.yy"
+#line 279 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 773 "dhcp6_parser.cc"
     break;
 
   case 18:
-#line 279 "dhcp6_parser.yy"
+#line 280 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP6; }
 #line 779 "dhcp6_parser.cc"
     break;
 
   case 20:
-#line 280 "dhcp6_parser.yy"
+#line 281 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 785 "dhcp6_parser.cc"
     break;
 
   case 22:
-#line 281 "dhcp6_parser.yy"
+#line 282 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 791 "dhcp6_parser.cc"
     break;
 
   case 24:
-#line 282 "dhcp6_parser.yy"
+#line 283 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 797 "dhcp6_parser.cc"
     break;
 
   case 26:
-#line 283 "dhcp6_parser.yy"
+#line 284 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 803 "dhcp6_parser.cc"
     break;
 
   case 28:
-#line 284 "dhcp6_parser.yy"
+#line 285 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.LOGGING; }
 #line 809 "dhcp6_parser.cc"
     break;
 
   case 30:
-#line 285 "dhcp6_parser.yy"
+#line 286 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 815 "dhcp6_parser.cc"
     break;
 
   case 32:
-#line 293 "dhcp6_parser.yy"
+#line 294 "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 294 "dhcp6_parser.yy"
+#line 295 "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 295 "dhcp6_parser.yy"
+#line 296 "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 296 "dhcp6_parser.yy"
+#line 297 "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 297 "dhcp6_parser.yy"
+#line 298 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 845 "dhcp6_parser.cc"
     break;
 
   case 37:
-#line 298 "dhcp6_parser.yy"
+#line 299 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 851 "dhcp6_parser.cc"
     break;
 
   case 38:
-#line 299 "dhcp6_parser.yy"
+#line 300 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 857 "dhcp6_parser.cc"
     break;
 
   case 39:
-#line 302 "dhcp6_parser.yy"
+#line 303 "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 307 "dhcp6_parser.yy"
+#line 308 "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 312 "dhcp6_parser.yy"
+#line 313 "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 318 "dhcp6_parser.yy"
+#line 319 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 893 "dhcp6_parser.cc"
     break;
 
   case 45:
-#line 325 "dhcp6_parser.yy"
+#line 326 "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 329 "dhcp6_parser.yy"
+#line 330 "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 336 "dhcp6_parser.yy"
+#line 337 "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 339 "dhcp6_parser.yy"
+#line 340 "dhcp6_parser.yy"
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -929,7 +929,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51:
-#line 347 "dhcp6_parser.yy"
+#line 348 "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 351 "dhcp6_parser.yy"
+#line 352 "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 358 "dhcp6_parser.yy"
+#line 359 "dhcp6_parser.yy"
     {
     // List parsing about to start
 }
@@ -955,7 +955,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 54:
-#line 360 "dhcp6_parser.yy"
+#line 361 "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 369 "dhcp6_parser.yy"
+#line 370 "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 373 "dhcp6_parser.yy"
+#line 374 "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 384 "dhcp6_parser.yy"
+#line 385 "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 394 "dhcp6_parser.yy"
+#line 395 "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 399 "dhcp6_parser.yy"
+#line 400 "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 422 "dhcp6_parser.yy"
+#line 423 "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 429 "dhcp6_parser.yy"
+#line 430 "dhcp6_parser.yy"
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1040,7 +1040,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 72:
-#line 437 "dhcp6_parser.yy"
+#line 438 "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 441 "dhcp6_parser.yy"
+#line 442 "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 119:
-#line 497 "dhcp6_parser.yy"
+  case 120:
+#line 499 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 1067 "dhcp6_parser.cc"
     break;
 
-  case 120:
-#line 499 "dhcp6_parser.yy"
+  case 121:
+#line 501 "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 121:
-#line 505 "dhcp6_parser.yy"
+  case 122:
+#line 507 "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,8 +1085,8 @@ namespace isc { namespace dhcp {
 #line 1086 "dhcp6_parser.cc"
     break;
 
-  case 122:
-#line 510 "dhcp6_parser.yy"
+  case 123:
+#line 512 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("min-preferred-lifetime", prf);
@@ -1094,8 +1094,8 @@ namespace isc { namespace dhcp {
 #line 1095 "dhcp6_parser.cc"
     break;
 
-  case 123:
-#line 515 "dhcp6_parser.yy"
+  case 124:
+#line 517 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-preferred-lifetime", prf);
@@ -1103,8 +1103,8 @@ namespace isc { namespace dhcp {
 #line 1104 "dhcp6_parser.cc"
     break;
 
-  case 124:
-#line 520 "dhcp6_parser.yy"
+  case 125:
+#line 522 "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);
@@ -1112,8 +1112,8 @@ namespace isc { namespace dhcp {
 #line 1113 "dhcp6_parser.cc"
     break;
 
-  case 125:
-#line 525 "dhcp6_parser.yy"
+  case 126:
+#line 527 "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);
@@ -1121,8 +1121,8 @@ namespace isc { namespace dhcp {
 #line 1122 "dhcp6_parser.cc"
     break;
 
-  case 126:
-#line 530 "dhcp6_parser.yy"
+  case 127:
+#line 532 "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);
@@ -1130,8 +1130,8 @@ namespace isc { namespace dhcp {
 #line 1131 "dhcp6_parser.cc"
     break;
 
-  case 127:
-#line 535 "dhcp6_parser.yy"
+  case 128:
+#line 537 "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);
@@ -1139,8 +1139,8 @@ namespace isc { namespace dhcp {
 #line 1140 "dhcp6_parser.cc"
     break;
 
-  case 128:
-#line 540 "dhcp6_parser.yy"
+  case 129:
+#line 542 "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);
@@ -1148,527 +1148,536 @@ namespace isc { namespace dhcp {
 #line 1149 "dhcp6_parser.cc"
     break;
 
-  case 129:
-#line 545 "dhcp6_parser.yy"
+  case 130:
+#line 547 "dhcp6_parser.yy"
+    {
+    ElementPtr asl(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.back()->set("allow-static-leases", asl);
+}
+#line 1158 "dhcp6_parser.cc"
+    break;
+
+  case 131:
+#line 552 "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 1158 "dhcp6_parser.cc"
+#line 1167 "dhcp6_parser.cc"
     break;
 
-  case 130:
-#line 550 "dhcp6_parser.yy"
+  case 132:
+#line 557 "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 1167 "dhcp6_parser.cc"
+#line 1176 "dhcp6_parser.cc"
     break;
 
-  case 131:
-#line 555 "dhcp6_parser.yy"
+  case 133:
+#line 562 "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 1176 "dhcp6_parser.cc"
+#line 1185 "dhcp6_parser.cc"
     break;
 
-  case 132:
-#line 560 "dhcp6_parser.yy"
+  case 134:
+#line 567 "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 1185 "dhcp6_parser.cc"
+#line 1194 "dhcp6_parser.cc"
     break;
 
-  case 133:
-#line 565 "dhcp6_parser.yy"
+  case 135:
+#line 572 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1193 "dhcp6_parser.cc"
+#line 1202 "dhcp6_parser.cc"
     break;
 
-  case 134:
-#line 567 "dhcp6_parser.yy"
+  case 136:
+#line 574 "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 1203 "dhcp6_parser.cc"
+#line 1212 "dhcp6_parser.cc"
     break;
 
-  case 135:
-#line 573 "dhcp6_parser.yy"
+  case 137:
+#line 580 "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 1214 "dhcp6_parser.cc"
+#line 1223 "dhcp6_parser.cc"
     break;
 
-  case 136:
-#line 578 "dhcp6_parser.yy"
+  case 138:
+#line 585 "dhcp6_parser.yy"
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1224 "dhcp6_parser.cc"
+#line 1233 "dhcp6_parser.cc"
     break;
 
-  case 137:
-#line 584 "dhcp6_parser.yy"
+  case 139:
+#line 591 "dhcp6_parser.yy"
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1234 "dhcp6_parser.cc"
+#line 1243 "dhcp6_parser.cc"
     break;
 
-  case 138:
-#line 588 "dhcp6_parser.yy"
+  case 140:
+#line 595 "dhcp6_parser.yy"
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1243 "dhcp6_parser.cc"
+#line 1252 "dhcp6_parser.cc"
     break;
 
-  case 146:
-#line 604 "dhcp6_parser.yy"
+  case 148:
+#line 611 "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 1254 "dhcp6_parser.cc"
+#line 1263 "dhcp6_parser.cc"
     break;
 
-  case 147:
-#line 609 "dhcp6_parser.yy"
+  case 149:
+#line 616 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1263 "dhcp6_parser.cc"
+#line 1272 "dhcp6_parser.cc"
     break;
 
-  case 148:
-#line 614 "dhcp6_parser.yy"
+  case 150:
+#line 621 "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 1272 "dhcp6_parser.cc"
+#line 1281 "dhcp6_parser.cc"
     break;
 
-  case 149:
-#line 620 "dhcp6_parser.yy"
+  case 151:
+#line 627 "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 1283 "dhcp6_parser.cc"
+#line 1292 "dhcp6_parser.cc"
     break;
 
-  case 150:
-#line 625 "dhcp6_parser.yy"
+  case 152:
+#line 632 "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 1294 "dhcp6_parser.cc"
+#line 1303 "dhcp6_parser.cc"
     break;
 
-  case 151:
-#line 632 "dhcp6_parser.yy"
+  case 153:
+#line 639 "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 1305 "dhcp6_parser.cc"
+#line 1314 "dhcp6_parser.cc"
     break;
 
-  case 152:
-#line 637 "dhcp6_parser.yy"
+  case 154:
+#line 644 "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 1316 "dhcp6_parser.cc"
+#line 1325 "dhcp6_parser.cc"
     break;
 
-  case 153:
-#line 644 "dhcp6_parser.yy"
+  case 155:
+#line 651 "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 1327 "dhcp6_parser.cc"
+#line 1336 "dhcp6_parser.cc"
     break;
 
-  case 154:
-#line 649 "dhcp6_parser.yy"
+  case 156:
+#line 656 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1336 "dhcp6_parser.cc"
+#line 1345 "dhcp6_parser.cc"
     break;
 
-  case 159:
-#line 662 "dhcp6_parser.yy"
+  case 161:
+#line 669 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1346 "dhcp6_parser.cc"
+#line 1355 "dhcp6_parser.cc"
     break;
 
-  case 160:
-#line 666 "dhcp6_parser.yy"
+  case 162:
+#line 673 "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 1356 "dhcp6_parser.cc"
+#line 1365 "dhcp6_parser.cc"
     break;
 
-  case 184:
-#line 699 "dhcp6_parser.yy"
+  case 186:
+#line 706 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1364 "dhcp6_parser.cc"
+#line 1373 "dhcp6_parser.cc"
     break;
 
-  case 185:
-#line 701 "dhcp6_parser.yy"
+  case 187:
+#line 708 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1373 "dhcp6_parser.cc"
+#line 1382 "dhcp6_parser.cc"
     break;
 
-  case 186:
-#line 706 "dhcp6_parser.yy"
+  case 188:
+#line 713 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1379 "dhcp6_parser.cc"
+#line 1388 "dhcp6_parser.cc"
     break;
 
-  case 187:
-#line 707 "dhcp6_parser.yy"
+  case 189:
+#line 714 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1385 "dhcp6_parser.cc"
+#line 1394 "dhcp6_parser.cc"
     break;
 
-  case 188:
-#line 708 "dhcp6_parser.yy"
+  case 190:
+#line 715 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1391 "dhcp6_parser.cc"
+#line 1400 "dhcp6_parser.cc"
     break;
 
-  case 189:
-#line 709 "dhcp6_parser.yy"
+  case 191:
+#line 716 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1397 "dhcp6_parser.cc"
+#line 1406 "dhcp6_parser.cc"
     break;
 
-  case 190:
-#line 712 "dhcp6_parser.yy"
+  case 192:
+#line 719 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1405 "dhcp6_parser.cc"
+#line 1414 "dhcp6_parser.cc"
     break;
 
-  case 191:
-#line 714 "dhcp6_parser.yy"
+  case 193:
+#line 721 "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 1415 "dhcp6_parser.cc"
+#line 1424 "dhcp6_parser.cc"
     break;
 
-  case 192:
-#line 720 "dhcp6_parser.yy"
+  case 194:
+#line 727 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1423 "dhcp6_parser.cc"
+#line 1432 "dhcp6_parser.cc"
     break;
 
-  case 193:
-#line 722 "dhcp6_parser.yy"
+  case 195:
+#line 729 "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 1433 "dhcp6_parser.cc"
+#line 1442 "dhcp6_parser.cc"
     break;
 
-  case 194:
-#line 728 "dhcp6_parser.yy"
+  case 196:
+#line 735 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1441 "dhcp6_parser.cc"
+#line 1450 "dhcp6_parser.cc"
     break;
 
-  case 195:
-#line 730 "dhcp6_parser.yy"
+  case 197:
+#line 737 "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 1451 "dhcp6_parser.cc"
+#line 1460 "dhcp6_parser.cc"
     break;
 
-  case 196:
-#line 736 "dhcp6_parser.yy"
+  case 198:
+#line 743 "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 1460 "dhcp6_parser.cc"
+#line 1469 "dhcp6_parser.cc"
     break;
 
-  case 197:
-#line 741 "dhcp6_parser.yy"
+  case 199:
+#line 748 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1468 "dhcp6_parser.cc"
+#line 1477 "dhcp6_parser.cc"
     break;
 
-  case 198:
-#line 743 "dhcp6_parser.yy"
+  case 200:
+#line 750 "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 1478 "dhcp6_parser.cc"
+#line 1487 "dhcp6_parser.cc"
     break;
 
-  case 199:
-#line 749 "dhcp6_parser.yy"
+  case 201:
+#line 756 "dhcp6_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1487 "dhcp6_parser.cc"
+#line 1496 "dhcp6_parser.cc"
     break;
 
-  case 200:
-#line 754 "dhcp6_parser.yy"
+  case 202:
+#line 761 "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 1496 "dhcp6_parser.cc"
+#line 1505 "dhcp6_parser.cc"
     break;
 
-  case 201:
-#line 759 "dhcp6_parser.yy"
+  case 203:
+#line 766 "dhcp6_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1505 "dhcp6_parser.cc"
+#line 1514 "dhcp6_parser.cc"
     break;
 
-  case 202:
-#line 764 "dhcp6_parser.yy"
+  case 204:
+#line 771 "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 1514 "dhcp6_parser.cc"
+#line 1523 "dhcp6_parser.cc"
     break;
 
-  case 203:
-#line 769 "dhcp6_parser.yy"
+  case 205:
+#line 776 "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 1523 "dhcp6_parser.cc"
+#line 1532 "dhcp6_parser.cc"
     break;
 
-  case 204:
-#line 774 "dhcp6_parser.yy"
+  case 206:
+#line 781 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-row-errors", n);
 }
-#line 1532 "dhcp6_parser.cc"
+#line 1541 "dhcp6_parser.cc"
     break;
 
-  case 205:
-#line 779 "dhcp6_parser.yy"
+  case 207:
+#line 786 "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 1541 "dhcp6_parser.cc"
+#line 1550 "dhcp6_parser.cc"
     break;
 
-  case 206:
-#line 784 "dhcp6_parser.yy"
+  case 208:
+#line 791 "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 1550 "dhcp6_parser.cc"
+#line 1559 "dhcp6_parser.cc"
     break;
 
-  case 207:
-#line 789 "dhcp6_parser.yy"
+  case 209:
+#line 796 "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 1559 "dhcp6_parser.cc"
+#line 1568 "dhcp6_parser.cc"
     break;
 
-  case 208:
-#line 794 "dhcp6_parser.yy"
+  case 210:
+#line 801 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1567 "dhcp6_parser.cc"
+#line 1576 "dhcp6_parser.cc"
     break;
 
-  case 209:
-#line 796 "dhcp6_parser.yy"
+  case 211:
+#line 803 "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 1577 "dhcp6_parser.cc"
+#line 1586 "dhcp6_parser.cc"
     break;
 
-  case 210:
-#line 802 "dhcp6_parser.yy"
+  case 212:
+#line 809 "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 1586 "dhcp6_parser.cc"
+#line 1595 "dhcp6_parser.cc"
     break;
 
-  case 211:
-#line 807 "dhcp6_parser.yy"
+  case 213:
+#line 814 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1594 "dhcp6_parser.cc"
+#line 1603 "dhcp6_parser.cc"
     break;
 
-  case 212:
-#line 809 "dhcp6_parser.yy"
+  case 214:
+#line 816 "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 1604 "dhcp6_parser.cc"
+#line 1613 "dhcp6_parser.cc"
     break;
 
-  case 213:
-#line 815 "dhcp6_parser.yy"
+  case 215:
+#line 822 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1612 "dhcp6_parser.cc"
+#line 1621 "dhcp6_parser.cc"
     break;
 
-  case 214:
-#line 817 "dhcp6_parser.yy"
+  case 216:
+#line 824 "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 1622 "dhcp6_parser.cc"
+#line 1631 "dhcp6_parser.cc"
     break;
 
-  case 215:
-#line 823 "dhcp6_parser.yy"
+  case 217:
+#line 830 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1630 "dhcp6_parser.cc"
+#line 1639 "dhcp6_parser.cc"
     break;
 
-  case 216:
-#line 825 "dhcp6_parser.yy"
+  case 218:
+#line 832 "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 1640 "dhcp6_parser.cc"
+#line 1649 "dhcp6_parser.cc"
     break;
 
-  case 217:
-#line 831 "dhcp6_parser.yy"
+  case 219:
+#line 838 "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 1651 "dhcp6_parser.cc"
+#line 1660 "dhcp6_parser.cc"
     break;
 
-  case 218:
-#line 836 "dhcp6_parser.yy"
+  case 220:
+#line 843 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1660 "dhcp6_parser.cc"
+#line 1669 "dhcp6_parser.cc"
     break;
 
-  case 222:
-#line 846 "dhcp6_parser.yy"
+  case 224:
+#line 853 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1668 "dhcp6_parser.cc"
+#line 1677 "dhcp6_parser.cc"
     break;
 
-  case 223:
-#line 848 "dhcp6_parser.yy"
+  case 225:
+#line 855 "dhcp6_parser.yy"
     {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1684,307 +1693,307 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1688 "dhcp6_parser.cc"
+#line 1697 "dhcp6_parser.cc"
     break;
 
-  case 224:
-#line 864 "dhcp6_parser.yy"
+  case 226:
+#line 871 "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 1699 "dhcp6_parser.cc"
+#line 1708 "dhcp6_parser.cc"
     break;
 
-  case 225:
-#line 869 "dhcp6_parser.yy"
+  case 227:
+#line 876 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1708 "dhcp6_parser.cc"
+#line 1717 "dhcp6_parser.cc"
     break;
 
-  case 230:
-#line 882 "dhcp6_parser.yy"
+  case 232:
+#line 889 "dhcp6_parser.yy"
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1717 "dhcp6_parser.cc"
+#line 1726 "dhcp6_parser.cc"
     break;
 
-  case 231:
-#line 887 "dhcp6_parser.yy"
+  case 233:
+#line 894 "dhcp6_parser.yy"
     {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1726 "dhcp6_parser.cc"
+#line 1735 "dhcp6_parser.cc"
     break;
 
-  case 232:
-#line 892 "dhcp6_parser.yy"
+  case 234:
+#line 899 "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 1737 "dhcp6_parser.cc"
+#line 1746 "dhcp6_parser.cc"
     break;
 
-  case 233:
-#line 897 "dhcp6_parser.yy"
+  case 235:
+#line 904 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1746 "dhcp6_parser.cc"
+#line 1755 "dhcp6_parser.cc"
     break;
 
-  case 239:
-#line 911 "dhcp6_parser.yy"
+  case 241:
+#line 918 "dhcp6_parser.yy"
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1755 "dhcp6_parser.cc"
+#line 1764 "dhcp6_parser.cc"
     break;
 
-  case 240:
-#line 916 "dhcp6_parser.yy"
+  case 242:
+#line 923 "dhcp6_parser.yy"
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1764 "dhcp6_parser.cc"
+#line 1773 "dhcp6_parser.cc"
     break;
 
-  case 241:
-#line 923 "dhcp6_parser.yy"
+  case 243:
+#line 930 "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 1775 "dhcp6_parser.cc"
+#line 1784 "dhcp6_parser.cc"
     break;
 
-  case 242:
-#line 928 "dhcp6_parser.yy"
+  case 244:
+#line 935 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1784 "dhcp6_parser.cc"
+#line 1793 "dhcp6_parser.cc"
     break;
 
-  case 243:
-#line 933 "dhcp6_parser.yy"
+  case 245:
+#line 940 "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 1795 "dhcp6_parser.cc"
+#line 1804 "dhcp6_parser.cc"
     break;
 
-  case 244:
-#line 938 "dhcp6_parser.yy"
+  case 246:
+#line 945 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1804 "dhcp6_parser.cc"
+#line 1813 "dhcp6_parser.cc"
     break;
 
-  case 249:
-#line 951 "dhcp6_parser.yy"
+  case 251:
+#line 958 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1814 "dhcp6_parser.cc"
+#line 1823 "dhcp6_parser.cc"
     break;
 
-  case 250:
-#line 955 "dhcp6_parser.yy"
+  case 252:
+#line 962 "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 1824 "dhcp6_parser.cc"
+#line 1833 "dhcp6_parser.cc"
     break;
 
-  case 251:
-#line 961 "dhcp6_parser.yy"
+  case 253:
+#line 968 "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 1834 "dhcp6_parser.cc"
+#line 1843 "dhcp6_parser.cc"
     break;
 
-  case 252:
-#line 965 "dhcp6_parser.yy"
+  case 254:
+#line 972 "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 1844 "dhcp6_parser.cc"
+#line 1853 "dhcp6_parser.cc"
     break;
 
-  case 258:
-#line 980 "dhcp6_parser.yy"
+  case 260:
+#line 987 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1852 "dhcp6_parser.cc"
+#line 1861 "dhcp6_parser.cc"
     break;
 
-  case 259:
-#line 982 "dhcp6_parser.yy"
+  case 261:
+#line 989 "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 1862 "dhcp6_parser.cc"
+#line 1871 "dhcp6_parser.cc"
     break;
 
-  case 260:
-#line 988 "dhcp6_parser.yy"
+  case 262:
+#line 995 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1870 "dhcp6_parser.cc"
+#line 1879 "dhcp6_parser.cc"
     break;
 
-  case 261:
-#line 990 "dhcp6_parser.yy"
+  case 263:
+#line 997 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1879 "dhcp6_parser.cc"
+#line 1888 "dhcp6_parser.cc"
     break;
 
-  case 262:
-#line 996 "dhcp6_parser.yy"
+  case 264:
+#line 1003 "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 1890 "dhcp6_parser.cc"
+#line 1899 "dhcp6_parser.cc"
     break;
 
-  case 263:
-#line 1001 "dhcp6_parser.yy"
+  case 265:
+#line 1008 "dhcp6_parser.yy"
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1900 "dhcp6_parser.cc"
+#line 1909 "dhcp6_parser.cc"
     break;
 
-  case 272:
-#line 1019 "dhcp6_parser.yy"
+  case 274:
+#line 1026 "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 1909 "dhcp6_parser.cc"
+#line 1918 "dhcp6_parser.cc"
     break;
 
-  case 273:
-#line 1024 "dhcp6_parser.yy"
+  case 275:
+#line 1031 "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 1918 "dhcp6_parser.cc"
+#line 1927 "dhcp6_parser.cc"
     break;
 
-  case 274:
-#line 1029 "dhcp6_parser.yy"
+  case 276:
+#line 1036 "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 1927 "dhcp6_parser.cc"
+#line 1936 "dhcp6_parser.cc"
     break;
 
-  case 275:
-#line 1034 "dhcp6_parser.yy"
+  case 277:
+#line 1041 "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 1936 "dhcp6_parser.cc"
+#line 1945 "dhcp6_parser.cc"
     break;
 
-  case 276:
-#line 1039 "dhcp6_parser.yy"
+  case 278:
+#line 1046 "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 1945 "dhcp6_parser.cc"
+#line 1954 "dhcp6_parser.cc"
     break;
 
-  case 277:
-#line 1044 "dhcp6_parser.yy"
+  case 279:
+#line 1051 "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 1954 "dhcp6_parser.cc"
+#line 1963 "dhcp6_parser.cc"
     break;
 
-  case 278:
-#line 1052 "dhcp6_parser.yy"
+  case 280:
+#line 1059 "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 1965 "dhcp6_parser.cc"
+#line 1974 "dhcp6_parser.cc"
     break;
 
-  case 279:
-#line 1057 "dhcp6_parser.yy"
+  case 281:
+#line 1064 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1974 "dhcp6_parser.cc"
+#line 1983 "dhcp6_parser.cc"
     break;
 
-  case 284:
-#line 1077 "dhcp6_parser.yy"
+  case 286:
+#line 1084 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1984 "dhcp6_parser.cc"
+#line 1993 "dhcp6_parser.cc"
     break;
 
-  case 285:
-#line 1081 "dhcp6_parser.yy"
+  case 287:
+#line 1088 "dhcp6_parser.yy"
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -2006,267 +2015,267 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2010 "dhcp6_parser.cc"
+#line 2019 "dhcp6_parser.cc"
     break;
 
-  case 286:
-#line 1103 "dhcp6_parser.yy"
+  case 288:
+#line 1110 "dhcp6_parser.yy"
     {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2020 "dhcp6_parser.cc"
+#line 2029 "dhcp6_parser.cc"
     break;
 
-  case 287:
-#line 1107 "dhcp6_parser.yy"
+  case 289:
+#line 1114 "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 2030 "dhcp6_parser.cc"
+#line 2039 "dhcp6_parser.cc"
     break;
 
-  case 317:
-#line 1148 "dhcp6_parser.yy"
+  case 320:
+#line 1156 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2038 "dhcp6_parser.cc"
+#line 2047 "dhcp6_parser.cc"
     break;
 
-  case 318:
-#line 1150 "dhcp6_parser.yy"
+  case 321:
+#line 1158 "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 2048 "dhcp6_parser.cc"
+#line 2057 "dhcp6_parser.cc"
     break;
 
-  case 319:
-#line 1156 "dhcp6_parser.yy"
+  case 322:
+#line 1164 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2056 "dhcp6_parser.cc"
+#line 2065 "dhcp6_parser.cc"
     break;
 
-  case 320:
-#line 1158 "dhcp6_parser.yy"
+  case 323:
+#line 1166 "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 2066 "dhcp6_parser.cc"
+#line 2075 "dhcp6_parser.cc"
     break;
 
-  case 321:
-#line 1164 "dhcp6_parser.yy"
+  case 324:
+#line 1172 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2074 "dhcp6_parser.cc"
+#line 2083 "dhcp6_parser.cc"
     break;
 
-  case 322:
-#line 1166 "dhcp6_parser.yy"
+  case 325:
+#line 1174 "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 2084 "dhcp6_parser.cc"
+#line 2093 "dhcp6_parser.cc"
     break;
 
-  case 323:
-#line 1172 "dhcp6_parser.yy"
+  case 326:
+#line 1180 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2092 "dhcp6_parser.cc"
+#line 2101 "dhcp6_parser.cc"
     break;
 
-  case 324:
-#line 1174 "dhcp6_parser.yy"
+  case 327:
+#line 1182 "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 2102 "dhcp6_parser.cc"
+#line 2111 "dhcp6_parser.cc"
     break;
 
-  case 325:
-#line 1180 "dhcp6_parser.yy"
+  case 328:
+#line 1188 "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 2113 "dhcp6_parser.cc"
+#line 2122 "dhcp6_parser.cc"
     break;
 
-  case 326:
-#line 1185 "dhcp6_parser.yy"
+  case 329:
+#line 1193 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2122 "dhcp6_parser.cc"
+#line 2131 "dhcp6_parser.cc"
     break;
 
-  case 327:
-#line 1190 "dhcp6_parser.yy"
+  case 330:
+#line 1198 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2130 "dhcp6_parser.cc"
+#line 2139 "dhcp6_parser.cc"
     break;
 
-  case 328:
-#line 1192 "dhcp6_parser.yy"
+  case 331:
+#line 1200 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2139 "dhcp6_parser.cc"
+#line 2148 "dhcp6_parser.cc"
     break;
 
-  case 329:
-#line 1197 "dhcp6_parser.yy"
+  case 332:
+#line 1205 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2145 "dhcp6_parser.cc"
+#line 2154 "dhcp6_parser.cc"
     break;
 
-  case 330:
-#line 1198 "dhcp6_parser.yy"
+  case 333:
+#line 1206 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2151 "dhcp6_parser.cc"
+#line 2160 "dhcp6_parser.cc"
     break;
 
-  case 331:
-#line 1199 "dhcp6_parser.yy"
+  case 334:
+#line 1207 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2157 "dhcp6_parser.cc"
+#line 2166 "dhcp6_parser.cc"
     break;
 
-  case 332:
-#line 1200 "dhcp6_parser.yy"
+  case 335:
+#line 1208 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2163 "dhcp6_parser.cc"
+#line 2172 "dhcp6_parser.cc"
     break;
 
-  case 333:
-#line 1203 "dhcp6_parser.yy"
+  case 336:
+#line 1211 "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 2172 "dhcp6_parser.cc"
+#line 2181 "dhcp6_parser.cc"
     break;
 
-  case 334:
-#line 1208 "dhcp6_parser.yy"
+  case 337:
+#line 1216 "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 2181 "dhcp6_parser.cc"
+#line 2190 "dhcp6_parser.cc"
     break;
 
-  case 335:
-#line 1216 "dhcp6_parser.yy"
+  case 338:
+#line 1224 "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 2192 "dhcp6_parser.cc"
+#line 2201 "dhcp6_parser.cc"
     break;
 
-  case 336:
-#line 1221 "dhcp6_parser.yy"
+  case 339:
+#line 1229 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2201 "dhcp6_parser.cc"
+#line 2210 "dhcp6_parser.cc"
     break;
 
-  case 341:
-#line 1236 "dhcp6_parser.yy"
+  case 344:
+#line 1244 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2211 "dhcp6_parser.cc"
+#line 2220 "dhcp6_parser.cc"
     break;
 
-  case 342:
-#line 1240 "dhcp6_parser.yy"
+  case 345:
+#line 1248 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 2219 "dhcp6_parser.cc"
+#line 2228 "dhcp6_parser.cc"
     break;
 
-  case 369:
-#line 1278 "dhcp6_parser.yy"
+  case 373:
+#line 1287 "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 2230 "dhcp6_parser.cc"
+#line 2239 "dhcp6_parser.cc"
     break;
 
-  case 370:
-#line 1283 "dhcp6_parser.yy"
+  case 374:
+#line 1292 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2239 "dhcp6_parser.cc"
+#line 2248 "dhcp6_parser.cc"
     break;
 
-  case 371:
-#line 1291 "dhcp6_parser.yy"
+  case 375:
+#line 1300 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2248 "dhcp6_parser.cc"
+#line 2257 "dhcp6_parser.cc"
     break;
 
-  case 372:
-#line 1294 "dhcp6_parser.yy"
+  case 376:
+#line 1303 "dhcp6_parser.yy"
     {
     // parsing completed
 }
-#line 2256 "dhcp6_parser.cc"
+#line 2265 "dhcp6_parser.cc"
     break;
 
-  case 377:
-#line 1310 "dhcp6_parser.yy"
+  case 381:
+#line 1319 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2266 "dhcp6_parser.cc"
+#line 2275 "dhcp6_parser.cc"
     break;
 
-  case 378:
-#line 1314 "dhcp6_parser.yy"
+  case 382:
+#line 1323 "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));
@@ -2274,21 +2283,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2278 "dhcp6_parser.cc"
+#line 2287 "dhcp6_parser.cc"
     break;
 
-  case 379:
-#line 1325 "dhcp6_parser.yy"
+  case 383:
+#line 1334 "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 2288 "dhcp6_parser.cc"
+#line 2297 "dhcp6_parser.cc"
     break;
 
-  case 380:
-#line 1329 "dhcp6_parser.yy"
+  case 384:
+#line 1338 "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));
@@ -2296,280 +2305,280 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2300 "dhcp6_parser.cc"
+#line 2309 "dhcp6_parser.cc"
     break;
 
-  case 396:
-#line 1361 "dhcp6_parser.yy"
+  case 400:
+#line 1370 "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 2309 "dhcp6_parser.cc"
+#line 2318 "dhcp6_parser.cc"
     break;
 
-  case 398:
-#line 1368 "dhcp6_parser.yy"
+  case 402:
+#line 1377 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2317 "dhcp6_parser.cc"
+#line 2326 "dhcp6_parser.cc"
     break;
 
-  case 399:
-#line 1370 "dhcp6_parser.yy"
+  case 403:
+#line 1379 "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 2327 "dhcp6_parser.cc"
+#line 2336 "dhcp6_parser.cc"
     break;
 
-  case 400:
-#line 1376 "dhcp6_parser.yy"
+  case 404:
+#line 1385 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2335 "dhcp6_parser.cc"
+#line 2344 "dhcp6_parser.cc"
     break;
 
-  case 401:
-#line 1378 "dhcp6_parser.yy"
+  case 405:
+#line 1387 "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 2345 "dhcp6_parser.cc"
+#line 2354 "dhcp6_parser.cc"
     break;
 
-  case 402:
-#line 1384 "dhcp6_parser.yy"
+  case 406:
+#line 1393 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2353 "dhcp6_parser.cc"
+#line 2362 "dhcp6_parser.cc"
     break;
 
-  case 403:
-#line 1386 "dhcp6_parser.yy"
+  case 407:
+#line 1395 "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 2363 "dhcp6_parser.cc"
+#line 2372 "dhcp6_parser.cc"
     break;
 
-  case 405:
-#line 1394 "dhcp6_parser.yy"
+  case 409:
+#line 1403 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2371 "dhcp6_parser.cc"
+#line 2380 "dhcp6_parser.cc"
     break;
 
-  case 406:
-#line 1396 "dhcp6_parser.yy"
+  case 410:
+#line 1405 "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 2381 "dhcp6_parser.cc"
+#line 2390 "dhcp6_parser.cc"
     break;
 
-  case 407:
-#line 1402 "dhcp6_parser.yy"
+  case 411:
+#line 1411 "dhcp6_parser.yy"
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2390 "dhcp6_parser.cc"
+#line 2399 "dhcp6_parser.cc"
     break;
 
-  case 408:
-#line 1411 "dhcp6_parser.yy"
+  case 412:
+#line 1420 "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 2401 "dhcp6_parser.cc"
+#line 2410 "dhcp6_parser.cc"
     break;
 
-  case 409:
-#line 1416 "dhcp6_parser.yy"
+  case 413:
+#line 1425 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2410 "dhcp6_parser.cc"
+#line 2419 "dhcp6_parser.cc"
     break;
 
-  case 414:
-#line 1435 "dhcp6_parser.yy"
+  case 418:
+#line 1444 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2420 "dhcp6_parser.cc"
+#line 2429 "dhcp6_parser.cc"
     break;
 
-  case 415:
-#line 1439 "dhcp6_parser.yy"
+  case 419:
+#line 1448 "dhcp6_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2429 "dhcp6_parser.cc"
+#line 2438 "dhcp6_parser.cc"
     break;
 
-  case 416:
-#line 1447 "dhcp6_parser.yy"
+  case 420:
+#line 1456 "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 2439 "dhcp6_parser.cc"
+#line 2448 "dhcp6_parser.cc"
     break;
 
-  case 417:
-#line 1451 "dhcp6_parser.yy"
+  case 421:
+#line 1460 "dhcp6_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2448 "dhcp6_parser.cc"
+#line 2457 "dhcp6_parser.cc"
     break;
 
-  case 432:
-#line 1484 "dhcp6_parser.yy"
+  case 436:
+#line 1493 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2456 "dhcp6_parser.cc"
+#line 2465 "dhcp6_parser.cc"
     break;
 
-  case 433:
-#line 1486 "dhcp6_parser.yy"
+  case 437:
+#line 1495 "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 2466 "dhcp6_parser.cc"
+#line 2475 "dhcp6_parser.cc"
     break;
 
-  case 436:
-#line 1496 "dhcp6_parser.yy"
+  case 440:
+#line 1505 "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 2475 "dhcp6_parser.cc"
+#line 2484 "dhcp6_parser.cc"
     break;
 
-  case 437:
-#line 1501 "dhcp6_parser.yy"
+  case 441:
+#line 1510 "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 2484 "dhcp6_parser.cc"
+#line 2493 "dhcp6_parser.cc"
     break;
 
-  case 438:
-#line 1509 "dhcp6_parser.yy"
+  case 442:
+#line 1518 "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 2495 "dhcp6_parser.cc"
+#line 2504 "dhcp6_parser.cc"
     break;
 
-  case 439:
-#line 1514 "dhcp6_parser.yy"
+  case 443:
+#line 1523 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2504 "dhcp6_parser.cc"
+#line 2513 "dhcp6_parser.cc"
     break;
 
-  case 444:
-#line 1529 "dhcp6_parser.yy"
+  case 448:
+#line 1538 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2514 "dhcp6_parser.cc"
+#line 2523 "dhcp6_parser.cc"
     break;
 
-  case 445:
-#line 1533 "dhcp6_parser.yy"
+  case 449:
+#line 1542 "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 2524 "dhcp6_parser.cc"
+#line 2533 "dhcp6_parser.cc"
     break;
 
-  case 446:
-#line 1539 "dhcp6_parser.yy"
+  case 450:
+#line 1548 "dhcp6_parser.yy"
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2534 "dhcp6_parser.cc"
+#line 2543 "dhcp6_parser.cc"
     break;
 
-  case 447:
-#line 1543 "dhcp6_parser.yy"
+  case 451:
+#line 1552 "dhcp6_parser.yy"
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 2543 "dhcp6_parser.cc"
+#line 2552 "dhcp6_parser.cc"
     break;
 
-  case 457:
-#line 1561 "dhcp6_parser.yy"
+  case 461:
+#line 1570 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2551 "dhcp6_parser.cc"
+#line 2560 "dhcp6_parser.cc"
     break;
 
-  case 458:
-#line 1563 "dhcp6_parser.yy"
+  case 462:
+#line 1572 "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 2561 "dhcp6_parser.cc"
+#line 2570 "dhcp6_parser.cc"
     break;
 
-  case 459:
-#line 1569 "dhcp6_parser.yy"
+  case 463:
+#line 1578 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2569 "dhcp6_parser.cc"
+#line 2578 "dhcp6_parser.cc"
     break;
 
-  case 460:
-#line 1571 "dhcp6_parser.yy"
+  case 464:
+#line 1580 "dhcp6_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2592,19 +2601,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2596 "dhcp6_parser.cc"
+#line 2605 "dhcp6_parser.cc"
     break;
 
-  case 461:
-#line 1594 "dhcp6_parser.yy"
+  case 465:
+#line 1603 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2604 "dhcp6_parser.cc"
+#line 2613 "dhcp6_parser.cc"
     break;
 
-  case 462:
-#line 1596 "dhcp6_parser.yy"
+  case 466:
+#line 1605 "dhcp6_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2629,41 +2638,41 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2633 "dhcp6_parser.cc"
+#line 2642 "dhcp6_parser.cc"
     break;
 
-  case 463:
-#line 1624 "dhcp6_parser.yy"
+  case 467:
+#line 1633 "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 2644 "dhcp6_parser.cc"
+#line 2653 "dhcp6_parser.cc"
     break;
 
-  case 464:
-#line 1629 "dhcp6_parser.yy"
+  case 468:
+#line 1638 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2653 "dhcp6_parser.cc"
+#line 2662 "dhcp6_parser.cc"
     break;
 
-  case 469:
-#line 1644 "dhcp6_parser.yy"
+  case 473:
+#line 1653 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2663 "dhcp6_parser.cc"
+#line 2672 "dhcp6_parser.cc"
     break;
 
-  case 470:
-#line 1648 "dhcp6_parser.yy"
+  case 474:
+#line 1657 "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));
@@ -2671,21 +2680,21 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2675 "dhcp6_parser.cc"
+#line 2684 "dhcp6_parser.cc"
     break;
 
-  case 471:
-#line 1656 "dhcp6_parser.yy"
+  case 475:
+#line 1665 "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 2685 "dhcp6_parser.cc"
+#line 2694 "dhcp6_parser.cc"
     break;
 
-  case 472:
-#line 1660 "dhcp6_parser.yy"
+  case 476:
+#line 1669 "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));
@@ -2693,544 +2702,544 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2697 "dhcp6_parser.cc"
+#line 2706 "dhcp6_parser.cc"
     break;
 
-  case 486:
-#line 1685 "dhcp6_parser.yy"
+  case 490:
+#line 1694 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2705 "dhcp6_parser.cc"
+#line 2714 "dhcp6_parser.cc"
     break;
 
-  case 487:
-#line 1687 "dhcp6_parser.yy"
+  case 491:
+#line 1696 "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 2715 "dhcp6_parser.cc"
+#line 2724 "dhcp6_parser.cc"
     break;
 
-  case 488:
-#line 1693 "dhcp6_parser.yy"
+  case 492:
+#line 1702 "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 2724 "dhcp6_parser.cc"
+#line 2733 "dhcp6_parser.cc"
     break;
 
-  case 489:
-#line 1698 "dhcp6_parser.yy"
+  case 493:
+#line 1707 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2732 "dhcp6_parser.cc"
+#line 2741 "dhcp6_parser.cc"
     break;
 
-  case 490:
-#line 1700 "dhcp6_parser.yy"
+  case 494:
+#line 1709 "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 2742 "dhcp6_parser.cc"
+#line 2751 "dhcp6_parser.cc"
     break;
 
-  case 491:
-#line 1706 "dhcp6_parser.yy"
+  case 495:
+#line 1715 "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 2751 "dhcp6_parser.cc"
+#line 2760 "dhcp6_parser.cc"
     break;
 
-  case 492:
-#line 1711 "dhcp6_parser.yy"
+  case 496:
+#line 1720 "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 2760 "dhcp6_parser.cc"
+#line 2769 "dhcp6_parser.cc"
     break;
 
-  case 493:
-#line 1719 "dhcp6_parser.yy"
+  case 497:
+#line 1728 "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 2771 "dhcp6_parser.cc"
+#line 2780 "dhcp6_parser.cc"
     break;
 
-  case 494:
-#line 1724 "dhcp6_parser.yy"
+  case 498:
+#line 1733 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2780 "dhcp6_parser.cc"
+#line 2789 "dhcp6_parser.cc"
     break;
 
-  case 499:
-#line 1737 "dhcp6_parser.yy"
+  case 503:
+#line 1746 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2790 "dhcp6_parser.cc"
+#line 2799 "dhcp6_parser.cc"
     break;
 
-  case 500:
-#line 1741 "dhcp6_parser.yy"
+  case 504:
+#line 1750 "dhcp6_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2799 "dhcp6_parser.cc"
+#line 2808 "dhcp6_parser.cc"
     break;
 
-  case 501:
-#line 1746 "dhcp6_parser.yy"
+  case 505:
+#line 1755 "dhcp6_parser.yy"
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2809 "dhcp6_parser.cc"
+#line 2818 "dhcp6_parser.cc"
     break;
 
-  case 502:
-#line 1750 "dhcp6_parser.yy"
+  case 506:
+#line 1759 "dhcp6_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2818 "dhcp6_parser.cc"
+#line 2827 "dhcp6_parser.cc"
     break;
 
-  case 518:
-#line 1777 "dhcp6_parser.yy"
+  case 522:
+#line 1786 "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 2829 "dhcp6_parser.cc"
+#line 2838 "dhcp6_parser.cc"
     break;
 
-  case 519:
-#line 1782 "dhcp6_parser.yy"
+  case 523:
+#line 1791 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2838 "dhcp6_parser.cc"
+#line 2847 "dhcp6_parser.cc"
     break;
 
-  case 520:
-#line 1787 "dhcp6_parser.yy"
+  case 524:
+#line 1796 "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 2849 "dhcp6_parser.cc"
+#line 2858 "dhcp6_parser.cc"
     break;
 
-  case 521:
-#line 1792 "dhcp6_parser.yy"
+  case 525:
+#line 1801 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2858 "dhcp6_parser.cc"
+#line 2867 "dhcp6_parser.cc"
     break;
 
-  case 522:
-#line 1797 "dhcp6_parser.yy"
+  case 526:
+#line 1806 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2866 "dhcp6_parser.cc"
+#line 2875 "dhcp6_parser.cc"
     break;
 
-  case 523:
-#line 1799 "dhcp6_parser.yy"
+  case 527:
+#line 1808 "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 2876 "dhcp6_parser.cc"
+#line 2885 "dhcp6_parser.cc"
     break;
 
-  case 524:
-#line 1805 "dhcp6_parser.yy"
+  case 528:
+#line 1814 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2884 "dhcp6_parser.cc"
+#line 2893 "dhcp6_parser.cc"
     break;
 
-  case 525:
-#line 1807 "dhcp6_parser.yy"
+  case 529:
+#line 1816 "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 2894 "dhcp6_parser.cc"
+#line 2903 "dhcp6_parser.cc"
     break;
 
-  case 526:
-#line 1813 "dhcp6_parser.yy"
+  case 530:
+#line 1822 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2902 "dhcp6_parser.cc"
+#line 2911 "dhcp6_parser.cc"
     break;
 
-  case 527:
-#line 1815 "dhcp6_parser.yy"
+  case 531:
+#line 1824 "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 2912 "dhcp6_parser.cc"
+#line 2921 "dhcp6_parser.cc"
     break;
 
-  case 528:
-#line 1821 "dhcp6_parser.yy"
+  case 532:
+#line 1830 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2920 "dhcp6_parser.cc"
+#line 2929 "dhcp6_parser.cc"
     break;
 
-  case 529:
-#line 1823 "dhcp6_parser.yy"
+  case 533:
+#line 1832 "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 2930 "dhcp6_parser.cc"
+#line 2939 "dhcp6_parser.cc"
     break;
 
-  case 530:
-#line 1829 "dhcp6_parser.yy"
+  case 534:
+#line 1838 "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 2941 "dhcp6_parser.cc"
+#line 2950 "dhcp6_parser.cc"
     break;
 
-  case 531:
-#line 1834 "dhcp6_parser.yy"
+  case 535:
+#line 1843 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2950 "dhcp6_parser.cc"
+#line 2959 "dhcp6_parser.cc"
     break;
 
-  case 532:
-#line 1842 "dhcp6_parser.yy"
+  case 536:
+#line 1851 "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 2961 "dhcp6_parser.cc"
+#line 2970 "dhcp6_parser.cc"
     break;
 
-  case 533:
-#line 1847 "dhcp6_parser.yy"
+  case 537:
+#line 1856 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2970 "dhcp6_parser.cc"
+#line 2979 "dhcp6_parser.cc"
     break;
 
-  case 536:
-#line 1856 "dhcp6_parser.yy"
+  case 540:
+#line 1865 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2978 "dhcp6_parser.cc"
+#line 2987 "dhcp6_parser.cc"
     break;
 
-  case 537:
-#line 1858 "dhcp6_parser.yy"
+  case 541:
+#line 1867 "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 2988 "dhcp6_parser.cc"
+#line 2997 "dhcp6_parser.cc"
     break;
 
-  case 538:
-#line 1867 "dhcp6_parser.yy"
+  case 542:
+#line 1876 "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 2999 "dhcp6_parser.cc"
+#line 3008 "dhcp6_parser.cc"
     break;
 
-  case 539:
-#line 1872 "dhcp6_parser.yy"
+  case 543:
+#line 1881 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3008 "dhcp6_parser.cc"
+#line 3017 "dhcp6_parser.cc"
     break;
 
-  case 542:
-#line 1881 "dhcp6_parser.yy"
+  case 546:
+#line 1890 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3018 "dhcp6_parser.cc"
+#line 3027 "dhcp6_parser.cc"
     break;
 
-  case 543:
-#line 1885 "dhcp6_parser.yy"
+  case 547:
+#line 1894 "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 3028 "dhcp6_parser.cc"
+#line 3037 "dhcp6_parser.cc"
     break;
 
-  case 556:
-#line 1910 "dhcp6_parser.yy"
+  case 560:
+#line 1919 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3036 "dhcp6_parser.cc"
+#line 3045 "dhcp6_parser.cc"
     break;
 
-  case 557:
-#line 1912 "dhcp6_parser.yy"
+  case 561:
+#line 1921 "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 3046 "dhcp6_parser.cc"
+#line 3055 "dhcp6_parser.cc"
     break;
 
-  case 558:
-#line 1918 "dhcp6_parser.yy"
+  case 562:
+#line 1927 "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 3055 "dhcp6_parser.cc"
+#line 3064 "dhcp6_parser.cc"
     break;
 
-  case 559:
-#line 1926 "dhcp6_parser.yy"
+  case 563:
+#line 1935 "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 3066 "dhcp6_parser.cc"
+#line 3075 "dhcp6_parser.cc"
     break;
 
-  case 560:
-#line 1931 "dhcp6_parser.yy"
+  case 564:
+#line 1940 "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 3077 "dhcp6_parser.cc"
+#line 3086 "dhcp6_parser.cc"
     break;
 
-  case 572:
-#line 1953 "dhcp6_parser.yy"
+  case 576:
+#line 1962 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 3085 "dhcp6_parser.cc"
+#line 3094 "dhcp6_parser.cc"
     break;
 
-  case 573:
-#line 1955 "dhcp6_parser.yy"
+  case 577:
+#line 1964 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3094 "dhcp6_parser.cc"
+#line 3103 "dhcp6_parser.cc"
     break;
 
-  case 574:
-#line 1960 "dhcp6_parser.yy"
+  case 578:
+#line 1969 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 3100 "dhcp6_parser.cc"
+#line 3109 "dhcp6_parser.cc"
     break;
 
-  case 575:
-#line 1961 "dhcp6_parser.yy"
+  case 579:
+#line 1970 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 3106 "dhcp6_parser.cc"
+#line 3115 "dhcp6_parser.cc"
     break;
 
-  case 576:
-#line 1962 "dhcp6_parser.yy"
+  case 580:
+#line 1971 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 3112 "dhcp6_parser.cc"
+#line 3121 "dhcp6_parser.cc"
     break;
 
-  case 577:
-#line 1965 "dhcp6_parser.yy"
+  case 581:
+#line 1974 "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 3121 "dhcp6_parser.cc"
+#line 3130 "dhcp6_parser.cc"
     break;
 
-  case 578:
-#line 1970 "dhcp6_parser.yy"
+  case 582:
+#line 1979 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3129 "dhcp6_parser.cc"
+#line 3138 "dhcp6_parser.cc"
     break;
 
-  case 579:
-#line 1972 "dhcp6_parser.yy"
+  case 583:
+#line 1981 "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 3139 "dhcp6_parser.cc"
+#line 3148 "dhcp6_parser.cc"
     break;
 
-  case 580:
-#line 1978 "dhcp6_parser.yy"
+  case 584:
+#line 1987 "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 3148 "dhcp6_parser.cc"
+#line 3157 "dhcp6_parser.cc"
     break;
 
-  case 581:
-#line 1983 "dhcp6_parser.yy"
+  case 585:
+#line 1992 "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 3157 "dhcp6_parser.cc"
+#line 3166 "dhcp6_parser.cc"
     break;
 
-  case 582:
-#line 1990 "dhcp6_parser.yy"
+  case 586:
+#line 1999 "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 3166 "dhcp6_parser.cc"
+#line 3175 "dhcp6_parser.cc"
     break;
 
-  case 583:
-#line 1997 "dhcp6_parser.yy"
+  case 587:
+#line 2006 "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 3177 "dhcp6_parser.cc"
+#line 3186 "dhcp6_parser.cc"
     break;
 
-  case 584:
-#line 2002 "dhcp6_parser.yy"
+  case 588:
+#line 2011 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3186 "dhcp6_parser.cc"
+#line 3195 "dhcp6_parser.cc"
     break;
 
-  case 592:
-#line 2018 "dhcp6_parser.yy"
+  case 596:
+#line 2027 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3194 "dhcp6_parser.cc"
+#line 3203 "dhcp6_parser.cc"
     break;
 
-  case 593:
-#line 2020 "dhcp6_parser.yy"
+  case 597:
+#line 2029 "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 3204 "dhcp6_parser.cc"
+#line 3213 "dhcp6_parser.cc"
     break;
 
-  case 594:
-#line 2026 "dhcp6_parser.yy"
+  case 598:
+#line 2035 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3212 "dhcp6_parser.cc"
+#line 3221 "dhcp6_parser.cc"
     break;
 
-  case 595:
-#line 2028 "dhcp6_parser.yy"
+  case 599:
+#line 2037 "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 3222 "dhcp6_parser.cc"
+#line 3231 "dhcp6_parser.cc"
     break;
 
-  case 596:
-#line 2036 "dhcp6_parser.yy"
+  case 600:
+#line 2045 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3230 "dhcp6_parser.cc"
+#line 3239 "dhcp6_parser.cc"
     break;
 
-  case 597:
-#line 2038 "dhcp6_parser.yy"
+  case 601:
+#line 2047 "dhcp6_parser.yy"
     {
     ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3266,644 +3275,644 @@ namespace isc { namespace dhcp {
 
     ctx.leave();
 }
-#line 3270 "dhcp6_parser.cc"
+#line 3279 "dhcp6_parser.cc"
     break;
 
-  case 598:
-#line 2076 "dhcp6_parser.yy"
+  case 602:
+#line 2085 "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 3281 "dhcp6_parser.cc"
+#line 3290 "dhcp6_parser.cc"
     break;
 
-  case 599:
-#line 2081 "dhcp6_parser.yy"
+  case 603:
+#line 2090 "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 3292 "dhcp6_parser.cc"
+#line 3301 "dhcp6_parser.cc"
     break;
 
-  case 600:
-#line 2088 "dhcp6_parser.yy"
+  case 604:
+#line 2097 "dhcp6_parser.yy"
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3302 "dhcp6_parser.cc"
+#line 3311 "dhcp6_parser.cc"
     break;
 
-  case 601:
-#line 2092 "dhcp6_parser.yy"
+  case 605:
+#line 2101 "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 3312 "dhcp6_parser.cc"
+#line 3321 "dhcp6_parser.cc"
     break;
 
-  case 622:
-#line 2122 "dhcp6_parser.yy"
+  case 626:
+#line 2131 "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 3321 "dhcp6_parser.cc"
+#line 3330 "dhcp6_parser.cc"
     break;
 
-  case 623:
-#line 2127 "dhcp6_parser.yy"
+  case 627:
+#line 2136 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3329 "dhcp6_parser.cc"
+#line 3338 "dhcp6_parser.cc"
     break;
 
-  case 624:
-#line 2129 "dhcp6_parser.yy"
+  case 628:
+#line 2138 "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 3339 "dhcp6_parser.cc"
+#line 3348 "dhcp6_parser.cc"
     break;
 
-  case 625:
-#line 2135 "dhcp6_parser.yy"
+  case 629:
+#line 2144 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3347 "dhcp6_parser.cc"
+#line 3356 "dhcp6_parser.cc"
     break;
 
-  case 626:
-#line 2137 "dhcp6_parser.yy"
+  case 630:
+#line 2146 "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 3357 "dhcp6_parser.cc"
+#line 3366 "dhcp6_parser.cc"
     break;
 
-  case 627:
-#line 2143 "dhcp6_parser.yy"
+  case 631:
+#line 2152 "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 3366 "dhcp6_parser.cc"
+#line 3375 "dhcp6_parser.cc"
     break;
 
-  case 628:
-#line 2148 "dhcp6_parser.yy"
+  case 632:
+#line 2157 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3374 "dhcp6_parser.cc"
+#line 3383 "dhcp6_parser.cc"
     break;
 
-  case 629:
-#line 2150 "dhcp6_parser.yy"
+  case 633:
+#line 2159 "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 3384 "dhcp6_parser.cc"
+#line 3393 "dhcp6_parser.cc"
     break;
 
-  case 630:
-#line 2156 "dhcp6_parser.yy"
+  case 634:
+#line 2165 "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 3393 "dhcp6_parser.cc"
+#line 3402 "dhcp6_parser.cc"
     break;
 
-  case 631:
-#line 2161 "dhcp6_parser.yy"
+  case 635:
+#line 2170 "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 3402 "dhcp6_parser.cc"
+#line 3411 "dhcp6_parser.cc"
     break;
 
-  case 632:
-#line 2166 "dhcp6_parser.yy"
+  case 636:
+#line 2175 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3410 "dhcp6_parser.cc"
+#line 3419 "dhcp6_parser.cc"
     break;
 
-  case 633:
-#line 2168 "dhcp6_parser.yy"
+  case 637:
+#line 2177 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3419 "dhcp6_parser.cc"
+#line 3428 "dhcp6_parser.cc"
     break;
 
-  case 634:
-#line 2174 "dhcp6_parser.yy"
+  case 638:
+#line 2183 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3425 "dhcp6_parser.cc"
+#line 3434 "dhcp6_parser.cc"
     break;
 
-  case 635:
-#line 2175 "dhcp6_parser.yy"
+  case 639:
+#line 2184 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3431 "dhcp6_parser.cc"
+#line 3440 "dhcp6_parser.cc"
     break;
 
-  case 636:
-#line 2178 "dhcp6_parser.yy"
+  case 640:
+#line 2187 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3439 "dhcp6_parser.cc"
+#line 3448 "dhcp6_parser.cc"
     break;
 
-  case 637:
-#line 2180 "dhcp6_parser.yy"
+  case 641:
+#line 2189 "dhcp6_parser.yy"
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3449 "dhcp6_parser.cc"
+#line 3458 "dhcp6_parser.cc"
     break;
 
-  case 638:
-#line 2186 "dhcp6_parser.yy"
+  case 642:
+#line 2195 "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 3458 "dhcp6_parser.cc"
+#line 3467 "dhcp6_parser.cc"
     break;
 
-  case 639:
-#line 2191 "dhcp6_parser.yy"
+  case 643:
+#line 2200 "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 3467 "dhcp6_parser.cc"
+#line 3476 "dhcp6_parser.cc"
     break;
 
-  case 640:
-#line 2196 "dhcp6_parser.yy"
+  case 644:
+#line 2205 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3475 "dhcp6_parser.cc"
+#line 3484 "dhcp6_parser.cc"
     break;
 
-  case 641:
-#line 2198 "dhcp6_parser.yy"
+  case 645:
+#line 2207 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3484 "dhcp6_parser.cc"
+#line 3493 "dhcp6_parser.cc"
     break;
 
-  case 642:
-#line 2204 "dhcp6_parser.yy"
+  case 646:
+#line 2213 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3492 "dhcp6_parser.cc"
+#line 3501 "dhcp6_parser.cc"
     break;
 
-  case 643:
-#line 2207 "dhcp6_parser.yy"
+  case 647:
+#line 2216 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3500 "dhcp6_parser.cc"
+#line 3509 "dhcp6_parser.cc"
     break;
 
-  case 644:
-#line 2210 "dhcp6_parser.yy"
+  case 648:
+#line 2219 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3508 "dhcp6_parser.cc"
+#line 3517 "dhcp6_parser.cc"
     break;
 
-  case 645:
-#line 2213 "dhcp6_parser.yy"
+  case 649:
+#line 2222 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3516 "dhcp6_parser.cc"
+#line 3525 "dhcp6_parser.cc"
     break;
 
-  case 646:
-#line 2216 "dhcp6_parser.yy"
+  case 650:
+#line 2225 "dhcp6_parser.yy"
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3525 "dhcp6_parser.cc"
+#line 3534 "dhcp6_parser.cc"
     break;
 
-  case 647:
-#line 2222 "dhcp6_parser.yy"
+  case 651:
+#line 2231 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3533 "dhcp6_parser.cc"
+#line 3542 "dhcp6_parser.cc"
     break;
 
-  case 648:
-#line 2224 "dhcp6_parser.yy"
+  case 652:
+#line 2233 "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 3543 "dhcp6_parser.cc"
+#line 3552 "dhcp6_parser.cc"
     break;
 
-  case 649:
-#line 2230 "dhcp6_parser.yy"
+  case 653:
+#line 2239 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3551 "dhcp6_parser.cc"
+#line 3560 "dhcp6_parser.cc"
     break;
 
-  case 650:
-#line 2232 "dhcp6_parser.yy"
+  case 654:
+#line 2241 "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 3561 "dhcp6_parser.cc"
+#line 3570 "dhcp6_parser.cc"
     break;
 
-  case 651:
-#line 2238 "dhcp6_parser.yy"
+  case 655:
+#line 2247 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3569 "dhcp6_parser.cc"
+#line 3578 "dhcp6_parser.cc"
     break;
 
-  case 652:
-#line 2240 "dhcp6_parser.yy"
+  case 656:
+#line 2249 "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 3579 "dhcp6_parser.cc"
+#line 3588 "dhcp6_parser.cc"
     break;
 
-  case 653:
-#line 2248 "dhcp6_parser.yy"
+  case 657:
+#line 2257 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3587 "dhcp6_parser.cc"
+#line 3596 "dhcp6_parser.cc"
     break;
 
-  case 654:
-#line 2250 "dhcp6_parser.yy"
+  case 658:
+#line 2259 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3596 "dhcp6_parser.cc"
+#line 3605 "dhcp6_parser.cc"
     break;
 
-  case 655:
-#line 2255 "dhcp6_parser.yy"
+  case 659:
+#line 2264 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3604 "dhcp6_parser.cc"
+#line 3613 "dhcp6_parser.cc"
     break;
 
-  case 656:
-#line 2257 "dhcp6_parser.yy"
+  case 660:
+#line 2266 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3613 "dhcp6_parser.cc"
+#line 3622 "dhcp6_parser.cc"
     break;
 
-  case 657:
-#line 2262 "dhcp6_parser.yy"
+  case 661:
+#line 2271 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3621 "dhcp6_parser.cc"
+#line 3630 "dhcp6_parser.cc"
     break;
 
-  case 658:
-#line 2264 "dhcp6_parser.yy"
+  case 662:
+#line 2273 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3630 "dhcp6_parser.cc"
+#line 3639 "dhcp6_parser.cc"
     break;
 
-  case 659:
-#line 2271 "dhcp6_parser.yy"
+  case 663:
+#line 2280 "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 3641 "dhcp6_parser.cc"
+#line 3650 "dhcp6_parser.cc"
     break;
 
-  case 660:
-#line 2276 "dhcp6_parser.yy"
+  case 664:
+#line 2285 "dhcp6_parser.yy"
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3651 "dhcp6_parser.cc"
+#line 3660 "dhcp6_parser.cc"
     break;
 
-  case 661:
-#line 2282 "dhcp6_parser.yy"
+  case 665:
+#line 2291 "dhcp6_parser.yy"
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3661 "dhcp6_parser.cc"
+#line 3670 "dhcp6_parser.cc"
     break;
 
-  case 662:
-#line 2286 "dhcp6_parser.yy"
+  case 666:
+#line 2295 "dhcp6_parser.yy"
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3670 "dhcp6_parser.cc"
+#line 3679 "dhcp6_parser.cc"
     break;
 
-  case 667:
-#line 2301 "dhcp6_parser.yy"
+  case 671:
+#line 2310 "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 3681 "dhcp6_parser.cc"
+#line 3690 "dhcp6_parser.cc"
     break;
 
-  case 668:
-#line 2306 "dhcp6_parser.yy"
+  case 672:
+#line 2315 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3690 "dhcp6_parser.cc"
+#line 3699 "dhcp6_parser.cc"
     break;
 
-  case 669:
-#line 2311 "dhcp6_parser.yy"
+  case 673:
+#line 2320 "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 3699 "dhcp6_parser.cc"
+#line 3708 "dhcp6_parser.cc"
     break;
 
-  case 670:
-#line 2321 "dhcp6_parser.yy"
+  case 674:
+#line 2330 "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 3710 "dhcp6_parser.cc"
+#line 3719 "dhcp6_parser.cc"
     break;
 
-  case 671:
-#line 2326 "dhcp6_parser.yy"
+  case 675:
+#line 2335 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3719 "dhcp6_parser.cc"
+#line 3728 "dhcp6_parser.cc"
     break;
 
-  case 672:
-#line 2331 "dhcp6_parser.yy"
+  case 676:
+#line 2340 "dhcp6_parser.yy"
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3729 "dhcp6_parser.cc"
+#line 3738 "dhcp6_parser.cc"
     break;
 
-  case 673:
-#line 2335 "dhcp6_parser.yy"
+  case 677:
+#line 2344 "dhcp6_parser.yy"
     {
     // parsing completed
 }
-#line 3737 "dhcp6_parser.cc"
+#line 3746 "dhcp6_parser.cc"
     break;
 
-  case 677:
-#line 2351 "dhcp6_parser.yy"
+  case 681:
+#line 2360 "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 3748 "dhcp6_parser.cc"
+#line 3757 "dhcp6_parser.cc"
     break;
 
-  case 678:
-#line 2356 "dhcp6_parser.yy"
+  case 682:
+#line 2365 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3757 "dhcp6_parser.cc"
+#line 3766 "dhcp6_parser.cc"
     break;
 
-  case 681:
-#line 2368 "dhcp6_parser.yy"
+  case 685:
+#line 2377 "dhcp6_parser.yy"
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3767 "dhcp6_parser.cc"
+#line 3776 "dhcp6_parser.cc"
     break;
 
-  case 682:
-#line 2372 "dhcp6_parser.yy"
+  case 686:
+#line 2381 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3775 "dhcp6_parser.cc"
+#line 3784 "dhcp6_parser.cc"
     break;
 
-  case 692:
-#line 2389 "dhcp6_parser.yy"
+  case 696:
+#line 2398 "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 3784 "dhcp6_parser.cc"
+#line 3793 "dhcp6_parser.cc"
     break;
 
-  case 693:
-#line 2394 "dhcp6_parser.yy"
+  case 697:
+#line 2403 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3792 "dhcp6_parser.cc"
+#line 3801 "dhcp6_parser.cc"
     break;
 
-  case 694:
-#line 2396 "dhcp6_parser.yy"
+  case 698:
+#line 2405 "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 3802 "dhcp6_parser.cc"
+#line 3811 "dhcp6_parser.cc"
     break;
 
-  case 695:
-#line 2402 "dhcp6_parser.yy"
+  case 699:
+#line 2411 "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 3813 "dhcp6_parser.cc"
+#line 3822 "dhcp6_parser.cc"
     break;
 
-  case 696:
-#line 2407 "dhcp6_parser.yy"
+  case 700:
+#line 2416 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3822 "dhcp6_parser.cc"
+#line 3831 "dhcp6_parser.cc"
     break;
 
-  case 699:
-#line 2416 "dhcp6_parser.yy"
+  case 703:
+#line 2425 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3832 "dhcp6_parser.cc"
+#line 3841 "dhcp6_parser.cc"
     break;
 
-  case 700:
-#line 2420 "dhcp6_parser.yy"
+  case 704:
+#line 2429 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3840 "dhcp6_parser.cc"
+#line 3849 "dhcp6_parser.cc"
     break;
 
-  case 708:
-#line 2435 "dhcp6_parser.yy"
+  case 712:
+#line 2444 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3848 "dhcp6_parser.cc"
+#line 3857 "dhcp6_parser.cc"
     break;
 
-  case 709:
-#line 2437 "dhcp6_parser.yy"
+  case 713:
+#line 2446 "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 3858 "dhcp6_parser.cc"
+#line 3867 "dhcp6_parser.cc"
     break;
 
-  case 710:
-#line 2443 "dhcp6_parser.yy"
+  case 714:
+#line 2452 "dhcp6_parser.yy"
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3867 "dhcp6_parser.cc"
+#line 3876 "dhcp6_parser.cc"
     break;
 
-  case 711:
-#line 2448 "dhcp6_parser.yy"
+  case 715:
+#line 2457 "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 3876 "dhcp6_parser.cc"
+#line 3885 "dhcp6_parser.cc"
     break;
 
-  case 712:
-#line 2453 "dhcp6_parser.yy"
+  case 716:
+#line 2462 "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 3885 "dhcp6_parser.cc"
+#line 3894 "dhcp6_parser.cc"
     break;
 
-  case 713:
-#line 2458 "dhcp6_parser.yy"
+  case 717:
+#line 2467 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3893 "dhcp6_parser.cc"
+#line 3902 "dhcp6_parser.cc"
     break;
 
-  case 714:
-#line 2460 "dhcp6_parser.yy"
+  case 718:
+#line 2469 "dhcp6_parser.yy"
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pattern", sev);
     ctx.leave();
 }
-#line 3903 "dhcp6_parser.cc"
+#line 3912 "dhcp6_parser.cc"
     break;
 
 
-#line 3907 "dhcp6_parser.cc"
+#line 3916 "dhcp6_parser.cc"
 
             default:
               break;
@@ -4181,122 +4190,123 @@ namespace isc { namespace dhcp {
   const short
   Dhcp6Parser::yypact_[] =
   {
-     519,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,    39,    70,    52,    69,
-      78,   134,   183,   185,   192,   193,   194,   201,   208,   220,
-     227,   250,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+     500,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,    58,    70,    89,    97,
+     112,   116,   127,   169,   184,   199,   233,   245,   254,   273,
+     276,   277,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,    70,  -137,    30,    79,    41,   435,    81,   164,
-     268,    24,    43,   275,   -67,   463,   -48,   153,  -878,   154,
-     190,   254,   251,   262,  -878,  -878,  -878,  -878,  -878,   265,
-    -878,    75,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   278,   279,   285,   311,   315,   327,
-     328,   329,   337,   338,   363,   371,  -878,  -878,  -878,  -878,
+    -878,  -878,    70,     5,    30,   109,    27,   441,   270,   172,
+     258,   272,    69,   213,   -12,   513,   133,    32,  -878,   326,
+     341,   351,   358,   356,  -878,  -878,  -878,  -878,  -878,   365,
+    -878,    73,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,   367,   369,   370,   371,   372,   373,
+     374,   375,   376,   377,   378,   379,   381,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,   375,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,   114,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,   382,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,    75,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,   381,  -878,   170,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   390,
-     391,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,   186,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   385,  -878,
+      83,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,   386,   387,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,    85,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   206,  -878,
-    -878,  -878,  -878,  -878,   399,  -878,   401,   403,  -878,  -878,
-    -878,  -878,  -878,  -878,   213,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,   260,   319,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,   350,  -878,  -878,   405,  -878,  -878,  -878,   408,
-    -878,  -878,   370,   384,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,   413,   415,  -878,
-    -878,  -878,  -878,   414,   395,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,   244,  -878,  -878,
-    -878,   420,  -878,  -878,   422,  -878,   423,   425,  -878,  -878,
-     426,   437,  -878,  -878,  -878,  -878,  -878,   258,  -878,  -878,
+    -878,   132,  -878,  -878,  -878,  -878,  -878,   388,  -878,   391,
+     397,  -878,  -878,  -878,  -878,  -878,  -878,   182,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   306,  -878,  -878,  -878,   438,   308,
-    -878,  -878,  -878,  -878,    70,    70,  -878,   261,   439,   444,
-     445,   446,   458,  -878,    30,  -878,   462,   466,   467,   469,
-     470,   471,   283,   292,   293,   307,   312,   313,   314,   316,
-     304,   317,   323,   321,   488,   489,   491,   495,   497,   499,
-     503,   505,   506,   507,   516,   517,   518,   520,   521,   522,
-     523,   339,   524,   525,   526,   528,   529,   532,    79,  -878,
-     533,   352,    41,  -878,   535,   539,   540,   541,   542,   364,
-     361,   545,   546,   547,   435,  -878,   548,    81,  -878,   549,
-     372,   550,   376,   377,   164,  -878,   551,   554,   555,   558,
-     559,   561,   562,  -878,   268,  -878,   563,   564,   386,   565,
-     567,   568,   387,  -878,    43,   573,   392,   393,  -878,   275,
-     576,   577,     4,  -878,   396,   580,   582,   407,   583,   410,
-     411,   608,   610,   397,   433,   616,   617,   463,  -878,   -48,
-    -878,   618,   456,   153,  -878,  -878,  -878,   637,   635,   636,
-      70,    70,    70,  -878,   461,   638,   640,   641,   642,   645,
+    -878,  -878,  -878,  -878,  -878,   394,   403,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,   399,  -878,  -878,   405,  -878,
+    -878,  -878,   407,  -878,  -878,   408,   410,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,   468,   647,   648,   649,   651,   472,   158,   656,
-     660,   661,   662,   663,   664,   666,   667,   669,   670,  -878,
-     672,   651,   673,   485,   490,   676,  -878,   677,  -878,  -878,
-     678,   680,   527,   530,   531,  -878,  -878,   677,   534,   695,
-    -878,   536,  -878,   537,  -878,   538,  -878,  -878,  -878,   677,
-     677,   677,   543,   544,   552,   553,  -878,   556,   557,  -878,
-     560,   566,   569,  -878,  -878,   570,  -878,  -878,  -878,   571,
-      70,  -878,  -878,   572,   574,  -878,   575,  -878,  -878,    29,
-     581,  -878,  -878,    -2,   578,  -878,  -878,   698,  -878,  -878,
-      70,    79,   -48,  -878,  -878,  -878,  -878,   153,    41,   264,
-     264,   697,  -878,   699,   700,   701,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   702,   -38,    70,   -34,   611,   704,
-     705,   708,   159,   125,    35,  -878,   463,  -878,  -878,   709,
-    -878,  -878,   711,   715,  -878,  -878,  -878,  -878,  -878,   -56,
+     417,   419,  -878,  -878,  -878,  -878,   418,   425,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+     201,  -878,  -878,  -878,   426,  -878,  -878,   427,  -878,   429,
+     430,  -878,  -878,   439,   442,  -878,  -878,  -878,  -878,  -878,
+     204,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,   205,  -878,  -878,
+    -878,   443,   227,  -878,  -878,  -878,  -878,    70,    70,  -878,
+     261,   444,   447,   449,   451,   458,  -878,    30,  -878,   462,
+     466,   467,   470,   471,   473,   293,   295,   296,   298,   299,
+     312,   313,   314,   315,   320,   322,   323,   321,   496,   499,
+     501,   506,   508,   510,   511,   512,   514,   523,   524,   525,
+     526,   528,   529,   530,   535,   346,   536,   539,   540,   541,
+     542,   543,   109,  -878,   544,   330,    27,  -878,   546,   547,
+     548,   549,   550,   380,   368,   552,   553,   554,   441,  -878,
+     555,   270,  -878,   556,   383,   557,   398,   401,   172,  -878,
+     559,   560,   562,   563,   566,   580,   585,  -878,   258,  -878,
+     592,   595,   415,   597,   598,   599,   420,  -878,    69,   600,
+     423,   432,  -878,   213,   609,   613,   147,  -878,   434,   618,
+     619,   445,   624,   446,   448,   625,   628,   450,   454,   630,
+     632,   513,  -878,   133,  -878,   634,   459,    32,  -878,  -878,
+    -878,   639,   497,   638,    70,    70,    70,  -878,   476,   654,
+     655,   656,   657,   660,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,   482,   679,   680,
+     681,   682,   503,    23,   683,   685,   686,   687,   688,   689,
+     691,   693,   692,   694,  -878,   695,   682,   696,   509,   516,
+     699,  -878,   700,  -878,  -878,   701,   702,   531,   532,   533,
+    -878,  -878,   700,   534,   703,  -878,   537,  -878,   538,  -878,
+     545,  -878,  -878,  -878,   700,   700,   700,   551,   558,   561,
+     564,  -878,   565,   567,  -878,   568,   569,   570,  -878,  -878,
+     571,  -878,  -878,  -878,   572,    70,  -878,  -878,   573,   574,
+    -878,   575,  -878,  -878,    96,   576,  -878,  -878,   -37,   577,
+    -878,  -878,   704,  -878,  -878,    70,   109,   133,  -878,  -878,
+    -878,  -878,    32,    27,   268,   268,   705,  -878,   706,   707,
+     712,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   713,
+     -45,    70,    88,   629,   716,   719,   720,   198,   101,   -13,
+    -878,   513,  -878,  -878,   721,  -878,  -878,   723,   724,  -878,
+    -878,  -878,  -878,  -878,   -38,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,   697,  -878,   309,   310,   318,   320,  -878,  -878,
-    -878,  -878,   719,   720,   721,   724,   726,  -878,   727,   728,
-    -878,  -878,  -878,   729,   730,   733,   734,  -878,   322,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,   705,  -878,   231,
+     257,   259,   265,  -878,  -878,  -878,  -878,   728,   729,   730,
+     732,   733,  -878,   734,   735,  -878,  -878,  -878,   736,   737,
+     739,   740,  -878,   278,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,   279,  -878,   741,   743,  -878,
+    -878,   744,   757,  -878,  -878,   756,   760,  -878,  -878,   758,
+     762,  -878,  -878,   761,   763,  -878,  -878,  -878,    79,  -878,
+    -878,  -878,   764,  -878,  -878,  -878,    91,  -878,  -878,  -878,
+    -878,   316,  -878,  -878,  -878,   167,  -878,  -878,   765,   766,
+    -878,  -878,   767,   769,  -878,   770,   771,   772,   773,   774,
+     775,   317,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,   776,   777,   778,  -878,  -878,  -878,  -878,   318,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-     326,  -878,   668,   738,  -878,  -878,   736,   741,  -878,  -878,
-     739,   743,  -878,  -878,   742,   744,  -878,  -878,   745,   747,
-    -878,  -878,  -878,    83,  -878,  -878,  -878,   750,  -878,  -878,
-    -878,    90,  -878,  -878,  -878,  -878,   340,  -878,  -878,  -878,
-     101,  -878,  -878,   753,   757,  -878,  -878,   758,   760,  -878,
-     761,   762,   763,   764,   765,   766,   341,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,   767,   768,   769,  -878,
-    -878,  -878,  -878,   347,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,   348,  -878,  -878,  -878,   351,
-    -878,   136,  -878,   591,  -878,   770,   772,  -878,  -878,   771,
-     775,  -878,  -878,  -878,   773,  -878,   774,  -878,  -878,  -878,
-    -878,   778,   779,   780,   781,   595,   600,   603,   602,   605,
-     786,   607,   609,   788,   790,   791,   612,   613,   614,   615,
-     264,  -878,  -878,   264,  -878,   697,   435,  -878,   699,    43,
-    -878,   700,   275,  -878,   701,   579,  -878,   702,   -38,  -878,
-    -878,   -34,  -878,   794,   611,  -878,    84,   704,  -878,   268,
-    -878,   705,   -67,  -878,   708,   619,   620,   621,   622,   623,
-     624,   159,  -878,   797,   798,   625,   626,   627,   125,  -878,
-     808,   809,    35,  -878,  -878,   127,   709,  -878,  -878,   810,
-     811,    81,  -878,   711,   164,  -878,   715,   813,  -878,  -878,
-     256,   632,   644,   646,  -878,  -878,  -878,  -878,  -878,   654,
-    -878,  -878,   657,   658,   671,  -878,  -878,  -878,  -878,  -878,
-     354,  -878,   357,  -878,   812,  -878,   815,  -878,  -878,  -878,
+     319,  -878,  -878,  -878,   325,  -878,   171,  -878,   584,  -878,
+     779,   780,  -878,  -878,   781,   783,  -878,  -878,  -878,   782,
+    -878,   785,  -878,  -878,  -878,  -878,   784,   788,   789,   790,
+     604,   521,   610,   611,   612,   792,   614,   615,   797,   798,
+     799,   620,   621,   617,   622,   268,  -878,  -878,   268,  -878,
+     705,   441,  -878,   706,    69,  -878,   707,   213,  -878,   712,
+     527,  -878,   713,   -45,  -878,  -878,    88,  -878,   804,   629,
+    -878,    47,   716,  -878,   258,  -878,   719,   -12,  -878,   720,
+     626,   627,   631,   633,   635,   636,   198,  -878,   805,   806,
+     637,   640,   641,   101,  -878,   809,   810,   -13,  -878,  -878,
+      -9,   721,  -878,  -878,   811,   812,   270,  -878,   723,   172,
+    -878,   724,   815,  -878,  -878,   119,   644,   645,   648,  -878,
+    -878,  -878,  -878,  -878,   650,  -878,  -878,   651,   653,   658,
+    -878,  -878,  -878,  -878,  -878,   331,  -878,   332,  -878,   816,
+    -878,   836,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   358,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,   674,  -878,  -878,
-     814,  -878,  -878,  -878,  -878,  -878,   816,   818,  -878,  -878,
-    -878,  -878,  -878,   822,  -878,   373,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,    32,   679,  -878,  -878,  -878,  -878,
-     689,   692,  -878,  -878,   828,  -878,  -878,  -878,  -878,  -878,
-     374,  -878,  -878,  -878,  -878,  -878,  -878,   703,   383,  -878,
-     385,  -878,   714,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   579,
-    -878,  -878,   835,   633,  -878,    84,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,   840,   718,   847,   127,  -878,
-    -878,  -878,  -878,  -878,  -878,   722,  -878,  -878,   848,  -878,
-     735,  -878,  -878,   897,  -878,  -878,   180,  -878,    67,   897,
-    -878,  -878,   851,   903,   906,  -878,   394,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   913,   740,   737,   746,   915,    67,
-    -878,   748,  -878,  -878,  -878,   749,  -878,  -878,  -878
+    -878,  -878,  -878,  -878,   335,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,   661,  -878,  -878,   819,  -878,  -878,  -878,
+    -878,  -878,   838,   846,  -878,  -878,  -878,  -878,  -878,   848,
+    -878,   339,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+      94,   674,  -878,  -878,  -878,  -878,   675,   676,  -878,  -878,
+     858,  -878,  -878,  -878,  -878,  -878,   342,  -878,  -878,  -878,
+    -878,  -878,  -878,   718,   343,  -878,   349,  -878,   725,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,   527,  -878,  -878,   863,   690,
+    -878,    47,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,   876,   722,   887,    -9,  -878,  -878,  -878,  -878,  -878,
+    -878,   726,  -878,  -878,   907,  -878,   731,  -878,  -878,   916,
+    -878,  -878,   230,  -878,    19,   916,  -878,  -878,   920,   922,
+     928,  -878,   350,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+     929,   747,   750,   751,   933,    19,  -878,   754,  -878,  -878,
+    -878,   755,  -878,  -878,  -878
   };
 
   const unsigned short
@@ -4306,164 +4316,165 @@ 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,   137,     9,
-     286,    11,   446,    13,   471,    15,   501,    17,   371,    19,
-     379,    21,   416,    23,   251,    25,   600,    27,   672,    29,
-     661,    31,    49,    43,     0,     0,     0,     0,     0,     0,
-     503,     0,   381,   418,     0,     0,     0,     0,    51,     0,
-      50,     0,     0,    44,    70,   670,   653,   655,   657,     0,
-      69,     0,    62,    64,    66,    67,    68,    65,   119,   659,
-     135,   149,   151,   153,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   133,   278,   369,   408,
-     459,   461,   327,   335,   224,   241,   232,   217,   538,   493,
-     243,   262,   559,     0,   583,   596,   598,   649,   651,   677,
-     118,     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,   116,   117,   109,   115,   146,     0,   145,     0,   139,
-     141,   142,   143,   144,   438,   463,   317,   319,   321,     0,
-       0,   325,   323,   532,   316,   290,   291,   292,   293,   294,
-     295,   296,   297,   313,   314,   315,     0,   288,   301,   302,
-     303,   306,   307,   309,   304,   305,   298,   299,   311,   312,
-     300,   308,   310,   457,   456,   452,   453,   451,     0,   448,
-     450,   454,   455,   486,     0,   489,     0,     0,   485,   479,
-     480,   478,   483,   484,     0,   473,   475,   476,   481,   482,
-     477,   530,   518,   520,   522,   524,   526,   528,   517,   514,
-     515,   516,     0,   504,   505,   509,   510,   507,   511,   512,
-     513,   508,     0,   398,   197,     0,   402,   400,   405,     0,
-     394,   395,     0,   382,   383,   385,   397,   386,   387,   388,
-     404,   389,   390,   391,   392,   393,   432,     0,     0,   430,
-     431,   434,   435,     0,   419,   420,   422,   423,   424,   425,
-     426,   427,   428,   429,   258,   260,   255,     0,   253,   256,
-     257,     0,   623,   625,     0,   628,     0,     0,   632,   636,
-       0,     0,   640,   647,   621,   619,   620,     0,   602,   604,
-     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   617,   618,     0,   674,   676,   667,     0,     0,
-     663,   665,   666,    48,     0,     0,    41,     0,     0,     0,
-       0,     0,     0,    59,     0,    61,     0,     0,     0,     0,
+      39,     3,    37,    38,    60,     5,    72,     7,   139,     9,
+     288,    11,   450,    13,   475,    15,   505,    17,   375,    19,
+     383,    21,   420,    23,   253,    25,   604,    27,   676,    29,
+     665,    31,    49,    43,     0,     0,     0,     0,     0,     0,
+     507,     0,   385,   422,     0,     0,     0,     0,    51,     0,
+      50,     0,     0,    44,    70,   674,   657,   659,   661,     0,
+      69,     0,    62,    64,    66,    67,    68,    65,   120,   663,
+     137,   151,   153,   155,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   135,   280,   373,
+     412,   463,   465,   330,   338,   226,   243,   234,   219,   542,
+     497,   245,   264,   563,     0,   587,   600,   602,   653,   655,
+     681,   119,     0,    74,    76,    77,    78,    79,    80,    81,
+      82,    83,    84,   118,   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,   116,   117,   109,   115,   148,     0,   147,
+       0,   141,   143,   144,   145,   146,   442,   467,   320,   322,
+     324,     0,     0,   328,   326,   536,   319,   292,   293,   294,
+     295,   296,   297,   298,   299,   318,   315,   316,   317,     0,
+     290,   303,   304,   305,   308,   309,   311,   306,   307,   300,
+     301,   313,   314,   302,   310,   312,   461,   460,   456,   457,
+     455,     0,   452,   454,   458,   459,   490,     0,   493,     0,
+       0,   489,   483,   484,   482,   487,   488,     0,   477,   479,
+     480,   485,   486,   481,   534,   522,   524,   526,   528,   530,
+     532,   521,   518,   519,   520,     0,   508,   509,   513,   514,
+     511,   515,   516,   517,   512,     0,   402,   199,     0,   406,
+     404,   409,     0,   398,   399,     0,   386,   387,   389,   401,
+     390,   391,   392,   408,   393,   394,   395,   396,   397,   436,
+       0,     0,   434,   435,   438,   439,     0,   423,   424,   426,
+     427,   428,   429,   430,   431,   432,   433,   260,   262,   257,
+       0,   255,   258,   259,     0,   627,   629,     0,   632,     0,
+       0,   636,   640,     0,     0,   644,   651,   625,   623,   624,
+       0,   606,   608,   609,   610,   611,   612,   613,   614,   615,
+     616,   617,   618,   619,   620,   621,   622,     0,   678,   680,
+     671,     0,     0,   667,   669,   670,    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,     0,    73,
-       0,     0,     0,   138,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   287,     0,     0,   447,     0,
-       0,     0,     0,     0,     0,   472,     0,     0,     0,     0,
-       0,     0,     0,   502,     0,   372,     0,     0,     0,     0,
-       0,     0,     0,   380,     0,     0,     0,     0,   417,     0,
-       0,     0,     0,   252,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   601,     0,
-     673,     0,     0,     0,   662,    52,    45,     0,     0,     0,
-       0,     0,     0,    63,     0,     0,     0,     0,     0,     0,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   582,
-       0,     0,     0,     0,     0,     0,    75,     0,   148,   140,
-       0,     0,     0,     0,     0,   333,   334,     0,     0,     0,
-     289,     0,   449,     0,   488,     0,   491,   492,   474,     0,
-       0,     0,     0,     0,     0,     0,   506,     0,     0,   396,
-       0,     0,     0,   407,   384,     0,   436,   437,   421,     0,
-       0,   254,   622,     0,     0,   627,     0,   630,   631,     0,
-       0,   638,   639,     0,     0,   603,   675,     0,   669,   664,
-       0,     0,     0,   654,   656,   658,   120,     0,     0,     0,
-       0,   155,   134,   280,   373,   410,    42,   460,   462,   329,
-     330,   331,   332,   328,   337,     0,    49,     0,     0,     0,
-     495,   245,     0,     0,     0,   597,     0,   650,   652,     0,
-      53,   147,   440,   465,   318,   320,   322,   326,   324,     0,
-     458,   487,   490,   531,   519,   521,   523,   525,   527,   529,
-     399,   198,   403,   401,   406,   433,   259,   261,   624,   626,
-     629,   634,   635,   633,   637,   642,   643,   644,   645,   646,
-     641,   648,   155,    46,     0,     0,     0,     0,   184,   190,
-     192,   194,     0,     0,     0,     0,     0,   208,     0,     0,
-     211,   213,   215,     0,     0,     0,     0,   183,     0,   161,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     175,   182,   176,   177,   178,   173,   174,   179,   180,   181,
-       0,   159,     0,   156,   157,   284,     0,   281,   282,   377,
-       0,   374,   375,   414,     0,   411,   412,   341,     0,   338,
-     339,   230,   231,     0,   226,   228,   229,     0,   239,   240,
-     236,     0,   234,   237,   238,   222,     0,   219,   221,   542,
-       0,   540,   499,     0,   496,   497,   249,     0,   246,   247,
-       0,     0,     0,     0,     0,     0,     0,   264,   266,   267,
-     268,   269,   270,   271,   572,   578,     0,     0,     0,   571,
-     568,   569,   570,     0,   561,   563,   566,   564,   565,   567,
-     592,   594,   591,   589,   590,     0,   585,   587,   588,     0,
-     681,     0,   679,    55,   444,     0,   441,   442,   469,     0,
-     466,   467,   536,   535,     0,   534,     0,    71,   671,   660,
-     136,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   150,   152,     0,   154,     0,     0,   279,     0,   381,
-     370,     0,   418,   409,     0,     0,   336,     0,     0,   225,
-     242,     0,   233,     0,     0,   218,   544,     0,   539,   503,
-     494,     0,     0,   244,     0,     0,     0,     0,     0,     0,
-       0,     0,   263,     0,     0,     0,     0,     0,     0,   560,
-       0,     0,     0,   584,   599,     0,     0,   678,    57,     0,
-      56,     0,   439,     0,     0,   464,     0,     0,   533,   668,
-       0,     0,     0,     0,   196,   199,   200,   201,   202,     0,
-     210,   203,     0,     0,     0,   205,   206,   207,   204,   162,
-       0,   158,     0,   283,     0,   376,     0,   413,   368,   356,
-     357,   358,   360,   361,   362,   349,   350,   365,   366,   367,
-     345,   346,   347,   348,   354,   355,   353,   359,     0,   343,
-     351,   363,   364,   352,   340,   227,   235,     0,   220,   556,
-       0,   554,   555,   551,   552,   553,     0,   545,   546,   548,
-     549,   550,   541,     0,   498,     0,   248,   272,   273,   274,
-     275,   276,   277,   265,     0,     0,   577,   580,   581,   562,
-       0,     0,   586,   695,     0,   693,   691,   685,   689,   690,
-       0,   683,   687,   688,   686,   680,    54,     0,     0,   443,
-       0,   468,     0,   186,   187,   188,   189,   185,   191,   193,
-     195,   209,   212,   214,   216,   160,   285,   378,   415,     0,
-     342,   223,     0,     0,   543,     0,   500,   250,   574,   575,
-     576,   573,   579,   593,   595,     0,     0,     0,     0,   682,
-      58,   445,   470,   537,   344,     0,   558,   547,     0,   692,
-       0,   684,   557,     0,   694,   699,     0,   697,     0,     0,
-     696,   708,     0,     0,     0,   713,     0,   701,   703,   704,
-     705,   706,   707,   698,     0,     0,     0,     0,     0,     0,
-     700,     0,   710,   711,   712,     0,   702,   709,   714
+       0,     0,     0,    73,     0,     0,     0,   140,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
+       0,     0,   451,     0,     0,     0,     0,     0,     0,   476,
+       0,     0,     0,     0,     0,     0,     0,   506,     0,   376,
+       0,     0,     0,     0,     0,     0,     0,   384,     0,     0,
+       0,     0,   421,     0,     0,     0,     0,   254,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   605,     0,   677,     0,     0,     0,   666,    52,
+      45,     0,     0,     0,     0,     0,     0,    63,     0,     0,
+       0,     0,     0,     0,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   586,     0,     0,     0,     0,     0,
+       0,    75,     0,   150,   142,     0,     0,     0,     0,     0,
+     336,   337,     0,     0,     0,   291,     0,   453,     0,   492,
+       0,   495,   496,   478,     0,     0,     0,     0,     0,     0,
+       0,   510,     0,     0,   400,     0,     0,     0,   411,   388,
+       0,   440,   441,   425,     0,     0,   256,   626,     0,     0,
+     631,     0,   634,   635,     0,     0,   642,   643,     0,     0,
+     607,   679,     0,   673,   668,     0,     0,     0,   658,   660,
+     662,   121,     0,     0,     0,     0,   157,   136,   282,   377,
+     414,    42,   464,   466,   332,   333,   334,   335,   331,   340,
+       0,    49,     0,     0,     0,   499,   247,     0,     0,     0,
+     601,     0,   654,   656,     0,    53,   149,   444,   469,   321,
+     323,   325,   329,   327,     0,   462,   491,   494,   535,   523,
+     525,   527,   529,   531,   533,   403,   200,   407,   405,   410,
+     437,   261,   263,   628,   630,   633,   638,   639,   637,   641,
+     646,   647,   648,   649,   650,   645,   652,   157,    46,     0,
+       0,     0,     0,   186,   192,   194,   196,     0,     0,     0,
+       0,     0,   210,     0,     0,   213,   215,   217,     0,     0,
+       0,     0,   185,     0,   163,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   177,   184,   178,   179,   180,
+     175,   176,   181,   182,   183,     0,   161,     0,   158,   159,
+     286,     0,   283,   284,   381,     0,   378,   379,   418,     0,
+     415,   416,   344,     0,   341,   342,   232,   233,     0,   228,
+     230,   231,     0,   241,   242,   238,     0,   236,   239,   240,
+     224,     0,   221,   223,   546,     0,   544,   503,     0,   500,
+     501,   251,     0,   248,   249,     0,     0,     0,     0,     0,
+       0,     0,   266,   268,   269,   270,   271,   272,   273,   576,
+     582,     0,     0,     0,   575,   572,   573,   574,     0,   565,
+     567,   570,   568,   569,   571,   596,   598,   595,   593,   594,
+       0,   589,   591,   592,     0,   685,     0,   683,    55,   448,
+       0,   445,   446,   473,     0,   470,   471,   540,   539,     0,
+     538,     0,    71,   675,   664,   138,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   152,   154,     0,   156,
+       0,     0,   281,     0,   385,   374,     0,   422,   413,     0,
+       0,   339,     0,     0,   227,   244,     0,   235,     0,     0,
+     220,   548,     0,   543,   507,   498,     0,     0,   246,     0,
+       0,     0,     0,     0,     0,     0,     0,   265,     0,     0,
+       0,     0,     0,     0,   564,     0,     0,     0,   588,   603,
+       0,     0,   682,    57,     0,    56,     0,   443,     0,     0,
+     468,     0,     0,   537,   672,     0,     0,     0,     0,   198,
+     201,   202,   203,   204,     0,   212,   205,     0,     0,     0,
+     207,   208,   209,   206,   164,     0,   160,     0,   285,     0,
+     380,     0,   417,   372,   359,   360,   361,   363,   364,   365,
+     352,   353,   371,   368,   369,   370,   348,   349,   350,   351,
+     357,   358,   356,   362,     0,   346,   354,   366,   367,   355,
+     343,   229,   237,     0,   222,   560,     0,   558,   559,   555,
+     556,   557,     0,   549,   550,   552,   553,   554,   545,     0,
+     502,     0,   250,   274,   275,   276,   277,   278,   279,   267,
+       0,     0,   581,   584,   585,   566,     0,     0,   590,   699,
+       0,   697,   695,   689,   693,   694,     0,   687,   691,   692,
+     690,   684,    54,     0,     0,   447,     0,   472,     0,   188,
+     189,   190,   191,   187,   193,   195,   197,   211,   214,   216,
+     218,   162,   287,   382,   419,     0,   345,   225,     0,     0,
+     547,     0,   504,   252,   578,   579,   580,   577,   583,   597,
+     599,     0,     0,     0,     0,   686,    58,   449,   474,   541,
+     347,     0,   562,   551,     0,   696,     0,   688,   561,     0,
+     698,   703,     0,   701,     0,     0,   700,   712,     0,     0,
+       0,   717,     0,   705,   707,   708,   709,   710,   711,   702,
+       0,     0,     0,     0,     0,     0,   704,     0,   714,   715,
+     716,     0,   706,   713,   718
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,    54,  -878,  -480,
-    -878,   366,  -878,  -878,  -878,  -878,   272,  -878,  -489,  -878,
-    -878,  -878,   -74,  -878,  -878,  -878,   584,  -878,  -878,  -878,
-    -878,   298,   496,  -878,  -878,   -70,   -46,   -40,   -36,   -22,
-     -17,   -14,     3,     7,    10,    15,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,   295,   493,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   224,  -878,    42,  -878,  -622,    48,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-     -21,  -878,  -650,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,    11,  -878,  -494,
+    -878,   218,  -878,  -878,  -878,  -878,   280,  -878,  -493,  -878,
+    -878,  -878,   -74,  -878,  -878,  -878,   578,  -878,  -878,  -878,
+    -878,   304,   502,  -878,  -878,   -70,   -46,   -40,   -36,   -22,
+     -17,   -14,     3,     7,    10,    15,    18,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,   300,   504,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,   225,  -878,    46,  -878,  -627,
+      52,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,   -21,  -878,  -655,  -878,  -878,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,    25,  -878,  -878,  -878,  -878,  -878,    33,
-    -641,  -878,  -878,  -878,  -878,    31,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,    20,  -878,  -878,  -878,    23,   455,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,    17,  -878,  -878,
-    -878,  -878,  -878,  -878,  -877,  -878,  -878,  -878,    53,  -878,
-    -878,  -878,    56,   500,  -878,  -878,  -872,  -878,  -870,  -878,
-     -11,  -878,    -5,  -878,    18,  -878,  -878,  -878,  -869,  -878,
-    -878,  -878,  -878,    46,  -878,  -878,  -139,   874,  -878,  -878,
-    -878,  -878,  -878,    55,  -878,  -878,  -878,    58,  -878,   474,
-    -878,   -69,  -878,  -878,  -878,  -878,  -878,   -66,  -878,  -878,
-    -878,  -878,  -878,   -58,  -878,  -878,  -878,    57,  -878,  -878,
-    -878,    60,  -878,   475,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,     6,  -878,  -878,  -878,     9,
-     508,  -878,  -878,   -53,  -878,   -29,  -878,  -878,  -878,  -878,
-    -878,    11,  -878,  -878,  -878,    12,   504,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,   -62,  -878,  -878,  -878,    49,  -878,
-    -878,  -878,    44,  -878,   498,   290,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -867,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,    59,  -878,  -878,
-    -878,  -124,  -878,  -878,  -878,  -878,  -878,  -878,  -878,    36,
+    -878,  -878,  -878,  -878,    33,  -878,  -878,  -878,  -878,  -878,
+      36,  -646,  -878,  -878,  -878,  -878,    37,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,    26,  -878,  -878,  -878,    29,
+     461,  -878,  -878,  -878,  -878,  -878,  -878,  -878,    22,  -878,
+    -878,  -878,  -878,  -878,  -878,  -877,  -878,  -878,  -878,    56,
+    -878,  -878,  -878,    59,   505,  -878,  -878,  -875,  -878,  -874,
+    -878,   -11,  -878,    -5,  -878,    21,  -878,  -878,  -878,  -872,
+    -878,  -878,  -878,  -878,    49,  -878,  -878,  -133,   883,  -878,
+    -878,  -878,  -878,  -878,    60,  -878,  -878,  -878,    61,  -878,
+     479,  -878,   -69,  -878,  -878,  -878,  -878,  -878,   -66,  -878,
+    -878,  -878,  -878,  -878,   -58,  -878,  -878,  -878,    62,  -878,
+    -878,  -878,    63,  -878,   475,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,  -878,    14,  -878,  -878,  -878,
+      13,   515,  -878,  -878,   -53,  -878,   -29,  -878,  -878,  -878,
+    -878,  -878,    12,  -878,  -878,  -878,    20,   517,  -878,  -878,
+    -878,  -878,  -878,  -878,  -878,   -62,  -878,  -878,  -878,    48,
+    -878,  -878,  -878,    53,  -878,   518,   294,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,    37,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,   324,   473,  -878,  -878,  -878,  -878,  -878,
+    -871,  -878,  -878,  -878,  -878,  -878,  -878,  -878,    64,  -878,
+    -878,  -878,  -121,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+      38,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,    35,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,  -878,  -878,   324,   472,  -878,  -878,  -878,  -878,
     -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,   -73,  -878,   -51,
-    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-    -878,   336,   464,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
-     343,   476,   -44,  -878,  -878,    38,  -878,  -878,  -127,  -878,
-    -878,  -878,  -878,  -878,  -878,  -147,  -878,  -878,  -166,  -878,
-    -878,  -878,  -878,  -878,  -878,  -878
+    -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,   -73,  -878,
+     -51,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,  -878,   345,   474,  -878,  -878,  -878,  -878,  -878,  -878,
+    -878,   347,   477,   -44,  -878,  -878,    41,  -878,  -878,  -126,
+    -878,  -878,  -878,  -878,  -878,  -878,  -146,  -878,  -878,  -162,
+    -878,  -878,  -878,  -878,  -878,  -878,  -878
   };
 
   const short
@@ -4471,475 +4482,478 @@ 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,   647,    92,    93,    43,    72,    89,    90,   671,   853,
-     949,   950,   737,    45,    74,   101,   102,   103,   388,    47,
-      75,   151,   152,   153,   396,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   414,   167,
-     398,    49,    76,   198,   199,   200,   440,   201,   168,   399,
-     169,   400,   170,   401,   762,   763,   764,   893,   738,   739,
-     740,   871,  1077,   741,   872,   742,   873,   743,   874,   744,
-     745,   477,   746,   747,   748,   749,   750,   751,   752,   753,
-     754,   755,   880,   756,   757,   883,   758,   884,   759,   885,
-     171,   425,   796,   797,   798,   913,   172,   422,   783,   784,
-     785,   786,   173,   424,   791,   792,   793,   794,   174,   423,
-     175,   428,   807,   808,   809,   922,    65,    84,   337,   338,
-     339,   490,   340,   491,   176,   429,   816,   817,   818,   819,
-     820,   821,   822,   823,   177,   415,   766,   767,   768,   896,
-      51,    77,   226,   227,   228,   446,   229,   447,   230,   448,
-     231,   452,   232,   451,   178,   420,   653,   234,   235,   179,
-     421,   778,   779,   780,   905,  1008,  1009,   180,   416,    59,
-      81,   770,   771,   772,   899,    61,    82,   302,   303,   304,
-     305,   306,   307,   308,   476,   309,   480,   310,   479,   311,
-     312,   481,   313,   181,   417,   774,   775,   776,   902,    63,
-      83,   323,   324,   325,   326,   327,   485,   328,   329,   330,
-     331,   237,   444,   855,   856,   857,   951,    53,    78,   248,
-     249,   250,   456,   182,   418,   183,   419,   240,   445,   859,
-     860,   861,   954,    55,    79,   264,   265,   266,   459,   267,
-     268,   461,   269,   270,   184,   427,   803,   804,   805,   919,
-      57,    80,   282,   283,   284,   285,   467,   286,   468,   287,
-     469,   288,   470,   289,   471,   290,   472,   291,   466,   242,
-     453,   864,   865,   957,   185,   426,   800,   801,   916,  1026,
-    1027,  1028,  1029,  1030,  1092,  1031,   186,   430,   833,   834,
-     835,   933,  1101,   836,   837,   934,   838,   839,   187,   188,
-     432,   845,   846,   847,   940,   848,   941,   189,   433,   190,
-     434,    67,    85,   357,   358,   359,   360,   495,   361,   496,
-     362,   363,   498,   364,   365,   366,   501,   703,   367,   502,
-     368,   369,   370,   505,   710,   371,   506,   191,   435,   192,
-     436,   104,   390,   105,   391,   106,   392,   193,   397,    71,
-      87,   379,   380,   381,   511,   382,   107,   389,    69,    86,
-     374,   375,   194,   437,   851,   852,   945,  1060,  1061,  1062,
-    1063,  1107,  1064,  1105,  1126,  1127,  1128,  1136,  1137,  1138,
-    1144,  1139,  1140,  1141,  1142,  1148
+      73,   652,    92,    93,    43,    72,    89,    90,   676,   858,
+     954,   955,   742,    45,    74,   101,   102,   103,   391,    47,
+      75,   152,   153,   154,   399,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   418,
+     169,   401,    49,    76,   200,   201,   202,   444,   203,   170,
+     402,   171,   403,   172,   404,   767,   768,   769,   898,   743,
+     744,   745,   876,  1083,   746,   877,   747,   878,   748,   879,
+     749,   750,   481,   751,   752,   753,   754,   755,   756,   757,
+     758,   759,   760,   885,   761,   762,   888,   763,   889,   764,
+     890,   173,   429,   801,   802,   803,   918,   174,   426,   788,
+     789,   790,   791,   175,   428,   796,   797,   798,   799,   176,
+     427,   177,   432,   812,   813,   814,   927,    65,    84,   340,
+     341,   342,   494,   343,   495,   178,   433,   821,   822,   823,
+     824,   825,   826,   827,   828,   179,   419,   771,   772,   773,
+     901,    51,    77,   229,   230,   231,   450,   232,   451,   233,
+     452,   234,   456,   235,   455,   180,   424,   658,   237,   238,
+     181,   425,   783,   784,   785,   910,  1014,  1015,   182,   420,
+      59,    81,   775,   776,   777,   904,    61,    82,   305,   306,
+     307,   308,   309,   310,   311,   480,   312,   484,   313,   483,
+     314,   315,   485,   316,   183,   421,   779,   780,   781,   907,
+      63,    83,   326,   327,   328,   329,   330,   489,   331,   332,
+     333,   334,   240,   448,   860,   861,   862,   956,    53,    78,
+     251,   252,   253,   460,   184,   422,   185,   423,   243,   449,
+     864,   865,   866,   959,    55,    79,   267,   268,   269,   463,
+     270,   271,   465,   272,   273,   186,   431,   808,   809,   810,
+     924,    57,    80,   285,   286,   287,   288,   471,   289,   472,
+     290,   473,   291,   474,   292,   475,   293,   476,   294,   470,
+     245,   457,   869,   870,   962,   187,   430,   805,   806,   921,
+    1032,  1033,  1034,  1035,  1036,  1098,  1037,   188,   434,   838,
+     839,   840,   938,  1107,   841,   842,   939,   843,   844,   189,
+     190,   436,   850,   851,   852,   945,   853,   946,   191,   437,
+     192,   438,    67,    85,   360,   361,   362,   363,   499,   364,
+     500,   365,   366,   502,   367,   368,   369,   505,   708,   370,
+     506,   371,   372,   373,   509,   715,   374,   510,   193,   439,
+     194,   440,   104,   393,   105,   394,   106,   395,   195,   400,
+      71,    87,   382,   383,   384,   515,   385,   107,   392,    69,
+      86,   377,   378,   196,   441,   856,   857,   950,  1066,  1067,
+    1068,  1069,  1113,  1070,  1111,  1132,  1133,  1134,  1142,  1143,
+    1144,  1150,  1145,  1146,  1147,  1148,  1154
   };
 
   const unsigned short
   Dhcp6Parser::yytable_[] =
   {
-     100,   150,   197,   214,   244,   258,   278,   215,   300,   319,
-     336,   354,   372,   830,   321,   241,   790,   322,   760,   236,
-     247,   261,   279,   202,   238,   251,   262,   280,  1001,   314,
-     332,   216,   355,  1002,   373,  1003,  1007,   217,  1013,    32,
-      94,   218,   376,   334,   335,   272,    91,   203,   239,   252,
-     263,   281,   862,   315,   333,   219,   356,   195,   196,    44,
-     220,   301,   320,   221,   293,   781,   646,   245,   259,   781,
-     788,    40,   789,   246,   260,    33,    46,    34,   394,    35,
-     222,   646,   128,   395,   223,    48,   908,   224,   677,   909,
-     108,   109,   225,   911,   110,   233,   912,   111,   112,   113,
-     683,   684,   685,   294,   917,   295,   296,   918,   149,   297,
-     298,   299,   130,   131,   334,   335,    99,   438,   130,   131,
-     130,   131,   439,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   946,
-     129,    50,   947,   129,   294,   782,   824,   705,   706,   707,
-     708,   243,  1098,  1099,  1100,   723,   130,   131,   130,   131,
-     383,   130,   131,   132,   840,   841,   377,   378,   133,   134,
-     135,   136,   137,   442,   138,   701,   702,   211,   443,   139,
-     212,  1019,  1020,  1129,   709,    95,  1130,   294,   140,   454,
-      52,   141,    54,   384,   455,    96,    97,    98,   142,    56,
-      58,    60,   130,   131,   130,   131,   143,   144,    62,   457,
-     145,   146,  1001,    99,   458,    64,   464,  1002,    99,  1003,
-    1007,   465,  1013,   129,    99,  1131,    99,    66,  1132,  1133,
-    1134,  1135,   147,   148,    68,   149,   253,   254,   255,   256,
-     257,   130,   131,   649,   650,   651,   652,   492,   825,   826,
-     827,   828,   493,    36,    37,    38,    39,    70,   385,   386,
-     211,   507,    99,   212,    99,   387,   508,    99,   473,   393,
-     790,   980,   810,   811,   812,   813,   814,   815,  1073,  1074,
-    1075,  1076,   402,   403,  1053,   718,  1054,  1055,   830,   404,
-     719,   720,   721,   722,   723,   724,   725,   726,   727,   728,
-     729,   730,   731,   732,   733,   734,   735,   736,    99,   509,
-      99,   513,   438,   509,   510,   405,   514,   867,   868,   406,
-     100,   513,   474,   442,   294,   890,   869,   129,   870,   890,
-     891,   407,   408,   409,   892,   294,   316,   295,   296,   317,
-     318,   410,   411,   914,   931,   130,   131,    99,   915,   932,
-     938,   942,   130,   131,   507,   939,   943,   890,   475,   944,
-     454,  1089,  1085,   271,   150,  1086,  1090,   412,   197,   272,
-     273,   274,   275,   276,   277,   413,   492,  1108,   483,   431,
-     214,  1097,  1109,   244,   215,   441,   457,   484,   464,   202,
-     258,  1111,   241,  1112,   449,   450,   236,  1149,   489,   247,
-     278,   238,  1150,   460,   251,   462,   261,   463,   216,   478,
-     300,   262,   482,   203,   217,   319,   279,   486,   218,   487,
-     321,   280,   488,   322,   494,   239,   497,   499,   252,   500,
-     503,   314,   219,   354,   372,   263,   332,   220,   515,   516,
-     221,   504,   512,   518,   517,   281,   245,    99,   519,   520,
-     521,    99,   246,   259,   355,   315,   373,   222,    99,   260,
-     333,   223,   522,   301,   224,   376,   524,   530,   320,   225,
-     525,   526,   233,   527,   528,   529,   531,   532,   356,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     538,   533,   542,   543,   129,   544,   534,   535,   536,   545,
-     537,   546,   539,   547,   204,   541,   205,   548,   540,   549,
-     550,   551,   130,   131,   206,   207,   208,   209,   210,   132,
-     552,   553,   554,   559,   555,   556,   557,   558,   560,   561,
-     562,   211,   563,   564,   212,   139,   565,   567,   568,   570,
-     130,   131,   213,   571,   572,   573,   574,   576,   575,   577,
-     578,   579,   581,   583,   585,   589,   584,   150,   590,   591,
-     586,   587,   592,   593,   197,   594,   595,   597,   598,   600,
-     599,   601,   602,   603,   633,   634,   635,   605,   606,   607,
-     609,   610,   612,   621,   613,   202,   614,   616,   376,   829,
-     842,   615,   354,   372,   617,   618,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   203,
-     831,   843,   619,   355,   620,   373,   147,   148,    99,   622,
-     623,   624,   627,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   832,   844,   127,   356,   129,   294,
-     628,   630,   631,   632,   636,   637,    99,   638,   639,   640,
-     641,   642,   643,   644,   645,   648,   130,   131,    34,   207,
-     208,   654,   210,   132,   697,   655,   656,   657,   667,   659,
-     658,   660,   661,   668,   894,   211,   662,   663,   212,   664,
-     666,   669,   670,   672,   713,   673,   213,     1,     2,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,   679,   712,   761,   795,   765,   769,   773,   777,
-     674,   799,   802,   675,   676,   806,   850,   678,   854,   680,
-     681,   682,   858,   875,   876,   877,   686,   687,   878,   704,
-     879,   881,   882,   886,   887,   688,   689,   888,   889,   690,
-     691,   895,   897,   692,   898,   900,   901,   904,   903,   693,
-     907,   906,   694,   695,   696,   698,   910,   699,   700,   920,
-     921,   711,    99,   924,   923,   925,   926,   927,   928,   929,
-     930,   935,   936,   937,   948,   953,   952,   955,   956,   964,
-     959,   958,   960,   961,   962,   963,   965,   966,   967,   968,
-     969,   970,   972,   971,   973,   974,   975,   976,  1017,   978,
-     977,  1044,  1045,  1037,  1038,  1039,  1040,  1041,  1042,  1046,
-    1047,  1048,  1050,  1051,  1067,  1078,  1066,  1072,  1093,  1116,
-    1087,  1095,   214,  1088,  1094,   300,   215,  1079,   319,  1080,
-    1096,   988,  1106,   321,   241,   989,   322,  1081,   236,  1115,
-    1082,  1083,  1021,   238,  1118,   278,   314,  1010,   336,   332,
-     216,  1120,  1011,  1123,  1084,  1145,   217,  1091,  1023,   990,
-     218,   279,  1102,  1024,   829,   991,   280,   239,   842,   992,
-     315,  1056,  1103,   333,   219,  1104,  1012,   244,   301,   220,
-     258,   320,   221,   993,  1000,   831,  1110,  1025,   994,   843,
-     281,   995,  1058,   247,  1004,  1022,   261,  1113,   251,   222,
-    1005,   262,  1119,   223,  1125,  1122,   224,  1146,   996,   832,
-    1147,   225,   997,   844,   233,   998,  1059,  1151,  1124,  1155,
-     999,  1153,   252,  1006,  1057,   263,  1152,   665,   787,   714,
-    1154,  1157,  1158,   717,   566,   569,   866,   981,   979,  1018,
-     245,  1015,  1016,   259,  1036,  1035,   246,   611,  1043,   260,
-    1114,   983,   982,  1014,   580,   292,   985,   984,   604,  1069,
-    1068,   987,   986,  1033,   608,   582,  1070,  1071,   588,   863,
-    1034,  1117,   596,   716,  1049,   715,  1032,   629,   523,  1052,
-     625,  1121,  1143,  1156,  1065,   626,     0,     0,     0,     0,
-     849,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     100,   151,   199,   216,   247,   261,   281,   217,   303,   322,
+     339,   357,   375,   835,   324,   244,   795,   325,   765,   239,
+     250,   264,   282,   204,   241,   254,   265,   283,    40,   317,
+     335,   218,   358,  1007,   376,  1008,  1009,   219,  1013,  1019,
+      94,   220,   379,   197,   198,   380,   381,   205,   242,   255,
+     266,   284,   297,   318,   336,   221,   359,   651,    32,   786,
+     222,   304,   323,   223,   275,   131,   132,   248,   262,   131,
+     132,   867,   651,   249,   263,    33,   397,    34,   442,    35,
+     224,   398,   913,   443,   225,   914,   446,   226,   458,   682,
+     296,   447,   227,   459,   916,   228,    44,   917,   236,   337,
+     338,   688,   689,   690,    46,   131,   132,   130,   297,   654,
+     655,   656,   657,   710,   711,   712,   713,   845,   846,    48,
+     108,   109,   829,    50,   110,   131,   132,   111,   112,   113,
+     297,   728,   298,   299,    52,   461,   300,   301,   302,   787,
+     462,  1079,  1080,  1081,  1082,  1025,  1026,   131,   132,  1059,
+     714,  1060,  1061,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
+     922,    99,    99,   923,   951,    99,    54,   952,  1137,   131,
+     132,  1138,  1139,  1140,  1141,   468,    95,   131,   132,    91,
+     469,    56,   786,   793,   133,   794,    96,    97,    98,   134,
+     135,   136,   137,   138,   496,   139,    58,   511,   513,   497,
+     140,    99,   512,   514,    99,  1104,  1105,  1106,  1007,   141,
+    1008,  1009,   142,  1013,  1019,   830,   831,   832,   833,   143,
+     517,    99,   130,  1135,   442,   518,  1136,   144,   145,   872,
+      60,   146,   147,   706,   707,   256,   257,   258,   259,   260,
+     131,   132,    62,    99,    36,    37,    38,    39,   337,   338,
+     513,    64,   517,   148,   149,   873,   150,   874,   446,   213,
+     795,   985,   214,   875,   297,   319,   298,   299,   320,   321,
+      66,   895,   895,    68,    70,    99,   896,   897,   835,   723,
+     150,   131,   132,    99,   724,   725,   726,   727,   728,   729,
+     730,   731,   732,   733,   734,   735,   736,   737,   738,   739,
+     740,   741,   815,   816,   817,   818,   819,   820,   130,   919,
+     936,   943,   947,   100,   920,   937,   944,   948,   511,   297,
+     130,   129,   386,   949,   895,   458,   131,   132,  1095,  1091,
+    1092,   246,   496,  1096,   387,  1114,   461,  1103,   131,   132,
+    1115,  1117,   468,  1155,   274,   388,    99,  1118,  1156,   390,
+     275,   276,   277,   278,   279,   280,   389,   213,   151,   396,
+     214,   405,   199,   406,   407,   408,   409,   410,   411,   412,
+     413,   414,   415,   416,   216,   417,   435,   247,   217,   445,
+     453,   454,   464,   204,   261,   466,   244,    99,   519,   520,
+     239,   467,   477,   250,   281,   241,   478,   479,   254,   482,
+     264,   486,   218,   488,   303,   265,   487,   205,   219,   322,
+     282,   490,   220,   491,   324,   283,   492,   325,   493,   242,
+     498,   501,   255,   503,   504,   317,   221,   357,   375,   266,
+     335,   222,    99,   507,   223,   521,   508,   516,   522,   284,
+     248,   523,    99,   524,    99,   525,   249,   262,   358,   318,
+     376,   224,   526,   263,   336,   225,   528,   304,   226,   379,
+     529,   530,   323,   227,   531,   532,   228,   533,   534,   236,
+     535,   536,   359,   537,   538,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   539,   540,   541,
+     547,   130,   542,   548,   636,   549,   546,   543,   544,   545,
+     550,   206,   551,   207,   552,   553,   554,   573,   555,   131,
+     132,   208,   209,   210,   211,   212,   133,   556,   557,   558,
+     559,   564,   560,   561,   562,   638,   639,   640,   213,   563,
+     565,   214,   140,   566,   567,   568,   569,   570,   572,   215,
+     575,   576,   577,   578,   579,   581,   582,   583,   584,   586,
+     588,   590,   151,   594,   595,   580,   596,   597,   589,   199,
+     598,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   591,   599,   128,   592,   130,   297,   600,
+     204,   131,   132,   379,   834,   847,   602,   357,   375,   603,
+     604,   605,   606,   607,   610,   131,   132,   608,   209,   210,
+     611,   212,   133,   614,   205,   836,   848,   615,   358,   612,
+     376,   617,   618,   619,   213,    99,   702,   214,   621,   624,
+     620,   622,   625,   623,   628,   215,   629,   626,   632,   837,
+     849,   627,   359,   635,   633,   637,   718,   344,   345,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     641,   642,   643,   644,   645,   646,   647,   148,   149,     1,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,   648,   649,   650,   653,   659,    34,
+     660,   661,   662,   672,   664,   663,   665,    99,   666,   667,
+     673,   668,   669,   671,   674,   675,   677,   678,   970,   717,
+     684,    99,   766,   770,   774,   679,   680,   681,   683,   778,
+     782,   685,   686,   804,   800,   709,   807,   811,   855,   687,
+     859,   863,   880,   881,   882,   691,   883,   884,   886,   887,
+     891,   892,   692,   893,   894,   693,   900,   899,   694,   695,
+     902,   696,   697,   698,   699,   700,   701,   703,   704,   705,
+     903,   716,   905,   906,   908,   909,   912,   911,   953,   926,
+     915,   925,   929,   928,   930,   931,   932,   933,   934,   935,
+     940,   941,   942,   958,   670,   957,   961,   960,   965,   969,
+     963,   964,   966,   967,   968,   971,   974,   973,   972,   975,
+     976,   977,   978,   979,   982,   980,   981,   983,  1023,  1050,
+    1051,  1043,  1044,  1056,  1057,  1073,  1045,  1072,  1046,  1078,
+    1047,  1048,  1052,  1099,  1093,  1053,  1054,   216,  1084,  1085,
+     303,   217,  1086,   322,  1087,  1088,   993,  1089,   324,   244,
+     994,   325,  1090,   239,  1094,  1097,  1100,  1027,   241,  1101,
+     281,   317,  1016,   339,   335,   218,  1102,  1017,  1108,  1109,
+    1110,   219,  1112,  1029,   995,   220,   282,  1121,  1030,   834,
+     996,   283,   242,   847,   997,   318,  1062,  1122,   336,   221,
+    1124,  1018,   247,   304,   222,   261,   323,   223,   998,  1006,
+     836,  1126,  1031,   999,   848,   284,  1000,  1064,   250,  1010,
+    1028,   264,  1116,   254,   224,  1011,   265,  1125,   225,  1119,
+    1128,   226,  1129,  1001,   837,  1130,   227,  1002,   849,   228,
+    1003,  1065,   236,  1131,  1151,  1004,  1152,   255,  1005,  1063,
+     266,  1012,  1153,  1157,  1158,  1159,  1160,  1161,  1163,  1164,
+     719,   792,   871,   722,   571,   248,   986,   984,   262,  1021,
+     574,   249,  1024,  1022,   263,  1042,  1041,   616,  1049,   988,
+     987,  1020,  1120,   585,   295,   989,   990,   609,   613,  1074,
+     991,   992,  1075,  1077,  1040,   527,   587,  1039,   868,  1076,
+    1123,  1055,  1058,   630,   720,   593,  1038,   721,  1127,  1149,
+     631,   634,  1071,  1162,     0,   854,   601,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   988,     0,     0,     0,   989,
-       0,  1021,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1010,     0,     0,  1056,     0,  1011,  1023,     0,     0,
-       0,     0,  1024,   990,     0,     0,     0,     0,     0,   991,
-       0,     0,     0,   992,     0,  1058,     0,     0,     0,     0,
-    1012,     0,     0,     0,     0,     0,  1025,   993,  1000,     0,
-       0,     0,   994,     0,  1022,   995,     0,     0,  1004,  1059,
-       0,     0,     0,     0,  1005,     0,     0,  1057,     0,     0,
-       0,     0,   996,     0,     0,     0,   997,     0,     0,   998,
-       0,     0,     0,     0,   999,     0,     0,  1006
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   993,     0,     0,     0,   994,     0,  1027,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  1016,     0,     0,
+    1062,     0,  1017,  1029,     0,     0,     0,     0,  1030,   995,
+       0,     0,     0,     0,     0,   996,     0,     0,     0,   997,
+       0,  1064,     0,     0,     0,     0,  1018,     0,     0,     0,
+       0,     0,  1031,   998,  1006,     0,     0,     0,   999,     0,
+    1028,  1000,     0,     0,  1010,  1065,     0,     0,     0,     0,
+    1011,     0,     0,  1063,     0,     0,     0,     0,  1001,     0,
+       0,     0,  1002,     0,     0,  1003,     0,     0,     0,     0,
+    1004,     0,     0,  1005,     0,     0,  1012
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       74,    75,    76,    77,    78,    79,    80,    77,    82,    83,
-      84,    85,    85,   663,    83,    77,   657,    83,   640,    77,
-      78,    79,    80,    76,    77,    78,    79,    80,   905,    82,
-      83,    77,    85,   905,    85,   905,   905,    77,   905,     0,
-      10,    77,    86,   110,   111,   101,   183,    76,    77,    78,
-      79,    80,   108,    82,    83,    77,    85,    16,    17,     7,
-      77,    82,    83,    77,    21,   103,   546,    78,    79,   103,
-     104,    17,   106,    78,    79,     5,     7,     7,     3,     9,
-      77,   561,    58,     8,    77,     7,     3,    77,   577,     6,
-      11,    12,    77,     3,    15,    77,     6,    18,    19,    20,
-     589,   590,   591,    60,     3,    62,    63,     6,   156,    66,
-      67,    68,    77,    78,   110,   111,   183,     3,    77,    78,
-      77,    78,     8,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,     3,
-      59,     7,     6,    59,    60,   183,    21,   149,   150,   151,
-     152,    70,   120,   121,   122,    30,    77,    78,    77,    78,
-       6,    77,    78,    84,   129,   130,    13,    14,    89,    90,
-      91,    92,    93,     3,    95,   146,   147,    96,     8,   100,
-      99,    97,    98,     3,   186,   155,     6,    60,   109,     3,
-       7,   112,     7,     3,     8,   165,   166,   167,   119,     7,
-       7,     7,    77,    78,    77,    78,   127,   128,     7,     3,
-     131,   132,  1089,   183,     8,     7,     3,  1089,   183,  1089,
-    1089,     8,  1089,    59,   183,   158,   183,     7,   161,   162,
-     163,   164,   153,   154,     7,   156,    72,    73,    74,    75,
-      76,    77,    78,    85,    86,    87,    88,     3,   123,   124,
-     125,   126,     8,   183,   184,   185,   186,     7,     4,     8,
-      96,     3,   183,    99,   183,     3,     8,   183,     8,     4,
-     911,   893,   113,   114,   115,   116,   117,   118,    22,    23,
-      24,    25,     4,     4,   157,    21,   159,   160,   938,     4,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,   183,     3,
-     183,     3,     3,     3,     8,     4,     8,     8,     8,     4,
-     394,     3,     3,     3,    60,     3,     8,    59,     8,     3,
-       8,     4,     4,     4,     8,    60,    61,    62,    63,    64,
-      65,     4,     4,     3,     3,    77,    78,   183,     8,     8,
-       3,     3,    77,    78,     3,     8,     8,     3,     8,     8,
-       3,     3,     8,    95,   438,     8,     8,     4,   442,   101,
-     102,   103,   104,   105,   106,     4,     3,     3,     8,     4,
-     454,     8,     8,   457,   454,     4,     3,     3,     3,   442,
-     464,     8,   454,     8,     4,     4,   454,     3,     3,   457,
-     474,   454,     8,     4,   457,     4,   464,     4,   454,     4,
-     484,   464,     4,   442,   454,   489,   474,     4,   454,     4,
-     489,   474,     8,   489,     4,   454,     4,     4,   457,     4,
-       4,   484,   454,   507,   507,   464,   489,   454,   384,   385,
-     454,     4,     4,     4,   183,   474,   457,   183,     4,     4,
-       4,   183,   457,   464,   507,   484,   507,   454,   183,   464,
-     489,   454,     4,   484,   454,   509,     4,   184,   489,   454,
-       4,     4,   454,     4,     4,     4,   184,   184,   507,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-     186,   184,     4,     4,    59,     4,   184,   184,   184,     4,
-     184,     4,   185,     4,    69,   184,    71,     4,   185,     4,
-       4,     4,    77,    78,    79,    80,    81,    82,    83,    84,
-       4,     4,     4,   184,     4,     4,     4,     4,     4,     4,
-       4,    96,     4,     4,    99,   100,     4,     4,   186,     4,
-      77,    78,   107,     4,     4,     4,     4,   186,   184,     4,
-       4,     4,     4,     4,     4,     4,   184,   631,     4,     4,
-     184,   184,     4,     4,   638,     4,     4,     4,     4,     4,
-     184,     4,     4,   186,   520,   521,   522,     4,   186,   186,
-       4,     4,   186,   186,     4,   638,     4,     4,   632,   663,
-     664,   184,   666,   666,   184,   184,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   638,
-     663,   664,     4,   666,     4,   666,   153,   154,   183,   186,
-       4,     4,     4,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,   663,   664,    57,   666,    59,    60,
-     184,     4,     7,     7,   183,     7,   183,     7,     7,     7,
-       5,   183,     5,     5,     5,   183,    77,    78,     7,    80,
-      81,     5,    83,    84,   610,     5,     5,     5,   183,     5,
-       7,     5,     5,   183,     6,    96,     7,     7,    99,     7,
-       7,     5,     5,     5,   630,     5,   107,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,   182,     7,     5,     7,    94,     7,     7,     7,     7,
-     183,     7,     7,   183,   183,     7,     7,   183,     7,   183,
-     183,   183,     7,     4,     4,     4,   183,   183,     4,   148,
-       4,     4,     4,     4,     4,   183,   183,     4,     4,   183,
-     183,     3,     6,   183,     3,     6,     3,     3,     6,   183,
-       3,     6,   183,   183,   183,   183,     6,   183,   183,     6,
-       3,   183,   183,     3,     6,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,   183,     3,     6,     6,     3,   184,
-       6,     8,     4,     4,     4,     4,   186,   184,   186,   184,
-       4,   184,     4,   184,     4,     4,   184,   184,     4,   184,
-     186,     4,     4,   184,   184,   184,   184,   184,   184,   184,
-     184,   184,     4,     4,     3,   183,     6,     4,     4,   186,
-       8,     3,   896,     8,     8,   899,   896,   183,   902,   183,
-       8,   905,     4,   902,   896,   905,   902,   183,   896,     4,
-     183,   183,   916,   896,     4,   919,   899,   905,   922,   902,
-     896,     4,   905,     5,   183,     4,   896,   183,   916,   905,
-     896,   919,   183,   916,   938,   905,   919,   896,   942,   905,
-     899,   945,   183,   902,   896,   183,   905,   951,   899,   896,
-     954,   902,   896,   905,   905,   938,   183,   916,   905,   942,
-     919,   905,   945,   951,   905,   916,   954,   183,   951,   896,
-     905,   954,   184,   896,     7,   183,   896,     4,   905,   938,
-       4,   896,   905,   942,   896,   905,   945,     4,   183,     4,
-     905,   184,   951,   905,   945,   954,   186,   561,   656,   631,
-     184,   183,   183,   638,   438,   442,   712,   895,   890,   914,
-     951,   908,   911,   954,   924,   922,   951,   492,   931,   954,
-    1089,   898,   896,   907,   454,    81,   901,   899,   484,   953,
-     951,   904,   902,   919,   489,   457,   954,   956,   464,   679,
-     921,  1095,   474,   637,   938,   632,   917,   513,   394,   942,
-     507,  1108,  1129,  1149,   946,   509,    -1,    -1,    -1,    -1,
-     666,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      84,    85,    85,   668,    83,    77,   662,    83,   645,    77,
+      78,    79,    80,    76,    77,    78,    79,    80,    17,    82,
+      83,    77,    85,   910,    85,   910,   910,    77,   910,   910,
+      10,    77,    86,    16,    17,    13,    14,    76,    77,    78,
+      79,    80,    61,    82,    83,    77,    85,   551,     0,   104,
+      77,    82,    83,    77,   102,    78,    79,    78,    79,    78,
+      79,   109,   566,    78,    79,     5,     3,     7,     3,     9,
+      77,     8,     3,     8,    77,     6,     3,    77,     3,   582,
+      21,     8,    77,     8,     3,    77,     7,     6,    77,   111,
+     112,   594,   595,   596,     7,    78,    79,    60,    61,    86,
+      87,    88,    89,   150,   151,   152,   153,   130,   131,     7,
+      11,    12,    21,     7,    15,    78,    79,    18,    19,    20,
+      61,    30,    63,    64,     7,     3,    67,    68,    69,   184,
+       8,    22,    23,    24,    25,    98,    99,    78,    79,   158,
+     187,   160,   161,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+       3,   184,   184,     6,     3,   184,     7,     6,   159,    78,
+      79,   162,   163,   164,   165,     3,   156,    78,    79,   184,
+       8,     7,   104,   105,    85,   107,   166,   167,   168,    90,
+      91,    92,    93,    94,     3,    96,     7,     3,     3,     8,
+     101,   184,     8,     8,   184,   121,   122,   123,  1095,   110,
+    1095,  1095,   113,  1095,  1095,   124,   125,   126,   127,   120,
+       3,   184,    60,     3,     3,     8,     6,   128,   129,     8,
+       7,   132,   133,   147,   148,    73,    74,    75,    76,    77,
+      78,    79,     7,   184,   184,   185,   186,   187,   111,   112,
+       3,     7,     3,   154,   155,     8,   157,     8,     3,    97,
+     916,   898,   100,     8,    61,    62,    63,    64,    65,    66,
+       7,     3,     3,     7,     7,   184,     8,     8,   943,    21,
+     157,    78,    79,   184,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,   114,   115,   116,   117,   118,   119,    60,     3,
+       3,     3,     3,   397,     8,     8,     8,     8,     3,    61,
+      60,    59,     6,     8,     3,     3,    78,    79,     3,     8,
+       8,    71,     3,     8,     3,     3,     3,     8,    78,    79,
+       8,     8,     3,     3,    96,     4,   184,     8,     8,     3,
+     102,   103,   104,   105,   106,   107,     8,    97,   442,     4,
+     100,     4,   446,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   458,     4,     4,   461,   458,     4,
+       4,     4,     4,   446,   468,     4,   458,   184,   387,   388,
+     458,     4,     8,   461,   478,   458,     3,     8,   461,     4,
+     468,     4,   458,     3,   488,   468,     8,   446,   458,   493,
+     478,     4,   458,     4,   493,   478,     8,   493,     3,   458,
+       4,     4,   461,     4,     4,   488,   458,   511,   511,   468,
+     493,   458,   184,     4,   458,   184,     4,     4,     4,   478,
+     461,     4,   184,     4,   184,     4,   461,   468,   511,   488,
+     511,   458,     4,   468,   493,   458,     4,   488,   458,   513,
+       4,     4,   493,   458,     4,     4,   458,     4,   185,   458,
+     185,   185,   511,   185,   185,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,   185,   185,   185,
+       4,    60,   187,     4,     7,     4,   185,   187,   186,   186,
+       4,    70,     4,    72,     4,     4,     4,   187,     4,    78,
+      79,    80,    81,    82,    83,    84,    85,     4,     4,     4,
+       4,   185,     4,     4,     4,   524,   525,   526,    97,     4,
+       4,   100,   101,     4,     4,     4,     4,     4,     4,   108,
+       4,     4,     4,     4,     4,   187,     4,     4,     4,     4,
+       4,     4,   636,     4,     4,   185,     4,     4,   185,   643,
+       4,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,   185,     4,    58,   185,    60,    61,     4,
+     643,    78,    79,   637,   668,   669,     4,   671,   671,     4,
+     185,     4,     4,     4,     4,    78,    79,   187,    81,    82,
+     187,    84,    85,     4,   643,   668,   669,     4,   671,   187,
+     671,   187,     4,     4,    97,   184,   615,   100,     4,     4,
+     185,   185,     4,   185,     4,   108,     4,   187,     4,   668,
+     669,   187,   671,     4,   185,     7,   635,   134,   135,   136,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     184,     7,     7,     7,     7,     5,   184,   154,   155,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,     5,     5,     5,   184,     5,     7,
+       5,     5,     5,   184,     5,     7,     5,   184,     5,     7,
+     184,     7,     7,     7,     5,     5,     5,     5,   187,     5,
+       7,   184,     7,     7,     7,   184,   184,   184,   184,     7,
+       7,   184,   184,     7,    95,   149,     7,     7,     7,   184,
+       7,     7,     4,     4,     4,   184,     4,     4,     4,     4,
+       4,     4,   184,     4,     4,   184,     3,     6,   184,   184,
+       6,   184,   184,   184,   184,   184,   184,   184,   184,   184,
+       3,   184,     6,     3,     6,     3,     3,     6,   184,     3,
+       6,     6,     3,     6,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     3,   566,     6,     3,     6,     4,   185,
+       8,     6,     4,     4,     4,   185,     4,   185,   187,   185,
+     185,     4,     4,     4,   187,   185,   185,   185,     4,     4,
+       4,   185,   185,     4,     4,     3,   185,     6,   185,     4,
+     185,   185,   185,     4,     8,   185,   185,   901,   184,   184,
+     904,   901,   184,   907,   184,   184,   910,   184,   907,   901,
+     910,   907,   184,   901,     8,   184,     8,   921,   901,     3,
+     924,   904,   910,   927,   907,   901,     8,   910,   184,   184,
+     184,   901,     4,   921,   910,   901,   924,     4,   921,   943,
+     910,   924,   901,   947,   910,   904,   950,   187,   907,   901,
+       4,   910,   956,   904,   901,   959,   907,   901,   910,   910,
+     943,     4,   921,   910,   947,   924,   910,   950,   956,   910,
+     921,   959,   184,   956,   901,   910,   959,   185,   901,   184,
+     184,   901,     5,   910,   943,   184,   901,   910,   947,   901,
+     910,   950,   901,     7,     4,   910,     4,   956,   910,   950,
+     959,   910,     4,     4,   187,   185,   185,     4,   184,   184,
+     636,   661,   717,   643,   442,   956,   900,   895,   959,   913,
+     446,   956,   919,   916,   959,   929,   927,   496,   936,   903,
+     901,   912,  1095,   458,    81,   904,   906,   488,   493,   956,
+     907,   909,   958,   961,   926,   397,   461,   924,   684,   959,
+    1101,   943,   947,   511,   637,   468,   922,   642,  1114,  1135,
+     513,   517,   951,  1155,    -1,   671,   478,    -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,  1089,    -1,    -1,    -1,  1089,
-      -1,  1095,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1089,    -1,    -1,  1108,    -1,  1089,  1095,    -1,    -1,
-      -1,    -1,  1095,  1089,    -1,    -1,    -1,    -1,    -1,  1089,
-      -1,    -1,    -1,  1089,    -1,  1108,    -1,    -1,    -1,    -1,
-    1089,    -1,    -1,    -1,    -1,    -1,  1095,  1089,  1089,    -1,
-      -1,    -1,  1089,    -1,  1095,  1089,    -1,    -1,  1089,  1108,
-      -1,    -1,    -1,    -1,  1089,    -1,    -1,  1108,    -1,    -1,
-      -1,    -1,  1089,    -1,    -1,    -1,  1089,    -1,    -1,  1089,
-      -1,    -1,    -1,    -1,  1089,    -1,    -1,  1089
+      -1,  1095,    -1,    -1,    -1,  1095,    -1,  1101,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1095,    -1,    -1,
+    1114,    -1,  1095,  1101,    -1,    -1,    -1,    -1,  1101,  1095,
+      -1,    -1,    -1,    -1,    -1,  1095,    -1,    -1,    -1,  1095,
+      -1,  1114,    -1,    -1,    -1,    -1,  1095,    -1,    -1,    -1,
+      -1,    -1,  1101,  1095,  1095,    -1,    -1,    -1,  1095,    -1,
+    1101,  1095,    -1,    -1,  1095,  1114,    -1,    -1,    -1,    -1,
+    1095,    -1,    -1,  1114,    -1,    -1,    -1,    -1,  1095,    -1,
+      -1,    -1,  1095,    -1,    -1,  1095,    -1,    -1,    -1,    -1,
+    1095,    -1,    -1,  1095,    -1,    -1,  1095
   };
 
   const unsigned short
   Dhcp6Parser::yystos_[] =
   {
-       0,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,     0,     5,     7,     9,   183,   184,   185,   186,
-     204,   205,   206,   211,     7,   220,     7,   226,     7,   248,
-       7,   347,     7,   424,     7,   440,     7,   457,     7,   376,
-       7,   382,     7,   406,     7,   323,     7,   518,     7,   565,
-       7,   556,   212,   207,   221,   227,   249,   348,   425,   441,
-     458,   377,   383,   407,   324,   519,   566,   557,   204,   213,
-     214,   183,   209,   210,    10,   155,   165,   166,   167,   183,
-     219,   222,   223,   224,   548,   550,   552,   563,    11,    12,
+       0,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,     0,     5,     7,     9,   184,   185,   186,   187,
+     205,   206,   207,   212,     7,   221,     7,   227,     7,   250,
+       7,   349,     7,   426,     7,   442,     7,   459,     7,   378,
+       7,   384,     7,   408,     7,   325,     7,   520,     7,   567,
+       7,   558,   213,   208,   222,   228,   251,   350,   427,   443,
+     460,   379,   385,   409,   326,   521,   568,   559,   205,   214,
+     215,   184,   210,   211,    10,   156,   166,   167,   168,   184,
+     220,   223,   224,   225,   550,   552,   554,   565,    11,    12,
       15,    18,    19,    20,    44,    45,    46,    47,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      77,    78,    84,    89,    90,    91,    92,    93,    95,   100,
-     109,   112,   119,   127,   128,   131,   132,   153,   154,   156,
-     219,   228,   229,   230,   232,   233,   234,   235,   236,   237,
-     238,   239,   240,   241,   242,   243,   244,   246,   255,   257,
-     259,   297,   303,   309,   315,   317,   331,   341,   361,   366,
-     374,   400,   430,   432,   451,   481,   493,   505,   506,   514,
-     516,   544,   546,   554,   569,    16,    17,   219,   250,   251,
-     252,   254,   430,   432,    69,    71,    79,    80,    81,    82,
-      83,    96,    99,   107,   219,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   349,   350,   351,   353,
-     355,   357,   359,   361,   364,   365,   400,   418,   430,   432,
-     434,   451,   476,    70,   219,   357,   359,   400,   426,   427,
-     428,   430,   432,    72,    73,    74,    75,    76,   219,   357,
-     359,   400,   430,   432,   442,   443,   444,   446,   447,   449,
-     450,    95,   101,   102,   103,   104,   105,   106,   219,   400,
-     430,   432,   459,   460,   461,   462,   464,   466,   468,   470,
-     472,   474,   374,    21,    60,    62,    63,    66,    67,    68,
-     219,   277,   384,   385,   386,   387,   388,   389,   390,   392,
-     394,   396,   397,   399,   430,   432,    61,    64,    65,   219,
-     277,   388,   394,   408,   409,   410,   411,   412,   414,   415,
-     416,   417,   430,   432,   110,   111,   219,   325,   326,   327,
-     329,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   219,   430,   432,   520,   521,   522,
-     523,   525,   527,   528,   530,   531,   532,   535,   537,   538,
-     539,   542,   544,   546,   567,   568,   569,    13,    14,   558,
-     559,   560,   562,     6,     3,     4,     8,     3,   225,   564,
-     549,   551,   553,     4,     3,     8,   231,   555,   247,   256,
-     258,   260,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,   245,   342,   375,   401,   431,   433,
-     362,   367,   304,   316,   310,   298,   482,   452,   318,   332,
-     494,     4,   507,   515,   517,   545,   547,   570,     3,     8,
-     253,     4,     3,     8,   419,   435,   352,   354,   356,     4,
-       4,   360,   358,   477,     3,     8,   429,     3,     8,   445,
-       4,   448,     4,     4,     3,     8,   475,   463,   465,   467,
-     469,   471,   473,     8,     3,     8,   391,   278,     4,   395,
-     393,   398,     4,     8,     3,   413,     4,     4,     8,     3,
-     328,   330,     3,     8,     4,   524,   526,     4,   529,     4,
-       4,   533,   536,     4,     4,   540,   543,     3,     8,     3,
-       8,   561,     4,     3,     8,   204,   204,   183,     4,     4,
-       4,     4,     4,   223,     4,     4,     4,     4,     4,     4,
-     184,   184,   184,   184,   184,   184,   184,   184,   186,   185,
-     185,   184,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   184,
-       4,     4,     4,     4,     4,     4,   229,     4,   186,   251,
-       4,     4,     4,     4,     4,   184,   186,     4,     4,     4,
-     350,     4,   427,     4,   184,     4,   184,   184,   443,     4,
-       4,     4,     4,     4,     4,     4,   461,     4,     4,   184,
-       4,     4,     4,   186,   386,     4,   186,   186,   410,     4,
-       4,   326,   186,     4,     4,   184,     4,   184,   184,     4,
-       4,   186,   186,     4,     4,   521,   568,     4,   184,   559,
-       4,     7,     7,   204,   204,   204,   183,     7,     7,     7,
-       7,     5,   183,     5,     5,     5,   206,   208,   183,    85,
-      86,    87,    88,   363,     5,     5,     5,     5,     7,     5,
-       5,     5,     7,     7,     7,   208,     7,   183,   183,     5,
-       5,   215,     5,     5,   183,   183,   183,   215,   183,     7,
-     183,   183,   183,   215,   215,   215,   183,   183,   183,   183,
-     183,   183,   183,   183,   183,   183,   183,   204,   183,   183,
-     183,   146,   147,   534,   148,   149,   150,   151,   152,   186,
-     541,   183,     5,   204,   228,   567,   558,   250,    21,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,   219,   265,   266,
-     267,   270,   272,   274,   276,   277,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   290,   291,   293,   295,
-     265,     7,   261,   262,   263,     7,   343,   344,   345,     7,
-     378,   379,   380,     7,   402,   403,   404,     7,   368,   369,
-     370,   103,   183,   305,   306,   307,   308,   213,   104,   106,
-     307,   311,   312,   313,   314,    94,   299,   300,   301,     7,
-     483,   484,     7,   453,   454,   455,     7,   319,   320,   321,
-     113,   114,   115,   116,   117,   118,   333,   334,   335,   336,
-     337,   338,   339,   340,    21,   123,   124,   125,   126,   219,
-     279,   430,   432,   495,   496,   497,   500,   501,   503,   504,
-     129,   130,   219,   430,   432,   508,   509,   510,   512,   520,
-       7,   571,   572,   216,     7,   420,   421,   422,     7,   436,
-     437,   438,   108,   462,   478,   479,   261,     8,     8,     8,
-       8,   268,   271,   273,   275,     4,     4,     4,     4,     4,
-     289,     4,     4,   292,   294,   296,     4,     4,     4,     4,
-       3,     8,     8,   264,     6,     3,   346,     6,     3,   381,
-       6,     3,   405,     6,     3,   371,     6,     3,     3,     6,
-       6,     3,     6,   302,     3,     8,   485,     3,     6,   456,
-       6,     3,   322,     6,     3,     4,     4,     4,     4,     4,
-       4,     3,     8,   498,   502,     4,     4,     4,     3,     8,
-     511,   513,     3,     8,     8,   573,     3,     6,   183,   217,
-     218,   423,     6,     3,   439,     6,     3,   480,     8,     6,
-       4,     4,     4,     4,   184,   186,   184,   186,   184,     4,
-     184,   184,     4,     4,     4,   184,   184,   186,   184,   266,
-     265,   263,   349,   345,   384,   380,   408,   404,   219,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     277,   341,   353,   355,   357,   359,   361,   365,   372,   373,
-     400,   430,   432,   476,   370,   306,   312,     4,   300,    97,
-      98,   219,   277,   400,   430,   432,   486,   487,   488,   489,
-     490,   492,   484,   459,   455,   325,   321,   184,   184,   184,
-     184,   184,   184,   334,     4,     4,   184,   184,   184,   496,
-       4,     4,   509,   157,   159,   160,   219,   277,   430,   432,
-     574,   575,   576,   577,   579,   572,     6,     3,   426,   422,
-     442,   438,     4,    22,    23,    24,    25,   269,   183,   183,
-     183,   183,   183,   183,   183,     8,     8,     8,     8,     3,
-       8,   183,   491,     4,     8,     3,     8,     8,   120,   121,
-     122,   499,   183,   183,   183,   580,     4,   578,     3,     8,
-     183,     8,     8,   183,   373,     4,   186,   488,     4,   184,
-       4,   575,   183,     5,   183,     7,   581,   582,   583,     3,
-       6,   158,   161,   162,   163,   164,   584,   585,   586,   588,
-     589,   590,   591,   582,   587,     4,     4,     4,   592,     3,
-       8,     4,   186,   184,   184,     4,   585,   183,   183
+      60,    78,    79,    85,    90,    91,    92,    93,    94,    96,
+     101,   110,   113,   120,   128,   129,   132,   133,   154,   155,
+     157,   220,   229,   230,   231,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   248,
+     257,   259,   261,   299,   305,   311,   317,   319,   333,   343,
+     363,   368,   376,   402,   432,   434,   453,   483,   495,   507,
+     508,   516,   518,   546,   548,   556,   571,    16,    17,   220,
+     252,   253,   254,   256,   432,   434,    70,    72,    80,    81,
+      82,    83,    84,    97,   100,   108,   220,   233,   234,   235,
+     236,   237,   238,   239,   240,   241,   242,   243,   244,   351,
+     352,   353,   355,   357,   359,   361,   363,   366,   367,   402,
+     420,   432,   434,   436,   453,   478,    71,   220,   359,   361,
+     402,   428,   429,   430,   432,   434,    73,    74,    75,    76,
+      77,   220,   359,   361,   402,   432,   434,   444,   445,   446,
+     448,   449,   451,   452,    96,   102,   103,   104,   105,   106,
+     107,   220,   402,   432,   434,   461,   462,   463,   464,   466,
+     468,   470,   472,   474,   476,   376,    21,    61,    63,    64,
+      67,    68,    69,   220,   279,   386,   387,   388,   389,   390,
+     391,   392,   394,   396,   398,   399,   401,   432,   434,    62,
+      65,    66,   220,   279,   390,   396,   410,   411,   412,   413,
+     414,   416,   417,   418,   419,   432,   434,   111,   112,   220,
+     327,   328,   329,   331,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   220,   432,   434,
+     522,   523,   524,   525,   527,   529,   530,   532,   533,   534,
+     537,   539,   540,   541,   544,   546,   548,   569,   570,   571,
+      13,    14,   560,   561,   562,   564,     6,     3,     4,     8,
+       3,   226,   566,   551,   553,   555,     4,     3,     8,   232,
+     557,   249,   258,   260,   262,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,   247,   344,
+     377,   403,   433,   435,   364,   369,   306,   318,   312,   300,
+     484,   454,   320,   334,   496,     4,   509,   517,   519,   547,
+     549,   572,     3,     8,   255,     4,     3,     8,   421,   437,
+     354,   356,   358,     4,     4,   362,   360,   479,     3,     8,
+     431,     3,     8,   447,     4,   450,     4,     4,     3,     8,
+     477,   465,   467,   469,   471,   473,   475,     8,     3,     8,
+     393,   280,     4,   397,   395,   400,     4,     8,     3,   415,
+       4,     4,     8,     3,   330,   332,     3,     8,     4,   526,
+     528,     4,   531,     4,     4,   535,   538,     4,     4,   542,
+     545,     3,     8,     3,     8,   563,     4,     3,     8,   205,
+     205,   184,     4,     4,     4,     4,     4,   224,     4,     4,
+       4,     4,     4,     4,   185,   185,   185,   185,   185,   185,
+     185,   185,   187,   187,   186,   186,   185,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,   185,     4,     4,     4,     4,     4,
+       4,   230,     4,   187,   253,     4,     4,     4,     4,     4,
+     185,   187,     4,     4,     4,   352,     4,   429,     4,   185,
+       4,   185,   185,   445,     4,     4,     4,     4,     4,     4,
+       4,   463,     4,     4,   185,     4,     4,     4,   187,   388,
+       4,   187,   187,   412,     4,     4,   328,   187,     4,     4,
+     185,     4,   185,   185,     4,     4,   187,   187,     4,     4,
+     523,   570,     4,   185,   561,     4,     7,     7,   205,   205,
+     205,   184,     7,     7,     7,     7,     5,   184,     5,     5,
+       5,   207,   209,   184,    86,    87,    88,    89,   365,     5,
+       5,     5,     5,     7,     5,     5,     5,     7,     7,     7,
+     209,     7,   184,   184,     5,     5,   216,     5,     5,   184,
+     184,   184,   216,   184,     7,   184,   184,   184,   216,   216,
+     216,   184,   184,   184,   184,   184,   184,   184,   184,   184,
+     184,   184,   205,   184,   184,   184,   147,   148,   536,   149,
+     150,   151,   152,   153,   187,   543,   184,     5,   205,   229,
+     569,   560,   252,    21,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,   220,   267,   268,   269,   272,   274,   276,   278,
+     279,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   292,   293,   295,   297,   267,     7,   263,   264,   265,
+       7,   345,   346,   347,     7,   380,   381,   382,     7,   404,
+     405,   406,     7,   370,   371,   372,   104,   184,   307,   308,
+     309,   310,   214,   105,   107,   309,   313,   314,   315,   316,
+      95,   301,   302,   303,     7,   485,   486,     7,   455,   456,
+     457,     7,   321,   322,   323,   114,   115,   116,   117,   118,
+     119,   335,   336,   337,   338,   339,   340,   341,   342,    21,
+     124,   125,   126,   127,   220,   281,   432,   434,   497,   498,
+     499,   502,   503,   505,   506,   130,   131,   220,   432,   434,
+     510,   511,   512,   514,   522,     7,   573,   574,   217,     7,
+     422,   423,   424,     7,   438,   439,   440,   109,   464,   480,
+     481,   263,     8,     8,     8,     8,   270,   273,   275,   277,
+       4,     4,     4,     4,     4,   291,     4,     4,   294,   296,
+     298,     4,     4,     4,     4,     3,     8,     8,   266,     6,
+       3,   348,     6,     3,   383,     6,     3,   407,     6,     3,
+     373,     6,     3,     3,     6,     6,     3,     6,   304,     3,
+       8,   487,     3,     6,   458,     6,     3,   324,     6,     3,
+       4,     4,     4,     4,     4,     4,     3,     8,   500,   504,
+       4,     4,     4,     3,     8,   513,   515,     3,     8,     8,
+     575,     3,     6,   184,   218,   219,   425,     6,     3,   441,
+       6,     3,   482,     8,     6,     4,     4,     4,     4,   185,
+     187,   185,   187,   185,     4,   185,   185,     4,     4,     4,
+     185,   185,   187,   185,   268,   267,   265,   351,   347,   386,
+     382,   410,   406,   220,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   279,   343,   355,   357,
+     359,   361,   363,   367,   374,   375,   402,   432,   434,   478,
+     372,   308,   314,     4,   302,    98,    99,   220,   279,   402,
+     432,   434,   488,   489,   490,   491,   492,   494,   486,   461,
+     457,   327,   323,   185,   185,   185,   185,   185,   185,   336,
+       4,     4,   185,   185,   185,   498,     4,     4,   511,   158,
+     160,   161,   220,   279,   432,   434,   576,   577,   578,   579,
+     581,   574,     6,     3,   428,   424,   444,   440,     4,    22,
+      23,    24,    25,   271,   184,   184,   184,   184,   184,   184,
+     184,     8,     8,     8,     8,     3,     8,   184,   493,     4,
+       8,     3,     8,     8,   121,   122,   123,   501,   184,   184,
+     184,   582,     4,   580,     3,     8,   184,     8,     8,   184,
+     375,     4,   187,   490,     4,   185,     4,   577,   184,     5,
+     184,     7,   583,   584,   585,     3,     6,   159,   162,   163,
+     164,   165,   586,   587,   588,   590,   591,   592,   593,   584,
+     589,     4,     4,     4,   594,     3,     8,     4,   187,   185,
+     185,     4,   587,   184,   184
   };
 
   const unsigned short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   187,   189,   188,   190,   188,   191,   188,   192,   188,
-     193,   188,   194,   188,   195,   188,   196,   188,   197,   188,
-     198,   188,   199,   188,   200,   188,   201,   188,   202,   188,
-     203,   188,   204,   204,   204,   204,   204,   204,   204,   205,
-     207,   206,   208,   209,   209,   210,   210,   212,   211,   213,
-     213,   214,   214,   216,   215,   217,   217,   218,   218,   219,
-     221,   220,   222,   222,   223,   223,   223,   223,   223,   223,
-     225,   224,   227,   226,   228,   228,   229,   229,   229,   229,
-     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
-     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
-     229,   229,   229,   229,   229,   229,   229,   229,   229,   229,
-     229,   229,   229,   229,   229,   229,   229,   229,   229,   231,
-     230,   232,   233,   234,   235,   236,   237,   238,   239,   240,
-     241,   242,   243,   245,   244,   247,   246,   249,   248,   250,
-     250,   251,   251,   251,   251,   251,   253,   252,   254,   256,
-     255,   258,   257,   260,   259,   261,   261,   262,   262,   264,
-     263,   265,   265,   266,   266,   266,   266,   266,   266,   266,
-     266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
-     266,   266,   266,   266,   268,   267,   269,   269,   269,   269,
-     271,   270,   273,   272,   275,   274,   276,   278,   277,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   289,   288,
-     290,   292,   291,   294,   293,   296,   295,   298,   297,   299,
-     299,   300,   302,   301,   304,   303,   305,   305,   306,   306,
-     307,   308,   310,   309,   311,   311,   312,   312,   312,   313,
-     314,   316,   315,   318,   317,   319,   319,   320,   320,   322,
-     321,   324,   323,   325,   325,   325,   326,   326,   328,   327,
-     330,   329,   332,   331,   333,   333,   334,   334,   334,   334,
-     334,   334,   335,   336,   337,   338,   339,   340,   342,   341,
-     343,   343,   344,   344,   346,   345,   348,   347,   349,   349,
-     350,   350,   350,   350,   350,   350,   350,   350,   350,   350,
-     350,   350,   350,   350,   350,   350,   350,   350,   350,   350,
-     350,   350,   350,   350,   350,   350,   350,   352,   351,   354,
-     353,   356,   355,   358,   357,   360,   359,   362,   361,   363,
-     363,   363,   363,   364,   365,   367,   366,   368,   368,   369,
-     369,   371,   370,   372,   372,   373,   373,   373,   373,   373,
-     373,   373,   373,   373,   373,   373,   373,   373,   373,   373,
-     373,   373,   373,   373,   373,   373,   373,   373,   373,   375,
-     374,   377,   376,   378,   378,   379,   379,   381,   380,   383,
-     382,   384,   384,   385,   385,   386,   386,   386,   386,   386,
-     386,   386,   386,   386,   386,   387,   388,   389,   391,   390,
-     393,   392,   395,   394,   396,   398,   397,   399,   401,   400,
-     402,   402,   403,   403,   405,   404,   407,   406,   408,   408,
-     409,   409,   410,   410,   410,   410,   410,   410,   410,   410,
-     410,   411,   413,   412,   414,   415,   416,   417,   419,   418,
-     420,   420,   421,   421,   423,   422,   425,   424,   426,   426,
-     427,   427,   427,   427,   427,   427,   427,   429,   428,   431,
-     430,   433,   432,   435,   434,   436,   436,   437,   437,   439,
-     438,   441,   440,   442,   442,   443,   443,   443,   443,   443,
-     443,   443,   443,   443,   443,   443,   445,   444,   446,   448,
-     447,   449,   450,   452,   451,   453,   453,   454,   454,   456,
-     455,   458,   457,   459,   459,   460,   460,   461,   461,   461,
-     461,   461,   461,   461,   461,   461,   461,   461,   463,   462,
-     465,   464,   467,   466,   469,   468,   471,   470,   473,   472,
-     475,   474,   477,   476,   478,   478,   480,   479,   482,   481,
-     483,   483,   485,   484,   486,   486,   487,   487,   488,   488,
-     488,   488,   488,   488,   488,   489,   491,   490,   492,   494,
-     493,   495,   495,   496,   496,   496,   496,   496,   496,   496,
-     496,   496,   498,   497,   499,   499,   499,   500,   502,   501,
-     503,   504,   505,   507,   506,   508,   508,   509,   509,   509,
-     509,   509,   511,   510,   513,   512,   515,   514,   517,   516,
-     519,   518,   520,   520,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   522,   524,   523,   526,   525,   527,   529,   528,
-     530,   531,   533,   532,   534,   534,   536,   535,   537,   538,
-     540,   539,   541,   541,   541,   541,   541,   543,   542,   545,
-     544,   547,   546,   549,   548,   551,   550,   553,   552,   555,
-     554,   557,   556,   558,   558,   559,   559,   561,   560,   562,
-     564,   563,   566,   565,   567,   567,   568,   570,   569,   571,
-     571,   573,   572,   574,   574,   575,   575,   575,   575,   575,
-     575,   575,   576,   578,   577,   580,   579,   581,   581,   583,
-     582,   584,   584,   585,   585,   585,   585,   585,   587,   586,
-     588,   589,   590,   592,   591
+       0,   188,   190,   189,   191,   189,   192,   189,   193,   189,
+     194,   189,   195,   189,   196,   189,   197,   189,   198,   189,
+     199,   189,   200,   189,   201,   189,   202,   189,   203,   189,
+     204,   189,   205,   205,   205,   205,   205,   205,   205,   206,
+     208,   207,   209,   210,   210,   211,   211,   213,   212,   214,
+     214,   215,   215,   217,   216,   218,   218,   219,   219,   220,
+     222,   221,   223,   223,   224,   224,   224,   224,   224,   224,
+     226,   225,   228,   227,   229,   229,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
+     232,   231,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   247,   246,   249,   248,   251,
+     250,   252,   252,   253,   253,   253,   253,   253,   255,   254,
+     256,   258,   257,   260,   259,   262,   261,   263,   263,   264,
+     264,   266,   265,   267,   267,   268,   268,   268,   268,   268,
+     268,   268,   268,   268,   268,   268,   268,   268,   268,   268,
+     268,   268,   268,   268,   268,   268,   270,   269,   271,   271,
+     271,   271,   273,   272,   275,   274,   277,   276,   278,   280,
+     279,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     291,   290,   292,   294,   293,   296,   295,   298,   297,   300,
+     299,   301,   301,   302,   304,   303,   306,   305,   307,   307,
+     308,   308,   309,   310,   312,   311,   313,   313,   314,   314,
+     314,   315,   316,   318,   317,   320,   319,   321,   321,   322,
+     322,   324,   323,   326,   325,   327,   327,   327,   328,   328,
+     330,   329,   332,   331,   334,   333,   335,   335,   336,   336,
+     336,   336,   336,   336,   337,   338,   339,   340,   341,   342,
+     344,   343,   345,   345,   346,   346,   348,   347,   350,   349,
+     351,   351,   352,   352,   352,   352,   352,   352,   352,   352,
+     352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
+     352,   352,   352,   352,   352,   352,   352,   352,   352,   352,
+     354,   353,   356,   355,   358,   357,   360,   359,   362,   361,
+     364,   363,   365,   365,   365,   365,   366,   367,   369,   368,
+     370,   370,   371,   371,   373,   372,   374,   374,   375,   375,
+     375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
+     375,   375,   375,   375,   375,   375,   375,   375,   375,   375,
+     375,   375,   375,   377,   376,   379,   378,   380,   380,   381,
+     381,   383,   382,   385,   384,   386,   386,   387,   387,   388,
+     388,   388,   388,   388,   388,   388,   388,   388,   388,   389,
+     390,   391,   393,   392,   395,   394,   397,   396,   398,   400,
+     399,   401,   403,   402,   404,   404,   405,   405,   407,   406,
+     409,   408,   410,   410,   411,   411,   412,   412,   412,   412,
+     412,   412,   412,   412,   412,   413,   415,   414,   416,   417,
+     418,   419,   421,   420,   422,   422,   423,   423,   425,   424,
+     427,   426,   428,   428,   429,   429,   429,   429,   429,   429,
+     429,   431,   430,   433,   432,   435,   434,   437,   436,   438,
+     438,   439,   439,   441,   440,   443,   442,   444,   444,   445,
+     445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
+     447,   446,   448,   450,   449,   451,   452,   454,   453,   455,
+     455,   456,   456,   458,   457,   460,   459,   461,   461,   462,
+     462,   463,   463,   463,   463,   463,   463,   463,   463,   463,
+     463,   463,   465,   464,   467,   466,   469,   468,   471,   470,
+     473,   472,   475,   474,   477,   476,   479,   478,   480,   480,
+     482,   481,   484,   483,   485,   485,   487,   486,   488,   488,
+     489,   489,   490,   490,   490,   490,   490,   490,   490,   491,
+     493,   492,   494,   496,   495,   497,   497,   498,   498,   498,
+     498,   498,   498,   498,   498,   498,   500,   499,   501,   501,
+     501,   502,   504,   503,   505,   506,   507,   509,   508,   510,
+     510,   511,   511,   511,   511,   511,   513,   512,   515,   514,
+     517,   516,   519,   518,   521,   520,   522,   522,   523,   523,
+     523,   523,   523,   523,   523,   523,   523,   523,   523,   523,
+     523,   523,   523,   523,   523,   523,   524,   526,   525,   528,
+     527,   529,   531,   530,   532,   533,   535,   534,   536,   536,
+     538,   537,   539,   540,   542,   541,   543,   543,   543,   543,
+     543,   545,   544,   547,   546,   549,   548,   551,   550,   553,
+     552,   555,   554,   557,   556,   559,   558,   560,   560,   561,
+     561,   563,   562,   564,   566,   565,   568,   567,   569,   569,
+     570,   572,   571,   573,   573,   575,   574,   576,   576,   577,
+     577,   577,   577,   577,   577,   577,   578,   580,   579,   582,
+     581,   583,   583,   585,   584,   586,   586,   587,   587,   587,
+     587,   587,   589,   588,   590,   591,   592,   594,   593
   };
 
   const unsigned char
@@ -4956,67 +4970,67 @@ 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,     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,     0,     4,     1,     1,     1,     1,
-       0,     4,     0,     4,     0,     4,     3,     0,     4,     3,
-       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,     4,     0,     4,     0,     4,     1,
-       1,     1,     1,     3,     3,     0,     6,     0,     1,     1,
+       0,     4,     3,     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,
-       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,     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,     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,     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,
+       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,     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,     1,     1,     1,     3,     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,     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,
-       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,     1,     0,     4,
-       3,     3,     3,     0,     4
+       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,     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,     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,     1,     0,     4,     3,     3,     3,     0,     4
   };
 
 
@@ -5040,17 +5054,18 @@ namespace isc { namespace dhcp {
   "\"tcp-nodelay\"", "\"max-row-errors\"", "\"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\"",
-  "\"name\"", "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"",
-  "\"always-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"",
-  "\"pools\"", "\"pool\"", "\"pd-pools\"", "\"prefix\"", "\"prefix-len\"",
-  "\"excluded-prefix\"", "\"excluded-prefix-len\"", "\"delegated-len\"",
-  "\"user-context\"", "\"comment\"", "\"subnet\"", "\"interface\"",
-  "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"",
-  "\"disabled\"", "\"out-of-pool\"", "\"global\"", "\"all\"",
-  "\"shared-networks\"", "\"mac-sources\"", "\"relay-supplied-options\"",
+  "\"renew-timer\"", "\"rebind-timer\"", "\"allow-static-leases\"",
+  "\"calculate-tee-times\"", "\"t1-percent\"", "\"t2-percent\"",
+  "\"decline-probation-period\"", "\"server-tag\"", "\"subnet6\"",
+  "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
+  "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"",
+  "\"encapsulate\"", "\"array\"", "\"pools\"", "\"pool\"", "\"pd-pools\"",
+  "\"prefix\"", "\"prefix-len\"", "\"excluded-prefix\"",
+  "\"excluded-prefix-len\"", "\"delegated-len\"", "\"user-context\"",
+  "\"comment\"", "\"subnet\"", "\"interface\"", "\"interface-id\"",
+  "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"", "\"disabled\"",
+  "\"out-of-pool\"", "\"global\"", "\"all\"", "\"shared-networks\"",
+  "\"mac-sources\"", "\"relay-supplied-options\"",
   "\"host-reservation-identifiers\"", "\"sanity-checks\"",
   "\"lease-checks\"", "\"client-classes\"", "\"require-client-classes\"",
   "\"test\"", "\"only-if-required\"", "\"client-class\"",
@@ -5089,18 +5104,19 @@ namespace isc { namespace dhcp {
   "$@21", "global_params", "global_param", "data_directory", "$@22",
   "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", "max_row_errors",
-  "request_timeout", "tcp_keepalive", "tcp_nodelay", "contact_points",
-  "$@36", "max_reconnect_tries", "keyspace", "$@37", "consistency", "$@38",
+  "renew_timer", "rebind_timer", "allow_static_leases",
+  "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", "max_row_errors", "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",
@@ -5181,78 +5197,78 @@ namespace isc { namespace dhcp {
   const unsigned short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   271,   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,   284,   284,
-     285,   285,   293,   294,   295,   296,   297,   298,   299,   302,
-     307,   307,   318,   321,   322,   325,   329,   336,   336,   343,
-     344,   347,   351,   358,   358,   365,   366,   369,   373,   384,
-     394,   394,   409,   410,   414,   415,   416,   417,   418,   419,
-     422,   422,   437,   437,   446,   447,   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,   491,   492,   493,   494,   497,
-     497,   505,   510,   515,   520,   525,   530,   535,   540,   545,
-     550,   555,   560,   565,   565,   573,   573,   584,   584,   593,
-     594,   597,   598,   599,   600,   601,   604,   604,   614,   620,
-     620,   632,   632,   644,   644,   654,   655,   658,   659,   662,
-     662,   672,   673,   676,   677,   678,   679,   680,   681,   682,
-     683,   684,   685,   686,   687,   688,   689,   690,   691,   692,
-     693,   694,   695,   696,   699,   699,   706,   707,   708,   709,
-     712,   712,   720,   720,   728,   728,   736,   741,   741,   749,
-     754,   759,   764,   769,   774,   779,   784,   789,   794,   794,
-     802,   807,   807,   815,   815,   823,   823,   831,   831,   841,
-     842,   844,   846,   846,   864,   864,   874,   875,   878,   879,
-     882,   887,   892,   892,   902,   903,   906,   907,   908,   911,
-     916,   923,   923,   933,   933,   943,   944,   947,   948,   951,
-     951,   961,   961,   971,   972,   973,   976,   977,   980,   980,
-     988,   988,   996,   996,  1007,  1008,  1011,  1012,  1013,  1014,
-    1015,  1016,  1019,  1024,  1029,  1034,  1039,  1044,  1052,  1052,
-    1065,  1066,  1069,  1070,  1077,  1077,  1103,  1103,  1114,  1115,
-    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,  1145,  1148,  1148,  1156,
-    1156,  1164,  1164,  1172,  1172,  1180,  1180,  1190,  1190,  1197,
-    1198,  1199,  1200,  1203,  1208,  1216,  1216,  1227,  1228,  1232,
-    1233,  1236,  1236,  1244,  1245,  1248,  1249,  1250,  1251,  1252,
-    1253,  1254,  1255,  1256,  1257,  1258,  1259,  1260,  1261,  1262,
-    1263,  1264,  1265,  1266,  1267,  1268,  1269,  1270,  1271,  1278,
-    1278,  1291,  1291,  1300,  1301,  1304,  1305,  1310,  1310,  1325,
-    1325,  1339,  1340,  1343,  1344,  1347,  1348,  1349,  1350,  1351,
-    1352,  1353,  1354,  1355,  1356,  1359,  1361,  1366,  1368,  1368,
-    1376,  1376,  1384,  1384,  1392,  1394,  1394,  1402,  1411,  1411,
-    1423,  1424,  1429,  1430,  1435,  1435,  1447,  1447,  1459,  1460,
-    1465,  1466,  1471,  1472,  1473,  1474,  1475,  1476,  1477,  1478,
-    1479,  1482,  1484,  1484,  1492,  1494,  1496,  1501,  1509,  1509,
-    1521,  1522,  1525,  1526,  1529,  1529,  1539,  1539,  1548,  1549,
-    1552,  1553,  1554,  1555,  1556,  1557,  1558,  1561,  1561,  1569,
-    1569,  1594,  1594,  1624,  1624,  1636,  1637,  1640,  1641,  1644,
-    1644,  1656,  1656,  1668,  1669,  1672,  1673,  1674,  1675,  1676,
-    1677,  1678,  1679,  1680,  1681,  1682,  1685,  1685,  1693,  1698,
-    1698,  1706,  1711,  1719,  1719,  1729,  1730,  1733,  1734,  1737,
-    1737,  1746,  1746,  1755,  1756,  1759,  1760,  1764,  1765,  1766,
-    1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1777,  1777,
-    1787,  1787,  1797,  1797,  1805,  1805,  1813,  1813,  1821,  1821,
-    1829,  1829,  1842,  1842,  1852,  1853,  1856,  1856,  1867,  1867,
-    1877,  1878,  1881,  1881,  1891,  1892,  1895,  1896,  1899,  1900,
-    1901,  1902,  1903,  1904,  1905,  1908,  1910,  1910,  1918,  1926,
-    1926,  1938,  1939,  1942,  1943,  1944,  1945,  1946,  1947,  1948,
-    1949,  1950,  1953,  1953,  1960,  1961,  1962,  1965,  1970,  1970,
-    1978,  1983,  1990,  1997,  1997,  2007,  2008,  2011,  2012,  2013,
-    2014,  2015,  2018,  2018,  2026,  2026,  2036,  2036,  2076,  2076,
-    2088,  2088,  2098,  2099,  2102,  2103,  2104,  2105,  2106,  2107,
-    2108,  2109,  2110,  2111,  2112,  2113,  2114,  2115,  2116,  2117,
-    2118,  2119,  2122,  2127,  2127,  2135,  2135,  2143,  2148,  2148,
-    2156,  2161,  2166,  2166,  2174,  2175,  2178,  2178,  2186,  2191,
-    2196,  2196,  2204,  2207,  2210,  2213,  2216,  2222,  2222,  2230,
-    2230,  2238,  2238,  2248,  2248,  2255,  2255,  2262,  2262,  2271,
-    2271,  2282,  2282,  2292,  2293,  2297,  2298,  2301,  2301,  2311,
-    2321,  2321,  2331,  2331,  2342,  2343,  2347,  2351,  2351,  2363,
-    2364,  2368,  2368,  2376,  2377,  2380,  2381,  2382,  2383,  2384,
-    2385,  2386,  2389,  2394,  2394,  2402,  2402,  2412,  2413,  2416,
-    2416,  2424,  2425,  2428,  2429,  2430,  2431,  2432,  2435,  2435,
-    2443,  2448,  2453,  2458,  2458
+       0,   272,   272,   272,   273,   273,   274,   274,   275,   275,
+     276,   276,   277,   277,   278,   278,   279,   279,   280,   280,
+     281,   281,   282,   282,   283,   283,   284,   284,   285,   285,
+     286,   286,   294,   295,   296,   297,   298,   299,   300,   303,
+     308,   308,   319,   322,   323,   326,   330,   337,   337,   344,
+     345,   348,   352,   359,   359,   366,   367,   370,   374,   385,
+     395,   395,   410,   411,   415,   416,   417,   418,   419,   420,
+     423,   423,   438,   438,   447,   448,   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,   491,   492,   493,   494,   495,   496,
+     499,   499,   507,   512,   517,   522,   527,   532,   537,   542,
+     547,   552,   557,   562,   567,   572,   572,   580,   580,   591,
+     591,   600,   601,   604,   605,   606,   607,   608,   611,   611,
+     621,   627,   627,   639,   639,   651,   651,   661,   662,   665,
+     666,   669,   669,   679,   680,   683,   684,   685,   686,   687,
+     688,   689,   690,   691,   692,   693,   694,   695,   696,   697,
+     698,   699,   700,   701,   702,   703,   706,   706,   713,   714,
+     715,   716,   719,   719,   727,   727,   735,   735,   743,   748,
+     748,   756,   761,   766,   771,   776,   781,   786,   791,   796,
+     801,   801,   809,   814,   814,   822,   822,   830,   830,   838,
+     838,   848,   849,   851,   853,   853,   871,   871,   881,   882,
+     885,   886,   889,   894,   899,   899,   909,   910,   913,   914,
+     915,   918,   923,   930,   930,   940,   940,   950,   951,   954,
+     955,   958,   958,   968,   968,   978,   979,   980,   983,   984,
+     987,   987,   995,   995,  1003,  1003,  1014,  1015,  1018,  1019,
+    1020,  1021,  1022,  1023,  1026,  1031,  1036,  1041,  1046,  1051,
+    1059,  1059,  1072,  1073,  1076,  1077,  1084,  1084,  1110,  1110,
+    1121,  1122,  1126,  1127,  1128,  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,
+    1156,  1156,  1164,  1164,  1172,  1172,  1180,  1180,  1188,  1188,
+    1198,  1198,  1205,  1206,  1207,  1208,  1211,  1216,  1224,  1224,
+    1235,  1236,  1240,  1241,  1244,  1244,  1252,  1253,  1256,  1257,
+    1258,  1259,  1260,  1261,  1262,  1263,  1264,  1265,  1266,  1267,
+    1268,  1269,  1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,
+    1278,  1279,  1280,  1287,  1287,  1300,  1300,  1309,  1310,  1313,
+    1314,  1319,  1319,  1334,  1334,  1348,  1349,  1352,  1353,  1356,
+    1357,  1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,  1368,
+    1370,  1375,  1377,  1377,  1385,  1385,  1393,  1393,  1401,  1403,
+    1403,  1411,  1420,  1420,  1432,  1433,  1438,  1439,  1444,  1444,
+    1456,  1456,  1468,  1469,  1474,  1475,  1480,  1481,  1482,  1483,
+    1484,  1485,  1486,  1487,  1488,  1491,  1493,  1493,  1501,  1503,
+    1505,  1510,  1518,  1518,  1530,  1531,  1534,  1535,  1538,  1538,
+    1548,  1548,  1557,  1558,  1561,  1562,  1563,  1564,  1565,  1566,
+    1567,  1570,  1570,  1578,  1578,  1603,  1603,  1633,  1633,  1645,
+    1646,  1649,  1650,  1653,  1653,  1665,  1665,  1677,  1678,  1681,
+    1682,  1683,  1684,  1685,  1686,  1687,  1688,  1689,  1690,  1691,
+    1694,  1694,  1702,  1707,  1707,  1715,  1720,  1728,  1728,  1738,
+    1739,  1742,  1743,  1746,  1746,  1755,  1755,  1764,  1765,  1768,
+    1769,  1773,  1774,  1775,  1776,  1777,  1778,  1779,  1780,  1781,
+    1782,  1783,  1786,  1786,  1796,  1796,  1806,  1806,  1814,  1814,
+    1822,  1822,  1830,  1830,  1838,  1838,  1851,  1851,  1861,  1862,
+    1865,  1865,  1876,  1876,  1886,  1887,  1890,  1890,  1900,  1901,
+    1904,  1905,  1908,  1909,  1910,  1911,  1912,  1913,  1914,  1917,
+    1919,  1919,  1927,  1935,  1935,  1947,  1948,  1951,  1952,  1953,
+    1954,  1955,  1956,  1957,  1958,  1959,  1962,  1962,  1969,  1970,
+    1971,  1974,  1979,  1979,  1987,  1992,  1999,  2006,  2006,  2016,
+    2017,  2020,  2021,  2022,  2023,  2024,  2027,  2027,  2035,  2035,
+    2045,  2045,  2085,  2085,  2097,  2097,  2107,  2108,  2111,  2112,
+    2113,  2114,  2115,  2116,  2117,  2118,  2119,  2120,  2121,  2122,
+    2123,  2124,  2125,  2126,  2127,  2128,  2131,  2136,  2136,  2144,
+    2144,  2152,  2157,  2157,  2165,  2170,  2175,  2175,  2183,  2184,
+    2187,  2187,  2195,  2200,  2205,  2205,  2213,  2216,  2219,  2222,
+    2225,  2231,  2231,  2239,  2239,  2247,  2247,  2257,  2257,  2264,
+    2264,  2271,  2271,  2280,  2280,  2291,  2291,  2301,  2302,  2306,
+    2307,  2310,  2310,  2320,  2330,  2330,  2340,  2340,  2351,  2352,
+    2356,  2360,  2360,  2372,  2373,  2377,  2377,  2385,  2386,  2389,
+    2390,  2391,  2392,  2393,  2394,  2395,  2398,  2403,  2403,  2411,
+    2411,  2421,  2422,  2425,  2425,  2433,  2434,  2437,  2438,  2439,
+    2440,  2441,  2444,  2444,  2452,  2457,  2462,  2467,  2467
   };
 
   // Print the state stack on the debug stream.
@@ -5287,9 +5303,9 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5291 "dhcp6_parser.cc"
+#line 5307 "dhcp6_parser.cc"
 
-#line 2466 "dhcp6_parser.yy"
+#line 2475 "dhcp6_parser.yy"
 
 
 void
index 2d67048ecbff43e6b3d9b055dec76a767a4a0073..595bd07f5fb0f7475d8b7544c0a51d5536228bc1 100644 (file)
@@ -501,141 +501,142 @@ namespace isc { namespace dhcp {
         TOKEN_MAX_VALID_LIFETIME = 304,
         TOKEN_RENEW_TIMER = 305,
         TOKEN_REBIND_TIMER = 306,
-        TOKEN_CALCULATE_TEE_TIMES = 307,
-        TOKEN_T1_PERCENT = 308,
-        TOKEN_T2_PERCENT = 309,
-        TOKEN_DECLINE_PROBATION_PERIOD = 310,
-        TOKEN_SERVER_TAG = 311,
-        TOKEN_SUBNET6 = 312,
-        TOKEN_OPTION_DEF = 313,
-        TOKEN_OPTION_DATA = 314,
-        TOKEN_NAME = 315,
-        TOKEN_DATA = 316,
-        TOKEN_CODE = 317,
-        TOKEN_SPACE = 318,
-        TOKEN_CSV_FORMAT = 319,
-        TOKEN_ALWAYS_SEND = 320,
-        TOKEN_RECORD_TYPES = 321,
-        TOKEN_ENCAPSULATE = 322,
-        TOKEN_ARRAY = 323,
-        TOKEN_POOLS = 324,
-        TOKEN_POOL = 325,
-        TOKEN_PD_POOLS = 326,
-        TOKEN_PREFIX = 327,
-        TOKEN_PREFIX_LEN = 328,
-        TOKEN_EXCLUDED_PREFIX = 329,
-        TOKEN_EXCLUDED_PREFIX_LEN = 330,
-        TOKEN_DELEGATED_LEN = 331,
-        TOKEN_USER_CONTEXT = 332,
-        TOKEN_COMMENT = 333,
-        TOKEN_SUBNET = 334,
-        TOKEN_INTERFACE = 335,
-        TOKEN_INTERFACE_ID = 336,
-        TOKEN_ID = 337,
-        TOKEN_RAPID_COMMIT = 338,
-        TOKEN_RESERVATION_MODE = 339,
-        TOKEN_DISABLED = 340,
-        TOKEN_OUT_OF_POOL = 341,
-        TOKEN_GLOBAL = 342,
-        TOKEN_ALL = 343,
-        TOKEN_SHARED_NETWORKS = 344,
-        TOKEN_MAC_SOURCES = 345,
-        TOKEN_RELAY_SUPPLIED_OPTIONS = 346,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 347,
-        TOKEN_SANITY_CHECKS = 348,
-        TOKEN_LEASE_CHECKS = 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_IP_ADDRESSES = 356,
-        TOKEN_PREFIXES = 357,
-        TOKEN_DUID = 358,
-        TOKEN_HW_ADDRESS = 359,
-        TOKEN_HOSTNAME = 360,
-        TOKEN_FLEX_ID = 361,
-        TOKEN_RELAY = 362,
-        TOKEN_IP_ADDRESS = 363,
-        TOKEN_HOOKS_LIBRARIES = 364,
-        TOKEN_LIBRARY = 365,
-        TOKEN_PARAMETERS = 366,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 367,
-        TOKEN_RECLAIM_TIMER_WAIT_TIME = 368,
-        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 369,
-        TOKEN_HOLD_RECLAIMED_TIME = 370,
-        TOKEN_MAX_RECLAIM_LEASES = 371,
-        TOKEN_MAX_RECLAIM_TIME = 372,
-        TOKEN_UNWARNED_RECLAIM_CYCLES = 373,
-        TOKEN_SERVER_ID = 374,
-        TOKEN_LLT = 375,
-        TOKEN_EN = 376,
-        TOKEN_LL = 377,
-        TOKEN_IDENTIFIER = 378,
-        TOKEN_HTYPE = 379,
-        TOKEN_TIME = 380,
-        TOKEN_ENTERPRISE_ID = 381,
-        TOKEN_DHCP4O6_PORT = 382,
-        TOKEN_CONTROL_SOCKET = 383,
-        TOKEN_SOCKET_TYPE = 384,
-        TOKEN_SOCKET_NAME = 385,
-        TOKEN_DHCP_QUEUE_CONTROL = 386,
-        TOKEN_DHCP_DDNS = 387,
-        TOKEN_ENABLE_UPDATES = 388,
-        TOKEN_QUALIFYING_SUFFIX = 389,
-        TOKEN_SERVER_IP = 390,
-        TOKEN_SERVER_PORT = 391,
-        TOKEN_SENDER_IP = 392,
-        TOKEN_SENDER_PORT = 393,
-        TOKEN_MAX_QUEUE_SIZE = 394,
-        TOKEN_NCR_PROTOCOL = 395,
-        TOKEN_NCR_FORMAT = 396,
-        TOKEN_OVERRIDE_NO_UPDATE = 397,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 398,
-        TOKEN_REPLACE_CLIENT_NAME = 399,
-        TOKEN_GENERATED_PREFIX = 400,
-        TOKEN_UDP = 401,
-        TOKEN_TCP = 402,
-        TOKEN_JSON = 403,
-        TOKEN_WHEN_PRESENT = 404,
-        TOKEN_NEVER = 405,
-        TOKEN_ALWAYS = 406,
-        TOKEN_WHEN_NOT_PRESENT = 407,
-        TOKEN_HOSTNAME_CHAR_SET = 408,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 409,
-        TOKEN_LOGGING = 410,
-        TOKEN_LOGGERS = 411,
-        TOKEN_OUTPUT_OPTIONS = 412,
-        TOKEN_OUTPUT = 413,
-        TOKEN_DEBUGLEVEL = 414,
-        TOKEN_SEVERITY = 415,
-        TOKEN_FLUSH = 416,
-        TOKEN_MAXSIZE = 417,
-        TOKEN_MAXVER = 418,
-        TOKEN_PATTERN = 419,
-        TOKEN_DHCP4 = 420,
-        TOKEN_DHCPDDNS = 421,
-        TOKEN_CONTROL_AGENT = 422,
-        TOKEN_TOPLEVEL_JSON = 423,
-        TOKEN_TOPLEVEL_DHCP6 = 424,
-        TOKEN_SUB_DHCP6 = 425,
-        TOKEN_SUB_INTERFACES6 = 426,
-        TOKEN_SUB_SUBNET6 = 427,
-        TOKEN_SUB_POOL6 = 428,
-        TOKEN_SUB_PD_POOL = 429,
-        TOKEN_SUB_RESERVATION = 430,
-        TOKEN_SUB_OPTION_DEFS = 431,
-        TOKEN_SUB_OPTION_DEF = 432,
-        TOKEN_SUB_OPTION_DATA = 433,
-        TOKEN_SUB_HOOKS_LIBRARY = 434,
-        TOKEN_SUB_DHCP_DDNS = 435,
-        TOKEN_SUB_LOGGING = 436,
-        TOKEN_SUB_CONFIG_CONTROL = 437,
-        TOKEN_STRING = 438,
-        TOKEN_INTEGER = 439,
-        TOKEN_FLOAT = 440,
-        TOKEN_BOOLEAN = 441
+        TOKEN_ALLOW_STATIC_LEASES = 307,
+        TOKEN_CALCULATE_TEE_TIMES = 308,
+        TOKEN_T1_PERCENT = 309,
+        TOKEN_T2_PERCENT = 310,
+        TOKEN_DECLINE_PROBATION_PERIOD = 311,
+        TOKEN_SERVER_TAG = 312,
+        TOKEN_SUBNET6 = 313,
+        TOKEN_OPTION_DEF = 314,
+        TOKEN_OPTION_DATA = 315,
+        TOKEN_NAME = 316,
+        TOKEN_DATA = 317,
+        TOKEN_CODE = 318,
+        TOKEN_SPACE = 319,
+        TOKEN_CSV_FORMAT = 320,
+        TOKEN_ALWAYS_SEND = 321,
+        TOKEN_RECORD_TYPES = 322,
+        TOKEN_ENCAPSULATE = 323,
+        TOKEN_ARRAY = 324,
+        TOKEN_POOLS = 325,
+        TOKEN_POOL = 326,
+        TOKEN_PD_POOLS = 327,
+        TOKEN_PREFIX = 328,
+        TOKEN_PREFIX_LEN = 329,
+        TOKEN_EXCLUDED_PREFIX = 330,
+        TOKEN_EXCLUDED_PREFIX_LEN = 331,
+        TOKEN_DELEGATED_LEN = 332,
+        TOKEN_USER_CONTEXT = 333,
+        TOKEN_COMMENT = 334,
+        TOKEN_SUBNET = 335,
+        TOKEN_INTERFACE = 336,
+        TOKEN_INTERFACE_ID = 337,
+        TOKEN_ID = 338,
+        TOKEN_RAPID_COMMIT = 339,
+        TOKEN_RESERVATION_MODE = 340,
+        TOKEN_DISABLED = 341,
+        TOKEN_OUT_OF_POOL = 342,
+        TOKEN_GLOBAL = 343,
+        TOKEN_ALL = 344,
+        TOKEN_SHARED_NETWORKS = 345,
+        TOKEN_MAC_SOURCES = 346,
+        TOKEN_RELAY_SUPPLIED_OPTIONS = 347,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 348,
+        TOKEN_SANITY_CHECKS = 349,
+        TOKEN_LEASE_CHECKS = 350,
+        TOKEN_CLIENT_CLASSES = 351,
+        TOKEN_REQUIRE_CLIENT_CLASSES = 352,
+        TOKEN_TEST = 353,
+        TOKEN_ONLY_IF_REQUIRED = 354,
+        TOKEN_CLIENT_CLASS = 355,
+        TOKEN_RESERVATIONS = 356,
+        TOKEN_IP_ADDRESSES = 357,
+        TOKEN_PREFIXES = 358,
+        TOKEN_DUID = 359,
+        TOKEN_HW_ADDRESS = 360,
+        TOKEN_HOSTNAME = 361,
+        TOKEN_FLEX_ID = 362,
+        TOKEN_RELAY = 363,
+        TOKEN_IP_ADDRESS = 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_SERVER_ID = 375,
+        TOKEN_LLT = 376,
+        TOKEN_EN = 377,
+        TOKEN_LL = 378,
+        TOKEN_IDENTIFIER = 379,
+        TOKEN_HTYPE = 380,
+        TOKEN_TIME = 381,
+        TOKEN_ENTERPRISE_ID = 382,
+        TOKEN_DHCP4O6_PORT = 383,
+        TOKEN_CONTROL_SOCKET = 384,
+        TOKEN_SOCKET_TYPE = 385,
+        TOKEN_SOCKET_NAME = 386,
+        TOKEN_DHCP_QUEUE_CONTROL = 387,
+        TOKEN_DHCP_DDNS = 388,
+        TOKEN_ENABLE_UPDATES = 389,
+        TOKEN_QUALIFYING_SUFFIX = 390,
+        TOKEN_SERVER_IP = 391,
+        TOKEN_SERVER_PORT = 392,
+        TOKEN_SENDER_IP = 393,
+        TOKEN_SENDER_PORT = 394,
+        TOKEN_MAX_QUEUE_SIZE = 395,
+        TOKEN_NCR_PROTOCOL = 396,
+        TOKEN_NCR_FORMAT = 397,
+        TOKEN_OVERRIDE_NO_UPDATE = 398,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 399,
+        TOKEN_REPLACE_CLIENT_NAME = 400,
+        TOKEN_GENERATED_PREFIX = 401,
+        TOKEN_UDP = 402,
+        TOKEN_TCP = 403,
+        TOKEN_JSON = 404,
+        TOKEN_WHEN_PRESENT = 405,
+        TOKEN_NEVER = 406,
+        TOKEN_ALWAYS = 407,
+        TOKEN_WHEN_NOT_PRESENT = 408,
+        TOKEN_HOSTNAME_CHAR_SET = 409,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 410,
+        TOKEN_LOGGING = 411,
+        TOKEN_LOGGERS = 412,
+        TOKEN_OUTPUT_OPTIONS = 413,
+        TOKEN_OUTPUT = 414,
+        TOKEN_DEBUGLEVEL = 415,
+        TOKEN_SEVERITY = 416,
+        TOKEN_FLUSH = 417,
+        TOKEN_MAXSIZE = 418,
+        TOKEN_MAXVER = 419,
+        TOKEN_PATTERN = 420,
+        TOKEN_DHCP4 = 421,
+        TOKEN_DHCPDDNS = 422,
+        TOKEN_CONTROL_AGENT = 423,
+        TOKEN_TOPLEVEL_JSON = 424,
+        TOKEN_TOPLEVEL_DHCP6 = 425,
+        TOKEN_SUB_DHCP6 = 426,
+        TOKEN_SUB_INTERFACES6 = 427,
+        TOKEN_SUB_SUBNET6 = 428,
+        TOKEN_SUB_POOL6 = 429,
+        TOKEN_SUB_PD_POOL = 430,
+        TOKEN_SUB_RESERVATION = 431,
+        TOKEN_SUB_OPTION_DEFS = 432,
+        TOKEN_SUB_OPTION_DEF = 433,
+        TOKEN_SUB_OPTION_DATA = 434,
+        TOKEN_SUB_HOOKS_LIBRARY = 435,
+        TOKEN_SUB_DHCP_DDNS = 436,
+        TOKEN_SUB_LOGGING = 437,
+        TOKEN_SUB_CONFIG_CONTROL = 438,
+        TOKEN_STRING = 439,
+        TOKEN_INTEGER = 440,
+        TOKEN_FLOAT = 441,
+        TOKEN_BOOLEAN = 442
       };
     };
 
@@ -777,29 +778,29 @@ namespace isc { namespace dhcp {
         // Type destructor.
 switch (yytype)
     {
-      case 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -882,13 +883,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_MAX_ROW_ERRORS || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_ALLOW_STATIC_LEASES || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_PATTERN || 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_MAX_ROW_ERRORS || 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_ALLOW_STATIC_LEASES || 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_PATTERN || 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
@@ -1730,6 +1731,21 @@ switch (yytype)
         return symbol_type (token::TOKEN_REBIND_TIMER, l);
       }
 #endif
+#if 201103L <= YY_CPLUSPLUS
+      static
+      symbol_type
+      make_ALLOW_STATIC_LEASES (location_type l)
+      {
+        return symbol_type (token::TOKEN_ALLOW_STATIC_LEASES, std::move (l));
+      }
+#else
+      static
+      symbol_type
+      make_ALLOW_STATIC_LEASES (const location_type& l)
+      {
+        return symbol_type (token::TOKEN_ALLOW_STATIC_LEASES, l);
+      }
+#endif
 #if 201103L <= YY_CPLUSPLUS
       static
       symbol_type
@@ -4061,12 +4077,12 @@ switch (yytype)
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1107,     ///< Last index in yytable_.
-      yynnts_ = 406,  ///< Number of nonterminal symbols.
+      yylast_ = 1116,     ///< Last index in yytable_.
+      yynnts_ = 407,  ///< Number of nonterminal symbols.
       yyfinal_ = 32, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 187  ///< Number of tokens.
+      yyntokens_ = 188  ///< Number of tokens.
     };
 
 
@@ -4128,9 +4144,9 @@ switch (yytype)
      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,   181,   182,   183,   184,
-     185,   186
+     185,   186,   187
     };
-    const unsigned user_token_number_max_ = 441;
+    const unsigned user_token_number_max_ = 442;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -4151,29 +4167,29 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.move< ElementPtr > (std::move (that.value));
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.move< bool > (std::move (that.value));
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.move< double > (std::move (that.value));
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.move< int64_t > (std::move (that.value));
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         value.move< std::string > (std::move (that.value));
         break;
 
@@ -4192,29 +4208,29 @@ switch (yytype)
   {
     switch (this->type_get ())
     {
-      case 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.copy< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.copy< bool > (YY_MOVE (that.value));
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.copy< double > (YY_MOVE (that.value));
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.copy< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         value.copy< std::string > (YY_MOVE (that.value));
         break;
 
@@ -4240,29 +4256,29 @@ switch (yytype)
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 204: // value
-      case 208: // map_value
-      case 269: // db_type
-      case 363: // hr_mode
-      case 499: // duid_type
-      case 534: // ncr_protocol_value
-      case 541: // replace_client_name_value
+      case 205: // value
+      case 209: // map_value
+      case 271: // db_type
+      case 365: // hr_mode
+      case 501: // duid_type
+      case 536: // ncr_protocol_value
+      case 543: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 186: // "boolean"
+      case 187: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 185: // "floating point"
+      case 186: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 184: // "integer"
+      case 185: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 183: // "constant string"
+      case 184: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -4348,14 +4364,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,   436,   437,   438,   439,   440,   441
+     435,   436,   437,   438,   439,   440,   441,   442
     };
     return token_type (yytoken_number_[type]);
   }
 
 #line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 4359 "dhcp6_parser.h"
+#line 4375 "dhcp6_parser.h"
 
 
 
index 238ec5955224b7959d19d1e071ff82d2052fc78a..4ebc02db498a2c1ec99e2e1cd504d511e15ba6e9 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191238
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Locations for Bison parsers in C++
index c202e38cf421a1f2c784e7dcf24a9a456e57d57d..4ff92e590f72282edf80208dc0d2c3d0fc4d973f 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191238
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index 42822f65302250dca3e629db238ac0fc7a8b03a8..fa39e968f956319405cee734223fb9ce2ad0612e 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201908191238
+// Generated 201909091313
 // A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it